UNPKG

tav-ui

Version:
1 lines 6.83 kB
{"version":3,"file":"use-editor-custom-toolbar-button2.mjs","sources":["../../../../../../../../packages/components/editor/src/hooks/use-editor-custom-toolbar-button.tsx"],"sourcesContent":["import { type ComputedRef } from 'vue'\nimport { type Editor, type EditorProps } from '../typings'\n\nexport function useEditorCustomToolbarButton(options: { mergedProps: ComputedRef<EditorProps> }) {\n const { mergedProps } = options\n\n function createListsButton(editor: Editor) {\n editor.ui.registry.addMenuButton('lists', {\n // text: \"列表\",\n icon: 'toc',\n tooltip: '列表',\n fetch: (callback) => {\n callback([\n {\n type: 'menuitem',\n icon: 'ordered-list',\n text: '有序列表',\n onAction: () =>\n editor.execCommand('InsertOrderedList', false, {\n 'list-style-type': 'decimal',\n }),\n },\n {\n type: 'menuitem',\n icon: 'unordered-list',\n text: '无序列表',\n onAction: () =>\n editor.execCommand('InsertUnorderedList', false, {\n 'list-style-type': 'disc',\n }),\n },\n ])\n },\n })\n }\n\n function createAlignsButton(editor: Editor) {\n editor.ui.registry.addMenuButton('aligns', {\n // text: \"对齐方式\",\n icon: 'align-left',\n tooltip: '对齐方式',\n fetch: (callback) => {\n callback([\n {\n type: 'menuitem',\n icon: 'align-left',\n text: '左对齐',\n onAction: () => editor.execCommand('JustifyLeft'),\n },\n {\n type: 'menuitem',\n icon: 'align-center',\n text: '居中对齐',\n onAction: () => editor.execCommand('JustifyCenter'),\n },\n {\n type: 'menuitem',\n icon: 'align-right',\n text: '右对齐',\n onAction: () => editor.execCommand('JustifyRight'),\n },\n {\n type: 'menuitem',\n icon: 'align-justify',\n text: '俩端对齐',\n onAction: () => editor.execCommand('JustifyFull'),\n },\n ])\n },\n })\n }\n\n function createUploadimageButton(editor: Editor, handleClick?: (...args: any[]) => any) {\n editor.ui.registry.addButton('uploadimage', {\n // text: '上传图片',\n icon: 'image',\n tooltip: '插入图片',\n ...(handleClick\n ? {\n onAction: handleClick,\n }\n : {\n onAction: (...args: any[]) => {\n console.log('🚀 ~ createUploadimageButton ~ args:', args)\n },\n }),\n })\n }\n\n function createUploadlinkButton(editor: Editor, handleClick?: (...args: any[]) => any) {\n editor.ui.registry.addButton('uploadlink', {\n // text: '上传链接',\n icon: 'link',\n tooltip: '插入链接',\n ...(handleClick\n ? {\n onAction: handleClick,\n }\n : {\n onAction: (...args: any[]) => {\n console.log('🚀 ~ createUploadlinkButton ~ args:', args)\n },\n }),\n })\n }\n\n function createUploadfileButton(editor: Editor, handleClick?: (...args: any[]) => any) {\n editor.ui.registry.addButton('uploadfile', {\n // text: '上传链接',\n icon: 'new-document',\n tooltip: '插入附件',\n ...(handleClick\n ? {\n onAction: handleClick,\n }\n : {\n onAction: (...args: any[]) => {\n console.log('🚀 ~ createUploadfileButton ~ args:', args)\n },\n }),\n })\n }\n\n return {\n createListsButton,\n createAlignsButton,\n createUploadimageButton,\n createUploadlinkButton,\n createUploadfileButton,\n }\n}\n"],"names":["useEditorCustomToolbarButton","options","mergedProps","createListsButton","registry","icon","tooltip","callback","type","text","createAlignsButton","ui","onAction","execCommand","console","handleClick"],"mappings":"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"}