UNPKG

tdesign-vue-next

Version:
1 lines 45.5 kB
{"version":3,"file":"select.mjs","sources":["../../../components/select/select.tsx"],"sourcesContent":["import { defineComponent, provide, computed, toRefs, watch, ref, nextTick, PropType } from 'vue';\nimport { pick as picker } from 'lodash-es';\nimport { isArray } from 'lodash-es';\nimport { isFunction } from 'lodash-es';\nimport { debounce } from 'lodash-es';\nimport { cloneDeep } from 'lodash-es';\nimport { get } from 'lodash-es';\nimport { intersection } from 'lodash-es';\nimport FakeArrow from '../common-components/fake-arrow';\nimport SelectInput from '../select-input';\nimport SelectPanel from './select-panel';\nimport props from './props';\n// hooks\nimport { useDisabled } from '../hooks/useDisabled';\nimport { useReadonly } from '../hooks/useReadonly';\nimport useDefaultValue from '../hooks/useDefaultValue';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport { getSingleContent, getMultipleContent } from './utils';\nimport { selectInjectKey } from './consts';\nimport { useSelectOptions, useKeyboardControl } from './hooks';\nimport type { PopupProps, PopupVisibleChangeContext } from '../popup';\nimport type { SelectInputChangeContext, SelectInputValueChangeContext } from '../select-input';\nimport type { TdSelectProps, SelectValue } from './type';\nimport { SelectInputValueDisplayOptions } from '../select-input/hooks/useSingle';\nimport { TagInputTriggerSource } from '../tag-input';\n\nexport default defineComponent({\n name: 'TSelect',\n props: {\n ...props,\n /**\n * 非公开 API,请勿使用(后续即将删除)\n */\n valueDisplayOptions: {\n type: Object as PropType<SelectInputValueDisplayOptions>,\n },\n },\n setup(props: TdSelectProps & { valueDisplayOptions: SelectInputValueDisplayOptions }, { slots }) {\n const classPrefix = usePrefixClass();\n const isDisabled = useDisabled();\n const isReadonly = useReadonly();\n const renderTNodeJSX = useTNodeJSX();\n const COMPONENT_NAME = usePrefixClass('select');\n const { globalConfig, t } = useConfig('select');\n const { popupVisible, inputValue, modelValue, value } = toRefs(props);\n const [innerInputValue, setInputValue] = useDefaultValue(\n inputValue,\n props.defaultInputValue,\n props.onInputChange,\n 'inputValue',\n );\n const [orgValue, setOrgValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const selectPanelRef = ref(null);\n const selectInputRef = ref(null);\n const keys = computed(() => ({\n label: props.keys?.label || 'label',\n value: props.keys?.value || 'value',\n disabled: props.keys?.disabled || 'disabled',\n }));\n const { optionsMap, optionsList, optionsCache, displayOptions, filterMethods } = useSelectOptions(\n props,\n keys,\n innerInputValue,\n );\n\n // 内部数据,格式化过的\n const innerValue = computed(() => {\n if (orgValue.value === undefined) {\n return props.multiple ? [] : undefined;\n }\n if (props.valueType === 'object') {\n return !props.multiple\n ? // @ts-ignore\n // TODO optimize SelectValue\n orgValue.value[keys.value.value]\n : // @ts-ignore\n // TODO optimize SelectValue\n (orgValue.value as SelectValue[]).map((option) => option[keys.value.value]);\n }\n return orgValue.value;\n });\n\n const setInnerValue: TdSelectProps['onChange'] = (newVal: SelectValue | SelectValue[], context) => {\n if (props.valueType === 'object') {\n const { value, label } = keys.value;\n const getOption = (val: SelectValue) => {\n if (val === undefined) {\n return undefined;\n }\n const option = optionsMap.value.get(val);\n return {\n [value]: get(option, value),\n [label]: get(option, label),\n };\n };\n newVal = props.multiple ? (newVal as SelectValue[]).map((val) => getOption(val)) : getOption(newVal);\n }\n if (newVal === orgValue.value) return;\n if (props.multiple && !props.reserveKeyword) setInputValue('');\n setOrgValue(newVal, {\n selectedOptions: getSelectedOptions(newVal),\n ...context,\n });\n };\n\n const [innerPopupVisible, setInnerPopupVisible] = useDefaultValue(\n popupVisible,\n false,\n (visible: boolean, context: PopupVisibleChangeContext) => {\n props.onPopupVisibleChange?.(visible, context);\n },\n 'popupVisible',\n );\n\n const placeholderText = computed(\n () =>\n ((!props.multiple && innerPopupVisible.value && getSingleContent(innerValue.value, optionsMap)) ||\n props.placeholder) ??\n t(globalConfig.value.placeholder),\n );\n\n // selectInput 展示值\n const displayText = computed(() =>\n props.multiple\n ? getMultipleContent(innerValue.value as SelectValue[], optionsMap)\n : getSingleContent(innerValue.value, optionsMap),\n );\n\n // valueDisplayParams参数\n const valueDisplayParams = computed(() => {\n const val =\n props.multiple && isArray(innerValue.value)\n ? (innerValue.value as SelectValue[]).map((value) => ({\n value,\n label: optionsMap.value.get(value)?.label,\n }))\n : innerValue.value;\n\n const params = {\n value: val,\n onClose: props.multiple ? (index: number) => removeTag(index) : () => {},\n };\n\n if (!props.multiple) Object.assign(params, { label: displayText.value });\n\n if (props.minCollapsedNum && props.multiple) {\n return {\n ...params,\n displayValue: val?.slice?.(0, props.minCollapsedNum),\n };\n }\n return params;\n });\n\n const isFilterable = computed(() => {\n return Boolean(props.filterable || globalConfig.value.filterable || isFunction(props.filter));\n });\n\n const isRemoteSearch = computed(() => {\n return Boolean((props.filterable || globalConfig.value.filterable) && isFunction(props.onSearch));\n });\n\n // 移除tag\n const removeTag = (index: number, context?: SelectInputChangeContext) => {\n const { e, trigger = 'tag-remove' } =\n (context as SelectInputChangeContext & {\n trigger: Exclude<TagInputTriggerSource, 'enter'>;\n }) || {};\n\n e && e.stopPropagation();\n\n const selectValue = cloneDeep(innerValue.value) as SelectValue[];\n const value = selectValue[index];\n\n selectValue.splice(index, 1);\n\n if (trigger !== 'clear') {\n setInnerValue(selectValue, { selectedOptions: getSelectedOptions(selectValue), trigger, e });\n }\n\n props.onRemove?.({\n value: value as string | number,\n data: optionsMap.value.get(value),\n e,\n });\n };\n\n const handleCreate = () => {\n if (!innerInputValue.value) return;\n props.onCreate?.(innerInputValue.value);\n // only clean input value when reopen popup\n if (!innerPopupVisible.value) setInputValue('');\n };\n\n const popupContentRef = computed(() => selectInputRef.value?.popupRef.getOverlay() as HTMLElement);\n\n /**\n * 可选选项的列表\n * 排除已禁用和全选的选项,考虑过滤情况\n */\n const optionalList = computed(() =>\n optionsList.value.filter((item) => {\n return (\n !item.disabled &&\n // @ts-ignore types only declare checkAll not declare check-all\n !item['check-all'] &&\n !item.checkAll &&\n filterMethods(item)\n );\n }),\n );\n\n const getSelectedOptions = (selectValue: SelectValue[] | SelectValue = innerValue.value) => {\n return optionsList.value.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 const { hoverIndex, virtualFilteredOptions, handleKeyDown, filteredOptions } = useKeyboardControl({\n displayOptions,\n optionsList,\n innerPopupVisible,\n setInnerPopupVisible,\n selectPanelRef,\n isFilterable,\n isRemoteSearch,\n getSelectedOptions,\n setInnerValue,\n innerValue,\n popupContentRef,\n multiple: props.multiple,\n max: props.max,\n });\n\n /*\n * 全选逻辑:\n * 根据 checked 的值计算最终选中的值:\n * - 如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的 disabled 选项。\n * - 如果 checked 为 false,则只保留已选中的 disabled 选项。\n * - 过滤条件下,如果 checked 为 true,则选中所有非 disabled 选项,并保留已选中的选项。\n * - 过滤条件下,如果 checked 为 false,则只保留已选中的 disabled 选项。\n */\n const onCheckAllChange = (checked: boolean) => {\n if (!props.multiple) return;\n const { value } = keys.value;\n // disabled状态的选项,不参与全选的计算,始终保留\n const lockedValues = innerValue.value.filter((value: string | number | boolean) => {\n return optionsList.value.find((item) => item.value === value && item.disabled);\n });\n\n const activeValues = optionalList.value.map((option) => option.value);\n const formattedOrgValue =\n props.valueType === 'object'\n ? (orgValue.value as Array<SelectValue>).map((v) => get(v, value))\n : orgValue.value;\n\n const values = checked\n ? [...new Set([...(formattedOrgValue as Array<SelectValue>), ...activeValues, ...lockedValues])]\n : [...lockedValues];\n setInnerValue(values, { selectedOptions: getSelectedOptions(values), trigger: checked ? 'check' : 'clear' });\n };\n\n // 已选的长度\n const intersectionLen = computed<number>(() => {\n const values = optionalList.value.map((item) => item.value);\n const n = intersection(innerValue.value, values);\n return n.length;\n });\n\n // 全选\n const isCheckAll = computed<boolean>(() => {\n return intersectionLen.value === optionalList.value.length;\n });\n\n // 半选\n const indeterminate = computed<boolean>(() => !isCheckAll.value && intersectionLen.value !== 0);\n\n const SelectProvider = computed(() => ({\n max: props.max,\n multiple: props.multiple,\n hoverIndex: hoverIndex.value,\n selectValue: innerValue.value,\n reserveKeyword: props.reserveKeyword,\n handleValueChange: setInnerValue,\n handlerInputChange: setInputValue,\n handlePopupVisibleChange: setInnerPopupVisible,\n handleCreate,\n size: props.size,\n popupContentRef,\n indeterminate: indeterminate.value,\n isCheckAll: isCheckAll.value,\n onCheckAllChange,\n getSelectedOptions,\n displayOptions: displayOptions.value,\n emitBlur: handleOptionEmitBlur,\n }));\n\n provide(selectInjectKey, SelectProvider);\n\n const checkValueInvalid = () => {\n // 参数类型检测与修复\n if (!props.multiple && isArray(orgValue.value)) {\n setOrgValue(undefined, { selectedOptions: [], trigger: 'default' });\n }\n if (props.multiple && !isArray(orgValue.value)) {\n setOrgValue([], { selectedOptions: [], trigger: 'default' });\n }\n };\n\n const handleSearch = debounce((value: string, { e }: { e: KeyboardEvent }) => {\n props.onSearch?.(`${value}`, { e });\n }, 300);\n\n const handlerInputChange = (value: string, context: SelectInputValueChangeContext) => {\n if (value) {\n !innerPopupVisible.value && setInnerPopupVisible(true, { e: context.e as KeyboardEvent });\n }\n setInputValue(value);\n handleSearch(`${value}`, { e: context.e as KeyboardEvent });\n nextTick(() => {\n virtualFilteredOptions.value = selectPanelRef.value?.visibleData;\n filteredOptions.value = selectPanelRef.value?.displayOptions;\n });\n };\n\n const handleOptionEmitBlur = (e: MouseEvent | KeyboardEvent) => {\n props.onBlur?.({ e, value: innerValue.value });\n };\n\n const handlerPopupVisibleChange = (visible: boolean, context: PopupVisibleChangeContext) => {\n setInnerPopupVisible(visible, context);\n // 在通过点击选择器打开弹窗时 清空此前的输入内容 避免在关闭时就清空引起的闪烁问题\n if (visible && context.trigger === 'trigger-element-click') setInputValue('');\n };\n\n const handlerPopupScrollToBottom: PopupProps['onScrollToBottom'] = async (context) => {\n const { popupProps } = props;\n if (props.loading) {\n return;\n }\n // @ts-ignore types 中只有 onScrollToBottom,但 Vue 会自动转换 on-scroll-to-bottom 并支持,故此处都进行调用\n popupProps?.['on-scroll-to-bottom']?.(context);\n popupProps?.onScrollToBottom?.(context);\n };\n\n const addCache = (val: SelectValue) => {\n if (props.multiple) {\n const newCache = [];\n for (const item of (val as SelectValue[]) || []) {\n const option = optionsMap.value.get(item);\n if (option) {\n newCache.push(option);\n }\n }\n optionsCache.value = Array.from(new Set([...newCache, ...optionsCache.value]));\n } else {\n const option = optionsMap.value.get(val);\n if (option) {\n optionsCache.value = Array.from(new Set([option, ...optionsCache.value]));\n }\n }\n };\n\n watch(\n orgValue,\n (val) => {\n checkValueInvalid();\n nextTick(() => {\n addCache(val);\n });\n },\n {\n immediate: true,\n },\n );\n watch(\n () => props.multiple,\n () => {\n checkValueInvalid();\n },\n );\n\n // 列表展开时定位置选中项\n const updateScrollTop = (content: HTMLDivElement) => {\n if (!selectPanelRef.value) {\n return;\n }\n const firstSelectedNode: HTMLDivElement = (selectPanelRef.value?.innerRef as HTMLDivElement)?.querySelector(\n `.${classPrefix.value}-is-selected`,\n );\n // 此处需要等待渲染后进行计算\n nextTick(() => {\n if (firstSelectedNode && content) {\n const { paddingBottom } = getComputedStyle(firstSelectedNode);\n const { marginBottom } = getComputedStyle(content);\n const elementBottomHeight = parseInt(paddingBottom, 10) + parseInt(marginBottom, 10);\n // 小于0时不需要特殊处理,会被设为0\n const updateValue =\n firstSelectedNode.offsetTop -\n content.offsetTop -\n (content.clientHeight - firstSelectedNode.clientHeight) +\n elementBottomHeight;\n // eslint-disable-next-line no-param-reassign\n content.scrollTop = updateValue;\n }\n });\n };\n provide('updateScrollTop', updateScrollTop);\n return () => {\n const { overlayClassName, ...restPopupProps } = (props.popupProps || {}) as TdSelectProps['popupProps'];\n return (\n <div class={`${COMPONENT_NAME.value}__wrap`}>\n <SelectInput\n {...{\n autoWidth: props.autoWidth,\n readonly: isReadonly.value,\n borderless: props.borderless,\n multiple: props.multiple,\n clearable: props.clearable,\n loading: props.loading,\n status: props.status,\n tips: props.tips,\n minCollapsedNum: props.minCollapsedNum,\n autofocus: props.autofocus,\n suffix: props.suffix,\n valueDisplayOptions: props.valueDisplayOptions,\n }}\n ref={selectInputRef}\n class={COMPONENT_NAME.value}\n value={displayText.value}\n disabled={isDisabled.value}\n popupVisible={innerPopupVisible.value}\n inputValue={innerPopupVisible.value ? innerInputValue.value : ''}\n placeholder={`${placeholderText.value}`}\n allowInput={isFilterable.value}\n collapsed-items={props.collapsedItems}\n inputProps={{\n size: props.size,\n autofocus: props.autofocus,\n ...(props.inputProps as TdSelectProps['inputProps']),\n onkeydown: handleKeyDown,\n }}\n tagInputProps={{\n size: props.size,\n ...(props.tagInputProps as TdSelectProps['tagInputProps']),\n }}\n onTagChange={(val, ctx) => {\n removeTag(ctx.index, ctx);\n }}\n tagProps={{ ...(props.tagProps as TdSelectProps['tagProps']) }}\n popupProps={{\n overlayClassName: [`${COMPONENT_NAME.value}__dropdown`, overlayClassName],\n ...restPopupProps,\n onScrollToBottom: handlerPopupScrollToBottom,\n }}\n label={props.label}\n prefixIcon={props.prefixIcon}\n suffix={props.suffix}\n suffixIcon={() => {\n if (props.suffixIcon || slots.suffixIcon) {\n return renderTNodeJSX('suffixIcon');\n }\n\n return (\n props.showArrow && (\n <FakeArrow\n overlayClassName={`${COMPONENT_NAME.value}__right-icon`}\n isActive={innerPopupVisible.value}\n />\n )\n );\n }}\n valueDisplay={() =>\n renderTNodeJSX('valueDisplay', {\n params: valueDisplayParams.value,\n })\n }\n onPopupVisibleChange={handlerPopupVisibleChange}\n onInputChange={handlerInputChange}\n onClear={({ e }) => {\n setInnerValue(props.multiple ? [] : undefined, {\n option: null,\n selectedOptions: getSelectedOptions(props.multiple ? [] : undefined),\n trigger: 'clear',\n e,\n });\n props.onClear?.({ e });\n }}\n onEnter={(inputValue, { e }) => {\n // onEnter和handleKeyDown的Enter事件同时触发,需要通过setTimeout设置先后\n setTimeout(() => {\n props.onEnter?.({ inputValue: `${innerInputValue.value}`, e, value: innerValue.value });\n handleCreate();\n }, 0);\n }}\n onBlur={(inputValue, { e }) => {\n props.onBlur?.({ e, value: innerValue.value });\n }}\n onFocus={(inputValue, { e }) => {\n props.onFocus?.({ e, value: innerValue.value });\n }}\n {...(props.selectInputProps as TdSelectProps['selectInputProps'])}\n v-slots={{\n label: slots.label,\n prefixIcon: slots.prefixIcon,\n suffix: slots.suffix,\n panel: () => (\n <SelectPanel\n ref={selectPanelRef}\n {...picker(props, [\n 'size',\n 'multiple',\n 'empty',\n 'loading',\n 'loadingText',\n 'filterable',\n 'creatable',\n 'panelTopContent',\n 'panelBottomContent',\n 'filter',\n 'scroll',\n ])}\n inputValue={innerInputValue.value}\n v-slots={slots}\n />\n ),\n collapsedItems: slots.collapsedItems,\n }}\n />\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","_objectSpread","valueDisplayOptions","type","Object","setup","slots","_ref","classPrefix","usePrefixClass","isDisabled","useDisabled","isReadonly","useReadonly","renderTNodeJSX","useTNodeJSX","COMPONENT_NAME","_useConfig","useConfig","globalConfig","t","_toRefs","toRefs","popupVisible","inputValue","modelValue","value","_useDefaultValue","useDefaultValue","defaultInputValue","onInputChange","_useDefaultValue2","_slicedToArray","innerInputValue","setInputValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","orgValue","setOrgValue","selectPanelRef","ref","selectInputRef","keys","computed","_props2$keys","_props2$keys2","_props2$keys3","label","disabled","_useSelectOptions","useSelectOptions","optionsMap","optionsList","optionsCache","displayOptions","filterMethods","innerValue","multiple","valueType","map","option","setInnerValue","newVal","context","_keys$value","getOption","val","get","_defineProperty","reserveKeyword","selectedOptions","getSelectedOptions","_useDefaultValue3","visible","_props2$onPopupVisibl","onPopupVisibleChange","_useDefaultValue4","innerPopupVisible","setInnerPopupVisible","placeholderText","_ref3","getSingleContent","placeholder","displayText","getMultipleContent","valueDisplayParams","isArray","_optionsMap$value$get","params","onClose","index","removeTag","assign","minCollapsedNum","_val$slice","displayValue","slice","call","isFilterable","Boolean","filterable","isFunction","filter","isRemoteSearch","onSearch","_props2$onRemove","_ref4","e","_ref4$trigger","trigger","stopPropagation","selectValue","cloneDeep","splice","onRemove","data","handleCreate","_props2$onCreate","onCreate","popupContentRef","_selectInputRef$value","popupRef","getOverlay","optionalList","item","checkAll","arguments","length","undefined","includes","_useKeyboardControl","useKeyboardControl","max","hoverIndex","virtualFilteredOptions","handleKeyDown","filteredOptions","onCheckAllChange","checked","lockedValues","find","activeValues","formattedOrgValue","v","values","_toConsumableArray","Set","concat","intersectionLen","n","intersection","isCheckAll","indeterminate","SelectProvider","handleValueChange","handlerInputChange","handlePopupVisibleChange","size","emitBlur","handleOptionEmitBlur","provide","selectInjectKey","checkValueInvalid","handleSearch","debounce","_ref5","_props2$onSearch","nextTick","_selectPanelRef$value","_selectPanelRef$value2","visibleData","_props2$onBlur","onBlur","handlerPopupVisibleChange","handlerPopupScrollToBottom","_ref6","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_popupProps$onScroll","_popupProps$onScrollT","popupProps","wrap","_callee$","_context","prev","next","loading","abrupt","onScrollToBottom","stop","_x","apply","addCache","newCache","_iterator","_createForOfIteratorHelper","_step","s","done","push","err","f","Array","from","watch","immediate","updateScrollTop","content","_selectPanelRef$value3","firstSelectedNode","innerRef","querySelector","_getComputedStyle","getComputedStyle","paddingBottom","_getComputedStyle2","marginBottom","elementBottomHeight","parseInt","updateValue","offsetTop","clientHeight","scrollTop","_ref7","overlayClassName","restPopupProps","_objectWithoutProperties","_excluded","_createVNode","SelectInput","_mergeProps","autoWidth","readonly","borderless","clearable","status","tips","autofocus","suffix","collapsedItems","inputProps","onkeydown","tagInputProps","onTagChange","ctx","tagProps","prefixIcon","suffixIcon","showArrow","FakeArrow","valueDisplay","onClear","_ref8","_props2$onClear","onEnter","_ref9","setTimeout","_props2$onEnter","_ref10","_props2$onBlur2","onFocus","_ref11","_props2$onFocus","selectInputProps","panel","picker"],"mappings":"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"}