tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 15 kB
Source Map (JSON)
{"version":3,"file":"useSelectOptions.mjs","sources":["../../../../components/select/hooks/useSelectOptions.ts"],"sourcesContent":["import { computed, Slots, Ref, ref } from 'vue';\nimport { get, isArray, isFunction, uniqBy } from 'lodash-es';\n\nimport { useChildComponentSlots } from '@tdesign/shared-hooks';\nimport { TdSelectProps, TdOptionProps, SelectOptionGroup, SelectValue, SelectOption } from '../type';\nimport { KeysType } from '../../common';\n\ntype UniOption = (TdOptionProps | SelectOptionGroup) & {\n index?: number;\n slots?: Slots;\n};\n\nexport const useSelectOptions = (\n props: TdSelectProps,\n keys: Ref<KeysType>,\n inputValue: Ref<string>,\n innerValue: Ref<SelectValue<SelectOption>>,\n) => {\n const getChildComponentSlots = useChildComponentSlots();\n const optionsCache = ref<SelectOption[]>([]);\n\n const options = computed(() => {\n let dynamicIndex = 0;\n // 统一处理 keys,处理通用数据\n const innerOptions: UniOption[] =\n props.options?.map((option) => {\n const getFormatOption = (option: TdOptionProps) => {\n const { value, label, disabled } = keys.value;\n const res = {\n ...option,\n index: dynamicIndex,\n label: get(option, label),\n value: get(option, value),\n disabled: get(option, disabled) || false,\n };\n dynamicIndex++;\n return res;\n };\n if ((option as SelectOptionGroup).children) {\n return {\n ...option,\n children: (option as SelectOptionGroup).children.map((child) => getFormatOption(child)),\n };\n }\n return getFormatOption(option);\n }) || [];\n\n // 处理 slots\n const optionsSlots = getChildComponentSlots('Option');\n const groupSlots = getChildComponentSlots('OptionGroup');\n\n if (isArray(groupSlots)) {\n for (const group of groupSlots) {\n const groupOption = {\n group: group.props?.label,\n ...group.props,\n children: [] as TdOptionProps[],\n };\n const res = getChildComponentSlots('Option', group.children as Slots);\n if (!isArray(res)) continue;\n for (const child of res) {\n groupOption.children.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n\n innerOptions.push(groupOption);\n }\n }\n if (isArray(optionsSlots)) {\n for (const child of optionsSlots) {\n innerOptions.push({\n ...child.props,\n slots: child.children,\n index: dynamicIndex,\n } as TdOptionProps);\n dynamicIndex++;\n }\n }\n return innerOptions;\n });\n\n const optionsList = computed(() => {\n const res: TdOptionProps[] = [];\n const getOptionsList = (options: TdOptionProps[]) => {\n for (const option of options) {\n if ((option as SelectOptionGroup).children) {\n getOptionsList((option as SelectOptionGroup).children);\n } else {\n res.push(option);\n }\n }\n };\n getOptionsList(options.value);\n return res;\n });\n\n const optionsMap = computed(() => {\n const res = new Map<SelectValue, TdOptionProps>();\n // map以最新的为主 避免存在重复value更新的场景 https://github.com/Tencent/tdesign-vue-next/issues/2646\n optionsCache.value.concat(optionsList.value).forEach((option: TdOptionProps) => {\n res.set(option.value, option);\n });\n return res;\n });\n\n const filterMethods = (option: SelectOption) => {\n if (isFunction(props.filter)) {\n return props.filter(`${inputValue.value}`, option);\n }\n return option.label?.toLowerCase?.().indexOf(`${inputValue.value}`.toLowerCase()) > -1;\n };\n\n const searchOptions = ref<SelectOption[]>([]);\n\n const getSelectedOptions = (options: TdOptionProps[], selectValue: SelectValue[] | SelectValue) => {\n return options.filter((option) => {\n if (option.checkAll) return;\n if (isArray(selectValue)) return selectValue.includes(option.value);\n return selectValue === option.value;\n });\n };\n\n /**\n * @description 获取搜索结果选项\n * 这里通过记录所有时间选中的 options 来保证搜索结果中选中的选项不会被过滤掉\n */\n const searchDisplayOptions = computed(() => {\n const currentSelectedOptions = getSelectedOptions(optionsList.value, innerValue.value);\n searchOptions.value = uniqBy([...searchOptions.value, ...currentSelectedOptions], 'value');\n const searchSelectedOptions = getSelectedOptions(searchOptions.value, innerValue.value);\n\n return uniqBy([...searchSelectedOptions, ...optionsList.value], 'value');\n });\n\n const displayOptions = computed(() => {\n if (props.onSearch && props.filterable) return options.value; // 远程搜索时,不执行内部的过滤,不干预用户的自行处理,如输入首字母搜索中文的场景等\n\n if (!inputValue.value || !(props.filterable || isFunction(props.filter))) return options.value;\n\n let checkAllOption: SelectOption;\n\n let res: SelectOption[] = [];\n\n options.value.forEach((option) => {\n if ((option as SelectOptionGroup).children) {\n res.push({\n ...option,\n children: (option as SelectOptionGroup).children.filter(filterMethods),\n });\n }\n\n if ((option as TdOptionProps)?.checkAll === true) checkAllOption = option;\n\n if (filterMethods(option)) {\n res.push(option);\n }\n });\n\n if (!isFunction(props.filter)) {\n // 使用默认 filter,增加表现,调整全等项到首尾,避免全等项位于最后\n // inputValue: ab\n // options abcde, abcd, abc, ab\n const exactMatch = res.filter((item) => item.label === inputValue.value);\n const fuzzyMatch = res.filter((item) => item.label !== inputValue.value);\n res = exactMatch.concat(fuzzyMatch);\n }\n\n return res.length && checkAllOption ? [checkAllOption, ...res] : res;\n });\n\n return {\n options,\n optionsMap,\n optionsList,\n optionsCache,\n displayOptions,\n filterMethods,\n searchDisplayOptions,\n };\n};\n"],"names":["useSelectOptions","props","keys","inputValue","innerValue","getChildComponentSlots","useChildComponentSlots","optionsCache","ref","options","computed","_props$options","dynamicIndex","innerOptions","map","option","getFormatOption","_keys$value","value","label","disabled","res","_objectSpread","index","get","children","child","optionsSlots","groupSlots","isArray","_iterator","_createForOfIteratorHelper","_step","s","n","done","_group$props","group","groupOption","_iterator2","_step2","push","slots","err","e","f","_iterator3","_step3","optionsList","getOptionsList","_iterator4","_step4","optionsMap","Map","concat","forEach","set","filterMethods","_option$label","_option$label$toLower","isFunction","filter","toLowerCase","call","indexOf","searchOptions","getSelectedOptions","selectValue","checkAll","includes","searchDisplayOptions","currentSelectedOptions","uniqBy","_toConsumableArray","searchSelectedOptions","displayOptions","onSearch","filterable","checkAllOption","exactMatch","item","fuzzyMatch","length"],"mappings":"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"}