{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/editor/src/toolbar/link/index.vue"],"sourcesContent":["<template>\n  <el-tooltip\n    effect=\"light\"\n    placement=\"top\"\n    :disabled=\"!showTip\"\n    :content=\"t('epx.editor.linkTip')\"\n  >\n    <Icon :icon=\"Link\" size=\"18\" @click=\"() => (visible = true)\" />\n  </el-tooltip>\n\n  <el-dialog\n    v-model=\"visible\"\n    append-to-body\n    draggable\n    :modal=\"false\"\n    width=\"400\"\n    :title=\"t('epx.editor.link')\"\n  >\n    <el-form\n      ref=\"ruleFormRef\"\n      label-position=\"top\"\n      :model=\"ruleForm\"\n      :rules=\"rules\"\n      label-width=\"auto\"\n      status-icon\n      style=\"margin-top: 12px\"\n    >\n      <el-form-item :label=\"t('epx.editor.link')\" prop=\"href\">\n        <el-input\n          v-model=\"ruleForm.href\"\n          :placeholder=\"t('epx.editor.linkPlaceholder')\"\n        />\n      </el-form-item>\n      <el-form-item prop=\"target\">\n        <el-checkbox v-model=\"ruleForm.target\">\n          {{ t('epx.editor.target') }}\n        </el-checkbox>\n      </el-form-item>\n    </el-form>\n    <template #footer>\n      <div class=\"dialog-footer\">\n        <el-button @click=\"resetForm(ruleFormRef)\">{{\n          t('epx.common.cancel')\n        }}</el-button>\n        <el-button type=\"primary\" @click=\"submitForm(ruleFormRef)\">\n          {{ t('epx.editor.add') }}\n        </el-button>\n      </div>\n    </template>\n  </el-dialog>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref } from 'vue'\nimport {\n  ElButton,\n  ElDialog,\n  ElForm,\n  ElFormItem,\n  ElInput,\n  useLocale,\n} from 'element-plus'\nimport * as IconsVue from '@element-plus/components/icons-vue/index'\nimport Icon from '../icon.vue'\nimport { useToolBarContext } from '../../hooks'\nimport type { FormInstance, FormRules } from 'element-plus'\n\nconst { Link } = IconsVue\n\nconst { t } = useLocale()\nconst visible = ref(false)\n\nconst toolBarContext = useToolBarContext()\nconst showTip = computed(() => toolBarContext.value.configure.showTip)\nconst getEditor = () => toolBarContext.value.editor\n\ninterface RuleForm {\n  target: boolean\n  href: string\n}\n\nconst ruleFormRef = ref<FormInstance>()\nconst ruleForm = reactive<RuleForm>({\n  target: true,\n  href: '',\n})\n\nconst rules = reactive<FormRules<RuleForm>>({})\n\nconst setLink = () => {\n  getEditor()\n    .chain()\n    .focus()\n    .extendMarkRange('link')\n    .setLink({\n      href: ruleForm.href,\n      target: ruleForm.target ? '_blank' : '_self',\n    })\n    .run()\n}\n\nconst submitForm = async (formEl: FormInstance | undefined) => {\n  if (!formEl) return\n  await formEl.validate((valid) => {\n    if (valid) {\n      setLink()\n      formEl.resetFields()\n      visible.value = false\n    }\n  })\n}\n\nconst resetForm = (formEl: FormInstance | undefined) => {\n  if (!formEl) return\n  visible.value = false\n  formEl.resetFields()\n}\n</script>\n"],"names":["IconsVue"],"mappings":";;;;;;;;;;AAmEM,IAAA,MAAA,EAAE,MAAS,GAAAA,KAAA,CAAA;AAEX,IAAA,MAAA,EAAE,CAAE,EAAA,GAAI,SAAU,EAAA,CAAA;AAClB,IAAA,MAAA,OAAA,GAAU,IAAI,KAAK,CAAA,CAAA;AAEzB,IAAA,MAAM,iBAAiB,iBAAkB,EAAA,CAAA;AACzC,IAAA,MAAM,UAAU,QAAS,CAAA,MAAM,cAAe,CAAA,KAAA,CAAM,UAAU,OAAO,CAAA,CAAA;AAC/D,IAAA,MAAA,SAAA,GAAY,MAAM,cAAA,CAAe,KAAM,CAAA,MAAA,CAAA;AAO7C,IAAA,MAAM,cAAc,GAAkB,EAAA,CAAA;AACtC,IAAA,MAAM,WAAW,QAAmB,CAAA;AAAA,MAClC,MAAQ,EAAA,IAAA;AAAA,MACR,IAAM,EAAA,EAAA;AAAA,KACP,CAAA,CAAA;AAEK,IAAA,MAAA,KAAA,GAAQ,QAA8B,CAAA,EAAE,CAAA,CAAA;AAE9C,IAAA,MAAM,UAAU,MAAM;AACV,MAAA,SAAA,EAAA,CACP,OACA,CAAA,KAAA,GACA,eAAgB,CAAA,MAAM,EACtB,OAAQ,CAAA;AAAA,QACP,MAAM,QAAS,CAAA,IAAA;AAAA,QACf,MAAA,EAAQ,QAAS,CAAA,MAAA,GAAS,QAAW,GAAA,OAAA;AAAA,OACtC,EACA,GAAI,EAAA,CAAA;AAAA,KACT,CAAA;AAEM,IAAA,MAAA,UAAA,GAAa,OAAO,MAAqC,KAAA;AAC7D,MAAA,IAAI,CAAC,MAAA;AAAQ,QAAA,OAAA;AACP,MAAA,MAAA,MAAA,CAAO,QAAS,CAAA,CAAC,KAAU,KAAA;AAC/B,QAAA,IAAI,KAAO,EAAA;AACD,UAAA,OAAA,EAAA,CAAA;AACR,UAAA,MAAA,CAAO,WAAY,EAAA,CAAA;AACnB,UAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,SAClB;AAAA,OACD,CAAA,CAAA;AAAA,KACH,CAAA;AAEM,IAAA,MAAA,SAAA,GAAY,CAAC,MAAqC,KAAA;AACtD,MAAA,IAAI,CAAC,MAAA;AAAQ,QAAA,OAAA;AACb,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAChB,MAAA,MAAA,CAAO,WAAY,EAAA,CAAA;AAAA,KACrB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}