@silver-formily/element-plus 2.4.0 → 3.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.
Files changed (118) hide show
  1. package/esm/__builtins__/shared/transform-component.d.ts +1 -1
  2. package/esm/__builtins__/shared/utils.mjs +0 -2
  3. package/esm/__builtins__/shared/utils.mjs.map +1 -1
  4. package/esm/array-base/index.mjs +11 -11
  5. package/esm/array-base/symbols.mjs +1 -1
  6. package/esm/array-base/symbols.mjs.map +1 -1
  7. package/esm/array-base/utils.mjs +0 -1
  8. package/esm/array-base/utils.mjs.map +1 -1
  9. package/esm/array-cards/index.mjs +1 -1
  10. package/esm/array-collapse/index.mjs +2 -5
  11. package/esm/array-collapse/index.mjs.map +1 -1
  12. package/esm/array-items/index.mjs +1 -1
  13. package/esm/array-list-tabs/index.mjs +9 -9
  14. package/esm/array-table/index.mjs +7 -10
  15. package/esm/array-table/index.mjs.map +1 -1
  16. package/esm/array-tabs/index.mjs +1 -2
  17. package/esm/array-tabs/index.mjs.map +1 -1
  18. package/esm/autocomplete/autocomplete.d.ts +16 -16
  19. package/esm/autocomplete/index.d.ts +8 -8
  20. package/esm/autocomplete/index.mjs +2 -4
  21. package/esm/autocomplete/index.mjs.map +1 -1
  22. package/esm/cascader/index.mjs +2 -2
  23. package/esm/checkbox/index.d.ts +27 -27
  24. package/esm/checkbox/index.mjs +7 -12
  25. package/esm/checkbox/index.mjs.map +1 -1
  26. package/esm/editable/editable.d.ts +12 -12
  27. package/esm/editable/index.d.ts +6 -6
  28. package/esm/editable/index.mjs +27 -33
  29. package/esm/editable/index.mjs.map +1 -1
  30. package/esm/env.d.d.ts +1 -0
  31. package/esm/form/form.mjs +5 -5
  32. package/esm/form-button-group/index.mjs +5 -12
  33. package/esm/form-button-group/index.mjs.map +1 -1
  34. package/esm/form-collapse/index.mjs +1 -1
  35. package/esm/form-collapse/utils.mjs +0 -2
  36. package/esm/form-collapse/utils.mjs.map +1 -1
  37. package/esm/form-dialog/index.d.ts +1 -1
  38. package/esm/form-dialog/index.mjs +63 -70
  39. package/esm/form-dialog/index.mjs.map +1 -1
  40. package/esm/form-dialog/types.d.ts +13 -5
  41. package/esm/form-drawer/index.d.ts +1 -1
  42. package/esm/form-drawer/index.mjs +62 -69
  43. package/esm/form-drawer/index.mjs.map +1 -1
  44. package/esm/form-drawer/types.d.ts +13 -5
  45. package/esm/form-grid/form-grid.d.ts +2 -2
  46. package/esm/form-grid/hooks.d.ts +1 -2
  47. package/esm/form-grid/hooks.mjs +4 -11
  48. package/esm/form-grid/hooks.mjs.map +1 -1
  49. package/esm/form-grid/index.mjs +34 -32
  50. package/esm/form-grid/index.mjs.map +1 -1
  51. package/esm/form-item/index.mjs +25 -31
  52. package/esm/form-item/index.mjs.map +1 -1
  53. package/esm/form-item/types.d.ts +8 -6
  54. package/esm/form-layout/form-layout.mjs +2 -2
  55. package/esm/form-layout/utils.mjs +2 -2
  56. package/esm/form-layout/utils.mjs.map +1 -1
  57. package/esm/form-step/index.mjs +2 -2
  58. package/esm/form-step/utils.mjs +0 -3
  59. package/esm/form-step/utils.mjs.map +1 -1
  60. package/esm/form-tab/hooks.d.ts +2 -1
  61. package/esm/form-tab/hooks.mjs +13 -20
  62. package/esm/form-tab/hooks.mjs.map +1 -1
  63. package/esm/form-tab/index.mjs +39 -40
  64. package/esm/form-tab/index.mjs.map +1 -1
  65. package/esm/index.mjs +9 -9
  66. package/esm/input/index.mjs +2 -2
  67. package/esm/input-number/index.d.ts +15 -15
  68. package/esm/input-tag/index.mjs +2 -2
  69. package/esm/mention/index.mjs +2 -2
  70. package/esm/pagination/pagination.mjs +1 -1
  71. package/esm/pagination/pagination.mjs.map +1 -1
  72. package/esm/preview-text/index.mjs +2 -11
  73. package/esm/preview-text/index.mjs.map +1 -1
  74. package/esm/preview-text/utils.mjs +1 -1
  75. package/esm/preview-text/utils.mjs.map +1 -1
  76. package/esm/query-form/index.d.ts +3 -3
  77. package/esm/query-form/index.mjs +28 -31
  78. package/esm/query-form/index.mjs.map +1 -1
  79. package/esm/query-form/query-form.d.ts +1 -1
  80. package/esm/query-form/types.d.ts +1 -1
  81. package/esm/query-form-item/index.mjs +7 -11
  82. package/esm/query-form-item/index.mjs.map +1 -1
  83. package/esm/radio/index.d.ts +18 -18
  84. package/esm/radio/index.mjs +7 -12
  85. package/esm/radio/index.mjs.map +1 -1
  86. package/esm/reset/index.mjs +2 -2
  87. package/esm/segmented/index.mjs +2 -2
  88. package/esm/select/index.d.ts +16 -16
  89. package/esm/select/index.mjs +1 -1
  90. package/esm/select-table/index.d.ts +6 -6
  91. package/esm/select-table/index.mjs +4 -5
  92. package/esm/select-table/index.mjs.map +1 -1
  93. package/esm/select-table/select-table.d.ts +2 -2
  94. package/esm/styles/form-grid/index.css +1 -1
  95. package/esm/submit/index.mjs +3 -3
  96. package/esm/submit/index.mjs.map +1 -1
  97. package/esm/switch/index.d.ts +9 -9
  98. package/esm/time-select/index.d.ts +12 -12
  99. package/esm/transfer/index.d.ts +12 -12
  100. package/esm/tree/index.mjs +3 -3
  101. package/esm/tree/utils.mjs +0 -2
  102. package/esm/tree/utils.mjs.map +1 -1
  103. package/esm/tree-select/index.mjs +2 -2
  104. package/esm/upload/index.d.ts +12 -12
  105. package/esm/upload/index.mjs +3 -3
  106. package/esm/upload/upload.d.ts +24 -24
  107. package/esm/vendor/icon.mjs.map +1 -1
  108. package/esm/vendor/lodash.mjs +111 -85
  109. package/esm/vendor/lodash.mjs.map +1 -1
  110. package/esm/vendor/runtime.mjs +23 -29
  111. package/esm/vendor/runtime.mjs.map +1 -1
  112. package/esm/vendor/shared.esm-bundler.mjs +2 -7
  113. package/esm/vendor/shared.esm-bundler.mjs.map +1 -1
  114. package/esm/vendor/sizes.mjs.map +1 -1
  115. package/esm/vendor/types.mjs +5 -5
  116. package/esm/vendor/types.mjs.map +1 -1
  117. package/package.json +57 -82
  118. package/LICENSE +0 -21
@@ -1,3 +1,3 @@
1
- import { IComponentMapper } from '@silver-formily/vue';
1
+ import { IComponentMapper } from '../../../../vue/src';
2
2
  import { Component } from 'vue';
3
3
  export declare function mapReadPretty(component: Component, readPrettyProps?: Record<string, any>): IComponentMapper;
@@ -18,7 +18,6 @@ function C(t) {
18
18
  function T(t, r) {
19
19
  return Object.assign(t, r);
20
20
  }
21
- /* istanbul ignore next -- @preserve */
22
21
  function o(t) {
23
22
  return t.every((r) => !!(r.type === s || r.type === p && typeof r.children == "string" && !r.children.trim() || r.type === c && o(r.children)));
24
23
  }
@@ -26,7 +25,6 @@ function b(t) {
26
25
  return t ? !o(t()) : !1;
27
26
  }
28
27
  function d() {
29
- /* istanbul ignore next -- @preserve */
30
28
  return m(a, "2.9.9") ? !1 : "never";
31
29
  }
32
30
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../src/__builtins__/shared/utils.ts"],"sourcesContent":["import type { Component, ComputedRef, Slot, VNode } from 'vue'\nimport { isPlainObj } from '@formily/shared'\nimport { useAttrs, version } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { Comment, computed, Fragment, Text } from 'vue'\nimport { lt } from './simple-version-compare'\n\nexport function useCleanAttrs(removeAttrsList: string[] = []): {\n props: ComputedRef<Record<string, any>>\n} {\n const attrs = useAttrs()\n const props = computed(() => {\n const DEFAULT_REMOVE_ATTRS = ['value', 'onChange', 'attrs', 'on', 'readOnly']\n if (isPlainObj(attrs.value.attrs)) {\n return omit({ ...attrs.value, ...attrs.value.attrs }, DEFAULT_REMOVE_ATTRS.concat(removeAttrsList))\n }\n return omit(attrs.value, DEFAULT_REMOVE_ATTRS.concat(removeAttrsList))\n })\n return {\n props,\n }\n}\n\nexport function isVueOptions(options: any): options is Component {\n return (\n options\n && (typeof options.template === 'string'\n || typeof options.render === 'function')\n )\n}\n\nexport function composeExport<T0 extends object, T1 extends object>(\n s0: T0,\n s1: T1,\n): T0 & T1 {\n return Object.assign(s0, s1)\n}\n\n// Adapted from https://github.com/vuejs/vue-next/blob/ca17162e377e0a0bf3fae9d92d0fdcb32084a9fe/packages/runtime-core/src/helpers/renderSlot.ts#L77\n/* istanbul ignore next -- @preserve */\nexport function isVnodeEmpty(vnodes: Array<VNode>) {\n return vnodes.every((node: VNode) => {\n if (node.type === Comment) {\n return true\n }\n\n if (node.type === Text && typeof node.children === 'string' && !node.children.trim()) {\n return true\n }\n\n if (\n node.type === Fragment\n && isVnodeEmpty(node.children as Array<VNode>)\n ) {\n return true\n }\n\n return false\n })\n}\n\nexport function hasSlotContent(slot: Slot<any> | undefined) {\n if (!slot) {\n return false\n }\n return !isVnodeEmpty(slot())\n}\n\nexport function compatibleUnderlineProp() {\n /* istanbul ignore next -- @preserve */\n return lt(version, '2.9.9') ? false : 'never'\n}\n"],"names":["useCleanAttrs","removeAttrsList","attrs","useAttrs","computed","DEFAULT_REMOVE_ATTRS","isPlainObj","omit","isVueOptions","options","composeExport","s0","s1","isVnodeEmpty","vnodes","node","Comment","Text","Fragment","hasSlotContent","slot","compatibleUnderlineProp","lt","version"],"mappings":";;;;;AAOO,SAASA,EAAcC,IAA4B,IAExD;AACA,QAAMC,IAAQC,EAAA;AAQd,SAAO;AAAA,IACL,OARYC,EAAS,MAAM;AAC3B,YAAMC,IAAuB,CAAC,SAAS,YAAY,SAAS,MAAM,UAAU;AAC5E,aAAIC,EAAWJ,EAAM,MAAM,KAAK,IACvBK,EAAK,EAAE,GAAGL,EAAM,OAAO,GAAGA,EAAM,MAAM,MAAA,GAASG,EAAqB,OAAOJ,CAAe,CAAC,IAE7FM,EAAKL,EAAM,OAAOG,EAAqB,OAAOJ,CAAe,CAAC;AAAA,IACvE,CAAC;AAAA,EAEC;AAEJ;AAEO,SAASO,EAAaC,GAAoC;AAC/D,SACEA,MACI,OAAOA,EAAQ,YAAa,YAC3B,OAAOA,EAAQ,UAAW;AAEnC;AAEO,SAASC,EACdC,GACAC,GACS;AACT,SAAO,OAAO,OAAOD,GAAIC,CAAE;AAC7B;AAGA;AACO,SAASC,EAAaC,GAAsB;AACjD,SAAOA,EAAO,MAAM,CAACC,MACf,GAAAA,EAAK,SAASC,KAIdD,EAAK,SAASE,KAAQ,OAAOF,EAAK,YAAa,YAAY,CAACA,EAAK,SAAS,KAAA,KAK5EA,EAAK,SAASG,KACXL,EAAaE,EAAK,QAAwB,EAMhD;AACH;AAEO,SAASI,EAAeC,GAA6B;AAC1D,SAAKA,IAGE,CAACP,EAAaO,GAAM,IAFlB;AAGX;AAEO,SAASC,IAA0B;AAAA,EAAA;AAExC,SAAOC,EAAGC,GAAS,OAAO,IAAI,KAAQ;AACxC;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../src/__builtins__/shared/utils.ts"],"sourcesContent":["import type { Component, ComputedRef, Slot, VNode } from 'vue'\nimport { isPlainObj } from '@formily/shared'\nimport { useAttrs, version } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { Comment, computed, Fragment, Text } from 'vue'\nimport { lt } from './simple-version-compare'\n\nexport function useCleanAttrs(removeAttrsList: string[] = []): {\n props: ComputedRef<Record<string, any>>\n} {\n const attrs = useAttrs()\n const props = computed(() => {\n const DEFAULT_REMOVE_ATTRS = ['value', 'onChange', 'attrs', 'on', 'readOnly']\n if (isPlainObj(attrs.value.attrs)) {\n return omit({ ...attrs.value, ...attrs.value.attrs }, DEFAULT_REMOVE_ATTRS.concat(removeAttrsList))\n }\n return omit(attrs.value, DEFAULT_REMOVE_ATTRS.concat(removeAttrsList))\n })\n return {\n props,\n }\n}\n\nexport function isVueOptions(options: any): options is Component {\n return (\n options\n && (typeof options.template === 'string'\n || typeof options.render === 'function')\n )\n}\n\nexport function composeExport<T0 extends object, T1 extends object>(\n s0: T0,\n s1: T1,\n): T0 & T1 {\n return Object.assign(s0, s1)\n}\n\n// Adapted from https://github.com/vuejs/vue-next/blob/ca17162e377e0a0bf3fae9d92d0fdcb32084a9fe/packages/runtime-core/src/helpers/renderSlot.ts#L77\n/* istanbul ignore next -- @preserve */\nexport function isVnodeEmpty(vnodes: Array<VNode>) {\n return vnodes.every((node: VNode) => {\n if (node.type === Comment) {\n return true\n }\n\n if (node.type === Text && typeof node.children === 'string' && !node.children.trim()) {\n return true\n }\n\n if (\n node.type === Fragment\n && isVnodeEmpty(node.children as Array<VNode>)\n ) {\n return true\n }\n\n return false\n })\n}\n\nexport function hasSlotContent(slot: Slot<any> | undefined) {\n if (!slot) {\n return false\n }\n return !isVnodeEmpty(slot())\n}\n\nexport function compatibleUnderlineProp() {\n /* istanbul ignore next -- @preserve */\n return lt(version, '2.9.9') ? false : 'never'\n}\n"],"names":["useCleanAttrs","removeAttrsList","attrs","useAttrs","computed","DEFAULT_REMOVE_ATTRS","isPlainObj","omit","isVueOptions","options","composeExport","s0","s1","isVnodeEmpty","vnodes","node","Comment","Text","Fragment","hasSlotContent","slot","compatibleUnderlineProp","lt","version"],"mappings":";;;;;AAOO,SAASA,EAAcC,IAA4B,IAExD;AACA,QAAMC,IAAQC,EAAA;AAQd,SAAO;AAAA,IACL,OARYC,EAAS,MAAM;AAC3B,YAAMC,IAAuB,CAAC,SAAS,YAAY,SAAS,MAAM,UAAU;AAC5E,aAAIC,EAAWJ,EAAM,MAAM,KAAK,IACvBK,EAAK,EAAE,GAAGL,EAAM,OAAO,GAAGA,EAAM,MAAM,MAAA,GAASG,EAAqB,OAAOJ,CAAe,CAAC,IAE7FM,EAAKL,EAAM,OAAOG,EAAqB,OAAOJ,CAAe,CAAC;AAAA,IACvE,CAAC;AAAA,EAEC;AAEJ;AAEO,SAASO,EAAaC,GAAoC;AAC/D,SACEA,MACI,OAAOA,EAAQ,YAAa,YAC3B,OAAOA,EAAQ,UAAW;AAEnC;AAEO,SAASC,EACdC,GACAC,GACS;AACT,SAAO,OAAO,OAAOD,GAAIC,CAAE;AAC7B;AAIO,SAASC,EAAaC,GAAsB;AACjD,SAAOA,EAAO,MAAM,CAACC,MACf,GAAAA,EAAK,SAASC,KAIdD,EAAK,SAASE,KAAQ,OAAOF,EAAK,YAAa,YAAY,CAACA,EAAK,SAAS,KAAA,KAK5EA,EAAK,SAASG,KACXL,EAAaE,EAAK,QAAwB,EAMhD;AACH;AAEO,SAASI,EAAeC,GAA6B;AAC1D,SAAKA,IAGE,CAACP,EAAaO,GAAM,IAFlB;AAGX;AAEO,SAASC,IAA0B;AAExC,SAAOC,EAAGC,GAAS,OAAO,IAAI,KAAQ;AACxC;"}
@@ -1,7 +1,7 @@
1
1
  import { ElLink as m } from "element-plus";
2
2
  import "@formily/reactive";
3
3
  import "@vueuse/core";
4
- import { defineComponent as l, createBlock as f, createCommentVNode as _, unref as a, openBlock as i, normalizeClass as c, withCtx as h, createTextVNode as v, toDisplayString as y, createElementBlock as C, renderSlot as u, provide as M, useAttrs as w, withModifiers as $ } from "vue";
4
+ import { defineComponent as l, unref as a, openBlock as i, createBlock as f, normalizeClass as c, withCtx as h, createTextVNode as _, toDisplayString as v, createCommentVNode as y, createElementBlock as C, renderSlot as u, provide as M, useAttrs as w, withModifiers as $ } from "vue";
5
5
  import "@formily/core";
6
6
  import "@silver-formily/reactive-vue";
7
7
  import { useField as B, useFieldSchema as D } from "@silver-formily/vue";
@@ -34,10 +34,10 @@ import '../styles/array-base/index.css';const P = /* @__PURE__ */ l({
34
34
  onClick: o
35
35
  }, {
36
36
  default: h(() => [
37
- v(y(a(t).title || r.title), 1)
37
+ _(v(a(t).title || r.title), 1)
38
38
  ]),
39
39
  _: 1
40
- }, 8, ["class", "icon", "underline"])) : _("", !0);
40
+ }, 8, ["class", "icon", "underline"])) : y("", !0);
41
41
  }
42
42
  }), K = /* @__PURE__ */ l({
43
43
  name: "ArrayBaseIndex",
@@ -48,7 +48,7 @@ import '../styles/array-base/index.css';const P = /* @__PURE__ */ l({
48
48
  class: c(`${a(d)}-index`)
49
49
  }, [
50
50
  u(t.$slots, "default", { index: a(r) }, () => [
51
- v(" #" + y(a(r) + 1) + ". ", 1)
51
+ _(" #" + v(a(r) + 1) + ". ", 1)
52
52
  ])
53
53
  ], 2));
54
54
  }
@@ -107,11 +107,11 @@ import '../styles/array-base/index.css';const P = /* @__PURE__ */ l({
107
107
  }, {
108
108
  default: h(() => [
109
109
  u(s.$slots, "default", {}, () => [
110
- v(y(r.title), 1)
110
+ _(v(r.title), 1)
111
111
  ])
112
112
  ]),
113
113
  _: 3
114
- }, 8, ["class", "icon", "underline"])) : _("", !0);
114
+ }, 8, ["class", "icon", "underline"])) : y("", !0);
115
115
  }
116
116
  }), q = /* @__PURE__ */ l({
117
117
  name: "ArrayBaseMoveUp",
@@ -140,11 +140,11 @@ import '../styles/array-base/index.css';const P = /* @__PURE__ */ l({
140
140
  }, {
141
141
  default: h(() => [
142
142
  u(s.$slots, "default", {}, () => [
143
- v(y(r.title), 1)
143
+ _(v(r.title), 1)
144
144
  ])
145
145
  ]),
146
146
  _: 3
147
- }, 8, ["class", "icon", "underline"])) : _("", !0);
147
+ }, 8, ["class", "icon", "underline"])) : y("", !0);
148
148
  }
149
149
  }), G = /* @__PURE__ */ l({
150
150
  name: "ArrayBaseRemove",
@@ -169,11 +169,11 @@ import '../styles/array-base/index.css';const P = /* @__PURE__ */ l({
169
169
  }, {
170
170
  default: h(() => [
171
171
  u(s.$slots, "default", {}, () => [
172
- v(y(r.title), 1)
172
+ _(v(r.title), 1)
173
173
  ])
174
174
  ]),
175
175
  _: 3
176
- }, 8, ["class", "icon", "underline"])) : _("", !0);
176
+ }, 8, ["class", "icon", "underline"])) : y("", !0);
177
177
  }
178
178
  }), J = /* @__PURE__ */ l({
179
179
  name: "ArrayBaseSortHandle",
@@ -189,7 +189,7 @@ import '../styles/array-base/index.css';const P = /* @__PURE__ */ l({
189
189
  role: "button",
190
190
  "aria-label": "拖拽排序",
191
191
  "aria-dropeffect": "move"
192
- }, null, 8, ["class", "icon", "underline"])) : _("", !0);
192
+ }, null, 8, ["class", "icon", "underline"])) : y("", !0);
193
193
  }
194
194
  }), oe = I(L, {
195
195
  Index: K,
@@ -1,4 +1,4 @@
1
- const o = Symbol("ArrayBaseContext"), t = Symbol("ItemContext");
1
+ const o = /* @__PURE__ */ Symbol("ArrayBaseContext"), t = /* @__PURE__ */ Symbol("ItemContext");
2
2
  export {
3
3
  o as ArrayBaseSymbol,
4
4
  t as ItemSymbol
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.mjs","sources":["../../src/array-base/symbols.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { IArrayBaseContext, IArrayBaseItemProps } from './types'\n\nexport const ArrayBaseSymbol: InjectionKey<IArrayBaseContext> = Symbol('ArrayBaseContext')\nexport const ItemSymbol: InjectionKey<IArrayBaseItemProps> = Symbol('ItemContext')\n"],"names":["ArrayBaseSymbol","ItemSymbol"],"mappings":"AAGO,MAAMA,IAAmD,OAAO,kBAAkB,GAC5EC,IAAgD,OAAO,aAAa;"}
1
+ {"version":3,"file":"symbols.mjs","sources":["../../src/array-base/symbols.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { IArrayBaseContext, IArrayBaseItemProps } from './types'\n\nexport const ArrayBaseSymbol: InjectionKey<IArrayBaseContext> = Symbol('ArrayBaseContext')\nexport const ItemSymbol: InjectionKey<IArrayBaseItemProps> = Symbol('ItemContext')\n"],"names":["ArrayBaseSymbol","ItemSymbol"],"mappings":"AAGO,MAAMA,2BAA0D,kBAAkB,GAC5EC,2BAAuD,aAAa;"}
@@ -16,7 +16,6 @@ function K() {
16
16
  const { index: n } = f(i(m));
17
17
  return n;
18
18
  }
19
- /* istanbul ignore next -- @preserve */
20
19
  function U() {
21
20
  const { record: n } = f(
22
21
  i(m)
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../src/array-base/utils.ts"],"sourcesContent":["import type { ISchema, Schema } from '@formily/json-schema'\nimport type { IArrayBaseItemProps } from './types'\nimport { clone, isArr, isValid, uid } from '@formily/shared'\nimport { inject, toRefs } from 'vue'\nimport { stylePrefix } from '../__builtins__'\nimport { ArrayBaseSymbol, ItemSymbol } from './symbols'\n\nexport const prefixCls = `${stylePrefix}-array-base`\n\nexport function useArray() {\n return inject(ArrayBaseSymbol, null)\n}\n\nexport function useIndex() {\n const { index: indexRef } = toRefs(inject(ItemSymbol) as IArrayBaseItemProps)\n return indexRef\n}\n\n/* istanbul ignore next -- @preserve */\nexport function useRecord() {\n const { record: recordRef } = toRefs(\n inject(ItemSymbol) as IArrayBaseItemProps,\n )\n return recordRef\n}\n\nconst isObjectValue: (schema: Schema) => boolean = (schema: Schema) => {\n if (Array.isArray(schema?.items))\n return isObjectValue(schema.items[0])\n\n if (schema?.items?.type === 'array' || schema?.items?.type === 'object') {\n return true\n }\n return false\n}\n\nexport function useKey(schema: Schema) {\n const isObject = isObjectValue(schema)\n let keyMap: WeakMap<Record<string, unknown>, string> | string[] | null = null\n\n keyMap = isObject ? new WeakMap() : []\n\n return {\n keyMap,\n getKey: (record: any, index?: number) => {\n if (keyMap instanceof WeakMap) {\n if (!keyMap.has(record)) {\n keyMap.set(record, uid())\n }\n return `${keyMap.get(record)}`\n }\n\n if (keyMap && !keyMap[index]) {\n keyMap[index] = uid()\n }\n return `${keyMap[index]}`\n },\n }\n}\n\nexport function getDefaultValue(defaultValue: any, schema: Schema): any {\n if (isValid(defaultValue))\n return clone(defaultValue)\n if (Array.isArray(schema?.items))\n return getDefaultValue(defaultValue, schema.items[0])\n if (schema?.items?.type === 'object')\n return {}\n return null\n}\n\nexport function getArrayItemSchema(schema: ISchema, index: number): ISchema {\n return isArr(schema.items) ? schema.items[index] ?? schema.items[0] : schema.items\n}\n\nexport function isAdditionComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('Addition') > -1\n}\n\nexport function isIndexComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('Index') > -1\n}\n\nexport function isRemoveComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('Remove') > -1\n}\n\nexport function isMoveUpComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('MoveUp') > -1\n}\n\nexport function isMoveDownComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('MoveDown') > -1\n}\n\nexport function isOperationComponent(schema: ISchema) {\n return (\n isAdditionComponent(schema)\n || isRemoveComponent(schema)\n || isMoveDownComponent(schema)\n || isMoveUpComponent(schema)\n )\n}\n"],"names":["prefixCls","stylePrefix","useArray","inject","ArrayBaseSymbol","useIndex","indexRef","toRefs","ItemSymbol","useRecord","recordRef","isObjectValue","schema","useKey","isObject","keyMap","record","index","uid","getDefaultValue","defaultValue","isValid","clone","getArrayItemSchema","isArr","isAdditionComponent","isIndexComponent","isRemoveComponent","isMoveUpComponent","isMoveDownComponent","isOperationComponent"],"mappings":";;;;;;;;;;AAOO,MAAMA,IAAY,GAAGC,CAAW;AAEhC,SAASC,IAAW;AACzB,SAAOC,EAAOC,GAAiB,IAAI;AACrC;AAEO,SAASC,IAAW;AACzB,QAAM,EAAE,OAAOC,EAAA,IAAaC,EAAOJ,EAAOK,CAAU,CAAwB;AAC5E,SAAOF;AACT;AAEA;AACO,SAASG,IAAY;AAC1B,QAAM,EAAE,QAAQC,EAAA,IAAcH;AAAA,IAC5BJ,EAAOK,CAAU;AAAA,EAAA;AAEnB,SAAOE;AACT;AAEA,MAAMC,IAA6C,CAACC,MAC9C,MAAM,QAAQA,GAAQ,KAAK,IACtBD,EAAcC,EAAO,MAAM,CAAC,CAAC,IAElCA,GAAQ,OAAO,SAAS,WAAWA,GAAQ,OAAO,SAAS;AAM1D,SAASC,EAAOD,GAAgB;AACrC,QAAME,IAAWH,EAAcC,CAAM;AACrC,MAAIG,IAAqE;AAEzE,SAAAA,IAASD,IAAW,oBAAI,QAAA,IAAY,CAAA,GAE7B;AAAA,IACL,QAAAC;AAAA,IACA,QAAQ,CAACC,GAAaC,MAChBF,aAAkB,WACfA,EAAO,IAAIC,CAAM,KACpBD,EAAO,IAAIC,GAAQE,GAAK,GAEnB,GAAGH,EAAO,IAAIC,CAAM,CAAC,OAG1BD,KAAU,CAACA,EAAOE,CAAK,MACzBF,EAAOE,CAAK,IAAIC,EAAA,IAEX,GAAGH,EAAOE,CAAK,CAAC;AAAA,EACzB;AAEJ;AAEO,SAASE,EAAgBC,GAAmBR,GAAqB;AACtE,SAAIS,EAAQD,CAAY,IACfE,EAAMF,CAAY,IACvB,MAAM,QAAQR,GAAQ,KAAK,IACtBO,EAAgBC,GAAcR,EAAO,MAAM,CAAC,CAAC,IAClDA,GAAQ,OAAO,SAAS,WACnB,CAAA,IACF;AACT;AAEO,SAASW,EAAmBX,GAAiBK,GAAwB;AAC1E,SAAOO,EAAMZ,EAAO,KAAK,IAAIA,EAAO,MAAMK,CAAK,KAAKL,EAAO,MAAM,CAAC,IAAIA,EAAO;AAC/E;AAEO,SAASa,EAAoBb,GAAiB;AACnD,SAAOA,EAAO,aAAa,GAAG,QAAQ,UAAU,IAAI;AACtD;AAEO,SAASc,EAAiBd,GAAiB;AAChD,SAAOA,EAAO,aAAa,GAAG,QAAQ,OAAO,IAAI;AACnD;AAEO,SAASe,EAAkBf,GAAiB;AACjD,SAAOA,EAAO,aAAa,GAAG,QAAQ,QAAQ,IAAI;AACpD;AAEO,SAASgB,EAAkBhB,GAAiB;AACjD,SAAOA,EAAO,aAAa,GAAG,QAAQ,QAAQ,IAAI;AACpD;AAEO,SAASiB,EAAoBjB,GAAiB;AACnD,SAAOA,EAAO,aAAa,GAAG,QAAQ,UAAU,IAAI;AACtD;AAEO,SAASkB,EAAqBlB,GAAiB;AACpD,SACEa,EAAoBb,CAAM,KACvBe,EAAkBf,CAAM,KACxBiB,EAAoBjB,CAAM,KAC1BgB,EAAkBhB,CAAM;AAE/B;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../src/array-base/utils.ts"],"sourcesContent":["import type { ISchema, Schema } from '@formily/json-schema'\nimport type { IArrayBaseItemProps } from './types'\nimport { clone, isArr, isValid, uid } from '@formily/shared'\nimport { inject, toRefs } from 'vue'\nimport { stylePrefix } from '../__builtins__'\nimport { ArrayBaseSymbol, ItemSymbol } from './symbols'\n\nexport const prefixCls = `${stylePrefix}-array-base`\n\nexport function useArray() {\n return inject(ArrayBaseSymbol, null)\n}\n\nexport function useIndex() {\n const { index: indexRef } = toRefs(inject(ItemSymbol) as IArrayBaseItemProps)\n return indexRef\n}\n\n/* istanbul ignore next -- @preserve */\nexport function useRecord() {\n const { record: recordRef } = toRefs(\n inject(ItemSymbol) as IArrayBaseItemProps,\n )\n return recordRef\n}\n\nconst isObjectValue: (schema: Schema) => boolean = (schema: Schema) => {\n if (Array.isArray(schema?.items))\n return isObjectValue(schema.items[0])\n\n if (schema?.items?.type === 'array' || schema?.items?.type === 'object') {\n return true\n }\n return false\n}\n\nexport function useKey(schema: Schema) {\n const isObject = isObjectValue(schema)\n let keyMap: WeakMap<Record<string, unknown>, string> | string[] | null = null\n\n keyMap = isObject ? new WeakMap() : []\n\n return {\n keyMap,\n getKey: (record: any, index?: number) => {\n if (keyMap instanceof WeakMap) {\n if (!keyMap.has(record)) {\n keyMap.set(record, uid())\n }\n return `${keyMap.get(record)}`\n }\n\n if (keyMap && !keyMap[index]) {\n keyMap[index] = uid()\n }\n return `${keyMap[index]}`\n },\n }\n}\n\nexport function getDefaultValue(defaultValue: any, schema: Schema): any {\n if (isValid(defaultValue))\n return clone(defaultValue)\n if (Array.isArray(schema?.items))\n return getDefaultValue(defaultValue, schema.items[0])\n if (schema?.items?.type === 'object')\n return {}\n return null\n}\n\nexport function getArrayItemSchema(schema: ISchema, index: number): ISchema {\n return isArr(schema.items) ? schema.items[index] ?? schema.items[0] : schema.items\n}\n\nexport function isAdditionComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('Addition') > -1\n}\n\nexport function isIndexComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('Index') > -1\n}\n\nexport function isRemoveComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('Remove') > -1\n}\n\nexport function isMoveUpComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('MoveUp') > -1\n}\n\nexport function isMoveDownComponent(schema: ISchema) {\n return schema['x-component']?.indexOf('MoveDown') > -1\n}\n\nexport function isOperationComponent(schema: ISchema) {\n return (\n isAdditionComponent(schema)\n || isRemoveComponent(schema)\n || isMoveDownComponent(schema)\n || isMoveUpComponent(schema)\n )\n}\n"],"names":["prefixCls","stylePrefix","useArray","inject","ArrayBaseSymbol","useIndex","indexRef","toRefs","ItemSymbol","useRecord","recordRef","isObjectValue","schema","useKey","isObject","keyMap","record","index","uid","getDefaultValue","defaultValue","isValid","clone","getArrayItemSchema","isArr","isAdditionComponent","isIndexComponent","isRemoveComponent","isMoveUpComponent","isMoveDownComponent","isOperationComponent"],"mappings":";;;;;;;;;;AAOO,MAAMA,IAAY,GAAGC,CAAW;AAEhC,SAASC,IAAW;AACzB,SAAOC,EAAOC,GAAiB,IAAI;AACrC;AAEO,SAASC,IAAW;AACzB,QAAM,EAAE,OAAOC,EAAA,IAAaC,EAAOJ,EAAOK,CAAU,CAAwB;AAC5E,SAAOF;AACT;AAGO,SAASG,IAAY;AAC1B,QAAM,EAAE,QAAQC,EAAA,IAAcH;AAAA,IAC5BJ,EAAOK,CAAU;AAAA,EAAA;AAEnB,SAAOE;AACT;AAEA,MAAMC,IAA6C,CAACC,MAC9C,MAAM,QAAQA,GAAQ,KAAK,IACtBD,EAAcC,EAAO,MAAM,CAAC,CAAC,IAElCA,GAAQ,OAAO,SAAS,WAAWA,GAAQ,OAAO,SAAS;AAM1D,SAASC,EAAOD,GAAgB;AACrC,QAAME,IAAWH,EAAcC,CAAM;AACrC,MAAIG,IAAqE;AAEzE,SAAAA,IAASD,IAAW,oBAAI,QAAA,IAAY,CAAA,GAE7B;AAAA,IACL,QAAAC;AAAA,IACA,QAAQ,CAACC,GAAaC,MAChBF,aAAkB,WACfA,EAAO,IAAIC,CAAM,KACpBD,EAAO,IAAIC,GAAQE,GAAK,GAEnB,GAAGH,EAAO,IAAIC,CAAM,CAAC,OAG1BD,KAAU,CAACA,EAAOE,CAAK,MACzBF,EAAOE,CAAK,IAAIC,EAAA,IAEX,GAAGH,EAAOE,CAAK,CAAC;AAAA,EACzB;AAEJ;AAEO,SAASE,EAAgBC,GAAmBR,GAAqB;AACtE,SAAIS,EAAQD,CAAY,IACfE,EAAMF,CAAY,IACvB,MAAM,QAAQR,GAAQ,KAAK,IACtBO,EAAgBC,GAAcR,EAAO,MAAM,CAAC,CAAC,IAClDA,GAAQ,OAAO,SAAS,WACnB,CAAA,IACF;AACT;AAEO,SAASW,EAAmBX,GAAiBK,GAAwB;AAC1E,SAAOO,EAAMZ,EAAO,KAAK,IAAIA,EAAO,MAAMK,CAAK,KAAKL,EAAO,MAAM,CAAC,IAAIA,EAAO;AAC/E;AAEO,SAASa,EAAoBb,GAAiB;AACnD,SAAOA,EAAO,aAAa,GAAG,QAAQ,UAAU,IAAI;AACtD;AAEO,SAASc,EAAiBd,GAAiB;AAChD,SAAOA,EAAO,aAAa,GAAG,QAAQ,OAAO,IAAI;AACnD;AAEO,SAASe,EAAkBf,GAAiB;AACjD,SAAOA,EAAO,aAAa,GAAG,QAAQ,QAAQ,IAAI;AACpD;AAEO,SAASgB,EAAkBhB,GAAiB;AACjD,SAAOA,EAAO,aAAa,GAAG,QAAQ,QAAQ,IAAI;AACpD;AAEO,SAASiB,EAAoBjB,GAAiB;AACnD,SAAOA,EAAO,aAAa,GAAG,QAAQ,UAAU,IAAI;AACtD;AAEO,SAASkB,EAAqBlB,GAAiB;AACpD,SACEa,EAAoBb,CAAM,KACvBe,EAAkBf,CAAM,KACxBiB,EAAoBjB,CAAM,KAC1BgB,EAAkBhB,CAAM;AAE/B;"}
@@ -1,7 +1,7 @@
1
1
  import { ElCard as A, ElEmpty as B, ElRow as N } from "element-plus";
2
2
  import { autorun as $ } from "@formily/reactive";
3
3
  import "@vueuse/core";
4
- import { defineComponent as b, ref as D, createElementBlock as c, openBlock as a, normalizeClass as R, createVNode as s, unref as e, withCtx as n, createBlock as v, createCommentVNode as h, mergeProps as x, Fragment as C, renderList as E, createElementVNode as I, createTextVNode as H, toDisplayString as K } from "vue";
4
+ import { defineComponent as b, ref as D, openBlock as a, createElementBlock as c, normalizeClass as R, createVNode as s, unref as e, withCtx as n, createBlock as v, mergeProps as x, createCommentVNode as h, Fragment as C, renderList as E, createElementVNode as I, createTextVNode as H, toDisplayString as K } from "vue";
5
5
  import "@formily/core";
6
6
  import "@silver-formily/reactive-vue";
7
7
  import { useField as P, useFieldSchema as U, RecursionField as d } from "@silver-formily/vue";
@@ -1,7 +1,7 @@
1
1
  import { ElCollapseItem as T, ElBadge as j, ElCard as G, ElEmpty as J, ElCollapse as L } from "element-plus";
2
2
  import { autorun as Q } from "@formily/reactive";
3
3
  import "@vueuse/core";
4
- import { defineComponent as N, createBlock as d, openBlock as l, unref as e, mergeProps as E, withCtx as f, renderSlot as $, createElementVNode as w, createCommentVNode as S, createVNode as g, normalizeClass as D, createTextVNode as W, toDisplayString as X, ref as B, watchEffect as Y, createElementBlock as A, Fragment as R, renderList as M } from "vue";
4
+ import { defineComponent as N, openBlock as l, createBlock as d, unref as e, mergeProps as E, withCtx as f, renderSlot as $, createElementVNode as w, createCommentVNode as S, createVNode as g, normalizeClass as D, createTextVNode as W, toDisplayString as X, ref as B, watchEffect as Y, createElementBlock as A, Fragment as R, renderList as M } from "vue";
5
5
  import "@formily/core";
6
6
  import { formilyComputed as Z } from "@silver-formily/reactive-vue";
7
7
  import { useField as P, useFieldSchema as U, RecursionField as I } from "@silver-formily/vue";
@@ -84,10 +84,7 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
84
84
  return t ? 0 : a < n ? F(a) : F(n);
85
85
  }
86
86
  function q(a, n, t = !1) {
87
- if (t)
88
- return n;
89
- /* istanbul ignore if -- @preserve */
90
- return C(a) ? a.length <= n ? a.concat(n) : a.reduce((i, p) => p === n ? [...i, p, p + 1] : i.concat(p + 1), []) : n;
87
+ return t || !C(a) ? n : a.length <= n ? a.concat(n) : a.reduce((i, p) => p === n ? [...i, p, p + 1] : i.concat(p + 1), []);
91
88
  }
92
89
  Y(() => {
93
90
  !r.modified && s.value.length > 0 && (c.value = O(
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/array-collapse/array-collapse-item.vue","../../src/array-collapse/array-collapse.vue","../../src/array-collapse/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport { isArr } from '@formily/shared'\nimport { formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElCollapseItem } from 'element-plus'\nimport { useCleanAttrs } from '../__builtins__'\nimport { isIndexComponent, isOperationComponent, useIndex } from '../array-base/utils'\nimport { prefixCls } from './utils'\n\ndefineOptions({\n name: 'FArrayCollapseItem',\n inheritAttrs: false,\n})\n\nconst fieldRef = useField<ArrayField>()\nconst field = fieldRef.value\nconst schemaRef = useFieldSchema()\nconst schema = schemaRef.value.parent\nconst index = useIndex()\nconst errorCount = formilyComputed(() => {\n const path = field.address.concat()\n return field.form.queryFeedbacks({\n type: 'error',\n address: `${path}.**`,\n }).length\n})\n\nconst { props: collapseItemProps } = useCleanAttrs()\n</script>\n\n<template>\n <ElCollapseItem :name=\"index\" v-bind=\"collapseItemProps\">\n <template #title>\n <div style=\"flex: 1;display: flex;align-items: center;\">\n <RecursionField\n v-if=\"!isArr(schema.items)\"\n :schema=\"schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isIndexComponent(schema)\"\n :only-render-properties=\"true\"\n />\n <slot name=\"title\">\n <ElBadge\n :class=\"[`${prefixCls}-errors-badge`]\"\n :value=\"errorCount\"\n :offset=\"[5, -2]\"\n :hidden=\"errorCount === 0\"\n >\n {{ schema.items?.['x-component-props']?.title }}\n </ElBadge>\n </slot>\n </div>\n <div>\n <RecursionField\n :schema=\"Array.isArray(schema.items) ? schema.items[index] || schema.items[0] : schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isOperationComponent(schema)\"\n :only-render-properties=\"true\"\n />\n </div>\n </template>\n <slot />\n </ElCollapseItem>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport { autorun } from '@formily/reactive'\nimport { isArr } from '@formily/shared'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport {\n ElCard,\n ElCollapse,\n ElEmpty,\n} from 'element-plus'\nimport { ref, watchEffect } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\nimport { ArrayBase } from '../array-base'\nimport { getArrayItemSchema, isAdditionComponent, isIndexComponent, isOperationComponent } from '../array-base/utils'\nimport { prefixCls } from './utils'\n\ndefineOptions({\n name: 'FArrayCollapse',\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n modelValue: {},\n defaultOpenPanelCount: {\n type: Number,\n default: 5,\n },\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\nconst field = fieldRef.value\nconst schema = schemaRef.value\n\nconst { props: collapseProps } = useCleanAttrs(['modelValue', 'onUpdate:modelValue'])\nconst activeKeys = ref<number[] | number>([])\n\nconst { getKey, keyMap } = ArrayBase.useKey(schemaRef.value)\n\nconst dataSource = ref(isArr(field.value) ? field.value : [])\n\nautorun(() => {\n dataSource.value = isArr(field.value) ? [...field.value] : []\n})\n\nfunction range(count: number) {\n return Array.from({ length: count }).map((_, i) => i)\n}\n\nfunction takeDefaultActiveKeys(dataSourceLength: number, defaultOpenPanelCount: number, accordion = false) {\n if (accordion) {\n return 0\n }\n if (dataSourceLength < defaultOpenPanelCount)\n return range(dataSourceLength)\n\n return range(defaultOpenPanelCount)\n}\n\nfunction insertActiveKeys(activeKeys: number[] | number, index: number, accordion = false) {\n if (accordion)\n return index\n /* istanbul ignore if -- @preserve */\n if (!isArr(activeKeys))\n return index\n if (activeKeys.length <= index)\n return (activeKeys).concat(index)\n return (activeKeys).reduce((buf, key) => {\n if (key === index)\n return [...buf, key, key + 1]\n return buf.concat(key + 1)\n }, [])\n}\n\nwatchEffect(() => {\n if (!field.modified && dataSource.value.length > 0) {\n activeKeys.value = takeDefaultActiveKeys(\n dataSource.value.length,\n props.defaultOpenPanelCount,\n collapseProps.value.accordion as boolean,\n )\n }\n})\n\nfunction handleCollapseChange(keys: number[] | number) {\n activeKeys.value = keys\n}\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ArrayBase\n :key=\"dataSource.length\"\n :key-map=\"keyMap\"\n :add=\"(index: number) => {\n activeKeys = insertActiveKeys(\n activeKeys,\n index,\n collapseProps.accordion as boolean,\n )\n }\"\n >\n <template v-if=\"!Array.isArray(props.modelValue) || props.modelValue.length === 0\">\n <ElCard :class=\"[`${prefixCls}-item`]\" shadow=\"never\" v-bind=\"collapseProps\" :header=\"collapseProps.title || field.title\">\n <ElEmpty />\n </ElCard>\n </template>\n <template v-else>\n <ElCollapse\n :model-value=\"activeKeys\"\n :class=\"`${prefixCls}-item`\"\n v-bind=\"collapseProps\"\n @change=\"handleCollapseChange\"\n >\n <ArrayBase.Item v-for=\"(item, index) of dataSource\" :key=\"getKey(item, index)\" :index=\"index\" :record=\"item\">\n <RecursionField\n :schema=\"getArrayItemSchema(schema, index)\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => !isIndexComponent(schema) && !isOperationComponent(schema)\"\n />\n </ArrayBase.Item>\n </ElCollapse>\n </template>\n <template v-for=\"(itemSchema, key) in schema.properties\" :key=\"key\">\n <RecursionField v-if=\"isAdditionComponent(itemSchema)\" :schema=\"itemSchema\" name=\"addition\" />\n </template>\n </ArrayBase>\n </div>\n</template>\n","import { composeExport } from '../__builtins__/shared'\nimport { ArrayBase } from '../array-base'\nimport ArrayCollapseItem from './array-collapse-item.vue'\nimport ArrayCollapseInner from './array-collapse.vue'\nimport './style.scss'\n\nexport const ArrayCollapse = composeExport(ArrayCollapseInner, {\n Item: ArrayCollapseItem,\n Index: ArrayBase.Index,\n SortHandle: ArrayBase.SortHandle,\n Addition: ArrayBase.Addition,\n Remove: ArrayBase.Remove,\n MoveDown: ArrayBase.MoveDown,\n MoveUp: ArrayBase.MoveUp,\n useArray: ArrayBase.useArray,\n useIndex: ArrayBase.useIndex,\n useRecord: ArrayBase.useRecord,\n})\n\nexport default ArrayCollapse\n"],"names":["field","useField","schema","useFieldSchema","index","useIndex","errorCount","formilyComputed","path","collapseItemProps","useCleanAttrs","_openBlock","_createBlock","_unref","_mergeProps","_createElementVNode","_hoisted_1","isArr","RecursionField","isIndexComponent","_renderSlot","_ctx","_createVNode","ElBadge","prefixCls","isOperationComponent","props","__props","fieldRef","schemaRef","collapseProps","activeKeys","ref","getKey","keyMap","ArrayBase","dataSource","autorun","range","count","_","i","takeDefaultActiveKeys","dataSourceLength","defaultOpenPanelCount","accordion","insertActiveKeys","buf","key","watchEffect","handleCollapseChange","keys","_createElementBlock","ElEmpty","_Fragment","_renderList","item","getArrayItemSchema","itemSchema","isAdditionComponent","ArrayCollapse","composeExport","ArrayCollapseInner","ArrayCollapseItem"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/array-collapse/array-collapse-item.vue","../../src/array-collapse/array-collapse.vue","../../src/array-collapse/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport { isArr } from '@formily/shared'\nimport { formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElCollapseItem } from 'element-plus'\nimport { useCleanAttrs } from '../__builtins__'\nimport { isIndexComponent, isOperationComponent, useIndex } from '../array-base/utils'\nimport { prefixCls } from './utils'\n\ndefineOptions({\n name: 'FArrayCollapseItem',\n inheritAttrs: false,\n})\n\nconst fieldRef = useField<ArrayField>()\nconst field = fieldRef.value\nconst schemaRef = useFieldSchema()\nconst schema = schemaRef.value.parent\nconst index = useIndex()\nconst errorCount = formilyComputed(() => {\n const path = field.address.concat()\n return field.form.queryFeedbacks({\n type: 'error',\n address: `${path}.**`,\n }).length\n})\n\nconst { props: collapseItemProps } = useCleanAttrs()\n</script>\n\n<template>\n <ElCollapseItem :name=\"index\" v-bind=\"collapseItemProps\">\n <template #title>\n <div style=\"flex: 1;display: flex;align-items: center;\">\n <RecursionField\n v-if=\"!isArr(schema.items)\"\n :schema=\"schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isIndexComponent(schema)\"\n :only-render-properties=\"true\"\n />\n <slot name=\"title\">\n <ElBadge\n :class=\"[`${prefixCls}-errors-badge`]\"\n :value=\"errorCount\"\n :offset=\"[5, -2]\"\n :hidden=\"errorCount === 0\"\n >\n {{ schema.items?.['x-component-props']?.title }}\n </ElBadge>\n </slot>\n </div>\n <div>\n <RecursionField\n :schema=\"Array.isArray(schema.items) ? schema.items[index] || schema.items[0] : schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isOperationComponent(schema)\"\n :only-render-properties=\"true\"\n />\n </div>\n </template>\n <slot />\n </ElCollapseItem>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport { autorun } from '@formily/reactive'\nimport { isArr } from '@formily/shared'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport {\n ElCard,\n ElCollapse,\n ElEmpty,\n} from 'element-plus'\nimport { ref, watchEffect } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\nimport { ArrayBase } from '../array-base'\nimport { getArrayItemSchema, isAdditionComponent, isIndexComponent, isOperationComponent } from '../array-base/utils'\nimport { prefixCls } from './utils'\n\ndefineOptions({\n name: 'FArrayCollapse',\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n modelValue: {},\n defaultOpenPanelCount: {\n type: Number,\n default: 5,\n },\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\nconst field = fieldRef.value\nconst schema = schemaRef.value\n\nconst { props: collapseProps } = useCleanAttrs(['modelValue', 'onUpdate:modelValue'])\nconst activeKeys = ref<number[] | number>([])\n\nconst { getKey, keyMap } = ArrayBase.useKey(schemaRef.value)\n\nconst dataSource = ref(isArr(field.value) ? field.value : [])\n\nautorun(() => {\n dataSource.value = isArr(field.value) ? [...field.value] : []\n})\n\nfunction range(count: number) {\n return Array.from({ length: count }).map((_, i) => i)\n}\n\nfunction takeDefaultActiveKeys(dataSourceLength: number, defaultOpenPanelCount: number, accordion = false) {\n if (accordion) {\n return 0\n }\n if (dataSourceLength < defaultOpenPanelCount)\n return range(dataSourceLength)\n\n return range(defaultOpenPanelCount)\n}\n\nfunction insertActiveKeys(activeKeys: number[] | number, index: number, accordion = false) {\n if (accordion)\n return index\n /* istanbul ignore if -- @preserve */\n if (!isArr(activeKeys))\n return index\n if (activeKeys.length <= index)\n return (activeKeys).concat(index)\n return (activeKeys).reduce((buf, key) => {\n if (key === index)\n return [...buf, key, key + 1]\n return buf.concat(key + 1)\n }, [])\n}\n\nwatchEffect(() => {\n if (!field.modified && dataSource.value.length > 0) {\n activeKeys.value = takeDefaultActiveKeys(\n dataSource.value.length,\n props.defaultOpenPanelCount,\n collapseProps.value.accordion as boolean,\n )\n }\n})\n\nfunction handleCollapseChange(keys: number[] | number) {\n activeKeys.value = keys\n}\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ArrayBase\n :key=\"dataSource.length\"\n :key-map=\"keyMap\"\n :add=\"(index: number) => {\n activeKeys = insertActiveKeys(\n activeKeys,\n index,\n collapseProps.accordion as boolean,\n )\n }\"\n >\n <template v-if=\"!Array.isArray(props.modelValue) || props.modelValue.length === 0\">\n <ElCard :class=\"[`${prefixCls}-item`]\" shadow=\"never\" v-bind=\"collapseProps\" :header=\"collapseProps.title || field.title\">\n <ElEmpty />\n </ElCard>\n </template>\n <template v-else>\n <ElCollapse\n :model-value=\"activeKeys\"\n :class=\"`${prefixCls}-item`\"\n v-bind=\"collapseProps\"\n @change=\"handleCollapseChange\"\n >\n <ArrayBase.Item v-for=\"(item, index) of dataSource\" :key=\"getKey(item, index)\" :index=\"index\" :record=\"item\">\n <RecursionField\n :schema=\"getArrayItemSchema(schema, index)\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => !isIndexComponent(schema) && !isOperationComponent(schema)\"\n />\n </ArrayBase.Item>\n </ElCollapse>\n </template>\n <template v-for=\"(itemSchema, key) in schema.properties\" :key=\"key\">\n <RecursionField v-if=\"isAdditionComponent(itemSchema)\" :schema=\"itemSchema\" name=\"addition\" />\n </template>\n </ArrayBase>\n </div>\n</template>\n","import { composeExport } from '../__builtins__/shared'\nimport { ArrayBase } from '../array-base'\nimport ArrayCollapseItem from './array-collapse-item.vue'\nimport ArrayCollapseInner from './array-collapse.vue'\nimport './style.scss'\n\nexport const ArrayCollapse = composeExport(ArrayCollapseInner, {\n Item: ArrayCollapseItem,\n Index: ArrayBase.Index,\n SortHandle: ArrayBase.SortHandle,\n Addition: ArrayBase.Addition,\n Remove: ArrayBase.Remove,\n MoveDown: ArrayBase.MoveDown,\n MoveUp: ArrayBase.MoveUp,\n useArray: ArrayBase.useArray,\n useIndex: ArrayBase.useIndex,\n useRecord: ArrayBase.useRecord,\n})\n\nexport default ArrayCollapse\n"],"names":["field","useField","schema","useFieldSchema","index","useIndex","errorCount","formilyComputed","path","collapseItemProps","useCleanAttrs","_openBlock","_createBlock","_unref","_mergeProps","_createElementVNode","_hoisted_1","isArr","RecursionField","isIndexComponent","_renderSlot","_ctx","_createVNode","ElBadge","prefixCls","isOperationComponent","props","__props","fieldRef","schemaRef","collapseProps","activeKeys","ref","getKey","keyMap","ArrayBase","dataSource","autorun","range","count","_","i","takeDefaultActiveKeys","dataSourceLength","defaultOpenPanelCount","accordion","insertActiveKeys","buf","key","watchEffect","handleCollapseChange","keys","_createElementBlock","ElEmpty","_Fragment","_renderList","item","getArrayItemSchema","itemSchema","isAdditionComponent","ArrayCollapse","composeExport","ArrayCollapseInner","ArrayCollapseItem"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import "element-plus";
2
2
  import { autorun as V } from "@formily/reactive";
3
3
  import "@vueuse/core";
4
- import { defineComponent as S, createElementBlock as n, openBlock as a, normalizeClass as h, renderSlot as B, ref as $, mergeProps as D, unref as e, createBlock as f, withCtx as y, createVNode as C, Fragment as v, renderList as R, createCommentVNode as E } from "vue";
4
+ import { defineComponent as S, openBlock as a, createElementBlock as n, normalizeClass as h, renderSlot as B, ref as $, mergeProps as D, unref as e, createBlock as f, withCtx as y, createVNode as C, Fragment as v, renderList as R, createCommentVNode as E } from "vue";
5
5
  import "@formily/core";
6
6
  import "@silver-formily/reactive-vue";
7
7
  import { useField as U, useFieldSchema as K, RecursionField as F } from "@silver-formily/vue";
@@ -1,7 +1,7 @@
1
1
  import { ElScrollbar as P, ElBadge as q, ElEmpty as z } from "element-plus";
2
2
  import { autorun as A } from "@formily/reactive";
3
3
  import "@vueuse/core";
4
- import { defineComponent as K, ref as I, createElementBlock as s, openBlock as a, normalizeClass as i, unref as e, createBlock as d, withCtx as h, createElementVNode as V, createCommentVNode as k, createVNode as T, Fragment as b, renderList as F, toDisplayString as N, normalizeStyle as D } from "vue";
4
+ import { defineComponent as K, ref as I, openBlock as a, createElementBlock as s, normalizeClass as i, unref as e, createBlock as d, withCtx as h, createElementVNode as V, createVNode as k, Fragment as b, renderList as F, toDisplayString as N, createCommentVNode as T, normalizeStyle as D } from "vue";
5
5
  import "@formily/core";
6
6
  import { formilyComputed as M } from "@silver-formily/reactive-vue";
7
7
  import { useField as G, useFieldSchema as H, RecursionField as _ } from "@silver-formily/vue";
@@ -73,7 +73,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
73
73
  V("ul", {
74
74
  class: i(`${e(n)}_list`)
75
75
  }, [
76
- T(e(P), {
76
+ k(e(P), {
77
77
  class: i(`${e(n)}_list--scroll-wrapper`)
78
78
  }, {
79
79
  default: h(() => [
@@ -97,7 +97,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
97
97
  V("div", {
98
98
  class: i(`${e(n)}_list-item--content`)
99
99
  }, [
100
- T(e(q), {
100
+ k(e(q), {
101
101
  class: i([`${e(n)}-errors-badge`]),
102
102
  value: e(v)[t],
103
103
  offset: [5, 0],
@@ -105,7 +105,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
105
105
  }, {
106
106
  default: h(() => [
107
107
  o.showTitleFieldInTab ? (a(), s(b, { key: 1 }, [
108
- e(w)(e(u).items) ? k("", !0) : (a(), d(e(_), {
108
+ e(w)(e(u).items) ? T("", !0) : (a(), d(e(_), {
109
109
  key: 0,
110
110
  schema: e(u).items,
111
111
  name: t,
@@ -120,7 +120,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
120
120
  _: 2
121
121
  }, 1032, ["class", "value", "hidden"])
122
122
  ], 2),
123
- e(w)(e(u).items) ? k("", !0) : (a(), d(e(_), {
123
+ e(w)(e(u).items) ? T("", !0) : (a(), d(e(_), {
124
124
  key: 0,
125
125
  schema: e(u).items,
126
126
  name: t,
@@ -139,15 +139,15 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
139
139
  key: 0,
140
140
  schema: r,
141
141
  name: "addition"
142
- }, null, 8, ["schema"])) : k("", !0)
142
+ }, null, 8, ["schema"])) : T("", !0)
143
143
  ], 64))), 128))
144
144
  ], 2),
145
145
  o.modelValue.length === 0 ? (a(), s("div", {
146
146
  key: 0,
147
147
  class: i(`${e(n)}-tabpane`)
148
148
  }, [
149
- T(e(z), { "image-size": 100 })
150
- ], 2)) : k("", !0),
149
+ k(e(z), { "image-size": 100 })
150
+ ], 2)) : T("", !0),
151
151
  (a(!0), s(b, null, F(o.modelValue, (r, t) => (a(), d(e(y).Item, {
152
152
  key: e(C)(r, t),
153
153
  index: t,
@@ -162,7 +162,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
162
162
  role: "tabpanel",
163
163
  "aria-labelledby": `${e(l).props.name}-tab-${t}`
164
164
  }, [
165
- T(e(_), {
165
+ k(e(_), {
166
166
  schema: e(Q)(e(u), t),
167
167
  name: t,
168
168
  "filter-properties": (c) => e(B)(c) ? !1 : o.showTitleFieldInTab ? !e(E)(c, o.tabTitleField) : !0,
@@ -1,7 +1,7 @@
1
1
  import { ElTable as Y, ElTableColumn as Z, vLoading as ee } from "element-plus";
2
2
  import { reaction as re, autorun as ae } from "@formily/reactive";
3
3
  import "@vueuse/core";
4
- import { defineComponent as te, computed as y, ref as g, watch as oe, createElementBlock as m, openBlock as o, normalizeClass as z, unref as t, createBlock as u, withCtx as f, createVNode as ne, createCommentVNode as A, withDirectives as le, mergeProps as k, Fragment as h, renderList as _, resolveDynamicComponent as se, createElementVNode as ie, createTextVNode as ue, toDisplayString as pe, nextTick as ce } from "vue";
4
+ import { defineComponent as te, computed as y, ref as g, watch as oe, openBlock as o, createElementBlock as m, normalizeClass as z, unref as t, createBlock as u, withCtx as f, createVNode as ne, withDirectives as le, mergeProps as k, Fragment as h, renderList as A, resolveDynamicComponent as se, createElementVNode as ie, createTextVNode as ue, toDisplayString as pe, createCommentVNode as _, nextTick as ce } from "vue";
5
5
  import "@formily/core";
6
6
  import { formilyComputed as de } from "@silver-formily/reactive-vue";
7
7
  import { useField as me, useFieldSchema as fe, RecursionField as R } from "@silver-formily/vue";
@@ -31,7 +31,6 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
31
31
  }
32
32
  function H(a) {
33
33
  const r = a["x-component-props"]?.prop || a.name;
34
- /* istanbul ignore if -- @preserve */
35
34
  if (!r)
36
35
  return [];
37
36
  const e = x.value.query(x.value.address.concat(r)).take();
@@ -57,7 +56,6 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
57
56
  }, { equals: ge });
58
57
  const v = g([]), d = g(c.paginationProps?.pageSize ?? 10), p = g(c.paginationProps?.currentPage ?? 1);
59
58
  function M() {
60
- /* istanbul ignore if -- @preserve */
61
59
  if (!w(l.value)) {
62
60
  v.value = [];
63
61
  return;
@@ -98,7 +96,6 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
98
96
  });
99
97
  return;
100
98
  }
101
- /* istanbul ignore if -- @preserve */
102
99
  if (!w(l.value)) {
103
100
  p.value = 1;
104
101
  return;
@@ -133,7 +130,7 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
133
130
  data: v.value
134
131
  }, t(B)), {
135
132
  default: f(() => [
136
- (o(!0), m(h, null, _(K.value, (e, i) => (o(), u(t(Z), k({
133
+ (o(!0), m(h, null, A(K.value, (e, i) => (o(), u(t(Z), k({
137
134
  key: e.key,
138
135
  ref_for: !0
139
136
  }, e.props), {
@@ -163,7 +160,7 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
163
160
  class: z(`${t(D)}-asterisk`)
164
161
  }, "*", 2),
165
162
  ue(" " + pe(s.label), 1)
166
- ])) : A("", !0)
163
+ ])) : _("", !0)
167
164
  ]),
168
165
  _: 2
169
166
  }, 1040))), 128))
@@ -175,7 +172,7 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
175
172
  ]),
176
173
  _: 1
177
174
  }, 8, ["model-value", "handle"]),
178
- (o(!0), m(h, null, _(L.value, (e, i) => (o(), u(t(R), {
175
+ (o(!0), m(h, null, A(L.value, (e, i) => (o(), u(t(R), {
179
176
  key: i,
180
177
  name: e.name,
181
178
  schema: e.schema,
@@ -191,13 +188,13 @@ import '../styles/array-table/index.css';const Te = { key: 1 }, Ae = /* @__PURE_
191
188
  background: "",
192
189
  layout: "total, sizes, prev, pager, next",
193
190
  total: c.modelValue.length
194
- }, N.value), null, 16, ["current-page", "page-size", "class", "total"])) : A("", !0),
195
- (o(!0), m(h, null, _(U.value, (e, i) => (o(), m(h, { key: i }, [
191
+ }, N.value), null, 16, ["current-page", "page-size", "class", "total"])) : _("", !0),
192
+ (o(!0), m(h, null, A(U.value, (e, i) => (o(), m(h, { key: i }, [
196
193
  t(he)(e) ? (o(), u(t(R), {
197
194
  key: 0,
198
195
  schema: e,
199
196
  name: "addition"
200
- }, null, 8, ["schema"])) : A("", !0)
197
+ }, null, 8, ["schema"])) : _("", !0)
201
198
  ], 64))), 128))
202
199
  ]),
203
200
  _: 1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/array-table/array-table.vue","../../src/array-table/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ArrayField } from '@formily/core'\nimport type { Schema } from '@formily/json-schema'\nimport type { TableInstance } from 'element-plus'\nimport type { IArrayTableProps } from './types'\nimport { autorun, reaction } from '@formily/reactive'\nimport { isArr, isEqual } from '@formily/shared'\nimport { formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElTable, ElTableColumn, vLoading } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { VueDraggable } from 'vue-draggable-plus'\nimport { stylePrefix, useCleanAttrs } from '../__builtins__'\nimport { ArrayBase } from '../array-base'\nimport { isAdditionComponent } from '../array-base/utils'\nimport ElPagination from '../pagination/pagination'\nimport { hasRequiredProperty, isColumnComponent, isTableComponent, prefixCls } from './utils'\n\ndefineOptions({\n name: 'FArrayTable',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<IArrayTableProps>(), {\n modelValue: () => [],\n pagination: true,\n})\nconst { props: elTableProps } = useCleanAttrs()\nconst paginationProps = computed(() => omit(props.paginationProps, ['pageSize', 'currentPage']))\nconst fieldRef = useField<ArrayField>()\nconst field = fieldRef.value\nconst schemaRef = useFieldSchema()\nconst additionSchemas = computed<Record<string, Schema>>(() => schemaRef.value?.properties ?? {})\nconst { getKey, keyMap } = ArrayBase.useKey(schemaRef.value)\n\nconst elTableRef = ref<TableInstance>()\n\nfunction extractTableSources(schema: Schema): any[] {\n if (isTableComponent(schema)) {\n return createTableSource(schema)\n }\n return schema.properties\n ? Object.values(schema.properties).flatMap(element => extractTableSources(element))\n : []\n}\n\nfunction createTableSource(schema: Schema): any[] {\n const propName = schema['x-component-props']?.prop || schema.name\n /* istanbul ignore if -- @preserve */\n if (!propName)\n return []\n\n const field = fieldRef.value.query(fieldRef.value.address.concat(propName)).take()\n\n return [{\n name: propName,\n display: field?.display || schema['x-display'],\n required: hasRequiredProperty(schema),\n field,\n fieldProps: field?.props || schema.toFieldProps(),\n schema,\n columnProps: (field?.component as any[])?.[1] || schema['x-component-props'] || {},\n }]\n}\n\nconst triggerUpdateKey = ref(0)\nreaction(() => {\n const path = field.path.entire\n return field.query(`${path}.*`).map((item) => {\n return {\n name: item.component[0],\n visible: item.visible,\n }\n }).filter(item => item.name.includes('Column'))\n}, async () => {\n triggerUpdateKey.value++\n}, { equals: isEqual })\n\nconst dataSource = ref([])\nconst pageSize = ref(props.paginationProps?.pageSize ?? 10)\nconst currentPage = ref(props.paginationProps?.currentPage ?? 1)\n\nfunction updateDataSource() {\n /* istanbul ignore if -- @preserve */\n if (!isArr(field.value)) {\n dataSource.value = []\n return\n }\n if (props.pagination === false) {\n dataSource.value = [...field.value]\n return\n }\n dataSource.value = field.value.slice((currentPage.value - 1) * pageSize.value, (currentPage.value) * pageSize.value)\n}\nwatch([pageSize, currentPage], updateDataSource)\nautorun(updateDataSource)\n\nconst sources = formilyComputed(() => {\n const schema = schemaRef.value.items\n const items = isArr(schema) ? schema : [schema]\n return items.reduce((columns, schema) => {\n const item = extractTableSources(schema)\n return columns.concat(item)\n }, []).filter(item => item.display !== 'none')\n})\n\nconst columns = computed(() => {\n const currentSources = sources.value ?? []\n return currentSources\n .map((source, index) => ({ source, index }))\n .filter(({ source }) => source.display === 'visible' && isColumnComponent(source.schema))\n .map(({ source, index: key }) => {\n const { name, columnProps, required, field } = source\n const { title, asterisk, ...restProps } = columnProps\n const props = {\n label: title,\n ...restProps,\n prop: name,\n }\n return {\n key,\n props,\n field,\n asterisk: asterisk ?? required,\n }\n })\n})\n\nconst stateManagerColumns = computed(() => {\n const currentSources = sources.value ?? []\n return currentSources.filter((column) => {\n return column.display !== 'none' && isColumnComponent(column.schema)\n })\n})\n\nconst baseIndex = computed(() => {\n return (currentPage.value - 1) * pageSize.value\n})\n\nasync function onAddItemClick() {\n if (props.pagination === false) {\n await nextTick()\n const scrollWarpDOM = elTableRef.value?.$el.querySelector('.el-scrollbar__wrap')\n scrollWarpDOM?.scrollTo({\n top: scrollWarpDOM.scrollHeight,\n behavior: 'smooth',\n })\n return\n }\n /* istanbul ignore if -- @preserve */\n if (!isArr(field.value)) {\n currentPage.value = 1\n return\n }\n currentPage.value = Math.ceil(field.value.length / pageSize.value)\n}\n\nasync function handleDragEnd(evt: { oldIndex: number, newIndex: number }) {\n const { oldIndex, newIndex } = evt\n await field.move(oldIndex, newIndex)\n triggerUpdateKey.value++\n}\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ArrayBase :key=\"triggerUpdateKey\" :key-map=\"keyMap\" :add=\"onAddItemClick\">\n <VueDraggable\n :model-value=\"dataSource\" target=\"tbody\" :handle=\"`.${stylePrefix}-array-base-sort-handle`\"\n :animation=\"150\" @end=\"handleDragEnd\"\n >\n <ElTable ref=\"elTableRef\" v-loading=\"field.loading\" :row-key=\"getKey\" :data=\"dataSource\" v-bind=\"elTableProps\">\n <template v-for=\"(column, colIndex) of columns\" :key=\"column.key\">\n <ElTableColumn v-bind=\"column.props\">\n <template #default=\"{ row, $index }\">\n <ArrayBase.Item :key=\"getKey(row)\" :index=\"$index + baseIndex\" :record=\"row\">\n <RecursionField\n :key=\"`${getKey(row)}`\" :schema=\"sources[colIndex].schema\"\n :name=\"$index + baseIndex\" only-render-properties\n />\n </ArrayBase.Item>\n </template>\n <template #header=\"{ column: col }\">\n <template v-if=\"column.field.content?.header\">\n <component :is=\"column.field.content.header\" v-bind=\"{ ...col, field }\" />\n </template>\n <span v-else-if=\"column.asterisk\">\n <span :class=\"`${prefixCls}-asterisk`\">*</span>\n {{ col.label }}\n </span>\n </template>\n </ElTableColumn>\n </template>\n </ElTable>\n </VueDraggable>\n\n <!-- 状态管理器 -->\n <template v-for=\"(column, key) of stateManagerColumns\" :key=\"key\">\n <RecursionField :name=\"column.name\" :schema=\"column.schema\" :only-render-self=\"true\" />\n </template>\n <ElPagination\n v-if=\"props.pagination\" v-model:current-page=\"currentPage\" v-model:page-size=\"pageSize\"\n :class=\"`${prefixCls}-pagination`\" background layout=\"total, sizes, prev, pager, next\"\n :total=\"props.modelValue.length\" v-bind=\"paginationProps\"\n />\n <template v-for=\"(itemSchema, key) of additionSchemas\" :key=\"key\">\n <RecursionField v-if=\"isAdditionComponent(itemSchema)\" :schema=\"itemSchema\" name=\"addition\" />\n </template>\n </ArrayBase>\n </div>\n</template>\n","import type { Component } from 'vue'\nimport { composeExport } from '../__builtins__/shared'\nimport { ArrayBase } from '../array-base'\nimport ArrayTableInner from './array-table.vue'\nimport './style.scss'\n\nconst ArrayTableColumn: Component = {\n name: 'FArrayTableColumn',\n render() {\n return null\n },\n}\n\nexport const ArrayTable = composeExport(ArrayTableInner, {\n Column: ArrayTableColumn,\n Index: ArrayBase.Index,\n SortHandle: ArrayBase.SortHandle,\n Addition: ArrayBase.Addition,\n Remove: ArrayBase.Remove,\n MoveDown: ArrayBase.MoveDown,\n MoveUp: ArrayBase.MoveUp,\n useArray: ArrayBase.useArray,\n useIndex: ArrayBase.useIndex,\n useRecord: ArrayBase.useRecord,\n})\n\nexport default ArrayTable\n"],"names":["props","__props","elTableProps","useCleanAttrs","paginationProps","computed","omit","fieldRef","useField","field","schemaRef","useFieldSchema","additionSchemas","getKey","keyMap","ArrayBase","elTableRef","ref","extractTableSources","schema","isTableComponent","createTableSource","element","propName","hasRequiredProperty","triggerUpdateKey","reaction","path","item","isEqual","dataSource","pageSize","currentPage","updateDataSource","isArr","watch","autorun","sources","formilyComputed","columns","source","index","isColumnComponent","key","name","columnProps","required","title","asterisk","restProps","stateManagerColumns","column","baseIndex","onAddItemClick","nextTick","scrollWarpDOM","handleDragEnd","evt","oldIndex","newIndex","_createElementBlock","_unref","prefixCls","_createBlock","_createVNode","VueDraggable","stylePrefix","_withDirectives","_openBlock","_mergeProps","_Fragment","_renderList","colIndex","_withCtx","row","$index","RecursionField","col","_resolveDynamicComponent","_hoisted_1","_createElementVNode","_toDisplayString","vLoading","$event","itemSchema","isAdditionComponent","ArrayTableColumn","ArrayTable","composeExport","ArrayTableInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/array-table/array-table.vue","../../src/array-table/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ArrayField } from '@formily/core'\nimport type { Schema } from '@formily/json-schema'\nimport type { TableInstance } from 'element-plus'\nimport type { IArrayTableProps } from './types'\nimport { autorun, reaction } from '@formily/reactive'\nimport { isArr, isEqual } from '@formily/shared'\nimport { formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElTable, ElTableColumn, vLoading } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { VueDraggable } from 'vue-draggable-plus'\nimport { stylePrefix, useCleanAttrs } from '../__builtins__'\nimport { ArrayBase } from '../array-base'\nimport { isAdditionComponent } from '../array-base/utils'\nimport ElPagination from '../pagination/pagination'\nimport { hasRequiredProperty, isColumnComponent, isTableComponent, prefixCls } from './utils'\n\ndefineOptions({\n name: 'FArrayTable',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<IArrayTableProps>(), {\n modelValue: () => [],\n pagination: true,\n})\nconst { props: elTableProps } = useCleanAttrs()\nconst paginationProps = computed(() => omit(props.paginationProps, ['pageSize', 'currentPage']))\nconst fieldRef = useField<ArrayField>()\nconst field = fieldRef.value\nconst schemaRef = useFieldSchema()\nconst additionSchemas = computed<Record<string, Schema>>(() => schemaRef.value?.properties ?? {})\nconst { getKey, keyMap } = ArrayBase.useKey(schemaRef.value)\n\nconst elTableRef = ref<TableInstance>()\n\nfunction extractTableSources(schema: Schema): any[] {\n if (isTableComponent(schema)) {\n return createTableSource(schema)\n }\n return schema.properties\n ? Object.values(schema.properties).flatMap(element => extractTableSources(element))\n : []\n}\n\nfunction createTableSource(schema: Schema): any[] {\n const propName = schema['x-component-props']?.prop || schema.name\n /* istanbul ignore if -- @preserve */\n if (!propName)\n return []\n\n const field = fieldRef.value.query(fieldRef.value.address.concat(propName)).take()\n\n return [{\n name: propName,\n display: field?.display || schema['x-display'],\n required: hasRequiredProperty(schema),\n field,\n fieldProps: field?.props || schema.toFieldProps(),\n schema,\n columnProps: (field?.component as any[])?.[1] || schema['x-component-props'] || {},\n }]\n}\n\nconst triggerUpdateKey = ref(0)\nreaction(() => {\n const path = field.path.entire\n return field.query(`${path}.*`).map((item) => {\n return {\n name: item.component[0],\n visible: item.visible,\n }\n }).filter(item => item.name.includes('Column'))\n}, async () => {\n triggerUpdateKey.value++\n}, { equals: isEqual })\n\nconst dataSource = ref([])\nconst pageSize = ref(props.paginationProps?.pageSize ?? 10)\nconst currentPage = ref(props.paginationProps?.currentPage ?? 1)\n\nfunction updateDataSource() {\n /* istanbul ignore if -- @preserve */\n if (!isArr(field.value)) {\n dataSource.value = []\n return\n }\n if (props.pagination === false) {\n dataSource.value = [...field.value]\n return\n }\n dataSource.value = field.value.slice((currentPage.value - 1) * pageSize.value, (currentPage.value) * pageSize.value)\n}\nwatch([pageSize, currentPage], updateDataSource)\nautorun(updateDataSource)\n\nconst sources = formilyComputed(() => {\n const schema = schemaRef.value.items\n const items = isArr(schema) ? schema : [schema]\n return items.reduce((columns, schema) => {\n const item = extractTableSources(schema)\n return columns.concat(item)\n }, []).filter(item => item.display !== 'none')\n})\n\nconst columns = computed(() => {\n const currentSources = sources.value ?? []\n return currentSources\n .map((source, index) => ({ source, index }))\n .filter(({ source }) => source.display === 'visible' && isColumnComponent(source.schema))\n .map(({ source, index: key }) => {\n const { name, columnProps, required, field } = source\n const { title, asterisk, ...restProps } = columnProps\n const props = {\n label: title,\n ...restProps,\n prop: name,\n }\n return {\n key,\n props,\n field,\n asterisk: asterisk ?? required,\n }\n })\n})\n\nconst stateManagerColumns = computed(() => {\n const currentSources = sources.value ?? []\n return currentSources.filter((column) => {\n return column.display !== 'none' && isColumnComponent(column.schema)\n })\n})\n\nconst baseIndex = computed(() => {\n return (currentPage.value - 1) * pageSize.value\n})\n\nasync function onAddItemClick() {\n if (props.pagination === false) {\n await nextTick()\n const scrollWarpDOM = elTableRef.value?.$el.querySelector('.el-scrollbar__wrap')\n scrollWarpDOM?.scrollTo({\n top: scrollWarpDOM.scrollHeight,\n behavior: 'smooth',\n })\n return\n }\n /* istanbul ignore if -- @preserve */\n if (!isArr(field.value)) {\n currentPage.value = 1\n return\n }\n currentPage.value = Math.ceil(field.value.length / pageSize.value)\n}\n\nasync function handleDragEnd(evt: { oldIndex: number, newIndex: number }) {\n const { oldIndex, newIndex } = evt\n await field.move(oldIndex, newIndex)\n triggerUpdateKey.value++\n}\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ArrayBase :key=\"triggerUpdateKey\" :key-map=\"keyMap\" :add=\"onAddItemClick\">\n <VueDraggable\n :model-value=\"dataSource\" target=\"tbody\" :handle=\"`.${stylePrefix}-array-base-sort-handle`\"\n :animation=\"150\" @end=\"handleDragEnd\"\n >\n <ElTable ref=\"elTableRef\" v-loading=\"field.loading\" :row-key=\"getKey\" :data=\"dataSource\" v-bind=\"elTableProps\">\n <template v-for=\"(column, colIndex) of columns\" :key=\"column.key\">\n <ElTableColumn v-bind=\"column.props\">\n <template #default=\"{ row, $index }\">\n <ArrayBase.Item :key=\"getKey(row)\" :index=\"$index + baseIndex\" :record=\"row\">\n <RecursionField\n :key=\"`${getKey(row)}`\" :schema=\"sources[colIndex].schema\"\n :name=\"$index + baseIndex\" only-render-properties\n />\n </ArrayBase.Item>\n </template>\n <template #header=\"{ column: col }\">\n <template v-if=\"column.field.content?.header\">\n <component :is=\"column.field.content.header\" v-bind=\"{ ...col, field }\" />\n </template>\n <span v-else-if=\"column.asterisk\">\n <span :class=\"`${prefixCls}-asterisk`\">*</span>\n {{ col.label }}\n </span>\n </template>\n </ElTableColumn>\n </template>\n </ElTable>\n </VueDraggable>\n\n <!-- 状态管理器 -->\n <template v-for=\"(column, key) of stateManagerColumns\" :key=\"key\">\n <RecursionField :name=\"column.name\" :schema=\"column.schema\" :only-render-self=\"true\" />\n </template>\n <ElPagination\n v-if=\"props.pagination\" v-model:current-page=\"currentPage\" v-model:page-size=\"pageSize\"\n :class=\"`${prefixCls}-pagination`\" background layout=\"total, sizes, prev, pager, next\"\n :total=\"props.modelValue.length\" v-bind=\"paginationProps\"\n />\n <template v-for=\"(itemSchema, key) of additionSchemas\" :key=\"key\">\n <RecursionField v-if=\"isAdditionComponent(itemSchema)\" :schema=\"itemSchema\" name=\"addition\" />\n </template>\n </ArrayBase>\n </div>\n</template>\n","import type { Component } from 'vue'\nimport { composeExport } from '../__builtins__/shared'\nimport { ArrayBase } from '../array-base'\nimport ArrayTableInner from './array-table.vue'\nimport './style.scss'\n\nconst ArrayTableColumn: Component = {\n name: 'FArrayTableColumn',\n render() {\n return null\n },\n}\n\nexport const ArrayTable = composeExport(ArrayTableInner, {\n Column: ArrayTableColumn,\n Index: ArrayBase.Index,\n SortHandle: ArrayBase.SortHandle,\n Addition: ArrayBase.Addition,\n Remove: ArrayBase.Remove,\n MoveDown: ArrayBase.MoveDown,\n MoveUp: ArrayBase.MoveUp,\n useArray: ArrayBase.useArray,\n useIndex: ArrayBase.useIndex,\n useRecord: ArrayBase.useRecord,\n})\n\nexport default ArrayTable\n"],"names":["props","__props","elTableProps","useCleanAttrs","paginationProps","computed","omit","fieldRef","useField","field","schemaRef","useFieldSchema","additionSchemas","getKey","keyMap","ArrayBase","elTableRef","ref","extractTableSources","schema","isTableComponent","createTableSource","element","propName","hasRequiredProperty","triggerUpdateKey","reaction","path","item","isEqual","dataSource","pageSize","currentPage","updateDataSource","isArr","watch","autorun","sources","formilyComputed","columns","source","index","isColumnComponent","key","name","columnProps","required","title","asterisk","restProps","stateManagerColumns","column","baseIndex","onAddItemClick","nextTick","scrollWarpDOM","handleDragEnd","evt","oldIndex","newIndex","_createElementBlock","_unref","prefixCls","_createBlock","_createVNode","VueDraggable","stylePrefix","_withDirectives","_openBlock","_mergeProps","_Fragment","_renderList","colIndex","_withCtx","row","$index","RecursionField","col","_resolveDynamicComponent","_hoisted_1","_createElementVNode","_toDisplayString","vLoading","$event","itemSchema","isAdditionComponent","ArrayTableColumn","ArrayTable","composeExport","ArrayTableInner"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as C, ref as p, onUnmounted as E, createBlock as f, openBlock as s, unref as e, mergeProps as F, withCtx as m, createElementBlock as i, Fragment as _, renderList as A, createVNode as b, normalizeClass as B, createTextVNode as N, toDisplayString as v } from "vue";
1
+ import { defineComponent as C, ref as p, onUnmounted as E, openBlock as s, createBlock as f, unref as e, mergeProps as F, withCtx as m, createElementBlock as i, Fragment as _, renderList as A, createVNode as b, normalizeClass as B, createTextVNode as N, toDisplayString as v } from "vue";
2
2
  import { reaction as P } from "@formily/reactive";
3
3
  import { isEqual as R, isFn as h } from "@formily/shared";
4
4
  import { useField as S, useFieldSchema as V, RecursionField as q } from "@silver-formily/vue";
@@ -15,7 +15,6 @@ import '../styles/array-tabs/index.css';const K = { key: 0 }, j = { key: 1 }, G
15
15
  __name: "array-tabs",
16
16
  setup(H) {
17
17
  const y = S(), $ = V(), c = `${z}-array-tabs`, n = p("tab-0"), t = y.value;
18
- /* istanbul ignore else -- @preserve */
19
18
  t.value.length === 0 && t.value.push(null);
20
19
  const g = $.value;
21
20
  function d(r) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/array-tabs/array-tabs.vue","../../src/array-tabs/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport type { TabPaneName } from 'element-plus'\nimport { reaction } from '@formily/reactive'\nimport { isEqual, isFn } from '@formily/shared'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElTabPane, ElTabs } from 'element-plus'\nimport { onUnmounted, ref } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\nimport { stylePrefix } from '../__builtins__/configs'\nimport { getArrayItemSchema } from '../array-base/utils'\n\ndefineOptions({\n name: 'FArrayTabs',\n inheritAttrs: false,\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\n\nconst prefixCls = `${stylePrefix}-array-tabs`\nconst activeKey = ref<TabPaneName>('tab-0')\n\nconst field = fieldRef.value\n/* istanbul ignore else -- @preserve */\nif (field.value.length === 0) {\n field.value.push(null)\n}\nconst schema = schemaRef.value\nfunction getTabTitle(index: number) {\n return `${field.title || 'Untitled'} ${index + 1}`\n}\n\nconst errorCountList = ref([])\nconst dispose = reaction(() => {\n return field.value.map((item, index) => {\n const panelErrors = field.form.queryFeedbacks({\n type: 'error',\n address: `${field.address.concat(index)}.**`,\n })\n return panelErrors.length\n })\n}, (newVal) => {\n errorCountList.value = newVal\n}, {\n equals: isEqual,\n})\nonUnmounted(() => {\n dispose()\n})\nconst { props: elTabProps } = useCleanAttrs(['value', 'modelValue', 'onUpdate:modelValue'])\n</script>\n\n<template>\n <ElTabs\n v-bind=\"elTabProps\"\n :model-value=\"activeKey\"\n :class=\"prefixCls\"\n type=\"card\"\n :addable=\"true\"\n @tab-remove=\"(target) => {\n const index = target.toString().match(/tab-(\\d+)/)?.[1]\n field.remove(Number(index))\n if (activeKey === target) {\n activeKey = `tab-${Number(index) - 1}`\n }\n\n if (isFn($attrs['tab-remove'])) {\n $attrs['tab-remove'](target)\n }\n }\"\n @tab-add=\"() => {\n const id = field.value.length\n field.value.push(null)\n activeKey = `tab-${id}`\n if (isFn($attrs['tab-add'])) {\n $attrs['tab-add']()\n }\n }\"\n @change=\"() => {}\"\n >\n <ElTabPane\n v-for=\"(item, index) of field.value\"\n :key=\"`tab-${index}`\"\n :closable=\"index !== 0\"\n :name=\"`tab-${index}`\"\n >\n <template #default>\n <RecursionField\n :schema=\"getArrayItemSchema(schema, index)\"\n :name=\"index\"\n />\n </template>\n <template #label>\n <span v-if=\"errorCountList[index] > 0\">\n <ElBadge\n :class=\"[`${prefixCls}-errors-badge`]\"\n :value=\"errorCountList[index]\"\n >\n {{ getTabTitle(index) }}\n </ElBadge>\n </span>\n <span v-else>\n {{ getTabTitle(index) }}\n </span>\n </template>\n </ElTabPane>\n </ElTabs>\n</template>\n","import FArrayTabs from './array-tabs.vue'\nimport './style.scss'\n\nexport const ArrayTabs = FArrayTabs\n\nexport default ArrayTabs\n"],"names":["fieldRef","useField","schemaRef","useFieldSchema","prefixCls","stylePrefix","activeKey","ref","field","schema","getTabTitle","index","errorCountList","dispose","reaction","item","newVal","isEqual","onUnmounted","elTabProps","useCleanAttrs","_createBlock","_unref","ElTabs","_mergeProps","target","isFn","$attrs","_cache","id","_openBlock","_createElementBlock","_Fragment","ElTabPane","_createVNode","RecursionField","getArrayItemSchema","_hoisted_1","ElBadge","_createTextVNode","_toDisplayString","_hoisted_2","ArrayTabs","FArrayTabs"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/array-tabs/array-tabs.vue","../../src/array-tabs/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport type { TabPaneName } from 'element-plus'\nimport { reaction } from '@formily/reactive'\nimport { isEqual, isFn } from '@formily/shared'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElTabPane, ElTabs } from 'element-plus'\nimport { onUnmounted, ref } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\nimport { stylePrefix } from '../__builtins__/configs'\nimport { getArrayItemSchema } from '../array-base/utils'\n\ndefineOptions({\n name: 'FArrayTabs',\n inheritAttrs: false,\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\n\nconst prefixCls = `${stylePrefix}-array-tabs`\nconst activeKey = ref<TabPaneName>('tab-0')\n\nconst field = fieldRef.value\n/* istanbul ignore else -- @preserve */\nif (field.value.length === 0) {\n field.value.push(null)\n}\nconst schema = schemaRef.value\nfunction getTabTitle(index: number) {\n return `${field.title || 'Untitled'} ${index + 1}`\n}\n\nconst errorCountList = ref([])\nconst dispose = reaction(() => {\n return field.value.map((item, index) => {\n const panelErrors = field.form.queryFeedbacks({\n type: 'error',\n address: `${field.address.concat(index)}.**`,\n })\n return panelErrors.length\n })\n}, (newVal) => {\n errorCountList.value = newVal\n}, {\n equals: isEqual,\n})\nonUnmounted(() => {\n dispose()\n})\nconst { props: elTabProps } = useCleanAttrs(['value', 'modelValue', 'onUpdate:modelValue'])\n</script>\n\n<template>\n <ElTabs\n v-bind=\"elTabProps\"\n :model-value=\"activeKey\"\n :class=\"prefixCls\"\n type=\"card\"\n :addable=\"true\"\n @tab-remove=\"(target) => {\n const index = target.toString().match(/tab-(\\d+)/)?.[1]\n field.remove(Number(index))\n if (activeKey === target) {\n activeKey = `tab-${Number(index) - 1}`\n }\n\n if (isFn($attrs['tab-remove'])) {\n $attrs['tab-remove'](target)\n }\n }\"\n @tab-add=\"() => {\n const id = field.value.length\n field.value.push(null)\n activeKey = `tab-${id}`\n if (isFn($attrs['tab-add'])) {\n $attrs['tab-add']()\n }\n }\"\n @change=\"() => {}\"\n >\n <ElTabPane\n v-for=\"(item, index) of field.value\"\n :key=\"`tab-${index}`\"\n :closable=\"index !== 0\"\n :name=\"`tab-${index}`\"\n >\n <template #default>\n <RecursionField\n :schema=\"getArrayItemSchema(schema, index)\"\n :name=\"index\"\n />\n </template>\n <template #label>\n <span v-if=\"errorCountList[index] > 0\">\n <ElBadge\n :class=\"[`${prefixCls}-errors-badge`]\"\n :value=\"errorCountList[index]\"\n >\n {{ getTabTitle(index) }}\n </ElBadge>\n </span>\n <span v-else>\n {{ getTabTitle(index) }}\n </span>\n </template>\n </ElTabPane>\n </ElTabs>\n</template>\n","import FArrayTabs from './array-tabs.vue'\nimport './style.scss'\n\nexport const ArrayTabs = FArrayTabs\n\nexport default ArrayTabs\n"],"names":["fieldRef","useField","schemaRef","useFieldSchema","prefixCls","stylePrefix","activeKey","ref","field","schema","getTabTitle","index","errorCountList","dispose","reaction","item","newVal","isEqual","onUnmounted","elTabProps","useCleanAttrs","_createBlock","_unref","ElTabs","_mergeProps","target","isFn","$attrs","_cache","id","_openBlock","_createElementBlock","_Fragment","ElTabPane","_createVNode","RecursionField","getArrayItemSchema","_hoisted_1","ElBadge","_createTextVNode","_toDisplayString","_hoisted_2","ArrayTabs","FArrayTabs"],"mappings":"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"}