@qin-ui/antd-vue-pro
Version:
88 lines (87 loc) • 3.29 kB
JavaScript
import { inject, provide, defineComponent, renderSlot } from "vue";
const INJECT_KEYS = {
"pro-table": Symbol(""),
"pro-form": Symbol(""),
"pro-form-item": Symbol(""),
// field
"input": Symbol(""),
"textarea": Symbol(""),
"input-password": Symbol(""),
"input-search": Symbol(""),
"input-number": Symbol(""),
"select": Symbol(""),
"cascader": Symbol(""),
"date-picker": Symbol(""),
"date-picker.date": Symbol(""),
"date-picker.week": Symbol(""),
"date-picker.month": Symbol(""),
"date-picker.year": Symbol(""),
"date-picker.quarter": Symbol(""),
"range-picker": Symbol(""),
"time-picker": Symbol(""),
"checkbox-group": Symbol(""),
"radio-group": Symbol(""),
"switch": Symbol(""),
"slider": Symbol(""),
"tree-select": Symbol(""),
"transfer": Symbol("")
};
const getPopupContainer = (triggerNode) => triggerNode.closest(".ant-form");
const INIT_PROPS_MAP = /* @__PURE__ */ new Map([
[], {}],
[], {}],
[], {}],
// field
[], { maxlength: 100, allowClear: true, placeholder: "请输入" }],
[], { maxlength: 200, autoSize: { minRows: 3, maxRows: 6 }, showCount: true, allowClear: true, placeholder: "请输入" }],
[], { maxlength: 100, allowClear: true, placeholder: "请输入" }],
[], { max: 10 ** 15 - 1, min: -(10 ** 15 + 1), controls: false, allowClear: true, placeholder: "请输入" }],
[], { allowClear: true, placeholder: "请选择", getPopupContainer }],
[], { allowClear: true, placeholder: "请选择", getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], { allowClear: true, getPopupContainer }],
[], {}],
[], {}],
[], {}],
[], {}],
[], {}]
]);
const useInjectProps = (key) => {
const initProps = INIT_PROPS_MAP.get(key) ?? {};
const injectProps = inject(key, {});
return { ...initProps, ...injectProps };
};
const useProviderProps = (key, value) => {
provide(key, value);
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
props: {
componentVars: {}
},
setup(__props) {
const props = __props;
if (props.componentVars) {
Object.entries(props.componentVars).forEach(([key, val]) => {
const injectKey = INJECT_KEYS[key];
useProviderProps(injectKey, val);
});
}
return (_ctx, _cache) => {
return renderSlot(_ctx.$slots, "default");
};
}
});
export {
INIT_PROPS_MAP,
INJECT_KEYS,
_sfc_main as default,
useInjectProps,
useProviderProps
};