2022-02-28 21:54:33 +08:00
|
|
|
/**
|
|
|
|
* @param {WysiwygConfigOptions} options
|
|
|
|
* @return {String}
|
|
|
|
*/
|
|
|
|
export function getPrimaryToolbar(options) {
|
|
|
|
const textDirPlugins = options.textDirection === 'rtl' ? 'ltr rtl' : '';
|
|
|
|
|
|
|
|
const toolbar = [
|
|
|
|
'undo redo',
|
2022-07-18 01:33:03 +08:00
|
|
|
'styles',
|
2022-02-28 21:54:33 +08:00
|
|
|
'bold italic underline forecolor backcolor formatoverflow',
|
|
|
|
'alignleft aligncenter alignright alignjustify',
|
2022-03-22 22:03:20 +08:00
|
|
|
'bullist numlist listoverflow',
|
2022-02-28 21:54:33 +08:00
|
|
|
textDirPlugins,
|
|
|
|
'link table imagemanager-insert insertoverflow',
|
|
|
|
'code about fullscreen'
|
|
|
|
];
|
|
|
|
|
|
|
|
return toolbar.filter(row => Boolean(row)).join(' | ');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {Editor} editor
|
|
|
|
*/
|
|
|
|
function registerPrimaryToolbarGroups(editor) {
|
|
|
|
editor.ui.registry.addGroupToolbarButton('formatoverflow', {
|
|
|
|
icon: 'more-drawer',
|
|
|
|
tooltip: 'More',
|
|
|
|
items: 'strikethrough superscript subscript inlinecode removeformat'
|
|
|
|
});
|
|
|
|
editor.ui.registry.addGroupToolbarButton('listoverflow', {
|
|
|
|
icon: 'more-drawer',
|
|
|
|
tooltip: 'More',
|
2022-03-22 22:03:20 +08:00
|
|
|
items: 'tasklist outdent indent'
|
2022-02-28 21:54:33 +08:00
|
|
|
});
|
|
|
|
editor.ui.registry.addGroupToolbarButton('insertoverflow', {
|
|
|
|
icon: 'more-drawer',
|
|
|
|
tooltip: 'More',
|
2022-11-10 21:30:48 +08:00
|
|
|
items: 'customhr codeeditor drawio media details'
|
2022-02-28 21:54:33 +08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {Editor} editor
|
|
|
|
*/
|
|
|
|
function registerLinkContextToolbar(editor) {
|
|
|
|
editor.ui.registry.addContextToolbar('linkcontexttoolbar', {
|
|
|
|
predicate(node) {
|
|
|
|
return node.closest('a') !== null;
|
|
|
|
},
|
|
|
|
position: 'node',
|
|
|
|
scope: 'node',
|
|
|
|
items: 'link unlink openlink'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-07-18 20:37:50 +08:00
|
|
|
/**
|
|
|
|
* @param {Editor} editor
|
|
|
|
*/
|
|
|
|
function registerImageContextToolbar(editor) {
|
|
|
|
editor.ui.registry.addContextToolbar('imagecontexttoolbar', {
|
|
|
|
predicate(node) {
|
|
|
|
return node.closest('img') !== null;
|
|
|
|
},
|
|
|
|
position: 'node',
|
|
|
|
scope: 'node',
|
|
|
|
items: 'image'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-02-28 21:54:33 +08:00
|
|
|
/**
|
|
|
|
* @param {Editor} editor
|
|
|
|
* @param {WysiwygConfigOptions} options
|
|
|
|
*/
|
|
|
|
export function registerAdditionalToolbars(editor, options) {
|
|
|
|
registerPrimaryToolbarGroups(editor);
|
|
|
|
registerLinkContextToolbar(editor);
|
2022-07-18 20:37:50 +08:00
|
|
|
registerImageContextToolbar(editor);
|
2022-02-28 21:54:33 +08:00
|
|
|
}
|