@koi-design/uxd-ui 14.0.7 → 14.0.8

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 (188) hide show
  1. package/es/components/Cascader/Cascader.d.ts +3 -3
  2. package/es/components/Cascader/Cascader.mjs +2 -4
  3. package/es/components/Cascader/Cascader.mjs.map +1 -1
  4. package/es/components/Cascader/Cascader.type.d.ts +1 -1
  5. package/es/components/Cascader/Cascader.type.mjs +1 -1
  6. package/es/components/Cascader/Cascader.type.mjs.map +1 -1
  7. package/es/components/Cascader/CascaderMenu.mjs +4 -4
  8. package/es/components/Cascader/CascaderMenu.mjs.map +1 -1
  9. package/es/components/Cascader/index.d.ts +6 -6
  10. package/es/components/Checkbox/Checkbox.mjs +1 -0
  11. package/es/components/Checkbox/Checkbox.mjs.map +1 -1
  12. package/es/components/Checkbox/Checkbox.type.d.ts +1 -0
  13. package/es/components/Checkbox/Checkbox.type.mjs +2 -1
  14. package/es/components/Checkbox/Checkbox.type.mjs.map +1 -1
  15. package/es/components/Checkbox/Checkbox.vue.d.ts +2 -0
  16. package/es/components/Checkbox/CheckboxGroup.vue.d.ts +2 -0
  17. package/es/components/Checkbox/index.d.ts +7 -0
  18. package/es/components/Progress/Circle.mjs +1 -3
  19. package/es/components/Progress/Circle.mjs.map +1 -1
  20. package/es/components/Progress/Progress.mjs +2 -3
  21. package/es/components/Progress/Progress.mjs.map +1 -1
  22. package/es/components/Progress/Progress.type.d.ts +1 -6
  23. package/es/components/Progress/Progress.type.mjs +0 -6
  24. package/es/components/Progress/Progress.type.mjs.map +1 -1
  25. package/es/components/Progress/Progress.vue.d.ts +0 -16
  26. package/es/components/Progress/index.d.ts +0 -33
  27. package/es/components/Select/RefSelect.vue.d.ts +7 -0
  28. package/es/components/Table/BaseTable.vue.d.ts +7 -0
  29. package/es/components/Table/BodyTable.vue.d.ts +7 -0
  30. package/es/components/Table/HeadTable.vue.d.ts +7 -0
  31. package/es/components/Table/Table.vue.d.ts +14 -0
  32. package/es/components/Table/TableBox.vue.d.ts +14 -0
  33. package/es/components/Table/tableUnits/FilterDropdown.vue.d.ts +7 -0
  34. package/es/components/Table/tableUnits/SelectionBox.vue.d.ts +7 -0
  35. package/es/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +7 -0
  36. package/es/components/Table/tableUnits/TableHeader.vue.d.ts +7 -0
  37. package/es/components/Table/tableUnits/TableHeaderRow.vue.d.ts +7 -0
  38. package/es/components/Transfer/Operation.mjs +6 -4
  39. package/es/components/Transfer/Operation.mjs.map +1 -1
  40. package/es/components/Transfer/Transfer.mjs +2 -4
  41. package/es/components/Transfer/Transfer.mjs.map +1 -1
  42. package/es/components/Transfer/Transfer.type.d.ts +0 -5
  43. package/es/components/Transfer/Transfer.type.mjs +1 -8
  44. package/es/components/Transfer/Transfer.type.mjs.map +1 -1
  45. package/es/components/Transfer/Transfer.vue.d.ts +42 -11
  46. package/es/components/Transfer/TransferList.mjs +14 -10
  47. package/es/components/Transfer/TransferList.mjs.map +1 -1
  48. package/es/components/Transfer/TransferList.vue.d.ts +14 -0
  49. package/es/components/Transfer/TransferListItem.vue.d.ts +7 -0
  50. package/es/components/Transfer/index.d.ts +112 -18
  51. package/es/components/Tree/SubTree.vue.d.ts +7 -0
  52. package/es/components/Tree/Tree.vue.d.ts +7 -0
  53. package/es/components/Tree/TreeNode.vue.d.ts +7 -0
  54. package/es/components/Tree/index.d.ts +14 -0
  55. package/es/components/TreeSelect/TreeSelect.vue.d.ts +14 -0
  56. package/es/components/TreeSelect/index.d.ts +28 -0
  57. package/es/components/Upload/UploadList.vue.d.ts +0 -33
  58. package/lib/components/Cascader/Cascader.d.ts +3 -3
  59. package/lib/components/Cascader/Cascader.js +2 -4
  60. package/lib/components/Cascader/Cascader.js.map +1 -1
  61. package/lib/components/Cascader/Cascader.type.d.ts +1 -1
  62. package/lib/components/Cascader/Cascader.type.js +1 -1
  63. package/lib/components/Cascader/Cascader.type.js.map +1 -1
  64. package/lib/components/Cascader/CascaderMenu.js +3 -3
  65. package/lib/components/Cascader/CascaderMenu.js.map +1 -1
  66. package/lib/components/Cascader/index.d.ts +6 -6
  67. package/lib/components/Checkbox/Checkbox.js +1 -0
  68. package/lib/components/Checkbox/Checkbox.js.map +1 -1
  69. package/lib/components/Checkbox/Checkbox.type.d.ts +1 -0
  70. package/lib/components/Checkbox/Checkbox.type.js +2 -1
  71. package/lib/components/Checkbox/Checkbox.type.js.map +1 -1
  72. package/lib/components/Checkbox/Checkbox.vue.d.ts +2 -0
  73. package/lib/components/Checkbox/CheckboxGroup.vue.d.ts +2 -0
  74. package/lib/components/Checkbox/index.d.ts +7 -0
  75. package/lib/components/Progress/Circle.js +1 -3
  76. package/lib/components/Progress/Circle.js.map +1 -1
  77. package/lib/components/Progress/Progress.js +2 -3
  78. package/lib/components/Progress/Progress.js.map +1 -1
  79. package/lib/components/Progress/Progress.type.d.ts +1 -6
  80. package/lib/components/Progress/Progress.type.js +0 -6
  81. package/lib/components/Progress/Progress.type.js.map +1 -1
  82. package/lib/components/Progress/Progress.vue.d.ts +0 -16
  83. package/lib/components/Progress/index.d.ts +0 -33
  84. package/lib/components/Select/RefSelect.vue.d.ts +7 -0
  85. package/lib/components/Table/BaseTable.vue.d.ts +7 -0
  86. package/lib/components/Table/BodyTable.vue.d.ts +7 -0
  87. package/lib/components/Table/HeadTable.vue.d.ts +7 -0
  88. package/lib/components/Table/Table.vue.d.ts +14 -0
  89. package/lib/components/Table/TableBox.vue.d.ts +14 -0
  90. package/lib/components/Table/tableUnits/FilterDropdown.vue.d.ts +7 -0
  91. package/lib/components/Table/tableUnits/SelectionBox.vue.d.ts +7 -0
  92. package/lib/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +7 -0
  93. package/lib/components/Table/tableUnits/TableHeader.vue.d.ts +7 -0
  94. package/lib/components/Table/tableUnits/TableHeaderRow.vue.d.ts +7 -0
  95. package/lib/components/Transfer/Operation.js +6 -4
  96. package/lib/components/Transfer/Operation.js.map +1 -1
  97. package/lib/components/Transfer/Transfer.js +2 -4
  98. package/lib/components/Transfer/Transfer.js.map +1 -1
  99. package/lib/components/Transfer/Transfer.type.d.ts +0 -5
  100. package/lib/components/Transfer/Transfer.type.js +0 -7
  101. package/lib/components/Transfer/Transfer.type.js.map +1 -1
  102. package/lib/components/Transfer/Transfer.vue.d.ts +42 -11
  103. package/lib/components/Transfer/TransferList.js +14 -10
  104. package/lib/components/Transfer/TransferList.js.map +1 -1
  105. package/lib/components/Transfer/TransferList.vue.d.ts +14 -0
  106. package/lib/components/Transfer/TransferListItem.vue.d.ts +7 -0
  107. package/lib/components/Transfer/index.d.ts +112 -18
  108. package/lib/components/Tree/SubTree.vue.d.ts +7 -0
  109. package/lib/components/Tree/Tree.vue.d.ts +7 -0
  110. package/lib/components/Tree/TreeNode.vue.d.ts +7 -0
  111. package/lib/components/Tree/index.d.ts +14 -0
  112. package/lib/components/TreeSelect/TreeSelect.vue.d.ts +14 -0
  113. package/lib/components/TreeSelect/index.d.ts +28 -0
  114. package/lib/components/Upload/UploadList.vue.d.ts +0 -33
  115. package/package.json +1 -1
  116. package/styles/components/alert/index.css +1 -1
  117. package/styles/components/autoComplete/index.css +1 -1
  118. package/styles/components/avatar/index.css +1 -1
  119. package/styles/components/button/index.css +1 -1
  120. package/styles/components/carousel/index.css +1 -1
  121. package/styles/components/carousel/index.less +38 -35
  122. package/styles/components/carousel/var.less +6 -19
  123. package/styles/components/cascader/index.css +1 -1
  124. package/styles/components/cascader/index.less +20 -32
  125. package/styles/components/datePicker/index.css +1 -1
  126. package/styles/components/form/index.css +1 -1
  127. package/styles/components/icon/index.css +1 -1
  128. package/styles/components/input/index.css +1 -1
  129. package/styles/components/inputNumber/index.css +1 -1
  130. package/styles/components/link/index.css +1 -1
  131. package/styles/components/mentions/index.css +1 -1
  132. package/styles/components/menu/index.css +1 -1
  133. package/styles/components/menu/var.less +3 -2
  134. package/styles/components/modal/index.css +1 -1
  135. package/styles/components/progress/index.css +1 -1
  136. package/styles/components/progress/index.less +42 -56
  137. package/styles/components/progress/var.less +3 -4
  138. package/styles/components/select/index.css +1 -1
  139. package/styles/components/spin/index.css +1 -1
  140. package/styles/components/timePicker/index.css +1 -1
  141. package/styles/components/transfer/index.css +1 -1
  142. package/styles/components/transfer/index.less +38 -42
  143. package/styles/components/transfer/var.less +8 -42
  144. package/styles/components/tree/index.css +1 -1
  145. package/styles/components/tree/index.less +17 -27
  146. package/styles/components/tree/var.less +5 -16
  147. package/styles/cssVariable.css +1 -1
  148. package/styles/cssVariable.less +0 -1
  149. package/styles/index.css +1 -1
  150. package/styles/tokens/typography.css +1 -1
  151. package/types/components/Cascader/Cascader.d.ts +3 -3
  152. package/types/components/Cascader/Cascader.type.d.ts +1 -1
  153. package/types/components/Cascader/index.d.ts +6 -6
  154. package/types/components/Checkbox/Checkbox.type.d.ts +1 -0
  155. package/types/components/Checkbox/Checkbox.vue.d.ts +2 -0
  156. package/types/components/Checkbox/CheckboxGroup.vue.d.ts +2 -0
  157. package/types/components/Checkbox/index.d.ts +7 -0
  158. package/types/components/Progress/Progress.type.d.ts +1 -6
  159. package/types/components/Progress/Progress.vue.d.ts +0 -16
  160. package/types/components/Progress/index.d.ts +0 -33
  161. package/types/components/Select/RefSelect.vue.d.ts +7 -0
  162. package/types/components/Table/BaseTable.vue.d.ts +7 -0
  163. package/types/components/Table/BodyTable.vue.d.ts +7 -0
  164. package/types/components/Table/HeadTable.vue.d.ts +7 -0
  165. package/types/components/Table/Table.vue.d.ts +14 -0
  166. package/types/components/Table/TableBox.vue.d.ts +14 -0
  167. package/types/components/Table/tableUnits/FilterDropdown.vue.d.ts +7 -0
  168. package/types/components/Table/tableUnits/SelectionBox.vue.d.ts +7 -0
  169. package/types/components/Table/tableUnits/SelectionCheckAll.vue.d.ts +7 -0
  170. package/types/components/Table/tableUnits/TableHeader.vue.d.ts +7 -0
  171. package/types/components/Table/tableUnits/TableHeaderRow.vue.d.ts +7 -0
  172. package/types/components/Transfer/Transfer.type.d.ts +0 -5
  173. package/types/components/Transfer/Transfer.vue.d.ts +42 -11
  174. package/types/components/Transfer/TransferList.vue.d.ts +14 -0
  175. package/types/components/Transfer/TransferListItem.vue.d.ts +7 -0
  176. package/types/components/Transfer/index.d.ts +112 -18
  177. package/types/components/Tree/SubTree.vue.d.ts +7 -0
  178. package/types/components/Tree/Tree.vue.d.ts +7 -0
  179. package/types/components/Tree/TreeNode.vue.d.ts +7 -0
  180. package/types/components/Tree/index.d.ts +14 -0
  181. package/types/components/TreeSelect/TreeSelect.vue.d.ts +14 -0
  182. package/types/components/TreeSelect/index.d.ts +28 -0
  183. package/types/components/Upload/UploadList.vue.d.ts +0 -33
  184. package/uxd-ui.css +1 -1
  185. package/uxd-ui.esm.min.mjs +6 -6
  186. package/uxd-ui.esm.mjs +142 -151
  187. package/uxd-ui.umd.js +141 -150
  188. package/uxd-ui.umd.min.js +6 -6
@@ -128,7 +128,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
128
128
  type: StringConstructor;
129
129
  };
130
130
  variant: {
131
- type: import("vue").PropType<"text" | "surface" | "soft">;
131
+ type: import("vue").PropType<"underline" | "surface" | "soft" | "borderless">;
132
132
  default: string;
133
133
  validator: (val: string) => boolean;
134
134
  };
@@ -682,7 +682,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
682
682
  type: StringConstructor;
683
683
  };
684
684
  variant: {
685
- type: import("vue").PropType<"text" | "surface" | "soft">;
685
+ type: import("vue").PropType<"underline" | "surface" | "soft" | "borderless">;
686
686
  default: string;
687
687
  validator: (val: string) => boolean;
688
688
  };
@@ -729,7 +729,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
729
729
  placement: "auto" | "left" | "top" | "bottom" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end";
730
730
  popupStyle: CSSProperties;
731
731
  showArrow: boolean;
732
- variant: "text" | "surface" | "soft";
732
+ variant: "underline" | "surface" | "soft" | "borderless";
733
733
  modelValue: import("./Cascader.type").CascaderValueType;
734
734
  clearable: boolean;
735
735
  labelColon: boolean;
@@ -463,9 +463,7 @@ var Cascader = defineComponent({
463
463
  [`${this.prefixCls}-custom`]: this.$slots.default !== void 0,
464
464
  [`${this.selectPrefixCls}`]: true,
465
465
  [`${this.selectPrefixCls}-${this.size}`]: this.size,
466
- [`${this.selectPrefixCls}-variant-soft`]: this.variant === "soft",
467
- [`${this.selectPrefixCls}-variant-text`]: this.variant === "text" && !this.multiple,
468
- [`${this.selectPrefixCls}-variant-surface`]: this.variant === "surface" || this.variant === "text" && this.multiple,
466
+ [`${this.selectPrefixCls}-variant-${this.variant}`]: true,
469
467
  [`${this.selectPrefixCls}-single`]: !this.multiple,
470
468
  [`${this.selectPrefixCls}-multiple`]: this.multiple,
471
469
  [`${this.selectPrefixCls}-open`]: this.showPopper,
@@ -509,7 +507,7 @@ var Cascader = defineComponent({
509
507
  "maxTagTooltip": this.maxTagTooltip,
510
508
  "maxTagTooltipWidth": this.maxTagTooltipWidth,
511
509
  "tagRender": this.tagRender,
512
- "tagTransitioName": this.tagTransitionName,
510
+ "tagTransitionName": this.tagTransitionName,
513
511
  "triggerSearch": this.triggerSearch,
514
512
  "onSelect": this.onSelectionSelect
515
513
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"Cascader.mjs","sources":["../../../../src/components/Cascader/Cascader.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n onMounted,\n onUpdated,\n provide,\n ref,\n watch,\n resolveComponent,\n type CSSProperties,\n type StyleValue,\n type Component\n} from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { ChevronDown, LoaderCircle, Search, CircleX } from 'lucide-vue-next';\nimport arrayTreeFilter from 'array-tree-filter';\nimport { cloneDeep } from 'lodash-unified';\nimport Selection from '../Select/Selection';\nimport CascaderMenu from './CascaderMenu';\nimport { cascaderProps, cascaderEmits } from './Cascader.type';\nimport type { CascaderOption, CascaderSearchConfig, CascaderInnerValueType, CascaderSingleValueType } from './Cascader.type';\nimport { FormItemKey } from '../Form';\nimport type { FormItemContext } from '../Form/Form.type';\nimport { useGlobalConfig, useContainerWidth, useDelaySet } from '../base/hooks';\nimport { flattenTree, getSearchOptions, getValueIndex } from './utils';\nimport warn from '../../utils/warn';\nimport { getSlot } from '../../utils/slots';\nimport KeyCode from '../../utils/KeyCode';\nimport useCascaderValue from './hooks/useCascaderValue';\nimport type { IconPropType } from '../../utils';\nimport type { DisplayOption } from '../Select';\n\nexport default defineComponent({\n name: 'UCascader',\n inheritAttrs: false,\n props: cascaderProps,\n emits: cascaderEmits,\n setup(props, { emit, slots }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('cascader');\n const { prefixCls: selectPrefixCls } = useGlobalConfig('select');\n const { onFieldChange } = inject<FormItemContext>(FormItemKey, {} as FormItemContext);\n\n const searchValue = ref('');\n const showPopper = ref(props.open || false);\n\n const setPopperState = (val?: boolean) => {\n const _open = val !== undefined ? val : !showPopper.value;\n if (showPopper.value !== _open && !props.disabled && !props.loading) {\n if (props.open === undefined) {\n showPopper.value = _open;\n }\n emit('dropdown-visible-change', _open);\n }\n };\n\n const triggerSearch = (val: string) => {\n searchValue.value = val;\n return true;\n };\n\n watch(\n () => props.open,\n (val) => {\n showPopper.value = val || false;\n }\n );\n\n watch(\n showPopper,\n () => {\n if (!showPopper.value && searchValue.value) {\n triggerSearch('');\n }\n },\n { immediate: true }\n );\n\n const flatternOptions = ref<CascaderOption[][]>([]);\n\n const getFlattenOptions = () => {\n flatternOptions.value = flattenTree(props.options, props);\n };\n getFlattenOptions();\n\n watch(\n () => props.options,\n () => {\n getFlattenOptions();\n },\n { deep: true }\n );\n\n /**\n * generate filtered options\n */\n const filteredOptions = computed(() => {\n if (!!props.search && !!searchValue.value) {\n const { limit, filter, sort, render } = getSearchOptions(props.search as CascaderSearchConfig);\n // const flatternOptions = flattenTree(props.options, props);\n let filtered: CascaderOption[][] = [];\n if (limit > 0) {\n let matchedCount = 0;\n flatternOptions.value.some((path) => {\n const macthed = filter(searchValue.value, path, props.fieldNames);\n if (macthed) {\n filtered.push(path);\n matchedCount += 1;\n }\n return matchedCount >= limit;\n });\n } else {\n warn(\"search prop only accept positive number or false as 'limit' value\");\n filtered = flatternOptions.value.filter((path) => filter(searchValue.value, path, props.fieldNames));\n }\n filtered.sort((a, b) => sort(a, b, searchValue.value, props.fieldNames));\n const renderFunc = slots.filteredItem || render;\n if (filtered.length) {\n return filtered.map((path) => ({\n _IS_FILTERED_OPTION_: true,\n [props.fieldNames.label]: () =>\n renderFunc({\n labels: path.map((opt) => opt[props.fieldNames.label] as string),\n keyword: searchValue.value,\n className: prefixCls.value\n }),\n [props.fieldNames.value]: path.map((opt) => opt[props.fieldNames.value]),\n disabled: path.some((opt) => !!opt.disabled)\n }));\n }\n return [\n {\n [props.fieldNames.label]: props.notFoundContent,\n [props.fieldNames.value]: '_Not_Found_',\n disabled: true\n }\n ];\n }\n return props.options;\n });\n\n const containerRef = ref();\n const { containerWidth, getContainerWidth } = useContainerWidth(containerRef);\n onMounted(() => {\n getContainerWidth();\n });\n\n onUpdated(() => {\n getContainerWidth();\n });\n\n const popStyle = computed<CSSProperties>(() => {\n const customStyle: CSSProperties = { ...props.popupStyle };\n const { matchInputWidth } = getSearchOptions(props.search);\n if (matchInputWidth && searchValue.value) {\n customStyle.width = `${containerWidth.value}px`;\n return customStyle;\n }\n return {};\n });\n\n // current select value\n const activeValue = ref<CascaderSingleValueType>([]);\n // init value, final value\n\n const setActiveValue = (val: CascaderSingleValueType) => {\n const origin = activeValue.value;\n if (val.length && val.length < origin.length) {\n const startMatch = val.every((v, i) => v === origin[i]);\n if (!startMatch) {\n activeValue.value = val;\n }\n } else {\n activeValue.value = val;\n }\n };\n\n const { stateValue, innerValue, toOuterValue } = useCascaderValue(props);\n // const innerValue = computed<CascaderInnerValueType>(() => toInnerValue(stateValue.value));\n\n const getOptionsByValue = (vals: CascaderInnerValueType) => {\n return vals.map((single) => {\n return arrayTreeFilter(props.options, (o, level) => o[props.fieldNames.value] === single[level], {\n childrenKeyName: props.fieldNames.children\n });\n });\n };\n // current selectedOptions and labels value\n const selectedOptions = computed(() => {\n const vals = innerValue.value || [];\n return getOptionsByValue(vals);\n });\n\n onMounted(() => {\n if (Array.isArray(stateValue.value) && stateValue.value.length) {\n const active = [...innerValue.value[0]] as CascaderSingleValueType;\n active.pop();\n setActiveValue(active);\n }\n });\n\n const emitChange = (val: CascaderInnerValueType) => {\n const _multiple = props.multiple === true;\n const value = toOuterValue(val, _multiple);\n if (props.modelValue === undefined) {\n stateValue.value = value;\n }\n const options = getOptionsByValue(val);\n emit('update:modelValue', value);\n emit('change', value, _multiple ? options : options[0]);\n\n if (onFieldChange) {\n onFieldChange(value);\n }\n };\n\n // clear select\n const handleClear = (e: MouseEvent) => {\n if (!props.clearable) return;\n e.preventDefault();\n e.stopPropagation();\n searchValue.value = '';\n setActiveValue([]);\n emitChange([]);\n };\n\n const onSelect = (value: CascaderSingleValueType, { selected }: { selected: boolean }) => {\n if (props.disabled) {\n return;\n }\n\n if (props.multiple) {\n // const _rawValue = [...innerValue.value];\n const _rawValue = cloneDeep(innerValue.value);\n const idx = _rawValue.findIndex((x) => JSON.stringify(x) === JSON.stringify(value));\n if (selected) {\n if (idx === -1) {\n _rawValue.push(value);\n }\n } else if (idx > -1) {\n _rawValue.splice(idx, 1);\n }\n emitChange(_rawValue);\n } else if (JSON.stringify(value) !== JSON.stringify(stateValue.value)) {\n emitChange([value]);\n }\n\n if (!props.multiple) {\n triggerSearch('');\n }\n };\n\n /**\n * @param {string[]} val\n * @param {boolean} hasChild\n * @param {event} e\n * @return {*}\n * @description update value\n */\n const updateValue = (val: CascaderSingleValueType, hasChild: boolean, e: { type: string; keyCode?: number; selected: boolean }) => {\n if (hasChild || !props.multiple) {\n setActiveValue(val);\n }\n\n if (e.type !== 'keydown' || (e.type === 'keydown' && e.keyCode === KeyCode.ENTER)) {\n if ((props.changeOnSelect && !props.multiple) || !hasChild) {\n onSelect(val, { selected: !innerValue.value.some((v) => JSON.stringify(v) === JSON.stringify(val)) });\n }\n if (!hasChild && !props.multiple) {\n setPopperState(false);\n }\n }\n };\n\n const handleCheckAll = (clickValue: CascaderSingleValueType, changeValues: CascaderInnerValueType, { selected }: { selected: boolean }) => {\n setActiveValue(clickValue);\n const _rawValue = JSON.parse(JSON.stringify(innerValue.value)) as CascaderInnerValueType;\n changeValues.forEach((val) => {\n const idx = _rawValue.findIndex((x) => JSON.stringify(x) === JSON.stringify(val));\n if (selected) {\n if (idx === -1) {\n _rawValue.push(val);\n }\n } else if (idx > -1) {\n _rawValue.splice(idx, 1);\n }\n });\n emitChange(_rawValue);\n };\n\n // suffixIcon renderer\n const cascaderMenuRef = ref<InstanceType<typeof CascaderMenu> | null>(null);\n\n const showClear = computed(() => {\n return props.clearable && !props.disabled && (innerValue.value.length || searchValue.value);\n });\n\n const [stateFocused, setStateFocused] = useDelaySet();\n const _immediateFocused = ref(false);\n const onContainerFocus = (args: any) => {\n setStateFocused(true);\n if (!props.disabled && !stateFocused.value) {\n emit('focus', args);\n }\n _immediateFocused.value = true;\n };\n const onContainerBlur = (args: any) => {\n setStateFocused(false, () => {\n _immediateFocused.value = false;\n setPopperState(false);\n });\n\n emit('blur', args);\n };\n\n provide('SelectContext', {\n focus: onContainerFocus,\n blur: onContainerBlur\n });\n\n const onContainerMouseDown = (e: any) => {\n setPopperState(!showPopper.value);\n emit('mousedown', e);\n };\n\n const removeLastEnabledValue = (_selectedOptions: CascaderOption[], values: CascaderInnerValueType) => {\n const newValues = [...values];\n let removeIndex;\n for (removeIndex = _selectedOptions.length - 1; removeIndex >= 0; removeIndex -= 1) {\n if (!_selectedOptions[removeIndex].disabled) {\n break;\n }\n }\n let removedValue = null;\n\n if (removeIndex !== -1) {\n removedValue = newValues[removeIndex];\n newValues.splice(removeIndex, 1);\n }\n\n return {\n values: newValues,\n removedValue\n };\n };\n\n /**\n * @param {event} e\n * @return {*}\n * @description dropdown selection key method\n */\n\n const onContainerKeydown = (e: KeyboardEvent) => {\n const { keyCode } = e;\n const children = getSlot(slots, 'default');\n\n if (children && children.length) {\n const child = children[0];\n if ((child as any).props && (child as any).props.onKeydown) {\n (child as any).props.onKeydown(e);\n return;\n }\n }\n emit('keydown', e);\n if (\n keyCode !== KeyCode.DOWN &&\n keyCode !== KeyCode.UP &&\n keyCode !== KeyCode.LEFT &&\n keyCode !== KeyCode.RIGHT &&\n keyCode !== KeyCode.ENTER &&\n keyCode !== KeyCode.SPACE &&\n keyCode !== KeyCode.BACKSPACE &&\n keyCode !== KeyCode.ESC &&\n keyCode !== KeyCode.TAB\n ) {\n return;\n }\n if (\n !showPopper.value &&\n keyCode !== KeyCode.BACKSPACE &&\n keyCode !== KeyCode.LEFT &&\n keyCode !== KeyCode.RIGHT &&\n keyCode !== KeyCode.ESC &&\n keyCode !== KeyCode.TAB\n ) {\n e.preventDefault();\n setPopperState(true);\n return;\n }\n\n const currentActiveValue = [...activeValue.value];\n let currentLevel = currentActiveValue.length === 0 ? 0 : currentActiveValue.length - 1;\n // get options & select methods\n const menuEl = cascaderMenuRef.value;\n\n if (!menuEl) return;\n const menuOptions = menuEl.menus as CascaderOption[][];\n if (searchValue.value) {\n // searchValue has value, selectOptions is filtered value\n currentLevel = 0;\n }\n const currentOptions = menuOptions[currentLevel].filter((opt) => !opt.disabled);\n const currentIndex = getValueIndex(currentActiveValue, currentLevel, currentOptions, !!searchValue.value, props.fieldNames);\n\n // calculate next option and index\n let nextIndex = currentIndex;\n let nextLevel = currentLevel;\n let nextOptions = [...currentOptions];\n if (keyCode === KeyCode.DOWN || keyCode === KeyCode.UP) {\n e.preventDefault();\n if (nextIndex === -1) {\n nextIndex = 0;\n } else if (keyCode === KeyCode.DOWN) {\n nextIndex += 1;\n nextIndex = nextIndex >= currentOptions.length ? 0 : nextIndex;\n } else {\n nextIndex -= 1;\n nextIndex = nextIndex < 0 ? currentOptions.length - 1 : nextIndex;\n }\n } else if (keyCode === KeyCode.LEFT || keyCode === KeyCode.BACKSPACE) {\n nextLevel -= 1;\n if (nextLevel < 0) {\n if (!searchValue.value) {\n setPopperState(false);\n }\n return;\n }\n e.preventDefault();\n nextOptions = menuOptions[nextLevel].filter((opt) => !opt.disabled);\n nextIndex = getValueIndex(currentActiveValue, nextLevel, nextOptions, !!searchValue.value, props.fieldNames);\n } else if (keyCode === KeyCode.RIGHT) {\n if (searchValue.value) {\n return;\n }\n e.preventDefault();\n if (currentOptions[currentIndex] && currentOptions[currentIndex][props.fieldNames.children]) {\n nextOptions = (currentOptions[currentIndex][props.fieldNames.children] as CascaderOption[]).filter((opt) => !opt.disabled);\n nextLevel += 1;\n nextIndex = 0;\n }\n } else if (e.keyCode === KeyCode.ESC || e.keyCode === KeyCode.TAB) {\n setPopperState(false);\n return;\n }\n if (nextOptions.length && nextIndex !== -1) {\n const selectOption = nextOptions[nextIndex];\n (menuEl as any).handleSelect(selectOption, nextLevel, e);\n }\n\n if (\n keyCode === KeyCode.BACKSPACE &&\n // !clearlock &&\n props.multiple &&\n !searchValue.value &&\n innerValue.value.length > 0\n ) {\n const removeInfo = removeLastEnabledValue(selectedOptions.value, innerValue.value);\n\n if (removeInfo.removedValue !== null) {\n emitChange(removeInfo.values);\n }\n }\n };\n\n const loadingTextLocale = computed(() => {\n return props.loadingText || globalConfig.locale.select.loadingText;\n });\n\n return {\n containerRef,\n prefixCls,\n selectPrefixCls,\n showPopper,\n stateValue,\n innerValue,\n stateFocused,\n activeValue,\n loadingTextLocale,\n updateValue,\n selectedOptions,\n handleClear,\n searchValue,\n filteredOptions,\n popStyle,\n cascaderMenuRef,\n triggerSearch,\n showClear,\n onContainerMouseDown,\n onContainerKeydown,\n onClickOutside: () => {\n setPopperState(false);\n },\n onSelectionSelect: onSelect,\n handleCheckAll\n };\n },\n render() {\n let suffix: IconPropType = ChevronDown;\n let prefix = null;\n if (this.loading) {\n suffix = LoaderCircle;\n }\n if (this.search && this.showPopper) {\n suffix = Search;\n }\n\n if (this.suffixIcon) {\n suffix = typeof this.suffixIcon === 'string' ? resolveComponent(this.suffixIcon) : (this.suffixIcon as Component);\n }\n\n if (this.prefixIcon) {\n prefix = typeof this.prefixIcon === 'string' ? resolveComponent(this.prefixIcon) : (this.prefixIcon as Component);\n }\n\n const displayValues = this.selectedOptions.map((single) => {\n let displayLabel: any;\n const labels = single.map((s) => s[this.fieldNames.label]);\n const value = single.map((s) => s[this.fieldNames.value]);\n if (this.$slots.labelRender) {\n displayLabel = this.$slots.labelRender({ labels, selectedOptions: single });\n } else if (this.showAllLevels) {\n displayLabel = labels.join('/');\n } else {\n displayLabel = labels[labels.length - 1];\n }\n\n return {\n value,\n displayLabel\n } as DisplayOption;\n });\n\n return (\n <Popup\n placement={this.popupPlacement}\n visible={this.showPopper}\n transitionName=\"slide-up\"\n clickOutside={this.onClickOutside}\n v-slots={{\n popup: () => (\n <CascaderMenu\n ref=\"cascaderMenuRef\"\n prefixCls={this.prefixCls}\n options={this.filteredOptions}\n values={this.innerValue}\n changeOnSelect={this.changeOnSelect}\n multiple={this.multiple}\n searchValue={this.searchValue}\n activeValue={this.activeValue}\n fieldNames={this.fieldNames}\n loadData={this.loadData}\n expandTrigger={this.expandTrigger}\n popStyle={this.popStyle}\n popupClassName={this.popupClassName}\n visible={this.showPopper}\n multipleLimit={this.multipleLimit}\n onUpdate-value={this.updateValue}\n onCheck-all={this.handleCheckAll}\n />\n )\n }}\n >\n <div\n ref=\"containerRef\"\n class={[\n this.prefixCls,\n {\n [`${this.$attrs.class}`]: this.$attrs.class,\n [`${this.prefixCls}-custom`]: this.$slots.default !== undefined,\n [`${this.selectPrefixCls}`]: true,\n [`${this.selectPrefixCls}-${this.size}`]: this.size,\n [`${this.selectPrefixCls}-variant-soft`]: this.variant === 'soft',\n [`${this.selectPrefixCls}-variant-text`]: this.variant === 'text' && !this.multiple,\n [`${this.selectPrefixCls}-variant-surface`]: this.variant === 'surface' || (this.variant === 'text' && this.multiple),\n [`${this.selectPrefixCls}-single`]: !this.multiple,\n [`${this.selectPrefixCls}-multiple`]: this.multiple,\n [`${this.selectPrefixCls}-open`]: this.showPopper,\n [`${this.selectPrefixCls}-filterable`]: this.search !== undefined,\n [`${this.selectPrefixCls}-focused`]: this.stateFocused,\n [`${this.selectPrefixCls}-disabled`]: this.disabled,\n [`${this.selectPrefixCls}-show-arrow`]: this.showArrow,\n [`${this.selectPrefixCls}-clearable`]: !!this.clearable,\n [`${this.selectPrefixCls}-with-clear`]: this.showClear,\n [`${this.selectPrefixCls}-loading`]: !!this.loading\n }\n ]}\n style={this.$attrs.style as StyleValue}\n data-color={this.color}\n tabindex={this.disabled ? -1 : 0}\n onMousedown={this.onContainerMouseDown}\n onKeydown={this.onContainerKeydown}\n >\n {this.label ? (\n <span\n class={{\n [`${this.selectPrefixCls}-label`]: true,\n [`${this.selectPrefixCls}-label-colon`]: this.labelColon,\n [`${this.selectPrefixCls}-label-required`]: this.required\n }}\n >\n {this.label}\n </span>\n ) : (\n prefix && (\n <span class={`${this.selectPrefixCls}-prefix`}>\n <UIcon spin={this.loading}>\n <prefix />\n </UIcon>\n </span>\n )\n )}\n {this.$slots.default ? (\n this.$slots.default()\n ) : (\n <Selection\n ref=\"selectionRef\"\n disabled={this.disabled}\n multiple={this.multiple}\n open={this.showPopper}\n values={displayValues}\n prefixCls={this.selectPrefixCls}\n filterable={this.search !== undefined}\n searchValue={this.searchValue}\n maxTagCount={this.maxTagCount}\n maxTagText-length={this.maxTagTextLength}\n maxTagPlaceholder={this.maxTagPlaceholder}\n maxTagTooltip={this.maxTagTooltip}\n maxTagTooltipWidth={this.maxTagTooltipWidth}\n tagRender={this.tagRender}\n tagTransitioName={this.tagTransitionName}\n triggerSearch={this.triggerSearch}\n onSelect={this.onSelectionSelect}\n v-slots={{\n placeholder: () => <>{this.loading ? this.loadingTextLocale : this.placeholder}</>\n }}\n ></Selection>\n )}\n {this.showArrow ? (\n <span class={`${this.selectPrefixCls}-arrow`}>\n <UIcon spin={this.loading}>\n <suffix />\n </UIcon>\n </span>\n ) : null}\n {this.showClear ? (\n <span\n class={`${this.selectPrefixCls}-clear`}\n onMousedown={(e) => {\n e.preventDefault();\n }}\n onClick={this.handleClear}\n >\n <UIcon>\n <CircleX />\n </UIcon>\n </span>\n ) : null}\n </div>\n </Popup>\n );\n }\n});\n"],"names":["defineComponent","name","inheritAttrs","props","cascaderProps","emits","cascaderEmits","setup","emit","slots","prefixCls","config","globalConfig","useGlobalConfig","selectPrefixCls","onFieldChange","inject","FormItemKey","searchValue","ref","showPopper","open","setPopperState","val","_open","undefined","value","disabled","loading","triggerSearch","watch","immediate","flatternOptions","getFlattenOptions","flattenTree","options","deep","filteredOptions","computed","search","limit","filter","sort","render","getSearchOptions","filtered","matchedCount","some","path","macthed","fieldNames","push","warn","a","b","renderFunc","filteredItem","length","map","_IS_FILTERED_OPTION_","label","labels","opt","keyword","className","notFoundContent","containerRef","containerWidth","getContainerWidth","useContainerWidth","onMounted","onUpdated","popStyle","customStyle","popupStyle","matchInputWidth","width","activeValue","setActiveValue","origin","startMatch","every","v","i","stateValue","innerValue","toOuterValue","useCascaderValue","getOptionsByValue","vals","single","arrayTreeFilter","o","level","childrenKeyName","children","selectedOptions","Array","isArray","active","pop","emitChange","_multiple","multiple","modelValue","handleClear","e","clearable","preventDefault","stopPropagation","onSelect","selected","_rawValue","cloneDeep","idx","findIndex","x","JSON","stringify","splice","updateValue","hasChild","type","keyCode","KeyCode","ENTER","changeOnSelect","handleCheckAll","clickValue","changeValues","parse","forEach","cascaderMenuRef","showClear","stateFocused","setStateFocused","useDelaySet","_immediateFocused","onContainerFocus","args","onContainerBlur","provide","focus","blur","onContainerMouseDown","removeLastEnabledValue","_selectedOptions","values","newValues","removeIndex","removedValue","onContainerKeydown","getSlot","child","onKeydown","DOWN","UP","LEFT","RIGHT","SPACE","BACKSPACE","ESC","TAB","currentActiveValue","currentLevel","menuEl","menuOptions","menus","currentOptions","currentIndex","getValueIndex","nextIndex","nextLevel","nextOptions","selectOption","handleSelect","removeInfo","loadingTextLocale","loadingText","locale","select","onClickOutside","onSelectionSelect","suffix","ChevronDown","prefix","LoaderCircle","Search","suffixIcon","resolveComponent","prefixIcon","displayValues","displayLabel","s","$slots","labelRender","showAllLevels","join","_createVNode","Popup","popupPlacement","default","$attrs","class","size","variant","showArrow","style","color","labelColon","required","UIcon","Selection","maxTagCount","maxTagTextLength","maxTagPlaceholder","maxTagTooltip","maxTagTooltipWidth","tagRender","tagTransitionName","placeholder","_Fragment","CircleX","popup","CascaderMenu","loadData","expandTrigger","popupClassName","multipleLimit"],"mappings":"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"}
1
+ {"version":3,"file":"Cascader.mjs","sources":["../../../../src/components/Cascader/Cascader.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n onMounted,\n onUpdated,\n provide,\n ref,\n watch,\n resolveComponent,\n type CSSProperties,\n type StyleValue,\n type Component\n} from 'vue';\nimport Popup from '@uxd-ui/components/Popup';\nimport UIcon from '@uxd-ui/components/Icon';\nimport { ChevronDown, LoaderCircle, Search, CircleX } from 'lucide-vue-next';\nimport arrayTreeFilter from 'array-tree-filter';\nimport { cloneDeep } from 'lodash-unified';\nimport Selection from '../Select/Selection';\nimport CascaderMenu from './CascaderMenu';\nimport { cascaderProps, cascaderEmits } from './Cascader.type';\nimport type { CascaderOption, CascaderSearchConfig, CascaderInnerValueType, CascaderSingleValueType } from './Cascader.type';\nimport { FormItemKey } from '../Form';\nimport type { FormItemContext } from '../Form/Form.type';\nimport { useGlobalConfig, useContainerWidth, useDelaySet } from '../base/hooks';\nimport { flattenTree, getSearchOptions, getValueIndex } from './utils';\nimport warn from '../../utils/warn';\nimport { getSlot } from '../../utils/slots';\nimport KeyCode from '../../utils/KeyCode';\nimport useCascaderValue from './hooks/useCascaderValue';\nimport type { IconPropType } from '../../utils';\nimport type { DisplayOption } from '../Select';\n\nexport default defineComponent({\n name: 'UCascader',\n inheritAttrs: false,\n props: cascaderProps,\n emits: cascaderEmits,\n setup(props, { emit, slots }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('cascader');\n const { prefixCls: selectPrefixCls } = useGlobalConfig('select');\n const { onFieldChange } = inject<FormItemContext>(FormItemKey, {} as FormItemContext);\n\n const searchValue = ref('');\n const showPopper = ref(props.open || false);\n\n const setPopperState = (val?: boolean) => {\n const _open = val !== undefined ? val : !showPopper.value;\n if (showPopper.value !== _open && !props.disabled && !props.loading) {\n if (props.open === undefined) {\n showPopper.value = _open;\n }\n emit('dropdown-visible-change', _open);\n }\n };\n\n const triggerSearch = (val: string) => {\n searchValue.value = val;\n return true;\n };\n\n watch(\n () => props.open,\n (val) => {\n showPopper.value = val || false;\n }\n );\n\n watch(\n showPopper,\n () => {\n if (!showPopper.value && searchValue.value) {\n triggerSearch('');\n }\n },\n { immediate: true }\n );\n\n const flatternOptions = ref<CascaderOption[][]>([]);\n\n const getFlattenOptions = () => {\n flatternOptions.value = flattenTree(props.options, props);\n };\n getFlattenOptions();\n\n watch(\n () => props.options,\n () => {\n getFlattenOptions();\n },\n { deep: true }\n );\n\n /**\n * generate filtered options\n */\n const filteredOptions = computed(() => {\n if (!!props.search && !!searchValue.value) {\n const { limit, filter, sort, render } = getSearchOptions(props.search as CascaderSearchConfig);\n // const flatternOptions = flattenTree(props.options, props);\n let filtered: CascaderOption[][] = [];\n if (limit > 0) {\n let matchedCount = 0;\n flatternOptions.value.some((path) => {\n const macthed = filter(searchValue.value, path, props.fieldNames);\n if (macthed) {\n filtered.push(path);\n matchedCount += 1;\n }\n return matchedCount >= limit;\n });\n } else {\n warn(\"search prop only accept positive number or false as 'limit' value\");\n filtered = flatternOptions.value.filter((path) => filter(searchValue.value, path, props.fieldNames));\n }\n filtered.sort((a, b) => sort(a, b, searchValue.value, props.fieldNames));\n const renderFunc = slots.filteredItem || render;\n if (filtered.length) {\n return filtered.map((path) => ({\n _IS_FILTERED_OPTION_: true,\n [props.fieldNames.label]: () =>\n renderFunc({\n labels: path.map((opt) => opt[props.fieldNames.label] as string),\n keyword: searchValue.value,\n className: prefixCls.value\n }),\n [props.fieldNames.value]: path.map((opt) => opt[props.fieldNames.value]),\n disabled: path.some((opt) => !!opt.disabled)\n }));\n }\n return [\n {\n [props.fieldNames.label]: props.notFoundContent,\n [props.fieldNames.value]: '_Not_Found_',\n disabled: true\n }\n ];\n }\n return props.options;\n });\n\n const containerRef = ref();\n const { containerWidth, getContainerWidth } = useContainerWidth(containerRef);\n onMounted(() => {\n getContainerWidth();\n });\n\n onUpdated(() => {\n getContainerWidth();\n });\n\n const popStyle = computed<CSSProperties>(() => {\n const customStyle: CSSProperties = { ...props.popupStyle };\n const { matchInputWidth } = getSearchOptions(props.search);\n if (matchInputWidth && searchValue.value) {\n customStyle.width = `${containerWidth.value}px`;\n return customStyle;\n }\n return {};\n });\n\n // current select value\n const activeValue = ref<CascaderSingleValueType>([]);\n // init value, final value\n\n const setActiveValue = (val: CascaderSingleValueType) => {\n const origin = activeValue.value;\n if (val.length && val.length < origin.length) {\n const startMatch = val.every((v, i) => v === origin[i]);\n if (!startMatch) {\n activeValue.value = val;\n }\n } else {\n activeValue.value = val;\n }\n };\n\n const { stateValue, innerValue, toOuterValue } = useCascaderValue(props);\n // const innerValue = computed<CascaderInnerValueType>(() => toInnerValue(stateValue.value));\n\n const getOptionsByValue = (vals: CascaderInnerValueType) => {\n return vals.map((single) => {\n return arrayTreeFilter(props.options, (o, level) => o[props.fieldNames.value] === single[level], {\n childrenKeyName: props.fieldNames.children\n });\n });\n };\n // current selectedOptions and labels value\n const selectedOptions = computed(() => {\n const vals = innerValue.value || [];\n return getOptionsByValue(vals);\n });\n\n onMounted(() => {\n if (Array.isArray(stateValue.value) && stateValue.value.length) {\n const active = [...innerValue.value[0]] as CascaderSingleValueType;\n active.pop();\n setActiveValue(active);\n }\n });\n\n const emitChange = (val: CascaderInnerValueType) => {\n const _multiple = props.multiple === true;\n const value = toOuterValue(val, _multiple);\n if (props.modelValue === undefined) {\n stateValue.value = value;\n }\n const options = getOptionsByValue(val);\n emit('update:modelValue', value);\n emit('change', value, _multiple ? options : options[0]);\n\n if (onFieldChange) {\n onFieldChange(value);\n }\n };\n\n // clear select\n const handleClear = (e: MouseEvent) => {\n if (!props.clearable) return;\n e.preventDefault();\n e.stopPropagation();\n searchValue.value = '';\n setActiveValue([]);\n emitChange([]);\n };\n\n const onSelect = (value: CascaderSingleValueType, { selected }: { selected: boolean }) => {\n if (props.disabled) {\n return;\n }\n\n if (props.multiple) {\n // const _rawValue = [...innerValue.value];\n const _rawValue = cloneDeep(innerValue.value);\n const idx = _rawValue.findIndex((x) => JSON.stringify(x) === JSON.stringify(value));\n if (selected) {\n if (idx === -1) {\n _rawValue.push(value);\n }\n } else if (idx > -1) {\n _rawValue.splice(idx, 1);\n }\n emitChange(_rawValue);\n } else if (JSON.stringify(value) !== JSON.stringify(stateValue.value)) {\n emitChange([value]);\n }\n\n if (!props.multiple) {\n triggerSearch('');\n }\n };\n\n /**\n * @param {string[]} val\n * @param {boolean} hasChild\n * @param {event} e\n * @return {*}\n * @description update value\n */\n const updateValue = (val: CascaderSingleValueType, hasChild: boolean, e: { type: string; keyCode?: number; selected: boolean }) => {\n if (hasChild || !props.multiple) {\n setActiveValue(val);\n }\n\n if (e.type !== 'keydown' || (e.type === 'keydown' && e.keyCode === KeyCode.ENTER)) {\n if ((props.changeOnSelect && !props.multiple) || !hasChild) {\n onSelect(val, { selected: !innerValue.value.some((v) => JSON.stringify(v) === JSON.stringify(val)) });\n }\n if (!hasChild && !props.multiple) {\n setPopperState(false);\n }\n }\n };\n\n const handleCheckAll = (clickValue: CascaderSingleValueType, changeValues: CascaderInnerValueType, { selected }: { selected: boolean }) => {\n setActiveValue(clickValue);\n const _rawValue = JSON.parse(JSON.stringify(innerValue.value)) as CascaderInnerValueType;\n changeValues.forEach((val) => {\n const idx = _rawValue.findIndex((x) => JSON.stringify(x) === JSON.stringify(val));\n if (selected) {\n if (idx === -1) {\n _rawValue.push(val);\n }\n } else if (idx > -1) {\n _rawValue.splice(idx, 1);\n }\n });\n emitChange(_rawValue);\n };\n\n // suffixIcon renderer\n const cascaderMenuRef = ref<InstanceType<typeof CascaderMenu> | null>(null);\n\n const showClear = computed(() => {\n return props.clearable && !props.disabled && (innerValue.value.length || searchValue.value);\n });\n\n const [stateFocused, setStateFocused] = useDelaySet();\n const _immediateFocused = ref(false);\n const onContainerFocus = (args: any) => {\n setStateFocused(true);\n if (!props.disabled && !stateFocused.value) {\n emit('focus', args);\n }\n _immediateFocused.value = true;\n };\n const onContainerBlur = (args: any) => {\n setStateFocused(false, () => {\n _immediateFocused.value = false;\n setPopperState(false);\n });\n\n emit('blur', args);\n };\n\n provide('SelectContext', {\n focus: onContainerFocus,\n blur: onContainerBlur\n });\n\n const onContainerMouseDown = (e: any) => {\n setPopperState(!showPopper.value);\n emit('mousedown', e);\n };\n\n const removeLastEnabledValue = (_selectedOptions: CascaderOption[], values: CascaderInnerValueType) => {\n const newValues = [...values];\n let removeIndex;\n for (removeIndex = _selectedOptions.length - 1; removeIndex >= 0; removeIndex -= 1) {\n if (!_selectedOptions[removeIndex].disabled) {\n break;\n }\n }\n let removedValue = null;\n\n if (removeIndex !== -1) {\n removedValue = newValues[removeIndex];\n newValues.splice(removeIndex, 1);\n }\n\n return {\n values: newValues,\n removedValue\n };\n };\n\n /**\n * @param {event} e\n * @return {*}\n * @description dropdown selection key method\n */\n\n const onContainerKeydown = (e: KeyboardEvent) => {\n const { keyCode } = e;\n const children = getSlot(slots, 'default');\n\n if (children && children.length) {\n const child = children[0];\n if ((child as any).props && (child as any).props.onKeydown) {\n (child as any).props.onKeydown(e);\n return;\n }\n }\n emit('keydown', e);\n if (\n keyCode !== KeyCode.DOWN &&\n keyCode !== KeyCode.UP &&\n keyCode !== KeyCode.LEFT &&\n keyCode !== KeyCode.RIGHT &&\n keyCode !== KeyCode.ENTER &&\n keyCode !== KeyCode.SPACE &&\n keyCode !== KeyCode.BACKSPACE &&\n keyCode !== KeyCode.ESC &&\n keyCode !== KeyCode.TAB\n ) {\n return;\n }\n if (\n !showPopper.value &&\n keyCode !== KeyCode.BACKSPACE &&\n keyCode !== KeyCode.LEFT &&\n keyCode !== KeyCode.RIGHT &&\n keyCode !== KeyCode.ESC &&\n keyCode !== KeyCode.TAB\n ) {\n e.preventDefault();\n setPopperState(true);\n return;\n }\n\n const currentActiveValue = [...activeValue.value];\n let currentLevel = currentActiveValue.length === 0 ? 0 : currentActiveValue.length - 1;\n // get options & select methods\n const menuEl = cascaderMenuRef.value;\n\n if (!menuEl) return;\n const menuOptions = menuEl.menus as CascaderOption[][];\n if (searchValue.value) {\n // searchValue has value, selectOptions is filtered value\n currentLevel = 0;\n }\n const currentOptions = menuOptions[currentLevel].filter((opt) => !opt.disabled);\n const currentIndex = getValueIndex(currentActiveValue, currentLevel, currentOptions, !!searchValue.value, props.fieldNames);\n\n // calculate next option and index\n let nextIndex = currentIndex;\n let nextLevel = currentLevel;\n let nextOptions = [...currentOptions];\n if (keyCode === KeyCode.DOWN || keyCode === KeyCode.UP) {\n e.preventDefault();\n if (nextIndex === -1) {\n nextIndex = 0;\n } else if (keyCode === KeyCode.DOWN) {\n nextIndex += 1;\n nextIndex = nextIndex >= currentOptions.length ? 0 : nextIndex;\n } else {\n nextIndex -= 1;\n nextIndex = nextIndex < 0 ? currentOptions.length - 1 : nextIndex;\n }\n } else if (keyCode === KeyCode.LEFT || keyCode === KeyCode.BACKSPACE) {\n nextLevel -= 1;\n if (nextLevel < 0) {\n if (!searchValue.value) {\n setPopperState(false);\n }\n return;\n }\n e.preventDefault();\n nextOptions = menuOptions[nextLevel].filter((opt) => !opt.disabled);\n nextIndex = getValueIndex(currentActiveValue, nextLevel, nextOptions, !!searchValue.value, props.fieldNames);\n } else if (keyCode === KeyCode.RIGHT) {\n if (searchValue.value) {\n return;\n }\n e.preventDefault();\n if (currentOptions[currentIndex] && currentOptions[currentIndex][props.fieldNames.children]) {\n nextOptions = (currentOptions[currentIndex][props.fieldNames.children] as CascaderOption[]).filter((opt) => !opt.disabled);\n nextLevel += 1;\n nextIndex = 0;\n }\n } else if (e.keyCode === KeyCode.ESC || e.keyCode === KeyCode.TAB) {\n setPopperState(false);\n return;\n }\n if (nextOptions.length && nextIndex !== -1) {\n const selectOption = nextOptions[nextIndex];\n (menuEl as any).handleSelect(selectOption, nextLevel, e);\n }\n\n if (\n keyCode === KeyCode.BACKSPACE &&\n // !clearlock &&\n props.multiple &&\n !searchValue.value &&\n innerValue.value.length > 0\n ) {\n const removeInfo = removeLastEnabledValue(selectedOptions.value, innerValue.value);\n\n if (removeInfo.removedValue !== null) {\n emitChange(removeInfo.values);\n }\n }\n };\n\n const loadingTextLocale = computed(() => {\n return props.loadingText || globalConfig.locale.select.loadingText;\n });\n\n return {\n containerRef,\n prefixCls,\n selectPrefixCls,\n showPopper,\n stateValue,\n innerValue,\n stateFocused,\n activeValue,\n loadingTextLocale,\n updateValue,\n selectedOptions,\n handleClear,\n searchValue,\n filteredOptions,\n popStyle,\n cascaderMenuRef,\n triggerSearch,\n showClear,\n onContainerMouseDown,\n onContainerKeydown,\n onClickOutside: () => {\n setPopperState(false);\n },\n onSelectionSelect: onSelect,\n handleCheckAll\n };\n },\n render() {\n let suffix: IconPropType = ChevronDown;\n let prefix = null;\n if (this.loading) {\n suffix = LoaderCircle;\n }\n if (this.search && this.showPopper) {\n suffix = Search;\n }\n\n if (this.suffixIcon) {\n suffix = typeof this.suffixIcon === 'string' ? resolveComponent(this.suffixIcon) : (this.suffixIcon as Component);\n }\n\n if (this.prefixIcon) {\n prefix = typeof this.prefixIcon === 'string' ? resolveComponent(this.prefixIcon) : (this.prefixIcon as Component);\n }\n\n const displayValues = this.selectedOptions.map((single) => {\n let displayLabel: any;\n const labels = single.map((s) => s[this.fieldNames.label]);\n const value = single.map((s) => s[this.fieldNames.value]);\n if (this.$slots.labelRender) {\n displayLabel = this.$slots.labelRender({ labels, selectedOptions: single });\n } else if (this.showAllLevels) {\n displayLabel = labels.join('/');\n } else {\n displayLabel = labels[labels.length - 1];\n }\n\n return {\n value,\n displayLabel\n } as DisplayOption;\n });\n\n return (\n <Popup\n placement={this.popupPlacement}\n visible={this.showPopper}\n transitionName=\"slide-up\"\n clickOutside={this.onClickOutside}\n v-slots={{\n popup: () => (\n <CascaderMenu\n ref=\"cascaderMenuRef\"\n prefixCls={this.prefixCls}\n options={this.filteredOptions}\n values={this.innerValue}\n changeOnSelect={this.changeOnSelect}\n multiple={this.multiple}\n searchValue={this.searchValue}\n activeValue={this.activeValue}\n fieldNames={this.fieldNames}\n loadData={this.loadData}\n expandTrigger={this.expandTrigger}\n popStyle={this.popStyle}\n popupClassName={this.popupClassName}\n visible={this.showPopper}\n multipleLimit={this.multipleLimit}\n onUpdate-value={this.updateValue}\n onCheck-all={this.handleCheckAll}\n />\n )\n }}\n >\n <div\n ref=\"containerRef\"\n class={[\n this.prefixCls,\n {\n [`${this.$attrs.class}`]: this.$attrs.class,\n [`${this.prefixCls}-custom`]: this.$slots.default !== undefined,\n [`${this.selectPrefixCls}`]: true,\n [`${this.selectPrefixCls}-${this.size}`]: this.size,\n [`${this.selectPrefixCls}-variant-${this.variant}`]: true,\n [`${this.selectPrefixCls}-single`]: !this.multiple,\n [`${this.selectPrefixCls}-multiple`]: this.multiple,\n [`${this.selectPrefixCls}-open`]: this.showPopper,\n [`${this.selectPrefixCls}-filterable`]: this.search !== undefined,\n [`${this.selectPrefixCls}-focused`]: this.stateFocused,\n [`${this.selectPrefixCls}-disabled`]: this.disabled,\n [`${this.selectPrefixCls}-show-arrow`]: this.showArrow,\n [`${this.selectPrefixCls}-clearable`]: !!this.clearable,\n [`${this.selectPrefixCls}-with-clear`]: this.showClear,\n [`${this.selectPrefixCls}-loading`]: !!this.loading\n }\n ]}\n style={this.$attrs.style as StyleValue}\n data-color={this.color}\n tabindex={this.disabled ? -1 : 0}\n onMousedown={this.onContainerMouseDown}\n onKeydown={this.onContainerKeydown}\n >\n {this.label ? (\n <span\n class={{\n [`${this.selectPrefixCls}-label`]: true,\n [`${this.selectPrefixCls}-label-colon`]: this.labelColon,\n [`${this.selectPrefixCls}-label-required`]: this.required\n }}\n >\n {this.label}\n </span>\n ) : (\n prefix && (\n <span class={`${this.selectPrefixCls}-prefix`}>\n <UIcon spin={this.loading}>\n <prefix />\n </UIcon>\n </span>\n )\n )}\n {this.$slots.default ? (\n this.$slots.default()\n ) : (\n <Selection\n ref=\"selectionRef\"\n disabled={this.disabled}\n multiple={this.multiple}\n open={this.showPopper}\n values={displayValues}\n prefixCls={this.selectPrefixCls}\n filterable={this.search !== undefined}\n searchValue={this.searchValue}\n maxTagCount={this.maxTagCount}\n maxTagText-length={this.maxTagTextLength}\n maxTagPlaceholder={this.maxTagPlaceholder}\n maxTagTooltip={this.maxTagTooltip}\n maxTagTooltipWidth={this.maxTagTooltipWidth}\n tagRender={this.tagRender}\n tagTransitionName={this.tagTransitionName}\n triggerSearch={this.triggerSearch}\n onSelect={this.onSelectionSelect}\n v-slots={{\n placeholder: () => <>{this.loading ? this.loadingTextLocale : this.placeholder}</>\n }}\n ></Selection>\n )}\n {this.showArrow ? (\n <span class={`${this.selectPrefixCls}-arrow`}>\n <UIcon spin={this.loading}>\n <suffix />\n </UIcon>\n </span>\n ) : null}\n {this.showClear ? (\n <span\n class={`${this.selectPrefixCls}-clear`}\n onMousedown={(e) => {\n e.preventDefault();\n }}\n onClick={this.handleClear}\n >\n <UIcon>\n <CircleX />\n </UIcon>\n </span>\n ) : null}\n </div>\n </Popup>\n );\n }\n});\n"],"names":["defineComponent","name","inheritAttrs","props","cascaderProps","emits","cascaderEmits","setup","emit","slots","prefixCls","config","globalConfig","useGlobalConfig","selectPrefixCls","onFieldChange","inject","FormItemKey","searchValue","ref","showPopper","open","setPopperState","val","_open","undefined","value","disabled","loading","triggerSearch","watch","immediate","flatternOptions","getFlattenOptions","flattenTree","options","deep","filteredOptions","computed","search","limit","filter","sort","render","getSearchOptions","filtered","matchedCount","some","path","macthed","fieldNames","push","warn","a","b","renderFunc","filteredItem","length","map","_IS_FILTERED_OPTION_","label","labels","opt","keyword","className","notFoundContent","containerRef","containerWidth","getContainerWidth","useContainerWidth","onMounted","onUpdated","popStyle","customStyle","popupStyle","matchInputWidth","width","activeValue","setActiveValue","origin","startMatch","every","v","i","stateValue","innerValue","toOuterValue","useCascaderValue","getOptionsByValue","vals","single","arrayTreeFilter","o","level","childrenKeyName","children","selectedOptions","Array","isArray","active","pop","emitChange","_multiple","multiple","modelValue","handleClear","e","clearable","preventDefault","stopPropagation","onSelect","selected","_rawValue","cloneDeep","idx","findIndex","x","JSON","stringify","splice","updateValue","hasChild","type","keyCode","KeyCode","ENTER","changeOnSelect","handleCheckAll","clickValue","changeValues","parse","forEach","cascaderMenuRef","showClear","stateFocused","setStateFocused","useDelaySet","_immediateFocused","onContainerFocus","args","onContainerBlur","provide","focus","blur","onContainerMouseDown","removeLastEnabledValue","_selectedOptions","values","newValues","removeIndex","removedValue","onContainerKeydown","getSlot","child","onKeydown","DOWN","UP","LEFT","RIGHT","SPACE","BACKSPACE","ESC","TAB","currentActiveValue","currentLevel","menuEl","menuOptions","menus","currentOptions","currentIndex","getValueIndex","nextIndex","nextLevel","nextOptions","selectOption","handleSelect","removeInfo","loadingTextLocale","loadingText","locale","select","onClickOutside","onSelectionSelect","suffix","ChevronDown","prefix","LoaderCircle","Search","suffixIcon","resolveComponent","prefixIcon","displayValues","displayLabel","s","$slots","labelRender","showAllLevels","join","_createVNode","Popup","popupPlacement","default","$attrs","class","size","variant","showArrow","style","color","labelColon","required","UIcon","Selection","maxTagCount","maxTagTextLength","maxTagPlaceholder","maxTagTooltip","maxTagTooltipWidth","tagRender","tagTransitionName","placeholder","_Fragment","CircleX","popup","CascaderMenu","loadData","expandTrigger","popupClassName","multipleLimit"],"mappings":"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"}
@@ -171,7 +171,7 @@ export declare const cascaderProps: {
171
171
  type: StringConstructor;
172
172
  };
173
173
  variant: {
174
- type: PropType<"text" | "surface" | "soft">;
174
+ type: PropType<"surface" | "soft" | "borderless" | "underline">;
175
175
  default: string;
176
176
  validator: (val: string) => boolean;
177
177
  };
@@ -137,7 +137,7 @@ const cascaderProps = {
137
137
  variant: {
138
138
  type: String,
139
139
  default: "surface",
140
- validator: oneOf(["surface", "soft", "text"])
140
+ validator: oneOf(["surface", "soft", "underline", "borderless"])
141
141
  },
142
142
  color: {
143
143
  type: String,
@@ -1 +1 @@
1
- {"version":3,"file":"Cascader.type.mjs","sources":["../../../../src/components/Cascader/Cascader.type.ts"],"sourcesContent":["import type { CSSProperties, PropType, ExtractPropTypes, VNodeChild } from 'vue';\nimport type { JSX } from 'vue/jsx-runtime';\nimport type { Placements } from '../../utils/placements';\nimport type Cascader from './Cascader';\nimport { colorType } from '../../utils/globalType';\nimport type { ColorType, IconPropType, NormalSizeMap } from '../../utils/globalType';\nimport { oneOf } from '../../utils/propsValidators';\nimport placements from '../../utils/placements';\n\nexport interface CascaderOption {\n _IS_FILTERED_OPTION_?: boolean;\n isLeaf?: boolean;\n loading?: boolean;\n [key: string]: any;\n}\n\nexport interface FieldNamesMap {\n label: string;\n value: string;\n children: string;\n}\n\nexport type LoadDataFunction = (opt: CascaderOption, index: number) => Promise<CascaderOption[]>;\nexport type CascaderTrigger = 'click' | 'hover';\n\nexport type CascaderSearchFilter = (inputValue: string, path: CascaderOption[], names: FieldNamesMap) => boolean;\n\nexport type CascaderSearchSort = (a: CascaderOption[], b: CascaderOption[], inputValue: string, names: FieldNamesMap) => number;\nexport type CascaderSearchRender = (param: { labels: string[]; keyword: string; className: string }) => VNodeChild | JSX.Element;\n\nexport type CascaderUnitValueType = string | number;\n\nexport type CascaderSingleValueType = CascaderUnitValueType[];\n\nexport type CascaderMulipleValueType = CascaderSingleValueType[];\n\nexport type CascaderValueType = CascaderUnitValueType | CascaderMulipleValueType | CascaderSingleValueType;\n\nexport type CascaderInnerValueType = CascaderSingleValueType[];\n\nexport function isCascaderUnitValue(val: CascaderValueType): val is CascaderUnitValueType {\n return typeof val === 'string' || typeof val === 'number';\n}\n\nexport function isCascaderSingleValue(val: CascaderValueType): val is CascaderSingleValueType {\n return Array.isArray(val) && !val.some((x: any) => Array.isArray(x));\n}\n\nexport interface CascaderSearchObject {\n filter: CascaderSearchFilter;\n limit: number;\n matchInputWidth: boolean;\n sort: CascaderSearchSort;\n render: CascaderSearchRender;\n}\n\nexport type CascaderSearchFilterOut = (inputValue: string, path: CascaderOption[], names?: FieldNamesMap) => boolean;\n\nexport type CascaderSearchConfig =\n | {\n filter?: CascaderSearchFilterOut;\n limit?: number;\n matchInputWidth?: boolean;\n sort?: CascaderSearchSort;\n render?: CascaderSearchRender;\n }\n | boolean;\n\nexport const cascaderProps = {\n modelValue: {\n type: [String, Number, Array] as PropType<CascaderValueType>,\n default: undefined as undefined\n },\n emitPath: {\n type: Boolean,\n default: true\n },\n options: {\n type: Array as PropType<CascaderOption[]>,\n default: () => [] as CascaderOption[]\n },\n clearable: {\n type: Boolean,\n default: false\n },\n // popover trigger type\n disabled: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: ''\n },\n changeOnSelect: {\n type: Boolean,\n default: false\n },\n fieldNames: {\n type: Object as PropType<FieldNamesMap>,\n default: () => ({\n label: 'label',\n value: 'value',\n children: 'children'\n })\n },\n showAllLevels: {\n type: Boolean,\n default: true\n },\n loadData: {\n type: Function as PropType<LoadDataFunction>\n },\n // menu list expand type\n expandTrigger: {\n type: String as PropType<CascaderTrigger>,\n default: 'click',\n validator: oneOf(['click', 'hover'])\n },\n search: {\n type: [Boolean, Object] as PropType<CascaderSearchConfig>,\n default: undefined as undefined\n },\n notFoundContent: {\n type: String,\n default: 'Not Found'\n },\n popupClassName: {\n type: String\n },\n popupStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n popupPlacement: {\n type: String as PropType<Placements>,\n default: 'bottom-start',\n validator: oneOf(placements)\n },\n open: {\n type: Boolean as PropType<boolean | undefined>,\n default: undefined as undefined\n },\n prefixIcon: {\n type: [String, Object, Function] as PropType<IconPropType>\n },\n suffixIcon: {\n type: [String, Object, Function] as PropType<IconPropType>\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default',\n validator: oneOf(['small', 'default', 'large'])\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n maxTagCount: {\n type: Number\n },\n maxTagPlaceholder: {\n type: Function as PropType<(rest: any[]) => string | VNodeChild | JSX.Element>\n },\n maxTagTextLength: {\n type: Number\n },\n tagRender: {\n type: Function as PropType<any>\n },\n tagTransitionName: {\n type: String,\n default: 'fade'\n },\n multipleLimit: {\n type: Number,\n default: 0\n },\n maxTagTooltip: {\n type: Boolean,\n default: false\n },\n maxTagTooltipWidth: {\n type: Number\n },\n loadingText: {\n type: String\n },\n variant: {\n type: String as PropType<'surface' | 'soft' | 'text'>,\n default: 'surface',\n validator: oneOf(['surface', 'soft', 'text'])\n },\n color: {\n type: String as PropType<ColorType | undefined>,\n default: undefined as undefined | ColorType,\n validator: oneOf(colorType)\n },\n label: {\n type: String\n },\n labelColon: {\n type: Boolean,\n default: true\n },\n required: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String as PropType<Placements>,\n default: 'bottom-start',\n validator: oneOf(placements)\n }\n};\n\nexport type CascaderProps = ExtractPropTypes<typeof cascaderProps>;\n\nexport const cascaderEmits = {\n focus: (ev: Event) => ev instanceof Event,\n blur: (ev: Event) => ev instanceof Event,\n mousedown: (ev: Event) => ev instanceof Event,\n keydown: (ev: KeyboardEvent) => ev instanceof KeyboardEvent,\n 'dropdown-visible-change': (val: boolean) => typeof val === 'boolean',\n 'update:modelValue': (val: CascaderValueType) => {\n if (!Array.isArray(val)) {\n return typeof val === 'string' || typeof val === 'number' || typeof val === 'undefined';\n }\n if (val.length !== 0) {\n if (isCascaderSingleValue(val)) {\n return val.every((v: any) => typeof v === 'string' || typeof v === 'number');\n }\n return val.every((v: any) => Array.isArray(v));\n }\n return true;\n },\n change: (val: CascaderValueType, options: CascaderOption[]) => {\n if (!Array.isArray(val) || !Array.isArray(options)) {\n return typeof val === 'string' || typeof val === 'number' || typeof val === 'undefined';\n }\n if (val.length !== 0) {\n if (isCascaderSingleValue(val)) {\n return val.every((v: any) => typeof v === 'string' || typeof v === 'number');\n }\n return val.every((v: any) => Array.isArray(v));\n }\n return true;\n }\n};\n\nexport type CascaderEmits = typeof cascaderEmits;\n\nexport type CascaderInstanceType = InstanceType<typeof Cascader>;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cascader.type.mjs","sources":["../../../../src/components/Cascader/Cascader.type.ts"],"sourcesContent":["import type { CSSProperties, PropType, ExtractPropTypes, VNodeChild } from 'vue';\nimport type { JSX } from 'vue/jsx-runtime';\nimport type { Placements } from '../../utils/placements';\nimport type Cascader from './Cascader';\nimport { colorType } from '../../utils/globalType';\nimport type { ColorType, IconPropType, NormalSizeMap } from '../../utils/globalType';\nimport { oneOf } from '../../utils/propsValidators';\nimport placements from '../../utils/placements';\n\nexport interface CascaderOption {\n _IS_FILTERED_OPTION_?: boolean;\n isLeaf?: boolean;\n loading?: boolean;\n [key: string]: any;\n}\n\nexport interface FieldNamesMap {\n label: string;\n value: string;\n children: string;\n}\n\nexport type LoadDataFunction = (opt: CascaderOption, index: number) => Promise<CascaderOption[]>;\nexport type CascaderTrigger = 'click' | 'hover';\n\nexport type CascaderSearchFilter = (inputValue: string, path: CascaderOption[], names: FieldNamesMap) => boolean;\n\nexport type CascaderSearchSort = (a: CascaderOption[], b: CascaderOption[], inputValue: string, names: FieldNamesMap) => number;\nexport type CascaderSearchRender = (param: { labels: string[]; keyword: string; className: string }) => VNodeChild | JSX.Element;\n\nexport type CascaderUnitValueType = string | number;\n\nexport type CascaderSingleValueType = CascaderUnitValueType[];\n\nexport type CascaderMulipleValueType = CascaderSingleValueType[];\n\nexport type CascaderValueType = CascaderUnitValueType | CascaderMulipleValueType | CascaderSingleValueType;\n\nexport type CascaderInnerValueType = CascaderSingleValueType[];\n\nexport function isCascaderUnitValue(val: CascaderValueType): val is CascaderUnitValueType {\n return typeof val === 'string' || typeof val === 'number';\n}\n\nexport function isCascaderSingleValue(val: CascaderValueType): val is CascaderSingleValueType {\n return Array.isArray(val) && !val.some((x: any) => Array.isArray(x));\n}\n\nexport interface CascaderSearchObject {\n filter: CascaderSearchFilter;\n limit: number;\n matchInputWidth: boolean;\n sort: CascaderSearchSort;\n render: CascaderSearchRender;\n}\n\nexport type CascaderSearchFilterOut = (inputValue: string, path: CascaderOption[], names?: FieldNamesMap) => boolean;\n\nexport type CascaderSearchConfig =\n | {\n filter?: CascaderSearchFilterOut;\n limit?: number;\n matchInputWidth?: boolean;\n sort?: CascaderSearchSort;\n render?: CascaderSearchRender;\n }\n | boolean;\n\nexport const cascaderProps = {\n modelValue: {\n type: [String, Number, Array] as PropType<CascaderValueType>,\n default: undefined as undefined\n },\n emitPath: {\n type: Boolean,\n default: true\n },\n options: {\n type: Array as PropType<CascaderOption[]>,\n default: () => [] as CascaderOption[]\n },\n clearable: {\n type: Boolean,\n default: false\n },\n // popover trigger type\n disabled: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: ''\n },\n changeOnSelect: {\n type: Boolean,\n default: false\n },\n fieldNames: {\n type: Object as PropType<FieldNamesMap>,\n default: () => ({\n label: 'label',\n value: 'value',\n children: 'children'\n })\n },\n showAllLevels: {\n type: Boolean,\n default: true\n },\n loadData: {\n type: Function as PropType<LoadDataFunction>\n },\n // menu list expand type\n expandTrigger: {\n type: String as PropType<CascaderTrigger>,\n default: 'click',\n validator: oneOf(['click', 'hover'])\n },\n search: {\n type: [Boolean, Object] as PropType<CascaderSearchConfig>,\n default: undefined as undefined\n },\n notFoundContent: {\n type: String,\n default: 'Not Found'\n },\n popupClassName: {\n type: String\n },\n popupStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n popupPlacement: {\n type: String as PropType<Placements>,\n default: 'bottom-start',\n validator: oneOf(placements)\n },\n open: {\n type: Boolean as PropType<boolean | undefined>,\n default: undefined as undefined\n },\n prefixIcon: {\n type: [String, Object, Function] as PropType<IconPropType>\n },\n suffixIcon: {\n type: [String, Object, Function] as PropType<IconPropType>\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default',\n validator: oneOf(['small', 'default', 'large'])\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n loading: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n maxTagCount: {\n type: Number\n },\n maxTagPlaceholder: {\n type: Function as PropType<(rest: any[]) => string | VNodeChild | JSX.Element>\n },\n maxTagTextLength: {\n type: Number\n },\n tagRender: {\n type: Function as PropType<any>\n },\n tagTransitionName: {\n type: String,\n default: 'fade'\n },\n multipleLimit: {\n type: Number,\n default: 0\n },\n maxTagTooltip: {\n type: Boolean,\n default: false\n },\n maxTagTooltipWidth: {\n type: Number\n },\n loadingText: {\n type: String\n },\n variant: {\n type: String as PropType<'surface' | 'soft' | 'underline' | 'borderless'>,\n default: 'surface',\n validator: oneOf(['surface', 'soft', 'underline', 'borderless'])\n },\n color: {\n type: String as PropType<ColorType | undefined>,\n default: undefined as undefined | ColorType,\n validator: oneOf(colorType)\n },\n label: {\n type: String\n },\n labelColon: {\n type: Boolean,\n default: true\n },\n required: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String as PropType<Placements>,\n default: 'bottom-start',\n validator: oneOf(placements)\n }\n};\n\nexport type CascaderProps = ExtractPropTypes<typeof cascaderProps>;\n\nexport const cascaderEmits = {\n focus: (ev: Event) => ev instanceof Event,\n blur: (ev: Event) => ev instanceof Event,\n mousedown: (ev: Event) => ev instanceof Event,\n keydown: (ev: KeyboardEvent) => ev instanceof KeyboardEvent,\n 'dropdown-visible-change': (val: boolean) => typeof val === 'boolean',\n 'update:modelValue': (val: CascaderValueType) => {\n if (!Array.isArray(val)) {\n return typeof val === 'string' || typeof val === 'number' || typeof val === 'undefined';\n }\n if (val.length !== 0) {\n if (isCascaderSingleValue(val)) {\n return val.every((v: any) => typeof v === 'string' || typeof v === 'number');\n }\n return val.every((v: any) => Array.isArray(v));\n }\n return true;\n },\n change: (val: CascaderValueType, options: CascaderOption[]) => {\n if (!Array.isArray(val) || !Array.isArray(options)) {\n return typeof val === 'string' || typeof val === 'number' || typeof val === 'undefined';\n }\n if (val.length !== 0) {\n if (isCascaderSingleValue(val)) {\n return val.every((v: any) => typeof v === 'string' || typeof v === 'number');\n }\n return val.every((v: any) => Array.isArray(v));\n }\n return true;\n }\n};\n\nexport type CascaderEmits = typeof cascaderEmits;\n\nexport type CascaderInstanceType = InstanceType<typeof Cascader>;\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, ref, watch, nextTick, createVNode } from 'vue';
2
2
  import { UIcon } from '../Icon/index.mjs';
3
3
  import { UCheckbox } from '../Checkbox/index.mjs';
4
- import { CheckCircle, LoaderCircle, ChevronRight } from 'lucide-vue-next';
4
+ import { CheckIcon, LoaderCircle, ChevronRight } from 'lucide-vue-next';
5
5
  import RenderEmpty from '../base/RenderEmpty.mjs';
6
6
  import { oneOf } from '../../utils/propsValidators.mjs';
7
7
  import { scrollTop } from '../../utils/dom.mjs';
@@ -288,7 +288,7 @@ var CascaderMenu = defineComponent({
288
288
  return createVNode(UIcon, {
289
289
  "class": `${prefixCls}-menu-item-checked-icon`
290
290
  }, {
291
- default: () => [createVNode(CheckCircle, null, null)]
291
+ default: () => [createVNode(CheckIcon, null, null)]
292
292
  });
293
293
  }
294
294
  return null;
@@ -299,7 +299,7 @@ var CascaderMenu = defineComponent({
299
299
  return createVNode(UIcon, {
300
300
  "class": `${prefixCls}-menu-item-checked-icon`
301
301
  }, {
302
- default: () => [createVNode(CheckCircle, null, null)]
302
+ default: () => [createVNode(CheckIcon, null, null)]
303
303
  });
304
304
  }
305
305
  return null;
@@ -327,7 +327,7 @@ var CascaderMenu = defineComponent({
327
327
  return createVNode(UIcon, {
328
328
  "class": `${prefixCls}-menu-item-checked-icon`
329
329
  }, {
330
- default: () => [createVNode(CheckCircle, null, null)]
330
+ default: () => [createVNode(CheckIcon, null, null)]
331
331
  });
332
332
  }
333
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CascaderMenu.mjs","sources":["../../../../src/components/Cascader/CascaderMenu.tsx"],"sourcesContent":["import { defineComponent, ref, computed, nextTick, watch } from 'vue';\nimport type { PropType, CSSProperties } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UCheckbox from '@uxd-ui/components/Checkbox';\nimport { LoaderCircle, ChevronRight, CheckCircle } from 'lucide-vue-next';\nimport RenderEmpty from '../base/RenderEmpty.vue';\nimport { oneOf } from '../../utils/propsValidators';\nimport { scrollTop } from '../../utils/dom';\nimport { getAllChildrenValues } from './utils';\nimport type {\n CascaderOption,\n CascaderTrigger,\n FieldNamesMap,\n LoadDataFunction,\n CascaderValueType,\n CascaderSingleValueType,\n CascaderInnerValueType\n} from './Cascader.type';\n\nconst defineProps = {\n prefixCls: {\n type: String,\n default: 'cascader'\n },\n options: {\n type: Array as PropType<CascaderOption[]>,\n default: () => [] as CascaderOption[]\n },\n values: {\n type: Array as PropType<CascaderInnerValueType>,\n default: () => [] as CascaderValueType\n },\n changeOnSelect: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n activeValue: {\n type: Array as PropType<CascaderSingleValueType>,\n default: () => [] as CascaderValueType\n },\n searchValue: {\n type: String,\n default: ''\n },\n fieldNames: {\n type: Object as PropType<FieldNamesMap>,\n default: () => ({\n label: 'label',\n value: 'value',\n children: 'children'\n })\n },\n loadData: {\n type: Function as PropType<LoadDataFunction>\n },\n expandTrigger: {\n type: String as PropType<CascaderTrigger>,\n default: 'click',\n validator: oneOf(['click', 'hover'])\n },\n popStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n popupClassName: {\n type: String\n },\n visible: {\n type: Boolean,\n default: false\n },\n multipleLimit: {\n type: Number,\n default: 0\n }\n};\n\nexport default defineComponent({\n name: 'CascaderMenu',\n props: defineProps,\n emits: ['update-value', 'check-all'],\n setup(props, { emit }) {\n /**\n * compute show options\n */\n const menus = computed(() => {\n const optionList = [props.options];\n // search mode, return options\n if (props.searchValue) {\n return optionList;\n }\n let currentOpts = props.options;\n const activeValues = props.activeValue;\n activeValues.forEach((sVal) => {\n const nextVal = currentOpts.find((o) => o[props.fieldNames.value] === sVal);\n if (nextVal && nextVal[props.fieldNames.children] && nextVal[props.fieldNames.children].length) {\n optionList.push(nextVal[props.fieldNames.children]);\n currentOpts = nextVal[props.fieldNames.children];\n }\n });\n return optionList;\n });\n\n /**\n * update activeValue and value to parent component\n */\n const updateValue = (val: CascaderValueType, hasChild: boolean, e: MouseEvent) => {\n emit('update-value', val, hasChild, e);\n };\n\n const activeEls = ref<any[]>([]);\n /**\n * @param {*}\n * @return {*}\n * @description Element.scrollIntoView might cause grantParent scroll, use util methods\n */\n const scrollElToView = () => {\n setTimeout(() => {\n activeEls.value.forEach((el) => {\n const parent = el.parentNode;\n const top = el.offsetTop;\n if (parent && top > 0) {\n scrollTop(parent as HTMLElement, top, 300);\n }\n // el.scrollIntoView(true);\n });\n }, 0);\n };\n\n watch(\n () => props.visible,\n (nv) => {\n if (nv) {\n nextTick(() => {\n scrollElToView();\n });\n }\n },\n {\n immediate: true\n }\n );\n\n /**\n * @param {number} menuIndex\n * @param {object} option\n * @return {number} 0 unselected 1 selected 2 indeterminate\n * @description item active or not\n */\n const itemSelected = (menuIndex: number, option: CascaderOption): number => {\n if (props.values.length === 0) {\n return 0;\n }\n const itemValue = option[props.fieldNames.value];\n\n if (Array.isArray(itemValue)) {\n return props.values.some((val) => JSON.stringify(itemValue) === JSON.stringify(val)) ? 1 : 0;\n }\n const itemChildren = option[props.fieldNames.children] as CascaderOption[];\n if (itemChildren && itemChildren.length && props.values.some((val) => itemValue === val[menuIndex])) {\n let childIndeterminate = false;\n let count = 0;\n itemChildren.forEach((c) => {\n const childSelected = itemSelected(menuIndex + 1, c);\n if (childSelected === 1) {\n count += 1;\n } else if (childSelected === 2) {\n childIndeterminate = true;\n }\n });\n if (count !== 0 && count !== itemChildren.length) {\n return 2;\n }\n if (count === itemChildren.length) {\n return 1;\n }\n return childIndeterminate ? 2 : 0;\n }\n return props.values.some((val) => itemValue === val[menuIndex]) ? 1 : 0;\n };\n\n /**\n * @param {number} menuIndex\n * @param {object} option\n * @return {boolean}\n * @description item active or not\n */\n const itemActive = (menuIndex: number, option: CascaderOption) => {\n const itemValue = option[props.fieldNames.value];\n if (Array.isArray(itemValue)) {\n return JSON.stringify(itemValue) === JSON.stringify(props.activeValue);\n }\n return itemValue === props.activeValue[menuIndex];\n };\n\n /**\n * @param {*} object\n * @return {boolean}\n * @description each item show expand icon or not\n */\n const showExpandIcon = (option: CascaderOption) => {\n return (\n (!option._IS_FILTERED_OPTION_ && option[props.fieldNames.children] && option[props.fieldNames.children].length) || option.isLeaf === false\n );\n };\n\n const overLimit = (menuIndex: number, option: CascaderOption) => {\n if (!props.multipleLimit) {\n return false;\n }\n if ((option[props.fieldNames.children] && option[props.fieldNames.children].length) || option.isLeaf === false) {\n return false;\n }\n if (itemSelected(menuIndex, option) !== 1) {\n return props.values.length >= props.multipleLimit;\n }\n };\n\n const loadAsyncChildren = (opt: CascaderOption, index: number, next: () => void) => {\n opt.loading = true;\n props\n .loadData(opt, index)\n .then((data) => {\n if (data.length > 0) {\n opt[props.fieldNames.children] = data;\n }\n next();\n opt.loading = false;\n })\n .catch(() => {\n opt.loading = false;\n });\n };\n\n const hasChildren = (_opt: CascaderOption) => _opt[props.fieldNames.children] && _opt[props.fieldNames.children].length > 0;\n\n /**\n * handle select\n */\n const handleSelect = (opt: CascaderOption, index: number, e: any) => {\n if (opt.disabled || overLimit(index, opt)) return;\n if (opt._IS_FILTERED_OPTION_) {\n updateValue(opt[props.fieldNames.value], false, e);\n return;\n }\n const hasChild = hasChildren(opt);\n const activeValues = props.activeValue;\n let tempValue = [...activeValues];\n tempValue[index] = opt[props.fieldNames.value];\n if (index < tempValue.length - 1) {\n tempValue = tempValue.slice(0, index + 1);\n }\n if (props.loadData && opt.isLeaf === false) {\n loadAsyncChildren(opt, index, () => {\n updateValue(tempValue, true, e);\n });\n } else {\n updateValue(tempValue, hasChild, e);\n }\n };\n\n let timer: any = null;\n const handleMouseEvent = (opt: CascaderOption, index: number, e: MouseEvent) => {\n if (props.expandTrigger !== 'hover') return;\n if (e.type === 'mouseleave' && timer) {\n clearTimeout(timer);\n timer = null;\n }\n if (e.type === 'mouseenter') {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n } else {\n timer = setTimeout(() => {\n if (opt[props.fieldNames.children]) {\n handleSelect(opt, index, e);\n }\n timer = null;\n }, 150);\n }\n }\n };\n\n const handleCheck = (opt: CascaderOption, index: number, selected: boolean, e: MouseEvent) => {\n e.stopPropagation();\n const parents = [...props.activeValue].slice(0, index);\n const clickValue = [...parents, opt[props.fieldNames.value]];\n if (!hasChildren(opt)) {\n handleSelect(opt, index, e);\n } else {\n const changedValues = getAllChildrenValues(opt, [...parents, opt[props.fieldNames.value]], props.fieldNames);\n emit('check-all', clickValue, changedValues, { selected });\n }\n };\n\n return {\n menus,\n activeEls,\n handleSelect,\n handleMouseEvent,\n handleCheck,\n itemActive,\n itemSelected,\n showExpandIcon,\n overLimit\n };\n },\n render() {\n const {\n prefixCls,\n popupClassName,\n popStyle,\n fieldNames,\n activeValue,\n menus,\n activeEls,\n handleSelect,\n handleMouseEvent,\n itemActive,\n showExpandIcon\n } = this;\n\n const getKey = (option: CascaderOption) => {\n return Array.isArray(option[fieldNames.value]) ? option[fieldNames.value].join(`_${prefixCls}_`) : option[fieldNames.value];\n };\n\n const setEls = (el: HTMLElement, menuIndex: number, option: CascaderOption) => {\n if (el && activeValue[menuIndex] === option[fieldNames.value]) {\n activeEls[menuIndex] = el;\n }\n };\n\n const getCls = (option: CascaderOption, menuIndex: number) => {\n return [\n `${prefixCls}-menu-item`,\n {\n [`${prefixCls}-menu-item-expand`]: showExpandIcon(option),\n [`${prefixCls}-menu-item-active`]: itemActive(menuIndex, option),\n [`${prefixCls}-menu-item-selected`]: this.itemSelected(menuIndex, option) > 0 && this.multiple,\n [`${prefixCls}-menu-item-disabled`]: option.disabled || this.overLimit(menuIndex, option),\n [`${prefixCls}-menu-item-not-found`]: option[fieldNames.value] === '_Not_Found_'\n }\n ];\n };\n\n const getPrefix = (menuIndex: number, option: CascaderOption) => {\n if (option[fieldNames.value] === '_Not_Found_') {\n return null;\n }\n if (option._IS_FILTERED_OPTION_) {\n if (this.itemSelected(menuIndex, option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-checked-icon`}>\n <CheckCircle />\n </UIcon>\n );\n }\n return null;\n }\n if (this.multiple) {\n if (this.multipleLimit !== 0 && option[fieldNames.children] && option[fieldNames.children].length) {\n if (this.itemSelected(menuIndex, option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-checked-icon`}>\n <CheckCircle />\n </UIcon>\n );\n }\n return null;\n }\n if (option.isLeaf === false) {\n return null;\n }\n let checked = false;\n let indeterminate = false;\n const selected = this.itemSelected(menuIndex, option);\n if (selected === 1) {\n checked = true;\n } else if (selected === 2) {\n indeterminate = true;\n }\n\n return (\n <UCheckbox\n class={`${prefixCls}-menu-item-checkbox`}\n indeterminate={indeterminate}\n modelValue={checked}\n onClick={(e: any) => this.handleCheck(option, menuIndex, !checked, e)}\n ></UCheckbox>\n );\n }\n if (!this.multiple) {\n if (this.itemSelected(menuIndex, option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-checked-icon`}>\n <CheckCircle />\n </UIcon>\n );\n }\n }\n return null;\n };\n\n const getAffix = (option: CascaderOption) => {\n if (option.loading) {\n return (\n <UIcon class={`${prefixCls}-menu-item-suffix`} spin>\n <LoaderCircle />\n </UIcon>\n );\n }\n if (showExpandIcon(option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-suffix`}>\n <ChevronRight />\n </UIcon>\n );\n }\n\n return null;\n };\n\n const labelRenderer = (option: CascaderOption) => {\n if (option[fieldNames.value] === '_Not_Found_') {\n return (\n <div class={`${prefixCls}-menu-not-found`}>\n <RenderEmpty size=\"small\" text={option[fieldNames.label]} />\n </div>\n );\n }\n return typeof option[fieldNames.label] === 'function' ? option[fieldNames.label]() : option[fieldNames.label];\n };\n\n return (\n <div\n class={`${prefixCls}-menu-wrap`}\n onMousedown={(e) => {\n e.preventDefault();\n }}\n >\n {menus.map((menu, menuIndex) => (\n <ul key={menuIndex} class={[[`${prefixCls}-menu`, popupClassName]]} style={popStyle as CSSProperties}>\n {menu.map((option) => (\n <li\n key={getKey(option)}\n ref={(el) => setEls(el as HTMLElement, menuIndex, option)}\n role=\"menuitem\"\n class={getCls(option, menuIndex)}\n onClick={(e) => handleSelect(option, menuIndex, e)}\n onMouseenter={(e) => handleMouseEvent(option, menuIndex, e)}\n onMouseleave={(e) => handleMouseEvent(option, menuIndex, e)}\n >\n {getPrefix(menuIndex, option)}\n {labelRenderer(option)}\n {getAffix(option)}\n </li>\n ))}\n </ul>\n ))}\n </div>\n );\n }\n});\n"],"names":["defineProps","prefixCls","type","String","default","options","Array","values","changeOnSelect","Boolean","multiple","activeValue","searchValue","fieldNames","Object","label","value","children","loadData","Function","expandTrigger","validator","oneOf","popStyle","popupClassName","visible","multipleLimit","Number","defineComponent","name","props","emits","setup","emit","menus","computed","optionList","currentOpts","activeValues","forEach","sVal","nextVal","find","o","length","push","updateValue","val","hasChild","e","activeEls","ref","scrollElToView","setTimeout","el","parent","parentNode","top","offsetTop","scrollTop","watch","nv","nextTick","immediate","itemSelected","menuIndex","option","itemValue","isArray","some","JSON","stringify","itemChildren","childIndeterminate","count","c","childSelected","itemActive","showExpandIcon","_IS_FILTERED_OPTION_","isLeaf","overLimit","loadAsyncChildren","opt","index","next","loading","then","data","catch","hasChildren","_opt","handleSelect","disabled","tempValue","slice","timer","handleMouseEvent","clearTimeout","handleCheck","selected","stopPropagation","parents","clickValue","changedValues","getAllChildrenValues","render","getKey","join","setEls","getCls","getPrefix","_createVNode","UIcon","CheckCircle","checked","indeterminate","UCheckbox","getAffix","LoaderCircle","ChevronRight","labelRenderer","RenderEmpty","preventDefault","map","menu"],"mappings":"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"}
1
+ {"version":3,"file":"CascaderMenu.mjs","sources":["../../../../src/components/Cascader/CascaderMenu.tsx"],"sourcesContent":["import { defineComponent, ref, computed, nextTick, watch } from 'vue';\nimport type { PropType, CSSProperties } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UCheckbox from '@uxd-ui/components/Checkbox';\nimport { LoaderCircle, ChevronRight, CheckIcon } from 'lucide-vue-next';\nimport RenderEmpty from '../base/RenderEmpty.vue';\nimport { oneOf } from '../../utils/propsValidators';\nimport { scrollTop } from '../../utils/dom';\nimport { getAllChildrenValues } from './utils';\nimport type {\n CascaderOption,\n CascaderTrigger,\n FieldNamesMap,\n LoadDataFunction,\n CascaderValueType,\n CascaderSingleValueType,\n CascaderInnerValueType\n} from './Cascader.type';\n\nconst defineProps = {\n prefixCls: {\n type: String,\n default: 'cascader'\n },\n options: {\n type: Array as PropType<CascaderOption[]>,\n default: () => [] as CascaderOption[]\n },\n values: {\n type: Array as PropType<CascaderInnerValueType>,\n default: () => [] as CascaderValueType\n },\n changeOnSelect: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n activeValue: {\n type: Array as PropType<CascaderSingleValueType>,\n default: () => [] as CascaderValueType\n },\n searchValue: {\n type: String,\n default: ''\n },\n fieldNames: {\n type: Object as PropType<FieldNamesMap>,\n default: () => ({\n label: 'label',\n value: 'value',\n children: 'children'\n })\n },\n loadData: {\n type: Function as PropType<LoadDataFunction>\n },\n expandTrigger: {\n type: String as PropType<CascaderTrigger>,\n default: 'click',\n validator: oneOf(['click', 'hover'])\n },\n popStyle: {\n type: Object as PropType<CSSProperties>,\n default: () => ({})\n },\n popupClassName: {\n type: String\n },\n visible: {\n type: Boolean,\n default: false\n },\n multipleLimit: {\n type: Number,\n default: 0\n }\n};\n\nexport default defineComponent({\n name: 'CascaderMenu',\n props: defineProps,\n emits: ['update-value', 'check-all'],\n setup(props, { emit }) {\n /**\n * compute show options\n */\n const menus = computed(() => {\n const optionList = [props.options];\n // search mode, return options\n if (props.searchValue) {\n return optionList;\n }\n let currentOpts = props.options;\n const activeValues = props.activeValue;\n activeValues.forEach((sVal) => {\n const nextVal = currentOpts.find((o) => o[props.fieldNames.value] === sVal);\n if (nextVal && nextVal[props.fieldNames.children] && nextVal[props.fieldNames.children].length) {\n optionList.push(nextVal[props.fieldNames.children]);\n currentOpts = nextVal[props.fieldNames.children];\n }\n });\n return optionList;\n });\n\n /**\n * update activeValue and value to parent component\n */\n const updateValue = (val: CascaderValueType, hasChild: boolean, e: MouseEvent) => {\n emit('update-value', val, hasChild, e);\n };\n\n const activeEls = ref<any[]>([]);\n /**\n * @param {*}\n * @return {*}\n * @description Element.scrollIntoView might cause grantParent scroll, use util methods\n */\n const scrollElToView = () => {\n setTimeout(() => {\n activeEls.value.forEach((el) => {\n const parent = el.parentNode;\n const top = el.offsetTop;\n if (parent && top > 0) {\n scrollTop(parent as HTMLElement, top, 300);\n }\n // el.scrollIntoView(true);\n });\n }, 0);\n };\n\n watch(\n () => props.visible,\n (nv) => {\n if (nv) {\n nextTick(() => {\n scrollElToView();\n });\n }\n },\n {\n immediate: true\n }\n );\n\n /**\n * @param {number} menuIndex\n * @param {object} option\n * @return {number} 0 unselected 1 selected 2 indeterminate\n * @description item active or not\n */\n const itemSelected = (menuIndex: number, option: CascaderOption): number => {\n if (props.values.length === 0) {\n return 0;\n }\n const itemValue = option[props.fieldNames.value];\n\n if (Array.isArray(itemValue)) {\n return props.values.some((val) => JSON.stringify(itemValue) === JSON.stringify(val)) ? 1 : 0;\n }\n const itemChildren = option[props.fieldNames.children] as CascaderOption[];\n if (itemChildren && itemChildren.length && props.values.some((val) => itemValue === val[menuIndex])) {\n let childIndeterminate = false;\n let count = 0;\n itemChildren.forEach((c) => {\n const childSelected = itemSelected(menuIndex + 1, c);\n if (childSelected === 1) {\n count += 1;\n } else if (childSelected === 2) {\n childIndeterminate = true;\n }\n });\n if (count !== 0 && count !== itemChildren.length) {\n return 2;\n }\n if (count === itemChildren.length) {\n return 1;\n }\n return childIndeterminate ? 2 : 0;\n }\n return props.values.some((val) => itemValue === val[menuIndex]) ? 1 : 0;\n };\n\n /**\n * @param {number} menuIndex\n * @param {object} option\n * @return {boolean}\n * @description item active or not\n */\n const itemActive = (menuIndex: number, option: CascaderOption) => {\n const itemValue = option[props.fieldNames.value];\n if (Array.isArray(itemValue)) {\n return JSON.stringify(itemValue) === JSON.stringify(props.activeValue);\n }\n return itemValue === props.activeValue[menuIndex];\n };\n\n /**\n * @param {*} object\n * @return {boolean}\n * @description each item show expand icon or not\n */\n const showExpandIcon = (option: CascaderOption) => {\n return (\n (!option._IS_FILTERED_OPTION_ && option[props.fieldNames.children] && option[props.fieldNames.children].length) || option.isLeaf === false\n );\n };\n\n const overLimit = (menuIndex: number, option: CascaderOption) => {\n if (!props.multipleLimit) {\n return false;\n }\n if ((option[props.fieldNames.children] && option[props.fieldNames.children].length) || option.isLeaf === false) {\n return false;\n }\n if (itemSelected(menuIndex, option) !== 1) {\n return props.values.length >= props.multipleLimit;\n }\n };\n\n const loadAsyncChildren = (opt: CascaderOption, index: number, next: () => void) => {\n opt.loading = true;\n props\n .loadData(opt, index)\n .then((data) => {\n if (data.length > 0) {\n opt[props.fieldNames.children] = data;\n }\n next();\n opt.loading = false;\n })\n .catch(() => {\n opt.loading = false;\n });\n };\n\n const hasChildren = (_opt: CascaderOption) => _opt[props.fieldNames.children] && _opt[props.fieldNames.children].length > 0;\n\n /**\n * handle select\n */\n const handleSelect = (opt: CascaderOption, index: number, e: any) => {\n if (opt.disabled || overLimit(index, opt)) return;\n if (opt._IS_FILTERED_OPTION_) {\n updateValue(opt[props.fieldNames.value], false, e);\n return;\n }\n const hasChild = hasChildren(opt);\n const activeValues = props.activeValue;\n let tempValue = [...activeValues];\n tempValue[index] = opt[props.fieldNames.value];\n if (index < tempValue.length - 1) {\n tempValue = tempValue.slice(0, index + 1);\n }\n if (props.loadData && opt.isLeaf === false) {\n loadAsyncChildren(opt, index, () => {\n updateValue(tempValue, true, e);\n });\n } else {\n updateValue(tempValue, hasChild, e);\n }\n };\n\n let timer: any = null;\n const handleMouseEvent = (opt: CascaderOption, index: number, e: MouseEvent) => {\n if (props.expandTrigger !== 'hover') return;\n if (e.type === 'mouseleave' && timer) {\n clearTimeout(timer);\n timer = null;\n }\n if (e.type === 'mouseenter') {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n } else {\n timer = setTimeout(() => {\n if (opt[props.fieldNames.children]) {\n handleSelect(opt, index, e);\n }\n timer = null;\n }, 150);\n }\n }\n };\n\n const handleCheck = (opt: CascaderOption, index: number, selected: boolean, e: MouseEvent) => {\n e.stopPropagation();\n const parents = [...props.activeValue].slice(0, index);\n const clickValue = [...parents, opt[props.fieldNames.value]];\n if (!hasChildren(opt)) {\n handleSelect(opt, index, e);\n } else {\n const changedValues = getAllChildrenValues(opt, [...parents, opt[props.fieldNames.value]], props.fieldNames);\n emit('check-all', clickValue, changedValues, { selected });\n }\n };\n\n return {\n menus,\n activeEls,\n handleSelect,\n handleMouseEvent,\n handleCheck,\n itemActive,\n itemSelected,\n showExpandIcon,\n overLimit\n };\n },\n render() {\n const {\n prefixCls,\n popupClassName,\n popStyle,\n fieldNames,\n activeValue,\n menus,\n activeEls,\n handleSelect,\n handleMouseEvent,\n itemActive,\n showExpandIcon\n } = this;\n\n const getKey = (option: CascaderOption) => {\n return Array.isArray(option[fieldNames.value]) ? option[fieldNames.value].join(`_${prefixCls}_`) : option[fieldNames.value];\n };\n\n const setEls = (el: HTMLElement, menuIndex: number, option: CascaderOption) => {\n if (el && activeValue[menuIndex] === option[fieldNames.value]) {\n activeEls[menuIndex] = el;\n }\n };\n\n const getCls = (option: CascaderOption, menuIndex: number) => {\n return [\n `${prefixCls}-menu-item`,\n {\n [`${prefixCls}-menu-item-expand`]: showExpandIcon(option),\n [`${prefixCls}-menu-item-active`]: itemActive(menuIndex, option),\n [`${prefixCls}-menu-item-selected`]: this.itemSelected(menuIndex, option) > 0 && this.multiple,\n [`${prefixCls}-menu-item-disabled`]: option.disabled || this.overLimit(menuIndex, option),\n [`${prefixCls}-menu-item-not-found`]: option[fieldNames.value] === '_Not_Found_'\n }\n ];\n };\n\n const getPrefix = (menuIndex: number, option: CascaderOption) => {\n if (option[fieldNames.value] === '_Not_Found_') {\n return null;\n }\n if (option._IS_FILTERED_OPTION_) {\n if (this.itemSelected(menuIndex, option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-checked-icon`}>\n <CheckIcon />\n </UIcon>\n );\n }\n return null;\n }\n if (this.multiple) {\n if (this.multipleLimit !== 0 && option[fieldNames.children] && option[fieldNames.children].length) {\n if (this.itemSelected(menuIndex, option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-checked-icon`}>\n <CheckIcon />\n </UIcon>\n );\n }\n return null;\n }\n if (option.isLeaf === false) {\n return null;\n }\n let checked = false;\n let indeterminate = false;\n const selected = this.itemSelected(menuIndex, option);\n if (selected === 1) {\n checked = true;\n } else if (selected === 2) {\n indeterminate = true;\n }\n\n return (\n <UCheckbox\n class={`${prefixCls}-menu-item-checkbox`}\n indeterminate={indeterminate}\n modelValue={checked}\n onClick={(e: any) => this.handleCheck(option, menuIndex, !checked, e)}\n ></UCheckbox>\n );\n }\n if (!this.multiple) {\n if (this.itemSelected(menuIndex, option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-checked-icon`}>\n <CheckIcon />\n </UIcon>\n );\n }\n }\n return null;\n };\n\n const getAffix = (option: CascaderOption) => {\n if (option.loading) {\n return (\n <UIcon class={`${prefixCls}-menu-item-suffix`} spin>\n <LoaderCircle />\n </UIcon>\n );\n }\n if (showExpandIcon(option)) {\n return (\n <UIcon class={`${prefixCls}-menu-item-suffix`}>\n <ChevronRight />\n </UIcon>\n );\n }\n\n return null;\n };\n\n const labelRenderer = (option: CascaderOption) => {\n if (option[fieldNames.value] === '_Not_Found_') {\n return (\n <div class={`${prefixCls}-menu-not-found`}>\n <RenderEmpty size=\"small\" text={option[fieldNames.label]} />\n </div>\n );\n }\n return typeof option[fieldNames.label] === 'function' ? option[fieldNames.label]() : option[fieldNames.label];\n };\n\n return (\n <div\n class={`${prefixCls}-menu-wrap`}\n onMousedown={(e) => {\n e.preventDefault();\n }}\n >\n {menus.map((menu, menuIndex) => (\n <ul key={menuIndex} class={[[`${prefixCls}-menu`, popupClassName]]} style={popStyle as CSSProperties}>\n {menu.map((option) => (\n <li\n key={getKey(option)}\n ref={(el) => setEls(el as HTMLElement, menuIndex, option)}\n role=\"menuitem\"\n class={getCls(option, menuIndex)}\n onClick={(e) => handleSelect(option, menuIndex, e)}\n onMouseenter={(e) => handleMouseEvent(option, menuIndex, e)}\n onMouseleave={(e) => handleMouseEvent(option, menuIndex, e)}\n >\n {getPrefix(menuIndex, option)}\n {labelRenderer(option)}\n {getAffix(option)}\n </li>\n ))}\n </ul>\n ))}\n </div>\n );\n }\n});\n"],"names":["defineProps","prefixCls","type","String","default","options","Array","values","changeOnSelect","Boolean","multiple","activeValue","searchValue","fieldNames","Object","label","value","children","loadData","Function","expandTrigger","validator","oneOf","popStyle","popupClassName","visible","multipleLimit","Number","defineComponent","name","props","emits","setup","emit","menus","computed","optionList","currentOpts","activeValues","forEach","sVal","nextVal","find","o","length","push","updateValue","val","hasChild","e","activeEls","ref","scrollElToView","setTimeout","el","parent","parentNode","top","offsetTop","scrollTop","watch","nv","nextTick","immediate","itemSelected","menuIndex","option","itemValue","isArray","some","JSON","stringify","itemChildren","childIndeterminate","count","c","childSelected","itemActive","showExpandIcon","_IS_FILTERED_OPTION_","isLeaf","overLimit","loadAsyncChildren","opt","index","next","loading","then","data","catch","hasChildren","_opt","handleSelect","disabled","tempValue","slice","timer","handleMouseEvent","clearTimeout","handleCheck","selected","stopPropagation","parents","clickValue","changedValues","getAllChildrenValues","render","getKey","join","setEls","getCls","getPrefix","_createVNode","UIcon","CheckIcon","checked","indeterminate","UCheckbox","getAffix","LoaderCircle","ChevronRight","labelRenderer","RenderEmpty","preventDefault","map","menu"],"mappings":"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"}
@@ -126,7 +126,7 @@ export declare const UCascader: {
126
126
  type: StringConstructor;
127
127
  };
128
128
  variant: {
129
- type: import("vue").PropType<"text" | "surface" | "soft">;
129
+ type: import("vue").PropType<"surface" | "soft" | "borderless" | "underline">;
130
130
  default: string;
131
131
  validator: (val: string) => boolean;
132
132
  };
@@ -570,7 +570,7 @@ export declare const UCascader: {
570
570
  placement: "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
571
571
  popupStyle: import("vue").CSSProperties;
572
572
  disabled: boolean;
573
- variant: "text" | "surface" | "soft";
573
+ variant: "surface" | "soft" | "borderless" | "underline";
574
574
  modelValue: import("./Cascader.type").CascaderValueType;
575
575
  placeholder: string;
576
576
  clearable: boolean;
@@ -723,7 +723,7 @@ export declare const UCascader: {
723
723
  type: StringConstructor;
724
724
  };
725
725
  variant: {
726
- type: import("vue").PropType<"text" | "surface" | "soft">;
726
+ type: import("vue").PropType<"surface" | "soft" | "borderless" | "underline">;
727
727
  default: string;
728
728
  validator: (val: string) => boolean;
729
729
  };
@@ -1159,7 +1159,7 @@ export declare const UCascader: {
1159
1159
  placement: "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
1160
1160
  popupStyle: import("vue").CSSProperties;
1161
1161
  disabled: boolean;
1162
- variant: "text" | "surface" | "soft";
1162
+ variant: "surface" | "soft" | "borderless" | "underline";
1163
1163
  modelValue: import("./Cascader.type").CascaderValueType;
1164
1164
  placeholder: string;
1165
1165
  clearable: boolean;
@@ -1309,7 +1309,7 @@ export declare const UCascader: {
1309
1309
  type: StringConstructor;
1310
1310
  };
1311
1311
  variant: {
1312
- type: import("vue").PropType<"text" | "surface" | "soft">;
1312
+ type: import("vue").PropType<"surface" | "soft" | "borderless" | "underline">;
1313
1313
  default: string;
1314
1314
  validator: (val: string) => boolean;
1315
1315
  };
@@ -1753,7 +1753,7 @@ export declare const UCascader: {
1753
1753
  placement: "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end";
1754
1754
  popupStyle: import("vue").CSSProperties;
1755
1755
  disabled: boolean;
1756
- variant: "text" | "surface" | "soft";
1756
+ variant: "surface" | "soft" | "borderless" | "underline";
1757
1757
  modelValue: import("./Cascader.type").CascaderValueType;
1758
1758
  placeholder: string;
1759
1759
  clearable: boolean;
@@ -48,6 +48,7 @@ const _sfc_main = defineComponent({
48
48
  let eventShiftKey = false;
49
49
  const onClick = (e) => {
50
50
  eventShiftKey = e.shiftKey;
51
+ emit("click", e);
51
52
  };
52
53
  const { onFieldChange } = inject(FormItemKey, {});
53
54
  const change = (event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.mjs","sources":["../../../../src/components/Checkbox/Checkbox.vue"],"sourcesContent":["<template>\n <label\n :class=\"[\n `${prefixCls}-wrap`,\n {\n [`${prefixCls}-wrap-checked`]: computedChecked,\n [`${prefixCls}-wrap-indeterminate`]: indeterminate,\n [`${prefixCls}-wrap-disabled`]: computedDisabled,\n [`${prefixCls}-focus`]: focusWrap\n }\n ]\"\n >\n <span\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-checked`]: computedChecked,\n [`${prefixCls}-disabled`]: computedDisabled,\n [`${prefixCls}-indeterminate`]: indeterminate\n }\n ]\"\n >\n <span :class=\"[`${prefixCls}-inner`, { [`${prefixCls}-focus`]: focusInner }]\">\n <UIcon>\n <Check v-if=\"computedChecked\" />\n <Minus v-else-if=\"indeterminate\" />\n </UIcon>\n </span>\n <input\n type=\"checkbox\"\n :class=\"`${prefixCls}-input`\"\n :disabled=\"computedDisabled\"\n :checked=\"computedChecked\"\n :name=\"name\"\n @keydown=\"handleKeyDown\"\n @change=\"change\"\n @click=\"onClick\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n />\n </span>\n\n <span v-if=\"showSlot\" :class=\"[`${prefixCls}-label`]\">\n <slot>{{ value }}</slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref, watch } from 'vue';\nimport { Check, Minus } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { FormItemKey } from '../Form';\nimport { isValid } from '../../utils/isValid';\nimport type { FormItemContext } from '../Form/Form.type';\nimport { checkboxProps, checkboxEmits, type CheckboxGroupContext } from './Checkbox.type';\n\nexport default defineComponent({\n name: 'UCheckbox',\n components: {\n UIcon,\n Check,\n Minus\n },\n props: checkboxProps,\n emits: checkboxEmits,\n setup(props, { emit, slots }) {\n // prefixCls\n const { prefixCls } = useGlobalConfig('checkbox');\n const checkboxGroupContext = inject<CheckboxGroupContext>('checkboxGroupContext', {} as CheckboxGroupContext);\n // data\n const focusWrap = ref(false);\n const focusInner = ref(false);\n const stateValue = ref(props.modelValue || false);\n // computed\n const showSlot = computed(() => {\n return !!props.value || slots.default;\n });\n const computedChecked = computed(() => {\n if (checkboxGroupContext.stateValue) {\n return checkboxGroupContext.stateValue.value.includes(props.value);\n }\n return !!stateValue.value;\n });\n\n const computedDisabled = computed(() => {\n if (checkboxGroupContext.disabled) {\n return checkboxGroupContext.disabled.value || props.disabled;\n }\n return props.disabled;\n });\n\n // const showInput = computed(() => !checkboxGroupContext.buttonType?.value);\n // watch\n watch(\n () => props.modelValue,\n (nv) => {\n stateValue.value = nv === props.trueValue;\n },\n { immediate: true }\n );\n // methods\n let eventShiftKey = false;\n const onClick = (e: MouseEvent) => {\n eventShiftKey = e.shiftKey;\n };\n\n const { onFieldChange } = inject<FormItemContext>(FormItemKey, {} as FormItemContext);\n const change = (event: any) => {\n if (props.disabled) {\n return false;\n }\n if (checkboxGroupContext.change) {\n if (isValid(props.value)) {\n checkboxGroupContext.change({\n value: props.value,\n checked: event.target.checked\n });\n }\n } else {\n const value = event.target.checked ? props.trueValue : props.falseValue;\n if (props.modelValue === undefined) {\n stateValue.value = event.target.checked;\n }\n event.shiftKey = eventShiftKey;\n emit('update:modelValue', value);\n emit('change', value, event);\n if (onFieldChange) {\n onFieldChange(value);\n }\n }\n };\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.code === 'Space' || e.code === 'Enter') {\n change(e);\n }\n };\n const handleFocus = () => {\n if (checkboxGroupContext.buttonType?.value) {\n focusWrap.value = true;\n }\n focusInner.value = true;\n };\n const handleBlur = () => {\n focusWrap.value = false;\n focusInner.value = false;\n };\n\n return {\n prefixCls,\n computedDisabled,\n focusWrap,\n focusInner,\n showSlot,\n computedChecked,\n change,\n handleKeyDown,\n handleFocus,\n handleBlur,\n onClick\n };\n }\n});\n</script>\n\n<style></style>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_createVNode","_createBlock","_renderSlot"],"mappings":";;;;;;;;;;AA0DA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACF,EACA,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,MAAM,SAAS;UAEtB,EAAE,cAAc,gBAAgB,UAAU;UAC1C,uBAAuB,OAA6B,wBAAwB,EAA0B;UAEtG,YAAY,IAAI,KAAK;UACrB,aAAa,IAAI,KAAK;UACtB,aAAa,IAAI,MAAM,cAAc,KAAK;UAE1C,WAAW,SAAS,MAAM;aACvB,CAAC,CAAC,MAAM,SAAS,MAAM;AAAA,KAC/B;UACK,kBAAkB,SAAS,MAAM;UACjC,qBAAqB,YAAY;eAC5B,qBAAqB,WAAW,MAAM,SAAS,MAAM,KAAK;AAAA;aAE5D,CAAC,CAAC,WAAW;AAAA,KACrB;UAEK,mBAAmB,SAAS,MAAM;UAClC,qBAAqB,UAAU;eAC1B,qBAAqB,SAAS,SAAS,MAAM;AAAA;aAE/C,MAAM;AAAA,KACd;;MAKC,MAAM,MAAM;AAAA,MACZ,CAAC,OAAO;mBACK,QAAQ,OAAO,MAAM;AAAA;AAClC,MACA,EAAE,WAAW;AAAK;QAGhB,gBAAgB;UACd,UAAU,CAAC,MAAkB;sBACjB,EAAE;AAAA;UAGd,EAAE,kBAAkB,OAAwB,aAAa,EAAqB;UAC9E,SAAS,CAAC,UAAe;UACzB,MAAM,UAAU;eACX;AAAA;UAEL,qBAAqB,QAAQ;YAC3B,QAAQ,MAAM,KAAK,GAAG;+BACH,OAAO;AAAA,YAC1B,OAAO,MAAM;AAAA,YACb,SAAS,MAAM,OAAO;AAAA,WACvB;AAAA;AACH,aACK;cACC,QAAQ,MAAM,OAAO,UAAU,MAAM,YAAY,MAAM;YACzD,MAAM,eAAe,QAAW;qBACvB,QAAQ,MAAM,OAAO;AAAA;cAE5B,WAAW;aACZ,qBAAqB,KAAK;aAC1B,UAAU,OAAO,KAAK;YACvB,eAAe;wBACH,KAAK;AAAA;AACrB;AACF;UAEI,gBAAgB,CAAC,MAAqB;UACtC,EAAE,SAAS,WAAW,EAAE,SAAS,SAAS;eACrC,CAAC;AAAA;AACV;UAEI,cAAc,MAAM;AAzF9B;WA0FU,0BAAqB,eAArB,mBAAiC,OAAO;kBAChC,QAAQ;AAAA;iBAET,QAAQ;AAAA;UAEf,aAAa,MAAM;gBACb,QAAQ;iBACP,QAAQ;AAAA;WAGd;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;;sBAlKCA,mBA4CQ;IA3CL,OAAKC;SAAa;;YAAsC,gCAA2B;YAA6B,sCAAiC;YAA2B,iCAA4B;YAA8B,yBAAoB;;;;IAU3PC,mBA4BO;MA3BJ,OAAKD;QAAY;;cAAmC,2BAAsB;cAA+B,4BAAuB;cAAgC,iCAA4B;;;;MAS7LC,mBAKO;QALA,OAAKD,mBAAM,wBAAS,MAAgB,yBAAoB;;QAC7DE,YAGQ;2BAFN,MAAgC;AAAA,YAAnB,qCAAbC,YAAgC,iCACd,mCAAlBA,YAAmC;;;;;MAGvCF,mBAWE;QAVA,MAAK;AAAA,QACJ,OAAKD,kBAAK,sBAAS;AAAA,QACnB,UAAU;QACV,SAAS;QACT,MAAM;QACN,WAAO,uCAAE;QACT,UAAM,uCAAE;QACR,SAAK,uCAAE;QACP,SAAK,uCAAE;QACP,QAAI,uCAAE;;;IAIC,8BAAZD,mBAEO;;MAFgB,OAAKC,mBAAM,sBAAS;;MACzCI,WAAwB,4BAAxB,MAAwB;AAAA,wCAAf,UAAK;;;;;;;;;"}
1
+ {"version":3,"file":"Checkbox.mjs","sources":["../../../../src/components/Checkbox/Checkbox.vue"],"sourcesContent":["<template>\n <label\n :class=\"[\n `${prefixCls}-wrap`,\n {\n [`${prefixCls}-wrap-checked`]: computedChecked,\n [`${prefixCls}-wrap-indeterminate`]: indeterminate,\n [`${prefixCls}-wrap-disabled`]: computedDisabled,\n [`${prefixCls}-focus`]: focusWrap\n }\n ]\"\n >\n <span\n :class=\"[\n prefixCls,\n {\n [`${prefixCls}-checked`]: computedChecked,\n [`${prefixCls}-disabled`]: computedDisabled,\n [`${prefixCls}-indeterminate`]: indeterminate\n }\n ]\"\n >\n <span :class=\"[`${prefixCls}-inner`, { [`${prefixCls}-focus`]: focusInner }]\">\n <UIcon>\n <Check v-if=\"computedChecked\" />\n <Minus v-else-if=\"indeterminate\" />\n </UIcon>\n </span>\n <input\n type=\"checkbox\"\n :class=\"`${prefixCls}-input`\"\n :disabled=\"computedDisabled\"\n :checked=\"computedChecked\"\n :name=\"name\"\n @keydown=\"handleKeyDown\"\n @change=\"change\"\n @click=\"onClick\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n />\n </span>\n\n <span v-if=\"showSlot\" :class=\"[`${prefixCls}-label`]\">\n <slot>{{ value }}</slot>\n </span>\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject, computed, ref, watch } from 'vue';\nimport { Check, Minus } from 'lucide-vue-next';\nimport UIcon from '@uxd-ui/components/Icon';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport { FormItemKey } from '../Form';\nimport { isValid } from '../../utils/isValid';\nimport type { FormItemContext } from '../Form/Form.type';\nimport { checkboxProps, checkboxEmits, type CheckboxGroupContext } from './Checkbox.type';\n\nexport default defineComponent({\n name: 'UCheckbox',\n components: {\n UIcon,\n Check,\n Minus\n },\n props: checkboxProps,\n emits: checkboxEmits,\n setup(props, { emit, slots }) {\n // prefixCls\n const { prefixCls } = useGlobalConfig('checkbox');\n const checkboxGroupContext = inject<CheckboxGroupContext>('checkboxGroupContext', {} as CheckboxGroupContext);\n // data\n const focusWrap = ref(false);\n const focusInner = ref(false);\n const stateValue = ref(props.modelValue || false);\n // computed\n const showSlot = computed(() => {\n return !!props.value || slots.default;\n });\n const computedChecked = computed(() => {\n if (checkboxGroupContext.stateValue) {\n return checkboxGroupContext.stateValue.value.includes(props.value);\n }\n return !!stateValue.value;\n });\n\n const computedDisabled = computed(() => {\n if (checkboxGroupContext.disabled) {\n return checkboxGroupContext.disabled.value || props.disabled;\n }\n return props.disabled;\n });\n\n // const showInput = computed(() => !checkboxGroupContext.buttonType?.value);\n // watch\n watch(\n () => props.modelValue,\n (nv) => {\n stateValue.value = nv === props.trueValue;\n },\n { immediate: true }\n );\n // methods\n let eventShiftKey = false;\n const onClick = (e: MouseEvent) => {\n eventShiftKey = e.shiftKey;\n emit('click', e);\n };\n\n const { onFieldChange } = inject<FormItemContext>(FormItemKey, {} as FormItemContext);\n const change = (event: any) => {\n if (props.disabled) {\n return false;\n }\n if (checkboxGroupContext.change) {\n if (isValid(props.value)) {\n checkboxGroupContext.change({\n value: props.value,\n checked: event.target.checked\n });\n }\n } else {\n const value = event.target.checked ? props.trueValue : props.falseValue;\n if (props.modelValue === undefined) {\n stateValue.value = event.target.checked;\n }\n event.shiftKey = eventShiftKey;\n emit('update:modelValue', value);\n emit('change', value, event);\n if (onFieldChange) {\n onFieldChange(value);\n }\n }\n };\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.code === 'Space' || e.code === 'Enter') {\n change(e);\n }\n };\n const handleFocus = () => {\n if (checkboxGroupContext.buttonType?.value) {\n focusWrap.value = true;\n }\n focusInner.value = true;\n };\n const handleBlur = () => {\n focusWrap.value = false;\n focusInner.value = false;\n };\n\n return {\n prefixCls,\n computedDisabled,\n focusWrap,\n focusInner,\n showSlot,\n computedChecked,\n change,\n handleKeyDown,\n handleFocus,\n handleBlur,\n onClick\n };\n }\n});\n</script>\n\n<style></style>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_createVNode","_createBlock","_renderSlot"],"mappings":";;;;;;;;;;AA0DA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACF,EACA,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,MAAM,SAAS;UAEtB,EAAE,cAAc,gBAAgB,UAAU;UAC1C,uBAAuB,OAA6B,wBAAwB,EAA0B;UAEtG,YAAY,IAAI,KAAK;UACrB,aAAa,IAAI,KAAK;UACtB,aAAa,IAAI,MAAM,cAAc,KAAK;UAE1C,WAAW,SAAS,MAAM;aACvB,CAAC,CAAC,MAAM,SAAS,MAAM;AAAA,KAC/B;UACK,kBAAkB,SAAS,MAAM;UACjC,qBAAqB,YAAY;eAC5B,qBAAqB,WAAW,MAAM,SAAS,MAAM,KAAK;AAAA;aAE5D,CAAC,CAAC,WAAW;AAAA,KACrB;UAEK,mBAAmB,SAAS,MAAM;UAClC,qBAAqB,UAAU;eAC1B,qBAAqB,SAAS,SAAS,MAAM;AAAA;aAE/C,MAAM;AAAA,KACd;;MAKC,MAAM,MAAM;AAAA,MACZ,CAAC,OAAO;mBACK,QAAQ,OAAO,MAAM;AAAA;AAClC,MACA,EAAE,WAAW;AAAK;QAGhB,gBAAgB;UACd,UAAU,CAAC,MAAkB;sBACjB,EAAE;WACb,SAAS,CAAC;AAAA;UAGX,EAAE,kBAAkB,OAAwB,aAAa,EAAqB;UAC9E,SAAS,CAAC,UAAe;UACzB,MAAM,UAAU;eACX;AAAA;UAEL,qBAAqB,QAAQ;YAC3B,QAAQ,MAAM,KAAK,GAAG;+BACH,OAAO;AAAA,YAC1B,OAAO,MAAM;AAAA,YACb,SAAS,MAAM,OAAO;AAAA,WACvB;AAAA;AACH,aACK;cACC,QAAQ,MAAM,OAAO,UAAU,MAAM,YAAY,MAAM;YACzD,MAAM,eAAe,QAAW;qBACvB,QAAQ,MAAM,OAAO;AAAA;cAE5B,WAAW;aACZ,qBAAqB,KAAK;aAC1B,UAAU,OAAO,KAAK;YACvB,eAAe;wBACH,KAAK;AAAA;AACrB;AACF;UAEI,gBAAgB,CAAC,MAAqB;UACtC,EAAE,SAAS,WAAW,EAAE,SAAS,SAAS;eACrC,CAAC;AAAA;AACV;UAEI,cAAc,MAAM;AA1F9B;WA2FU,0BAAqB,eAArB,mBAAiC,OAAO;kBAChC,QAAQ;AAAA;iBAET,QAAQ;AAAA;UAEf,aAAa,MAAM;gBACb,QAAQ;iBACP,QAAQ;AAAA;WAGd;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;;sBAnKCA,mBA4CQ;IA3CL,OAAKC;SAAa;;YAAsC,gCAA2B;YAA6B,sCAAiC;YAA2B,iCAA4B;YAA8B,yBAAoB;;;;IAU3PC,mBA4BO;MA3BJ,OAAKD;QAAY;;cAAmC,2BAAsB;cAA+B,4BAAuB;cAAgC,iCAA4B;;;;MAS7LC,mBAKO;QALA,OAAKD,mBAAM,wBAAS,MAAgB,yBAAoB;;QAC7DE,YAGQ;2BAFN,MAAgC;AAAA,YAAnB,qCAAbC,YAAgC,iCACd,mCAAlBA,YAAmC;;;;;MAGvCF,mBAWE;QAVA,MAAK;AAAA,QACJ,OAAKD,kBAAK,sBAAS;AAAA,QACnB,UAAU;QACV,SAAS;QACT,MAAM;QACN,WAAO,uCAAE;QACT,UAAM,uCAAE;QACR,SAAK,uCAAE;QACP,SAAK,uCAAE;QACP,QAAI,uCAAE;;;IAIC,8BAAZD,mBAEO;;MAFgB,OAAKC,mBAAM,sBAAS;;MACzCI,WAAwB,4BAAxB,MAAwB;AAAA,wCAAf,UAAK;;;;;;;;;"}
@@ -46,6 +46,7 @@ export declare type CheckboxProps = ExtractPropTypes<typeof checkboxProps>;
46
46
  export declare const checkboxEmits: {
47
47
  'update:modelValue': (val: CheckboxValueType) => boolean;
48
48
  change: (val: CheckboxValueType, ev: Event) => boolean;
49
+ click: (ev: Event) => boolean;
49
50
  };
50
51
  export declare type CheckboxEmits = typeof checkboxEmits;
51
52
  export declare type CheckboxInstanceType = InstanceType<typeof Checkbox>;
@@ -34,7 +34,8 @@ const checkboxProps = {
34
34
  };
35
35
  const checkboxEmits = {
36
36
  "update:modelValue": (val) => val === void 0 || typeof val === "boolean" || typeof val === "number" || typeof val === "string",
37
- change: (val, ev) => (val === void 0 || typeof val === "boolean" || typeof val === "number" || typeof val === "string") && ev instanceof Event
37
+ change: (val, ev) => (val === void 0 || typeof val === "boolean" || typeof val === "number" || typeof val === "string") && ev instanceof Event,
38
+ click: (ev) => ev instanceof Event
38
39
  };
39
40
  const checkboxButtonType = ["border", "fill", "card"];
40
41
  const checkboxGroupProps = {