@silver-formily/vue 2.3.2 → 2.3.4

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.
Files changed (102) hide show
  1. package/README.en.md +6 -6
  2. package/README.md +6 -6
  3. package/esm/components/ArrayField.d.ts +67 -58
  4. package/esm/components/ArrayField.mjs +23 -23
  5. package/esm/components/ArrayField.mjs.map +1 -1
  6. package/esm/components/ExpressionScope.d.ts +21 -16
  7. package/esm/components/ExpressionScope.mjs +22 -24
  8. package/esm/components/ExpressionScope.mjs.map +1 -1
  9. package/esm/components/Field.d.ts +67 -58
  10. package/esm/components/Field.mjs +23 -23
  11. package/esm/components/Field.mjs.map +1 -1
  12. package/esm/components/FormConsumer.d.ts +9 -4
  13. package/esm/components/FormConsumer.mjs +17 -18
  14. package/esm/components/FormConsumer.mjs.map +1 -1
  15. package/esm/components/FormProvider.d.ts +21 -16
  16. package/esm/components/FormProvider.mjs +26 -26
  17. package/esm/components/FormProvider.mjs.map +1 -1
  18. package/esm/components/ObjectField.d.ts +68 -58
  19. package/esm/components/ObjectField.mjs +23 -23
  20. package/esm/components/ObjectField.mjs.map +1 -1
  21. package/esm/components/ReactiveField.mjs +103 -75
  22. package/esm/components/ReactiveField.mjs.map +1 -1
  23. package/esm/components/RecursionField.d.ts +142 -22
  24. package/esm/components/RecursionField.mjs +123 -127
  25. package/esm/components/RecursionField.mjs.map +1 -1
  26. package/esm/components/SchemaField.d.ts +3041 -2919
  27. package/esm/components/SchemaField.mjs +104 -97
  28. package/esm/components/SchemaField.mjs.map +1 -1
  29. package/esm/components/VoidField.d.ts +48 -42
  30. package/esm/components/VoidField.mjs +23 -23
  31. package/esm/components/VoidField.mjs.map +1 -1
  32. package/esm/components/index.d.ts +9 -9
  33. package/esm/components/index.mjs +10 -21
  34. package/esm/hooks/index.d.ts +5 -5
  35. package/esm/hooks/index.mjs +6 -13
  36. package/esm/hooks/useAttach.mjs +21 -13
  37. package/esm/hooks/useAttach.mjs.map +1 -1
  38. package/esm/hooks/useField.d.ts +8 -3
  39. package/esm/hooks/useField.mjs +9 -8
  40. package/esm/hooks/useField.mjs.map +1 -1
  41. package/esm/hooks/useFieldSchema.d.ts +8 -1
  42. package/esm/hooks/useFieldSchema.mjs +9 -8
  43. package/esm/hooks/useFieldSchema.mjs.map +1 -1
  44. package/esm/hooks/useForm.d.ts +8 -3
  45. package/esm/hooks/useForm.mjs +9 -8
  46. package/esm/hooks/useForm.mjs.map +1 -1
  47. package/esm/hooks/useFormEffects.d.ts +7 -2
  48. package/esm/hooks/useFormEffects.mjs +18 -15
  49. package/esm/hooks/useFormEffects.mjs.map +1 -1
  50. package/esm/hooks/useInjectionCleaner.mjs +8 -7
  51. package/esm/hooks/useInjectionCleaner.mjs.map +1 -1
  52. package/esm/hooks/useParentForm.d.ts +8 -3
  53. package/esm/hooks/useParentForm.mjs +18 -11
  54. package/esm/hooks/useParentForm.mjs.map +1 -1
  55. package/esm/index.d.ts +19 -4
  56. package/esm/index.mjs +20 -42
  57. package/esm/shared/connect.d.ts +10 -5
  58. package/esm/shared/connect.mjs +69 -63
  59. package/esm/shared/connect.mjs.map +1 -1
  60. package/esm/shared/context.d.ts +15 -10
  61. package/esm/shared/context.mjs +11 -10
  62. package/esm/shared/context.mjs.map +1 -1
  63. package/esm/shared/index.d.ts +2 -2
  64. package/esm/shared/index.mjs +3 -14
  65. package/esm/types/index.d.ts +72 -68
  66. package/esm/types/validator.d.ts +39 -35
  67. package/esm/utils/fieldProps.mjs +53 -51
  68. package/esm/utils/fieldProps.mjs.map +1 -1
  69. package/esm/utils/getRawComponent.mjs +16 -12
  70. package/esm/utils/getRawComponent.mjs.map +1 -1
  71. package/esm/utils/reactiveFieldHelpers.mjs +116 -94
  72. package/esm/utils/reactiveFieldHelpers.mjs.map +1 -1
  73. package/esm/utils/recursionFieldProps.mjs +14 -13
  74. package/esm/utils/recursionFieldProps.mjs.map +1 -1
  75. package/esm/utils/resolveSchemaProps.mjs +13 -10
  76. package/esm/utils/resolveSchemaProps.mjs.map +1 -1
  77. package/esm/utils/runtimeProps.d.ts +10 -7
  78. package/esm/utils/runtimeProps.mjs +15 -15
  79. package/esm/utils/runtimeProps.mjs.map +1 -1
  80. package/esm/utils/schemaFieldProps.mjs +63 -62
  81. package/esm/utils/schemaFieldProps.mjs.map +1 -1
  82. package/package.json +13 -12
  83. package/esm/components/ReactiveField.d.ts +0 -16
  84. package/esm/components/index.mjs.map +0 -1
  85. package/esm/global.d.d.ts +0 -1
  86. package/esm/global.d.mjs +0 -2
  87. package/esm/global.d.mjs.map +0 -1
  88. package/esm/hooks/index.mjs.map +0 -1
  89. package/esm/hooks/useAttach.d.ts +0 -7
  90. package/esm/hooks/useInjectionCleaner.d.ts +0 -2
  91. package/esm/index.mjs.map +0 -1
  92. package/esm/shared/index.mjs.map +0 -1
  93. package/esm/types/index.mjs +0 -2
  94. package/esm/types/index.mjs.map +0 -1
  95. package/esm/types/validator.mjs +0 -2
  96. package/esm/types/validator.mjs.map +0 -1
  97. package/esm/utils/fieldProps.d.ts +0 -51
  98. package/esm/utils/getRawComponent.d.ts +0 -8
  99. package/esm/utils/reactiveFieldHelpers.d.ts +0 -16
  100. package/esm/utils/recursionFieldProps.d.ts +0 -67
  101. package/esm/utils/resolveSchemaProps.d.ts +0 -1
  102. package/esm/utils/schemaFieldProps.d.ts +0 -232
@@ -1,19 +1,18 @@
1
- import { useObserver as m } from "@silver-formily/reactive-vue";
2
- import { defineComponent as t } from "vue";
3
- import { useForm as s } from "../hooks/useForm.mjs";
4
- import "@formily/core";
5
- const p = t({
6
- name: "FormConsumer",
7
- inheritAttrs: !1,
8
- setup(n, { slots: e }) {
9
- m({
10
- scheduler: (o) => Promise.resolve().then(o)
11
- });
12
- const r = s();
13
- return () => e.default?.({ form: r.value }) ?? null;
14
- }
1
+ import { useForm } from "../hooks/useForm.mjs";
2
+ import "../hooks/index.mjs";
3
+ import { defineComponent } from "vue";
4
+ import { useObserver } from "@silver-formily/reactive-vue";
5
+ //#region src/components/FormConsumer.ts
6
+ var FormConsumer_default = defineComponent({
7
+ name: "FormConsumer",
8
+ inheritAttrs: false,
9
+ setup(_, { slots }) {
10
+ useObserver({ scheduler: (update) => Promise.resolve().then(update) });
11
+ const form = useForm();
12
+ return () => slots.default?.({ form: form.value }) ?? null;
13
+ }
15
14
  });
16
- export {
17
- p as default
18
- };
19
- //# sourceMappingURL=FormConsumer.mjs.map
15
+ //#endregion
16
+ export { FormConsumer_default as default };
17
+
18
+ //# sourceMappingURL=FormConsumer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormConsumer.mjs","sources":["../../src/components/FormConsumer.ts"],"sourcesContent":["import { useObserver } from '@silver-formily/reactive-vue'\nimport { defineComponent } from 'vue'\nimport { useForm } from '../hooks'\n\nexport default defineComponent({\n name: 'FormConsumer',\n inheritAttrs: false,\n setup(_, { slots }) {\n useObserver({\n scheduler: update => Promise.resolve().then(update),\n })\n\n const form = useForm()\n\n return () => slots.default?.({ form: form.value }) ?? null\n },\n})\n"],"names":["FormConsumer","defineComponent","_","slots","useObserver","update","form","useForm"],"mappings":";;;;AAIA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAMC,GAAG,EAAE,OAAAC,KAAS;AAClB,IAAAC,EAAY;AAAA,MACV,WAAW,CAAAC,MAAU,QAAQ,QAAA,EAAU,KAAKA,CAAM;AAAA,IAAA,CACnD;AAED,UAAMC,IAAOC,EAAA;AAEb,WAAO,MAAMJ,EAAM,UAAU,EAAE,MAAMG,EAAK,MAAA,CAAO,KAAK;AAAA,EACxD;AACF,CAAC;"}
1
+ {"version":3,"file":"FormConsumer.mjs","names":[],"sources":["../../src/components/FormConsumer.ts"],"sourcesContent":["import { useObserver } from '@silver-formily/reactive-vue'\nimport { defineComponent } from 'vue'\nimport { useForm } from '../hooks'\n\nexport default defineComponent({\n name: 'FormConsumer',\n inheritAttrs: false,\n setup(_, { slots }) {\n useObserver({\n scheduler: update => Promise.resolve().then(update),\n })\n\n const form = useForm()\n\n return () => slots.default?.({ form: form.value }) ?? null\n },\n})\n"],"mappings":";;;;;AAIA,IAAA,uBAAe,gBAAgB;CAC7B,MAAM;CACN,cAAc;CACd,MAAM,GAAG,EAAE,SAAS;AAClB,cAAY,EACV,YAAW,WAAU,QAAQ,SAAS,CAAC,KAAK,OAAO,EACpD,CAAC;EAEF,MAAM,OAAO,SAAS;AAEtB,eAAa,MAAM,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI;;CAEzD,CAAC"}
@@ -1,16 +1,21 @@
1
- import { PropType } from 'vue';
2
- import { IProviderProps } from '../types';
3
- declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
- form: {
5
- type: PropType<IProviderProps["form"]>;
6
- required: true;
7
- };
8
- }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
9
- [key: string]: any;
10
- }>[] | undefined, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
11
- form: {
12
- type: PropType<IProviderProps["form"]>;
13
- required: true;
14
- };
15
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
16
- export default _default;
1
+ import { IProviderProps } from "../types/index.js";
2
+ import * as _$vue from "vue";
3
+ import { PropType } from "vue";
4
+
5
+ //#region src/components/FormProvider.d.ts
6
+ declare const _default: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
7
+ form: {
8
+ type: PropType<IProviderProps["form"]>;
9
+ required: true;
10
+ };
11
+ }>, () => _$vue.VNode<_$vue.RendererNode, _$vue.RendererElement, {
12
+ [key: string]: any;
13
+ }>[] | undefined, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
14
+ form: {
15
+ type: PropType<IProviderProps["form"]>;
16
+ required: true;
17
+ };
18
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
19
+ //#endregion
20
+ export { _default };
21
+ //# sourceMappingURL=FormProvider.d.ts.map
@@ -1,27 +1,27 @@
1
- import { defineComponent as m, toRef as t, provide as p } from "vue";
2
- import { useAttach as i } from "../hooks/useAttach.mjs";
3
- import { useInjectionCleaner as f } from "../hooks/useInjectionCleaner.mjs";
4
- import { FormSymbol as n, FieldSymbol as a, SchemaMarkupSymbol as S, SchemaSymbol as c, SchemaExpressionScopeSymbol as l, SchemaOptionsSymbol as s } from "../shared/context.mjs";
5
- const h = m({
6
- name: "FormProvider",
7
- props: {
8
- form: {
9
- type: Object,
10
- required: !0
11
- }
12
- },
13
- setup(o, { slots: e }) {
14
- const r = i(t(o, "form"));
15
- return p(n, r), f([
16
- a,
17
- S,
18
- c,
19
- l,
20
- s
21
- ]), () => e.default?.();
22
- }
1
+ import { FieldSymbol, FormSymbol, SchemaExpressionScopeSymbol, SchemaMarkupSymbol, SchemaOptionsSymbol, SchemaSymbol } from "../shared/context.mjs";
2
+ import { useAttach } from "../hooks/useAttach.mjs";
3
+ import { useInjectionCleaner } from "../hooks/useInjectionCleaner.mjs";
4
+ import { defineComponent, provide, toRef } from "vue";
5
+ //#region src/components/FormProvider.ts
6
+ var FormProvider_default = defineComponent({
7
+ name: "FormProvider",
8
+ props: { form: {
9
+ type: Object,
10
+ required: true
11
+ } },
12
+ setup(props, { slots }) {
13
+ provide(FormSymbol, useAttach(toRef(props, "form")));
14
+ useInjectionCleaner([
15
+ FieldSymbol,
16
+ SchemaMarkupSymbol,
17
+ SchemaSymbol,
18
+ SchemaExpressionScopeSymbol,
19
+ SchemaOptionsSymbol
20
+ ]);
21
+ return () => slots.default?.();
22
+ }
23
23
  });
24
- export {
25
- h as default
26
- };
27
- //# sourceMappingURL=FormProvider.mjs.map
24
+ //#endregion
25
+ export { FormProvider_default as default };
26
+
27
+ //# sourceMappingURL=FormProvider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormProvider.mjs","sources":["../../src/components/FormProvider.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { IProviderProps } from '../types'\nimport { defineComponent, provide, toRef } from 'vue'\nimport { useAttach } from '../hooks/useAttach'\nimport { useInjectionCleaner } from '../hooks/useInjectionCleaner'\nimport {\n FieldSymbol,\n FormSymbol,\n SchemaExpressionScopeSymbol,\n SchemaMarkupSymbol,\n SchemaOptionsSymbol,\n SchemaSymbol,\n} from '../shared/context'\n\nexport default defineComponent({\n name: 'FormProvider',\n props: {\n form: {\n type: Object as PropType<IProviderProps['form']>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const formRef = useAttach(toRef(props, 'form'))\n provide(FormSymbol, formRef)\n useInjectionCleaner([\n FieldSymbol,\n SchemaMarkupSymbol,\n SchemaSymbol,\n SchemaExpressionScopeSymbol,\n SchemaOptionsSymbol,\n ])\n\n return () => slots.default?.()\n },\n})\n"],"names":["FormProvider","defineComponent","props","slots","formRef","useAttach","toRef","provide","FormSymbol","useInjectionCleaner","FieldSymbol","SchemaMarkupSymbol","SchemaSymbol","SchemaExpressionScopeSymbol","SchemaOptionsSymbol"],"mappings":";;;;AAcA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,UAAMC,IAAUC,EAAUC,EAAMJ,GAAO,MAAM,CAAC;AAC9C,WAAAK,EAAQC,GAAYJ,CAAO,GAC3BK,EAAoB;AAAA,MAClBC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA,CACD,GAEM,MAAMX,EAAM,UAAA;AAAA,EACrB;AACF,CAAC;"}
1
+ {"version":3,"file":"FormProvider.mjs","names":[],"sources":["../../src/components/FormProvider.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { IProviderProps } from '../types'\nimport { defineComponent, provide, toRef } from 'vue'\nimport { useAttach } from '../hooks/useAttach'\nimport { useInjectionCleaner } from '../hooks/useInjectionCleaner'\nimport {\n FieldSymbol,\n FormSymbol,\n SchemaExpressionScopeSymbol,\n SchemaMarkupSymbol,\n SchemaOptionsSymbol,\n SchemaSymbol,\n} from '../shared/context'\n\nexport default defineComponent({\n name: 'FormProvider',\n props: {\n form: {\n type: Object as PropType<IProviderProps['form']>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const formRef = useAttach(toRef(props, 'form'))\n provide(FormSymbol, formRef)\n useInjectionCleaner([\n FieldSymbol,\n SchemaMarkupSymbol,\n SchemaSymbol,\n SchemaExpressionScopeSymbol,\n SchemaOptionsSymbol,\n ])\n\n return () => slots.default?.()\n },\n})\n"],"mappings":";;;;;AAcA,IAAA,uBAAe,gBAAgB;CAC7B,MAAM;CACN,OAAO,EACL,MAAM;EACJ,MAAM;EACN,UAAU;EACX,EACF;CACD,MAAM,OAAO,EAAE,SAAS;AAEtB,UAAQ,YADQ,UAAU,MAAM,OAAO,OAAO,CAAC,CACnB;AAC5B,sBAAoB;GAClB;GACA;GACA;GACA;GACA;GACD,CAAC;AAEF,eAAa,MAAM,WAAW;;CAEjC,CAAC"}
@@ -1,58 +1,68 @@
1
- declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
- readonly name: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FormPathPattern>;
3
- readonly title: import('../utils/runtimeProps').RuntimeProp<any>;
4
- readonly description: import('../utils/runtimeProps').RuntimeProp<any>;
5
- readonly value: import('../utils/runtimeProps').RuntimeProp<any>;
6
- readonly initialValue: import('../utils/runtimeProps').RuntimeProp<any>;
7
- readonly basePath: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FormPathPattern | undefined>;
8
- readonly decorator: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDecorator<import('vue').Component, any> | undefined>;
9
- readonly decoratorContent: import('../utils/runtimeProps').RuntimeProp<any>;
10
- readonly component: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldComponent<import('vue').Component, any> | undefined>;
11
- readonly display: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDisplayTypes | undefined>;
12
- readonly pattern: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldPatternTypes | undefined>;
13
- readonly required: import('../utils/runtimeProps').RuntimeProp<boolean>;
14
- readonly validateFirst: import('../utils/runtimeProps').RuntimeProp<boolean>;
15
- readonly hidden: import('../utils/runtimeProps').RuntimeProp<boolean>;
16
- readonly visible: import('../utils/runtimeProps').RuntimeProp<boolean>;
17
- readonly editable: import('../utils/runtimeProps').RuntimeProp<boolean>;
18
- readonly disabled: import('../utils/runtimeProps').RuntimeProp<boolean>;
19
- readonly readOnly: import('../utils/runtimeProps').RuntimeProp<boolean>;
20
- readonly readPretty: import('../utils/runtimeProps').RuntimeProp<boolean>;
21
- readonly dataSource: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDataSource | undefined>;
22
- readonly validatePattern: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldPatternTypes[] | undefined>;
23
- readonly validateDisplay: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDisplayTypes[] | undefined>;
24
- readonly validator: import('../utils/runtimeProps').RuntimeProp<import('..').SchemaFieldValidator | undefined>;
25
- readonly reactions: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldReaction | import('@formily/core').FieldReaction[] | undefined>;
26
- readonly content: import('../utils/runtimeProps').RuntimeProp<any>;
27
- readonly data: import('../utils/runtimeProps').RuntimeProp<any>;
28
- }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
29
- [key: string]: any;
30
- }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
31
- readonly name: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FormPathPattern>;
32
- readonly title: import('../utils/runtimeProps').RuntimeProp<any>;
33
- readonly description: import('../utils/runtimeProps').RuntimeProp<any>;
34
- readonly value: import('../utils/runtimeProps').RuntimeProp<any>;
35
- readonly initialValue: import('../utils/runtimeProps').RuntimeProp<any>;
36
- readonly basePath: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FormPathPattern | undefined>;
37
- readonly decorator: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDecorator<import('vue').Component, any> | undefined>;
38
- readonly decoratorContent: import('../utils/runtimeProps').RuntimeProp<any>;
39
- readonly component: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldComponent<import('vue').Component, any> | undefined>;
40
- readonly display: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDisplayTypes | undefined>;
41
- readonly pattern: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldPatternTypes | undefined>;
42
- readonly required: import('../utils/runtimeProps').RuntimeProp<boolean>;
43
- readonly validateFirst: import('../utils/runtimeProps').RuntimeProp<boolean>;
44
- readonly hidden: import('../utils/runtimeProps').RuntimeProp<boolean>;
45
- readonly visible: import('../utils/runtimeProps').RuntimeProp<boolean>;
46
- readonly editable: import('../utils/runtimeProps').RuntimeProp<boolean>;
47
- readonly disabled: import('../utils/runtimeProps').RuntimeProp<boolean>;
48
- readonly readOnly: import('../utils/runtimeProps').RuntimeProp<boolean>;
49
- readonly readPretty: import('../utils/runtimeProps').RuntimeProp<boolean>;
50
- readonly dataSource: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDataSource | undefined>;
51
- readonly validatePattern: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldPatternTypes[] | undefined>;
52
- readonly validateDisplay: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldDisplayTypes[] | undefined>;
53
- readonly validator: import('../utils/runtimeProps').RuntimeProp<import('..').SchemaFieldValidator | undefined>;
54
- readonly reactions: import('../utils/runtimeProps').RuntimeProp<import('@formily/core').FieldReaction | import('@formily/core').FieldReaction[] | undefined>;
55
- readonly content: import('../utils/runtimeProps').RuntimeProp<any>;
56
- readonly data: import('../utils/runtimeProps').RuntimeProp<any>;
57
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
58
- export default _default;
1
+ import { SchemaFieldValidator } from "../types/index.js";
2
+ import { RuntimeProp } from "../utils/runtimeProps.js";
3
+ import * as _$vue from "vue";
4
+ import * as _$_formily_core0 from "@formily/core";
5
+
6
+ //#region src/components/ObjectField.d.ts
7
+ declare const _default: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
8
+ readonly name: RuntimeProp<_$_formily_core0.FormPathPattern>;
9
+ readonly title: RuntimeProp<any>;
10
+ readonly description: RuntimeProp<any>;
11
+ readonly value: RuntimeProp<any>;
12
+ readonly initialValue: RuntimeProp<any>;
13
+ readonly basePath: RuntimeProp<_$_formily_core0.FormPathPattern | undefined>;
14
+ readonly decorator: RuntimeProp<_$_formily_core0.FieldDecorator<_$vue.Component, any> | undefined>;
15
+ readonly decoratorContent: RuntimeProp<any>;
16
+ readonly component: RuntimeProp<_$_formily_core0.FieldComponent<_$vue.Component, any> | undefined>;
17
+ readonly display: RuntimeProp<_$_formily_core0.FieldDisplayTypes | undefined>;
18
+ readonly pattern: RuntimeProp<_$_formily_core0.FieldPatternTypes | undefined>;
19
+ readonly required: RuntimeProp<boolean>;
20
+ readonly validateFirst: RuntimeProp<boolean>;
21
+ readonly hidden: RuntimeProp<boolean>;
22
+ readonly visible: RuntimeProp<boolean>;
23
+ readonly editable: RuntimeProp<boolean>;
24
+ readonly disabled: RuntimeProp<boolean>;
25
+ readonly readOnly: RuntimeProp<boolean>;
26
+ readonly readPretty: RuntimeProp<boolean>;
27
+ readonly loading: RuntimeProp<boolean>;
28
+ readonly dataSource: RuntimeProp<_$_formily_core0.FieldDataSource | undefined>;
29
+ readonly validatePattern: RuntimeProp<_$_formily_core0.FieldPatternTypes[] | undefined>;
30
+ readonly validateDisplay: RuntimeProp<_$_formily_core0.FieldDisplayTypes[] | undefined>;
31
+ readonly validator: RuntimeProp<SchemaFieldValidator | undefined>;
32
+ readonly reactions: RuntimeProp<_$_formily_core0.FieldReaction | _$_formily_core0.FieldReaction[] | undefined>;
33
+ readonly content: RuntimeProp<any>;
34
+ readonly data: RuntimeProp<any>;
35
+ }>, () => _$vue.VNode<_$vue.RendererNode, _$vue.RendererElement, {
36
+ [key: string]: any;
37
+ }>, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
38
+ readonly name: RuntimeProp<_$_formily_core0.FormPathPattern>;
39
+ readonly title: RuntimeProp<any>;
40
+ readonly description: RuntimeProp<any>;
41
+ readonly value: RuntimeProp<any>;
42
+ readonly initialValue: RuntimeProp<any>;
43
+ readonly basePath: RuntimeProp<_$_formily_core0.FormPathPattern | undefined>;
44
+ readonly decorator: RuntimeProp<_$_formily_core0.FieldDecorator<_$vue.Component, any> | undefined>;
45
+ readonly decoratorContent: RuntimeProp<any>;
46
+ readonly component: RuntimeProp<_$_formily_core0.FieldComponent<_$vue.Component, any> | undefined>;
47
+ readonly display: RuntimeProp<_$_formily_core0.FieldDisplayTypes | undefined>;
48
+ readonly pattern: RuntimeProp<_$_formily_core0.FieldPatternTypes | undefined>;
49
+ readonly required: RuntimeProp<boolean>;
50
+ readonly validateFirst: RuntimeProp<boolean>;
51
+ readonly hidden: RuntimeProp<boolean>;
52
+ readonly visible: RuntimeProp<boolean>;
53
+ readonly editable: RuntimeProp<boolean>;
54
+ readonly disabled: RuntimeProp<boolean>;
55
+ readonly readOnly: RuntimeProp<boolean>;
56
+ readonly readPretty: RuntimeProp<boolean>;
57
+ readonly loading: RuntimeProp<boolean>;
58
+ readonly dataSource: RuntimeProp<_$_formily_core0.FieldDataSource | undefined>;
59
+ readonly validatePattern: RuntimeProp<_$_formily_core0.FieldPatternTypes[] | undefined>;
60
+ readonly validateDisplay: RuntimeProp<_$_formily_core0.FieldDisplayTypes[] | undefined>;
61
+ readonly validator: RuntimeProp<SchemaFieldValidator | undefined>;
62
+ readonly reactions: RuntimeProp<_$_formily_core0.FieldReaction | _$_formily_core0.FieldReaction[] | undefined>;
63
+ readonly content: RuntimeProp<any>;
64
+ readonly data: RuntimeProp<any>;
65
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
66
+ //#endregion
67
+ export { _default };
68
+ //# sourceMappingURL=ObjectField.d.ts.map
@@ -1,24 +1,24 @@
1
- import { defineComponent as r, h as i } from "vue";
2
- import { fieldProps as m } from "../utils/fieldProps.mjs";
3
- import { getRawComponent as n } from "../utils/getRawComponent.mjs";
4
- import p from "./ReactiveField.mjs";
5
- const c = r({
6
- name: "ObjectField",
7
- props: m,
8
- setup(e, { slots: t }) {
9
- return () => {
10
- const o = {
11
- fieldType: "ObjectField",
12
- fieldProps: {
13
- ...e,
14
- ...n(e)
15
- }
16
- };
17
- return i(p, o, t);
18
- };
19
- }
1
+ import { fieldProps } from "../utils/fieldProps.mjs";
2
+ import { getRawComponent } from "../utils/getRawComponent.mjs";
3
+ import ReactiveField_default from "./ReactiveField.mjs";
4
+ import { defineComponent, h } from "vue";
5
+ //#region src/components/ObjectField.ts
6
+ var ObjectField_default = defineComponent({
7
+ name: "ObjectField",
8
+ props: fieldProps,
9
+ setup(props, { slots }) {
10
+ return () => {
11
+ return h(ReactiveField_default, {
12
+ fieldType: "ObjectField",
13
+ fieldProps: {
14
+ ...props,
15
+ ...getRawComponent(props)
16
+ }
17
+ }, slots);
18
+ };
19
+ }
20
20
  });
21
- export {
22
- c as default
23
- };
24
- //# sourceMappingURL=ObjectField.mjs.map
21
+ //#endregion
22
+ export { ObjectField_default as default };
23
+
24
+ //# sourceMappingURL=ObjectField.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectField.mjs","sources":["../../src/components/ObjectField.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { fieldProps } from '../utils/fieldProps'\nimport { getRawComponent } from '../utils/getRawComponent'\nimport ReactiveField from './ReactiveField'\n\nexport default defineComponent({\n name: 'ObjectField',\n props: fieldProps,\n setup(props, { slots }) {\n return () => {\n const componentData = {\n fieldType: 'ObjectField',\n fieldProps: {\n ...props,\n ...getRawComponent(props),\n },\n }\n return h(ReactiveField, componentData, slots)\n }\n },\n})\n"],"names":["ObjectField","defineComponent","fieldProps","props","slots","componentData","getRawComponent","h","ReactiveField"],"mappings":";;;;AAKA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAO,EAAE,OAAAC,KAAS;AACtB,WAAO,MAAM;AACX,YAAMC,IAAgB;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,UACV,GAAGF;AAAA,UACH,GAAGG,EAAgBH,CAAK;AAAA,QAAA;AAAA,MAC1B;AAEF,aAAOI,EAAEC,GAAeH,GAAeD,CAAK;AAAA,IAC9C;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"ObjectField.mjs","names":["ReactiveField"],"sources":["../../src/components/ObjectField.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { fieldProps } from '../utils/fieldProps'\nimport { getRawComponent } from '../utils/getRawComponent'\nimport ReactiveField from './ReactiveField'\n\nexport default defineComponent({\n name: 'ObjectField',\n props: fieldProps,\n setup(props, { slots }) {\n return () => {\n const componentData = {\n fieldType: 'ObjectField',\n fieldProps: {\n ...props,\n ...getRawComponent(props),\n },\n }\n return h(ReactiveField, componentData, slots)\n }\n },\n})\n"],"mappings":";;;;;AAKA,IAAA,sBAAe,gBAAgB;CAC7B,MAAM;CACN,OAAO;CACP,MAAM,OAAO,EAAE,SAAS;AACtB,eAAa;AAQX,UAAO,EAAEA,uBAPa;IACpB,WAAW;IACX,YAAY;KACV,GAAG;KACH,GAAG,gBAAgB,MAAM;KAC1B;IACF,EACsC,MAAM;;;CAGlD,CAAC"}
@@ -1,76 +1,104 @@
1
- import { isVoidField as r } from "@formily/core";
2
- import { toJS as P } from "@formily/reactive";
3
- import { FormPath as h } from "@formily/shared";
4
- import { useObserver as z } from "@silver-formily/reactive-vue";
5
- import { defineComponent as B, inject as F, ref as S, shallowRef as J, watch as N, provide as U, h as A } from "vue";
6
- import { useField as $ } from "../hooks/useField.mjs";
7
- import { SchemaOptionsSymbol as k, SchemaSymbol as q, FieldSymbol as G } from "../shared/context.mjs";
8
- import { useForm as K } from "../hooks/useForm.mjs";
9
- import { useAttach as L } from "../hooks/useAttach.mjs";
10
- import { mergeSlots as R, wrapFragment as T, extractAttrsAndEvents as C, createVNodeProps as V } from "../utils/reactiveFieldHelpers.mjs";
11
- const ae = B({
12
- name: "ReactiveField",
13
- props: {
14
- fieldType: {
15
- type: String,
16
- default: "Field"
17
- },
18
- fieldProps: {
19
- type: Object,
20
- default: () => ({})
21
- }
22
- },
23
- setup(n, { slots: d }) {
24
- const O = K(), g = $(), I = F(k, S()), w = F(q, S());
25
- z();
26
- const y = () => O?.value?.[`create${n.fieldType}`]?.({
27
- ...n.fieldProps,
28
- basePath: n.fieldProps?.basePath ?? g.value?.address
29
- }), a = J(y());
30
- return N(
31
- () => n.fieldProps,
32
- () => a.value = y()
33
- ), L(a), U(G, a), () => {
34
- const e = a.value, v = I.value;
35
- if (!e)
36
- return d.default?.();
37
- if (e.display !== "visible")
38
- return null;
39
- const b = R(e, d, e.content), x = w.value?.["x-decorator-content"] ?? n.fieldProps?.decoratorContent, D = R(e, d, x);
40
- return ((s) => {
41
- const c = s.filter((u) => u != null);
42
- if (!e.decoratorType)
43
- return T(c);
44
- const l = h.getIn(v?.components, e.decoratorType) ?? e.decoratorType, i = Array.isArray(e.decorator) ? e.decorator[1] : void 0, m = P(i) || {}, { attrs: p, events: t } = C(m), f = V(p, t);
45
- return A(l, f, {
46
- ...D,
47
- default: () => c
48
- });
49
- })([(() => {
50
- if (!e.componentType)
51
- return T(b?.default?.());
52
- const s = h.getIn(v?.components, e.componentType) ?? e.componentType, c = Array.isArray(e.component) ? e.component[1] : void 0, l = P(c) || {}, i = r(e) ? void 0 : e.value, m = {
53
- disabled: r(e) ? void 0 : e.pattern === "disabled" || e.pattern === "readPretty",
54
- readOnly: r(e) ? void 0 : e.pattern === "readOnly",
55
- ...l,
56
- modelValue: i
57
- }, { attrs: p, events: t } = C(m), f = t["update:modelValue"], u = t.focus, E = t.blur, H = (...o) => {
58
- r(e) || e.onInput(...o);
59
- };
60
- t["update:modelValue"] = (...o) => {
61
- H(...o), f?.(...o);
62
- }, t.focus = (...o) => {
63
- r(e) || e.onFocus(...o), u?.(...o);
64
- }, t.blur = (...o) => {
65
- r(e) || e.onBlur(...o), E?.(...o);
66
- };
67
- const j = V(p, t);
68
- return A(s, j, b);
69
- })()]);
70
- };
71
- }
1
+ import { FieldSymbol, SchemaOptionsSymbol, SchemaSymbol } from "../shared/context.mjs";
2
+ import { useField } from "../hooks/useField.mjs";
3
+ import { useForm } from "../hooks/useForm.mjs";
4
+ import "../hooks/index.mjs";
5
+ import { useAttach } from "../hooks/useAttach.mjs";
6
+ import { createVNodeProps, extractAttrsAndEvents, mergeSlots, wrapFragment } from "../utils/reactiveFieldHelpers.mjs";
7
+ import "../shared/index.mjs";
8
+ import { defineComponent, h, inject, provide, ref, shallowRef, watch } from "vue";
9
+ import { isVoidField } from "@formily/core";
10
+ import { toJS } from "@formily/reactive";
11
+ import { FormPath } from "@formily/shared";
12
+ import { useObserver } from "@silver-formily/reactive-vue";
13
+ //#region src/components/ReactiveField.ts
14
+ var ReactiveField_default = defineComponent({
15
+ name: "ReactiveField",
16
+ props: {
17
+ fieldType: {
18
+ type: String,
19
+ default: "Field"
20
+ },
21
+ fieldProps: {
22
+ type: Object,
23
+ default: () => ({})
24
+ }
25
+ },
26
+ setup(props, { slots }) {
27
+ const formRef = useForm();
28
+ const parentRef = useField();
29
+ const optionsRef = inject(SchemaOptionsSymbol, ref());
30
+ const schemaRef = inject(SchemaSymbol, ref());
31
+ useObserver();
32
+ const syncFieldRuntimeState = (field) => {
33
+ if (!field || isVoidField(field)) return field;
34
+ const loading = "loading" in props.fieldProps ? props.fieldProps.loading : void 0;
35
+ if (loading !== void 0 && field.loading !== loading) field.setLoading?.(loading);
36
+ return field;
37
+ };
38
+ const createField = () => syncFieldRuntimeState(formRef?.value?.[`create${props.fieldType}`]?.({
39
+ ...props.fieldProps,
40
+ basePath: props.fieldProps?.basePath ?? parentRef.value?.address
41
+ }));
42
+ const fieldRef = shallowRef(createField());
43
+ watch(() => props.fieldProps, () => {
44
+ const nextField = createField();
45
+ if (nextField) fieldRef.value = nextField;
46
+ });
47
+ useAttach(fieldRef);
48
+ provide(FieldSymbol, fieldRef);
49
+ return () => {
50
+ const field = fieldRef.value;
51
+ const options = optionsRef.value;
52
+ if (!field) return slots.default?.();
53
+ if (field.display !== "visible") return null;
54
+ const mergedSlots = mergeSlots(field, slots, field.content);
55
+ const decoratorSlots = mergeSlots(field, slots, schemaRef.value?.["x-decorator-content"] ?? props.fieldProps?.decoratorContent);
56
+ const renderDecorator = (childNodes) => {
57
+ const normalizedChildren = childNodes.filter((child) => child != null);
58
+ if (!field.decoratorType) return wrapFragment(normalizedChildren);
59
+ const finalComponent = FormPath.getIn(options?.components, field.decoratorType) ?? field.decoratorType;
60
+ const { attrs, events } = extractAttrsAndEvents(toJS(Array.isArray(field.decorator) ? field.decorator[1] : void 0) || {});
61
+ return h(finalComponent, createVNodeProps(attrs, events), {
62
+ ...decoratorSlots,
63
+ default: () => normalizedChildren
64
+ });
65
+ };
66
+ const renderComponent = () => {
67
+ if (!field.componentType) return wrapFragment(mergedSlots?.default?.());
68
+ const component = FormPath.getIn(options?.components, field.componentType) ?? field.componentType;
69
+ const originData = toJS(Array.isArray(field.component) ? field.component[1] : void 0) || {};
70
+ const fieldValue = !isVoidField(field) ? field.value : void 0;
71
+ const { attrs, events } = extractAttrsAndEvents({
72
+ disabled: !isVoidField(field) ? field.pattern === "disabled" || field.pattern === "readPretty" : void 0,
73
+ readOnly: !isVoidField(field) ? field.pattern === "readOnly" : void 0,
74
+ ...originData,
75
+ modelValue: fieldValue
76
+ });
77
+ const modelUpdateHandler = events["update:modelValue"];
78
+ const focusHandler = events.focus;
79
+ const blurHandler = events.blur;
80
+ const emitInput = (...args) => {
81
+ if (!isVoidField(field)) field.onInput(...args);
82
+ };
83
+ events["update:modelValue"] = (...args) => {
84
+ emitInput(...args);
85
+ modelUpdateHandler?.(...args);
86
+ };
87
+ events.focus = (...args) => {
88
+ if (!isVoidField(field)) field.onFocus(...args);
89
+ focusHandler?.(...args);
90
+ };
91
+ events.blur = (...args) => {
92
+ if (!isVoidField(field)) field.onBlur(...args);
93
+ blurHandler?.(...args);
94
+ };
95
+ return h(component, createVNodeProps(attrs, events), mergedSlots);
96
+ };
97
+ return renderDecorator([renderComponent()]);
98
+ };
99
+ }
72
100
  });
73
- export {
74
- ae as default
75
- };
76
- //# sourceMappingURL=ReactiveField.mjs.map
101
+ //#endregion
102
+ export { ReactiveField_default as default };
103
+
104
+ //# 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 { FormPath } from '@formily/shared'\nimport { useObserver } from '@silver-formily/reactive-vue'\nimport { defineComponent, h, inject, provide, ref, shallowRef, watch } from 'vue'\nimport { useField, useForm } from '../hooks'\nimport { useAttach } from '../hooks/useAttach'\n\nimport { FieldSymbol, SchemaOptionsSymbol, SchemaSymbol } 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 const schemaRef = inject(SchemaSymbol, 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 const decoratorContent = schemaRef.value?.['x-decorator-content']\n ?? props.fieldProps?.decoratorContent\n const decoratorSlots = mergeSlots(field, slots, decoratorContent)\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 ...decoratorSlots,\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","schemaRef","SchemaSymbol","useObserver","createField","fieldRef","shallowRef","watch","useAttach","provide","FieldSymbol","field","options","mergedSlots","mergeSlots","decoratorContent","decoratorSlots","childNodes","normalizedChildren","child","wrapFragment","finalComponent","FormPath","decoratorEntry","decoratorAttrs","toJS","attrs","events","extractAttrsAndEvents","decoratorProps","createVNodeProps","h","component","componentEntry","originData","fieldValue","isVoidField","composedAttrs","modelUpdateHandler","focusHandler","blurHandler","emitInput","args","componentProps"],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveField.mjs","names":[],"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 { FormPath } from '@formily/shared'\nimport { useObserver } from '@silver-formily/reactive-vue'\nimport { defineComponent, h, inject, provide, ref, shallowRef, watch } from 'vue'\nimport { useField, useForm } from '../hooks'\nimport { useAttach } from '../hooks/useAttach'\n\nimport { FieldSymbol, SchemaOptionsSymbol, SchemaSymbol } 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 const schemaRef = inject(SchemaSymbol, ref())\n\n useObserver()\n\n // HACK: 修复运行时状态:https://github.com/alibaba/formily/issues/4357\n const syncFieldRuntimeState = (field?: GeneralField) => {\n if (!field || isVoidField(field)) {\n return field\n }\n\n const loading = 'loading' in props.fieldProps\n ? props.fieldProps.loading\n : undefined\n if (loading !== undefined && field.loading !== loading) {\n field.setLoading?.(loading)\n }\n\n return field\n }\n\n const createField = () =>\n syncFieldRuntimeState(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 () => {\n const nextField = createField()\n if (nextField) {\n fieldRef.value = nextField\n }\n },\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 const decoratorContent = schemaRef.value?.['x-decorator-content']\n ?? props.fieldProps?.decoratorContent\n const decoratorSlots = mergeSlots(field, slots, decoratorContent)\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 ...decoratorSlots,\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"],"mappings":"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"}