tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 16.4 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\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));\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('');\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);\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 size=\"24px\" />;\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 size=\"24\" />\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 onSelectResultItem = (params: { item: string }) => {\n isShowResultList.value = false;\n setSearchValue(params.item);\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: () => onSelectResultItem({ item: params.item }),\n },\n {\n title: () => highlightSearchValue(params.item, searchValue.value),\n },\n );\n };\n\n const extraProps = {\n enterkeyhint: 'search',\n };\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 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","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","onSelectResultItem","params","item","highlightSearchValue","parts","split","RegExp","map","part","index","toLowerCase","listNodes","h","TCell","class","onClick","title","extraProps","enterkeyhint","_mergeProps","placeholder","readonly","disabled","resultList"],"mappings":"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"}