{"version":3,"file":"highlight.vue2.mjs","sources":["../../../components/highlight/highlight.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { useNameHelper, useProps } from '@vexip-ui/config'\nimport { highlightProps } from './props'\n\ndefineOptions({ name: 'Highlight' })\n\nconst _props = defineProps(highlightProps)\nconst props = useProps('highlight', _props, {\n  content: {\n    default: '',\n    static: true\n  },\n  keyWords: {\n    default: () => [],\n    static: true\n  },\n  ignoreCase: false\n})\n\nconst nh = useNameHelper('highlight')\n\nconst splitRE = computed(() => {\n  const keyWords = props.keyWords?.filter(Boolean)\n\n  if (!keyWords?.length) {\n    return null\n  }\n\n  return new RegExp(\n    `(${keyWords.sort((p, n) => n.length - p.length).join('|')})`,\n    `${props.ignoreCase ? 'i' : ''}g`\n  )\n})\nconst renderTexts = computed(() => {\n  if (!splitRE.value || !props.content) {\n    return [{ isKey: false, text: props.content }]\n  }\n\n  return props.content.split(splitRE.value).map(text => {\n    return { isKey: splitRE.value!.test(text), text }\n  })\n})\n</script>\n\n<template>\n  <div :class=\"[nh.b(), nh.bs('vars'), props.inherit && nh.bm('inherit')]\">\n    <template v-for=\"(item, index) in renderTexts\" :key=\"index\">\n      <span v-if=\"item.isKey\" :class=\"nh.be('key-word')\">\n        <slot name=\"light\" :text=\"item.text\">\n          {{ item.text }}\n        </slot>\n      </span>\n      <span v-else>\n        <slot :text=\"item.text\">\n          {{ item.text }}\n        </slot>\n      </span>\n    </template>\n  </div>\n</template>\n"],"names":["props","useProps","__props","nh","useNameHelper","splitRE","computed","keyWords","_a","p","n","renderTexts","text"],"mappings":";;;;;;;;AASM,UAAAA,IAAQC,EAAS,aADRC,GAC6B;AAAA,MAC1C,SAAS;AAAA,QACP,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,MACA,UAAU;AAAA,QACR,SAAS,MAAM,CAAC;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,MACA,YAAY;AAAA,IAAA,CACb,GAEKC,IAAKC,EAAc,WAAW,GAE9BC,IAAUC,EAAS,MAAM;;AAC7B,YAAMC,KAAWC,IAAAR,EAAM,aAAN,gBAAAQ,EAAgB,OAAO;AAEpC,aAACD,KAAA,QAAAA,EAAU,SAIR,IAAI;AAAA,QACT,IAAIA,EAAS,KAAK,CAACE,GAAGC,MAAMA,EAAE,SAASD,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC;AAAA,QAC1D,GAAGT,EAAM,aAAa,MAAM,EAAE;AAAA,MAChC,IANS;AAAA,IAMT,CACD,GACKW,IAAcL,EAAS,MACvB,CAACD,EAAQ,SAAS,CAACL,EAAM,UACpB,CAAC,EAAE,OAAO,IAAO,MAAMA,EAAM,SAAS,IAGxCA,EAAM,QAAQ,MAAMK,EAAQ,KAAK,EAAE,IAAI,CAAQO,OAC7C,EAAE,OAAOP,EAAQ,MAAO,KAAKO,CAAI,GAAG,MAAAA,EAAK,EACjD,CACF;;;;;;;;;;;;;;;;;;;;;;;;;"}