fast-element-plus 2.0.18 → 2.0.20

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 (130) hide show
  1. package/CHANGELOG.md +52 -19
  2. package/CONTRIBUTING.md +3 -4
  3. package/README.md +80 -27
  4. package/README.zh.md +66 -27
  5. package/dist/component.d.ts +123 -123
  6. package/dist/components/avatar/src/avatar.d.ts +26 -26
  7. package/dist/components/avatar/src/avatar.mjs +10 -10
  8. package/dist/components/avatar/src/avatar.mjs.map +1 -1
  9. package/dist/components/button/src/button.d.ts +32 -27
  10. package/dist/components/button/src/button.mjs +57 -36
  11. package/dist/components/button/src/button.mjs.map +1 -1
  12. package/dist/components/carNumber/src/carNumber.d.ts +8 -8
  13. package/dist/components/carNumber/src/carNumber.mjs +5 -5
  14. package/dist/components/carNumber/src/carNumber.mjs.map +1 -1
  15. package/dist/components/contextMenu/src/contextMenu.d.ts +7 -7
  16. package/dist/components/contextMenu/src/contextMenu.mjs +7 -7
  17. package/dist/components/contextMenu/src/contextMenu.mjs.map +1 -1
  18. package/dist/components/contextMenu/src/contextMenu.type.d.ts +7 -7
  19. package/dist/components/dialog/src/dialog.d.ts +76 -76
  20. package/dist/components/dialog/src/dialog.mjs +34 -34
  21. package/dist/components/dialog/src/dialog.mjs.map +1 -1
  22. package/dist/components/drawer/src/drawer.d.ts +59 -59
  23. package/dist/components/drawer/src/drawer.mjs +27 -27
  24. package/dist/components/drawer/src/drawer.mjs.map +1 -1
  25. package/dist/components/form/src/form.d.ts +30 -30
  26. package/dist/components/form/src/form.mjs +16 -16
  27. package/dist/components/form/src/form.mjs.map +1 -1
  28. package/dist/components/form/src/formItem.d.ts +30 -30
  29. package/dist/components/form/src/formItem.mjs +13 -13
  30. package/dist/components/form/src/formItem.mjs.map +1 -1
  31. package/dist/components/formItemTip/src/formItemTip.d.ts +9 -9
  32. package/dist/components/formItemTip/src/formItemTip.mjs +3 -3
  33. package/dist/components/formItemTip/src/formItemTip.mjs.map +1 -1
  34. package/dist/components/icon/src/icon.d.ts +10 -10
  35. package/dist/components/icon/src/icon.mjs +4 -4
  36. package/dist/components/icon/src/icon.mjs.map +1 -1
  37. package/dist/components/iconSelector/src/iconSelector.d.ts +6 -6
  38. package/dist/components/iconSelector/src/iconSelector.mjs +4 -4
  39. package/dist/components/iconSelector/src/iconSelector.mjs.map +1 -1
  40. package/dist/components/image/src/image.d.ts +36 -36
  41. package/dist/components/image/src/image.mjs +11 -11
  42. package/dist/components/image/src/image.mjs.map +1 -1
  43. package/dist/components/inputDialogPage/src/inputDialogPage.d.ts +37 -37
  44. package/dist/components/inputDialogPage/src/inputDialogPage.mjs +16 -16
  45. package/dist/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
  46. package/dist/components/layoutGrid/src/layoutGrid.d.ts +12 -12
  47. package/dist/components/layoutGrid/src/layoutGrid.mjs +6 -6
  48. package/dist/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
  49. package/dist/components/layoutGrid/src/layoutGridItem.d.ts +19 -19
  50. package/dist/components/layoutGrid/src/layoutGridItem.mjs +9 -9
  51. package/dist/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  52. package/dist/components/select/src/select.d.ts +89 -89
  53. package/dist/components/select/src/select.mjs +30 -30
  54. package/dist/components/select/src/select.mjs.map +1 -1
  55. package/dist/components/select/src/selectOption.d.ts +13 -13
  56. package/dist/components/select/src/selectOption.mjs +6 -6
  57. package/dist/components/select/src/selectOption.mjs.map +1 -1
  58. package/dist/components/selectPage/src/selectPage.d.ts +76 -76
  59. package/dist/components/selectPage/src/selectPage.mjs +50 -36
  60. package/dist/components/selectPage/src/selectPage.mjs.map +1 -1
  61. package/dist/components/selectV2/index.mjs +2 -1
  62. package/dist/components/selectV2/index.mjs.map +1 -1
  63. package/dist/components/selectV2/src/selectV2.d.ts +161 -852
  64. package/dist/components/selectV2/src/selectV2.mjs +32 -340
  65. package/dist/components/selectV2/src/selectV2.mjs.map +1 -1
  66. package/dist/components/table/index.mjs +3 -2
  67. package/dist/components/table/index.mjs.map +1 -1
  68. package/dist/components/table/src/page.type.d.ts +1 -1
  69. package/dist/components/table/src/table.d.ts +211 -744
  70. package/dist/components/table/src/table.mjs +111 -307
  71. package/dist/components/table/src/table.mjs.map +1 -1
  72. package/dist/components/table/src/table.state.d.ts +3 -3
  73. package/dist/components/table/src/table.type.d.ts +1 -9
  74. package/dist/components/table/src/table.type.mjs.map +1 -1
  75. package/dist/components/table/src/tableColumn.d.ts +102 -399
  76. package/dist/components/table/src/tableColumn.mjs +28 -185
  77. package/dist/components/table/src/tableColumn.mjs.map +1 -1
  78. package/dist/components/table/src/tableColumnSettingDialog.d.ts +4 -4
  79. package/dist/components/table/src/tableColumnSettingDialog.mjs +3 -3
  80. package/dist/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  81. package/dist/components/table/src/tablePagination.d.ts +4 -4
  82. package/dist/components/table/src/tablePagination.mjs +3 -3
  83. package/dist/components/table/src/tablePagination.mjs.map +1 -1
  84. package/dist/components/table/src/tableSearchForm.d.ts +12 -12
  85. package/dist/components/table/src/tableSearchForm.mjs +6 -6
  86. package/dist/components/table/src/tableSearchForm.mjs.map +1 -1
  87. package/dist/components/table/src/tableSearchFormItem.d.ts +4 -4
  88. package/dist/components/table/src/tableSearchFormItem.mjs +2 -2
  89. package/dist/components/table/src/tableSearchFormItem.mjs.map +1 -1
  90. package/dist/components/table/src/useTable.d.ts +1 -0
  91. package/dist/components/table/src/useTable.mjs +109 -65
  92. package/dist/components/table/src/useTable.mjs.map +1 -1
  93. package/dist/components/table/utils/table.d.ts +4 -4
  94. package/dist/components/table/utils/table.mjs +4 -4
  95. package/dist/components/table/utils/table.mjs.map +1 -1
  96. package/dist/components/tree/src/tree.d.ts +87 -87
  97. package/dist/components/tree/src/tree.mjs +48 -48
  98. package/dist/components/tree/src/tree.mjs.map +1 -1
  99. package/dist/components/treeSelect/src/treeSelect.d.ts +139 -133
  100. package/dist/components/treeSelect/src/treeSelect.mjs +57 -57
  101. package/dist/components/treeSelect/src/treeSelect.mjs.map +1 -1
  102. package/dist/components/upload/src/upload.d.ts +36 -36
  103. package/dist/components/upload/src/upload.mjs +19 -19
  104. package/dist/components/upload/src/upload.mjs.map +1 -1
  105. package/dist/components/uploadImage/src/uploadImage.d.ts +47 -47
  106. package/dist/components/uploadImage/src/uploadImage.mjs +24 -28
  107. package/dist/components/uploadImage/src/uploadImage.mjs.map +1 -1
  108. package/dist/components/uploadImages/src/uploadImages.d.ts +41 -41
  109. package/dist/components/uploadImages/src/uploadImages.mjs +21 -21
  110. package/dist/components/uploadImages/src/uploadImages.mjs.map +1 -1
  111. package/dist/directives/click-debounce/index.mjs +19 -11
  112. package/dist/directives/click-debounce/index.mjs.map +1 -1
  113. package/dist/directives/click-throttle/index.d.ts +4 -2
  114. package/dist/directives/click-throttle/index.mjs +21 -11
  115. package/dist/directives/click-throttle/index.mjs.map +1 -1
  116. package/dist/index.css +1 -1
  117. package/dist/index.css.map +1 -1
  118. package/dist/index.global.min.js +3 -3
  119. package/dist/index.global.min.js.map +1 -1
  120. package/dist/index.mjs +3 -3
  121. package/dist/internal/props.d.ts +685 -0
  122. package/dist/internal/props.mjs +683 -0
  123. package/dist/internal/props.mjs.map +1 -0
  124. package/dist/utils/loading-tasks.d.ts +5 -0
  125. package/dist/utils/loading-tasks.mjs +32 -0
  126. package/dist/utils/loading-tasks.mjs.map +1 -0
  127. package/dist/version.d.ts +1 -1
  128. package/dist/version.mjs +1 -1
  129. package/dist/version.mjs.map +1 -1
  130. package/package.json +5 -10
@@ -7,44 +7,44 @@ import { useRender } from "../../../utils/vue/render.mjs";
7
7
  import { makeSlots } from "../../../utils/vue/slots.mjs";
8
8
  import { withDefineType } from "../../../utils/vue/with.mjs";
9
9
  import { FaSelectOption } from "../../select/index.mjs";
10
- import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, reactive, shallowRef, useModel, watch } from "vue";
10
+ import { Fragment, computed, createTextVNode, createVNode, defineComponent, mergeProps, onBeforeUnmount, reactive, shallowRef, toRef, useModel, watch } from "vue";
11
11
  import { Search } from "@element-plus/icons-vue";
12
12
  import { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from "element-plus";
13
13
  //#region src/components/selectPage/src/selectPage.tsx
14
- /** FaSelectPage 的运行时 Props 定义。 */
14
+ /** FaSelectPage 的运行时 Props 定义 */
15
15
  const faSelectPageProps = {
16
16
  ...selectProps,
17
- /** @description whether Select is disabled 重载使其支持 ElForm*/
17
+ /** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */
18
18
  disabled: {
19
19
  type: Boolean,
20
20
  default: void 0
21
21
  },
22
- /** @description displayed text while loading data from server, default is 'Loading' */
22
+ /** 远程数据加载时显示的文本;默认显示“加载中...”。 */
23
23
  loadingText: {
24
24
  type: String,
25
25
  default: "加载中..."
26
26
  },
27
- /** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */
27
+ /** 筛选结果为空时显示的文本,也可通过 empty 插槽替换。 */
28
28
  noMatchText: {
29
29
  type: String,
30
30
  default: "暂无匹配的数据"
31
31
  },
32
- /** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */
32
+ /** 没有可选数据时显示的文本,也可通过 empty 插槽替换。 */
33
33
  noDataText: {
34
34
  type: String,
35
35
  default: "暂无数据"
36
36
  },
37
- /** @description whether to collapse tags to a text when multiple selecting */
37
+ /** 多选时是否折叠已选标签 */
38
38
  collapseTags: {
39
39
  type: Boolean,
40
40
  default: true
41
41
  },
42
- /** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */
42
+ /** 悬停折叠标签时是否显示全部选项;仅在 collapse-tags 开启时有效。 */
43
43
  collapseTagsTooltip: {
44
44
  type: Boolean,
45
45
  default: true
46
46
  },
47
- /** @description v-model绑定值 */
47
+ /** v-model 绑定值 */
48
48
  modelValue: {
49
49
  type: definePropType([
50
50
  String,
@@ -55,16 +55,16 @@ const faSelectPageProps = {
55
55
  ]),
56
56
  default: void 0
57
57
  },
58
- /** @description v-model:label绑定值 */
58
+ /** v-model:label 绑定值 */
59
59
  label: definePropType([String, Array]),
60
- /** @description 宽度 */
60
+ /** 宽度 */
61
61
  width: {
62
62
  type: [String, Number],
63
63
  default: "100%"
64
64
  },
65
- /** @description 更多细节,只有使用slot的时候有用 */
65
+ /** 插槽使用的附加状态 */
66
66
  moreDetail: Boolean,
67
- /** @description 配置选项 */
67
+ /** 配置选项 */
68
68
  props: {
69
69
  type: definePropType(Object),
70
70
  default: () => ({
@@ -74,7 +74,7 @@ const faSelectPageProps = {
74
74
  children: "children"
75
75
  })
76
76
  },
77
- /** @description 请求api */
77
+ /** 请求数据的函数 */
78
78
  requestApi: {
79
79
  type: definePropType(Function),
80
80
  required: true
@@ -86,16 +86,16 @@ const faSelectPageProps = {
86
86
  Object
87
87
  ])
88
88
  };
89
- /** FaSelectPage 的运行时 Emits 定义。 */
89
+ /** FaSelectPage 的运行时 Emits 定义 */
90
90
  const faSelectPageEmits = {
91
91
  ...selectEmits,
92
- /** @description v-model 回调 */
92
+ /** v-model 回调 */
93
93
  "update:modelValue": (value) => typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "object" && value !== null || value == null,
94
- /** @description 选中数据改变 */
94
+ /** 选中数据改变 */
95
95
  change: (_data, _value) => true,
96
- /** @description v-model:label 回调 */
96
+ /** v-model:label 回调 */
97
97
  "update:label": (value) => typeof value === "string" || Array.isArray(value) || value === null,
98
- /** @description 数据改变 */
98
+ /** 数据改变 */
99
99
  dataChange: (data) => Array.isArray(data)
100
100
  };
101
101
  var selectPage_default = defineComponent({
@@ -126,6 +126,7 @@ var selectPage_default = defineComponent({
126
126
  defaultSelectorData: withDefineType()
127
127
  });
128
128
  let requestVersion = 0;
129
+ let disposed = false;
129
130
  const handleData = (data) => {
130
131
  return data.map((item) => {
131
132
  const value = item[props.valueKey];
@@ -144,7 +145,9 @@ var selectPage_default = defineComponent({
144
145
  };
145
146
  }).filter((item) => item.hide !== true);
146
147
  };
148
+ const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
147
149
  const loadData = async (pageIndex) => {
150
+ if (disposed) return;
148
151
  const currentRequestVersion = ++requestVersion;
149
152
  state.loading = true;
150
153
  state.pageIndex = pageIndex ?? state.pageIndex;
@@ -156,19 +159,20 @@ var selectPage_default = defineComponent({
156
159
  };
157
160
  try {
158
161
  const resData = await props.requestApi(params);
159
- if (currentRequestVersion !== requestVersion) return;
162
+ if (disposed || currentRequestVersion !== requestVersion) return;
160
163
  state.echo = false;
161
164
  state.totalRows = resData.totalRows ?? 0;
162
165
  state.selectorData = handleData(resData.rows ?? []);
166
+ state.defaultSelectorData &&= flattenOptions(state.selectorData).find((item) => isEqual(item.value, state.defaultSelectorData?.value)) ?? state.defaultSelectorData;
163
167
  emit("dataChange", state.selectorData);
164
168
  } catch (error) {
165
- if (currentRequestVersion !== requestVersion) return;
169
+ if (disposed || currentRequestVersion !== requestVersion) return;
166
170
  state.pageIndex = 1;
167
171
  state.totalRows = 0;
168
172
  state.selectorData = [];
169
173
  throw error;
170
174
  } finally {
171
- if (currentRequestVersion === requestVersion) state.loading = false;
175
+ if (!disposed && currentRequestVersion === requestVersion) state.loading = false;
172
176
  }
173
177
  };
174
178
  const pageIndexModel = computed({
@@ -193,12 +197,11 @@ var selectPage_default = defineComponent({
193
197
  }
194
198
  emit("visible-change", visible);
195
199
  };
196
- const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
197
200
  const handleChange = (value) => {
198
201
  const selectorData = flattenOptions([
202
+ ...state.selectorData,
199
203
  ...state.selectedList,
200
- ...state.defaultSelectorData ? [state.defaultSelectorData] : [],
201
- ...state.selectorData
204
+ ...state.defaultSelectorData ? [state.defaultSelectorData] : []
202
205
  ]);
203
206
  if (props.multiple) {
204
207
  const valueList = Array.isArray(value) ? value : [];
@@ -254,9 +257,9 @@ var selectPage_default = defineComponent({
254
257
  }, { immediate: true });
255
258
  watch([() => state.value, () => state.selectorData], ([value]) => {
256
259
  const selectorData = flattenOptions([
260
+ ...state.selectorData,
257
261
  ...state.selectedList,
258
- ...state.defaultSelectorData ? [state.defaultSelectorData] : [],
259
- ...state.selectorData
262
+ ...state.defaultSelectorData ? [state.defaultSelectorData] : []
260
263
  ]);
261
264
  if (props.multiple) {
262
265
  if (!Array.isArray(value)) {
@@ -272,6 +275,7 @@ var selectPage_default = defineComponent({
272
275
  }
273
276
  if (value == null || Array.isArray(value)) {
274
277
  state.selectedList = [];
278
+ state.defaultSelectorData = void 0;
275
279
  selectedLabel.value = null;
276
280
  return;
277
281
  }
@@ -285,10 +289,20 @@ var selectPage_default = defineComponent({
285
289
  });
286
290
  watch(() => props.initParam, (newValue, oldValue) => {
287
291
  if (!isEqual(newValue, oldValue)) {
292
+ requestVersion++;
293
+ state.loading = false;
294
+ state.selectorData = [];
295
+ state.selectedList = [];
296
+ state.defaultSelectorData = void 0;
297
+ state.pageIndex = 1;
288
298
  state.nextRefresh = true;
289
299
  if (state.value != null) handleModelValueUpdate(props.multiple ? [] : void 0);
290
300
  }
291
301
  });
302
+ onBeforeUnmount(() => {
303
+ disposed = true;
304
+ requestVersion++;
305
+ });
292
306
  const elSelectProps = useProps(props, selectProps, [
293
307
  "modelValue",
294
308
  "popperClass",
@@ -369,21 +383,21 @@ var selectPage_default = defineComponent({
369
383
  }) ?? [] }
370
384
  }));
371
385
  return useExpose(expose, {
372
- /** @description 使选择器的输入框获取焦点 */
386
+ /** 使选择器的输入框获取焦点 */
373
387
  focus: computed(() => selectRef.value?.focus),
374
- /** @description 使选择器的输入框失去焦点,并隐藏下拉框 */
388
+ /** 使选择器的输入框失去焦点,并隐藏下拉框 */
375
389
  blur: computed(() => selectRef.value?.blur),
376
- /** @description 获取当前选中的标签 */
390
+ /** 获取当前选中的标签 */
377
391
  selectedLabel: computed(() => selectRef.value?.selectedLabel),
378
- /** @description 加载状态 */
379
- loading: computed(() => state.loading),
380
- /** @description 选中的数据 */
392
+ /** 加载状态 */
393
+ loading: toRef(state, "loading"),
394
+ /** 选中的数据 */
381
395
  selectedList: computed(() => state.selectedList),
382
- /** @description 刷新 */
396
+ /** 刷新 */
383
397
  refresh: loadData,
384
- /** @description 设置选择 */
398
+ /** 设置选择 */
385
399
  setSelection: (value) => handleModelValueUpdate(value),
386
- /** @description 清除选择 */
400
+ /** 清除选择 */
387
401
  clearSelection: () => handleModelValueUpdate(props.multiple ? [] : void 0)
388
402
  });
389
403
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selectPage.mjs","names":["update:modelValue","update:label"],"sources":["../../../../src/components/selectPage/src/selectPage.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, reactive, shallowRef, useModel, watch } from \"vue\";\nimport { Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport { FaSelectOption } from \"../../select\";\nimport type { ComponentObjectPropsOptions } from \"vue\";\nimport type { ElSelectorModelValue, ElSelectorOutput, ElSelectorValue } from \"../../select\";\nimport type { SelectComponentProps } from \"../../select/src/select\";\nimport type { PagedInput, PagedResult } from \"../../table\";\n\n/** FaSelectPage 的运行时 Props 定义。 */\nexport const faSelectPageProps = {\n\t...selectProps,\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** @description displayed text while loading data from server, default is 'Loading' */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** @description displayed text when no data matches the filtering query, you can also use slot `empty`, default is 'No matching data' */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** @description displayed text when there is no options, you can also use slot `empty`, default is 'No data' */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** @description whether to collapse tags to a text when multiple selecting */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether show all selected tags when mouse hover text of collapse-tags. To use this, `collapse-tags` must be true */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<ElSelectorModelValue>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[] | null>([String, Array]),\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** @description 更多细节,只有使用slot的时候有用 */\n\tmoreDetail: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: () => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<ElSelectorOutput>>>(Function),\n\t\trequired: true,\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n} satisfies ComponentObjectPropsOptions;\n\n/** FaSelectPage 的运行时 Emits 定义。 */\nexport const faSelectPageEmits = {\n\t...selectEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: ElSelectorModelValue) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** @description 选中数据改变 */\n\tchange: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => true,\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[] | null) => typeof value === \"string\" || Array.isArray(value) || value === null,\n\t/** @description 数据改变 */\n\tdataChange: (data: ElSelectorOutput[]) => Array.isArray(data),\n};\n\n/** FaSelectPage 的插槽参数。 */\nexport interface FaSelectPageSlots extends Record<string, unknown> {\n\t/** @description FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** @description 下拉列表顶部的内容 */\n\theader: never;\n\t/** @description 下拉列表底部的内容 */\n\tfooter: never;\n\t/** @description Select 组件头部内容 */\n\tprefix: never;\n\t/** @description 无选项时的列表 */\n\tempty: never;\n\t/** @description select 组件自定义标签内容 */\n\ttag: never;\n\t/** @description select 组件自定义 loading内容 */\n\tloading: never;\n\t/** @description select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n}\n\nexport default defineComponent({\n\tname: \"FaSelectPage\",\n\tprops: faSelectPageProps,\n\temits: faSelectPageEmits,\n\tslots: makeSlots<FaSelectPageSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst selectRef = shallowRef<InstanceType<typeof ElSelect> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<ElSelectorModelValue>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 选中的数据 */\n\t\t\tselectedList: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 15,\n\t\t\ttotalRows: 0,\n\t\t\tsearchValue: undefined,\n\t\t\tdefaultSelectorData: withDefineType<ElSelectorOutput | undefined>(),\n\t\t});\n\n\t\tlet requestVersion = 0;\n\n\t\tconst handleData = (data: ElSelectorOutput[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst value: unknown = item[props.valueKey];\n\t\t\t\t\tconst label: unknown = typeof props.props.label === \"function\" ? props.props.label(item) : item[props.props.label ?? \"label\"];\n\t\t\t\t\tconst hide: unknown = typeof props.props.hide === \"function\" ? props.props.hide(item) : item[props.props.hide ?? \"hide\"];\n\t\t\t\t\tconst disabled: unknown =\n\t\t\t\t\t\ttypeof props.props.disabled === \"function\" ? props.props.disabled(item) : item[props.props.disabled ?? \"disabled\"];\n\t\t\t\t\tconst children: unknown = item[props.props.children ?? \"children\"];\n\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"object\")\n\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tchildren: Array.isArray(children) ? handleData(children as ElSelectorOutput[]) : [],\n\t\t\t\t\t\tdisabled: typeof disabled === \"boolean\" ? disabled : undefined,\n\t\t\t\t\t\thide: typeof hide === \"boolean\" ? hide : undefined,\n\t\t\t\t\t\tlabel: typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter((item) => item.hide !== true);\n\t\t};\n\n\t\tconst loadData = async (pageIndex?: number) => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tstate.loading = true;\n\t\t\tstate.pageIndex = pageIndex ?? state.pageIndex;\n\t\t\tconst params: PagedInput = {\n\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\tpageIndex: state.pageIndex,\n\t\t\t\tpageSize: state.pageSize,\n\t\t\t\tsearchValue: state.searchValue,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.totalRows = resData.totalRows ?? 0;\n\t\t\t\tstate.selectorData = handleData(resData.rows ?? []);\n\t\t\t\temit(\"dataChange\", state.selectorData);\n\t\t\t} catch (error) {\n\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\tstate.pageIndex = 1;\n\t\t\t\tstate.totalRows = 0;\n\t\t\t\tstate.selectorData = [];\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t}\n\t\t};\n\n\t\tconst pageIndexModel = computed({\n\t\t\tget: () => state.pageIndex,\n\t\t\tset: (pageIndex: number) => {\n\t\t\t\tloadData(pageIndex);\n\t\t\t},\n\t\t});\n\n\t\tconst handleModelValueUpdate = (value: ElSelectorModelValue) => {\n\t\t\tstate.value = value;\n\t\t\temit(\"update:modelValue\", value);\n\t\t};\n\n\t\tconst handleVisibleChange = async (visible: boolean) => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\tawait loadData();\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 visible-change,需要保持原始名称透传。\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\tconst flattenOptions = (data: ElSelectorOutput[]): ElSelectorOutput[] =>\n\t\t\tdata.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);\n\n\t\tconst handleChange = (value?: ElSelectorModelValue) => {\n\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t...state.selectedList,\n\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t...state.selectorData,\n\t\t\t]);\n\t\t\tif (props.multiple) {\n\t\t\t\tconst valueList = Array.isArray(value) ? value : [];\n\t\t\t\tif (valueList.length === 0) {\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = valueList\n\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t.filter((item) => item !== undefined);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (value == null || Array.isArray(value)) {\n\t\t\t\temit(\"change\", null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\temit(\"change\", data ?? null, value);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && newValue != null) {\n\t\t\t\t\tconst hasLabel = props.label != null;\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\tif (!Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !Array.isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue:label 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectedList = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => {\n\t\t\t\t\t\t\t\tconst value: unknown = item;\n\t\t\t\t\t\t\t\tconst label: unknown = Array.isArray(props.label) ? props.label[index] : undefined;\n\t\t\t\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t\t\t\t(typeof value === \"string\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"number\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"boolean\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"object\")\n\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t\t\t\t\tlabel: hasLabel && typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && Array.isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue:label 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.defaultSelectorData = {\n\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\tlabel: typeof props.label === \"string\" ? props.label : undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t[() => state.value, () => state.selectorData],\n\t\t\t([value]) => {\n\t\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t\t...state.selectedList,\n\t\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t\t...state.selectorData,\n\t\t\t\t]);\n\n\t\t\t\tif (props.multiple) {\n\t\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.selectedList = value\n\t\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t\t.filter((item) => item !== undefined);\n\t\t\t\t\tselectedLabel.value = value.map((item, index) => {\n\t\t\t\t\t\tconst data = state.selectedList.find((option) => option.value !== undefined && isEqual(option.value, item));\n\n\t\t\t\t\t\treturn data?.label ?? (Array.isArray(props.label) ? (props.label[index] ?? \"\") : \"\");\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (value == null || Array.isArray(value)) {\n\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\t\tstate.selectedList = data ? [data] : [];\n\t\t\t\tselectedLabel.value = data?.label ?? (typeof props.label === \"string\" ? props.label : null);\n\t\t\t},\n\t\t\t{\n\t\t\t\tdeep: true,\n\t\t\t\tflush: \"sync\",\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.initParam,\n\t\t\t(newValue, oldValue) => {\n\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\tif (state.value != null) {\n\t\t\t\t\t\thandleModelValueUpdate(props.multiple ? [] : undefined);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tconst elSelectProps = useProps(props, selectProps, [\"modelValue\", \"popperClass\", \"loading\", \"props\"]);\n\t\tconst elSelectEmits = useEmits(selectEmits, emit, [\"update:modelValue\", \"change\", \"visible-change\"]);\n\t\tconst elPopperClass = computed(() => [\n\t\t\t`fa-select-page-dropdown fa-select-page-dropdown-${globalSize.value}`,\n\t\t\tprops.popperClass,\n\t\t\tprops.moreDetail && `fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${globalSize.value}`,\n\t\t]);\n\n\t\tuseRender(() => (\n\t\t\t<ElSelect\n\t\t\t\t{...elSelectProps.value}\n\t\t\t\t{...elSelectEmits.value}\n\t\t\t\tref={selectRef}\n\t\t\t\tclass=\"fa-select-page\"\n\t\t\t\tpopperClass={elPopperClass.value}\n\t\t\t\tstyle={{ width: addCssUnit(props.width) }}\n\t\t\t\tmodelValue={state.value}\n\t\t\t\tonUpdate:modelValue={handleModelValueUpdate}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tloading={state.loading}\n\t\t\t\tonVisible-change={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\tstate.selectorData.map((item) => (\n\t\t\t\t\t\t\t<FaSelectOption vSlots={{ default: slots.default }} data={item} moreDetail={props.moreDetail} />\n\t\t\t\t\t\t)),\n\t\t\t\t\theader: () => [\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{state.defaultSelectorData?.value !== undefined && (\n\t\t\t\t\t\t\t\t<ElOption\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__default-selector\"\n\t\t\t\t\t\t\t\t\tvalue={state.defaultSelectorData.value}\n\t\t\t\t\t\t\t\t\tlabel={state.defaultSelectorData.label ?? \"\"}\n\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span>{state.defaultSelectorData.label}</span>\n\t\t\t\t\t\t\t\t\t<span>Default</span>\n\t\t\t\t\t\t\t\t</ElOption>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__search-input\"\n\t\t\t\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"请输入关键字搜索\"\n\t\t\t\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\t\t\t\tonKeyup={(event: KeyboardEvent) => event.key === \"Enter\" && loadData(1)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\tappend: () => <ElButton loading={state.loading} icon={Search} onClick={() => loadData(1)} />,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t</ElInput>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t{slots.header?.()}\n\t\t\t\t\t\t</Fragment>,\n\t\t\t\t\t],\n\t\t\t\t\tfooter: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<ElPagination\n\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__pagination\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvModel:currentPage={pageIndexModel.value}\n\t\t\t\t\t\t\t\tpageSize={state.pageSize}\n\t\t\t\t\t\t\t\ttotal={state.totalRows}\n\t\t\t\t\t\t\t\tlayout=\"prev, pager, next, total\"\n\t\t\t\t\t\t\t\tpagerCount={5}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{slots.footer?.()}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(slots.prefix && { prefix: () => slots.prefix?.() ?? [] }),\n\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t...(slots.tag && { tag: () => slots.tag?.() ?? [] }),\n\t\t\t\t\t...(slots.loading && { loading: () => slots.loading?.() ?? [] }),\n\t\t\t\t\t...(props.multiple\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlabel: ({ label: _label, value }: { label: string; value: string | number | boolean | object }) => {\n\t\t\t\t\t\t\t\t\tconst selectedData = state.selectedList.find((f) => f.value === value);\n\t\t\t\t\t\t\t\t\tif (slots.label) {\n\t\t\t\t\t\t\t\t\t\treturn slots.label({ label: selectedData?.label ?? _label, value: selectedData?.value ?? value });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn selectedData ? [<span class=\"el-select__tags-text\">{selectedData.label}</span>] : [];\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: slots.label && {\n\t\t\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }) =>\n\t\t\t\t\t\t\t\t\tslots.label?.({ label, value }) ?? [],\n\t\t\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 选中的数据 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: Exclude<ElSelectorModelValue, null | undefined>) => handleModelValueUpdate(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleModelValueUpdate(props.multiple ? [] : undefined),\n\t\t});\n\t},\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectPage.mjs","names":["update:modelValue","update:label"],"sources":["../../../../src/components/selectPage/src/selectPage.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, onBeforeUnmount, reactive, shallowRef, toRef, useModel, watch } from \"vue\";\nimport { Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElInput, ElOption, ElPagination, ElSelect, selectEmits, selectProps, useGlobalSize } from \"element-plus\";\nimport { addCssUnit, definePropType, isEqual, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport { FaSelectOption } from \"../../select\";\nimport type { ComponentObjectPropsOptions } from \"vue\";\nimport type { ElSelectorModelValue, ElSelectorOutput, ElSelectorValue } from \"../../select\";\nimport type { SelectComponentProps } from \"../../select/src/select\";\nimport type { PagedInput, PagedResult } from \"../../table\";\n\n/** FaSelectPage 的运行时 Props 定义 */\nexport const faSelectPageProps = {\n\t...selectProps,\n\t/** 是否禁用选择器;未指定时继承 ElForm 的禁用状态。 */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 远程数据加载时显示的文本;默认显示“加载中...”。 */\n\tloadingText: {\n\t\ttype: String,\n\t\tdefault: \"加载中...\",\n\t},\n\t/** 筛选结果为空时显示的文本,也可通过 empty 插槽替换。 */\n\tnoMatchText: {\n\t\ttype: String,\n\t\tdefault: \"暂无匹配的数据\",\n\t},\n\t/** 没有可选数据时显示的文本,也可通过 empty 插槽替换。 */\n\tnoDataText: {\n\t\ttype: String,\n\t\tdefault: \"暂无数据\",\n\t},\n\t/** 多选时是否折叠已选标签 */\n\tcollapseTags: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** 悬停折叠标签时是否显示全部选项;仅在 collapse-tags 开启时有效。 */\n\tcollapseTagsTooltip: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** v-model 绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<ElSelectorModelValue>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** v-model:label 绑定值 */\n\tlabel: definePropType<string | string[] | null>([String, Array]),\n\t/** 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"100%\",\n\t},\n\t/** 插槽使用的附加状态 */\n\tmoreDetail: Boolean,\n\t/** 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: () => ({\n\t\t\tlabel: \"label\",\n\t\t\thide: \"hide\",\n\t\t\tdisabled: \"disabled\",\n\t\t\tchildren: \"children\",\n\t\t}),\n\t},\n\t/** 请求数据的函数 */\n\trequestApi: {\n\t\ttype: definePropType<(params?: PagedInput) => Promise<PagedResult<ElSelectorOutput>>>(Function),\n\t\trequired: true,\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput | null>([String, Number, Object]),\n} satisfies ComponentObjectPropsOptions;\n\n/** FaSelectPage 的运行时 Emits 定义 */\nexport const faSelectPageEmits = {\n\t...selectEmits,\n\t/** v-model 回调 */\n\t\"update:modelValue\": (value: ElSelectorModelValue) =>\n\t\ttypeof value === \"string\" ||\n\t\ttypeof value === \"number\" ||\n\t\ttypeof value === \"boolean\" ||\n\t\t(typeof value === \"object\" && value !== null) ||\n\t\tvalue == null,\n\t/** 选中数据改变 */\n\tchange: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => true,\n\t/** v-model:label 回调 */\n\t\"update:label\": (value: string | string[] | null) => typeof value === \"string\" || Array.isArray(value) || value === null,\n\t/** 数据改变 */\n\tdataChange: (data: ElSelectorOutput[]) => Array.isArray(data),\n};\n\n/** FaSelectPage 的插槽参数 */\nexport interface FaSelectPageSlots extends Record<string, unknown> {\n\t/** FaSelectOption 默认内容插槽 */\n\tdefault: ElSelectorOutput;\n\t/** 下拉列表顶部的内容 */\n\theader: never;\n\t/** 下拉列表底部的内容 */\n\tfooter: never;\n\t/** Select 组件头部内容 */\n\tprefix: never;\n\t/** 无选项时的列表 */\n\tempty: never;\n\t/** select 组件自定义标签内容 */\n\ttag: never;\n\t/** Select 组件自定义加载内容 */\n\tloading: never;\n\t/** select 组件自定义标签内容 */\n\tlabel: { label: string; value: string | number | boolean | object };\n}\n\nexport default defineComponent({\n\tname: \"FaSelectPage\",\n\tprops: faSelectPageProps,\n\temits: faSelectPageEmits,\n\tslots: makeSlots<FaSelectPageSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useModel(props, \"label\");\n\n\t\tconst globalSize = useGlobalSize();\n\t\tconst selectRef = shallowRef<InstanceType<typeof ElSelect> | null>(null);\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<ElSelectorModelValue>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 选中的数据 */\n\t\t\tselectedList: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 15,\n\t\t\ttotalRows: 0,\n\t\t\tsearchValue: undefined,\n\t\t\tdefaultSelectorData: withDefineType<ElSelectorOutput | undefined>(),\n\t\t});\n\n\t\t// 新请求、参数变化和卸载都会使旧响应失效。\n\t\tlet requestVersion = 0;\n\t\tlet disposed = false;\n\t\tconst handleData = (data: ElSelectorOutput[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst value: unknown = item[props.valueKey];\n\t\t\t\t\tconst label: unknown = typeof props.props.label === \"function\" ? props.props.label(item) : item[props.props.label ?? \"label\"];\n\t\t\t\t\tconst hide: unknown = typeof props.props.hide === \"function\" ? props.props.hide(item) : item[props.props.hide ?? \"hide\"];\n\t\t\t\t\tconst disabled: unknown =\n\t\t\t\t\t\ttypeof props.props.disabled === \"function\" ? props.props.disabled(item) : item[props.props.disabled ?? \"disabled\"];\n\t\t\t\t\tconst children: unknown = item[props.props.children ?? \"children\"];\n\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\" || typeof value === \"object\")\n\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tchildren: Array.isArray(children) ? handleData(children as ElSelectorOutput[]) : [],\n\t\t\t\t\t\tdisabled: typeof disabled === \"boolean\" ? disabled : undefined,\n\t\t\t\t\t\thide: typeof hide === \"boolean\" ? hide : undefined,\n\t\t\t\t\t\tlabel: typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter((item) => item.hide !== true);\n\t\t};\n\n\t\tconst flattenOptions = (data: ElSelectorOutput[]): ElSelectorOutput[] =>\n\t\t\tdata.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);\n\n\t\tconst loadData = async (pageIndex?: number) => {\n\t\t\tif (disposed) return;\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tstate.loading = true;\n\t\t\tstate.pageIndex = pageIndex ?? state.pageIndex;\n\t\t\tconst params: PagedInput = {\n\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\tpageIndex: state.pageIndex,\n\t\t\t\tpageSize: state.pageSize,\n\t\t\t\tsearchValue: state.searchValue,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\tif (disposed || currentRequestVersion !== requestVersion) return;\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.totalRows = resData.totalRows ?? 0;\n\t\t\t\tstate.selectorData = handleData(resData.rows ?? []);\n\t\t\t\t// 最新选项替换回显缓存,保留当前页之外的选中项。\n\t\t\t\tstate.defaultSelectorData &&=\n\t\t\t\t\tflattenOptions(state.selectorData).find((item) => isEqual(item.value, state.defaultSelectorData?.value)) ??\n\t\t\t\t\tstate.defaultSelectorData;\n\t\t\t\temit(\"dataChange\", state.selectorData);\n\t\t\t} catch (error) {\n\t\t\t\tif (disposed || currentRequestVersion !== requestVersion) return;\n\t\t\t\tstate.pageIndex = 1;\n\t\t\t\tstate.totalRows = 0;\n\t\t\t\tstate.selectorData = [];\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (!disposed && currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t}\n\t\t};\n\n\t\tconst pageIndexModel = computed({\n\t\t\tget: () => state.pageIndex,\n\t\t\tset: (pageIndex: number) => {\n\t\t\t\tloadData(pageIndex);\n\t\t\t},\n\t\t});\n\n\t\tconst handleModelValueUpdate = (value: ElSelectorModelValue) => {\n\t\t\tstate.value = value;\n\t\t\temit(\"update:modelValue\", value);\n\t\t};\n\n\t\tconst handleVisibleChange = async (visible: boolean) => {\n\t\t\tif (visible) {\n\t\t\t\tif (state.debut) {\n\t\t\t\t\t// 首次出现\n\t\t\t\t\tstate.debut = false;\n\t\t\t\t\tawait loadData();\n\t\t\t\t} else {\n\t\t\t\t\t// 判断再次出现是否需要刷新数据\n\t\t\t\t\tif (state.nextRefresh) {\n\t\t\t\t\t\tstate.nextRefresh = false;\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line vue/custom-event-name-casing -- Element Plus 的公开事件名为 visible-change,需要保持原始名称透传。\n\t\t\temit(\"visible-change\", visible);\n\t\t};\n\n\t\tconst handleChange = (value?: ElSelectorModelValue) => {\n\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t...state.selectorData,\n\t\t\t\t...state.selectedList,\n\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t]);\n\t\t\tif (props.multiple) {\n\t\t\t\tconst valueList = Array.isArray(value) ? value : [];\n\t\t\t\tif (valueList.length === 0) {\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst dataList = valueList\n\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t.filter((item) => item !== undefined);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (value == null || Array.isArray(value)) {\n\t\t\t\temit(\"change\", null, null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\temit(\"change\", data ?? null, value);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tif (state.echo && newValue != null) {\n\t\t\t\t\tconst hasLabel = props.label != null;\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\tif (!Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && !Array.isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当启用 multiple 时,传入的 modelValue:label 必须是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.selectedList = newValue\n\t\t\t\t\t\t\t// 最大选项截取\n\t\t\t\t\t\t\t.slice(0, props.multipleLimit > 0 ? props.multipleLimit : newValue.length)\n\t\t\t\t\t\t\t.map((item, index) => {\n\t\t\t\t\t\t\t\tconst value: unknown = item;\n\t\t\t\t\t\t\t\tconst label: unknown = Array.isArray(props.label) ? props.label[index] : undefined;\n\t\t\t\t\t\t\t\tconst selectorValue: ElSelectorValue | undefined =\n\t\t\t\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t\t\t\t(typeof value === \"string\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"number\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"boolean\" ||\n\t\t\t\t\t\t\t\t\t\ttypeof value === \"object\")\n\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: selectorValue,\n\t\t\t\t\t\t\t\t\tlabel: hasLabel && typeof label === \"string\" ? label : undefined,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (Array.isArray(newValue)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (hasLabel && Array.isArray(props.label)) {\n\t\t\t\t\t\t\tconsole.error(\"[Fast:FaSelectPage]\", \"当禁用 multiple 时,传入的 modelValue:label 不能是 Array。\");\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.defaultSelectorData = {\n\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\tlabel: typeof props.label === \"string\" ? props.label : undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.value = newValue;\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t[() => state.value, () => state.selectorData],\n\t\t\t([value]) => {\n\t\t\t\tconst selectorData = flattenOptions([\n\t\t\t\t\t...state.selectorData,\n\t\t\t\t\t...state.selectedList,\n\t\t\t\t\t...(state.defaultSelectorData ? [state.defaultSelectorData] : []),\n\t\t\t\t]);\n\n\t\t\t\tif (props.multiple) {\n\t\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.selectedList = value\n\t\t\t\t\t\t.map((item) => selectorData.find((option) => option.value !== undefined && isEqual(option.value, item)))\n\t\t\t\t\t\t.filter((item) => item !== undefined);\n\t\t\t\t\tselectedLabel.value = value.map((item, index) => {\n\t\t\t\t\t\tconst data = state.selectedList.find((option) => option.value !== undefined && isEqual(option.value, item));\n\n\t\t\t\t\t\treturn data?.label ?? (Array.isArray(props.label) ? (props.label[index] ?? \"\") : \"\");\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (value == null || Array.isArray(value)) {\n\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\tstate.defaultSelectorData = undefined;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst data = selectorData.find((item) => item.value !== undefined && isEqual(item.value, value));\n\t\t\t\tstate.selectedList = data ? [data] : [];\n\t\t\t\tselectedLabel.value = data?.label ?? (typeof props.label === \"string\" ? props.label : null);\n\t\t\t},\n\t\t\t{\n\t\t\t\tdeep: true,\n\t\t\t\tflush: \"sync\",\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.initParam,\n\t\t\t(newValue, oldValue) => {\n\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\trequestVersion++;\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t\tstate.selectedList = [];\n\t\t\t\t\tstate.defaultSelectorData = undefined;\n\t\t\t\t\tstate.pageIndex = 1;\n\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\tif (state.value != null) {\n\t\t\t\t\t\thandleModelValueUpdate(props.multiple ? [] : undefined);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tonBeforeUnmount(() => {\n\t\t\tdisposed = true;\n\t\t\trequestVersion++;\n\t\t});\n\n\t\tconst elSelectProps = useProps(props, selectProps, [\"modelValue\", \"popperClass\", \"loading\", \"props\"]);\n\t\tconst elSelectEmits = useEmits(selectEmits, emit, [\"update:modelValue\", \"change\", \"visible-change\"]);\n\t\tconst elPopperClass = computed(() => [\n\t\t\t`fa-select-page-dropdown fa-select-page-dropdown-${globalSize.value}`,\n\t\t\tprops.popperClass,\n\t\t\tprops.moreDetail && `fa-select-dropdown__more-detail fa-select-dropdown__more-detail-${globalSize.value}`,\n\t\t]);\n\n\t\tuseRender(() => (\n\t\t\t<ElSelect\n\t\t\t\t{...elSelectProps.value}\n\t\t\t\t{...elSelectEmits.value}\n\t\t\t\tref={selectRef}\n\t\t\t\tclass=\"fa-select-page\"\n\t\t\t\tpopperClass={elPopperClass.value}\n\t\t\t\tstyle={{ width: addCssUnit(props.width) }}\n\t\t\t\tmodelValue={state.value}\n\t\t\t\tonUpdate:modelValue={handleModelValueUpdate}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tloading={state.loading}\n\t\t\t\tonVisible-change={handleVisibleChange}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\tstate.selectorData.map((item) => (\n\t\t\t\t\t\t\t<FaSelectOption vSlots={{ default: slots.default }} data={item} moreDetail={props.moreDetail} />\n\t\t\t\t\t\t)),\n\t\t\t\t\theader: () => [\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{state.defaultSelectorData?.value !== undefined && (\n\t\t\t\t\t\t\t\t<ElOption\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__default-selector\"\n\t\t\t\t\t\t\t\t\tvalue={state.defaultSelectorData.value}\n\t\t\t\t\t\t\t\t\tlabel={state.defaultSelectorData.label ?? \"\"}\n\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span>{state.defaultSelectorData.label}</span>\n\t\t\t\t\t\t\t\t\t<span>Default</span>\n\t\t\t\t\t\t\t\t</ElOption>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__search-input\"\n\t\t\t\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"请输入关键字搜索\"\n\t\t\t\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\t\t\t\tonKeyup={(event: KeyboardEvent) => event.key === \"Enter\" && loadData(1)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\tappend: () => <ElButton loading={state.loading} icon={Search} onClick={() => loadData(1)} />,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t</ElInput>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t{slots.header?.()}\n\t\t\t\t\t\t</Fragment>,\n\t\t\t\t\t],\n\t\t\t\t\tfooter: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<ElPagination\n\t\t\t\t\t\t\t\tclass=\"fa-select-page-dropdown__pagination\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tvModel:currentPage={pageIndexModel.value}\n\t\t\t\t\t\t\t\tpageSize={state.pageSize}\n\t\t\t\t\t\t\t\ttotal={state.totalRows}\n\t\t\t\t\t\t\t\tlayout=\"prev, pager, next, total\"\n\t\t\t\t\t\t\t\tpagerCount={5}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{slots.footer?.()}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(slots.prefix && { prefix: () => slots.prefix?.() ?? [] }),\n\t\t\t\t\t...(slots.empty && { empty: () => slots.empty?.() ?? [] }),\n\t\t\t\t\t...(slots.tag && { tag: () => slots.tag?.() ?? [] }),\n\t\t\t\t\t...(slots.loading && { loading: () => slots.loading?.() ?? [] }),\n\t\t\t\t\t...(props.multiple\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlabel: ({ label: _label, value }: { label: string; value: string | number | boolean | object }) => {\n\t\t\t\t\t\t\t\t\tconst selectedData = state.selectedList.find((f) => f.value === value);\n\t\t\t\t\t\t\t\t\tif (slots.label) {\n\t\t\t\t\t\t\t\t\t\treturn slots.label({ label: selectedData?.label ?? _label, value: selectedData?.value ?? value });\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn selectedData ? [<span class=\"el-select__tags-text\">{selectedData.label}</span>] : [];\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: slots.label && {\n\t\t\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }) =>\n\t\t\t\t\t\t\t\t\tslots.label?.({ label, value }) ?? [],\n\t\t\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => selectRef.value?.focus),\n\t\t\t/** 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => selectRef.value?.blur),\n\t\t\t/** 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => selectRef.value?.selectedLabel),\n\t\t\t/** 加载状态 */\n\t\t\tloading: toRef(state, \"loading\"),\n\t\t\t/** 选中的数据 */\n\t\t\tselectedList: computed(() => state.selectedList),\n\t\t\t/** 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** 设置选择 */\n\t\t\tsetSelection: (value: Exclude<ElSelectorModelValue, null | undefined>) => handleModelValueUpdate(value),\n\t\t\t/** 清除选择 */\n\t\t\tclearSelection: () => handleModelValueUpdate(props.multiple ? [] : undefined),\n\t\t});\n\t},\n});\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { withInstall } from "../../utils/vue/install.mjs";
2
- import selectV2_default, { SelectV2Props, faSelectV2Props } from "./src/selectV2.mjs";
2
+ import { SelectV2Props } from "../../internal/props.mjs";
3
+ import selectV2_default, { faSelectV2Props } from "./src/selectV2.mjs";
3
4
  //#region src/components/selectV2/index.ts
4
5
  /** 面向大数据量选项并支持远程分页的虚拟化选择器组件。 */
5
6
  const FaSelectV2 = withInstall(selectV2_default);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["SelectV2"],"sources":["../../../src/components/selectV2/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport SelectV2, { SelectV2Props, faSelectV2Props } from \"./src/selectV2\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\nimport type { faSelectV2Emits } from \"./src/selectV2\";\n\n/** 面向大数据量选项并支持远程分页的虚拟化选择器组件。 */\nexport const FaSelectV2: TSXWithInstall<typeof SelectV2> = withInstall(SelectV2);\nexport default FaSelectV2;\n\nexport { SelectV2Props, faSelectV2Props };\nexport type { FaSelectV2Slots } from \"./src/selectV2\";\n\n/** FaSelectV2 暴露的组件实例类型。 */\nexport type FaSelectV2Instance = InstanceType<typeof SelectV2>;\n\n/** FaSelectV2 的完整 Props 类型。 */\nexport type FaSelectV2Props = ExtractPropTypes<typeof faSelectV2Props>;\n\n/** FaSelectV2 的 Emits 类型。 */\nexport type FaSelectV2Emits = typeof faSelectV2Emits;\n"],"mappings":";;;;AAOA,MAAa,aAA8C,YAAYA,gBAAQ"}
1
+ {"version":3,"file":"index.mjs","names":["SelectV2"],"sources":["../../../src/components/selectV2/index.ts"],"sourcesContent":["import { withInstall } from \"../../utils\";\nimport SelectV2, { SelectV2Props, faSelectV2Props } from \"./src/selectV2\";\nimport type { ExtractPropTypes } from \"vue\";\nimport type { TSXWithInstall } from \"../../utils\";\nimport type { faSelectV2Emits } from \"./src/selectV2\";\n\n/** 面向大数据量选项并支持远程分页的虚拟化选择器组件。 */\nexport const FaSelectV2: TSXWithInstall<typeof SelectV2> = withInstall(SelectV2);\nexport default FaSelectV2;\n\nexport { SelectV2Props, faSelectV2Props };\nexport type { FaSelectV2Slots } from \"./src/selectV2\";\n\n/** FaSelectV2 暴露的组件实例类型。 */\nexport type FaSelectV2Instance = InstanceType<typeof SelectV2>;\n\n/** FaSelectV2 的完整 Props 类型。 */\nexport type FaSelectV2Props = ExtractPropTypes<typeof faSelectV2Props>;\n\n/** FaSelectV2 的 Emits 类型。 */\nexport type FaSelectV2Emits = typeof faSelectV2Emits;\n"],"mappings":";;;;;AAOA,MAAa,aAA8C,YAAYA,gBAAQ"}