{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/editor/src/toolbar/video/index.vue"],"sourcesContent":["<template>\n  <span :class=\"[ns.b()]\">\n    <el-dropdown trigger=\"click\">\n      <div>\n        <el-tooltip\n          effect=\"light\"\n          placement=\"top\"\n          :disabled=\"!showTip\"\n          :content=\"t('epx.editor.videoTip')\"\n        >\n          <Icon :icon=\"Video\" size=\"21\" color=\"#000000\" />\n        </el-tooltip>\n      </div>\n\n      <template #dropdown>\n        <el-dropdown-menu>\n          <el-dropdown-item>\n            <online-video @change=\"handleOnlineVideo\" />\n          </el-dropdown-item>\n          <el-dropdown-item>\n            <upload-video\n              :trigger-name=\"t('epx.editor.uploadVideo')\"\n              @change=\"handleUploadVideo\"\n            />\n          </el-dropdown-item>\n        </el-dropdown-menu>\n      </template>\n    </el-dropdown>\n  </span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport {\n  ElDropdown,\n  ElDropdownItem,\n  ElDropdownMenu,\n  useLocale,\n  useNamespace,\n} from 'element-plus'\nimport * as IconsVue from '@element-plus/components/icons-vue/index'\nimport Icon from '../icon.vue'\nimport { useToolBarContext } from '../../hooks'\nimport UploadVideo from '../upload/index.vue'\nimport OnlineVideo from './online.vue'\nimport type { UploadFile } from 'element-plus'\nimport type { ISetVideOptions, IToolbarVideo } from '../../types'\n\nconst ns = useNamespace('editor-video')\nconst { t } = useLocale()\nconst { Video } = IconsVue\n\ndefineOptions({\n  name: 'EditorVideo',\n  inheritAttrs: false,\n})\n\nconst toolBarContext = useToolBarContext()\nconst showTip = computed(() => toolBarContext.value.configure.showTip)\n\nconst getEditor = () => toolBarContext.value.editor\nconst getConfigure = () =>\n  toolBarContext.value.configure?.video ?? { onChange: () => {} }\n\nconst setVideo = (options: ISetVideOptions) => {\n  let attrs = ''\n  Object.entries(options).forEach(([key, value]) => {\n    attrs += `${key}=\"${value}\" `\n  })\n  const html = `<video ${attrs}></video>`\n  getEditor().chain().insertContent(html, {}).focus().run()\n}\n\nconst handleOnlineVideo = (options: ISetVideOptions) => {\n  setVideo(options)\n}\n\nconst handleUploadVideo = (uploadFile: UploadFile) => {\n  const videoConfig: IToolbarVideo = getConfigure()\n  videoConfig.onChange(uploadFile, (options: ISetVideOptions) => {\n    setVideo(options)\n  })\n}\n</script>\n"],"names":["IconsVue"],"mappings":";;;;;;;;;mCAoDc,CAAA;AAAA,EACZ,IAAM,EAAA,aAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAChB,CAAA,CAAA,CAAA;;;;AAPM,IAAA,MAAA,EAAA,GAAK,aAAa,cAAc,CAAA,CAAA;AAChC,IAAA,MAAA,EAAE,CAAE,EAAA,GAAI,SAAU,EAAA,CAAA;AAClB,IAAA,MAAA,EAAE,OAAU,GAAAA,KAAA,CAAA;AAOlB,IAAA,MAAM,iBAAiB,iBAAkB,EAAA,CAAA;AACzC,IAAA,MAAM,UAAU,QAAS,CAAA,MAAM,cAAe,CAAA,KAAA,CAAM,UAAU,OAAO,CAAA,CAAA;AAE/D,IAAA,MAAA,SAAA,GAAY,MAAM,cAAA,CAAe,KAAM,CAAA,MAAA,CAAA;AACvC,IAAA,MAAA,eAAe;;AACnB,MAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAA,CAAe,MAAM,SAArB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgC,UAAhC,IAAyC,GAAA,EAAA,GAAA,EAAE,UAAU,MAAM;AAAA,OAAG,EAAA,CAAA;AAAA,KAAA,CAAA;AAE1D,IAAA,MAAA,QAAA,GAAW,CAAC,OAA6B,KAAA;AAC7C,MAAA,IAAI,KAAQ,GAAA,EAAA,CAAA;AACL,MAAA,MAAA,CAAA,OAAA,CAAQ,OAAO,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAAM,KAAA;AACvC,QAAA,KAAA,IAAA,GAAG,GAAQ,CAAA,EAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACrB,CAAA,CAAA;AACK,MAAA,MAAA,OAAO,CAAU,OAAA,EAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AACb,MAAA,SAAA,EAAA,CAAE,KAAM,EAAA,CAAE,aAAc,CAAA,IAAA,EAAM,EAAE,CAAA,CAAE,KAAM,EAAA,CAAE,GAAI,EAAA,CAAA;AAAA,KAC1D,CAAA;AAEM,IAAA,MAAA,iBAAA,GAAoB,CAAC,OAA6B,KAAA;AACtD,MAAA,QAAA,CAAS,OAAO,CAAA,CAAA;AAAA,KAClB,CAAA;AAEM,IAAA,MAAA,iBAAA,GAAoB,CAAC,UAA2B,KAAA;AACpD,MAAA,MAAM,cAA6B,YAAa,EAAA,CAAA;AACpC,MAAA,WAAA,CAAA,QAAA,CAAS,UAAY,EAAA,CAAC,OAA6B,KAAA;AAC7D,QAAA,QAAA,CAAS,OAAO,CAAA,CAAA;AAAA,OACjB,CAAA,CAAA;AAAA,KACH,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}