diff --git a/packages/ckeditor5/src/augmentation.ts b/packages/ckeditor5/src/augmentation.ts new file mode 100644 index 000000000..038be8f91 --- /dev/null +++ b/packages/ckeditor5/src/augmentation.ts @@ -0,0 +1,16 @@ +import "ckeditor5"; + +declare global { + var glob: { + getComponentByEl(el: unknown): { + triggerCommand(command: string): void; + }; + } +} + +declare module "ckeditor5" { + interface Editor { + getSelectedHtml(): string; + removeSelection(): Promise; + } +} diff --git a/_regroup/ckeditor5-build-trilium/packages/ckeditor5-build-trilium/src/icons/scissors.svg b/packages/ckeditor5/src/icons/scissors.svg similarity index 100% rename from _regroup/ckeditor5-build-trilium/packages/ckeditor5-build-trilium/src/icons/scissors.svg rename to packages/ckeditor5/src/icons/scissors.svg diff --git a/packages/ckeditor5/src/plugins.ts b/packages/ckeditor5/src/plugins.ts index 4dd3e01b2..42ee4e13e 100644 --- a/packages/ckeditor5/src/plugins.ts +++ b/packages/ckeditor5/src/plugins.ts @@ -1,6 +1,12 @@ import { Autoformat, AutoLink, BlockQuote, Bold, CKFinderUploadAdapter, Clipboard, Code, CodeBlock, Enter, FindAndReplace, Font, FontBackgroundColor, FontColor, GeneralHtmlSupport, Heading, HeadingButtonsUI, HorizontalLine, Image, ImageCaption, ImageInline, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Indent, IndentBlock, Italic, Link, List, ListProperties, Mention, PageBreak, Paragraph, ParagraphButtonUI, PasteFromOffice, PictureEditing, RemoveFormat, SelectAll, ShiftEnter, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableSelection, TableToolbar, TextPartLanguage, TextTransformation, TodoList, Typing, Underline, Undo } from "ckeditor5"; +import type { Plugin } from "ckeditor5"; +import CutToNotePlugin from "./plugins/cuttonote.js"; -export const COMMON_PLUGINS = [ +const TRILIUM_PLUGINS: typeof Plugin[] = [ + CutToNotePlugin +]; + +export const COMMON_PLUGINS: typeof Plugin[] = [ // essentials package expanded to allow selectively disable Enter and ShiftEnter Clipboard, Enter, SelectAll, ShiftEnter, Typing, Undo, CKFinderUploadAdapter, @@ -59,7 +65,6 @@ export const COMMON_PLUGINS = [ // ItalicAsEmPlugin, // StrikethroughAsDel, // MarkdownImportPlugin, - // CuttonotePlugin, // MentionCustomization, // IncludeNote, // ReferenceLink, @@ -77,6 +82,8 @@ export const COMMON_PLUGINS = [ // Mermaid, // Kbd, // Admonition + + ...TRILIUM_PLUGINS ]; export const COMMON_SETTINGS = { }; diff --git a/_regroup/ckeditor5-build-trilium/packages/ckeditor5-build-trilium/src/cuttonote.js b/packages/ckeditor5/src/plugins/cuttonote.ts similarity index 81% rename from _regroup/ckeditor5-build-trilium/packages/ckeditor5-build-trilium/src/cuttonote.js rename to packages/ckeditor5/src/plugins/cuttonote.ts index 31a05fbab..fb9654aad 100644 --- a/_regroup/ckeditor5-build-trilium/packages/ckeditor5-build-trilium/src/cuttonote.js +++ b/packages/ckeditor5/src/plugins/cuttonote.ts @@ -1,18 +1,21 @@ -import Plugin from '@ckeditor/ckeditor5-core/src/plugin'; -import scissorsIcon from './icons/scissors.svg'; -import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview'; -import HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor'; +import scissorsIcon from '../icons/scissors.svg?raw'; +import { ButtonView, HtmlDataProcessor, Plugin } from 'ckeditor5'; export default class CutToNotePlugin extends Plugin { + + private htmlDataProcessor!: HtmlDataProcessor; + init() { + // @ts-ignore Not sure why we need to pass a document. this.htmlDataProcessor = new HtmlDataProcessor(); this.editor.ui.componentFactory.add( 'cutToNote', locale => { const view = new ButtonView( locale ); + console.log("Got ", scissorsIcon); view.set( { label: 'Cut & paste selection to sub-note', - icon: scissorsIcon, + // icon: scissorsIcon, tooltip: true } ); diff --git a/packages/ckeditor5/tsconfig.lib.json b/packages/ckeditor5/tsconfig.lib.json index 99613f4c4..73dac81be 100644 --- a/packages/ckeditor5/tsconfig.lib.json +++ b/packages/ckeditor5/tsconfig.lib.json @@ -1,6 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", "baseUrl": ".", "rootDir": "src", "outDir": "dist",