@silver-formily/element-plus 3.0.1 → 3.0.2

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 (87) hide show
  1. package/esm/__builtins__/shared/loading.mjs +1 -1
  2. package/esm/__builtins__/shared/loading.mjs.map +1 -1
  3. package/esm/__builtins__/shared/use-enter-submit.mjs +57 -16
  4. package/esm/__builtins__/shared/use-enter-submit.mjs.map +1 -1
  5. package/esm/array-base/index.mjs +21 -22
  6. package/esm/array-base/index.mjs.map +1 -1
  7. package/esm/array-base/utils.mjs +17 -18
  8. package/esm/array-base/utils.mjs.map +1 -1
  9. package/esm/array-cards/index.mjs +11 -12
  10. package/esm/array-cards/index.mjs.map +1 -1
  11. package/esm/array-collapse/index.mjs +26 -27
  12. package/esm/array-collapse/index.mjs.map +1 -1
  13. package/esm/array-collapse/utils.mjs +3 -4
  14. package/esm/array-collapse/utils.mjs.map +1 -1
  15. package/esm/array-items/index.mjs +20 -21
  16. package/esm/array-items/index.mjs.map +1 -1
  17. package/esm/array-list-tabs/index.mjs +28 -29
  18. package/esm/array-list-tabs/index.mjs.map +1 -1
  19. package/esm/array-list-tabs/utils.mjs +5 -6
  20. package/esm/array-list-tabs/utils.mjs.map +1 -1
  21. package/esm/array-table/index.mjs +52 -53
  22. package/esm/array-table/index.mjs.map +1 -1
  23. package/esm/array-table/utils.mjs +10 -11
  24. package/esm/array-table/utils.mjs.map +1 -1
  25. package/esm/array-tabs/index.mjs +40 -43
  26. package/esm/array-tabs/index.mjs.map +1 -1
  27. package/esm/autocomplete/index.mjs +4 -5
  28. package/esm/autocomplete/index.mjs.map +1 -1
  29. package/esm/cascader/index.mjs +7 -8
  30. package/esm/cascader/index.mjs.map +1 -1
  31. package/esm/checkbox/index.mjs +4 -5
  32. package/esm/checkbox/index.mjs.map +1 -1
  33. package/esm/color-picker/index.mjs +1 -1
  34. package/esm/color-picker-panel/index.mjs +1 -1
  35. package/esm/date-picker/index.mjs +1 -1
  36. package/esm/date-picker-panel/index.mjs +1 -1
  37. package/esm/editable/index.mjs +28 -29
  38. package/esm/editable/index.mjs.map +1 -1
  39. package/esm/form-button-group/index.mjs +8 -9
  40. package/esm/form-button-group/index.mjs.map +1 -1
  41. package/esm/form-button-group/utils.mjs +3 -4
  42. package/esm/form-button-group/utils.mjs.map +1 -1
  43. package/esm/form-collapse/index.mjs +4 -5
  44. package/esm/form-collapse/index.mjs.map +1 -1
  45. package/esm/form-grid/index.mjs +3 -4
  46. package/esm/form-grid/index.mjs.map +1 -1
  47. package/esm/form-item/index.mjs +4 -5
  48. package/esm/form-item/index.mjs.map +1 -1
  49. package/esm/form-layout/form-layout.mjs +3 -4
  50. package/esm/form-layout/form-layout.mjs.map +1 -1
  51. package/esm/form-step/index.mjs +12 -13
  52. package/esm/form-step/index.mjs.map +1 -1
  53. package/esm/form-tab/index.mjs +19 -20
  54. package/esm/form-tab/index.mjs.map +1 -1
  55. package/esm/input/index.mjs +13 -14
  56. package/esm/input/index.mjs.map +1 -1
  57. package/esm/input-number/index.mjs +1 -1
  58. package/esm/input-tag/index.mjs +12 -13
  59. package/esm/input-tag/index.mjs.map +1 -1
  60. package/esm/mention/index.mjs +12 -13
  61. package/esm/mention/index.mjs.map +1 -1
  62. package/esm/preview-text/index.mjs +4 -5
  63. package/esm/preview-text/index.mjs.map +1 -1
  64. package/esm/query-form/index.mjs +135 -136
  65. package/esm/query-form/index.mjs.map +1 -1
  66. package/esm/query-form-item/index.mjs +23 -24
  67. package/esm/query-form-item/index.mjs.map +1 -1
  68. package/esm/radio/index.mjs +4 -5
  69. package/esm/radio/index.mjs.map +1 -1
  70. package/esm/rate/index.mjs +1 -1
  71. package/esm/segmented/index.mjs +4 -5
  72. package/esm/segmented/index.mjs.map +1 -1
  73. package/esm/select/index.mjs +13 -14
  74. package/esm/select/index.mjs.map +1 -1
  75. package/esm/select-table/index.mjs +4 -5
  76. package/esm/select-table/index.mjs.map +1 -1
  77. package/esm/slider/index.mjs +1 -1
  78. package/esm/time-picker/index.mjs +1 -1
  79. package/esm/time-select/index.d.ts +8 -8
  80. package/esm/time-select/index.mjs +1 -1
  81. package/esm/tree/index.mjs +8 -9
  82. package/esm/tree/index.mjs.map +1 -1
  83. package/esm/tree-select/index.mjs +4 -5
  84. package/esm/tree-select/index.mjs.map +1 -1
  85. package/esm/upload/index.mjs +36 -40
  86. package/esm/upload/index.mjs.map +1 -1
  87. package/package.json +9 -9
@@ -1,9 +1,8 @@
1
1
  import { ElCollapseItem as T, ElBadge as j, ElCard as G, ElEmpty as J, ElCollapse as L } from "element-plus";
2
- import { autorun as Q } from "@formily/reactive";
2
+ import { formilyComputed as Q, autorunEffect as W } from "@silver-formily/reactive-vue";
3
3
  import "@vueuse/core";
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";
4
+ import { defineComponent as N, openBlock as l, createBlock as d, unref as e, mergeProps as R, withCtx as f, renderSlot as $, createElementVNode as w, createCommentVNode as S, createVNode as g, normalizeClass as D, createTextVNode as X, toDisplayString as Y, ref as B, watchEffect as Z, createElementBlock as A, Fragment as E, renderList as M } from "vue";
5
5
  import "@formily/core";
6
- import { formilyComputed as Z } from "@silver-formily/reactive-vue";
7
6
  import { useField as P, useFieldSchema as U, RecursionField as I } from "@silver-formily/vue";
8
7
  import { useCleanAttrs as b, composeExport as ee } from "../__builtins__/shared/utils.mjs";
9
8
  import { ArrayBase as o } from "../array-base/index.mjs";
@@ -15,32 +14,32 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
15
14
  inheritAttrs: !1,
16
15
  __name: "array-collapse-item",
17
16
  setup(x) {
18
- const y = P().value, r = U().value.parent, u = re(), m = Z(() => {
17
+ const y = P().value, r = U().value.parent, m = re(), u = Q(() => {
19
18
  const h = y.address.concat();
20
19
  return y.form.queryFeedbacks({
21
20
  type: "error",
22
21
  address: `${h}.**`
23
22
  }).length;
24
23
  }), { props: c } = b();
25
- return (h, V) => (l(), d(e(T), E({ name: e(u) }, e(c)), {
24
+ return (h, V) => (l(), d(e(T), R({ name: e(m) }, e(c)), {
26
25
  title: f(() => [
27
26
  w("div", oe, [
28
27
  e(C)(e(r).items) ? S("", !0) : (l(), d(e(I), {
29
28
  key: 0,
30
29
  schema: e(r).items,
31
- name: e(u),
30
+ name: e(m),
32
31
  "filter-properties": (s) => e(H)(s),
33
32
  "only-render-properties": !0
34
33
  }, null, 8, ["schema", "name", "filter-properties"])),
35
34
  $(h.$slots, "title", {}, () => [
36
35
  g(e(j), {
37
36
  class: D([`${e(_)}-errors-badge`]),
38
- value: e(m),
37
+ value: e(u),
39
38
  offset: [5, -2],
40
- hidden: e(m) === 0
39
+ hidden: e(u) === 0
41
40
  }, {
42
41
  default: f(() => [
43
- W(X(e(r).items?.["x-component-props"]?.title), 1)
42
+ X(Y(e(r).items?.["x-component-props"]?.title), 1)
44
43
  ]),
45
44
  _: 1
46
45
  }, 8, ["class", "value", "hidden"])
@@ -48,8 +47,8 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
48
47
  ]),
49
48
  w("div", null, [
50
49
  g(e(I), {
51
- schema: Array.isArray(e(r).items) ? e(r).items[e(u)] || e(r).items[0] : e(r).items,
52
- name: e(u),
50
+ schema: Array.isArray(e(r).items) ? e(r).items[e(m)] || e(r).items[0] : e(r).items,
51
+ name: e(m),
53
52
  "filter-properties": (s) => e(K)(s),
54
53
  "only-render-properties": !0
55
54
  }, null, 8, ["schema", "name", "filter-properties"])
@@ -73,8 +72,8 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
73
72
  }
74
73
  },
75
74
  setup(x) {
76
- const v = x, y = P(), k = U(), r = y.value, u = k.value, { props: m } = b(["modelValue", "onUpdate:modelValue"]), c = B([]), { getKey: h, keyMap: V } = o.useKey(k.value), s = B(C(r.value) ? r.value : []);
77
- Q(() => {
75
+ const v = x, y = P(), k = U(), r = y.value, m = k.value, { props: u } = b(["modelValue", "onUpdate:modelValue"]), c = B([]), { getKey: h, keyMap: V } = o.useKey(k.value), s = B(C(r.value) ? r.value : []);
76
+ W(() => {
78
77
  s.value = C(r.value) ? [...r.value] : [];
79
78
  });
80
79
  function F(a) {
@@ -86,11 +85,11 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
86
85
  function q(a, n, t = !1) {
87
86
  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), []);
88
87
  }
89
- Y(() => {
88
+ Z(() => {
90
89
  !r.modified && s.value.length > 0 && (c.value = O(
91
90
  s.value.length,
92
91
  v.defaultOpenPanelCount,
93
- m.value.accordion
92
+ u.value.accordion
94
93
  ));
95
94
  });
96
95
  function z(a) {
@@ -106,36 +105,36 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
106
105
  c.value = q(
107
106
  c.value,
108
107
  t,
109
- e(m).accordion
108
+ e(u).accordion
110
109
  );
111
110
  }
112
111
  }, {
113
112
  default: f(() => [
114
- !Array.isArray(v.modelValue) || v.modelValue.length === 0 ? (l(), d(e(G), E({
113
+ !Array.isArray(v.modelValue) || v.modelValue.length === 0 ? (l(), d(e(G), R({
115
114
  key: 0,
116
115
  class: [`${e(_)}-item`],
117
116
  shadow: "never"
118
- }, e(m), {
119
- header: e(m).title || e(r).title
117
+ }, e(u), {
118
+ header: e(u).title || e(r).title
120
119
  }), {
121
120
  default: f(() => [
122
121
  g(e(J))
123
122
  ]),
124
123
  _: 1
125
- }, 16, ["class", "header"])) : (l(), d(e(L), E({
124
+ }, 16, ["class", "header"])) : (l(), d(e(L), R({
126
125
  key: 1,
127
126
  "model-value": c.value,
128
127
  class: `${e(_)}-item`
129
- }, e(m), { onChange: z }), {
128
+ }, e(u), { onChange: z }), {
130
129
  default: f(() => [
131
- (l(!0), A(R, null, M(s.value, (t, i) => (l(), d(e(o).Item, {
130
+ (l(!0), A(E, null, M(s.value, (t, i) => (l(), d(e(o).Item, {
132
131
  key: e(h)(t, i),
133
132
  index: i,
134
133
  record: t
135
134
  }, {
136
135
  default: f(() => [
137
136
  g(e(I), {
138
- schema: e(te)(e(u), i),
137
+ schema: e(te)(e(m), i),
139
138
  name: i,
140
139
  "filter-properties": (p) => !e(H)(p) && !e(K)(p)
141
140
  }, null, 8, ["schema", "name", "filter-properties"])
@@ -145,7 +144,7 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
145
144
  ]),
146
145
  _: 1
147
146
  }, 16, ["model-value", "class"])),
148
- (l(!0), A(R, null, M(e(u).properties, (t, i) => (l(), A(R, { key: i }, [
147
+ (l(!0), A(E, null, M(e(m).properties, (t, i) => (l(), A(E, { key: i }, [
149
148
  e(ae)(t) ? (l(), d(e(I), {
150
149
  key: 0,
151
150
  schema: t,
@@ -157,7 +156,7 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
157
156
  }, 8, ["key-map", "add"]))
158
157
  ], 2));
159
158
  }
160
- }), Ce = ee(ne, {
159
+ }), Ae = ee(ne, {
161
160
  Item: le,
162
161
  Index: o.Index,
163
162
  SortHandle: o.SortHandle,
@@ -170,7 +169,7 @@ import '../styles/array-collapse/index.css';const oe = { style: { flex: "1", dis
170
169
  useRecord: o.useRecord
171
170
  });
172
171
  export {
173
- Ce as ArrayCollapse,
174
- Ce as default
172
+ Ae as ArrayCollapse,
173
+ Ae as default
175
174
  };
176
175
  //# sourceMappingURL=index.mjs.map
@@ -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 { isArr } from '@formily/shared'\nimport { autorunEffect } from '@silver-formily/reactive-vue'\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\nautorunEffect(() => {\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","autorunEffect","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,13 +1,12 @@
1
1
  import { stylePrefix as r } from "../__builtins__/configs/index.mjs";
2
2
  import "element-plus";
3
- import "@formily/reactive";
3
+ import "@silver-formily/reactive-vue";
4
4
  import "@vueuse/core";
5
5
  import "vue";
6
6
  import "@formily/core";
7
- import "@silver-formily/reactive-vue";
8
7
  import "@silver-formily/vue";
9
- const a = `${r}-array-collapse`;
8
+ const s = `${r}-array-collapse`;
10
9
  export {
11
- a as prefixCls
10
+ s as prefixCls
12
11
  };
13
12
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../src/array-collapse/utils.ts"],"sourcesContent":["import { stylePrefix } from '../__builtins__'\n\nexport const prefixCls = `${stylePrefix}-array-collapse`\n"],"names":["prefixCls","stylePrefix"],"mappings":";;;;;;;;AAEO,MAAMA,IAAY,GAAGC,CAAW;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../src/array-collapse/utils.ts"],"sourcesContent":["import { stylePrefix } from '../__builtins__'\n\nexport const prefixCls = `${stylePrefix}-array-collapse`\n"],"names":["prefixCls","stylePrefix"],"mappings":";;;;;;;AAEO,MAAMA,IAAY,GAAGC,CAAW;"}
@@ -1,9 +1,8 @@
1
1
  import "element-plus";
2
- import { autorun as V } from "@formily/reactive";
2
+ import { autorunEffect as M } from "@silver-formily/reactive-vue";
3
3
  import "@vueuse/core";
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";
4
+ import { defineComponent as S, openBlock as a, createElementBlock as n, normalizeClass as h, renderSlot as V, ref as $, mergeProps as B, unref as e, createBlock as f, withCtx as y, createVNode as C, Fragment as v, renderList as R, createCommentVNode as D } from "vue";
5
5
  import "@formily/core";
6
- import "@silver-formily/reactive-vue";
7
6
  import { useField as U, useFieldSchema as K, RecursionField as F } from "@silver-formily/vue";
8
7
  import { useCleanAttrs as P, composeExport as b } from "../__builtins__/shared/utils.mjs";
9
8
  import { ArrayBase as r } from "../array-base/index.mjs";
@@ -21,11 +20,11 @@ import '../styles/array-items/index.css';const j = /* @__PURE__ */ S({
21
20
  }
22
21
  },
23
22
  setup(A) {
24
- const i = A, m = `${I}-array-items`;
25
- return (s, u) => (a(), n("div", {
26
- class: h(`${m}-${i.type}`)
23
+ const i = A, l = `${I}-array-items`;
24
+ return (s, c) => (a(), n("div", {
25
+ class: h(`${l}-${i.type}`)
27
26
  }, [
28
- B(s.$slots, "default")
27
+ V(s.$slots, "default")
29
28
  ], 2));
30
29
  }
31
30
  }), q = ["index"], G = /* @__PURE__ */ S({
@@ -33,23 +32,23 @@ import '../styles/array-items/index.css';const j = /* @__PURE__ */ S({
33
32
  inheritAttrs: !1,
34
33
  __name: "array-items",
35
34
  setup(A) {
36
- const i = U(), m = K(), s = i.value, u = m.value, c = `${I}-array-items`, { getKey: g, keyMap: l } = N(m.value), d = $(_(s.value) ? s.value : []), k = $(0);
37
- V(() => {
35
+ const i = U(), l = K(), s = i.value, c = l.value, u = `${I}-array-items`, { getKey: g, keyMap: m } = N(l.value), d = $(_(s.value) ? s.value : []), k = $(0);
36
+ M(() => {
38
37
  d.value = _(s.value) ? [...s.value] : [];
39
38
  });
40
39
  async function w(x) {
41
40
  const { oldIndex: p, newIndex: t } = x;
42
- _(l) && l.splice(t, 0, l.splice(p, 1)[0]), await s.move(p, t), k.value++;
41
+ _(m) && m.splice(t, 0, m.splice(p, 1)[0]), await s.move(p, t), k.value++;
43
42
  }
44
- const { props: M } = P(["value", "modelValue", "onUpdate:modelValue"]);
45
- return (x, p) => (a(), n("div", D({ class: c }, e(M)), [
43
+ const { props: E } = P(["value", "modelValue", "onUpdate:modelValue"]);
44
+ return (x, p) => (a(), n("div", B({ class: u }, e(E)), [
46
45
  (a(), f(e(r), {
47
46
  key: k.value,
48
- "key-map": e(l)
47
+ "key-map": e(m)
49
48
  }, {
50
49
  default: y(() => [
51
50
  C(e(H), {
52
- class: h(`${c}-list`),
51
+ class: h(`${u}-list`),
53
52
  "model-value": d.value,
54
53
  handle: `.${e(I)}-array-base-sort-handle`,
55
54
  animation: 150,
@@ -64,11 +63,11 @@ import '../styles/array-items/index.css';const j = /* @__PURE__ */ S({
64
63
  default: y(() => [
65
64
  (a(), n("div", {
66
65
  key: e(g)(t, o),
67
- class: h([`${c}-item-inner`]),
66
+ class: h([`${u}-item-inner`]),
68
67
  index: o
69
68
  }, [
70
69
  C(e(F), {
71
- schema: e(z)(e(u), o),
70
+ schema: e(z)(e(c), o),
72
71
  name: o
73
72
  }, null, 8, ["schema", "name"])
74
73
  ], 10, q))
@@ -78,19 +77,19 @@ import '../styles/array-items/index.css';const j = /* @__PURE__ */ S({
78
77
  ]),
79
78
  _: 1
80
79
  }, 8, ["class", "model-value", "handle"]),
81
- (a(!0), n(v, null, R(e(u).properties, (t, o) => (a(), n(v, { key: o }, [
80
+ (a(!0), n(v, null, R(e(c).properties, (t, o) => (a(), n(v, { key: o }, [
82
81
  e(L)(t) ? (a(), f(e(F), {
83
82
  key: 0,
84
83
  schema: t,
85
84
  name: "addition"
86
- }, null, 8, ["schema"])) : E("", !0)
85
+ }, null, 8, ["schema"])) : D("", !0)
87
86
  ], 64))), 128))
88
87
  ]),
89
88
  _: 1
90
89
  }, 8, ["key-map"]))
91
90
  ], 16));
92
91
  }
93
- }), se = b(G, {
92
+ }), oe = b(G, {
94
93
  Item: j,
95
94
  Index: r.Index,
96
95
  SortHandle: r.SortHandle,
@@ -103,7 +102,7 @@ import '../styles/array-items/index.css';const j = /* @__PURE__ */ S({
103
102
  useRecord: r.useRecord
104
103
  });
105
104
  export {
106
- se as ArrayItems,
107
- se as default
105
+ oe as ArrayItems,
106
+ oe as default
108
107
  };
109
108
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/array-items/array-items-item.vue","../../src/array-items/array-items.vue","../../src/array-items/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PropType } from 'vue'\nimport { stylePrefix } from '../__builtins__/configs'\n\ndefineOptions({\n name: 'FArrayItemsItem',\n})\n\nconst props = defineProps({\n type: {\n type: String as PropType<'card' | 'divide'>,\n default: 'card',\n },\n})\n\nconst prefixCls = `${stylePrefix}-array-items`\n</script>\n\n<template>\n <div\n :class=\"`${prefixCls}-${props.type}`\"\n >\n <slot />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport { autorun } from '@formily/reactive'\nimport { isArr } from '@formily/shared'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ref } from 'vue'\nimport { VueDraggable } from 'vue-draggable-plus'\nimport { useCleanAttrs } from '../__builtins__'\nimport { stylePrefix } from '../__builtins__/configs'\nimport { ArrayBase } from '../array-base'\nimport { getArrayItemSchema, isAdditionComponent, useKey } from '../array-base/utils'\n\ndefineOptions({\n name: 'FArrayItems',\n inheritAttrs: false,\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\nconst field = fieldRef.value\nconst schema = schemaRef.value\n\nconst prefixCls = `${stylePrefix}-array-items`\nconst { getKey, keyMap } = useKey(schemaRef.value)\nconst dataSource = ref(isArr(field.value) ? field.value : [])\nconst triggerUpdateKey = ref(0)\n\nautorun(() => {\n dataSource.value = isArr(field.value) ? [...field.value] : []\n})\n\nasync function handleDragEnd(evt: { oldIndex: number, newIndex: number }) {\n const { oldIndex, newIndex } = evt\n if (isArr(keyMap)) {\n keyMap.splice(newIndex, 0, keyMap.splice(oldIndex, 1)[0])\n }\n await field.move(oldIndex, newIndex)\n triggerUpdateKey.value++\n}\nconst { props: arrayItemsProps } = useCleanAttrs(['value', 'modelValue', 'onUpdate:modelValue'])\n</script>\n\n<template>\n <div :class=\"prefixCls\" v-bind=\"arrayItemsProps\">\n <ArrayBase :key=\"triggerUpdateKey\" :key-map=\"keyMap\">\n <VueDraggable\n :class=\"`${prefixCls}-list`\"\n :model-value=\"dataSource\"\n :handle=\"`.${stylePrefix}-array-base-sort-handle`\"\n :animation=\"150\"\n @end=\"handleDragEnd\"\n >\n <ArrayBase.Item\n v-for=\"(element, index) of dataSource\"\n :key=\"getKey(element, index)\"\n :index=\"index\"\n :record=\"element\"\n >\n <div :key=\"getKey(element, index)\" :class=\"[`${prefixCls}-item-inner`]\" :index=\"index\">\n <RecursionField :schema=\"getArrayItemSchema(schema, index)\" :name=\"index\" />\n </div>\n </ArrayBase.Item>\n </VueDraggable>\n\n <template v-for=\"(itemSchema, key) of 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 ArrayItemsItem from './array-items-item.vue'\nimport ArrayItemsInner from './array-items.vue'\nimport './style.scss'\n\nexport const ArrayItems = composeExport(ArrayItemsInner, {\n Item: ArrayItemsItem,\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 ArrayItems\n"],"names":["props","__props","prefixCls","stylePrefix","_createElementBlock","_normalizeClass","_renderSlot","_ctx","fieldRef","useField","schemaRef","useFieldSchema","field","schema","getKey","keyMap","useKey","dataSource","ref","isArr","triggerUpdateKey","autorun","handleDragEnd","evt","oldIndex","newIndex","arrayItemsProps","useCleanAttrs","_openBlock","_mergeProps","_unref","_createBlock","ArrayBase","_createVNode","VueDraggable","_Fragment","_renderList","element","index","RecursionField","getArrayItemSchema","itemSchema","key","isAdditionComponent","ArrayItems","composeExport","ArrayItemsInner","ArrayItemsItem"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/array-items/array-items-item.vue","../../src/array-items/array-items.vue","../../src/array-items/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PropType } from 'vue'\nimport { stylePrefix } from '../__builtins__/configs'\n\ndefineOptions({\n name: 'FArrayItemsItem',\n})\n\nconst props = defineProps({\n type: {\n type: String as PropType<'card' | 'divide'>,\n default: 'card',\n },\n})\n\nconst prefixCls = `${stylePrefix}-array-items`\n</script>\n\n<template>\n <div\n :class=\"`${prefixCls}-${props.type}`\"\n >\n <slot />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ArrayField } from '@formily/core'\nimport { isArr } from '@formily/shared'\nimport { autorunEffect } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ref } from 'vue'\nimport { VueDraggable } from 'vue-draggable-plus'\nimport { useCleanAttrs } from '../__builtins__'\nimport { stylePrefix } from '../__builtins__/configs'\nimport { ArrayBase } from '../array-base'\nimport { getArrayItemSchema, isAdditionComponent, useKey } from '../array-base/utils'\n\ndefineOptions({\n name: 'FArrayItems',\n inheritAttrs: false,\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\nconst field = fieldRef.value\nconst schema = schemaRef.value\n\nconst prefixCls = `${stylePrefix}-array-items`\nconst { getKey, keyMap } = useKey(schemaRef.value)\nconst dataSource = ref(isArr(field.value) ? field.value : [])\nconst triggerUpdateKey = ref(0)\n\nautorunEffect(() => {\n dataSource.value = isArr(field.value) ? [...field.value] : []\n})\n\nasync function handleDragEnd(evt: { oldIndex: number, newIndex: number }) {\n const { oldIndex, newIndex } = evt\n if (isArr(keyMap)) {\n keyMap.splice(newIndex, 0, keyMap.splice(oldIndex, 1)[0])\n }\n await field.move(oldIndex, newIndex)\n triggerUpdateKey.value++\n}\nconst { props: arrayItemsProps } = useCleanAttrs(['value', 'modelValue', 'onUpdate:modelValue'])\n</script>\n\n<template>\n <div :class=\"prefixCls\" v-bind=\"arrayItemsProps\">\n <ArrayBase :key=\"triggerUpdateKey\" :key-map=\"keyMap\">\n <VueDraggable\n :class=\"`${prefixCls}-list`\"\n :model-value=\"dataSource\"\n :handle=\"`.${stylePrefix}-array-base-sort-handle`\"\n :animation=\"150\"\n @end=\"handleDragEnd\"\n >\n <ArrayBase.Item\n v-for=\"(element, index) of dataSource\"\n :key=\"getKey(element, index)\"\n :index=\"index\"\n :record=\"element\"\n >\n <div :key=\"getKey(element, index)\" :class=\"[`${prefixCls}-item-inner`]\" :index=\"index\">\n <RecursionField :schema=\"getArrayItemSchema(schema, index)\" :name=\"index\" />\n </div>\n </ArrayBase.Item>\n </VueDraggable>\n\n <template v-for=\"(itemSchema, key) of 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 ArrayItemsItem from './array-items-item.vue'\nimport ArrayItemsInner from './array-items.vue'\nimport './style.scss'\n\nexport const ArrayItems = composeExport(ArrayItemsInner, {\n Item: ArrayItemsItem,\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 ArrayItems\n"],"names":["props","__props","prefixCls","stylePrefix","_createElementBlock","_normalizeClass","_renderSlot","_ctx","fieldRef","useField","schemaRef","useFieldSchema","field","schema","getKey","keyMap","useKey","dataSource","ref","isArr","triggerUpdateKey","autorunEffect","handleDragEnd","evt","oldIndex","newIndex","arrayItemsProps","useCleanAttrs","_openBlock","_mergeProps","_unref","_createBlock","ArrayBase","_createVNode","VueDraggable","_Fragment","_renderList","element","index","RecursionField","getArrayItemSchema","itemSchema","key","isAdditionComponent","ArrayItems","composeExport","ArrayItemsInner","ArrayItemsItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GAORC,IAAY,GAAGC,CAAW;2BAI9BC,EAIM,OAAA;AAAA,MAHH,OAAKC,EAAA,GAAKH,CAAS,IAAIF,EAAM,IAAI,EAAA;AAAA,IAAA;MAElCM,EAAQC,EAAA,QAAA,SAAA;AAAA,IAAA;;;;;;;ACLZ,UAAMC,IAAWC,EAAA,GACXC,IAAYC,EAAA,GACZC,IAAQJ,EAAS,OACjBK,IAASH,EAAU,OAEnBR,IAAY,GAAGC,CAAW,gBAC1B,EAAE,QAAAW,GAAQ,QAAAC,EAAA,IAAWC,EAAON,EAAU,KAAK,GAC3CO,IAAaC,EAAIC,EAAMP,EAAM,KAAK,IAAIA,EAAM,QAAQ,EAAE,GACtDQ,IAAmBF,EAAI,CAAC;AAE9B,IAAAG,EAAc,MAAM;AAClB,MAAAJ,EAAW,QAAQE,EAAMP,EAAM,KAAK,IAAI,CAAC,GAAGA,EAAM,KAAK,IAAI,CAAA;AAAA,IAC7D,CAAC;AAED,mBAAeU,EAAcC,GAA6C;AACxE,YAAM,EAAE,UAAAC,GAAU,UAAAC,EAAA,IAAaF;AAC/B,MAAIJ,EAAMJ,CAAM,KACdA,EAAO,OAAOU,GAAU,GAAGV,EAAO,OAAOS,GAAU,CAAC,EAAE,CAAC,CAAC,GAE1D,MAAMZ,EAAM,KAAKY,GAAUC,CAAQ,GACnCL,EAAiB;AAAA,IACnB;AACA,UAAM,EAAE,OAAOM,MAAoBC,EAAc,CAAC,SAAS,cAAc,qBAAqB,CAAC;sBAI7FC,EAAA,GAAAxB,EAyBM,OAzBNyB,EAyBM,EAzBA,OAAO3B,EAAA,GAAmB4B,EAAAJ,CAAA,CAAe,GAAA;AAAA,YAC7CK,EAuBYD,EAAAE,CAAA,GAAA;AAAA,QAvBA,KAAKZ,EAAA;AAAA,QAAmB,WAASU,EAAAf,CAAA;AAAA,MAAA;mBAC3C,MAiBe;AAAA,UAjBfkB,EAiBeH,EAAAI,CAAA,GAAA;AAAA,YAhBZ,YAAUhC,CAAS,OAAA;AAAA,YACnB,eAAae,EAAA;AAAA,YACb,YAAYa,EAAA3B,CAAA,CAAW;AAAA,YACvB,WAAW;AAAA,YACX,OAAKmB;AAAA,UAAA;uBAGJ,MAAsC;AAAA,eADxCM,EAAA,EAAA,GAAAxB,EASiB+B,GAAA,MAAAC,EARYnB,EAAA,OAAU,CAA7BoB,GAASC,YADnBP,EASiBD,EAAAE,CAAA,EAAA,MAAA;AAAA,gBAPd,KAAKF,EAAAhB,CAAA,EAAOuB,GAASC,CAAK;AAAA,gBAC1B,OAAAA;AAAA,gBACA,QAAQD;AAAA,cAAA;2BAET,MAEM;AAAA,wBAFNjC,EAEM,OAAA;AAAA,oBAFA,KAAK0B,EAAAhB,CAAA,EAAOuB,GAASC,CAAK;AAAA,oBAAI,aAAWpC,CAAS,aAAA,CAAA;AAAA,oBAAiB,OAAAoC;AAAA,kBAAA;oBACvEL,EAA4EH,EAAAS,CAAA,GAAA;AAAA,sBAA3D,QAAQT,EAAAU,CAAA,EAAmBV,EAAAjB,CAAA,GAAQyB,CAAK;AAAA,sBAAI,MAAMA;AAAA,oBAAA;;;;;;;;WAKzEV,EAAA,EAAA,GAAAxB,EAEW+B,WAF2BL,EAAAjB,CAAA,EAAO,YAAU,CAArC4B,GAAYC,6BAAoC;AAAA,YAC1CZ,EAAAa,CAAA,EAAoBF,CAAU,UAApDV,EAA8FD,EAAAS,CAAA,GAAA;AAAA;cAAtC,QAAQE;AAAA,cAAY,MAAK;AAAA,YAAA;;;;;;;IC3D5EG,KAAaC,EAAcC,GAAiB;AAAA,EACvD,MAAMC;AAAAA,EACN,OAAOf,EAAU;AAAA,EACjB,YAAYA,EAAU;AAAA,EACtB,UAAUA,EAAU;AAAA,EACpB,QAAQA,EAAU;AAAA,EAClB,UAAUA,EAAU;AAAA,EACpB,QAAQA,EAAU;AAAA,EAClB,UAAUA,EAAU;AAAA,EACpB,UAAUA,EAAU;AAAA,EACpB,WAAWA,EAAU;AACvB,CAAC;"}
@@ -1,16 +1,15 @@
1
1
  import { ElScrollbar as P, ElBadge as q, ElEmpty as z } from "element-plus";
2
- import { autorun as A } from "@formily/reactive";
2
+ import { formilyComputed as K, autorunEffect as A } from "@silver-formily/reactive-vue";
3
3
  import "@vueuse/core";
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";
4
+ import { defineComponent as N, ref as I, openBlock as a, createElementBlock as s, normalizeClass as i, unref as e, createBlock as d, withCtx as h, createElementVNode as E, createVNode as k, Fragment as b, renderList as F, toDisplayString as D, createCommentVNode as T, normalizeStyle as M } from "vue";
5
5
  import "@formily/core";
6
- import { formilyComputed as M } from "@silver-formily/reactive-vue";
7
6
  import { useField as G, useFieldSchema as H, RecursionField as _ } from "@silver-formily/vue";
8
7
  import { composeExport as J } from "../__builtins__/shared/utils.mjs";
9
- import { ArrayBase as y } from "../array-base/index.mjs";
10
- import { isArr as w } from "@formily/shared";
11
- import { isRemoveComponent as B, isAdditionComponent as O, getArrayItemSchema as Q } from "../array-base/utils.mjs";
12
- import { prefixCls as n, isTabTitleComponent as E } from "./utils.mjs";
13
- import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "onClick"], W = ["id", "aria-labelledby"], X = /* @__PURE__ */ K({
8
+ import { ArrayBase as f } from "../array-base/index.mjs";
9
+ import { isArr as V } from "@formily/shared";
10
+ import { isRemoveComponent as w, isAdditionComponent as O, getArrayItemSchema as Q } from "../array-base/utils.mjs";
11
+ import { prefixCls as n, isTabTitleComponent as B } from "./utils.mjs";
12
+ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "onClick"], W = ["id", "aria-labelledby"], X = /* @__PURE__ */ N({
14
13
  name: "FArrayListTabs",
15
14
  __name: "array-list-tabs",
16
15
  props: {
@@ -28,7 +27,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
28
27
  }
29
28
  },
30
29
  setup(R) {
31
- const o = R, S = G(), g = H(), l = S.value, u = g.value, f = I(0), { getKey: C, keyMap: j } = y.useKey(g.value), v = M(() => o.showTitleFieldInTab ? l.value.map((m, p) => {
30
+ const o = R, S = G(), g = H(), l = S.value, u = g.value, y = I(0), { getKey: C, keyMap: j } = f.useKey(g.value), v = K(() => o.showTitleFieldInTab ? l.value.map((m, p) => {
32
31
  const r = l.path.concat(p);
33
32
  return l.form.queryFeedbacks({
34
33
  type: "error",
@@ -57,7 +56,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
57
56
  $.value = m;
58
57
  }
59
58
  }), A(() => {
60
- l.value.length > 0 && f.value >= l.value.length && (f.value = l.value.length - 1);
59
+ l.value.length > 0 && y.value >= l.value.length && (y.value = l.value.length - 1);
61
60
  });
62
61
  function L(m) {
63
62
  return `${m?.[o.tabTitleField] || "未命名条目"}`;
@@ -65,19 +64,19 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
65
64
  return (m, p) => (a(), s("div", {
66
65
  class: i(e(n))
67
66
  }, [
68
- (a(), d(e(y), {
67
+ (a(), d(e(f), {
69
68
  key: o.modelValue.length,
70
69
  "key-map": e(j)
71
70
  }, {
72
71
  default: h(() => [
73
- V("ul", {
72
+ E("ul", {
74
73
  class: i(`${e(n)}_list`)
75
74
  }, [
76
75
  k(e(P), {
77
76
  class: i(`${e(n)}_list--scroll-wrapper`)
78
77
  }, {
79
78
  default: h(() => [
80
- (a(!0), s(b, null, F(o.modelValue, (r, t) => (a(), d(e(y).Item, {
79
+ (a(!0), s(b, null, F(o.modelValue, (r, t) => (a(), d(e(f).Item, {
81
80
  key: t,
82
81
  index: t,
83
82
  record: r
@@ -88,13 +87,13 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
88
87
  key: $.value,
89
88
  class: i([
90
89
  `${e(n)}_list-item`,
91
- f.value === t && "is-active"
90
+ y.value === t && "is-active"
92
91
  ]),
93
92
  role: "tab",
94
93
  "aria-controls": `${e(l).props.name}-tab-panel-${t}`,
95
- onClick: () => f.value = t
94
+ onClick: () => y.value = t
96
95
  }, [
97
- V("div", {
96
+ E("div", {
98
97
  class: i(`${e(n)}_list-item--content`)
99
98
  }, [
100
99
  k(e(q), {
@@ -105,26 +104,26 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
105
104
  }, {
106
105
  default: h(() => [
107
106
  o.showTitleFieldInTab ? (a(), s(b, { key: 1 }, [
108
- e(w)(e(u).items) ? T("", !0) : (a(), d(e(_), {
107
+ e(V)(e(u).items) ? T("", !0) : (a(), d(e(_), {
109
108
  key: 0,
110
109
  schema: e(u).items,
111
110
  name: t,
112
- "filter-properties": (c) => e(E)(c, o.tabTitleField),
111
+ "filter-properties": (c) => e(B)(c, o.tabTitleField),
113
112
  "only-render-properties": ""
114
113
  }, null, 8, ["schema", "name", "filter-properties"]))
115
114
  ], 64)) : (a(), s("span", {
116
115
  key: 0,
117
116
  class: i(`${e(n)}_list-item--title`)
118
- }, N(L(r)), 3))
117
+ }, D(L(r)), 3))
119
118
  ]),
120
119
  _: 2
121
120
  }, 1032, ["class", "value", "hidden"])
122
121
  ], 2),
123
- e(w)(e(u).items) ? T("", !0) : (a(), d(e(_), {
122
+ e(V)(e(u).items) ? T("", !0) : (a(), d(e(_), {
124
123
  key: 0,
125
124
  schema: e(u).items,
126
125
  name: t,
127
- "filter-properties": (c) => e(B)(c),
126
+ "filter-properties": (c) => e(w)(c),
128
127
  "only-render-properties": ""
129
128
  }, null, 8, ["schema", "name", "filter-properties"]))
130
129
  ], 10, U))
@@ -148,7 +147,7 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
148
147
  }, [
149
148
  k(e(z), { "image-size": 100 })
150
149
  ], 2)) : T("", !0),
151
- (a(!0), s(b, null, F(o.modelValue, (r, t) => (a(), d(e(y).Item, {
150
+ (a(!0), s(b, null, F(o.modelValue, (r, t) => (a(), d(e(f).Item, {
152
151
  key: e(C)(r, t),
153
152
  index: t,
154
153
  record: r
@@ -158,14 +157,14 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
158
157
  id: `${e(l).props.name}-tab-panel-${t}`,
159
158
  key: e(C)(r, t),
160
159
  class: i(`${e(n)}-tabpane`),
161
- style: D({ display: f.value === t ? void 0 : "none" }),
160
+ style: M({ display: y.value === t ? void 0 : "none" }),
162
161
  role: "tabpanel",
163
162
  "aria-labelledby": `${e(l).props.name}-tab-${t}`
164
163
  }, [
165
164
  k(e(_), {
166
165
  schema: e(Q)(e(u), t),
167
166
  name: t,
168
- "filter-properties": (c) => e(B)(c) ? !1 : o.showTitleFieldInTab ? !e(E)(c, o.tabTitleField) : !0,
167
+ "filter-properties": (c) => e(w)(c) ? !1 : o.showTitleFieldInTab ? !e(B)(c, o.tabTitleField) : !0,
169
168
  "only-render-properties": ""
170
169
  }, null, 8, ["schema", "name", "filter-properties"])
171
170
  ], 14, W))
@@ -177,12 +176,12 @@ import '../styles/array-list-tabs/index.css';const U = ["id", "aria-controls", "
177
176
  }, 8, ["key-map"]))
178
177
  ], 2));
179
178
  }
180
- }), me = J(X, {
181
- Addition: y.Addition,
182
- Remove: y.Remove
179
+ }), ne = J(X, {
180
+ Addition: f.Addition,
181
+ Remove: f.Remove
183
182
  });
184
183
  export {
185
- me as ArrayListTabs,
186
- me as default
184
+ ne as ArrayListTabs,
185
+ ne as default
187
186
  };
188
187
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/array-list-tabs/array-list-tabs.vue","../../src/array-list-tabs/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ArrayField } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport { autorun } from '@formily/reactive'\nimport { isArr } from '@formily/shared'\nimport { formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElEmpty, ElScrollbar } from 'element-plus'\nimport { ref } from 'vue'\nimport { ArrayBase } from '../array-base'\nimport { getArrayItemSchema, isAdditionComponent, isRemoveComponent } from '../array-base/utils'\nimport { isTabTitleComponent, prefixCls } from './utils'\nimport './style.scss'\n\ndefineOptions({\n name: 'FArrayListTabs',\n})\n\nconst props = defineProps({\n tabTitleField: {\n required: true,\n type: String,\n },\n showTitleFieldInTab: {\n type: Boolean,\n default: false,\n },\n modelValue: {\n type: Array,\n default: () => [],\n },\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\nconst field = fieldRef.value\nconst schema = schemaRef.value\n\nconst activeIndex = ref(0)\nconst { getKey, keyMap } = ArrayBase.useKey(schemaRef.value)\n\nconst errorCountList = formilyComputed(() => {\n if (props.showTitleFieldInTab) {\n return field.value.map((item, index) => {\n const path = field.path.concat(index)\n return field.form.queryFeedbacks({\n type: 'error',\n path: `${path}.*(!${props.tabTitleField})`,\n }).length\n })\n }\n return field.value.map((item, index) => {\n const path = field.path.concat(index)\n return field.form.queryFeedbacks({\n type: 'error',\n path: `${path}.**`,\n }).length\n })\n})\n\n// 保证arrayBase在必要时重新渲染\nconst arrayBaseKey = ref()\n\nautorun(() => {\n if (props.showTitleFieldInTab) {\n const key = field.value.map((item, index) => {\n const keyParts = [\n index,\n errorCountList.value[index],\n ]\n return keyParts.join('|')\n }).join(',')\n arrayBaseKey.value = key\n }\n else {\n const key = field.value.map((item, index) => {\n const keyParts = [\n index,\n item?.[props.tabTitleField],\n errorCountList.value[index],\n ]\n return keyParts.join('|')\n }).join(',')\n arrayBaseKey.value = key\n }\n})\n\nautorun(() => {\n if (field.value.length > 0 && activeIndex.value >= field.value.length) {\n activeIndex.value = field.value.length - 1\n }\n})\n\nfunction getTabTitle(item) {\n return `${item?.[props.tabTitleField] || '未命名条目'}`\n}\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ArrayBase :key=\"props.modelValue.length\" :key-map=\"keyMap\">\n <ul :class=\"`${prefixCls}_list`\">\n <ElScrollbar :class=\"`${prefixCls}_list--scroll-wrapper`\">\n <ArrayBase.Item\n v-for=\"(item, index) in props.modelValue\"\n :key=\"index\"\n :index=\"index\"\n :record=\"item\"\n >\n <li\n :id=\"`${field.props.name}-tab-${index}`\"\n :key=\"arrayBaseKey\"\n :class=\"[\n `${prefixCls}_list-item`,\n activeIndex === index && 'is-active',\n ]\"\n role=\"tab\"\n :aria-controls=\"`${field.props.name}-tab-panel-${index}`\"\n @click=\"() => activeIndex = index\"\n >\n <div :class=\"`${prefixCls}_list-item--content`\">\n <ElBadge\n :class=\"[`${prefixCls}-errors-badge`]\"\n :value=\"errorCountList[index]\"\n :offset=\"[5, 0]\"\n :hidden=\"errorCountList[index] === 0\"\n >\n <template v-if=\"!props.showTitleFieldInTab\">\n <span :class=\"`${prefixCls}_list-item--title`\">{{ getTabTitle(item) }}</span>\n </template>\n <template v-else>\n <RecursionField\n v-if=\"!isArr(schema.items)\"\n :schema=\"schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isTabTitleComponent(schema, props.tabTitleField)\"\n only-render-properties\n />\n </template>\n </ElBadge>\n </div>\n <!-- remove icon -->\n <RecursionField\n v-if=\"!isArr(schema.items)\"\n :schema=\"schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isRemoveComponent(schema)\"\n only-render-properties\n />\n </li>\n </ArrayBase.Item>\n </ElScrollbar>\n <template v-for=\"(property, key) in schema.properties\" :key=\"key\">\n <RecursionField\n v-if=\"isAdditionComponent(property)\"\n :schema=\"property\"\n name=\"addition\"\n />\n </template>\n </ul>\n <div v-if=\"props.modelValue.length === 0\" :class=\"`${prefixCls}-tabpane`\">\n <ElEmpty :image-size=\"100\" />\n </div>\n <ArrayBase.Item\n v-for=\"(item, index) in props.modelValue\"\n :key=\"getKey(item, index)\"\n :index=\"index\"\n :record=\"item\"\n >\n <!-- tab-panel -->\n <div\n :id=\"`${field.props.name}-tab-panel-${index}`\"\n :key=\"getKey(item, index)\"\n :class=\"`${prefixCls}-tabpane`\"\n :style=\"{ display: activeIndex === index ? undefined : 'none' }\"\n role=\"tabpanel\"\n :aria-labelledby=\"`${field.props.name}-tab-${index}`\"\n >\n <RecursionField\n :schema=\"getArrayItemSchema(schema, index)\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => {\n if (isRemoveComponent(schema)) {\n return false\n }\n if (props.showTitleFieldInTab) {\n return !isTabTitleComponent(schema, props.tabTitleField)\n }\n return true\n }\"\n only-render-properties\n />\n </div>\n </ArrayBase.Item>\n </ArrayBase>\n </div>\n</template>\n","import { composeExport } from '../__builtins__/shared'\r\nimport { ArrayBase } from '../array-base'\r\nimport ArrayListTabsInner from './array-list-tabs.vue'\r\nimport './style.scss'\r\n\r\nexport const ArrayListTabs = composeExport(ArrayListTabsInner, {\r\n Addition: ArrayBase.Addition,\r\n Remove: ArrayBase.Remove,\r\n})\r\n\r\nexport default ArrayListTabs\r\n"],"names":["props","__props","fieldRef","useField","schemaRef","useFieldSchema","field","schema","activeIndex","ref","getKey","keyMap","ArrayBase","errorCountList","formilyComputed","item","index","path","arrayBaseKey","autorun","key","getTabTitle","_createElementBlock","_unref","prefixCls","_createBlock","_createElementVNode","_createVNode","ElScrollbar","_openBlock","_Fragment","_normalizeClass","ElBadge","isArr","RecursionField","isTabTitleComponent","_toDisplayString","isRemoveComponent","property","isAdditionComponent","ElEmpty","_normalizeStyle","getArrayItemSchema","ArrayListTabs","composeExport","ArrayListTabsInner"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/array-list-tabs/array-list-tabs.vue","../../src/array-list-tabs/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ArrayField } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport { isArr } from '@formily/shared'\nimport { autorunEffect, formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElEmpty, ElScrollbar } from 'element-plus'\nimport { ref } from 'vue'\nimport { ArrayBase } from '../array-base'\nimport { getArrayItemSchema, isAdditionComponent, isRemoveComponent } from '../array-base/utils'\nimport { isTabTitleComponent, prefixCls } from './utils'\nimport './style.scss'\n\ndefineOptions({\n name: 'FArrayListTabs',\n})\n\nconst props = defineProps({\n tabTitleField: {\n required: true,\n type: String,\n },\n showTitleFieldInTab: {\n type: Boolean,\n default: false,\n },\n modelValue: {\n type: Array,\n default: () => [],\n },\n})\n\nconst fieldRef = useField<ArrayField>()\nconst schemaRef = useFieldSchema()\nconst field = fieldRef.value\nconst schema = schemaRef.value\n\nconst activeIndex = ref(0)\nconst { getKey, keyMap } = ArrayBase.useKey(schemaRef.value)\n\nconst errorCountList = formilyComputed(() => {\n if (props.showTitleFieldInTab) {\n return field.value.map((item, index) => {\n const path = field.path.concat(index)\n return field.form.queryFeedbacks({\n type: 'error',\n path: `${path}.*(!${props.tabTitleField})`,\n }).length\n })\n }\n return field.value.map((item, index) => {\n const path = field.path.concat(index)\n return field.form.queryFeedbacks({\n type: 'error',\n path: `${path}.**`,\n }).length\n })\n})\n\n// 保证arrayBase在必要时重新渲染\nconst arrayBaseKey = ref()\n\nautorunEffect(() => {\n if (props.showTitleFieldInTab) {\n const key = field.value.map((item, index) => {\n const keyParts = [\n index,\n errorCountList.value[index],\n ]\n return keyParts.join('|')\n }).join(',')\n arrayBaseKey.value = key\n }\n else {\n const key = field.value.map((item, index) => {\n const keyParts = [\n index,\n item?.[props.tabTitleField],\n errorCountList.value[index],\n ]\n return keyParts.join('|')\n }).join(',')\n arrayBaseKey.value = key\n }\n})\n\nautorunEffect(() => {\n if (field.value.length > 0 && activeIndex.value >= field.value.length) {\n activeIndex.value = field.value.length - 1\n }\n})\n\nfunction getTabTitle(item) {\n return `${item?.[props.tabTitleField] || '未命名条目'}`\n}\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ArrayBase :key=\"props.modelValue.length\" :key-map=\"keyMap\">\n <ul :class=\"`${prefixCls}_list`\">\n <ElScrollbar :class=\"`${prefixCls}_list--scroll-wrapper`\">\n <ArrayBase.Item\n v-for=\"(item, index) in props.modelValue\"\n :key=\"index\"\n :index=\"index\"\n :record=\"item\"\n >\n <li\n :id=\"`${field.props.name}-tab-${index}`\"\n :key=\"arrayBaseKey\"\n :class=\"[\n `${prefixCls}_list-item`,\n activeIndex === index && 'is-active',\n ]\"\n role=\"tab\"\n :aria-controls=\"`${field.props.name}-tab-panel-${index}`\"\n @click=\"() => activeIndex = index\"\n >\n <div :class=\"`${prefixCls}_list-item--content`\">\n <ElBadge\n :class=\"[`${prefixCls}-errors-badge`]\"\n :value=\"errorCountList[index]\"\n :offset=\"[5, 0]\"\n :hidden=\"errorCountList[index] === 0\"\n >\n <template v-if=\"!props.showTitleFieldInTab\">\n <span :class=\"`${prefixCls}_list-item--title`\">{{ getTabTitle(item) }}</span>\n </template>\n <template v-else>\n <RecursionField\n v-if=\"!isArr(schema.items)\"\n :schema=\"schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isTabTitleComponent(schema, props.tabTitleField)\"\n only-render-properties\n />\n </template>\n </ElBadge>\n </div>\n <!-- remove icon -->\n <RecursionField\n v-if=\"!isArr(schema.items)\"\n :schema=\"schema.items\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => isRemoveComponent(schema)\"\n only-render-properties\n />\n </li>\n </ArrayBase.Item>\n </ElScrollbar>\n <template v-for=\"(property, key) in schema.properties\" :key=\"key\">\n <RecursionField\n v-if=\"isAdditionComponent(property)\"\n :schema=\"property\"\n name=\"addition\"\n />\n </template>\n </ul>\n <div v-if=\"props.modelValue.length === 0\" :class=\"`${prefixCls}-tabpane`\">\n <ElEmpty :image-size=\"100\" />\n </div>\n <ArrayBase.Item\n v-for=\"(item, index) in props.modelValue\"\n :key=\"getKey(item, index)\"\n :index=\"index\"\n :record=\"item\"\n >\n <!-- tab-panel -->\n <div\n :id=\"`${field.props.name}-tab-panel-${index}`\"\n :key=\"getKey(item, index)\"\n :class=\"`${prefixCls}-tabpane`\"\n :style=\"{ display: activeIndex === index ? undefined : 'none' }\"\n role=\"tabpanel\"\n :aria-labelledby=\"`${field.props.name}-tab-${index}`\"\n >\n <RecursionField\n :schema=\"getArrayItemSchema(schema, index)\"\n :name=\"index\"\n :filter-properties=\"(schema: ISchema) => {\n if (isRemoveComponent(schema)) {\n return false\n }\n if (props.showTitleFieldInTab) {\n return !isTabTitleComponent(schema, props.tabTitleField)\n }\n return true\n }\"\n only-render-properties\n />\n </div>\n </ArrayBase.Item>\n </ArrayBase>\n </div>\n</template>\n","import { composeExport } from '../__builtins__/shared'\r\nimport { ArrayBase } from '../array-base'\r\nimport ArrayListTabsInner from './array-list-tabs.vue'\r\nimport './style.scss'\r\n\r\nexport const ArrayListTabs = composeExport(ArrayListTabsInner, {\r\n Addition: ArrayBase.Addition,\r\n Remove: ArrayBase.Remove,\r\n})\r\n\r\nexport default ArrayListTabs\r\n"],"names":["props","__props","fieldRef","useField","schemaRef","useFieldSchema","field","schema","activeIndex","ref","getKey","keyMap","ArrayBase","errorCountList","formilyComputed","item","index","path","arrayBaseKey","autorunEffect","key","getTabTitle","_createElementBlock","_unref","prefixCls","_createBlock","_createElementVNode","_createVNode","ElScrollbar","_openBlock","_Fragment","_normalizeClass","ElBadge","isArr","RecursionField","isTabTitleComponent","_toDisplayString","isRemoveComponent","property","isAdditionComponent","ElEmpty","_normalizeStyle","getArrayItemSchema","ArrayListTabs","composeExport","ArrayListTabsInner"],"mappings":"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"}