import Quill from 'quill'; import { i18nConfig } from '../../i18n'; import { showTitle } from '../iconTitle/title'; import { throttle } from '../../utils'; export { LinkHandler } from './link'; export { default as TableHandler } from './table'; export { default as ImageHandler } from './image'; export { default as CodeHandler } from './code'; export { default as DividerHandler } from './divider'; export const toolbarInit = (quill: Quill, i18n: keyof typeof i18nConfig) => { const container = quill.getModule('toolbar').container; // 设置 toolbar 中的 i18n 的 label,css 中使用 data-before 来作为 content const setDataSet = (cssQuery: string, i18nKey: keyof (typeof i18nConfig)['en']) => { const domList = container!.querySelector(cssQuery); if (domList) { domList.setAttribute('data-before', i18nConfig[i18n][i18nKey]); } }; setDataSet('.ql-toolbar .ql-font .ql-picker-label[data-value="system"]', 'toolbarFont'); setDataSet('.ql-toolbar .ql-font .ql-picker-item[data-value="system"]', 'toolbarFont'); setDataSet('.ql-snow .ql-picker.ql-header .ql-picker-item', 'toolbarHeader'); setDataSet('.ql-snow .ql-picker.ql-header .ql-picker-label', 'toolbarHeader'); setDataSet('.ql-toolbar .ql-font .ql-picker-label[data-value="wsYaHei"]', 'fontYahei'); setDataSet('.ql-toolbar .ql-font .ql-picker-item[data-value="wsYaHei"]', 'fontYahei'); setDataSet('.ql-toolbar .ql-font .ql-picker-label[data-value="songTi"]', 'fontSong'); setDataSet('.ql-toolbar .ql-font .ql-picker-item[data-value="songTi"]', 'fontSong'); setDataSet('.ql-toolbar .ql-font .ql-picker-label[data-value="kaiTi"]', 'fontKai'); setDataSet('.ql-toolbar .ql-font .ql-picker-item[data-value="kaiTi"]', 'fontKai'); window.showTitle = showTitle; // 全局添加 Icon hover 显示tootip函数 }; export const undoHandler = (quill: Quill) => { quill?.history?.undo(); }; export const redoHandler = (quill: Quill) => { quill?.history?.redo(); }; export const inputHandler = (input, changeCallback) => { if (input) { // 阻止冒泡关闭Dialog input.onclick = (e) => { e.stopPropagation(); }; // input.onmousedown = (e) => { // console.log(4444, e) // e.stopPropagation(); // }; // input.onmouseup = (e) => { // console.log(6556, e); // e.stopPropagation(); // }; input.oninput = throttle(() => { if (changeCallback) changeCallback(input.value); }, 400); } };