{"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;;;;"}