tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 17.1 kB
Source Map (JSON)
{"version":3,"file":"search.mjs","sources":["../../src/search/search.tsx"],"sourcesContent":["import { SearchIcon as TSearchIcon, CloseCircleFilledIcon as TIconClear } from 'tdesign-icons-vue-next';\nimport { ref, toRefs, computed, defineComponent, nextTick, h } from 'vue';\nimport { useFocus } from '@vueuse/core';\nimport config from '../config';\nimport { preventDefault } from '../shared/dom';\nimport searchProps from './props';\nimport useVModel from '../hooks/useVModel';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport useLengthLimit from '../hooks/useLengthLimit';\nimport { TdSearchProps } from './type';\nimport { ENTER_REG } from '../_common/js/common';\nimport TCell from '../cell/cell';\n\nconst { prefix } = config;\n\ntype EnterKeyHint = 'search' | 'done' | 'enter' | 'go' | 'next' | 'previous' | 'send';\n\nexport default defineComponent({\n name: `${prefix}-search`,\n props: searchProps,\n setup(props, context) {\n const renderTNodeJSX = useTNodeJSX();\n const classPrefix = usePrefixClass();\n const searchClass = usePrefixClass('search');\n\n const isShowResultList = ref(false);\n const inputRef = ref<HTMLInputElement>();\n const { focused } = useFocus(inputRef, { initialValue: props.focus });\n\n const { value, modelValue } = toRefs(props);\n const [searchValue, setSearchValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const boxClasses = computed(() => [\n `${searchClass.value}__input-box`,\n `${searchClass.value}__input-box--${props.shape}`,\n {\n [`${classPrefix.value}-is-focused`]: focused.value,\n },\n ]);\n\n const inputClasses = computed(() => [\n `${classPrefix.value}-input__keyword`,\n { [`${searchClass.value}--center`]: props.center },\n ]);\n\n const limitParams = computed(() => ({\n value: [undefined, null].includes(searchValue.value) ? undefined : String(searchValue.value),\n maxlength: Number(props.maxlength),\n maxcharacter: props.maxcharacter,\n allowInputOverMax: false,\n }));\n\n const { getValueByLimitNumber } = useLengthLimit(limitParams);\n\n const setInputValue = (v: TdSearchProps['value']) => {\n const input = inputRef.value;\n const sV = String(v);\n if (!input) {\n return;\n }\n if (input.value !== sV) {\n input.value = sV;\n }\n };\n\n const inputValueChangeHandle = (e: Event) => {\n const { value } = e.target as HTMLInputElement;\n setSearchValue(getValueByLimitNumber(value), { trigger: 'input-change', e });\n nextTick(() => setInputValue(searchValue.value));\n };\n\n const handleInput = (e: Event) => {\n isShowResultList.value = true;\n if (e instanceof InputEvent) {\n // 中文输入的时候inputType是insertCompositionText所以中文输入的时候禁止触发。\n const checkInputType = e.inputType && e.inputType === 'insertCompositionText';\n if (e.isComposing || checkInputType) return;\n }\n inputValueChangeHandle(e);\n };\n\n const handleClear = (e: MouseEvent) => {\n setSearchValue('', { trigger: 'clear', e });\n focused.value = true;\n props.onClear?.({ e });\n };\n\n const handleFocus = (e: FocusEvent) => {\n props.onFocus?.({ value: searchValue.value, e });\n };\n\n const handleBlur = (e: FocusEvent) => {\n props.onBlur?.({ value: searchValue.value, e });\n };\n\n const handleCompositionend = (e: CompositionEvent) => {\n inputValueChangeHandle(e as unknown as Event);\n };\n\n const handleAction = (e: MouseEvent) => {\n props.onActionClick?.({ e });\n };\n\n const handleSearch = (e: KeyboardEvent) => {\n // 如果按的是 enter 键, 13是 enter\n if (ENTER_REG.test(e.code) || ENTER_REG.test(e.key)) {\n preventDefault(e, false);\n inputRef.value?.blur();\n props.onSubmit?.({ value: searchValue.value, e });\n }\n };\n\n return () => {\n const readerLeftIcon = () => {\n const leftIcon = renderTNodeJSX('leftIcon');\n if (leftIcon === 'search') {\n return <TSearchIcon />;\n }\n return renderTNodeJSX('leftIcon');\n };\n const readerClear = () => {\n if (\n props.clearable &&\n searchValue.value &&\n (props.clearTrigger === 'always' || (props.clearTrigger === 'focus' && focused.value))\n ) {\n return (\n <div class={`${searchClass.value}__clear`} onClick={handleClear}>\n <TIconClear />\n </div>\n );\n }\n return null;\n };\n const readerAction = () => {\n const action = renderTNodeJSX('action');\n if (action) {\n return (\n <div class={`${searchClass.value}__search-action ${classPrefix.value}-class-action`} onClick={handleAction}>\n {action}\n </div>\n );\n }\n return null;\n };\n\n const onSelectOption = (params: { item: string; e: MouseEvent }) => {\n isShowResultList.value = false;\n setSearchValue(params.item, { trigger: 'option-click', e: params.e });\n };\n\n const highlightSearchValue = (item: string, searchValue: string) => {\n const parts = item.split(new RegExp(`(${searchValue})`, 'gi'));\n return parts.map((part, index) =>\n part.toLowerCase() === searchValue.toLowerCase() ? (\n <span key={index} class={`${searchClass.value}__result-item--highLight`}>\n {part}\n </span>\n ) : (\n part\n ),\n );\n };\n\n const listNodes = (params: { item: string; index: number }) => {\n return h(\n TCell,\n {\n key: params.index,\n class: `${searchClass.value}__result-item`,\n onClick: (context: { e: MouseEvent }) => onSelectOption({ item: params.item, e: context.e }),\n },\n {\n title: () => highlightSearchValue(params.item, searchValue.value),\n },\n );\n };\n const extraProps = {\n enterkeyhint: 'search' as EnterKeyHint,\n };\n return (\n <div>\n <div class={`${searchClass.value}`}>\n <div class={boxClasses.value}>\n {readerLeftIcon()}\n <input\n ref={inputRef}\n value={searchValue.value}\n type=\"search\"\n class={inputClasses.value}\n style={props.cursorColor ? { '--td-search-cursor-color': props.cursorColor } : undefined}\n autofocus={props.focus}\n placeholder={props.placeholder}\n readonly={props.readonly}\n disabled={props.disabled}\n onKeypress={handleSearch}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onCompositionend={handleCompositionend}\n {...extraProps}\n />\n {readerClear()}\n </div>\n {readerAction()}\n </div>\n {isShowResultList.value && (\n <div class={`${searchClass.value}__result-list`}>\n {props.resultList.map((item, index) => listNodes({ item, index }))}\n </div>\n )}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","searchProps","setup","context","renderTNodeJSX","useTNodeJSX","classPrefix","usePrefixClass","searchClass","isShowResultList","ref","inputRef","_useFocus","useFocus","initialValue","focus","focused","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","searchValue","setSearchValue","boxClasses","computed","concat","shape","_defineProperty","inputClasses","center","limitParams","includes","String","maxlength","Number","maxcharacter","allowInputOverMax","_useLengthLimit","useLengthLimit","getValueByLimitNumber","setInputValue","v","input","sV","inputValueChangeHandle","e","target","trigger","nextTick","handleInput","InputEvent","checkInputType","inputType","isComposing","handleClear","_props$onClear","onClear","call","handleFocus","_props$onFocus","onFocus","handleBlur","_props$onBlur","onBlur","handleCompositionend","handleAction","_props$onActionClick","onActionClick","handleSearch","ENTER_REG","test","code","key","_inputRef$value","_props$onSubmit","preventDefault","blur","onSubmit","readerLeftIcon","leftIcon","_createVNode","TSearchIcon","readerClear","clearable","clearTrigger","TIconClear","readerAction","action","onSelectOption","params","item","highlightSearchValue","parts","split","RegExp","map","part","index","toLowerCase","listNodes","h","TCell","class","onClick","title","extraProps","enterkeyhint","_mergeProps","cursorColor","placeholder","readonly","disabled","resultList"],"mappings":"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"}