cnhis-design-vue 3.1.16-beta.13 → 3.1.16-beta.14
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.
- package/es/packages/form-config/index.d.ts +7 -2
- package/es/packages/form-config/src/FormConfig.vue.d.ts +7 -2
- package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +3 -1
- package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +4 -1
- package/es/packages/form-render/index.d.ts +3 -1
- package/es/packages/form-render/index.js +0 -1
- package/es/packages/form-render/src/FormRender.js +5 -6
- package/es/packages/form-render/src/FormRender.vue.d.ts +3 -1
- package/es/packages/form-render/src/components/renderer/{combination/index.d.ts → combination.d.ts} +3 -3
- package/es/packages/form-render/src/components/renderer/combination.js +82 -0
- package/es/packages/form-render/src/components/renderer/formItem.js +11 -3
- package/es/packages/form-render/src/components/renderer/index.d.ts +1 -0
- package/es/packages/form-render/src/components/renderer/index.js +2 -1
- package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.d.ts +0 -0
- package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.js +0 -0
- package/es/packages/form-render/src/components/renderer/jsonCombination/index.d.ts +44 -0
- package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/index.js +14 -9
- package/es/packages/form-render/src/hooks/index.d.ts +0 -1
- package/es/packages/form-render/src/hooks/index.js +0 -1
- package/es/packages/form-render/src/hooks/useFieldListAdaptor.d.ts +1 -1
- package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +7 -3
- package/es/packages/form-render/src/types/fieldItem.d.ts +4 -0
- package/es/packages/form-render/src/types/index.d.ts +1 -1
- package/es/packages/form-render/src/utils/index.js +3 -2
- package/es/packages/form-render/src/utils/schema.d.ts +60 -0
- package/es/packages/form-render/src/utils/schema.js +5 -2
- package/es/packages/form-render/style/index.css +7 -0
- package/es/packages/index.css +7 -0
- package/es/packages/index.js +0 -1
- package/es/packages/shortcut-setter/index.d.ts +4 -1
- package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +4 -1
- package/package.json +1 -1
- package/es/packages/form-render/src/hooks/useInitialData.d.ts +0 -5
- package/es/packages/form-render/src/hooks/useInitialData.js +0 -16
|
@@ -229,6 +229,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
229
229
|
content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
|
|
230
230
|
lazyRequest?: boolean | undefined;
|
|
231
231
|
maxGroupNum?: number | undefined;
|
|
232
|
+
jsonCombination?: boolean | undefined;
|
|
232
233
|
children?: any[] | undefined;
|
|
233
234
|
properties?: any[] | undefined;
|
|
234
235
|
componentProps?: import("../../../es/src/types").AnyObject | undefined;
|
|
@@ -3988,7 +3989,9 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
3988
3989
|
}>>;
|
|
3989
3990
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
3990
3991
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
3991
|
-
formModel: import("@formily/core").Form<
|
|
3992
|
+
formModel: import("@formily/core").Form<{
|
|
3993
|
+
[x: string]: any;
|
|
3994
|
+
}>;
|
|
3992
3995
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
3993
3996
|
businessCollector: import("..").BusinessCollector;
|
|
3994
3997
|
formItemDepsCollector: import("..").FormItemDepsCollector;
|
|
@@ -9074,7 +9077,9 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
9074
9077
|
}>>;
|
|
9075
9078
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
9076
9079
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
9077
|
-
formModel: import("@formily/core").Form<
|
|
9080
|
+
formModel: import("@formily/core").Form<{
|
|
9081
|
+
[x: string]: any;
|
|
9082
|
+
}>;
|
|
9078
9083
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
9079
9084
|
businessCollector: import("..").BusinessCollector;
|
|
9080
9085
|
formItemDepsCollector: import("..").FormItemDepsCollector;
|
|
@@ -231,6 +231,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
231
231
|
content?: string | import("../..").FormRenderer | Record<string, import("../..").FormRenderer> | undefined;
|
|
232
232
|
lazyRequest?: boolean | undefined;
|
|
233
233
|
maxGroupNum?: number | undefined;
|
|
234
|
+
jsonCombination?: boolean | undefined;
|
|
234
235
|
children?: any[] | undefined;
|
|
235
236
|
properties?: any[] | undefined;
|
|
236
237
|
componentProps?: import("../../../../es/src/types").AnyObject | undefined;
|
|
@@ -3990,7 +3991,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3990
3991
|
}>>;
|
|
3991
3992
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
3992
3993
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
3993
|
-
formModel: import("@formily/core").Form<
|
|
3994
|
+
formModel: import("@formily/core").Form<{
|
|
3995
|
+
[x: string]: any;
|
|
3996
|
+
}>;
|
|
3994
3997
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
3995
3998
|
businessCollector: import("../..").BusinessCollector;
|
|
3996
3999
|
formItemDepsCollector: import("../..").FormItemDepsCollector;
|
|
@@ -9076,7 +9079,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
9076
9079
|
}>>;
|
|
9077
9080
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
9078
9081
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
9079
|
-
formModel: import("@formily/core").Form<
|
|
9082
|
+
formModel: import("@formily/core").Form<{
|
|
9083
|
+
[x: string]: any;
|
|
9084
|
+
}>;
|
|
9080
9085
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
9081
9086
|
businessCollector: import("../..").BusinessCollector;
|
|
9082
9087
|
formItemDepsCollector: import("../..").FormItemDepsCollector;
|
|
@@ -3580,7 +3580,9 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
3580
3580
|
}>>;
|
|
3581
3581
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
3582
3582
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
3583
|
-
formModel: import("@formily/core").Form<
|
|
3583
|
+
formModel: import("@formily/core").Form<{
|
|
3584
|
+
[x: string]: any;
|
|
3585
|
+
}>;
|
|
3584
3586
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
3585
3587
|
businessCollector: import("../../../../../es/packages/form-render").BusinessCollector;
|
|
3586
3588
|
formItemDepsCollector: import("../../../../../es/packages/form-render").FormItemDepsCollector;
|
|
@@ -92,6 +92,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
92
92
|
content?: string | import("../../../../../es/packages/form-render").FormRenderer | Record<string, import("../../../../../es/packages/form-render").FormRenderer> | undefined;
|
|
93
93
|
lazyRequest?: boolean | undefined;
|
|
94
94
|
maxGroupNum?: number | undefined;
|
|
95
|
+
jsonCombination?: boolean | undefined;
|
|
95
96
|
children?: any[] | undefined;
|
|
96
97
|
properties?: any[] | undefined;
|
|
97
98
|
componentProps?: import("../../../../../es/src/types").AnyObject | undefined;
|
|
@@ -3851,7 +3852,9 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
3851
3852
|
}>>;
|
|
3852
3853
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
3853
3854
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
3854
|
-
formModel: import("@formily/core").Form<
|
|
3855
|
+
formModel: import("@formily/core").Form<{
|
|
3856
|
+
[x: string]: any;
|
|
3857
|
+
}>;
|
|
3855
3858
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
3856
3859
|
businessCollector: import("../../../../../es/packages/form-render").BusinessCollector;
|
|
3857
3860
|
formItemDepsCollector: import("../../../../../es/packages/form-render").FormItemDepsCollector;
|
|
@@ -236,7 +236,9 @@ declare const FormRender: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
236
236
|
}>>;
|
|
237
237
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
238
238
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
239
|
-
formModel: import("@formily/core").Form<
|
|
239
|
+
formModel: import("@formily/core").Form<{
|
|
240
|
+
[x: string]: any;
|
|
241
|
+
}>;
|
|
240
242
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
241
243
|
businessCollector: import("./src/hooks").BusinessCollector;
|
|
242
244
|
formItemDepsCollector: import("./src/hooks").FormItemDepsCollector;
|
|
@@ -12,7 +12,6 @@ export { useFormValidator } from './src/hooks/useFormValidator.js';
|
|
|
12
12
|
export { BusinessCollector, useBusinessBinding } from './src/hooks/useBusinessBinding.js';
|
|
13
13
|
export { ContextCollector, useChangeContext } from './src/hooks/useChangeContext.js';
|
|
14
14
|
export { FormItemDepsCollector, useFormItemDeps } from './src/hooks/useFormItemDeps.js';
|
|
15
|
-
export { useInitialData } from './src/hooks/useInitialData.js';
|
|
16
15
|
export { useAnchor } from './src/hooks/useAnchor.js';
|
|
17
16
|
export { useFormContext } from './src/hooks/useFormContext.js';
|
|
18
17
|
|
|
@@ -6,10 +6,9 @@ import { cloneDeep, isArray } from 'lodash-es';
|
|
|
6
6
|
import { NForm, NTabs, NTabPane, NConfigProvider } from 'naive-ui';
|
|
7
7
|
import { FormItemLineBarDepKeyPrepend } from '../../../packages/form-render/src/constants';
|
|
8
8
|
import { useFormRenderLifeCycle } from '../../../packages/form-render/src/hooks/useFormRenderLifeCycle';
|
|
9
|
-
import { arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
|
|
9
|
+
import { createObjSchema, arrayed, queryDecorator, queryInput, getParentLinebar } from '../../../packages/form-render/src/utils';
|
|
10
10
|
import { useNuiThemeOverrides } from '../../../packages/form-table/src/hooks/useNuiThemeOverrides';
|
|
11
11
|
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.js';
|
|
12
|
-
import { useInitialData } from './hooks/useInitialData.js';
|
|
13
12
|
import { useFormContext } from './hooks/useFormContext.js';
|
|
14
13
|
import { useFieldListAdaptor } from './hooks/useFieldListAdaptor.js';
|
|
15
14
|
import { useFieldVisitor } from './hooks/useFieldVisitor.js';
|
|
@@ -50,7 +49,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
50
49
|
const { nuiThemeOverrides } = useNuiThemeOverrides();
|
|
51
50
|
useFormRenderLifeCycle(props).callLifeCycle("onSetup");
|
|
52
51
|
const formModel = createForm({
|
|
53
|
-
initialValues:
|
|
52
|
+
initialValues: props.initialData,
|
|
54
53
|
effects() {
|
|
55
54
|
onFieldValueChange("*", async (field) => {
|
|
56
55
|
const fieldKey = field.props.name.toString();
|
|
@@ -68,16 +67,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
68
67
|
});
|
|
69
68
|
const { SchemaField, businessCollector, formItemDepsCollector, changeContextCollector, formUUID } = useFormContext(props, formModel);
|
|
70
69
|
const scrollbarRef = ref();
|
|
71
|
-
const { schemaAdaptor } = useFieldListAdaptor(businessCollector
|
|
70
|
+
const { schemaAdaptor } = useFieldListAdaptor(businessCollector);
|
|
72
71
|
const parsedSchema = computed(() => {
|
|
73
72
|
if (props.schema) {
|
|
74
73
|
return props.schema;
|
|
75
74
|
}
|
|
76
75
|
if (props.fieldList) {
|
|
77
76
|
const _fieldList = useFieldVisitor().traverse(cloneDeep(props.fieldList), props.fieldVisitor);
|
|
78
|
-
return
|
|
77
|
+
return createObjSchema(schemaAdaptor(_fieldList));
|
|
79
78
|
}
|
|
80
|
-
return {
|
|
79
|
+
return createObjSchema({});
|
|
81
80
|
});
|
|
82
81
|
const { currentAnchor, generateAnchorList, anchorIdList, formHeight, onScroll } = useAnchor(props, scrollbarRef, formItemDepsCollector);
|
|
83
82
|
watch(parsedSchema, generateAnchorList, { immediate: true });
|
|
@@ -236,7 +236,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
236
236
|
}>>;
|
|
237
237
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
238
238
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
239
|
-
formModel: import("@formily/core").Form<
|
|
239
|
+
formModel: import("@formily/core").Form<{
|
|
240
|
+
[x: string]: any;
|
|
241
|
+
}>;
|
|
240
242
|
SchemaField: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
241
243
|
businessCollector: import("./hooks").BusinessCollector;
|
|
242
244
|
formItemDepsCollector: import("./hooks").FormItemDepsCollector;
|
package/es/packages/form-render/src/components/renderer/{combination/index.d.ts → combination.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FieldItem } from '
|
|
1
|
+
import { FieldItem } from '../../../../../../es/packages/form-render';
|
|
2
2
|
import { PropType } from 'vue';
|
|
3
3
|
export declare const COMBINATION: import("vue").DefineComponent<{
|
|
4
4
|
title: {
|
|
@@ -6,7 +6,7 @@ export declare const COMBINATION: import("vue").DefineComponent<{
|
|
|
6
6
|
default: string;
|
|
7
7
|
};
|
|
8
8
|
value: {
|
|
9
|
-
type:
|
|
9
|
+
type: ArrayConstructor;
|
|
10
10
|
};
|
|
11
11
|
maxGroupNum: {
|
|
12
12
|
type: NumberConstructor;
|
|
@@ -24,7 +24,7 @@ export declare const COMBINATION: import("vue").DefineComponent<{
|
|
|
24
24
|
default: string;
|
|
25
25
|
};
|
|
26
26
|
value: {
|
|
27
|
-
type:
|
|
27
|
+
type: ArrayConstructor;
|
|
28
28
|
};
|
|
29
29
|
maxGroupNum: {
|
|
30
30
|
type: NumberConstructor;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, inject, createVNode, createTextVNode } from 'vue';
|
|
2
|
+
import { isNumber } from 'lodash-es';
|
|
3
|
+
import { useFieldListAdaptor } from '../../../../../packages/form-render';
|
|
4
|
+
import { useField, RecursionField, connect } from '@formily/vue';
|
|
5
|
+
import { NButton } from 'naive-ui';
|
|
6
|
+
import { InjectionBusinessCollector } from '../../../../../packages/form-render/src/constants';
|
|
7
|
+
import { createObjSchema } from '../../../../../packages/form-render/src/utils';
|
|
8
|
+
|
|
9
|
+
const script = defineComponent({
|
|
10
|
+
name: "FormCombination",
|
|
11
|
+
props: {
|
|
12
|
+
title: {
|
|
13
|
+
type: String,
|
|
14
|
+
default: ""
|
|
15
|
+
},
|
|
16
|
+
value: {
|
|
17
|
+
type: Array
|
|
18
|
+
},
|
|
19
|
+
maxGroupNum: {
|
|
20
|
+
type: Number
|
|
21
|
+
},
|
|
22
|
+
getProperties: {
|
|
23
|
+
type: Function,
|
|
24
|
+
default: () => []
|
|
25
|
+
},
|
|
26
|
+
onInput: {},
|
|
27
|
+
onBlur: {},
|
|
28
|
+
onChange: {}
|
|
29
|
+
},
|
|
30
|
+
emits: ["update:value"],
|
|
31
|
+
setup(props) {
|
|
32
|
+
const field = useField();
|
|
33
|
+
const currentGroupNum = ref(1);
|
|
34
|
+
const maxGroupNum = computed(() => {
|
|
35
|
+
if (!isNumber(props.maxGroupNum))
|
|
36
|
+
return Infinity;
|
|
37
|
+
if (props.maxGroupNum < 1)
|
|
38
|
+
return 0;
|
|
39
|
+
return ~~props.maxGroupNum;
|
|
40
|
+
});
|
|
41
|
+
function addGroup() {
|
|
42
|
+
currentGroupNum.value++;
|
|
43
|
+
}
|
|
44
|
+
async function removeGroup(idx) {
|
|
45
|
+
currentGroupNum.value--;
|
|
46
|
+
await field.value.remove(idx);
|
|
47
|
+
}
|
|
48
|
+
const collector = inject(InjectionBusinessCollector);
|
|
49
|
+
const {
|
|
50
|
+
schemaAdaptor
|
|
51
|
+
} = useFieldListAdaptor(collector);
|
|
52
|
+
return () => {
|
|
53
|
+
return createVNode("section", {
|
|
54
|
+
"class": "form-render__combination"
|
|
55
|
+
}, [createVNode("header", {
|
|
56
|
+
"class": "form-render__combinationHeader"
|
|
57
|
+
}, [createVNode("div", {
|
|
58
|
+
"class": "form-render__combinationHeaderText"
|
|
59
|
+
}, [props.title]), createVNode(NButton, {
|
|
60
|
+
"onClick": addGroup,
|
|
61
|
+
"type": "info",
|
|
62
|
+
"text": true,
|
|
63
|
+
"disabled": currentGroupNum.value >= maxGroupNum.value
|
|
64
|
+
}, {
|
|
65
|
+
default: () => [createTextVNode("\u65B0\u589E")]
|
|
66
|
+
})]), Array.from({
|
|
67
|
+
length: currentGroupNum.value
|
|
68
|
+
}).map((_, idx) => createVNode("section", {
|
|
69
|
+
"class": "form-render__combinationContent"
|
|
70
|
+
}, [createVNode(RecursionField, {
|
|
71
|
+
"schema": createObjSchema(schemaAdaptor(props.getProperties())),
|
|
72
|
+
"name": idx
|
|
73
|
+
}, null), idx === 0 ? null : createVNode("i", {
|
|
74
|
+
"class": "form-render__combinationClose",
|
|
75
|
+
"onClick": () => removeGroup(idx)
|
|
76
|
+
}, ["-"])]))]);
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
const COMBINATION = connect(script);
|
|
81
|
+
|
|
82
|
+
export { COMBINATION };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, createVNode } from 'vue';
|
|
2
2
|
import { isVoidField } from '@formily/core';
|
|
3
|
-
import { connect, mapProps } from '@formily/vue';
|
|
3
|
+
import { useField, connect, mapProps } from '@formily/vue';
|
|
4
4
|
import { NFormItem } from 'naive-ui';
|
|
5
5
|
import AnnotationEdit from '../../../../../packages/annotation-edit';
|
|
6
|
-
import { InjectionAnnotation } from '../../../../../packages/form-render/src/constants';
|
|
6
|
+
import { InjectionAnnotation, InjectionFormUUID } from '../../../../../packages/form-render/src/constants';
|
|
7
|
+
import { elementIdEscape } from '../../../../../packages/form-render/src/utils';
|
|
7
8
|
|
|
8
9
|
const script = defineComponent({
|
|
9
10
|
props: {
|
|
@@ -38,6 +39,11 @@ const script = defineComponent({
|
|
|
38
39
|
return annotation.value && props.annotation !== false;
|
|
39
40
|
});
|
|
40
41
|
const showLabel = computed(() => props.label && props.label !== " ");
|
|
42
|
+
const field = useField();
|
|
43
|
+
const uuid = inject(InjectionFormUUID);
|
|
44
|
+
const id = computed(() => {
|
|
45
|
+
return elementIdEscape(`${uuid}-${field.value.path.toString()}`);
|
|
46
|
+
});
|
|
41
47
|
function renderLabel() {
|
|
42
48
|
return showLabel.value ? createVNode("section", {
|
|
43
49
|
"class": "form-render__formItemLabel"
|
|
@@ -47,7 +53,9 @@ const script = defineComponent({
|
|
|
47
53
|
}]
|
|
48
54
|
}, [props.label]), showAnnotation.value ? renderAnnotation() : null]) : null;
|
|
49
55
|
}
|
|
50
|
-
return () => createVNode(NFormItem,
|
|
56
|
+
return () => createVNode(NFormItem, {
|
|
57
|
+
id: id.value
|
|
58
|
+
}, {
|
|
51
59
|
...slots,
|
|
52
60
|
label: renderLabel
|
|
53
61
|
});
|
|
@@ -7,7 +7,8 @@ export { LINEBAR } from './linebar.js';
|
|
|
7
7
|
export { INPUT_GROUP } from './inputGroup.js';
|
|
8
8
|
export { DATE } from './date.js';
|
|
9
9
|
export { SEARCH_CASCADE } from './cascader.js';
|
|
10
|
-
export {
|
|
10
|
+
export { JSON_COMBINATION } from './jsonCombination/index.js';
|
|
11
|
+
export { COMBINATION } from './combination.js';
|
|
11
12
|
export { CHECKBOX } from './checkbox.js';
|
|
12
13
|
export { SWITCH } from './switch.js';
|
|
13
14
|
export { RADIO } from './radio.js';
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { FieldItem } from '../../../../../../../es/packages/form-render';
|
|
2
|
+
import { PropType } from 'vue';
|
|
3
|
+
export declare const JSON_COMBINATION: import("vue").DefineComponent<{
|
|
4
|
+
title: {
|
|
5
|
+
type: StringConstructor;
|
|
6
|
+
default: string;
|
|
7
|
+
};
|
|
8
|
+
value: {
|
|
9
|
+
type: (ArrayConstructor | StringConstructor)[];
|
|
10
|
+
};
|
|
11
|
+
maxGroupNum: {
|
|
12
|
+
type: NumberConstructor;
|
|
13
|
+
};
|
|
14
|
+
getProperties: {
|
|
15
|
+
type: PropType<() => FieldItem[]>;
|
|
16
|
+
default: () => never[];
|
|
17
|
+
};
|
|
18
|
+
onInput: {};
|
|
19
|
+
onBlur: {};
|
|
20
|
+
onChange: {};
|
|
21
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
22
|
+
title: {
|
|
23
|
+
type: StringConstructor;
|
|
24
|
+
default: string;
|
|
25
|
+
};
|
|
26
|
+
value: {
|
|
27
|
+
type: (ArrayConstructor | StringConstructor)[];
|
|
28
|
+
};
|
|
29
|
+
maxGroupNum: {
|
|
30
|
+
type: NumberConstructor;
|
|
31
|
+
};
|
|
32
|
+
getProperties: {
|
|
33
|
+
type: PropType<() => FieldItem[]>;
|
|
34
|
+
default: () => never[];
|
|
35
|
+
};
|
|
36
|
+
onInput: {};
|
|
37
|
+
onBlur: {};
|
|
38
|
+
onChange: {};
|
|
39
|
+
}>> & {
|
|
40
|
+
"onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
title: string;
|
|
43
|
+
getProperties: () => FieldItem[];
|
|
44
|
+
}>;
|
package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/index.js
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineComponent, ref, computed, watch, onMounted, createVNode, createTextVNode } from 'vue';
|
|
2
2
|
import { isField } from '@formily/core';
|
|
3
3
|
import { Path } from '@formily/path';
|
|
4
|
-
import { isNumber, isEqual } from 'lodash-es';
|
|
5
|
-
import { useDeepValidate } from '../../../../../../packages/form-render/src/components/renderer/
|
|
6
|
-
import {
|
|
4
|
+
import { isNumber, isArray, isEqual } from 'lodash-es';
|
|
5
|
+
import { useDeepValidate } from '../../../../../../packages/form-render/src/components/renderer/jsonCombination/hooks/useDeepValidate';
|
|
6
|
+
import { formRenderLog, mergeDeepProperties } from '../../../utils/index.js';
|
|
7
7
|
import { connect, mapProps } from '@formily/vue';
|
|
8
8
|
import { useDebounceFn, isObject } from '@vueuse/core';
|
|
9
9
|
import { NButton } from 'naive-ui';
|
|
@@ -11,14 +11,14 @@ import FormRender from '../../../FormRender.js';
|
|
|
11
11
|
import { assignUpdateValue } from '../../../utils/schema.js';
|
|
12
12
|
|
|
13
13
|
const script = defineComponent({
|
|
14
|
-
name: "
|
|
14
|
+
name: "FormJsonCombination",
|
|
15
15
|
props: {
|
|
16
16
|
title: {
|
|
17
17
|
type: String,
|
|
18
18
|
default: ""
|
|
19
19
|
},
|
|
20
20
|
value: {
|
|
21
|
-
type: String
|
|
21
|
+
type: [String, Array]
|
|
22
22
|
},
|
|
23
23
|
maxGroupNum: {
|
|
24
24
|
type: Number
|
|
@@ -35,12 +35,18 @@ const script = defineComponent({
|
|
|
35
35
|
setup(props, {
|
|
36
36
|
emit
|
|
37
37
|
}) {
|
|
38
|
+
formRenderLog("\u5F53\u524DCOMBINATION\u63A7\u4EF6\u4E3Ajson\u6A21\u5F0F,\u63A8\u8350\u4F7F\u7528\u975Ejson\u6A21\u5F0F,FieldItem.jsonCombination=false", "warn");
|
|
38
39
|
const emitChange = useDebounceFn(function emitChange2() {
|
|
39
40
|
emit("update:value", JSON.stringify(combinationData.value));
|
|
40
41
|
}, 300);
|
|
41
42
|
const combinationData = ref([]);
|
|
42
43
|
const currentGroupNum = computed(() => combinationData.value.length);
|
|
43
44
|
function setCombinationData(data, withInitialData = false) {
|
|
45
|
+
if (isArray(data)) {
|
|
46
|
+
if (!data.length)
|
|
47
|
+
data.push({});
|
|
48
|
+
data = JSON.stringify(data);
|
|
49
|
+
}
|
|
44
50
|
const parsedData = getParsedData(data);
|
|
45
51
|
if (!needLoad(parsedData))
|
|
46
52
|
return;
|
|
@@ -66,7 +72,6 @@ const script = defineComponent({
|
|
|
66
72
|
return null;
|
|
67
73
|
return result;
|
|
68
74
|
} catch (e) {
|
|
69
|
-
formRenderLog(`invalid JSON value ${data2} in COMBINATION => ${props.title}`, "warn");
|
|
70
75
|
return null;
|
|
71
76
|
}
|
|
72
77
|
}
|
|
@@ -141,7 +146,7 @@ const script = defineComponent({
|
|
|
141
146
|
})]), Array.from({
|
|
142
147
|
length: currentGroupNum.value
|
|
143
148
|
}).map((_, idx) => createVNode("section", {
|
|
144
|
-
"class": "form-
|
|
149
|
+
"class": "form-render__combinationContentJson"
|
|
145
150
|
}, [createVNode(FormRenderComponent, {
|
|
146
151
|
"ref": (_ref) => setFormRenderRef(idx, _ref),
|
|
147
152
|
"fieldList": props.getProperties(),
|
|
@@ -153,6 +158,6 @@ const script = defineComponent({
|
|
|
153
158
|
};
|
|
154
159
|
}
|
|
155
160
|
});
|
|
156
|
-
const
|
|
161
|
+
const JSON_COMBINATION = connect(script, mapProps(assignUpdateValue));
|
|
157
162
|
|
|
158
|
-
export {
|
|
163
|
+
export { JSON_COMBINATION };
|
|
@@ -9,6 +9,5 @@ export { useFormValidator } from './useFormValidator.js';
|
|
|
9
9
|
export { BusinessCollector, useBusinessBinding } from './useBusinessBinding.js';
|
|
10
10
|
export { ContextCollector, useChangeContext } from './useChangeContext.js';
|
|
11
11
|
export { FormItemDepsCollector, useFormItemDeps } from './useFormItemDeps.js';
|
|
12
|
-
export { useInitialData } from './useInitialData.js';
|
|
13
12
|
export { useAnchor } from './useAnchor.js';
|
|
14
13
|
export { useFormContext } from './useFormContext.js';
|
|
@@ -3,7 +3,7 @@ import { FieldItem } from '../types';
|
|
|
3
3
|
/**
|
|
4
4
|
* @description 胶水层, 将低代码平台中的fieldList转换为JSONSchema
|
|
5
5
|
*/
|
|
6
|
-
export declare function useFieldListAdaptor(collector: BusinessCollector
|
|
6
|
+
export declare function useFieldListAdaptor(collector: BusinessCollector): {
|
|
7
7
|
schemaAdaptor: (fieldList: FieldItem[]) => Record<string, import("@formily/json-schema/esm/types").Stringify<{
|
|
8
8
|
[key: symbol]: any;
|
|
9
9
|
[key: `x-${string}`]: any;
|
|
@@ -2,10 +2,10 @@ import { isObject } from '@vueuse/core';
|
|
|
2
2
|
import { pick } from 'lodash-es';
|
|
3
3
|
import { useFormValidator, useTypeNormalize } from '../../../../packages/form-render';
|
|
4
4
|
import { arrayed, parseNumberFromMaybeString, formRenderLog } from '../utils/index.js';
|
|
5
|
-
import { fieldKeyEscape, createLinebarId
|
|
5
|
+
import { fieldKeyEscape, createLinebarId } from '../utils/schema.js';
|
|
6
6
|
import { transformDateFormat } from '../utils/business.js';
|
|
7
7
|
|
|
8
|
-
function useFieldListAdaptor(collector
|
|
8
|
+
function useFieldListAdaptor(collector) {
|
|
9
9
|
const { createValidatorSchema } = useFormValidator();
|
|
10
10
|
const createStandardSchema = (item) => {
|
|
11
11
|
var _a;
|
|
@@ -14,6 +14,7 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
14
14
|
type: (_a = item.fieldType) != null ? _a : "string",
|
|
15
15
|
title: item.alias || item.name,
|
|
16
16
|
"x-component": item.html_type,
|
|
17
|
+
default: item.default_val,
|
|
17
18
|
"x-component-props": {
|
|
18
19
|
placeholder: item.placeholder,
|
|
19
20
|
clearable: item.is_empty === "0",
|
|
@@ -38,7 +39,6 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
38
39
|
showLabel: item.hide_title !== "1",
|
|
39
40
|
propertyKey: item.val_key,
|
|
40
41
|
annotation: item.annotation,
|
|
41
|
-
id: elementIdEscape(`${uuid}-${item.val_key}`),
|
|
42
42
|
...item.decoratorProps || {}
|
|
43
43
|
}
|
|
44
44
|
});
|
|
@@ -102,6 +102,10 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
102
102
|
};
|
|
103
103
|
const createCombinationSchema = (item) => {
|
|
104
104
|
const schema = createStandardSchema(item);
|
|
105
|
+
schema.type = "array";
|
|
106
|
+
if (item.jsonCombination !== false) {
|
|
107
|
+
schema["x-component"] = "JSON_COMBINATION";
|
|
108
|
+
}
|
|
105
109
|
Object.assign(schema["x-decorator-props"], {
|
|
106
110
|
showLabel: false,
|
|
107
111
|
showFeedback: false
|
|
@@ -43,7 +43,7 @@ export declare type FormChangePayload = {
|
|
|
43
43
|
fieldKey: string;
|
|
44
44
|
fieldName: string;
|
|
45
45
|
fieldInstance: DataField;
|
|
46
|
-
context
|
|
46
|
+
context?: FormChangeContext;
|
|
47
47
|
};
|
|
48
48
|
export declare type DependKeyType = string | Record<string, string> | Array<{
|
|
49
49
|
paramName: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { inject, provide, computed, createVNode, Fragment } from 'vue';
|
|
2
|
+
import { Path } from '@formily/path';
|
|
2
3
|
import { isObject } from '@vue/shared';
|
|
3
4
|
import { isNumber, isString, isFunction } from 'lodash-es';
|
|
4
5
|
export { isIdCard, isMobile, parseAge2Birthday, parseAge2FromContext, parseBirthday, parseIdCard, transformDateFormat } from './business.js';
|
|
5
6
|
export { queryDecorator, queryInput } from './dom.js';
|
|
6
|
-
export { assignUpdateValue, createLinebarId, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema } from './schema.js';
|
|
7
|
+
export { assignUpdateValue, createLinebarId, createObjSchema, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema } from './schema.js';
|
|
7
8
|
|
|
8
9
|
function formRenderLog(message, type = "log") {
|
|
9
10
|
console[type](`[FormRender]: ${message}`);
|
|
@@ -19,7 +20,7 @@ function mergeDeepProperties(target, fieldList, traverseProperties = ["children"
|
|
|
19
20
|
if (!isObject(field))
|
|
20
21
|
return;
|
|
21
22
|
if (targetPropertyFor(field) != null && _target[propertyFor(field)] == null) {
|
|
22
|
-
_target
|
|
23
|
+
Path.setIn(_target, propertyFor(field), targetPropertyFor(field));
|
|
23
24
|
}
|
|
24
25
|
traverseProperties.forEach((p) => {
|
|
25
26
|
if (!field[p])
|
|
@@ -14,3 +14,63 @@ export declare function assignUpdateValue(props: AnyObject, field: GeneralField)
|
|
|
14
14
|
[x: string]: any;
|
|
15
15
|
};
|
|
16
16
|
export declare function traverseFieldList(fieldList: FieldItem[], handler: (field: FieldItem) => void): void;
|
|
17
|
+
export declare function createObjSchema(properties: Record<string, ISchema>): {
|
|
18
|
+
type: string;
|
|
19
|
+
properties: Record<string, import("@formily/json-schema/esm/types").Stringify<{
|
|
20
|
+
[key: symbol]: any;
|
|
21
|
+
[key: `x-${string}`]: any;
|
|
22
|
+
[key: `x-${number}`]: any;
|
|
23
|
+
version?: string | undefined;
|
|
24
|
+
name?: import("@formily/json-schema/esm/types").SchemaKey | undefined;
|
|
25
|
+
title?: any;
|
|
26
|
+
description?: any;
|
|
27
|
+
default?: any;
|
|
28
|
+
readOnly?: boolean | undefined;
|
|
29
|
+
writeOnly?: boolean | undefined;
|
|
30
|
+
type?: import("@formily/json-schema/esm/types").SchemaTypes | undefined;
|
|
31
|
+
enum?: import("@formily/json-schema/esm/types").SchemaEnum<any> | undefined;
|
|
32
|
+
const?: any;
|
|
33
|
+
multipleOf?: number | undefined;
|
|
34
|
+
maximum?: number | undefined;
|
|
35
|
+
exclusiveMaximum?: number | undefined;
|
|
36
|
+
minimum?: number | undefined;
|
|
37
|
+
exclusiveMinimum?: number | undefined;
|
|
38
|
+
maxLength?: number | undefined;
|
|
39
|
+
minLength?: number | undefined;
|
|
40
|
+
pattern?: string | RegExp | undefined;
|
|
41
|
+
maxItems?: number | undefined;
|
|
42
|
+
minItems?: number | undefined;
|
|
43
|
+
uniqueItems?: boolean | undefined;
|
|
44
|
+
maxProperties?: number | undefined;
|
|
45
|
+
minProperties?: number | undefined;
|
|
46
|
+
required?: string | boolean | string[] | undefined;
|
|
47
|
+
format?: string | undefined;
|
|
48
|
+
$ref?: string | undefined;
|
|
49
|
+
$namespace?: string | undefined;
|
|
50
|
+
definitions?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
|
|
51
|
+
properties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
|
|
52
|
+
items?: import("@formily/json-schema/esm/types").SchemaItems<any, any, any, any, any, any, any, any> | undefined;
|
|
53
|
+
additionalItems?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
|
|
54
|
+
patternProperties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
|
|
55
|
+
additionalProperties?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
|
|
56
|
+
"x-value"?: any;
|
|
57
|
+
"x-index"?: number | undefined;
|
|
58
|
+
"x-pattern"?: any;
|
|
59
|
+
"x-display"?: any;
|
|
60
|
+
"x-validator"?: any;
|
|
61
|
+
"x-decorator"?: any;
|
|
62
|
+
"x-decorator-props"?: any;
|
|
63
|
+
"x-component"?: any;
|
|
64
|
+
"x-component-props"?: any;
|
|
65
|
+
"x-reactions"?: import("@formily/json-schema/esm/types").SchemaReactions<any> | undefined;
|
|
66
|
+
"x-content"?: any;
|
|
67
|
+
"x-data"?: any;
|
|
68
|
+
"x-visible"?: boolean | undefined;
|
|
69
|
+
"x-hidden"?: boolean | undefined;
|
|
70
|
+
"x-disabled"?: boolean | undefined;
|
|
71
|
+
"x-editable"?: boolean | undefined;
|
|
72
|
+
"x-read-only"?: boolean | undefined;
|
|
73
|
+
"x-read-pretty"?: boolean | undefined;
|
|
74
|
+
"x-compile-omitted"?: string[] | undefined;
|
|
75
|
+
}>>;
|
|
76
|
+
};
|
|
@@ -14,7 +14,7 @@ function fieldKeyEscape(fieldList) {
|
|
|
14
14
|
return fieldList.map((f) => f.val_key).join("-").replace(/[.]/g, "_");
|
|
15
15
|
}
|
|
16
16
|
function elementIdEscape(id) {
|
|
17
|
-
return id.replace(
|
|
17
|
+
return id.replace(/[.]/g, "-");
|
|
18
18
|
}
|
|
19
19
|
function createLinebarId(id) {
|
|
20
20
|
return elementIdEscape(`id-${id}`);
|
|
@@ -90,5 +90,8 @@ function traverseFieldList(fieldList, handler) {
|
|
|
90
90
|
}
|
|
91
91
|
traverse(fieldList);
|
|
92
92
|
}
|
|
93
|
+
function createObjSchema(properties) {
|
|
94
|
+
return { type: "object", properties };
|
|
95
|
+
}
|
|
93
96
|
|
|
94
|
-
export { assignUpdateValue, createLinebarId, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema };
|
|
97
|
+
export { assignUpdateValue, createLinebarId, createObjSchema, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema };
|
|
@@ -125,8 +125,15 @@
|
|
|
125
125
|
vertical-align: middle;
|
|
126
126
|
font-size: 16px;
|
|
127
127
|
}
|
|
128
|
+
.form-render__combinationContentJson {
|
|
129
|
+
position: relative;
|
|
130
|
+
}
|
|
128
131
|
.form-render__combinationContent {
|
|
129
132
|
position: relative;
|
|
133
|
+
display: grid !important;
|
|
134
|
+
grid-template-columns: repeat(var(--column), minmax(0px, 1fr));
|
|
135
|
+
align-items: start;
|
|
136
|
+
gap: 0 16px;
|
|
130
137
|
}
|
|
131
138
|
.form-render__complex {
|
|
132
139
|
width: 100%;
|
package/es/packages/index.css
CHANGED
|
@@ -2946,8 +2946,15 @@ body > .vxe-table--tooltip-wrapper {
|
|
|
2946
2946
|
vertical-align: middle;
|
|
2947
2947
|
font-size: 16px;
|
|
2948
2948
|
}
|
|
2949
|
+
.form-render__combinationContentJson {
|
|
2950
|
+
position: relative;
|
|
2951
|
+
}
|
|
2949
2952
|
.form-render__combinationContent {
|
|
2950
2953
|
position: relative;
|
|
2954
|
+
display: grid !important;
|
|
2955
|
+
grid-template-columns: repeat(var(--column), minmax(0px, 1fr));
|
|
2956
|
+
align-items: start;
|
|
2957
|
+
gap: 0 16px;
|
|
2951
2958
|
}
|
|
2952
2959
|
.form-render__complex {
|
|
2953
2960
|
width: 100%;
|
package/es/packages/index.js
CHANGED
|
@@ -51,7 +51,6 @@ export { useFormValidator } from './form-render/src/hooks/useFormValidator.js';
|
|
|
51
51
|
export { BusinessCollector, useBusinessBinding } from './form-render/src/hooks/useBusinessBinding.js';
|
|
52
52
|
export { ContextCollector, useChangeContext } from './form-render/src/hooks/useChangeContext.js';
|
|
53
53
|
export { FormItemDepsCollector, useFormItemDeps } from './form-render/src/hooks/useFormItemDeps.js';
|
|
54
|
-
export { useInitialData } from './form-render/src/hooks/useInitialData.js';
|
|
55
54
|
export { useAnchor } from './form-render/src/hooks/useAnchor.js';
|
|
56
55
|
export { useFormContext } from './form-render/src/hooks/useFormContext.js';
|
|
57
56
|
export { GlobalShortcutProvider, ShortcutManager, useShortcuts } from './shortcut-provider/src/hooks/useShortcuts.js';
|
|
@@ -122,6 +122,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
122
122
|
content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
|
|
123
123
|
lazyRequest?: boolean | undefined;
|
|
124
124
|
maxGroupNum?: number | undefined;
|
|
125
|
+
jsonCombination?: boolean | undefined;
|
|
125
126
|
children?: any[] | undefined;
|
|
126
127
|
properties?: any[] | undefined;
|
|
127
128
|
componentProps?: import("../../../es/src/types").AnyObject | undefined;
|
|
@@ -1931,7 +1932,9 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1931
1932
|
}>>;
|
|
1932
1933
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
1933
1934
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
1934
|
-
formModel: import("@formily/core").Form<
|
|
1935
|
+
formModel: import("@formily/core").Form<{
|
|
1936
|
+
[x: string]: any;
|
|
1937
|
+
}>;
|
|
1935
1938
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
1936
1939
|
businessCollector: import("..").BusinessCollector;
|
|
1937
1940
|
formItemDepsCollector: import("..").FormItemDepsCollector;
|
|
@@ -124,6 +124,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
124
124
|
content?: string | import("../../../../es/packages/form-render").FormRenderer | Record<string, import("../../../../es/packages/form-render").FormRenderer> | undefined;
|
|
125
125
|
lazyRequest?: boolean | undefined;
|
|
126
126
|
maxGroupNum?: number | undefined;
|
|
127
|
+
jsonCombination?: boolean | undefined;
|
|
127
128
|
children?: any[] | undefined;
|
|
128
129
|
properties?: any[] | undefined;
|
|
129
130
|
componentProps?: import("../../../../es/src/types").AnyObject | undefined;
|
|
@@ -1933,7 +1934,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1933
1934
|
}>>;
|
|
1934
1935
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
1935
1936
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
1936
|
-
formModel: import("@formily/core").Form<
|
|
1937
|
+
formModel: import("@formily/core").Form<{
|
|
1938
|
+
[x: string]: any;
|
|
1939
|
+
}>;
|
|
1937
1940
|
SchemaField: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
1938
1941
|
businessCollector: import("../../../../es/packages/form-render").BusinessCollector;
|
|
1939
1942
|
formItemDepsCollector: import("../../../../es/packages/form-render").FormItemDepsCollector;
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Path } from '@formily/path';
|
|
2
|
-
import { mergeWith } from 'lodash-es';
|
|
3
|
-
import { traverseFieldList } from '../../../../packages/form-render/src/utils';
|
|
4
|
-
|
|
5
|
-
function useInitialData() {
|
|
6
|
-
function assignInitialData(initialData, fieldList) {
|
|
7
|
-
const defaultVal = {};
|
|
8
|
-
fieldList && traverseFieldList(fieldList, (field) => {
|
|
9
|
-
field.default_val != void 0 && Path.setIn(defaultVal, field.val_key, field.default_val);
|
|
10
|
-
});
|
|
11
|
-
return mergeWith({}, initialData, defaultVal);
|
|
12
|
-
}
|
|
13
|
-
return { assignInitialData };
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export { useInitialData };
|