fast-element-plus 1.0.0-alpha.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/index.full.js +3180 -4581
  2. package/dist/index.full.js.map +1 -1
  3. package/dist/index.full.min.js +5 -5
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +5 -5
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +3180 -4581
  8. package/dist/index.full.mjs.map +1 -1
  9. package/dist/styles/index.css +2 -2
  10. package/es/components/avatar/index.d.ts +1 -1
  11. package/es/components/avatar/index.mjs.map +1 -1
  12. package/es/components/avatar/src/avatar.d.ts +18 -102
  13. package/es/components/avatar/src/avatar.mjs +1 -2
  14. package/es/components/avatar/src/avatar.mjs.map +1 -1
  15. package/es/components/button/index.d.ts +1 -1
  16. package/es/components/button/index.mjs.map +1 -1
  17. package/es/components/button/src/button.d.ts +35 -180
  18. package/es/components/button/src/button.mjs +14 -4
  19. package/es/components/button/src/button.mjs.map +1 -1
  20. package/es/components/carNumber/src/carNumber.d.ts +58 -194
  21. package/es/components/contextMenu/src/contextMenu.mjs +1 -1
  22. package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
  23. package/es/components/dialog/src/dialog.d.ts +45 -297
  24. package/es/components/drawer/src/drawer.d.ts +72 -450
  25. package/es/components/form/src/form.d.ts +28 -133
  26. package/es/components/form/src/formItem.d.ts +32 -137
  27. package/es/components/iconSelector/src/iconSelector.mjs +2 -2
  28. package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
  29. package/es/components/image/src/image.d.ts +43 -253
  30. package/es/components/select/src/select.d.ts +25 -81
  31. package/es/components/select/src/select.mjs +1 -0
  32. package/es/components/select/src/select.mjs.map +1 -1
  33. package/es/components/selectPage/src/selectPage.d.ts +19 -61
  34. package/es/components/selectV2/src/selectV2.d.ts +25 -81
  35. package/es/components/selectV2/src/selectV2.mjs +1 -0
  36. package/es/components/selectV2/src/selectV2.mjs.map +1 -1
  37. package/es/components/table/src/table.d.ts +5 -12
  38. package/es/components/table/src/table.mjs +4 -6
  39. package/es/components/table/src/table.mjs.map +1 -1
  40. package/es/components/table/src/table.state.d.ts +1 -1
  41. package/es/components/table/src/table.type.d.ts +4 -1
  42. package/es/components/table/src/table.type.mjs.map +1 -1
  43. package/es/components/table/src/tableColumn.d.ts +1 -1
  44. package/es/components/table/src/tableColumn.mjs +7 -7
  45. package/es/components/table/src/tableColumn.mjs.map +1 -1
  46. package/es/components/table/src/tableSearchForm.d.ts +6 -4
  47. package/es/components/table/src/tableSearchForm.mjs +2 -2
  48. package/es/components/table/src/tableSearchForm.mjs.map +1 -1
  49. package/es/components/table/src/useTable.mjs +3 -3
  50. package/es/components/table/src/useTable.mjs.map +1 -1
  51. package/es/components/tree/src/tree.d.ts +23 -653
  52. package/es/components/tree/src/tree.mjs +1 -1
  53. package/es/components/tree/src/tree.mjs.map +1 -1
  54. package/es/components/tree/src/tree.type.d.ts +1 -1
  55. package/es/components/treeSelect/src/treeSelect.d.ts +20 -62
  56. package/es/components/treeSelect/src/treeSelect.mjs +1 -0
  57. package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
  58. package/es/components/upload/src/upload.d.ts +298 -460
  59. package/es/components/upload/src/useUpload.mjs +2 -2
  60. package/es/components/upload/src/useUpload.mjs.map +1 -1
  61. package/es/components/uploadImage/src/uploadImage.d.ts +295 -394
  62. package/es/components/uploadImage/src/uploadImage.mjs +1 -1
  63. package/es/components/uploadImage/src/uploadImage.mjs.map +1 -1
  64. package/es/components/uploadImages/src/uploadImages.d.ts +300 -420
  65. package/es/components/uploadImages/src/uploadImages.mjs +4 -4
  66. package/es/components/uploadImages/src/uploadImages.mjs.map +1 -1
  67. package/es/constants/regex.mjs +13 -13
  68. package/es/constants/regex.mjs.map +1 -1
  69. package/es/directive.d.ts +1 -1
  70. package/es/directives/click-copy/index.d.ts +1 -1
  71. package/es/directives/click-debounce/index.d.ts +1 -1
  72. package/es/directives/click-draggable/index.d.ts +1 -1
  73. package/es/directives/click-icon-copy/index.d.ts +1 -1
  74. package/es/directives/click-longpress/index.d.ts +1 -1
  75. package/es/directives/click-throttle/index.d.ts +1 -1
  76. package/es/element-plus.mjs +1 -1
  77. package/es/element-plus.mjs.map +1 -1
  78. package/es/make-installer.mjs +4 -0
  79. package/es/make-installer.mjs.map +1 -1
  80. package/es/version.d.ts +1 -1
  81. package/es/version.mjs +1 -1
  82. package/es/version.mjs.map +1 -1
  83. package/lib/components/avatar/index.d.ts +1 -1
  84. package/lib/components/avatar/index.js.map +1 -1
  85. package/lib/components/avatar/src/avatar.d.ts +18 -102
  86. package/lib/components/avatar/src/avatar.js +1 -1
  87. package/lib/components/avatar/src/avatar.js.map +1 -1
  88. package/lib/components/button/index.d.ts +1 -1
  89. package/lib/components/button/index.js.map +1 -1
  90. package/lib/components/button/src/button.d.ts +35 -180
  91. package/lib/components/button/src/button.js +1 -1
  92. package/lib/components/button/src/button.js.map +1 -1
  93. package/lib/components/carNumber/src/carNumber.d.ts +58 -194
  94. package/lib/components/contextMenu/src/contextMenu.js +1 -1
  95. package/lib/components/contextMenu/src/contextMenu.js.map +1 -1
  96. package/lib/components/dialog/src/dialog.d.ts +45 -297
  97. package/lib/components/drawer/src/drawer.d.ts +72 -450
  98. package/lib/components/form/src/form.d.ts +28 -133
  99. package/lib/components/form/src/formItem.d.ts +32 -137
  100. package/lib/components/image/src/image.d.ts +43 -253
  101. package/lib/components/select/src/select.d.ts +25 -81
  102. package/lib/components/select/src/select.js +1 -1
  103. package/lib/components/select/src/select.js.map +1 -1
  104. package/lib/components/selectPage/src/selectPage.d.ts +19 -61
  105. package/lib/components/selectV2/src/selectV2.d.ts +25 -81
  106. package/lib/components/selectV2/src/selectV2.js +1 -1
  107. package/lib/components/selectV2/src/selectV2.js.map +1 -1
  108. package/lib/components/table/src/table.d.ts +5 -12
  109. package/lib/components/table/src/table.js +1 -1
  110. package/lib/components/table/src/table.js.map +1 -1
  111. package/lib/components/table/src/table.state.d.ts +1 -1
  112. package/lib/components/table/src/table.type.d.ts +4 -1
  113. package/lib/components/table/src/table.type.js.map +1 -1
  114. package/lib/components/table/src/tableColumn.d.ts +1 -1
  115. package/lib/components/table/src/tableColumn.js +1 -1
  116. package/lib/components/table/src/tableColumn.js.map +1 -1
  117. package/lib/components/table/src/tableSearchForm.d.ts +6 -4
  118. package/lib/components/table/src/tableSearchForm.js +1 -1
  119. package/lib/components/table/src/tableSearchForm.js.map +1 -1
  120. package/lib/components/table/src/useTable.js +1 -1
  121. package/lib/components/table/src/useTable.js.map +1 -1
  122. package/lib/components/tree/src/tree.d.ts +23 -653
  123. package/lib/components/tree/src/tree.js +1 -1
  124. package/lib/components/tree/src/tree.js.map +1 -1
  125. package/lib/components/tree/src/tree.type.d.ts +1 -1
  126. package/lib/components/treeSelect/src/treeSelect.d.ts +20 -62
  127. package/lib/components/treeSelect/src/treeSelect.js +1 -1
  128. package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
  129. package/lib/components/upload/src/upload.d.ts +298 -460
  130. package/lib/components/upload/src/useUpload.js +1 -1
  131. package/lib/components/upload/src/useUpload.js.map +1 -1
  132. package/lib/components/uploadImage/src/uploadImage.d.ts +295 -394
  133. package/lib/components/uploadImage/src/uploadImage.js +1 -1
  134. package/lib/components/uploadImage/src/uploadImage.js.map +1 -1
  135. package/lib/components/uploadImages/src/uploadImages.d.ts +300 -420
  136. package/lib/components/uploadImages/src/uploadImages.js +1 -1
  137. package/lib/components/uploadImages/src/uploadImages.js.map +1 -1
  138. package/lib/constants/regex.js +1 -1
  139. package/lib/constants/regex.js.map +1 -1
  140. package/lib/directive.d.ts +1 -1
  141. package/lib/directives/click-copy/index.d.ts +1 -1
  142. package/lib/directives/click-debounce/index.d.ts +1 -1
  143. package/lib/directives/click-draggable/index.d.ts +1 -1
  144. package/lib/directives/click-icon-copy/index.d.ts +1 -1
  145. package/lib/directives/click-longpress/index.d.ts +1 -1
  146. package/lib/directives/click-throttle/index.d.ts +1 -1
  147. package/lib/element-plus.js +1 -1
  148. package/lib/element-plus.js.map +1 -1
  149. package/lib/make-installer.js +1 -1
  150. package/lib/make-installer.js.map +1 -1
  151. package/lib/version.d.ts +1 -1
  152. package/lib/version.js +1 -1
  153. package/lib/version.js.map +1 -1
  154. package/package.json +8 -8
  155. package/styles/components/contextMenu.scss +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"treeSelect.mjs","sources":["../../../../../packages/components/treeSelect/src/treeSelect.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElTreeSelect } from \"element-plus\";\nimport { type SelectComponentProps, SelectProps } from \"@fast-element-plus/components/select/src/select\";\nimport { treeProps } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport { addUnit, consoleError, definePropType, makeSlots, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isEqual, isFunction, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport type { ElSelectorOutput } from \"@fast-element-plus/components/select\";\nimport type { FilterValue, NodeDropType, TreeKey, TreeNodeData } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\n\nexport const faTreeSelectProps = {\n\t...SelectProps,\n\t...treeProps,\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/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 */\n\texpandOnClickNode: Boolean,\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/**\n\t * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签\n\t * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data\n\t */\n\tcacheData: {\n\t\ttype: Array,\n\t\tdefault: (): [] => [],\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | (string | number | boolean | object)[]>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[]>([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 懒加载远程数据,默认 true。当下拉框第一次显示的时候才会加载远程数据*/\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 默认选中。不能和懒加载一起使用 */\n\tdefaultSelected: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\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 下拉框数据 */\n\tdata: {\n\t\ttype: definePropType<ElSelectorOutput[] | any[]>(Array),\n\t\tdefault: (): ElSelectorOutput[] | any[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElSelectorOutput[] | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faTreeSelectEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | (string | number | boolean | object)[]): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[]): boolean => isString(value) || isArray(value) || isNull(value),\n\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[] | any[]): boolean => isArray(data),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean =>\n\t\t(isObject(data) || isArray(data) || isNull(data)) &&\n\t\t(isString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value)),\n\t/** @description 下拉框出现/隐藏时触发 */\n\tvisibleChange: (visible: boolean): boolean => isBoolean(visible),\n\t/** @description 多选模式下移除tag时触发 */\n\tremoveTag: (tagValue: any): boolean => isString(tagValue) || isNumber(tagValue) || isBoolean(tagValue) || isObject(tagValue) || isArray(tagValue),\n\t/** @description 可清空的单选模式下用户点击清空按钮时触发 */\n\tclear: (): boolean => true,\n\t/** @description 当 input 失去焦点时触发 */\n\tblur: (event: FocusEvent): boolean => event instanceof FocusEvent,\n\t/** @description 当 input 获得焦点时触发 */\n\tfocus: (event: FocusEvent): boolean => event instanceof FocusEvent,\n\n\t/** @description 当节点被点击的时候触发 */\n\tnodeClick: (data: ElSelectorOutput, node?: any, instance?: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 当某一节点被鼠标右键点击时会触发该事件 */\n\tnodeContextmenu: (event: Event, data: ElSelectorOutput, node?: any, instance?: ComponentInternalInstance): boolean =>\n\t\tevent instanceof Event && isObject(data) && isObject(node) && isObject(instance),\n\t/** @description 当复选框被点击的时候触发 */\n\tcheckChange: (data: ElSelectorOutput, checked: boolean, indeterminate: boolean): boolean =>\n\t\tisObject(data) && isBoolean(checked) && isBoolean(indeterminate),\n\t/** @description 点击节点复选框之后触发 */\n\tcheck: (\n\t\tdata: ElSelectorOutput,\n\t\tnode: {\n\t\t\tcheckedNodes: ElSelectorOutput[];\n\t\t\tcheckedKeys: TreeKey[];\n\t\t\thalfCheckedNodes: ElSelectorOutput[];\n\t\t\thalfCheckedKeys: TreeKey[];\n\t\t}\n\t): boolean => isObject(data) && isObject(node),\n\t/** @description 当前选中节点变化时触发的事件 */\n\tcurrentChange: (data: ElSelectorOutput, node: any): boolean => isObject(data) && isObject(node),\n\t/** @description 节点被展开时触发的事件 */\n\tnodeExpand: (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 节点被关闭时触发的事件 */\n\tnodeCollapse: (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 节点开始拖拽时触发的事件 */\n\tnodeDragStart: (node: any, event: DragEvent): boolean => isObject(node) && event instanceof DragEvent,\n\t/** @description 拖拽进入其他节点时触发的事件 */\n\tnodeDragEnter: (node: any, enterNode: any, event: DragEvent): boolean => isObject(node) && isObject(enterNode) && event instanceof DragEvent,\n\t/** @description 拖拽离开某个节点时触发的事件 */\n\tnodeDragLeave: (node: any, leaveNode: any, event: DragEvent): boolean => isObject(node) && isObject(leaveNode) && event instanceof DragEvent,\n\t/** @description 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) */\n\tnodeDragOver: (node: any, dropNode: any, event: DragEvent): boolean => isObject(node) && isObject(dropNode) && event instanceof DragEvent,\n\t/** @description 拖拽结束时(可能未成功)触发的事件 */\n\tnodeDragEnd: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent): boolean =>\n\t\tisObject(node) && isObject(dropNode) && isString(dropType) && event instanceof DragEvent,\n\t/** @description 拖拽成功完成时触发的事件 */\n\tnodeDrop: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent): boolean =>\n\t\tisObject(node) && isObject(dropNode) && isString(dropType) && event instanceof DragEvent,\n};\n\ntype FaTreeSelectSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: any; data: ElSelectorOutput };\n\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: \"FaTreeSelect\",\n\tprops: faTreeSelectProps,\n\temits: faTreeSelectEmits,\n\tslots: makeSlots<FaTreeSelectSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | (string | number | boolean | object)[]>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: props.data?.length > 0 ? false : true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t});\n\n\t\tconst treeSelectRef = ref<InstanceType<typeof ElTreeSelect>>();\n\n\t\tconst handleData = (data: ElSelectorOutput[] | any[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t?.map((m) => ({\n\t\t\t\t\t...m,\n\t\t\t\t\tvalue: m[props.nodeKey],\n\t\t\t\t\tlabel: isFunction(props.props.label) ? props.props.label(m) : m[props.props.label ?? \"label\"],\n\t\t\t\t\thide: isFunction(props.props.hide) ? props.props.hide(m) : m[props.props.hide ?? \"hide\"],\n\t\t\t\t\tdisabled: isFunction(props.props.disabled) ? props.props.disabled(m) : m[props.props.disabled ?? \"disabled\"],\n\t\t\t\t\tchildren: isFunction(props.props.children)\n\t\t\t\t\t\t? handleData(props.props.children(m))\n\t\t\t\t\t\t: handleData(m[props.props.children ?? \"children\"]),\n\t\t\t\t}))\n\t\t\t\t.filter((f) => !f.hide);\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = props.initParam ?? {};\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\t// 这里不允许回显了\n\t\t\t\t\tstate.echo = false;\n\t\t\t\t\tstate.selectorData = handleData(resData);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaTreeSelect\", error);\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstate.selectorData = handleData(props.data);\n\t\t\t}\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: any): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels = [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst result = labels.some((label) => label.indexOf(value) !== -1);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleChange = (value?: string | number | boolean | object | (string | number | boolean | object)[], data?: ElSelectorOutput): void => {\n\t\t\t// 判断是否为多选\n\t\t\tif (props.multiple) {\n\t\t\t\t// value 必然是数组\n\t\t\t\tconst valueArr = value as (string | number | boolean | object)[];\n\t\t\t\tif (valueArr?.length === 0) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\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 = state.selectorData.filter((f) => valueArr.includes(f.value));\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = dataList.map((m) => m.label);\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t} else {\n\t\t\t\t// value 必然不是数组\n\t\t\t\tif (isNil(value)) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdata ??= state.selectorData.find((f) => f.value === value);\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = data.label;\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", data, value);\n\t\t\t}\n\t\t};\n\n\t\tconst handleClear = (): void => {\n\t\t\tstate.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"clear\");\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): void => {\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否开启了 checkStrictly\n\t\t\tif (props.checkStrictly) {\n\t\t\t\thandleChange(data.value, data);\n\t\t\t} else {\n\t\t\t\tif (node.isLeaf) {\n\t\t\t\t\thandleChange(data.value, data);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"nodeClick\", data, node, instance);\n\t\t};\n\n\t\t/**\n\t\t * 下拉框出现/隐藏时触发\n\t\t */\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\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\t// 懒加载\n\t\t\t\t\tprops.lazy && (await 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\temit(\"visibleChange\", visible);\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 && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\t// 判断是否为数组\n\t\t\t\t\t\tif (!isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 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 && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 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.selectorData = 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\tvalue: item,\n\t\t\t\t\t\t\t\tlabel: hasLabel ? props.label[index] : undefined,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 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 && isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 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.selectorData = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\t\tlabel: props.label,\n\t\t\t\t\t\t\t},\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\tonMounted(async () => {\n\t\t\tif (props.defaultSelected) {\n\t\t\t\tawait loadData();\n\t\t\t\tif (state.selectorData.length > 0) {\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\thandleChange([state.selectorData[0].value]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleChange(state.selectorData[0].value, state.selectorData[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否为本地数据\n\t\t\telse if (!props.requestApi && props.data?.length > 0) {\n\t\t\t\tstate.debut = false;\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\t// 判断是否非默认选中,且未启用懒加载\n\t\t\telse if (!props.lazy) {\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elTreeSelectProps = useProps(props, { ...SelectProps, ...treeProps }, [\n\t\t\t\"modelValue\",\n\t\t\t\"popperClass\",\n\t\t\t\"loading\",\n\t\t\t\"expandOnClickNode\",\n\t\t\t\"filterNodeMethod\",\n\t\t]);\n\n\t\tuseRender(() => (\n\t\t\t<ElTreeSelect\n\t\t\t\t{...elTreeSelectProps.value}\n\t\t\t\tref={treeSelectRef}\n\t\t\t\tclass=\"fa-tree-select\"\n\t\t\t\tpopperClass={`fa-tree-select-dropdown ${props.popperClass}`}\n\t\t\t\tstyle={{ width: addUnit(props.width) }}\n\t\t\t\tvModel={state.value}\n\t\t\t\tloading={state.loading}\n\t\t\t\tdata={state.selectorData}\n\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\tonNodeClick={handleNodeClick}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t\tonRemoveTag={(tagValue: any) => emit(\"removeTag\", tagValue)}\n\t\t\t\tonBlur={(event: FocusEvent) => emit(\"blur\", event)}\n\t\t\t\tonFocus={(event: FocusEvent) => emit(\"focus\", event)}\n\t\t\t\tonNodeContextmenu={(event: Event, data: ElSelectorOutput, node?: any, instance?: ComponentInternalInstance) =>\n\t\t\t\t\temit(\"nodeContextmenu\", event, data, node, instance)\n\t\t\t\t}\n\t\t\t\tonCheckChange={(data: ElSelectorOutput, checked: boolean, indeterminate: boolean) =>\n\t\t\t\t\temit(\"checkChange\", data, checked, indeterminate)\n\t\t\t\t}\n\t\t\t\tonCheck={(\n\t\t\t\t\tdata: ElSelectorOutput,\n\t\t\t\t\tnode: {\n\t\t\t\t\t\tcheckedNodes: ElSelectorOutput[];\n\t\t\t\t\t\tcheckedKeys: TreeKey[];\n\t\t\t\t\t\thalfCheckedNodes: ElSelectorOutput[];\n\t\t\t\t\t\thalfCheckedKeys: TreeKey[];\n\t\t\t\t\t}\n\t\t\t\t) => emit(\"check\", data, node)}\n\t\t\t\tonCurrentChange={(data: ElSelectorOutput, node: any) => emit(\"currentChange\", data, node)}\n\t\t\t\tonNodeExpand={(data: ElSelectorOutput, node: any, instance: ComponentInternalInstance) => emit(\"nodeExpand\", data, node, instance)}\n\t\t\t\tonNodeCollapse={(data: ElSelectorOutput, node: any, instance: ComponentInternalInstance) =>\n\t\t\t\t\temit(\"nodeCollapse\", data, node, instance)\n\t\t\t\t}\n\t\t\t\tonNodeDragStart={(node: any, event: DragEvent) => emit(\"nodeDragStart\", node, event)}\n\t\t\t\tonNodeDragEnter={(node: any, enterNode: any, event: DragEvent) => emit(\"nodeDragEnter\", node, enterNode, event)}\n\t\t\t\tonNodeDragLeave={(node: any, leaveNode: any, event: DragEvent) => emit(\"nodeDragLeave\", node, leaveNode, event)}\n\t\t\t\tonNodeDragOver={(node: any, dropNode: any, event: DragEvent) => emit(\"nodeDragOver\", node, dropNode, event)}\n\t\t\t\tonNodeDragEnd={(node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) =>\n\t\t\t\t\temit(\"nodeDragEnd\", node, dropNode, dropType, event)\n\t\t\t\t}\n\t\t\t\tonNodeDrop={(node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => emit(\"nodeDrop\", node, dropNode, dropType, event)}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\t...(slots.default && {\n\t\t\t\t\t\tdefault: ({ node, data }: { node: any; data: ElSelectorOutput }): VNode[] => slots.default({ node, data }),\n\t\t\t\t\t}),\n\t\t\t\t\t...(slots.header && { header: (): VNode[] => slots.header() }),\n\t\t\t\t\t...(slots.footer && { footer: (): VNode[] => slots.footer() }),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix() }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag() }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.label && {\n\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\tslots.label({ label, value }),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElTreeSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => treeSelectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => treeSelectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => treeSelectRef.value?.selectedLabel),\n\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeSelectRef.value?.filter),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeSelectRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeSelectRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeSelectRef.value?.setCheckedNodes),\n\t\t\t/** @description 若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeSelectRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeSelectRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeSelectRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeSelectRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeSelectRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeSelectRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeSelectRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeSelectRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeSelectRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeSelectRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeSelectRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeSelectRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeSelectRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeSelectRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: string | number | boolean | object | (string | number | boolean | object)[]) => handleChange(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleChange(null),\n\t\t});\n\t},\n});\n"],"names":["faTreeSelectProps","SelectProps","treeProps","loadingText","type","String","default","noMatchText","noDataText","collapseTags","Boolean","collapseTagsTooltip","nodeKey","defaultExpandAll","checkOnClickNode","highlightCurrent","expandOnClickNode","collapseOnClickNode","cacheData","Array","modelValue","definePropType","Number","Object","undefined","label","width","moreDetail","lazy","defaultSelected","props","hide","disabled","children","data","requestApi","Function","initParam","faTreeSelectEmits","value","isString","isNumber","isBoolean","isObject","isArray","isNull","dataChangeCallBack","change","visibleChange","visible","removeTag","tagValue","clear","blur","event","FocusEvent","focus","nodeClick","node","instance","nodeContextmenu","Event","checkChange","checked","indeterminate","check","currentChange","nodeExpand","nodeCollapse","nodeDragStart","DragEvent","nodeDragEnter","enterNode","nodeDragLeave","leaveNode","nodeDragOver","dropNode","nodeDragEnd","dropType","nodeDrop","name","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","passive","state","reactive","withDefineType","loading","selectorData","debut","echo","length","nextRefresh","treeSelectRef","ref","handleData","map","m","isFunction","filter","f","loadData","params","resData","error","consoleError","handleFilterNode","child","parentNode","parent","labels","level","result","some","indexOf","filterNodeMethod","handleChange","multiple","valueArr","dataList","includes","isNil","find","handleClear","handleNodeClick","expanded","expand","collapse","checkStrictly","isLeaf","handleVisibleChange","watch","newValue","hasLabel","slice","multipleLimit","item","index","immediate","onMounted","oldValue","isEqual","deep","elTreeSelectProps","useProps","useRender","_createVNode","ElTreeSelect","_mergeProps","popperClass","addUnit","$event","onNodeContextmenu","onCheckChange","onCheck","onCurrentChange","onNodeExpand","onNodeCollapse","onNodeDragStart","onNodeDragEnter","onNodeDragLeave","onNodeDragOver","onNodeDragEnd","onNodeDrop","header","footer","prefix","empty","tag","useExpose","computed","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter","refresh","setSelection","clearSelection"],"mappings":"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"}
1
+ {"version":3,"file":"treeSelect.mjs","sources":["../../../../../packages/components/treeSelect/src/treeSelect.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, reactive, ref, watch } from \"vue\";\nimport { ElTreeSelect } from \"element-plus\";\nimport { type SelectComponentProps, SelectProps } from \"@fast-element-plus/components/select/src/select\";\nimport { treeProps } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport { addUnit, consoleError, definePropType, makeSlots, useExpose, useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isArray, isBoolean, isEqual, isFunction, isNil, isNull, isNumber, isObject, isString } from \"lodash-unified\";\nimport type { ElSelectorOutput } from \"@fast-element-plus/components/select\";\nimport type { FilterValue, NodeDropType, TreeKey, TreeNodeData } from \"@fast-element-plus/components/tree/src/tree.props\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\n\nexport const faTreeSelectProps = {\n\t...SelectProps,\n\t...treeProps,\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/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 */\n\texpandOnClickNode: Boolean,\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/**\n\t * 懒加载节点的缓存数据,结构与数据相同,用于获取未加载数据的标签\n\t * @description The cached data of the lazy node, the structure is the same as the data, used to get the label of the unloaded data\n\t */\n\tcacheData: {\n\t\ttype: Array,\n\t\tdefault: (): [] => [],\n\t},\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | (string | number | boolean | object)[]>([String, Number, Boolean, Object, Array]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: definePropType<string | string[]>([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 懒加载远程数据,默认 true。当下拉框第一次显示的时候才会加载远程数据*/\n\tlazy: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 默认选中。不能和懒加载一起使用 */\n\tdefaultSelected: Boolean,\n\t/** @description 配置选项 */\n\tprops: {\n\t\ttype: definePropType<SelectComponentProps>(Object),\n\t\tdefault: (): Partial<SelectComponentProps> => ({\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 下拉框数据 */\n\tdata: {\n\t\ttype: definePropType<ElSelectorOutput[] | any[]>(Array),\n\t\tdefault: (): ElSelectorOutput[] | any[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: any) => Promise<ElSelectorOutput[] | any[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | any>([String, Number, Object]),\n};\n\nexport const faTreeSelectEmits = {\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | (string | number | boolean | object)[]): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string | string[]): boolean => isString(value) || isArray(value) || isNull(value),\n\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElSelectorOutput[] | any[]): boolean => isArray(data),\n\t/** @description 改变 */\n\tchange: (\n\t\tdata: ElSelectorOutput | ElSelectorOutput[] | any | any[],\n\t\tvalue?: string | number | boolean | object | (string | number | boolean | object)[]\n\t): boolean =>\n\t\t(isObject(data) || isArray(data) || isNull(data)) &&\n\t\t(isString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNull(value)),\n\t/** @description 下拉框出现/隐藏时触发 */\n\tvisibleChange: (visible: boolean): boolean => isBoolean(visible),\n\t/** @description 多选模式下移除tag时触发 */\n\tremoveTag: (tagValue: any): boolean => isString(tagValue) || isNumber(tagValue) || isBoolean(tagValue) || isObject(tagValue) || isArray(tagValue),\n\t/** @description 可清空的单选模式下用户点击清空按钮时触发 */\n\tclear: (): boolean => true,\n\t/** @description 当 input 失去焦点时触发 */\n\tblur: (event: FocusEvent): boolean => event instanceof FocusEvent,\n\t/** @description 当 input 获得焦点时触发 */\n\tfocus: (event: FocusEvent): boolean => event instanceof FocusEvent,\n\n\t/** @description 当节点被点击的时候触发 */\n\tnodeClick: (data: ElSelectorOutput, node?: any, instance?: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 当某一节点被鼠标右键点击时会触发该事件 */\n\tnodeContextmenu: (event: Event, data: ElSelectorOutput, node?: any, instance?: ComponentInternalInstance): boolean =>\n\t\tevent instanceof Event && isObject(data) && isObject(node) && isObject(instance),\n\t/** @description 当复选框被点击的时候触发 */\n\tcheckChange: (data: ElSelectorOutput, checked: boolean, indeterminate: boolean): boolean =>\n\t\tisObject(data) && isBoolean(checked) && isBoolean(indeterminate),\n\t/** @description 点击节点复选框之后触发 */\n\tcheck: (\n\t\tdata: ElSelectorOutput,\n\t\tnode: {\n\t\t\tcheckedNodes: ElSelectorOutput[];\n\t\t\tcheckedKeys: TreeKey[];\n\t\t\thalfCheckedNodes: ElSelectorOutput[];\n\t\t\thalfCheckedKeys: TreeKey[];\n\t\t}\n\t): boolean => isObject(data) && isObject(node),\n\t/** @description 当前选中节点变化时触发的事件 */\n\tcurrentChange: (data: ElSelectorOutput, node: any): boolean => isObject(data) && isObject(node),\n\t/** @description 节点被展开时触发的事件 */\n\tnodeExpand: (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 节点被关闭时触发的事件 */\n\tnodeCollapse: (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance): boolean =>\n\t\tisObject(data) && isObject(node) && isObject(instance),\n\t/** @description 节点开始拖拽时触发的事件 */\n\tnodeDragStart: (node: any, event: DragEvent): boolean => isObject(node) && event instanceof DragEvent,\n\t/** @description 拖拽进入其他节点时触发的事件 */\n\tnodeDragEnter: (node: any, enterNode: any, event: DragEvent): boolean => isObject(node) && isObject(enterNode) && event instanceof DragEvent,\n\t/** @description 拖拽离开某个节点时触发的事件 */\n\tnodeDragLeave: (node: any, leaveNode: any, event: DragEvent): boolean => isObject(node) && isObject(leaveNode) && event instanceof DragEvent,\n\t/** @description 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) */\n\tnodeDragOver: (node: any, dropNode: any, event: DragEvent): boolean => isObject(node) && isObject(dropNode) && event instanceof DragEvent,\n\t/** @description 拖拽结束时(可能未成功)触发的事件 */\n\tnodeDragEnd: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent): boolean =>\n\t\tisObject(node) && isObject(dropNode) && isString(dropType) && event instanceof DragEvent,\n\t/** @description 拖拽成功完成时触发的事件 */\n\tnodeDrop: (node: any, dropNode: any, dropType: NodeDropType, event: DragEvent): boolean =>\n\t\tisObject(node) && isObject(dropNode) && isString(dropType) && event instanceof DragEvent,\n};\n\ntype FaTreeSelectSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: any; data: ElSelectorOutput };\n\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: \"FaTreeSelect\",\n\tprops: faTreeSelectProps,\n\temits: faTreeSelectEmits,\n\tslots: makeSlots<FaTreeSelectSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | (string | number | boolean | object)[]>(),\n\t\t\tloading: false,\n\t\t\tselectorData: withDefineType<ElSelectorOutput[]>([]),\n\t\t\t/** 首次出现 */\n\t\t\tdebut: true,\n\t\t\t/** 回显 */\n\t\t\techo: props.data?.length > 0 ? false : true,\n\t\t\t/** 下次刷新 */\n\t\t\tnextRefresh: false,\n\t\t});\n\n\t\tconst treeSelectRef = ref<InstanceType<typeof ElTreeSelect>>();\n\n\t\tconst handleData = (data: ElSelectorOutput[] | any[]): ElSelectorOutput[] => {\n\t\t\treturn data\n\t\t\t\t?.map((m) => ({\n\t\t\t\t\t...m,\n\t\t\t\t\tvalue: m[props.nodeKey],\n\t\t\t\t\tlabel: isFunction(props.props.label) ? props.props.label(m) : m[props.props.label ?? \"label\"],\n\t\t\t\t\thide: isFunction(props.props.hide) ? props.props.hide(m) : m[props.props.hide ?? \"hide\"],\n\t\t\t\t\tdisabled: isFunction(props.props.disabled) ? props.props.disabled(m) : m[props.props.disabled ?? \"disabled\"],\n\t\t\t\t\tchildren: isFunction(props.props.children)\n\t\t\t\t\t\t? handleData(props.props.children(m))\n\t\t\t\t\t\t: handleData(m[props.props.children ?? \"children\"]),\n\t\t\t\t}))\n\t\t\t\t.filter((f) => !f.hide);\n\t\t};\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = props.initParam ?? {};\n\t\t\t\ttry {\n\t\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t\t// 这里不允许回显了\n\t\t\t\t\tstate.echo = false;\n\t\t\t\t\tstate.selectorData = handleData(resData);\n\t\t\t\t\temit(\"dataChangeCallBack\", state.selectorData);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsoleError(\"FaTreeSelect\", error);\n\t\t\t\t\tstate.selectorData = [];\n\t\t\t\t} finally {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 这里不允许回显了\n\t\t\t\tstate.echo = false;\n\t\t\t\tstate.selectorData = handleData(props.data);\n\t\t\t}\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: any): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels = [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst result = labels.some((label) => label.indexOf(value) !== -1);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleChange = (value?: string | number | boolean | object | (string | number | boolean | object)[], data?: ElSelectorOutput): void => {\n\t\t\t// 判断是否为多选\n\t\t\tif (props.multiple) {\n\t\t\t\t// value 必然是数组\n\t\t\t\tconst valueArr = value as (string | number | boolean | object)[];\n\t\t\t\tif (valueArr?.length === 0) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\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 = state.selectorData.filter((f) => valueArr.includes(f.value));\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = dataList.map((m) => m.label);\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", dataList, value);\n\t\t\t} else {\n\t\t\t\t// value 必然不是数组\n\t\t\t\tif (isNil(value)) {\n\t\t\t\t\tstate.value = null;\n\t\t\t\t\tselectedLabel.value = null;\n\t\t\t\t\temit(\"update:modelValue\", null);\n\t\t\t\t\temit(\"change\", null, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tdata ??= state.selectorData.find((f) => f.value === value);\n\t\t\t\tstate.value = value;\n\t\t\t\tselectedLabel.value = data.label;\n\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\temit(\"change\", data, value);\n\t\t\t}\n\t\t};\n\n\t\tconst handleClear = (): void => {\n\t\t\tstate.value = null;\n\t\t\tselectedLabel.value = null;\n\t\t\temit(\"clear\");\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElSelectorOutput, node: any, instance: ComponentInternalInstance, event: MouseEvent): void => {\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否开启了 checkStrictly\n\t\t\tif (props.checkStrictly) {\n\t\t\t\thandleChange(data.value, data);\n\t\t\t} else {\n\t\t\t\tif (node.isLeaf) {\n\t\t\t\t\thandleChange(data.value, data);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"nodeClick\", data, node, instance);\n\t\t};\n\n\t\t/**\n\t\t * 下拉框出现/隐藏时触发\n\t\t */\n\t\tconst handleVisibleChange = async (visible: boolean): Promise<void> => {\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\t// 懒加载\n\t\t\t\t\tprops.lazy && (await 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\temit(\"visibleChange\", visible);\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 && !isNil(newValue)) {\n\t\t\t\t\tconst hasLabel = !isNil(props.label);\n\t\t\t\t\t// 判断是否为多选\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\t// 判断是否为数组\n\t\t\t\t\t\tif (!isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 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 && !isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当启用 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.selectorData = 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\tvalue: item,\n\t\t\t\t\t\t\t\tlabel: hasLabel ? props.label[index] : undefined,\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (isArray(newValue)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 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 && isArray(props.label)) {\n\t\t\t\t\t\t\tconsoleError(\"FaTreeSelect\", \"当禁用 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.selectorData = [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t\t\t\tlabel: props.label,\n\t\t\t\t\t\t\t},\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\tonMounted(async () => {\n\t\t\tif (props.defaultSelected) {\n\t\t\t\tawait loadData();\n\t\t\t\tif (state.selectorData.length > 0) {\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\thandleChange([state.selectorData[0].value]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandleChange(state.selectorData[0].value, state.selectorData[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 判断是否为本地数据\n\t\t\telse if (!props.requestApi && props.data?.length > 0) {\n\t\t\t\tstate.debut = false;\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\t// 判断是否非默认选中,且未启用懒加载\n\t\t\telse if (!props.lazy) {\n\t\t\t\tawait loadData();\n\t\t\t}\n\t\t\twatch(\n\t\t\t\t() => props.initParam,\n\t\t\t\t(newValue, oldValue) => {\n\t\t\t\t\tif (!isEqual(newValue, oldValue)) {\n\t\t\t\t\t\tstate.nextRefresh = true;\n\t\t\t\t\t\tif (!isNil(state.value)) {\n\t\t\t\t\t\t\thandleChange();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\tasync () => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\tawait loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\tconst elTreeSelectProps = useProps(props, { ...SelectProps, ...treeProps }, [\n\t\t\t\"modelValue\",\n\t\t\t\"popperClass\",\n\t\t\t\"loading\",\n\t\t\t\"expandOnClickNode\",\n\t\t\t\"filterNodeMethod\",\n\t\t]);\n\n\t\tuseRender(() => (\n\t\t\t<ElTreeSelect\n\t\t\t\t{...elTreeSelectProps.value}\n\t\t\t\tref={treeSelectRef}\n\t\t\t\tclass=\"fa-tree-select\"\n\t\t\t\tpopperClass={`fa-tree-select-dropdown ${props.popperClass}`}\n\t\t\t\tstyle={{ width: addUnit(props.width) }}\n\t\t\t\tvModel={state.value}\n\t\t\t\tloading={state.loading}\n\t\t\t\tdata={state.selectorData}\n\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\tonNodeClick={handleNodeClick}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\t\tonRemoveTag={(tagValue: any) => emit(\"removeTag\", tagValue)}\n\t\t\t\tonBlur={(event: FocusEvent) => emit(\"blur\", event)}\n\t\t\t\tonFocus={(event: FocusEvent) => emit(\"focus\", event)}\n\t\t\t\tonNodeContextmenu={(event: Event, data: ElSelectorOutput, node?: any, instance?: ComponentInternalInstance) =>\n\t\t\t\t\temit(\"nodeContextmenu\", event, data, node, instance)\n\t\t\t\t}\n\t\t\t\tonCheckChange={(data: ElSelectorOutput, checked: boolean, indeterminate: boolean) =>\n\t\t\t\t\temit(\"checkChange\", data, checked, indeterminate)\n\t\t\t\t}\n\t\t\t\tonCheck={(\n\t\t\t\t\tdata: ElSelectorOutput,\n\t\t\t\t\tnode: {\n\t\t\t\t\t\tcheckedNodes: ElSelectorOutput[];\n\t\t\t\t\t\tcheckedKeys: TreeKey[];\n\t\t\t\t\t\thalfCheckedNodes: ElSelectorOutput[];\n\t\t\t\t\t\thalfCheckedKeys: TreeKey[];\n\t\t\t\t\t}\n\t\t\t\t) => emit(\"check\", data, node)}\n\t\t\t\tonCurrentChange={(data: ElSelectorOutput, node: any) => emit(\"currentChange\", data, node)}\n\t\t\t\tonNodeExpand={(data: ElSelectorOutput, node: any, instance: ComponentInternalInstance) => emit(\"nodeExpand\", data, node, instance)}\n\t\t\t\tonNodeCollapse={(data: ElSelectorOutput, node: any, instance: ComponentInternalInstance) =>\n\t\t\t\t\temit(\"nodeCollapse\", data, node, instance)\n\t\t\t\t}\n\t\t\t\tonNodeDragStart={(node: any, event: DragEvent) => emit(\"nodeDragStart\", node, event)}\n\t\t\t\tonNodeDragEnter={(node: any, enterNode: any, event: DragEvent) => emit(\"nodeDragEnter\", node, enterNode, event)}\n\t\t\t\tonNodeDragLeave={(node: any, leaveNode: any, event: DragEvent) => emit(\"nodeDragLeave\", node, leaveNode, event)}\n\t\t\t\tonNodeDragOver={(node: any, dropNode: any, event: DragEvent) => emit(\"nodeDragOver\", node, dropNode, event)}\n\t\t\t\tonNodeDragEnd={(node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) =>\n\t\t\t\t\temit(\"nodeDragEnd\", node, dropNode, dropType, event)\n\t\t\t\t}\n\t\t\t\tonNodeDrop={(node: any, dropNode: any, dropType: NodeDropType, event: DragEvent) => emit(\"nodeDrop\", node, dropNode, dropType, event)}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\t...(slots.default && {\n\t\t\t\t\t\tdefault: ({ node, data }: { node: any; data: ElSelectorOutput }): VNode[] => slots.default({ node, data }),\n\t\t\t\t\t}),\n\t\t\t\t\t...(slots.header && { header: (): VNode[] => slots.header() }),\n\t\t\t\t\t...(slots.footer && { footer: (): VNode[] => slots.footer() }),\n\t\t\t\t\t...(slots.prefix && { prefix: (): VNode[] => slots.prefix() }),\n\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty() }),\n\t\t\t\t\t...(slots.tag && { tag: (): VNode[] => slots.tag() }),\n\t\t\t\t\t...(slots.loading && { loading: (): VNode[] => slots.loading() }),\n\t\t\t\t\t...(slots.label && {\n\t\t\t\t\t\tlabel: ({ label, value }: { label: string; value: string | number | boolean | object }): VNode[] =>\n\t\t\t\t\t\t\tslots.label({ label, value }),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElTreeSelect>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 使选择器的输入框获取焦点 */\n\t\t\tfocus: computed(() => treeSelectRef.value?.focus),\n\t\t\t/** @description 使选择器的输入框失去焦点,并隐藏下拉框 */\n\t\t\tblur: computed(() => treeSelectRef.value?.blur),\n\t\t\t/** @description 获取当前选中的标签 */\n\t\t\tselectedLabel: computed(() => treeSelectRef.value?.selectedLabel),\n\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeSelectRef.value?.filter),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeSelectRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeSelectRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeSelectRef.value?.setCheckedNodes),\n\t\t\t/** @description 若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeSelectRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeSelectRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeSelectRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeSelectRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeSelectRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeSelectRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeSelectRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeSelectRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeSelectRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeSelectRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeSelectRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeSelectRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeSelectRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeSelectRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t\t/** @description 设置选择 */\n\t\t\tsetSelection: (value: string | number | boolean | object | (string | number | boolean | object)[]) => handleChange(value),\n\t\t\t/** @description 清除选择 */\n\t\t\tclearSelection: () => handleChange(null),\n\t\t});\n\t},\n});\n"],"names":["faTreeSelectProps","SelectProps","treeProps","loadingText","type","String","default","noMatchText","noDataText","collapseTags","Boolean","collapseTagsTooltip","nodeKey","defaultExpandAll","checkOnClickNode","highlightCurrent","expandOnClickNode","collapseOnClickNode","cacheData","Array","modelValue","definePropType","Number","Object","undefined","label","width","moreDetail","lazy","defaultSelected","props","hide","disabled","children","data","requestApi","Function","initParam","faTreeSelectEmits","value","isString","isNumber","isBoolean","isObject","isArray","isNull","dataChangeCallBack","change","visibleChange","visible","removeTag","tagValue","clear","blur","event","FocusEvent","focus","nodeClick","node","instance","nodeContextmenu","Event","checkChange","checked","indeterminate","check","currentChange","nodeExpand","nodeCollapse","nodeDragStart","DragEvent","nodeDragEnter","enterNode","nodeDragLeave","leaveNode","nodeDragOver","dropNode","nodeDragEnd","dropType","nodeDrop","name","emits","slots","makeSlots","setup","attrs","emit","expose","selectedLabel","useVModel","passive","state","reactive","withDefineType","loading","selectorData","debut","echo","length","nextRefresh","treeSelectRef","ref","handleData","map","m","isFunction","filter","f","loadData","params","resData","error","consoleError","handleFilterNode","child","parentNode","parent","labels","level","result","some","indexOf","filterNodeMethod","handleChange","multiple","valueArr","dataList","includes","isNil","find","handleClear","handleNodeClick","expanded","expand","collapse","checkStrictly","isLeaf","handleVisibleChange","watch","newValue","hasLabel","slice","multipleLimit","item","index","immediate","onMounted","oldValue","isEqual","deep","elTreeSelectProps","useProps","useRender","_createVNode","ElTreeSelect","_mergeProps","popperClass","addUnit","$event","onNodeContextmenu","onCheckChange","onCheck","onCurrentChange","onNodeExpand","onNodeCollapse","onNodeDragStart","onNodeDragEnter","onNodeDragLeave","onNodeDragOver","onNodeDragEnd","onNodeDrop","header","footer","prefix","empty","tag","useExpose","computed","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter","refresh","setSelection","clearSelection"],"mappings":"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"}