@silver-formily/element-plus 4.0.3 → 5.0.0

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 (136) hide show
  1. package/esm/__builtins__/shared/loading.mjs.map +1 -1
  2. package/esm/__builtins__/shared/transform-component.mjs +1 -1
  3. package/esm/__builtins__/shared/transform-component.mjs.map +1 -1
  4. package/esm/__builtins__/shared/utils.mjs +7 -5
  5. package/esm/__builtins__/shared/utils.mjs.map +1 -1
  6. package/esm/array-base/array-base-inner.mjs.map +1 -1
  7. package/esm/array-base/array-base-move-down.mjs +1 -1
  8. package/esm/array-base/array-base-move-down.mjs.map +1 -1
  9. package/esm/array-base/array-base-move-up.mjs +1 -1
  10. package/esm/array-base/array-base-move-up.mjs.map +1 -1
  11. package/esm/array-base/array-base-remove.mjs +1 -1
  12. package/esm/array-base/array-base-remove.mjs.map +1 -1
  13. package/esm/array-base/types.d.ts +2 -2
  14. package/esm/array-base/utils.d.ts +1 -1
  15. package/esm/array-base/utils.mjs +1 -1
  16. package/esm/array-base/utils.mjs.map +1 -1
  17. package/esm/array-cards/array-cards.mjs +1 -1
  18. package/esm/array-cards/array-cards.mjs.map +1 -1
  19. package/esm/array-collapse/array-collapse-item.mjs +1 -1
  20. package/esm/array-collapse/array-collapse-item.mjs.map +1 -1
  21. package/esm/array-collapse/array-collapse.mjs +3 -4
  22. package/esm/array-collapse/array-collapse.mjs.map +1 -1
  23. package/esm/array-items/array-items.mjs +3 -8
  24. package/esm/array-items/array-items.mjs.map +1 -1
  25. package/esm/array-list-tabs/array-list-tabs.mjs +57 -51
  26. package/esm/array-list-tabs/array-list-tabs.mjs.map +1 -1
  27. package/esm/array-list-tabs/utils.mjs.map +1 -1
  28. package/esm/array-table/array-table.mjs +4 -18
  29. package/esm/array-table/array-table.mjs.map +1 -1
  30. package/esm/array-table/utils.mjs.map +1 -1
  31. package/esm/array-tabs/array-tabs.mjs +1 -1
  32. package/esm/array-tabs/array-tabs.mjs.map +1 -1
  33. package/esm/autocomplete/autocomplete.mjs.map +1 -1
  34. package/esm/autocomplete/index.d.ts +3 -4
  35. package/esm/checkbox/checkbox-group.mjs +1 -1
  36. package/esm/checkbox/checkbox-group.mjs.map +1 -1
  37. package/esm/checkbox/index.d.ts +117 -117
  38. package/esm/color-picker/index.d.ts +28 -28
  39. package/esm/color-picker-panel/index.d.ts +18 -18
  40. package/esm/date-picker-panel/index.d.ts +1 -1
  41. package/esm/editable/editable-popover.mjs +1 -1
  42. package/esm/editable/editable-popover.mjs.map +1 -1
  43. package/esm/editable/editable.mjs +1 -1
  44. package/esm/editable/editable.mjs.map +1 -1
  45. package/esm/form/form.mjs.map +1 -1
  46. package/esm/form/form.vue.d.ts +1 -1
  47. package/esm/form-collapse/form-collapse.mjs +1 -1
  48. package/esm/form-collapse/form-collapse.mjs.map +1 -1
  49. package/esm/form-collapse/index.d.ts +3 -3
  50. package/esm/form-collapse/utils.d.ts +2 -2
  51. package/esm/form-collapse/utils.mjs +2 -2
  52. package/esm/form-collapse/utils.mjs.map +1 -1
  53. package/esm/form-dialog/dialog-content.mjs +1 -1
  54. package/esm/form-dialog/dialog-content.mjs.map +1 -1
  55. package/esm/form-dialog/index.mjs +3 -3
  56. package/esm/form-dialog/index.mjs.map +1 -1
  57. package/esm/form-dialog/types.d.ts +2 -2
  58. package/esm/form-drawer/drawer-content.mjs +1 -1
  59. package/esm/form-drawer/drawer-content.mjs.map +1 -1
  60. package/esm/form-drawer/index.mjs +3 -3
  61. package/esm/form-drawer/index.mjs.map +1 -1
  62. package/esm/form-drawer/types.d.ts +2 -2
  63. package/esm/form-item/form-item.mjs +1 -1
  64. package/esm/form-item/form-item.mjs.map +1 -1
  65. package/esm/form-item/index.mjs +1 -1
  66. package/esm/form-item/index.mjs.map +1 -1
  67. package/esm/form-item/utils.mjs +1 -1
  68. package/esm/form-item/utils.mjs.map +1 -1
  69. package/esm/form-layout/form-layout.mjs +1 -1
  70. package/esm/form-layout/form-layout.mjs.map +1 -1
  71. package/esm/form-layout/form-layout.vue.d.ts +1 -1
  72. package/esm/form-layout/utils.mjs +1 -1
  73. package/esm/form-layout/utils.mjs.map +1 -1
  74. package/esm/form-step/form-step.mjs +1 -1
  75. package/esm/form-step/form-step.mjs.map +1 -1
  76. package/esm/form-step/types.d.ts +1 -1
  77. package/esm/form-step/utils.d.ts +1 -1
  78. package/esm/form-step/utils.mjs +1 -1
  79. package/esm/form-step/utils.mjs.map +1 -1
  80. package/esm/form-tab/hooks.mjs.map +1 -1
  81. package/esm/form-tab/utils.mjs +1 -1
  82. package/esm/form-tab/utils.mjs.map +1 -1
  83. package/esm/input-number/index.d.ts +39 -39
  84. package/esm/input-tag/index.d.ts +1 -2
  85. package/esm/input-tag/input-tag.mjs.map +1 -1
  86. package/esm/mention/index.d.ts +3 -4
  87. package/esm/mention/mention.mjs.map +1 -1
  88. package/esm/pagination/components/pager2.mjs.map +1 -1
  89. package/esm/pagination/components/sizes2.mjs +1 -1
  90. package/esm/pagination/components/sizes2.mjs.map +1 -1
  91. package/esm/picker-select/picker-select.mjs +1 -1
  92. package/esm/picker-select/picker-select.mjs.map +1 -1
  93. package/esm/picker-select/types.d.ts +1 -1
  94. package/esm/preview-text/cascader.mjs.map +1 -1
  95. package/esm/preview-text/color-picker.mjs +1 -1
  96. package/esm/preview-text/color-picker.mjs.map +1 -1
  97. package/esm/preview-text/input.mjs +1 -1
  98. package/esm/preview-text/input.mjs.map +1 -1
  99. package/esm/preview-text/rate.mjs +1 -1
  100. package/esm/preview-text/rate.mjs.map +1 -1
  101. package/esm/preview-text/select.mjs +1 -1
  102. package/esm/preview-text/select.mjs.map +1 -1
  103. package/esm/preview-text/time-picker.mjs +1 -1
  104. package/esm/preview-text/time-picker.mjs.map +1 -1
  105. package/esm/preview-text/tree.mjs.map +1 -1
  106. package/esm/query-form/hooks.mjs +1 -1
  107. package/esm/query-form/hooks.mjs.map +1 -1
  108. package/esm/query-form/index.d.ts +5 -5
  109. package/esm/query-form/query-form-light.mjs +1 -1
  110. package/esm/query-form/query-form-light.mjs.map +1 -1
  111. package/esm/query-form/query-form.mjs +1 -1
  112. package/esm/query-form/query-form.mjs.map +1 -1
  113. package/esm/query-form/types.d.ts +2 -2
  114. package/esm/query-form-item/index.d.ts +4 -4
  115. package/esm/query-form-item/query-form-item.mjs +2 -2
  116. package/esm/query-form-item/query-form-item.mjs.map +1 -1
  117. package/esm/query-form-item/types.d.ts +2 -2
  118. package/esm/radio/index.d.ts +72 -72
  119. package/esm/radio/radio-group.mjs +1 -1
  120. package/esm/radio/radio-group.mjs.map +1 -1
  121. package/esm/rate/index.d.ts +10 -10
  122. package/esm/select/index.d.ts +14 -14
  123. package/esm/select-table/index.d.ts +3 -3
  124. package/esm/select-table/select-table.mjs +1 -1
  125. package/esm/select-table/select-table.mjs.map +1 -1
  126. package/esm/select-table/types.d.ts +1 -1
  127. package/esm/submit/submit.mjs.map +1 -1
  128. package/esm/switch/index.d.ts +27 -27
  129. package/esm/time-select/index.d.ts +20 -20
  130. package/esm/transfer/index.d.ts +12 -12
  131. package/esm/tree/tree.mjs +1 -1
  132. package/esm/tree/tree.mjs.map +1 -1
  133. package/esm/tree-select/tree-select.mjs.map +1 -1
  134. package/esm/upload/upload.mjs +1 -1
  135. package/esm/upload/upload.mjs.map +1 -1
  136. package/package.json +18 -14
@@ -6,23 +6,20 @@ import * as _$element_plus_es_utils_index_mjs0 from "element-plus/es/utils/index
6
6
  type SwitchProps = typeof ElSwitch;
7
7
  declare const Switch: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
8
8
  new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<_$vue.ExtractPropTypes<{
9
- modelValue: {
10
- type: _$vue.PropType<string | number | boolean>;
11
- default: boolean;
12
- };
13
9
  name: {
14
10
  type: _$vue.PropType<string>;
15
11
  default: string;
16
12
  };
17
- disabled: {
18
- type: _$vue.PropType<boolean>;
19
- default: undefined;
20
- };
21
13
  size: {
22
14
  type: _$vue.PropType<"" | "default" | "small" | "large">;
23
15
  };
24
- loading: {
16
+ disabled: {
25
17
  type: _$vue.PropType<boolean>;
18
+ default: undefined;
19
+ };
20
+ modelValue: {
21
+ type: _$vue.PropType<string | number | boolean>;
22
+ default: boolean;
26
23
  };
27
24
  validateEvent: {
28
25
  type: _$vue.PropType<boolean>;
@@ -37,6 +34,9 @@ declare const Switch: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
37
34
  tabindex: {
38
35
  type: _$vue.PropType<string | number>;
39
36
  };
37
+ loading: {
38
+ type: _$vue.PropType<boolean>;
39
+ };
40
40
  width: {
41
41
  type: _$vue.PropType<string | number>;
42
42
  default: string;
@@ -104,23 +104,20 @@ declare const Switch: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
104
104
  M: {};
105
105
  Defaults: {};
106
106
  }, Readonly<_$vue.ExtractPropTypes<{
107
- modelValue: {
108
- type: _$vue.PropType<string | number | boolean>;
109
- default: boolean;
110
- };
111
107
  name: {
112
108
  type: _$vue.PropType<string>;
113
109
  default: string;
114
110
  };
115
- disabled: {
116
- type: _$vue.PropType<boolean>;
117
- default: undefined;
118
- };
119
111
  size: {
120
112
  type: _$vue.PropType<"" | "default" | "small" | "large">;
121
113
  };
122
- loading: {
114
+ disabled: {
123
115
  type: _$vue.PropType<boolean>;
116
+ default: undefined;
117
+ };
118
+ modelValue: {
119
+ type: _$vue.PropType<string | number | boolean>;
120
+ default: boolean;
124
121
  };
125
122
  validateEvent: {
126
123
  type: _$vue.PropType<boolean>;
@@ -135,6 +132,9 @@ declare const Switch: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
135
132
  tabindex: {
136
133
  type: _$vue.PropType<string | number>;
137
134
  };
135
+ loading: {
136
+ type: _$vue.PropType<boolean>;
137
+ };
138
138
  width: {
139
139
  type: _$vue.PropType<string | number>;
140
140
  default: string;
@@ -195,23 +195,20 @@ declare const Switch: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
195
195
  __isTeleport?: never;
196
196
  __isSuspense?: never;
197
197
  } & _$vue.ComponentOptionsBase<Readonly<_$vue.ExtractPropTypes<{
198
- modelValue: {
199
- type: _$vue.PropType<string | number | boolean>;
200
- default: boolean;
201
- };
202
198
  name: {
203
199
  type: _$vue.PropType<string>;
204
200
  default: string;
205
201
  };
206
- disabled: {
207
- type: _$vue.PropType<boolean>;
208
- default: undefined;
209
- };
210
202
  size: {
211
203
  type: _$vue.PropType<"" | "default" | "small" | "large">;
212
204
  };
213
- loading: {
205
+ disabled: {
214
206
  type: _$vue.PropType<boolean>;
207
+ default: undefined;
208
+ };
209
+ modelValue: {
210
+ type: _$vue.PropType<string | number | boolean>;
211
+ default: boolean;
215
212
  };
216
213
  validateEvent: {
217
214
  type: _$vue.PropType<boolean>;
@@ -226,6 +223,9 @@ declare const Switch: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
226
223
  tabindex: {
227
224
  type: _$vue.PropType<string | number>;
228
225
  };
226
+ loading: {
227
+ type: _$vue.PropType<boolean>;
228
+ };
229
229
  width: {
230
230
  type: _$vue.PropType<string | number>;
231
231
  default: string;
@@ -4,16 +4,19 @@ import * as _$element_plus_es_utils_index_mjs0 from "element-plus/es/utils/index
4
4
 
5
5
  //#region src/time-select/index.d.ts
6
6
  declare const TimeSelect: _$element_plus_es_utils_index_mjs0.SFCWithInstall<_$vue.DefineComponent<{
7
- modelValue: {
8
- type: _$vue.PropType<string>;
9
- };
10
7
  name: {
11
8
  type: _$vue.PropType<string>;
12
9
  };
10
+ size: {
11
+ type: _$vue.PropType<"" | "default" | "small" | "large">;
12
+ };
13
13
  disabled: {
14
14
  type: _$vue.PropType<boolean>;
15
15
  default: undefined;
16
16
  };
17
+ modelValue: {
18
+ type: _$vue.PropType<string>;
19
+ };
17
20
  popperClass: {
18
21
  type: _$vue.PropType<string>;
19
22
  default: string;
@@ -22,13 +25,6 @@ declare const TimeSelect: _$element_plus_es_utils_index_mjs0.SFCWithInstall<_$vu
22
25
  type: _$vue.PropType<string | _$vue.CSSProperties>;
23
26
  default: undefined;
24
27
  };
25
- size: {
26
- type: _$vue.PropType<"" | "default" | "small" | "large">;
27
- };
28
- editable: {
29
- type: _$vue.PropType<boolean>;
30
- default: boolean;
31
- };
32
28
  placeholder: {
33
29
  type: _$vue.PropType<string>;
34
30
  };
@@ -59,6 +55,10 @@ declare const TimeSelect: _$element_plus_es_utils_index_mjs0.SFCWithInstall<_$vu
59
55
  type: _$vue.PropType<string>;
60
56
  default: string;
61
57
  };
58
+ editable: {
59
+ type: _$vue.PropType<boolean>;
60
+ default: boolean;
61
+ };
62
62
  step: {
63
63
  type: _$vue.PropType<string>;
64
64
  default: string;
@@ -90,16 +90,19 @@ declare const TimeSelect: _$element_plus_es_utils_index_mjs0.SFCWithInstall<_$vu
90
90
  clear: (...args: any[]) => void;
91
91
  blur: (...args: any[]) => void;
92
92
  }, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
93
- modelValue: {
94
- type: _$vue.PropType<string>;
95
- };
96
93
  name: {
97
94
  type: _$vue.PropType<string>;
98
95
  };
96
+ size: {
97
+ type: _$vue.PropType<"" | "default" | "small" | "large">;
98
+ };
99
99
  disabled: {
100
100
  type: _$vue.PropType<boolean>;
101
101
  default: undefined;
102
102
  };
103
+ modelValue: {
104
+ type: _$vue.PropType<string>;
105
+ };
103
106
  popperClass: {
104
107
  type: _$vue.PropType<string>;
105
108
  default: string;
@@ -108,13 +111,6 @@ declare const TimeSelect: _$element_plus_es_utils_index_mjs0.SFCWithInstall<_$vu
108
111
  type: _$vue.PropType<string | _$vue.CSSProperties>;
109
112
  default: undefined;
110
113
  };
111
- size: {
112
- type: _$vue.PropType<"" | "default" | "small" | "large">;
113
- };
114
- editable: {
115
- type: _$vue.PropType<boolean>;
116
- default: boolean;
117
- };
118
114
  placeholder: {
119
115
  type: _$vue.PropType<string>;
120
116
  };
@@ -145,6 +141,10 @@ declare const TimeSelect: _$element_plus_es_utils_index_mjs0.SFCWithInstall<_$vu
145
141
  type: _$vue.PropType<string>;
146
142
  default: string;
147
143
  };
144
+ editable: {
145
+ type: _$vue.PropType<boolean>;
146
+ default: boolean;
147
+ };
148
148
  step: {
149
149
  type: _$vue.PropType<string>;
150
150
  default: string;
@@ -8,10 +8,6 @@ import * as _$element_plus_es_components_transfer_src_transfer_panel_mjs0 from "
8
8
  type TransferProps = typeof ElTransfer;
9
9
  declare const Transfer: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
10
10
  new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<_$vue.ExtractPropTypes<{
11
- modelValue: {
12
- type: _$vue.PropType<_$element_plus0.TransferKey[]>;
13
- default: () => never[];
14
- };
15
11
  props: {
16
12
  type: _$vue.PropType<_$element_plus0.TransferPropsAlias>;
17
13
  default: () => {
@@ -24,6 +20,10 @@ declare const Transfer: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
24
20
  type: _$vue.PropType<_$element_plus0.TransferDataItem[]>;
25
21
  default: () => never[];
26
22
  };
23
+ modelValue: {
24
+ type: _$vue.PropType<_$element_plus0.TransferKey[]>;
25
+ default: () => never[];
26
+ };
27
27
  filterable: {
28
28
  type: _$vue.PropType<boolean>;
29
29
  };
@@ -97,10 +97,6 @@ declare const Transfer: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
97
97
  M: {};
98
98
  Defaults: {};
99
99
  }, Readonly<_$vue.ExtractPropTypes<{
100
- modelValue: {
101
- type: _$vue.PropType<_$element_plus0.TransferKey[]>;
102
- default: () => never[];
103
- };
104
100
  props: {
105
101
  type: _$vue.PropType<_$element_plus0.TransferPropsAlias>;
106
102
  default: () => {
@@ -113,6 +109,10 @@ declare const Transfer: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
113
109
  type: _$vue.PropType<_$element_plus0.TransferDataItem[]>;
114
110
  default: () => never[];
115
111
  };
112
+ modelValue: {
113
+ type: _$vue.PropType<_$element_plus0.TransferKey[]>;
114
+ default: () => never[];
115
+ };
116
116
  filterable: {
117
117
  type: _$vue.PropType<boolean>;
118
118
  };
@@ -178,10 +178,6 @@ declare const Transfer: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
178
178
  __isTeleport?: never;
179
179
  __isSuspense?: never;
180
180
  } & _$vue.ComponentOptionsBase<Readonly<_$vue.ExtractPropTypes<{
181
- modelValue: {
182
- type: _$vue.PropType<_$element_plus0.TransferKey[]>;
183
- default: () => never[];
184
- };
185
181
  props: {
186
182
  type: _$vue.PropType<_$element_plus0.TransferPropsAlias>;
187
183
  default: () => {
@@ -194,6 +190,10 @@ declare const Transfer: _$element_plus_es_utils_index_mjs0.SFCWithInstall<{
194
190
  type: _$vue.PropType<_$element_plus0.TransferDataItem[]>;
195
191
  default: () => never[];
196
192
  };
193
+ modelValue: {
194
+ type: _$vue.PropType<_$element_plus0.TransferKey[]>;
195
+ default: () => never[];
196
+ };
197
197
  filterable: {
198
198
  type: _$vue.PropType<boolean>;
199
199
  };
package/esm/tree/tree.mjs CHANGED
@@ -3,7 +3,7 @@ import { addDisabledToNodes, flattenTree, getInputKeys, getOutputData } from "./
3
3
  import { ElScrollbar, ElTree, vLoading } from "element-plus";
4
4
  import { computed, createBlock, createSlots, defineComponent, guardReactiveProps, mergeProps, nextTick, normalizeProps, openBlock, ref, renderList, renderSlot, unref, useSlots, watch, withCtx, withDirectives } from "vue";
5
5
  import { useField } from "@silver-formily/vue";
6
- import { isFn } from "@formily/shared";
6
+ import { isFn } from "@silver-formily/shared";
7
7
  //#region src/tree/tree.vue
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  name: "Tree",
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","names":[],"sources":["../../src/tree/tree.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Field } from '@formily/core'\nimport type { TreeValueTypeProps } from './types'\nimport { isFn } from '@formily/shared'\nimport { useField } from '@silver-formily/vue'\nimport { ElScrollbar, ElTree, vLoading } from 'element-plus'\nimport { computed, nextTick, ref, useSlots, watch } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\nimport { addDisabledToNodes, flattenTree, getInputKeys, getOutputData } from './utils'\n\ndefineOptions({\n name: 'Tree',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TreeValueTypeProps>(), {\n valueType: 'all',\n optionAsValue: false,\n includeHalfChecked: false,\n props: {\n children: 'children',\n label: 'label',\n disabled: 'disabled',\n },\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: any]\n}>()\n\nconst slots = useSlots()\n\nconst { props: attrs } = useCleanAttrs()\nconst treeRef = ref<InstanceType<typeof ElTree>>()\nconst checkedKeys = ref<any[]>([])\n\nconst processedData = computed(() => {\n return addDisabledToNodes(props.data ?? [], attrs.value.disabled, props.props)\n})\n\nconst flatData = computed(() => flattenTree(processedData.value ?? [], [], props.props.children))\n\nasync function handleCheck() {\n await nextTick()\n const keys = treeRef.value.getCheckedKeys()\n const halfCheckedKeys = treeRef.value.getHalfCheckedKeys() || []\n checkedKeys.value = keys\n\n const { value, nodes } = getOutputData(keys, halfCheckedKeys, {\n flatData: flatData.value,\n nodeKey: props.nodeKey,\n propsConfig: props.props,\n data: props.data ?? [],\n valueType: props.valueType,\n includeHalfChecked: props.includeHalfChecked,\n checkStrictly: attrs.value.checkStrictly,\n })\n\n if (props.optionAsValue) {\n isFn(props.optionFormatter)\n ? emit('update:modelValue', nodes.map((element, index, array) => {\n return props.optionFormatter(element, index, array)\n }))\n : emit('update:modelValue', nodes)\n }\n else {\n emit('update:modelValue', value)\n }\n}\n\nwatch(() => props.modelValue, (newValue) => {\n if (newValue !== undefined) {\n checkedKeys.value = getInputKeys(newValue, {\n optionAsValue: props.optionAsValue,\n nodeKey: props.nodeKey,\n flatData: flatData.value,\n propsConfig: props.props,\n data: props.data ?? [],\n valueType: props.valueType,\n checkStrictly: attrs.value.checkStrictly,\n })\n nextTick(() => {\n if (treeRef.value) {\n treeRef.value.setCheckedKeys(checkedKeys.value)\n }\n })\n }\n}, { immediate: true })\n\nwatch(() => [props.valueType, props.optionAsValue, props.includeHalfChecked], () => {\n handleCheck()\n}, { immediate: false })\n\nconst fieldRef = useField<Field>()\nfieldRef.value?.inject({\n getTreeRef: () => {\n return treeRef\n },\n})\n</script>\n\n<template>\n <ElScrollbar :height=\"props.height\" :max-height=\"props.maxHeight\">\n <ElTree\n ref=\"treeRef\"\n v-loading=\"attrs.loading\"\n :data=\"processedData\"\n :props=\"props.props\"\n :node-key=\"props.nodeKey\"\n :default-checked-keys=\"checkedKeys\"\n :show-checkbox=\"true\"\n v-bind=\"attrs\"\n @check=\"handleCheck\"\n >\n <template v-for=\"(_, name) of slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"{ field: fieldRef, ...slotData }\" />\n </template>\n </ElTree>\n </ElScrollbar>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeA,MAAM,QAAQ;EAWd,MAAM,OAAO;EAIb,MAAM,QAAQ,UAAS;EAEvB,MAAM,EAAE,OAAO,UAAU,eAAc;EACvC,MAAM,UAAU,KAAiC;EACjD,MAAM,cAAc,IAAW,EAAE,CAAA;EAEjC,MAAM,gBAAgB,eAAe;AACnC,UAAO,mBAAmB,MAAM,QAAQ,EAAE,EAAE,MAAM,MAAM,UAAU,MAAM,MAAK;IAC9E;EAED,MAAM,WAAW,eAAe,YAAY,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,MAAM,SAAS,CAAA;EAEhG,eAAe,cAAc;AAC3B,SAAM,UAAS;GACf,MAAM,OAAO,QAAQ,MAAM,gBAAe;GAC1C,MAAM,kBAAkB,QAAQ,MAAM,oBAAoB,IAAI,EAAC;AAC/D,eAAY,QAAQ;GAEpB,MAAM,EAAE,OAAO,UAAU,cAAc,MAAM,iBAAiB;IAC5D,UAAU,SAAS;IACnB,SAAS,MAAM;IACf,aAAa,MAAM;IACnB,MAAM,MAAM,QAAQ,EAAE;IACtB,WAAW,MAAM;IACjB,oBAAoB,MAAM;IAC1B,eAAe,MAAM,MAAM;IAC5B,CAAA;AAED,OAAI,MAAM,cACR,MAAK,MAAM,gBAAe,GACtB,KAAK,qBAAqB,MAAM,KAAK,SAAS,OAAO,UAAU;AAC7D,WAAO,MAAM,gBAAgB,SAAS,OAAO,MAAK;KAClD,CAAA,GACF,KAAK,qBAAqB,MAAK;OAGnC,MAAK,qBAAqB,MAAK;;AAInC,cAAY,MAAM,aAAa,aAAa;AAC1C,OAAI,aAAa,KAAA,GAAW;AAC1B,gBAAY,QAAQ,aAAa,UAAU;KACzC,eAAe,MAAM;KACrB,SAAS,MAAM;KACf,UAAU,SAAS;KACnB,aAAa,MAAM;KACnB,MAAM,MAAM,QAAQ,EAAE;KACtB,WAAW,MAAM;KACjB,eAAe,MAAM,MAAM;KAC5B,CAAA;AACD,mBAAe;AACb,SAAI,QAAQ,MACV,SAAQ,MAAM,eAAe,YAAY,MAAK;MAEjD;;KAEF,EAAE,WAAW,MAAM,CAAA;AAEtB,cAAY;GAAC,MAAM;GAAW,MAAM;GAAe,MAAM;GAAmB,QAAQ;AAClF,gBAAY;KACX,EAAE,WAAW,OAAO,CAAA;EAEvB,MAAM,WAAW,UAAgB;AACjC,WAAS,OAAO,OAAO,EACrB,kBAAkB;AAChB,UAAO;KAEV,CAAA;;uBAIC,YAgBc,MAAA,YAAA,EAAA;IAhBA,QAAQ,MAAM;IAAS,cAAY,MAAM;;2BAe5C,CAAA,gBAAA,WAAA,EAdT,YAcS,MAAA,OAAA,EAdT,WAcS;cAbH;KAAJ,KAAI;KAEH,MAAM,cAAA;KACN,OAAO,MAAM;KACb,YAAU,MAAM;KAChB,wBAAsB,YAAA;KACtB,iBAAe;OACR,MAAA,MAAK,EAAA,EACZ,SAAO,aAAW,CAAA,EAAA,YAAA,EAAA,GAAA,GAAA,EAAA,CAAA,WAEW,MAAA,MAAK,GAAjB,GAAG,SAAI;;MAAa;mBAAQ,aAAQ,CACpD,WAA+D,KAAA,QAAlD,MAAI,eAAA,mBAAA;OAAA,OAAmB,MAAA,SAAQ;OAAA,GAAK;OAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;4BAVhD,MAAA,MAAK,CAAC,QAAO,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"tree.mjs","names":[],"sources":["../../src/tree/tree.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Field } from '@silver-formily/core'\nimport type { TreeValueTypeProps } from './types'\nimport { isFn } from '@silver-formily/shared'\nimport { useField } from '@silver-formily/vue'\nimport { ElScrollbar, ElTree, vLoading } from 'element-plus'\nimport { computed, nextTick, ref, useSlots, watch } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\nimport { addDisabledToNodes, flattenTree, getInputKeys, getOutputData } from './utils'\n\ndefineOptions({\n name: 'Tree',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<TreeValueTypeProps>(), {\n valueType: 'all',\n optionAsValue: false,\n includeHalfChecked: false,\n props: {\n children: 'children',\n label: 'label',\n disabled: 'disabled',\n },\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: any]\n}>()\n\nconst slots = useSlots()\n\nconst { props: attrs } = useCleanAttrs()\nconst treeRef = ref<InstanceType<typeof ElTree>>()\nconst checkedKeys = ref<any[]>([])\n\nconst processedData = computed(() => {\n return addDisabledToNodes(props.data ?? [], attrs.value.disabled, props.props)\n})\n\nconst flatData = computed(() => flattenTree(processedData.value ?? [], [], props.props.children))\n\nasync function handleCheck() {\n await nextTick()\n const keys = treeRef.value.getCheckedKeys()\n const halfCheckedKeys = treeRef.value.getHalfCheckedKeys() || []\n checkedKeys.value = keys\n\n const { value, nodes } = getOutputData(keys, halfCheckedKeys, {\n flatData: flatData.value,\n nodeKey: props.nodeKey,\n propsConfig: props.props,\n data: props.data ?? [],\n valueType: props.valueType,\n includeHalfChecked: props.includeHalfChecked,\n checkStrictly: attrs.value.checkStrictly,\n })\n\n if (props.optionAsValue) {\n isFn(props.optionFormatter)\n ? emit('update:modelValue', nodes.map((element, index, array) => {\n return props.optionFormatter(element, index, array)\n }))\n : emit('update:modelValue', nodes)\n }\n else {\n emit('update:modelValue', value)\n }\n}\n\nwatch(() => props.modelValue, (newValue) => {\n if (newValue !== undefined) {\n checkedKeys.value = getInputKeys(newValue, {\n optionAsValue: props.optionAsValue,\n nodeKey: props.nodeKey,\n flatData: flatData.value,\n propsConfig: props.props,\n data: props.data ?? [],\n valueType: props.valueType,\n checkStrictly: attrs.value.checkStrictly,\n })\n nextTick(() => {\n if (treeRef.value) {\n treeRef.value.setCheckedKeys(checkedKeys.value)\n }\n })\n }\n}, { immediate: true })\n\nwatch(() => [props.valueType, props.optionAsValue, props.includeHalfChecked], () => {\n handleCheck()\n}, { immediate: false })\n\nconst fieldRef = useField<Field>()\nfieldRef.value?.inject({\n getTreeRef: () => {\n return treeRef\n },\n})\n</script>\n\n<template>\n <ElScrollbar :height=\"props.height\" :max-height=\"props.maxHeight\">\n <ElTree\n ref=\"treeRef\"\n v-loading=\"attrs.loading\"\n :data=\"processedData\"\n :props=\"props.props\"\n :node-key=\"props.nodeKey\"\n :default-checked-keys=\"checkedKeys\"\n :show-checkbox=\"true\"\n v-bind=\"attrs\"\n @check=\"handleCheck\"\n >\n <template v-for=\"(_, name) of slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"{ field: fieldRef, ...slotData }\" />\n </template>\n </ElTree>\n </ElScrollbar>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeA,MAAM,QAAQ;EAWd,MAAM,OAAO;EAIb,MAAM,QAAQ,UAAS;EAEvB,MAAM,EAAE,OAAO,UAAU,eAAc;EACvC,MAAM,UAAU,KAAiC;EACjD,MAAM,cAAc,IAAW,EAAE,CAAA;EAEjC,MAAM,gBAAgB,eAAe;AACnC,UAAO,mBAAmB,MAAM,QAAQ,EAAE,EAAE,MAAM,MAAM,UAAU,MAAM,MAAK;IAC9E;EAED,MAAM,WAAW,eAAe,YAAY,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,MAAM,SAAS,CAAA;EAEhG,eAAe,cAAc;AAC3B,SAAM,UAAS;GACf,MAAM,OAAO,QAAQ,MAAM,gBAAe;GAC1C,MAAM,kBAAkB,QAAQ,MAAM,oBAAoB,IAAI,EAAC;AAC/D,eAAY,QAAQ;GAEpB,MAAM,EAAE,OAAO,UAAU,cAAc,MAAM,iBAAiB;IAC5D,UAAU,SAAS;IACnB,SAAS,MAAM;IACf,aAAa,MAAM;IACnB,MAAM,MAAM,QAAQ,EAAE;IACtB,WAAW,MAAM;IACjB,oBAAoB,MAAM;IAC1B,eAAe,MAAM,MAAM;IAC5B,CAAA;AAED,OAAI,MAAM,cACR,MAAK,MAAM,gBAAe,GACtB,KAAK,qBAAqB,MAAM,KAAK,SAAS,OAAO,UAAU;AAC7D,WAAO,MAAM,gBAAgB,SAAS,OAAO,MAAK;KAClD,CAAA,GACF,KAAK,qBAAqB,MAAK;OAGnC,MAAK,qBAAqB,MAAK;;AAInC,cAAY,MAAM,aAAa,aAAa;AAC1C,OAAI,aAAa,KAAA,GAAW;AAC1B,gBAAY,QAAQ,aAAa,UAAU;KACzC,eAAe,MAAM;KACrB,SAAS,MAAM;KACf,UAAU,SAAS;KACnB,aAAa,MAAM;KACnB,MAAM,MAAM,QAAQ,EAAE;KACtB,WAAW,MAAM;KACjB,eAAe,MAAM,MAAM;KAC5B,CAAA;AACD,mBAAe;AACb,SAAI,QAAQ,MACV,SAAQ,MAAM,eAAe,YAAY,MAAK;MAEjD;;KAEF,EAAE,WAAW,MAAM,CAAA;AAEtB,cAAY;GAAC,MAAM;GAAW,MAAM;GAAe,MAAM;GAAmB,QAAQ;AAClF,gBAAY;KACX,EAAE,WAAW,OAAO,CAAA;EAEvB,MAAM,WAAW,UAAgB;AACjC,WAAS,OAAO,OAAO,EACrB,kBAAkB;AAChB,UAAO;KAEV,CAAA;;uBAIC,YAgBc,MAAA,YAAA,EAAA;IAhBA,QAAQ,MAAM;IAAS,cAAY,MAAM;;2BAe5C,CAAA,gBAAA,WAAA,EAdT,YAcS,MAAA,OAAA,EAdT,WAcS;cAbH;KAAJ,KAAI;KAEH,MAAM,cAAA;KACN,OAAO,MAAM;KACb,YAAU,MAAM;KAChB,wBAAsB,YAAA;KACtB,iBAAe;OACR,MAAA,MAAK,EAAA,EACZ,SAAO,aAAW,CAAA,EAAA,YAAA,EAAA,GAAA,GAAA,EAAA,CAAA,WAEW,MAAA,MAAK,GAAjB,GAAG,SAAI;;MAAa;mBAAQ,aAAQ,CACpD,WAA+D,KAAA,QAAlD,MAAI,eAAA,mBAAA;OAAA,OAAmB,MAAA,SAAQ;OAAA,GAAK;OAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;4BAVhD,MAAA,MAAK,CAAC,QAAO,CAAA,CAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree-select.mjs","names":[],"sources":["../../src/tree-select/tree-select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Field } from '@formily/core'\nimport { useField } from '@silver-formily/vue'\nimport { ElTreeSelect } from 'element-plus'\nimport { ref, useSlots } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\n\ndefineOptions({\n name: 'FSelectTree',\n inheritAttrs: false,\n})\n\nconst slots = useSlots()\n\nconst { props: attrs } = useCleanAttrs()\n\nconst treeSelectRef = ref()\n\nconst fieldRef = useField<Field>()\n\nfieldRef.value?.inject({\n getTreeSelectRef: () => {\n return treeSelectRef\n },\n})\n</script>\n\n<template>\n <ElTreeSelect\n ref=\"treeSelectRef\"\n :loading=\"fieldRef.value?.loading\"\n v-bind=\"attrs\"\n >\n <template v-for=\"(_, name) of slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"{ field: fieldRef, ...slotData }\" />\n </template>\n </ElTreeSelect>\n</template>\n"],"mappings":";;;;;;;;;;EAYA,MAAM,QAAQ,UAAS;EAEvB,MAAM,EAAE,OAAO,UAAU,eAAc;EAEvC,MAAM,gBAAgB,KAAI;EAE1B,MAAM,WAAW,UAAgB;AAEjC,WAAS,OAAO,OAAO,EACrB,wBAAwB;AACtB,UAAO;KAEV,CAAA;;uBAIC,YAQe,MAAA,aAAA,EARf,WAQe;aAPT;IAAJ,KAAI;IACH,SAAS,MAAA,SAAQ,CAAC,OAAO;MAClB,MAAA,MAAK,CAAA,EAAA,YAAA,EAAA,GAAA,GAAA,EAAA,CAAA,WAEiB,MAAA,MAAK,GAAjB,GAAG,SAAI;;KAAa;kBAAQ,aAAQ,CACpD,WAA+D,KAAA,QAAlD,MAAI,eAAA,mBAAA;MAAA,OAAmB,MAAA,SAAQ;MAAA,GAAK;MAAQ,CAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"tree-select.mjs","names":[],"sources":["../../src/tree-select/tree-select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Field } from '@silver-formily/core'\nimport { useField } from '@silver-formily/vue'\nimport { ElTreeSelect } from 'element-plus'\nimport { ref, useSlots } from 'vue'\nimport { useCleanAttrs } from '../__builtins__'\n\ndefineOptions({\n name: 'FSelectTree',\n inheritAttrs: false,\n})\n\nconst slots = useSlots()\n\nconst { props: attrs } = useCleanAttrs()\n\nconst treeSelectRef = ref()\n\nconst fieldRef = useField<Field>()\n\nfieldRef.value?.inject({\n getTreeSelectRef: () => {\n return treeSelectRef\n },\n})\n</script>\n\n<template>\n <ElTreeSelect\n ref=\"treeSelectRef\"\n :loading=\"fieldRef.value?.loading\"\n v-bind=\"attrs\"\n >\n <template v-for=\"(_, name) of slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"{ field: fieldRef, ...slotData }\" />\n </template>\n </ElTreeSelect>\n</template>\n"],"mappings":";;;;;;;;;;EAYA,MAAM,QAAQ,UAAS;EAEvB,MAAM,EAAE,OAAO,UAAU,eAAc;EAEvC,MAAM,gBAAgB,KAAI;EAE1B,MAAM,WAAW,UAAgB;AAEjC,WAAS,OAAO,OAAO,EACrB,wBAAwB;AACtB,UAAO;KAEV,CAAA;;uBAIC,YAQe,MAAA,aAAA,EARf,WAQe;aAPT;IAAJ,KAAI;IACH,SAAS,MAAA,SAAQ,CAAC,OAAO;MAClB,MAAA,MAAK,CAAA,EAAA,YAAA,EAAA,GAAA,GAAA,EAAA,CAAA,WAEiB,MAAA,MAAK,GAAjB,GAAG,SAAI;;KAAa;kBAAQ,aAAQ,CACpD,WAA+D,KAAA,QAAlD,MAAI,eAAA,mBAAA;MAAA,OAAmB,MAAA,SAAQ;MAAA,GAAK;MAAQ,CAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -3,7 +3,7 @@ import { ElButton, ElIcon, ElImageViewer, ElUpload, genFileId } from "element-pl
3
3
  import { reactionWatch } from "@silver-formily/reactive-vue";
4
4
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, unref, useAttrs as useAttrs$1, withCtx } from "vue";
5
5
  import { useField } from "@silver-formily/vue";
6
- import { isFn } from "@formily/shared";
6
+ import { isFn } from "@silver-formily/shared";
7
7
  import { omit } from "lodash-es";
8
8
  import { Plus, Upload, UploadFilled } from "@element-plus/icons-vue";
9
9
  //#region src/upload/upload.vue
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","names":["$props","$slots"],"sources":["../../src/upload/upload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Field } from '@formily/core'\nimport type { ImageViewerInstance, ImageViewerProps, UploadFile, UploadInstance, UploadProps, UploadRawFile } from 'element-plus'\nimport type { PropType } from 'vue'\nimport {\n Plus as PlusIcon,\n UploadFilled as UploadFilledIcon,\n Upload as UploadIcon,\n} from '@element-plus/icons-vue'\nimport { isFn } from '@formily/shared'\nimport { reactionWatch } from '@silver-formily/reactive-vue'\nimport { useField } from '@silver-formily/vue'\nimport { ElButton, ElIcon, ElImageViewer, ElUpload, genFileId } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { computed, ref, useAttrs } from 'vue'\nimport { hasSlotContent } from '../__builtins__'\n\ndefineOptions({\n name: 'FUpload',\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n textContent: {\n type: String,\n default: '',\n },\n errorAdaptor: {\n type: Function as PropType<(error?: Error) => string>,\n default: (error?: Error) => error?.message,\n },\n formatValue: {\n type: Function as PropType<(fileList?: UploadFile[]) => any>,\n default: item => item,\n },\n fileList: {\n type: Array as PropType<UploadFile[]>,\n default: () => [],\n },\n imageViewerProps: {\n type: Object as PropType<ImageViewerProps>,\n default: () => ({ teleported: true, showProgress: true }),\n },\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst uploadRef = ref<UploadInstance>()\nconst attrs = useAttrs() as UploadProps\nconst innerAttrs = computed(() => {\n return omit(attrs, [\n 'onChange',\n 'onRemove',\n 'onExceed',\n 'onError',\n 'onPreview',\n 'fileList',\n 'onUpdate:fileList',\n ])\n})\nconst fieldRef = useField<Field>()\nfieldRef.value?.inject({\n getElUploadRef: () => {\n return uploadRef\n },\n})\n\nconst imgPreviewRef = ref<ImageViewerInstance>()\nconst activeImageIndex = ref(0)\nconst isShowImgViewer = ref(false)\nconst imgPreviewList = computed(() => {\n return props.fileList.map(item => item.url)\n})\n\nfunction setFeedBack(error?: Error) {\n const message = props.errorAdaptor(error)\n fieldRef.value?.setFeedback({\n type: 'error',\n code: 'UploadError',\n messages: message ? [message] : [],\n })\n}\n\nfunction handleChange(file: UploadFile, fileList: UploadFile[]) {\n fieldRef.value?.setDataSource([...fileList])\n setFeedBack()\n}\n\nfunction handleRemove(file: UploadFile, fileList: UploadFile[]) {\n if (isFn(attrs.onRemove)) {\n attrs.onRemove(file, fileList)\n }\n fieldRef.value.setDataSource([...fileList])\n setFeedBack()\n}\n\nfunction handleExceed(files: File[], uploadFIles) {\n if (isFn(attrs.onExceed)) {\n attrs.onExceed(files, uploadFIles)\n }\n if (attrs.limit !== 1)\n return\n uploadRef.value!.clearFiles()\n const file = files[0] as UploadRawFile\n file.uid = genFileId()\n uploadRef.value!.handleStart(file)\n if (attrs.autoUpload ?? true) {\n uploadRef.value!.submit()\n }\n}\n\nfunction handleError(error: Error, file: UploadFile, fileList: UploadFile[]) {\n if (isFn(attrs.onError)) {\n (attrs.onError)(error, file, fileList)\n }\n}\n\nfunction onPreviewClick(uploadFile: UploadFile) {\n if (isFn(attrs.onPreview)) {\n (attrs.onPreview)(uploadFile)\n return\n }\n if (!uploadFile.url && !attrs.accept?.includes('image'))\n return\n const clickIndex = props.fileList.findIndex((element: UploadFile) => element.uid === uploadFile.uid)\n activeImageIndex.value = clickIndex\n isShowImgViewer.value = true\n}\n\nreactionWatch(() => {\n return fieldRef.value?.dataSource ?? []\n}, () => {\n const emitValue = props.formatValue(fieldRef.value.dataSource as UploadFile[])\n emit('update:modelValue', emitValue)\n})\n</script>\n\n<template>\n <ElUpload\n ref=\"uploadRef\"\n v-bind=\"innerAttrs\"\n :file-list=\"$props.fileList\"\n @change=\"handleChange\"\n @remove=\"handleRemove\"\n @exceed=\"handleExceed\"\n @error=\"handleError\"\n @preview=\"onPreviewClick\"\n >\n <slot v-if=\"hasSlotContent($slots?.default)\" />\n <template v-else>\n <template v-if=\"attrs.drag\">\n <ElIcon style=\"font-size: 60px; margin: 40px 0 16px;\">\n <UploadFilledIcon color=\"gray\" />\n </ElIcon>\n <div class=\"el-upload__text\">\n {{ props.textContent }}\n </div>\n </template>\n <template v-else-if=\"attrs.listType === 'picture-card'\">\n <PlusIcon style=\"width: 28px; height: 28px; color: gray\" />\n </template>\n <template v-else>\n <ElButton>\n <UploadIcon width=\"16px\" height=\"16px\" />\n <span style=\"margin-left: 6px\">\n {{ props.textContent }}\n </span>\n </ElButton>\n </template>\n </template>\n <template v-if=\"$slots.file\" #file=\"{ file, index }\">\n <slot name=\"file\" :file=\"file\" :index=\"index\" />\n </template>\n <template v-if=\"$slots.tip\" #tip>\n <slot name=\"tip\" />\n </template>\n <template v-if=\"$slots.trigger\" #trigger>\n <slot name=\"trigger\" />\n </template>\n </ElUpload>\n <ElImageViewer\n v-if=\"isShowImgViewer\"\n ref=\"imgPreviewRef\"\n :url-list=\"imgPreviewList\"\n :initial-index=\"activeImageIndex\"\n v-bind=\"props.imageViewerProps\"\n @close=\"isShowImgViewer = false\"\n />\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"upload.mjs","names":["$props","$slots"],"sources":["../../src/upload/upload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Field } from '@silver-formily/core'\nimport type { ImageViewerInstance, ImageViewerProps, UploadFile, UploadInstance, UploadProps, UploadRawFile } from 'element-plus'\nimport type { PropType } from 'vue'\nimport {\n Plus as PlusIcon,\n UploadFilled as UploadFilledIcon,\n Upload as UploadIcon,\n} from '@element-plus/icons-vue'\nimport { reactionWatch } from '@silver-formily/reactive-vue'\nimport { isFn } from '@silver-formily/shared'\nimport { useField } from '@silver-formily/vue'\nimport { ElButton, ElIcon, ElImageViewer, ElUpload, genFileId } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { computed, ref, useAttrs } from 'vue'\nimport { hasSlotContent } from '../__builtins__'\n\ndefineOptions({\n name: 'FUpload',\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n textContent: {\n type: String,\n default: '',\n },\n errorAdaptor: {\n type: Function as PropType<(error?: Error) => string>,\n default: (error?: Error) => error?.message,\n },\n formatValue: {\n type: Function as PropType<(fileList?: UploadFile[]) => any>,\n default: item => item,\n },\n fileList: {\n type: Array as PropType<UploadFile[]>,\n default: () => [],\n },\n imageViewerProps: {\n type: Object as PropType<ImageViewerProps>,\n default: () => ({ teleported: true, showProgress: true }),\n },\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst uploadRef = ref<UploadInstance>()\nconst attrs = useAttrs() as UploadProps\nconst innerAttrs = computed(() => {\n return omit(attrs, [\n 'onChange',\n 'onRemove',\n 'onExceed',\n 'onError',\n 'onPreview',\n 'fileList',\n 'onUpdate:fileList',\n ])\n})\nconst fieldRef = useField<Field>()\nfieldRef.value?.inject({\n getElUploadRef: () => {\n return uploadRef\n },\n})\n\nconst imgPreviewRef = ref<ImageViewerInstance>()\nconst activeImageIndex = ref(0)\nconst isShowImgViewer = ref(false)\nconst imgPreviewList = computed(() => {\n return props.fileList.map(item => item.url)\n})\n\nfunction setFeedBack(error?: Error) {\n const message = props.errorAdaptor(error)\n fieldRef.value?.setFeedback({\n type: 'error',\n code: 'UploadError',\n messages: message ? [message] : [],\n })\n}\n\nfunction handleChange(file: UploadFile, fileList: UploadFile[]) {\n fieldRef.value?.setDataSource([...fileList])\n setFeedBack()\n}\n\nfunction handleRemove(file: UploadFile, fileList: UploadFile[]) {\n if (isFn(attrs.onRemove)) {\n attrs.onRemove(file, fileList)\n }\n fieldRef.value.setDataSource([...fileList])\n setFeedBack()\n}\n\nfunction handleExceed(files: File[], uploadFIles) {\n if (isFn(attrs.onExceed)) {\n attrs.onExceed(files, uploadFIles)\n }\n if (attrs.limit !== 1)\n return\n uploadRef.value!.clearFiles()\n const file = files[0] as UploadRawFile\n file.uid = genFileId()\n uploadRef.value!.handleStart(file)\n if (attrs.autoUpload ?? true) {\n uploadRef.value!.submit()\n }\n}\n\nfunction handleError(error: Error, file: UploadFile, fileList: UploadFile[]) {\n if (isFn(attrs.onError)) {\n (attrs.onError)(error, file, fileList)\n }\n}\n\nfunction onPreviewClick(uploadFile: UploadFile) {\n if (isFn(attrs.onPreview)) {\n (attrs.onPreview)(uploadFile)\n return\n }\n if (!uploadFile.url && !attrs.accept?.includes('image'))\n return\n const clickIndex = props.fileList.findIndex((element: UploadFile) => element.uid === uploadFile.uid)\n activeImageIndex.value = clickIndex\n isShowImgViewer.value = true\n}\n\nreactionWatch(() => {\n return fieldRef.value?.dataSource ?? []\n}, () => {\n const emitValue = props.formatValue(fieldRef.value.dataSource as UploadFile[])\n emit('update:modelValue', emitValue)\n})\n</script>\n\n<template>\n <ElUpload\n ref=\"uploadRef\"\n v-bind=\"innerAttrs\"\n :file-list=\"$props.fileList\"\n @change=\"handleChange\"\n @remove=\"handleRemove\"\n @exceed=\"handleExceed\"\n @error=\"handleError\"\n @preview=\"onPreviewClick\"\n >\n <slot v-if=\"hasSlotContent($slots?.default)\" />\n <template v-else>\n <template v-if=\"attrs.drag\">\n <ElIcon style=\"font-size: 60px; margin: 40px 0 16px;\">\n <UploadFilledIcon color=\"gray\" />\n </ElIcon>\n <div class=\"el-upload__text\">\n {{ props.textContent }}\n </div>\n </template>\n <template v-else-if=\"attrs.listType === 'picture-card'\">\n <PlusIcon style=\"width: 28px; height: 28px; color: gray\" />\n </template>\n <template v-else>\n <ElButton>\n <UploadIcon width=\"16px\" height=\"16px\" />\n <span style=\"margin-left: 6px\">\n {{ props.textContent }}\n </span>\n </ElButton>\n </template>\n </template>\n <template v-if=\"$slots.file\" #file=\"{ file, index }\">\n <slot name=\"file\" :file=\"file\" :index=\"index\" />\n </template>\n <template v-if=\"$slots.tip\" #tip>\n <slot name=\"tip\" />\n </template>\n <template v-if=\"$slots.trigger\" #trigger>\n <slot name=\"trigger\" />\n </template>\n </ElUpload>\n <ElImageViewer\n v-if=\"isShowImgViewer\"\n ref=\"imgPreviewRef\"\n :url-list=\"imgPreviewList\"\n :initial-index=\"activeImageIndex\"\n v-bind=\"props.imageViewerProps\"\n @close=\"isShowImgViewer = false\"\n />\n</template>\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@silver-formily/element-plus",
3
3
  "type": "module",
4
- "version": "4.0.3",
5
- "description": "Formily 的 Element Plus 封装",
4
+ "version": "5.0.0",
5
+ "description": "Element Plus bindings for Silver Formily",
6
6
  "author": "hezhengxu",
7
7
  "license": "MIT",
8
8
  "homepage": "https://element-plus.silver-formily.org/",
@@ -36,16 +36,16 @@
36
36
  "esm"
37
37
  ],
38
38
  "peerDependencies": {
39
- "@formily/core": "^2.0.8",
40
- "@formily/json-schema": "^2.0.8",
41
- "@formily/reactive": "^2.0.8",
42
- "@formily/shared": "^2.0.8",
43
- "@silver-formily/grid": "^1.0.1",
44
- "@silver-formily/reactive-vue": "^1.1.0",
45
- "@silver-formily/vue": "^2.3.1",
46
39
  "@vueuse/core": "*",
47
40
  "element-plus": "^2.11.0",
48
- "vue": "^3.3.0"
41
+ "vue": "^3.3.0",
42
+ "@silver-formily/grid": "2.0.0",
43
+ "@silver-formily/json-schema": "1.0.0",
44
+ "@silver-formily/reactive": "1.0.0",
45
+ "@silver-formily/shared": "1.0.0",
46
+ "@silver-formily/core": "1.0.0",
47
+ "@silver-formily/reactive-vue": "2.0.0",
48
+ "@silver-formily/vue": "3.0.0"
49
49
  },
50
50
  "dependencies": {
51
51
  "@element-plus/icons-vue": "^2.3.2",
@@ -71,10 +71,14 @@
71
71
  "vitest-browser-vue": "^2.0.2",
72
72
  "vue": "^3.5.27",
73
73
  "vue-tsc": "^3.2.6",
74
- "@silver-formily/grid": "1.0.2",
75
- "@silver-formily/reactive-vue": "1.1.1",
74
+ "@silver-formily/core": "1.0.0",
75
+ "@silver-formily/grid": "2.0.0",
76
+ "@silver-formily/json-schema": "1.0.0",
77
+ "@silver-formily/reactive-vue": "2.0.0",
78
+ "@silver-formily/reactive": "1.0.0",
79
+ "@silver-formily/shared": "1.0.0",
76
80
  "@silver-formily/typescript-config": "0.0.0",
77
- "@silver-formily/vue": "2.3.4"
81
+ "@silver-formily/vue": "3.0.0"
78
82
  },
79
83
  "scripts": {
80
84
  "build": "tsdown --tsconfig tsconfig.build.json",
@@ -83,7 +87,7 @@
83
87
  "check-types": "vue-tsc --noEmit --project tsconfig.check.json",
84
88
  "test": "vitest run --reporter=dot",
85
89
  "test:watch": "vitest",
86
- "test:run": "vitest run --browser.headless",
90
+ "test:browser": "vitest run --browser.headless",
87
91
  "test:coverage": "vitest run --coverage --browser.headless"
88
92
  }
89
93
  }