@silver-formily/vue 1.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { isVoidField as r } from "@formily/core";
|
|
2
|
-
import { toJS as
|
|
2
|
+
import { toJS as F } from "@formily/reactive";
|
|
3
3
|
import { useObserver as w } from "@formily/reactive-vue";
|
|
4
|
-
import { FormPath as
|
|
5
|
-
import { defineComponent as D, inject as E, ref as H, shallowRef as
|
|
6
|
-
import { useField as
|
|
7
|
-
import { SchemaOptionsSymbol as
|
|
8
|
-
import { useForm as
|
|
9
|
-
import { useAttach as
|
|
10
|
-
import { mergeSlots as
|
|
11
|
-
const
|
|
4
|
+
import { FormPath as P } from "@formily/shared";
|
|
5
|
+
import { defineComponent as D, inject as E, ref as H, shallowRef as j, watch as x, provide as z, h } from "vue";
|
|
6
|
+
import { useField as B } from "../hooks/useField.mjs";
|
|
7
|
+
import { SchemaOptionsSymbol as J, FieldSymbol as N } from "../shared/context.mjs";
|
|
8
|
+
import { useForm as U } from "../hooks/useForm.mjs";
|
|
9
|
+
import { useAttach as $ } from "../hooks/useAttach.mjs";
|
|
10
|
+
import { mergeSlots as k, wrapFragment as A, extractAttrsAndEvents as T, createVNodeProps as R } from "../utils/reactiveFieldHelpers.mjs";
|
|
11
|
+
const oe = D({
|
|
12
12
|
name: "ReactiveField",
|
|
13
13
|
props: {
|
|
14
14
|
fieldType: {
|
|
@@ -21,53 +21,55 @@ const _ = D({
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
setup(n, { slots: u }) {
|
|
24
|
-
const
|
|
24
|
+
const S = U(), V = B(), C = E(J, H());
|
|
25
25
|
w();
|
|
26
|
-
const y = () =>
|
|
26
|
+
const y = () => S?.value?.[`create${n.fieldType}`]?.({
|
|
27
27
|
...n.fieldProps,
|
|
28
|
-
basePath: n.fieldProps?.basePath ??
|
|
29
|
-
}), a =
|
|
30
|
-
return
|
|
28
|
+
basePath: n.fieldProps?.basePath ?? V.value?.address
|
|
29
|
+
}), a = j(y());
|
|
30
|
+
return x(
|
|
31
31
|
() => n.fieldProps,
|
|
32
32
|
() => a.value = y()
|
|
33
|
-
),
|
|
33
|
+
), $(a), z(N, a), () => {
|
|
34
34
|
const e = a.value, v = C.value;
|
|
35
35
|
if (!e)
|
|
36
36
|
return u.default?.();
|
|
37
37
|
if (e.display !== "visible")
|
|
38
38
|
return null;
|
|
39
|
-
const b =
|
|
39
|
+
const b = k(e, u, e.content);
|
|
40
40
|
return ((s) => {
|
|
41
|
-
const
|
|
41
|
+
const d = s.filter((f) => f != null);
|
|
42
42
|
if (!e.decoratorType)
|
|
43
|
-
return A(
|
|
44
|
-
const
|
|
45
|
-
return
|
|
46
|
-
default: () =>
|
|
43
|
+
return A(d);
|
|
44
|
+
const c = P.getIn(v?.components, e.decoratorType) ?? e.decoratorType, i = Array.isArray(e.decorator) ? e.decorator[1] : void 0, l = F(i) || {}, { attrs: p, events: t } = T(l), m = R(p, t);
|
|
45
|
+
return h(c, m, {
|
|
46
|
+
default: () => d
|
|
47
47
|
});
|
|
48
48
|
})([(() => {
|
|
49
49
|
if (!e.componentType)
|
|
50
50
|
return A(b?.default?.());
|
|
51
|
-
const s =
|
|
51
|
+
const s = P.getIn(v?.components, e.componentType) ?? e.componentType, d = Array.isArray(e.component) ? e.component[1] : void 0, c = F(d) || {}, i = r(e) ? void 0 : e.value, l = {
|
|
52
52
|
disabled: r(e) ? void 0 : e.pattern === "disabled" || e.pattern === "readPretty",
|
|
53
53
|
readOnly: r(e) ? void 0 : e.pattern === "readOnly",
|
|
54
|
-
...
|
|
55
|
-
|
|
56
|
-
}, { attrs:
|
|
57
|
-
|
|
58
|
-
r(e) || e.onInput(...t), p?.(...t);
|
|
59
|
-
}, o.focus = (...t) => {
|
|
60
|
-
r(e) || e.onFocus(...t), m?.(...t);
|
|
61
|
-
}, o.blur = (...t) => {
|
|
62
|
-
r(e) || e.onBlur(...t), f?.(...t);
|
|
54
|
+
...c,
|
|
55
|
+
modelValue: i
|
|
56
|
+
}, { attrs: p, events: t } = T(l), m = t["update:modelValue"], f = t.focus, O = t.blur, g = (...o) => {
|
|
57
|
+
r(e) || e.onInput(...o);
|
|
63
58
|
};
|
|
64
|
-
|
|
65
|
-
|
|
59
|
+
t["update:modelValue"] = (...o) => {
|
|
60
|
+
g(...o), m?.(...o);
|
|
61
|
+
}, t.focus = (...o) => {
|
|
62
|
+
r(e) || e.onFocus(...o), f?.(...o);
|
|
63
|
+
}, t.blur = (...o) => {
|
|
64
|
+
r(e) || e.onBlur(...o), O?.(...o);
|
|
65
|
+
};
|
|
66
|
+
const I = R(p, t);
|
|
67
|
+
return h(s, I, b);
|
|
66
68
|
})()]);
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
71
|
});
|
|
70
72
|
export {
|
|
71
|
-
|
|
73
|
+
oe as default
|
|
72
74
|
};
|
|
73
75
|
//# sourceMappingURL=ReactiveField.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactiveField.mjs","sources":["../../src/components/ReactiveField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Ref, VNode } from 'vue'\nimport type { IReactiveFieldProps } from '../types'\nimport { isVoidField } from '@formily/core'\nimport { toJS } from '@formily/reactive'\nimport { useObserver } from '@formily/reactive-vue'\nimport { FormPath } from '@formily/shared'\nimport { defineComponent, h, inject, provide, ref, shallowRef, watch } from 'vue'\nimport { useField, useForm } from '../hooks'\nimport { useAttach } from '../hooks/useAttach'\n\nimport { FieldSymbol, SchemaOptionsSymbol } from '../shared'\nimport { createVNodeProps, extractAttrsAndEvents, mergeSlots, wrapFragment } from '../utils/reactiveFieldHelpers'\n\ntype ComponentEventArgs = unknown[]\ntype ComponentEventHandler = (...args: ComponentEventArgs) => unknown\n\nexport default defineComponent({\n name: 'ReactiveField',\n props: {\n fieldType: {\n type: String,\n default: 'Field',\n },\n fieldProps: {\n type: Object,\n default: () => ({}),\n },\n },\n setup(props: IReactiveFieldProps, { slots }) {\n const formRef = useForm()\n const parentRef = useField()\n const optionsRef = inject(SchemaOptionsSymbol, ref())\n\n useObserver()\n\n const createField = () =>\n formRef?.value?.[`create${props.fieldType}`]?.({\n ...props.fieldProps,\n basePath: props.fieldProps?.basePath ?? parentRef.value?.address,\n })\n\n const fieldRef = shallowRef(createField()) as Ref<GeneralField>\n\n watch(\n () => props.fieldProps,\n () => (fieldRef.value = createField()),\n )\n\n useAttach(fieldRef)\n provide(FieldSymbol, fieldRef)\n\n return () => {\n const field = fieldRef.value\n const options = optionsRef.value\n\n if (!field) {\n return slots.default?.()\n }\n\n if (field.display !== 'visible') {\n return null\n }\n\n const mergedSlots = mergeSlots(field, slots, field.content)\n\n const renderDecorator = (childNodes: Array<VNode | null | undefined>) => {\n const normalizedChildren = childNodes.filter(child => child != null) as VNode[]\n if (!field.decoratorType) {\n return wrapFragment(normalizedChildren)\n }\n\n const finalComponent\n = FormPath.getIn(options?.components, field.decoratorType as string) ?? field.decoratorType\n const decoratorEntry = Array.isArray(field.decorator) ? field.decorator[1] : undefined\n const decoratorAttrs = toJS(decoratorEntry) || {}\n const { attrs, events } = extractAttrsAndEvents(decoratorAttrs)\n const decoratorProps = createVNodeProps(attrs, events)\n\n return h(finalComponent, decoratorProps, {\n default: () => normalizedChildren,\n })\n }\n\n const renderComponent = (): VNode | null => {\n if (!field.componentType) {\n return wrapFragment(mergedSlots?.default?.())\n }\n\n const component\n = FormPath.getIn(options?.components, field.componentType as string) ?? field.componentType\n\n const componentEntry = Array.isArray(field.component) ? field.component[1] : undefined\n const originData = toJS(componentEntry) || {}\n const composedAttrs = {\n disabled: !isVoidField(field)\n ? field.pattern === 'disabled' || field.pattern === 'readPretty'\n : undefined,\n readOnly: !isVoidField(field) ? field.pattern === 'readOnly' : undefined,\n ...originData,\n
|
|
1
|
+
{"version":3,"file":"ReactiveField.mjs","sources":["../../src/components/ReactiveField.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Ref, VNode } from 'vue'\nimport type { IReactiveFieldProps } from '../types'\nimport { isVoidField } from '@formily/core'\nimport { toJS } from '@formily/reactive'\nimport { useObserver } from '@formily/reactive-vue'\nimport { FormPath } from '@formily/shared'\nimport { defineComponent, h, inject, provide, ref, shallowRef, watch } from 'vue'\nimport { useField, useForm } from '../hooks'\nimport { useAttach } from '../hooks/useAttach'\n\nimport { FieldSymbol, SchemaOptionsSymbol } from '../shared'\nimport { createVNodeProps, extractAttrsAndEvents, mergeSlots, wrapFragment } from '../utils/reactiveFieldHelpers'\n\ntype ComponentEventArgs = unknown[]\ntype ComponentEventHandler = (...args: ComponentEventArgs) => unknown\n\nexport default defineComponent({\n name: 'ReactiveField',\n props: {\n fieldType: {\n type: String,\n default: 'Field',\n },\n fieldProps: {\n type: Object,\n default: () => ({}),\n },\n },\n setup(props: IReactiveFieldProps, { slots }) {\n const formRef = useForm()\n const parentRef = useField()\n const optionsRef = inject(SchemaOptionsSymbol, ref())\n\n useObserver()\n\n const createField = () =>\n formRef?.value?.[`create${props.fieldType}`]?.({\n ...props.fieldProps,\n basePath: props.fieldProps?.basePath ?? parentRef.value?.address,\n })\n\n const fieldRef = shallowRef(createField()) as Ref<GeneralField>\n\n watch(\n () => props.fieldProps,\n () => (fieldRef.value = createField()),\n )\n\n useAttach(fieldRef)\n provide(FieldSymbol, fieldRef)\n\n return () => {\n const field = fieldRef.value\n const options = optionsRef.value\n\n if (!field) {\n return slots.default?.()\n }\n\n if (field.display !== 'visible') {\n return null\n }\n\n const mergedSlots = mergeSlots(field, slots, field.content)\n\n const renderDecorator = (childNodes: Array<VNode | null | undefined>) => {\n const normalizedChildren = childNodes.filter(child => child != null) as VNode[]\n if (!field.decoratorType) {\n return wrapFragment(normalizedChildren)\n }\n\n const finalComponent\n = FormPath.getIn(options?.components, field.decoratorType as string) ?? field.decoratorType\n const decoratorEntry = Array.isArray(field.decorator) ? field.decorator[1] : undefined\n const decoratorAttrs = toJS(decoratorEntry) || {}\n const { attrs, events } = extractAttrsAndEvents(decoratorAttrs)\n const decoratorProps = createVNodeProps(attrs, events)\n\n return h(finalComponent, decoratorProps, {\n default: () => normalizedChildren,\n })\n }\n\n const renderComponent = (): VNode | null => {\n if (!field.componentType) {\n return wrapFragment(mergedSlots?.default?.())\n }\n\n const component\n = FormPath.getIn(options?.components, field.componentType as string) ?? field.componentType\n\n const componentEntry = Array.isArray(field.component) ? field.component[1] : undefined\n const originData = toJS(componentEntry) || {}\n const fieldValue = !isVoidField(field) ? field.value : undefined\n const composedAttrs = {\n disabled: !isVoidField(field)\n ? field.pattern === 'disabled' || field.pattern === 'readPretty'\n : undefined,\n readOnly: !isVoidField(field) ? field.pattern === 'readOnly' : undefined,\n ...originData,\n modelValue: fieldValue,\n }\n const { attrs, events } = extractAttrsAndEvents(composedAttrs)\n const modelUpdateHandler: ComponentEventHandler | undefined = events['update:modelValue']\n const focusHandler: ComponentEventHandler | undefined = events.focus\n const blurHandler: ComponentEventHandler | undefined = events.blur\n\n const emitInput = (...args: ComponentEventArgs) => {\n if (!isVoidField(field)) {\n field.onInput(...(args as Parameters<typeof field.onInput>))\n }\n }\n\n events['update:modelValue'] = (...args: ComponentEventArgs) => {\n emitInput(...args)\n modelUpdateHandler?.(...args)\n }\n events.focus = (...args: ComponentEventArgs) => {\n if (!isVoidField(field)) {\n field.onFocus(...(args as Parameters<typeof field.onFocus>))\n }\n focusHandler?.(...args)\n }\n events.blur = (...args: ComponentEventArgs) => {\n if (!isVoidField(field)) {\n field.onBlur(...(args as Parameters<typeof field.onBlur>))\n }\n blurHandler?.(...args)\n }\n\n const componentProps = createVNodeProps(attrs, events)\n return h(component, componentProps, mergedSlots)\n }\n\n return renderDecorator([renderComponent()])\n }\n },\n})\n"],"names":["ReactiveField","defineComponent","props","slots","formRef","useForm","parentRef","useField","optionsRef","inject","SchemaOptionsSymbol","ref","useObserver","createField","fieldRef","shallowRef","watch","useAttach","provide","FieldSymbol","field","options","mergedSlots","mergeSlots","childNodes","normalizedChildren","child","wrapFragment","finalComponent","FormPath","decoratorEntry","decoratorAttrs","toJS","attrs","events","extractAttrsAndEvents","decoratorProps","createVNodeProps","component","componentEntry","originData","fieldValue","isVoidField","composedAttrs","modelUpdateHandler","focusHandler","blurHandler","emitInput","args","componentProps"],"mappings":"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"}
|
|
@@ -1,30 +1,23 @@
|
|
|
1
1
|
import { Schema as F } from "@formily/json-schema";
|
|
2
2
|
import { lazyMerge as R } from "@formily/shared";
|
|
3
3
|
import { defineComponent as d, computed as u, provide as c, h as i, Fragment as f, inject as g, shallowRef as j, watch as I } from "vue";
|
|
4
|
-
import "./ArrayField.mjs";
|
|
5
|
-
import "./ExpressionScope.mjs";
|
|
6
|
-
import "./Field.mjs";
|
|
7
|
-
import "./FormConsumer.mjs";
|
|
8
|
-
import "./FormProvider.mjs";
|
|
9
|
-
import "./ObjectField.mjs";
|
|
10
|
-
import M from "./RecursionField.mjs";
|
|
11
|
-
import "./VoidField.mjs";
|
|
12
4
|
import "@formily/core";
|
|
13
5
|
import "@formily/reactive-vue";
|
|
14
|
-
import { SchemaMarkupSymbol as h, SchemaOptionsSymbol as
|
|
15
|
-
import { resolveSchemaProps as
|
|
16
|
-
import { schemaFieldProps as
|
|
6
|
+
import { SchemaMarkupSymbol as h, SchemaOptionsSymbol as M, SchemaExpressionScopeSymbol as N } from "../shared/context.mjs";
|
|
7
|
+
import { resolveSchemaProps as S } from "../utils/resolveSchemaProps.mjs";
|
|
8
|
+
import { schemaFieldProps as k, markupSchemaProps as y } from "../utils/schemaFieldProps.mjs";
|
|
9
|
+
import D from "./RecursionField.mjs";
|
|
17
10
|
const v = {
|
|
18
11
|
nonameId: 0
|
|
19
12
|
};
|
|
20
13
|
function P() {
|
|
21
14
|
return `NO_NAME_FIELD_$${v.nonameId++}`;
|
|
22
15
|
}
|
|
23
|
-
function
|
|
16
|
+
function $(l = {}) {
|
|
24
17
|
const b = d({
|
|
25
18
|
name: "SchemaField",
|
|
26
19
|
inheritAttrs: !1,
|
|
27
|
-
props:
|
|
20
|
+
props: k,
|
|
28
21
|
setup(a, { slots: n }) {
|
|
29
22
|
const e = u(
|
|
30
23
|
() => F.isSchemaInstance(a.schema) ? a.schema : new F({
|
|
@@ -40,16 +33,16 @@ function K(l = {}) {
|
|
|
40
33
|
...a.components
|
|
41
34
|
}
|
|
42
35
|
}));
|
|
43
|
-
return c(h, e), c(
|
|
36
|
+
return c(h, e), c(M, s), c(N, o), () => {
|
|
44
37
|
v.nonameId = 0;
|
|
45
|
-
const r = n.default?.(), m = Array.isArray(r) ? r : r ? [r] : [], A = i(
|
|
38
|
+
const r = n.default?.(), m = Array.isArray(r) ? r : r ? [r] : [], A = i(D, {
|
|
46
39
|
...a,
|
|
47
40
|
schema: e.value
|
|
48
41
|
});
|
|
49
42
|
return i(f, null, [...m, A]);
|
|
50
43
|
};
|
|
51
44
|
}
|
|
52
|
-
}),
|
|
45
|
+
}), p = d({
|
|
53
46
|
name: "MarkupField",
|
|
54
47
|
props: {
|
|
55
48
|
type: String,
|
|
@@ -59,14 +52,14 @@ function K(l = {}) {
|
|
|
59
52
|
const e = g(h, null);
|
|
60
53
|
if (!e || !e.value)
|
|
61
54
|
return () => null;
|
|
62
|
-
const o = a.name || P(), s = (m) => e.value.items ? e.value.addProperty(o, m) : e.value.setItems(
|
|
55
|
+
const o = a.name || P(), s = (m) => e.value.items ? e.value.addProperty(o, m) : e.value.setItems(S(a)), r = j();
|
|
63
56
|
return I(
|
|
64
57
|
e,
|
|
65
58
|
() => {
|
|
66
59
|
if (e.value.type === "object" || e.value.type === "void")
|
|
67
|
-
r.value = e.value.addProperty(o,
|
|
60
|
+
r.value = e.value.addProperty(o, S(a));
|
|
68
61
|
else if (e.value.type === "array") {
|
|
69
|
-
const m = s(
|
|
62
|
+
const m = s(S(a));
|
|
70
63
|
r.value = Array.isArray(m) ? m[0] : m;
|
|
71
64
|
}
|
|
72
65
|
},
|
|
@@ -78,7 +71,7 @@ function K(l = {}) {
|
|
|
78
71
|
props: { ...y },
|
|
79
72
|
setup(e, { slots: o }) {
|
|
80
73
|
return () => i(
|
|
81
|
-
|
|
74
|
+
p,
|
|
82
75
|
{
|
|
83
76
|
...e,
|
|
84
77
|
type: a
|
|
@@ -89,7 +82,7 @@ function K(l = {}) {
|
|
|
89
82
|
});
|
|
90
83
|
return {
|
|
91
84
|
SchemaField: b,
|
|
92
|
-
SchemaMarkupField:
|
|
85
|
+
SchemaMarkupField: p,
|
|
93
86
|
SchemaStringField: t("string", "SchemaStringField"),
|
|
94
87
|
SchemaObjectField: t("object", "SchemaObjectField"),
|
|
95
88
|
SchemaArrayField: t("array", "SchemaArrayField"),
|
|
@@ -101,6 +94,6 @@ function K(l = {}) {
|
|
|
101
94
|
};
|
|
102
95
|
}
|
|
103
96
|
export {
|
|
104
|
-
|
|
97
|
+
$ as createSchemaField
|
|
105
98
|
};
|
|
106
99
|
//# sourceMappingURL=SchemaField.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaField.mjs","sources":["../../src/components/SchemaField.ts"],"sourcesContent":["import type { ISchema, SchemaTypes } from '@formily/json-schema'\nimport type {\n ISchemaFieldProps,\n ISchemaFieldVueFactoryOptions,\n SchemaExpressionScope,\n SchemaVueComponents,\n
|
|
1
|
+
{"version":3,"file":"SchemaField.mjs","sources":["../../src/components/SchemaField.ts"],"sourcesContent":["import type { ISchema, SchemaTypes } from '@formily/json-schema'\nimport type {\n ISchemaFieldProps,\n ISchemaFieldVueFactoryOptions,\n SchemaExpressionScope,\n SchemaVueComponents,\n} from '../types'\nimport type { MarkupSchemaProps } from '../utils/schemaFieldProps'\nimport { Schema } from '@formily/json-schema'\nimport { lazyMerge } from '@formily/shared'\nimport { computed, defineComponent, Fragment, h, inject, provide, shallowRef, watch } from 'vue'\nimport { SchemaExpressionScopeSymbol, SchemaMarkupSymbol, SchemaOptionsSymbol } from '../shared'\nimport { resolveSchemaProps } from '../utils/resolveSchemaProps'\nimport { markupSchemaProps, schemaFieldProps } from '../utils/schemaFieldProps'\nimport RecursionField from './RecursionField'\n\nconst env = {\n nonameId: 0,\n}\n\nfunction getRandomName() {\n return `NO_NAME_FIELD_$${env.nonameId++}`\n}\n\nexport function createSchemaField<Components extends SchemaVueComponents = SchemaVueComponents>(\n options: ISchemaFieldVueFactoryOptions<Components> = {},\n) {\n const SchemaField = defineComponent({\n name: 'SchemaField',\n inheritAttrs: false,\n props: schemaFieldProps,\n setup(props: ISchemaFieldProps, { slots }) {\n const schemaRef = computed(() =>\n Schema.isSchemaInstance(props.schema)\n ? props.schema\n : new Schema({\n type: 'object',\n ...props.schema,\n }),\n )\n\n const scopeRef = computed<SchemaExpressionScope>(() =>\n lazyMerge({} as SchemaExpressionScope, options.scope ?? {}, props.scope ?? {}),\n )\n\n const optionsRef = computed(() => ({\n ...options,\n components: {\n ...options.components,\n ...props.components,\n },\n }))\n\n provide(SchemaMarkupSymbol, schemaRef)\n provide(SchemaOptionsSymbol, optionsRef)\n provide(SchemaExpressionScopeSymbol, scopeRef)\n\n return () => {\n env.nonameId = 0\n\n const slotContent = slots.default?.()\n const normalizedSlots = Array.isArray(slotContent)\n ? slotContent\n : slotContent\n ? [slotContent]\n : []\n\n const recursionNode = h(RecursionField, {\n ...props,\n schema: schemaRef.value,\n })\n\n return h(Fragment, null, [...normalizedSlots, recursionNode])\n }\n },\n })\n\n const MarkupField = defineComponent({\n name: 'MarkupField',\n props: {\n type: String,\n ...markupSchemaProps,\n },\n setup(props: MarkupSchemaProps, { slots }) {\n const parentRef = inject(SchemaMarkupSymbol, null)\n if (!parentRef || !parentRef.value)\n return () => null\n\n const name = props.name || getRandomName()\n const appendArraySchema = (schema: ISchema) => {\n if (parentRef.value.items) {\n return parentRef.value.addProperty(name, schema)\n }\n else {\n return parentRef.value.setItems(resolveSchemaProps(props))\n }\n }\n\n const schemaRef = shallowRef()\n\n watch(\n parentRef,\n () => {\n if (parentRef.value.type === 'object' || parentRef.value.type === 'void') {\n schemaRef.value = parentRef.value.addProperty(name, resolveSchemaProps(props))\n }\n else if (parentRef.value.type === 'array') {\n const schema = appendArraySchema(resolveSchemaProps(props))\n schemaRef.value = Array.isArray(schema) ? schema[0] : schema\n }\n },\n { immediate: true },\n )\n provide(SchemaMarkupSymbol, schemaRef)\n\n return () => h(Fragment, null, slots.default?.())\n },\n })\n\n const SchemaFieldFactory = (type: SchemaTypes, name: string) => {\n return defineComponent({\n name,\n props: { ...markupSchemaProps },\n setup(props, { slots }) {\n return () =>\n h(\n MarkupField,\n {\n ...props,\n type,\n },\n slots,\n )\n },\n })\n }\n\n return {\n SchemaField,\n SchemaMarkupField: MarkupField,\n SchemaStringField: SchemaFieldFactory('string', 'SchemaStringField'),\n SchemaObjectField: SchemaFieldFactory('object', 'SchemaObjectField'),\n SchemaArrayField: SchemaFieldFactory('array', 'SchemaArrayField'),\n SchemaBooleanField: SchemaFieldFactory('boolean', 'SchemaBooleanField'),\n SchemaDateField: SchemaFieldFactory('date', 'SchemaDateField'),\n SchemaDateTimeField: SchemaFieldFactory('datetime', 'SchemaDatetimeField'),\n SchemaVoidField: SchemaFieldFactory('void', 'SchemaVoidField'),\n SchemaNumberField: SchemaFieldFactory('number', 'SchemaNumberField'),\n }\n}\n"],"names":["env","getRandomName","createSchemaField","options","SchemaField","defineComponent","schemaFieldProps","props","slots","schemaRef","computed","Schema","scopeRef","lazyMerge","optionsRef","provide","SchemaMarkupSymbol","SchemaOptionsSymbol","SchemaExpressionScopeSymbol","slotContent","normalizedSlots","recursionNode","h","RecursionField","Fragment","MarkupField","markupSchemaProps","parentRef","inject","name","appendArraySchema","schema","resolveSchemaProps","shallowRef","watch","SchemaFieldFactory","type"],"mappings":";;;;;;;;;AAgBA,MAAMA,IAAM;AAAA,EACV,UAAU;AACZ;AAEA,SAASC,IAAgB;AACvB,SAAO,kBAAkBD,EAAI,UAAU;AACzC;AAEO,SAASE,EACdC,IAAqD,IACrD;AACA,QAAMC,IAAcC,EAAgB;AAAA,IAClC,MAAM;AAAA,IACN,cAAc;AAAA,IACd,OAAOC;AAAA,IACP,MAAMC,GAA0B,EAAE,OAAAC,KAAS;AACzC,YAAMC,IAAYC;AAAA,QAAS,MACzBC,EAAO,iBAAiBJ,EAAM,MAAM,IAChCA,EAAM,SACN,IAAII,EAAO;AAAA,UACX,MAAM;AAAA,UACN,GAAGJ,EAAM;AAAA,QAAA,CACV;AAAA,MAAA,GAGCK,IAAWF;AAAA,QAAgC,MAC/CG,EAAU,CAAA,GAA6BV,EAAQ,SAAS,IAAII,EAAM,SAAS,CAAA,CAAE;AAAA,MAAA,GAGzEO,IAAaJ,EAAS,OAAO;AAAA,QACjC,GAAGP;AAAA,QACH,YAAY;AAAA,UACV,GAAGA,EAAQ;AAAA,UACX,GAAGI,EAAM;AAAA,QAAA;AAAA,MACX,EACA;AAEF,aAAAQ,EAAQC,GAAoBP,CAAS,GACrCM,EAAQE,GAAqBH,CAAU,GACvCC,EAAQG,GAA6BN,CAAQ,GAEtC,MAAM;AACX,QAAAZ,EAAI,WAAW;AAEf,cAAMmB,IAAcX,EAAM,UAAA,GACpBY,IAAkB,MAAM,QAAQD,CAAW,IAC7CA,IACAA,IACE,CAACA,CAAW,IACZ,CAAA,GAEAE,IAAgBC,EAAEC,GAAgB;AAAA,UACtC,GAAGhB;AAAA,UACH,QAAQE,EAAU;AAAA,QAAA,CACnB;AAED,eAAOa,EAAEE,GAAU,MAAM,CAAC,GAAGJ,GAAiBC,CAAa,CAAC;AAAA,MAC9D;AAAA,IACF;AAAA,EAAA,CACD,GAEKI,IAAcpB,EAAgB;AAAA,IAClC,MAAM;AAAA,IACN,OAAO;AAAA,MACL,MAAM;AAAA,MACN,GAAGqB;AAAA,IAAA;AAAA,IAEL,MAAMnB,GAA0B,EAAE,OAAAC,KAAS;AACzC,YAAMmB,IAAYC,EAAOZ,GAAoB,IAAI;AACjD,UAAI,CAACW,KAAa,CAACA,EAAU;AAC3B,eAAO,MAAM;AAEf,YAAME,IAAOtB,EAAM,QAAQN,EAAA,GACrB6B,IAAoB,CAACC,MACrBJ,EAAU,MAAM,QACXA,EAAU,MAAM,YAAYE,GAAME,CAAM,IAGxCJ,EAAU,MAAM,SAASK,EAAmBzB,CAAK,CAAC,GAIvDE,IAAYwB,EAAA;AAElB,aAAAC;AAAA,QACEP;AAAA,QACA,MAAM;AACJ,cAAIA,EAAU,MAAM,SAAS,YAAYA,EAAU,MAAM,SAAS;AAChE,YAAAlB,EAAU,QAAQkB,EAAU,MAAM,YAAYE,GAAMG,EAAmBzB,CAAK,CAAC;AAAA,mBAEtEoB,EAAU,MAAM,SAAS,SAAS;AACzC,kBAAMI,IAASD,EAAkBE,EAAmBzB,CAAK,CAAC;AAC1D,YAAAE,EAAU,QAAQ,MAAM,QAAQsB,CAAM,IAAIA,EAAO,CAAC,IAAIA;AAAA,UACxD;AAAA,QACF;AAAA,QACA,EAAE,WAAW,GAAA;AAAA,MAAK,GAEpBhB,EAAQC,GAAoBP,CAAS,GAE9B,MAAMa,EAAEE,GAAU,MAAMhB,EAAM,WAAW;AAAA,IAClD;AAAA,EAAA,CACD,GAEK2B,IAAqB,CAACC,GAAmBP,MACtCxB,EAAgB;AAAA,IACrB,MAAAwB;AAAA,IACA,OAAO,EAAE,GAAGH,EAAA;AAAA,IACZ,MAAMnB,GAAO,EAAE,OAAAC,KAAS;AACtB,aAAO,MACLc;AAAA,QACEG;AAAA,QACA;AAAA,UACE,GAAGlB;AAAA,UACH,MAAA6B;AAAA,QAAA;AAAA,QAEF5B;AAAA,MAAA;AAAA,IAEN;AAAA,EAAA,CACD;AAGH,SAAO;AAAA,IACL,aAAAJ;AAAA,IACA,mBAAmBqB;AAAA,IACnB,mBAAmBU,EAAmB,UAAU,mBAAmB;AAAA,IACnE,mBAAmBA,EAAmB,UAAU,mBAAmB;AAAA,IACnE,kBAAkBA,EAAmB,SAAS,kBAAkB;AAAA,IAChE,oBAAoBA,EAAmB,WAAW,oBAAoB;AAAA,IACtE,iBAAiBA,EAAmB,QAAQ,iBAAiB;AAAA,IAC7D,qBAAqBA,EAAmB,YAAY,qBAAqB;AAAA,IACzE,iBAAiBA,EAAmB,QAAQ,iBAAiB;AAAA,IAC7D,mBAAmBA,EAAmB,UAAU,mBAAmB;AAAA,EAAA;AAEvE;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silver-formily/vue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.1",
|
|
5
5
|
"description": "Vue3 版本的 @formily/vue",
|
|
6
6
|
"author": "hezhengxu",
|
|
7
7
|
"license": "MIT",
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
"build": "vite build",
|
|
15
15
|
"lint": "eslint .",
|
|
16
16
|
"lint:fix": "eslint . --fix",
|
|
17
|
-
"dev": "vitepress dev docs",
|
|
17
|
+
"docs:dev": "vitepress dev docs",
|
|
18
|
+
"docs:build": "vitepress build docs",
|
|
18
19
|
"commit": "czg",
|
|
19
20
|
"lint-staged": "lint-staged",
|
|
20
21
|
"release": "release-it",
|