{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/editor/src/toolbar/heading/index.vue"],"sourcesContent":["<template>\n  <span :class=\"[ns.b()]\">\n    <el-dropdown trigger=\"click\">\n      <div :class=\"[ns.e('trigger'), isActive() ? 'active' : '']\">\n        <el-tooltip\n          effect=\"light\"\n          placement=\"top\"\n          :disabled=\"!showTip\"\n          :content=\"t('epx.editor.headingTip')\"\n        >\n          <span :class=\"ns.m('title')\">\n            H <el-icon style=\"margin-left: 4px\"><ArrowDown /></el-icon>\n          </span>\n        </el-tooltip>\n      </div>\n\n      <template #dropdown>\n        <el-dropdown-menu>\n          <el-dropdown-item\n            v-for=\"(item, level) in Object.values(commands)\"\n            :key=\"level\"\n            :class=\"ns.e(`item${level + 1}`)\"\n            @click=\"handleClick(item.type)\"\n          >\n            <div :class=\"[ns.e('item'), getActive(item.type) ? 'active' : '']\">\n              Heading{{ level + 1 }}\n            </div>\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  ElIcon,\n  useLocale,\n  useNamespace,\n} from 'element-plus'\nimport { ArrowDown } from '@element-plus/icons-vue'\n\nimport { useToolBarContext } from '../../hooks'\n\nconst ns = useNamespace('editor-heading')\nconst { t } = useLocale()\n\ndefineOptions({\n  name: 'EditorHeading',\n  inheritAttrs: false,\n})\n\nconst toolBarContext = useToolBarContext()\nconst showTip = computed(() => toolBarContext.value.configure.showTip)\n\nconst getEditor = () => toolBarContext.value.editor\n\ntype ICommandOption = {\n  type: string\n  command: () => void\n  isActive: () => boolean\n}\n\ntype ICommands = {\n  [key: string]: ICommandOption\n}\n\nconst commands: ICommands = {\n  h1: {\n    type: 'h1',\n    command: () =>\n      getEditor().chain().focus().toggleHeading({ level: 1 }).run(),\n    isActive: () => getEditor().isActive('heading', { level: 1 }),\n  },\n  h2: {\n    type: 'h2',\n    command: () =>\n      getEditor().chain().focus().toggleHeading({ level: 2 }).run(),\n    isActive: () => getEditor().isActive('heading', { level: 2 }),\n  },\n  h3: {\n    type: 'h3',\n    command: () =>\n      getEditor().chain().focus().toggleHeading({ level: 3 }).run(),\n    isActive: () => getEditor().isActive('heading', { level: 3 }),\n  },\n  h4: {\n    type: 'h4',\n    command: () =>\n      getEditor().chain().focus().toggleHeading({ level: 4 }).run(),\n    isActive: () => getEditor().isActive('heading', { level: 4 }),\n  },\n  h5: {\n    type: 'h5',\n    command: () =>\n      getEditor().chain().focus().toggleHeading({ level: 5 }).run(),\n    isActive: () => getEditor().isActive('heading', { level: 5 }),\n  },\n  h6: {\n    type: 'h6',\n    command: () =>\n      getEditor().chain().focus().toggleHeading({ level: 6 }).run(),\n    isActive: () => getEditor().isActive('heading', { level: 6 }),\n  },\n}\n\nconst isActive = () => {\n  return Object.keys(commands).some((key) => {\n    const item = commands[key]\n    return item['isActive']()\n  })\n}\n\nconst getActive = (key: string) => commands[key]['isActive']()\n\nconst handleClick = (key: string) => {\n  const item = commands[key]\n  item.command()\n}\n</script>\n"],"names":[],"mappings":"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"}