mirror of
https://github.com/zadam/trilium.git
synced 2025-12-23 16:49:58 +01:00
chore(ckeditor5-mermaid): port source code
This commit is contained in:
43
packages/ckeditor5-mermaid/src/mermaidtoolbar.ts
Normal file
43
packages/ckeditor5-mermaid/src/mermaidtoolbar.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* @module mermaid/mermaidtoolbar
|
||||
*/
|
||||
|
||||
import { Plugin, ViewDocumentSelection, ViewElement, WidgetToolbarRepository } from "ckeditor5";
|
||||
|
||||
|
||||
export default class MermaidToolbar extends Plugin {
|
||||
|
||||
static get requires() {
|
||||
return [ WidgetToolbarRepository ];
|
||||
}
|
||||
|
||||
static get pluginName() {
|
||||
return 'MermaidToolbar' as const;
|
||||
}
|
||||
|
||||
afterInit() {
|
||||
const editor = this.editor;
|
||||
const t = editor.t;
|
||||
|
||||
const widgetToolbarRepository = editor.plugins.get( WidgetToolbarRepository );
|
||||
const mermaidToolbarItems = [ 'mermaidSourceView', 'mermaidSplitView', 'mermaidPreview', '|', 'mermaidInfo' ];
|
||||
|
||||
if ( mermaidToolbarItems ) {
|
||||
widgetToolbarRepository.register( 'mermaidToolbar', {
|
||||
ariaLabel: t( 'Mermaid toolbar' ),
|
||||
items: mermaidToolbarItems,
|
||||
getRelatedElement: selection => getSelectedElement( selection )
|
||||
} );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getSelectedElement( selection: ViewDocumentSelection ) {
|
||||
const viewElement = selection.getSelectedElement() as unknown as ViewElement;
|
||||
|
||||
if ( viewElement && viewElement.hasClass( 'ck-mermaid__wrapper' ) ) {
|
||||
return viewElement;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
Reference in New Issue
Block a user