import { jsx } from "react/jsx-runtime";
import "react";
import { useField, useFieldSchema } from "@tachybase/schema";
import { Card } from "antd";
import { createStyles } from "antd-style";
import { useNavigate } from "react-router-dom";
import { withDynamicSchemaProps } from "../../../application/hoc/withDynamicSchemaProps.mjs";
import { useCollection } from "../../../data-source/index.mjs";
import { useCollectionParentRecordData } from "../../../data-source/collection-record/CollectionRecordProvider.mjs";
import { RecordProvider } from "../../../record-provider/index.mjs";
import { useGridCustomPageUrl } from "./hooks.mjs";
function _tagged_template_literal(strings, raw) {
    if (!raw) raw = strings.slice(0);
    return Object.freeze(Object.defineProperties(strings, {
        raw: {
            value: Object.freeze(raw)
        }
    }));
}
function _templateObject() {
    const data = _tagged_template_literal([
        "\n      display: flex;\n      width: 100%;\n      height: 100%;\n      flex-direction: column;\n      justify-content: space-between;\n      gap: 8px;\n    "
    ]);
    _templateObject = function() {
        return data;
    };
    return data;
}
function _templateObject1() {
    const data = _tagged_template_literal([
        "\n      /* background-color: re/d; */\n      height: 100%;\n      > .ant-card-body {\n        padding: 24px 24px 0px;\n        height: 100%;\n      }\n      .tb-action-bar {\n        padding: 5px 0;\n      }\n    "
    ]);
    _templateObject1 = function() {
        return data;
    };
    return data;
}
const useStyles = createStyles((param)=>{
    let { css } = param;
    return {
        itemCss: css(_templateObject()),
        card: css(_templateObject1())
    };
});
const GridCardItem = withDynamicSchemaProps((props)=>{
    useCollection();
    const field = useField();
    const fieldSchema = useFieldSchema();
    const parentRecordData = useCollectionParentRecordData();
    const navigate = useNavigate();
    const { styles } = useStyles();
    const detailUrl = useGridCustomPageUrl({
        field,
        fieldSchema
    });
    const handleClick = ()=>{
        var _fieldSchema_parent, _parentSchema_xdecoratorprops;
        const parentSchema = null == fieldSchema ? void 0 : null == (_fieldSchema_parent = fieldSchema.parent) ? void 0 : _fieldSchema_parent.parent;
        const isLinkable = null == parentSchema ? void 0 : null == (_parentSchema_xdecoratorprops = parentSchema['x-decorator-props']) ? void 0 : _parentSchema_xdecoratorprops.isLinkable;
        if (isLinkable) navigate(detailUrl);
    };
    return /*#__PURE__*/ jsx(Card, {
        role: "button",
        "aria-label": "grid-card-item",
        className: styles.card,
        onClick: handleClick,
        children: /*#__PURE__*/ jsx("div", {
            className: styles.itemCss,
            children: /*#__PURE__*/ jsx(RecordProvider, {
                record: field.value,
                parent: parentRecordData,
                children: props.children
            })
        })
    });
});
export { GridCardItem };
