{"version":3,"file":"editor-md.mjs","sources":["../../../../../../packages/components/editor-md/src/editor-md.vue"],"sourcesContent":["<template>\n  <LtFullScreen ref=\"fullScreenRef\">\n    <div\n      ref=\"containerRef\"\n      :class=\"[\n        ns.b('container'),\n        {\n          [ns.b('readonly')]: mode === 'readonly',\n          [ns.b('editonly')]: mode === 'editonly',\n          [ns.b('dark')]: isDarkMode,\n        },\n      ]\"\n      @paste=\"onPaste\"\n    >\n      <div :class=\"ns.b('toolbar')\">\n        <Toolbar />\n      </div>\n      <div\n        :class=\"[\n          ns.b('content-container'),\n          { 'hide-preview': hidePreviewView },\n        ]\"\n        :style=\"{ height: `${editorContainerHeight}px` }\"\n      >\n        <div :class=\"ns.b('editor')\">\n          <textarea\n            ref=\"editorRef\"\n            :placeholder=\"placeholder\"\n            :model-value=\"finalModelValue\"\n          />\n\n          <lt-popover\n            ref=\"overlayRef\"\n            v-model:visible=\"isHintShow\"\n            :virtual-ref=\"cursorRef\"\n            virtual-triggering\n            placement=\"bottom-start\"\n            @click=\"withModifiers(() => {}, ['stop'])\"\n          >\n            <slot name=\"hintTemplate\" />\n          </lt-popover>\n\n          <div v-if=\"Boolean(maxlength)\" :class=\"ns.b('count')\">\n            {{ (finalModelValue.length || 0) / maxlength }}\n          </div>\n        </div>\n\n        <MdRender\n          ref=\"renderRef\"\n          :base-url=\"baseUrl\"\n          :breaks=\"breaks\"\n          :content=\"finalModelValue\"\n          :custom-parse=\"customParse\"\n          :render-parse=\"renderParse\"\n          :md-rules=\"mdRules\"\n          :custom-renderer-rules=\"customRendererRules\"\n          :custom-xss-rules=\"customXssRules\"\n          disable-render\n          :md-plugins=\"mdPlugins\"\n          @mouseover=\"onPreviewMouseover\"\n          @mouseout=\"onPreviewMouseout\"\n          @scroll=\"onPreviewScroll\"\n          @md-render-change=\"previewContentChange\"\n          @checked-change=\"onChecked\"\n        >\n          <div\n            v-for=\"(html, index) in previewHtmlList || []\"\n            :key=\"index\"\n            :innerHTML=\"html\"\n          />\n        </MdRender>\n      </div>\n    </div>\n  </LtFullScreen>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, ref, watch, withModifiers } from 'vue'\nimport LtFullScreen from '@lit-element/components/fullScreen'\nimport LtPopover from '@lit-element/components/popover'\nimport { useNamespace } from '@lit-element/hooks'\nimport { EditorMdInjectionKey, editorMdProps } from './editor-md-types'\nimport Toolbar from './components/toolbar'\nimport MdRender from './components/render-md.vue'\nimport { locale } from './utils'\nimport { useEditorMdTheme } from './composables/use-editor-md-theme'\nimport { useEditorMd } from './composables/use-editor-md'\n\ndefineOptions({ name: 'LtEditorMd' })\nconst props = defineProps(editorMdProps)\nconst emits = defineEmits([\n  'update:modelValue',\n  'checkedChange',\n  'selectHint',\n  'afterEditorInit',\n  'contentChange',\n  'previewContentChange',\n  'imageUpload',\n])\n\nconst ns = useNamespace('md')\n\nconst showFullscreen = ref(false)\nconst fullScreenRef = ref()\n\nconst finalModelValue = computed(() => {\n  if (typeof props.maxlength === 'number') {\n    return props.modelValue.slice(0, Math.max(0, props.maxlength))\n  } else {\n    return props.modelValue\n  }\n})\n\nconst {\n  editorRef,\n  overlayRef,\n  cursorRef,\n  renderRef,\n  containerRef,\n  isHintShow,\n  toolbars,\n  previewHtmlList,\n  onPaste,\n  getEditorIns,\n  previewContentChange,\n  onChecked,\n  onPreviewScroll,\n  onPreviewMouseout,\n  onPreviewMouseover,\n} = useEditorMd(props, emits)\n\nconst { isDarkMode } = useEditorMdTheme(() => null)\n\nwatch(showFullscreen, () => {\n  fullScreenRef.value?.toggleMode('onlyShowContainer')\n})\n\nprovide(EditorMdInjectionKey, {\n  showFullscreen,\n  toolbars,\n  toolbarConfig: props.toolbarConfig,\n  customToolbars: props.customToolbars,\n  getEditorIns,\n  t: locale,\n})\n</script>\n"],"names":["DO_defineComponent"],"mappings":";;;;;;;;;;;;;AAwFc,MAAA,WAAA,GAAAA,eAAA,CAAA,EAAE,IAAM,EAAA,YAAA,EAAa,CAAA,CAAA;;;;;;;;;;;;;;;AAYnC,IAAM,MAAA,EAAA,GAAK,aAAa,IAAI,CAAA,CAAA;AAE5B,IAAM,MAAA,cAAA,GAAiB,IAAI,KAAK,CAAA,CAAA;AAChC,IAAA,MAAM,gBAAgB,GAAI,EAAA,CAAA;AAE1B,IAAM,MAAA,eAAA,GAAkB,SAAS,MAAM;AACrC,MAAI,IAAA,OAAO,KAAM,CAAA,SAAA,KAAc,QAAU,EAAA;AACvC,QAAO,OAAA,KAAA,CAAM,WAAW,KAAM,CAAA,CAAA,EAAG,KAAK,GAAI,CAAA,CAAA,EAAG,KAAM,CAAA,SAAS,CAAC,CAAA,CAAA;AAAA,OACxD,MAAA;AACL,QAAA,OAAO,KAAM,CAAA,UAAA,CAAA;AAAA,OACf;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,eAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,oBAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,iBAAA;AAAA,MACA,kBAAA;AAAA,KACF,GAAI,WAAY,CAAA,KAAA,EAAO,KAAK,CAAA,CAAA;AAE5B,IAAA,MAAM,EAAE,UAAA,EAAe,GAAA,gBAAA,CAAiB,MAAM,IAAI,CAAA,CAAA;AAElD,IAAA,KAAA,CAAM,gBAAgB,MAAM;AAC1B,MAAc,IAAA,EAAA,CAAA;AAAqC,MACpD,CAAA,EAAA,GAAA,aAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,CAAA;AAED,KAAA,CAAA,CAAA;AAA8B,IAC5B,OAAA,CAAA,oBAAA,EAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAqB,MACrB,oBAAsB,CAAA,aAAA;AAAA,MACtB,cAAA,EAAA,KAAA,CAAA,cAAA;AAAA,MACA,YAAG;AAAA,MACJ,CAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}