yanzhen-design-vue
Version:
51 lines (50 loc) • 1.66 kB
JavaScript
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
};