UNPKG

vue-admin-core

Version:
1 lines 9.72 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/form-grid/src/index.ts"],"sourcesContent":["import {\n defineComponent,\n provide,\n onMounted,\n InjectionKey,\n Ref,\n computed,\n watchEffect,\n inject,\n PropType,\n getCurrentInstance,\n ComponentInternalInstance\n} from \"vue\";\nimport { h } from \"@formily/vue\";\nimport { observer } from \"@formily/reactive-vue\";\nimport { markRaw } from \"@formily/reactive\";\nimport { Grid, IGridOptions } from \"@formily/grid\";\nimport { stylePrefix, composeExport } from \"../../__builtins__\";\nimport { useFormLayout } from \"../../form-layout\";\nimport { buildProps } from \"element-plus/es/utils/vue/props/runtime\";\n\nexport interface IFormGridProps extends IGridOptions {\n grid?: Grid<HTMLElement>;\n prefixCls?: string;\n className?: string;\n}\n\nconst FormGridSymbol: InjectionKey<Ref<Grid<HTMLElement>>> = Symbol(\"FormGridContext\");\n\ninterface GridColumnProps {\n gridSpan: number;\n}\n\nexport const createFormGrid = (props: IFormGridProps): Grid<HTMLElement> => {\n return markRaw(new Grid(props));\n};\n\n// @ts-ignore\nexport const useFormGrid = (): Ref<Grid<HTMLElement>> => inject(FormGridSymbol);\n\n/**\n * @deprecated\n */\nconst useGridSpan = (gridSpan: number) => {\n return gridSpan;\n};\n\n/**\n * @deprecated\n */\nexport const useGridColumn = (gridSpan = \"span 1\") => {\n return gridSpan;\n};\n\nexport const formGridProps = buildProps({\n columnGap: {\n type: Number\n },\n rowGap: {\n type: Number\n },\n minColumns: {\n type: [Number, Array] as PropType<number | number[]>\n },\n minWidth: {\n type: [Number, Array] as PropType<number | number[]>\n },\n maxColumns: {\n type: [Number, Array] as PropType<number | number[]>\n },\n maxWidth: {\n type: [Number, Array] as PropType<number | number[]>\n },\n breakpoints: {\n type: Array as PropType<number[]>\n },\n colWrap: {\n type: Boolean,\n default: true\n },\n strictAutoFit: {\n type: Boolean,\n default: false\n },\n shouldVisible: {\n type: Function as PropType<IGridOptions[\"shouldVisible\"]>,\n default() {\n return () => true;\n }\n },\n grid: {\n type: Object as PropType<Grid<HTMLElement>>\n }\n});\n\nconst useRefs = (): Record<string, unknown> => {\n const vm: ComponentInternalInstance | null = getCurrentInstance();\n return vm?.refs || {};\n};\n\nconst FormGridInner = observer(\n defineComponent({\n name: \"FFormGrid\",\n props: {\n columnGap: {\n type: Number\n },\n rowGap: {\n type: Number\n },\n minColumns: {\n type: [Number, Array]\n },\n minWidth: {\n type: [Number, Array]\n },\n maxColumns: {\n type: [Number, Array]\n },\n maxWidth: {\n type: [Number, Array]\n },\n breakpoints: {\n type: Array\n },\n colWrap: {\n type: Boolean,\n default: true\n },\n strictAutoFit: {\n type: Boolean,\n default: false\n },\n shouldVisible: {\n type: Function as PropType<IGridOptions[\"shouldVisible\"]>,\n default() {\n return () => true;\n }\n },\n grid: {\n type: Object as PropType<Grid<HTMLElement>>\n }\n },\n setup(props: any, { slots }) {\n const layout = useFormLayout();\n\n const gridInstance = computed(() => {\n const newProps: IFormGridProps = {};\n Object.keys(props).forEach((key) => {\n if (typeof props[key] !== \"undefined\") {\n (newProps as any)[key] = props[key];\n }\n });\n const options = {\n columnGap: layout.value?.gridColumnGap ?? 8,\n rowGap: layout.value?.gridRowGap ?? 4,\n ...newProps\n };\n return markRaw(options?.grid ? options.grid : new Grid(options));\n });\n\n const prefixCls = `${stylePrefix}-form-grid`;\n\n provide(FormGridSymbol, gridInstance);\n\n onMounted(() => {\n const refs = useRefs();\n watchEffect((onInvalidate) => {\n const dispose = gridInstance.value.connect(refs.root as HTMLElement);\n onInvalidate(() => {\n dispose();\n });\n });\n });\n\n return () => {\n return h(\n \"div\",\n {\n class: `${prefixCls}`,\n style: {\n gridTemplateColumns: gridInstance.value.templateColumns,\n gap: gridInstance.value.gap\n },\n ref: \"root\"\n },\n slots\n );\n };\n }\n })\n) as any;\n\nconst FormGridColumn = observer(\n defineComponent({\n name: \"FFormGridColumn\",\n props: {\n gridSpan: {\n type: Number,\n default: 1\n }\n },\n setup(props: GridColumnProps, { slots }) {\n return () => {\n return h(\n \"div\",\n {\n \"data-grid-span\": props.gridSpan\n },\n slots\n );\n };\n }\n })\n);\n\nexport const FormGrid = composeExport(FormGridInner, {\n GridColumn: FormGridColumn,\n useGridSpan,\n useFormGrid,\n createFormGrid\n});\n\nexport default FormGrid;\n"],"names":[],"mappings":"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"}