{"version":3,"file":"use-editor-md-render.mjs","sources":["../../../../../../../packages/components/editor-md/src/composables/use-editor-md-render.ts"],"sourcesContent":["import { ref, toRefs, watch } from 'vue'\nimport { MDRenderService } from './md-render-service'\nimport type { MdPlugin, MdRenderProps } from '../editor-md-types'\n\nexport function useEditorMdRender(props: MdRenderProps, emits: any) {\n  const { content, customParse, disableRender } = toRefs(props)\n  const renderService: any = new MDRenderService()\n  const previewRef = ref()\n  let timer: ReturnType<typeof setTimeout> | null = null\n\n  const setContainerContent = () => {\n    if (timer) {\n      clearTimeout(timer)\n    }\n    timer = setTimeout(() => {\n      if (content.value === undefined) {\n        return\n      }\n\n      let html = renderService?.generateHTML?.(content.value)\n      if (customParse?.value && customParse.value instanceof Function) {\n        html = customParse.value(html)\n      }\n\n      if (!disableRender.value && previewRef.value) {\n        previewRef.value.innerHTML = html\n      }\n      emits('mdRenderChange', html)\n    }, 300)\n  }\n\n  const setChecked = (checked: boolean, index: number) => {\n    const pattern = /\\[(X|\\s|_|-)\\]\\s(.*)/gi\n    let i = 0\n    const result = content.value.replace(pattern, (str) => {\n      const arr = str.split('<br>')\n      let j = 0\n      while (j < arr.length) {\n        if (arr[j].match(/\\[(X|\\s|_|-)\\]/i)) {\n          i++\n        }\n        if (i === index + 1) {\n          arr[j] = arr[j].replace(\n            /\\[(X|\\s|_|-)\\]/i,\n            `${checked ? '[x]' : '[ ]'}`\n          )\n        }\n        j++\n      }\n      return arr.join('<br>')\n    })\n    return result\n  }\n\n  const onPreviewClick = (e: any) => {\n    if (e.target?.tagName === 'INPUT' && e.target.type === 'checkbox') {\n      const result = previewRef.value.querySelectorAll('input')\n      const index = [...result]\n        .filter((el: any) => el.type === 'checkbox')\n        .indexOf(e.target)\n      const checkContent = setChecked(e.target.checked, index)\n      emits('checkedChange', checkContent)\n    }\n  }\n\n  return { previewRef, renderService, onPreviewClick, setContainerContent }\n}\n\nexport function useMdRenderWatcher(\n  props: MdRenderProps,\n  renderService: any,\n  setContainerContent: () => void\n) {\n  const {\n    mdRules,\n    content,\n    customParse,\n    renderParse,\n    customXssRules,\n    customRendererRules,\n    baseUrl,\n    breaks,\n    mdPlugins,\n  } = toRefs(props)\n  watch(\n    mdRules,\n    () => {\n      renderService.setRules(mdRules?.value)\n    },\n    {\n      immediate: true,\n    }\n  )\n\n  watch(content, setContainerContent, { immediate: true })\n\n  watch(customParse, setContainerContent, { immediate: true })\n\n  watch(\n    renderParse,\n    () => {\n      renderService.setRenderParse(renderParse?.value)\n      setContainerContent()\n    },\n    { immediate: true }\n  )\n\n  watch(\n    customXssRules,\n    () => {\n      renderService.setCustomXssRules(customXssRules.value)\n      setContainerContent()\n    },\n    {\n      immediate: true,\n    }\n  )\n\n  watch(\n    customRendererRules,\n    () => {\n      renderService.setCustomRendererRules(customRendererRules?.value)\n      setContainerContent()\n    },\n    {\n      immediate: true,\n    }\n  )\n\n  watch(\n    baseUrl,\n    () => {\n      renderService.setBaseUrl(baseUrl?.value)\n      setContainerContent()\n    },\n    {\n      immediate: true,\n    }\n  )\n\n  watch(\n    breaks,\n    () => {\n      renderService.setBreaks(breaks?.value)\n      setContainerContent()\n    },\n    {\n      immediate: true,\n    }\n  )\n\n  watch(\n    mdPlugins,\n    (plugins: MdPlugin[]) => {\n      if (plugins && plugins.length) {\n        renderService.setPlugins(plugins)\n        setContainerContent()\n      }\n    },\n    {\n      immediate: true,\n    }\n  )\n}\n"],"names":[],"mappings":"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"}