UNPKG

yanzhen-design-vue

Version:

51 lines (50 loc) 1.66 kB
import { pageProviderProps, pageProviderEmits } from "@yanzhen-lowcode/core"; import { buildProps, definePropType, buildEmits } from "@yanzhen-libs/utils-vue"; import "../../../hooks/index.mjs"; import "../../form/index.mjs"; import "../../form-item/index.mjs"; import "../../row/index.mjs"; import "../../col/index.mjs"; import { useNamespace } from "../../../hooks/use-namespace/index.mjs"; import { formProps } from "../../form/src/form.mjs"; import { formItemProps } from "../../form-item/src/form-item.mjs"; import { rowProps } from "../../row/src/row.mjs"; import { colProps } from "../../col/src/col.mjs"; const ns = useNamespace("form-provider"); const formProviderOptions = { ns, class: ns.b(), name: ns.defineVNodeName() }; const formProviderName = formProviderOptions.name; const formPropsKeys = ["item"].concat(Object.keys(formProps)).concat(Object.keys(formItemProps)); const rowPropsKeys = ["col"].concat(Object.keys(rowProps)).concat(Object.keys(colProps)); const formProviderProps = buildProps({ ...pageProviderProps, model: definePropType(Object), rules: definePropType(Object), form: { type: definePropType(Object), validator(value) { return Object.keys(value).some((k) => formPropsKeys.includes(k)); }, default: () => ({}) }, row: { type: definePropType(Object), validator(value) { return Object.keys(value).some((k) => rowPropsKeys.includes(k)); } }, schema: { type: definePropType(Object), default: () => ({}) } }); const formProviderEmits = buildEmits(pageProviderEmits); export { formProviderEmits, formProviderName, formProviderOptions, formProviderProps };