{"version":3,"file":"index.mjs","sources":["../../../../../../../../packages/components/editor/src/toolbar/font-size/index.vue"],"sourcesContent":["<template>\n  <span :class=\"[ns.b()]\">\n    <el-dropdown trigger=\"click\">\n      <div :class=\"[ns.e('trigger'), active ? 'active' : '']\">\n        <el-tooltip\n          effect=\"light\"\n          placement=\"top\"\n          :disabled=\"!showTip\"\n          :content=\"t('epx.editor.fontSizeTip')\"\n        >\n          <span :class=\"ns.m('title')\">\n            {{ title }}\n          </span>\n        </el-tooltip>\n      </div>\n\n      <template #dropdown>\n        <el-dropdown-menu>\n          <el-dropdown-item\n            v-for=\"(item, key) in commands\"\n            :key=\"key\"\n            :class=\"ns.e(`item-${key}`)\"\n            @click=\"handleClick(key)\"\n          >\n            <div :class=\"[ns.e('item'), getActive(`${key}`) ? 'active' : '']\">\n              {{ item.text }}\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  useLocale,\n  useNamespace,\n} from 'element-plus'\n\nimport { useToolBarContext } from '../../hooks'\nimport type { ComputedRef } from 'vue'\n\nconst { t } = useLocale()\nconst ns = useNamespace('editor-fontsize')\n\ndefineOptions({\n  name: 'EditorFontSize',\n  inheritAttrs: false,\n})\n\nconst toolBarContext = useToolBarContext()\nconst showTip = computed(() => toolBarContext.value.configure.showTip)\nconst getEditor = () => toolBarContext.value.editor\n\nconst createToggleFontSize = (fontsize: string) => {\n  let selected = false\n  return () => {\n    selected = !selected\n    selected\n      ? getEditor().chain().focus().setFontSize(fontsize).run()\n      : getEditor().chain().focus().unsetFontSize().run()\n  }\n}\n\ntype ICommandOption = {\n  type: string\n  text: string\n  command: () => void\n  isActive: () => boolean\n}\n\ntype ICommands = {\n  small: ICommandOption\n  middel: ICommandOption\n  large: ICommandOption\n  [key: string]: any\n}\n\nconst commands: ComputedRef<ICommands> = computed(() => ({\n  small: {\n    type: 'small',\n    text: t('epx.editor.small'),\n    command: createToggleFontSize('12px'),\n    isActive: () => getEditor().isActive('textStyle', { fontSize: '12px' }),\n  },\n  middel: {\n    type: 'middel',\n    text: t('epx.editor.middel'),\n    command: createToggleFontSize('14px'),\n    isActive: () => getEditor().isActive('textStyle', { fontSize: '14px' }),\n  },\n  large: {\n    type: 'large',\n    text: t('epx.editor.large'),\n    command: createToggleFontSize('16px'),\n    isActive: () => getEditor().isActive('textStyle', { fontSize: '16px' }),\n  },\n}))\n\nconst active = computed(() =>\n  Object.keys(commands.value).some((key) => {\n    const item = commands.value[key]\n    return item['isActive']()\n  })\n)\n\nconst getActive = (key: string) => commands.value[key]['isActive']()\n\nconst title = computed(() => {\n  const list = Object.values(commands.value)\n  const item = list.find((item: ICommandOption) => item.isActive())\n  return item ? `Aa ${item.text}` : 'Aa'\n})\n\nconst handleClick = (key: any) => {\n  const item = commands.value[key]\n  item.command()\n}\n</script>\n"],"names":["item"],"mappings":"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"}