UNPKG

tdesign-vue-next

Version:
1 lines 3.49 kB
{"version":3,"file":"highlight-option.mjs","sources":["../../../../components/auto-complete/components/highlight-option.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { usePrefixClass } from '@tdesign/shared-hooks';\nimport { isString, escapeRegExp } from 'lodash-es';\n\nexport interface HighlightOptionProps {\n content: string;\n keyword: string;\n}\n\nexport default defineComponent({\n name: 'HighlightOption',\n props: {\n /** 联想词 */\n content: String as PropType<HighlightOptionProps['content']>,\n /** 搜索词 */\n keyword: String as PropType<HighlightOptionProps['keyword']>,\n },\n setup(props) {\n const classPrefix = usePrefixClass();\n const words = computed<{ list: string[]; keyword?: string }>(() => {\n const { content, keyword } = props;\n if (!content) return { list: [] };\n if (!isString(content) || !keyword) return { list: [content] };\n const regExp = new RegExp(escapeRegExp(keyword), 'i');\n const splitKeyword = content.match(regExp)?.[0];\n return {\n list: content.split(splitKeyword),\n keyword: splitKeyword,\n };\n });\n\n return () => {\n const { list, keyword } = words.value;\n return (\n <div class={`${classPrefix.value}-select-option__highlight-item`}>\n {list.map((item, index) => {\n if (!index) return item;\n return [\n <b class={`${classPrefix.value}-is-highlight`} key={item + keyword}>\n {keyword}\n </b>,\n item,\n ];\n })}\n </div>\n );\n };\n },\n});\n"],"names":["defineComponent","name","props","content","String","keyword","setup","classPrefix","usePrefixClass","words","computed","_content$match","list","isString","regExp","RegExp","escapeRegExp","splitKeyword","match","split","_words$value","value","_createVNode","concat","map","item","index"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,uBAAeA,eAAgB,CAAA;AAC7BC,EAAAA,IAAM,EAAA,iBAAA;AACNC,EAAAA,KAAO,EAAA;AAELC,IAAAA,OAAS,EAAAC,MAAA;AAETC,IAAAA,OAAS,EAAAD,MAAAA;GACX;AACAE,EAAAA,OAAAA,SAAAA,MAAMJ,KAAO,EAAA;AACX,IAAA,IAAMK,cAAcC,cAAe,EAAA,CAAA;AAC7B,IAAA,IAAAC,KAAA,GAAQC,SAA+C,YAAM;AAAA,MAAA,IAAAC,cAAA,CAAA;AAC3D,MAAA,IAAER,OAAS,GAAYD,KAAA,CAArBC,OAAS;QAAAE,OAAA,GAAYH,KAAA,CAAZG,OAAA,CAAA;MACjB,IAAI,CAACF,OAAA,EAAgB,OAAA;AAAES,QAAAA,IAAM,EAAA,EAAA;OAAG,CAAA;MAChC,IAAI,CAACC,QAAA,CAASV,OAAO,CAAA,IAAK,CAACE,OAAA,EAAS,OAAO;QAAEO,IAAA,EAAM,CAACT,OAAO,CAAA;OAAE,CAAA;MAC7D,IAAMW,SAAS,IAAIC,MAAA,CAAOC,YAAa,CAAAX,OAAO,GAAG,GAAG,CAAA,CAAA;AACpD,MAAA,IAAMY,YAAe,GAAAN,CAAAA,cAAA,GAAAR,OAAA,CAAQe,KAAM,CAAAJ,MAAM,CAAI,cAAAH,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAxBA,cAAA,CAAwB,CAAA,CAAA,CAAA;MACtC,OAAA;AACLC,QAAAA,IAAA,EAAMT,OAAQ,CAAAgB,KAAA,CAAMF,YAAY,CAAA;AAChCZ,QAAAA,OAAS,EAAAY,YAAAA;OACX,CAAA;AACF,KAAC,CAAA,CAAA;AAED,IAAA,OAAO,YAAM;AACX,MAAA,IAAAG,YAAA,GAA0BX,KAAM,CAAAY,KAAA;QAAxBT,IAAA,GAAAQ,YAAA,CAAAR,IAAA;QAAMP,OAAQ,GAAAe,YAAA,CAARf,OAAQ,CAAA;AAEpB,MAAA,OAAAiB,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAAC,MAAA,CAAehB,WAAA,CAAYc;OACxBT,EAAAA,CAAAA,IAAK,CAAAY,GAAA,CAAI,UAACC,IAAA,EAAMC,KAAU,EAAA;AACzB,QAAA,IAAI,CAACA,KAAA,EAAc,OAAAD,IAAA,CAAA;AACZ,QAAA,OAAA,CAAAH,WAAA,CAAA,GAAA,EAAA;AAAA,UAAA,OAAA,EAAA,EAAA,CAAAC,MAAA,CACQhB,WAAA,CAAYc;iBAA2BI,IAAA,GAAOpB,OAAAA;SACxDA,EAAAA,CAAAA,OAAA,CAEHoB,CAAAA,EAAAA,IAAA,CACF,CAAA;AACF,OAAC;KAGP,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}