mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-29 19:12:27 +08:00
feat(code): switch to CodeMirror 6
This commit is contained in:
parent
ddf43a5e24
commit
cfa8987b25
@ -23,6 +23,7 @@
|
||||
"@popperjs/core": "2.11.8",
|
||||
"@triliumnext/ckeditor5": "workspace:*",
|
||||
"@triliumnext/commons": "workspace:*",
|
||||
"@triliumnext/codemirror": "workspace:*",
|
||||
"bootstrap": "5.3.6",
|
||||
"dayjs": "1.11.13",
|
||||
"dayjs-plugin-utc": "0.1.2",
|
||||
|
68
apps/client/src/types.d.ts
vendored
68
apps/client/src/types.d.ts
vendored
@ -135,74 +135,6 @@ declare global {
|
||||
trust: boolean;
|
||||
}) => void;
|
||||
|
||||
interface CodeMirrorOpts {
|
||||
value: string;
|
||||
viewportMargin: number;
|
||||
indentUnit: number;
|
||||
matchBrackets: boolean;
|
||||
matchTags: { bothTags: boolean };
|
||||
highlightSelectionMatches: {
|
||||
showToken: boolean;
|
||||
annotateScrollbar: boolean;
|
||||
};
|
||||
lineNumbers: boolean;
|
||||
lineWrapping: boolean;
|
||||
keyMap?: "vim" | "default";
|
||||
lint?: boolean;
|
||||
gutters?: string[];
|
||||
tabindex?: number;
|
||||
dragDrop?: boolean;
|
||||
placeholder?: string;
|
||||
readOnly?: boolean;
|
||||
}
|
||||
|
||||
var CodeMirror: {
|
||||
(el: HTMLElement, opts: CodeMirrorOpts): CodeMirrorInstance;
|
||||
keyMap: {
|
||||
default: Record<string, string>;
|
||||
};
|
||||
modeURL: string;
|
||||
modeInfo: ModeInfo[];
|
||||
findModeByMIME(mime: string): ModeInfo;
|
||||
autoLoadMode(instance: CodeMirrorInstance, mode: string)
|
||||
registerHelper(type: string, filter: string | null, callback: (text: string, options: object) => unknown);
|
||||
Pos(line: number, col: number);
|
||||
}
|
||||
|
||||
interface ModeInfo {
|
||||
name: string;
|
||||
mode: string;
|
||||
mime: string;
|
||||
mimes: string[];
|
||||
}
|
||||
|
||||
interface CodeMirrorInstance {
|
||||
getValue(): string;
|
||||
setValue(val: string);
|
||||
clearHistory();
|
||||
setOption(name: string, value: string);
|
||||
refresh();
|
||||
focus();
|
||||
getCursor(): { line: number, col: number, ch: number };
|
||||
setCursor(line: number, col: number);
|
||||
getSelection(): string;
|
||||
lineCount(): number;
|
||||
on(event: string, callback: () => void);
|
||||
operation(callback: () => void);
|
||||
scrollIntoView(pos: number);
|
||||
doc: {
|
||||
getValue(): string;
|
||||
markText(
|
||||
from: { line: number, ch: number } | number,
|
||||
to: { line: number, ch: number } | number,
|
||||
opts: {
|
||||
className: string
|
||||
});
|
||||
setSelection(from: number, to: number);
|
||||
replaceRange(text: string, from: number, to: number);
|
||||
}
|
||||
}
|
||||
|
||||
var katex: {
|
||||
renderToString(text: string, opts: {
|
||||
throwOnError: boolean
|
||||
|
@ -1,7 +1,5 @@
|
||||
import TypeWidget from "./type_widget.js";
|
||||
import libraryLoader from "../../services/library_loader.js";
|
||||
import options from "../../services/options.js";
|
||||
import type FNote from "../../entities/fnote.js";
|
||||
import CodeMirror from "@triliumnext/codemirror";
|
||||
|
||||
/**
|
||||
* An abstract {@link TypeWidget} which implements the CodeMirror editor, meant to be used as a parent for
|
||||
@ -19,54 +17,27 @@ import type FNote from "../../entities/fnote.js";
|
||||
export default class AbstractCodeTypeWidget extends TypeWidget {
|
||||
|
||||
protected $editor!: JQuery<HTMLElement>;
|
||||
protected codeEditor!: CodeMirrorInstance;
|
||||
protected codeEditor!: CodeMirror;
|
||||
|
||||
doRender() {
|
||||
this.initialized = this.#initEditor();
|
||||
}
|
||||
|
||||
async #initEditor() {
|
||||
await libraryLoader.requireLibrary(libraryLoader.CODE_MIRROR);
|
||||
|
||||
// these conflict with backward/forward navigation shortcuts
|
||||
delete CodeMirror.keyMap.default["Alt-Left"];
|
||||
delete CodeMirror.keyMap.default["Alt-Right"];
|
||||
|
||||
CodeMirror.modeURL = `${window.glob.assetPath}/node_modules/codemirror/mode/%N/%N.js`;
|
||||
const jsMode = CodeMirror.modeInfo.find((mode) => mode.name === "JavaScript");
|
||||
if (jsMode) {
|
||||
jsMode.mimes.push(...["application/javascript;env=frontend", "application/javascript;env=backend"]);
|
||||
}
|
||||
const sqlMode = CodeMirror.modeInfo.find((mode) => mode.name === "SQLite");
|
||||
if (sqlMode) {
|
||||
sqlMode.mimes = ["text/x-sqlite", "text/x-sqlite;schema=trilium"];
|
||||
}
|
||||
|
||||
this.codeEditor = CodeMirror(this.$editor[0], {
|
||||
value: "",
|
||||
viewportMargin: Infinity,
|
||||
indentUnit: 4,
|
||||
matchBrackets: true,
|
||||
matchTags: { bothTags: true },
|
||||
highlightSelectionMatches: { showToken: false, annotateScrollbar: false },
|
||||
lineNumbers: true,
|
||||
// we line wrap partly also because without it horizontal scrollbar displays only when you scroll
|
||||
// all the way to the bottom of the note. With line wrap, there's no horizontal scrollbar so no problem
|
||||
lineWrapping: options.is("codeLineWrapEnabled"),
|
||||
...this.getExtraOpts()
|
||||
this.codeEditor = new CodeMirror({
|
||||
parent: this.$editor[0],
|
||||
});
|
||||
this.onEditorInitialized();
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be extended in derived classes to add extra options to the CodeMirror constructor. The options are appended
|
||||
* at the end, so it is possible to override the default values introduced by the abstract editor as well.
|
||||
*
|
||||
* @returns the extra options to be passed to the CodeMirror constructor.
|
||||
*/
|
||||
getExtraOpts(): Partial<CodeMirrorOpts> {
|
||||
return {};
|
||||
}
|
||||
// /**
|
||||
// * Can be extended in derived classes to add extra options to the CodeMirror constructor. The options are appended
|
||||
// * at the end, so it is possible to override the default values introduced by the abstract editor as well.
|
||||
// *
|
||||
// * @returns the extra options to be passed to the CodeMirror constructor.
|
||||
// */
|
||||
// getExtraOpts(): Partial<CodeMirror> {
|
||||
// return {};
|
||||
// }
|
||||
|
||||
/**
|
||||
* Called as soon as the CodeMirror library has been loaded and the editor was constructed. Can be extended in
|
||||
@ -85,29 +56,29 @@ export default class AbstractCodeTypeWidget extends TypeWidget {
|
||||
* @param {*} content the new content of the note.
|
||||
*/
|
||||
_update(note: { mime: string }, content: string) {
|
||||
// CodeMirror breaks pretty badly on null, so even though it shouldn't happen (guarded by a consistency check)
|
||||
// we provide fallback
|
||||
this.codeEditor.setValue(content || "");
|
||||
this.codeEditor.clearHistory();
|
||||
// // CodeMirror breaks pretty badly on null, so even though it shouldn't happen (guarded by a consistency check)
|
||||
// // we provide fallback
|
||||
// this.codeEditor.setValue(content || "");
|
||||
// this.codeEditor.clearHistory();
|
||||
|
||||
let info = CodeMirror.findModeByMIME(note.mime);
|
||||
if (!info) {
|
||||
// Switch back to plain text if CodeMirror does not have a mode for whatever MIME type we're editing.
|
||||
// To avoid inheriting a mode from a previously open code note.
|
||||
info = CodeMirror.findModeByMIME("text/plain");
|
||||
}
|
||||
// let info = CodeMirror.findModeByMIME(note.mime);
|
||||
// if (!info) {
|
||||
// // Switch back to plain text if CodeMirror does not have a mode for whatever MIME type we're editing.
|
||||
// // To avoid inheriting a mode from a previously open code note.
|
||||
// info = CodeMirror.findModeByMIME("text/plain");
|
||||
// }
|
||||
|
||||
this.codeEditor.setOption("mode", info.mime);
|
||||
CodeMirror.autoLoadMode(this.codeEditor, info.mode);
|
||||
// this.codeEditor.setOption("mode", info.mime);
|
||||
// CodeMirror.autoLoadMode(this.codeEditor, info.mode);
|
||||
}
|
||||
|
||||
show() {
|
||||
this.$widget.show();
|
||||
|
||||
if (this.codeEditor) {
|
||||
// show can be called before render
|
||||
this.codeEditor.refresh();
|
||||
}
|
||||
// if (this.codeEditor) {
|
||||
// // show can be called before render
|
||||
// this.codeEditor.refresh();
|
||||
// }
|
||||
}
|
||||
|
||||
focus() {
|
||||
@ -116,15 +87,15 @@ export default class AbstractCodeTypeWidget extends TypeWidget {
|
||||
}
|
||||
|
||||
scrollToEnd() {
|
||||
this.codeEditor.setCursor(this.codeEditor.lineCount(), 0);
|
||||
this.codeEditor.focus();
|
||||
// this.codeEditor.setCursor(this.codeEditor.lineCount(), 0);
|
||||
// this.codeEditor.focus();
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
if (this.codeEditor) {
|
||||
this.spacedUpdate.allowUpdateWithoutChange(() => {
|
||||
this.codeEditor.setValue("");
|
||||
});
|
||||
// this.spacedUpdate.allowUpdateWithoutChange(() => {
|
||||
// this.codeEditor.setValue("");
|
||||
// });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,19 +41,19 @@ export default class EditableCodeTypeWidget extends AbstractCodeTypeWidget {
|
||||
super.doRender();
|
||||
}
|
||||
|
||||
getExtraOpts(): Partial<CodeMirrorOpts> {
|
||||
return {
|
||||
keyMap: options.is("vimKeymapEnabled") ? "vim" : "default",
|
||||
lint: true,
|
||||
gutters: ["CodeMirror-lint-markers"],
|
||||
tabindex: 300,
|
||||
dragDrop: false, // with true the editor inlines dropped files which is not what we expect
|
||||
placeholder: t("editable_code.placeholder")
|
||||
};
|
||||
}
|
||||
// getExtraOpts(): Partial<CodeMirrorOpts> {
|
||||
// return {
|
||||
// keyMap: options.is("vimKeymapEnabled") ? "vim" : "default",
|
||||
// lint: true,
|
||||
// gutters: ["CodeMirror-lint-markers"],
|
||||
// tabindex: 300,
|
||||
// dragDrop: false, // with true the editor inlines dropped files which is not what we expect
|
||||
// placeholder: t("editable_code.placeholder")
|
||||
// };
|
||||
// }
|
||||
|
||||
onEditorInitialized() {
|
||||
this.codeEditor.on("change", () => this.spacedUpdate.scheduleUpdate());
|
||||
// this.codeEditor.on("change", () => this.spacedUpdate.scheduleUpdate());
|
||||
}
|
||||
|
||||
async doRefresh(note: FNote) {
|
||||
@ -72,7 +72,8 @@ export default class EditableCodeTypeWidget extends AbstractCodeTypeWidget {
|
||||
|
||||
getData() {
|
||||
return {
|
||||
content: this.codeEditor.getValue()
|
||||
// content: this.codeEditor.getValue()
|
||||
content: ""
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -35,10 +35,13 @@
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../packages/ckeditor5/tsconfig.lib.json"
|
||||
"path": "../../packages/codemirror/tsconfig.lib.json"
|
||||
},
|
||||
{
|
||||
"path": "../../packages/commons/tsconfig.lib.json"
|
||||
},
|
||||
{
|
||||
"path": "../../packages/ckeditor5/tsconfig.lib.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -4,11 +4,14 @@
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../packages/ckeditor5"
|
||||
"path": "../../packages/codemirror"
|
||||
},
|
||||
{
|
||||
"path": "../../packages/commons"
|
||||
},
|
||||
{
|
||||
"path": "../../packages/ckeditor5"
|
||||
},
|
||||
{
|
||||
"path": "./tsconfig.app.json"
|
||||
},
|
||||
|
@ -18,5 +18,8 @@
|
||||
"nx": {
|
||||
"name": "codemirror"
|
||||
},
|
||||
"dependencies": {}
|
||||
"dependencies": {
|
||||
"@codemirror/commands": "6.8.1",
|
||||
"@codemirror/view": "6.36.7"
|
||||
}
|
||||
}
|
||||
|
@ -1 +1,13 @@
|
||||
export * from './lib/codemirror.js';
|
||||
import { defaultKeymap } from "@codemirror/commands";
|
||||
import { EditorView, keymap, type EditorViewConfig } from "@codemirror/view";
|
||||
|
||||
export default class CodeMirror extends EditorView {
|
||||
constructor(config: EditorViewConfig) {
|
||||
super({
|
||||
...config,
|
||||
extensions: [
|
||||
keymap.of(defaultKeymap)
|
||||
]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
export function codemirror(): string {
|
||||
return 'codemirror';
|
||||
}
|
120
pnpm-lock.yaml
generated
120
pnpm-lock.yaml
generated
@ -200,6 +200,9 @@ importers:
|
||||
'@triliumnext/ckeditor5':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/ckeditor5
|
||||
'@triliumnext/codemirror':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/codemirror
|
||||
'@triliumnext/commons':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/commons
|
||||
@ -1149,7 +1152,14 @@ importers:
|
||||
specifier: ^9.0.7
|
||||
version: 9.12.7(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
|
||||
packages/codemirror: {}
|
||||
packages/codemirror:
|
||||
dependencies:
|
||||
'@codemirror/commands':
|
||||
specifier: 6.8.1
|
||||
version: 6.8.1
|
||||
'@codemirror/view':
|
||||
specifier: 6.36.7
|
||||
version: 6.36.7
|
||||
|
||||
packages/commons:
|
||||
dependencies:
|
||||
@ -2135,6 +2145,18 @@ packages:
|
||||
'@ckeditor/ckeditor5-word-count@45.0.0':
|
||||
resolution: {integrity: sha512-72Fd2mUKN8dXRMKGKLPhUiQHhoGnp0ZyPwP8Ezcpbwfn/mh5SBxP3LyQGg35sKy1xJgDYywHlWvjVhw95LgIjg==}
|
||||
|
||||
'@codemirror/commands@6.8.1':
|
||||
resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==}
|
||||
|
||||
'@codemirror/language@6.11.0':
|
||||
resolution: {integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==}
|
||||
|
||||
'@codemirror/state@6.5.2':
|
||||
resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==}
|
||||
|
||||
'@codemirror/view@6.36.7':
|
||||
resolution: {integrity: sha512-kCWGW/chWGPgZqfZ36Um9Iz0X2IVpmCjg1P/qY6B6a2ecXtWRRAigmpJ6YgUQ5lTWXMyyVdfmpzhLZmsZQMbtg==}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
engines: {node: '>=12'}
|
||||
@ -3323,6 +3345,15 @@ packages:
|
||||
'@leichtgewicht/ip-codec@2.0.5':
|
||||
resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
|
||||
|
||||
'@lezer/common@1.2.3':
|
||||
resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==}
|
||||
|
||||
'@lezer/highlight@1.2.1':
|
||||
resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==}
|
||||
|
||||
'@lezer/lr@1.4.2':
|
||||
resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==}
|
||||
|
||||
'@ljharb/resumer@0.0.1':
|
||||
resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -3349,6 +3380,9 @@ packages:
|
||||
resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
|
||||
'@marijn/find-cluster-break@1.0.2':
|
||||
resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==}
|
||||
|
||||
'@mermaid-js/layout-elk@0.1.7':
|
||||
resolution: {integrity: sha512-G3AJ2jMaCAqky2CT3z/sf3pK5UuS3tne98GsXDl3PkKByCmPmOYmJPf+6oX5PUlV3HNWWHuSgtZ9NU/CZDSuHQ==}
|
||||
peerDependencies:
|
||||
@ -12627,6 +12661,9 @@ packages:
|
||||
peerDependencies:
|
||||
webpack: ^5.27.0
|
||||
|
||||
style-mod@4.1.2:
|
||||
resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==}
|
||||
|
||||
stylehacks@5.1.1:
|
||||
resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@ -13544,6 +13581,9 @@ packages:
|
||||
resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
|
||||
deprecated: Use your platform's native performance.now() and performance.timeOrigin.
|
||||
|
||||
w3c-keyname@2.2.8:
|
||||
resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
|
||||
|
||||
w3c-xmlserializer@2.0.0:
|
||||
resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==}
|
||||
engines: {node: '>=10'}
|
||||
@ -15096,23 +15136,27 @@ snapshots:
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
'@ckeditor/ckeditor5-collaboration-core@45.0.0':
|
||||
'@ckeditor/ckeditor5-collaboration-core@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)':
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-comments': 45.0.0
|
||||
'@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-icons': 45.0.0
|
||||
'@ckeditor/ckeditor5-theme-lark': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-track-changes': 45.0.0
|
||||
'@ckeditor/ckeditor5-track-changes': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-ui': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-utils': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@types/luxon': 3.4.2
|
||||
ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41)
|
||||
luxon: 3.5.0
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
'@ckeditor/ckeditor5-comments@45.0.0':
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-clipboard': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-collaboration-core': 45.0.0
|
||||
'@ckeditor/ckeditor5-collaboration-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-engine': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-enter': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
@ -15133,7 +15177,7 @@ snapshots:
|
||||
'@ckeditor/ckeditor5-comments@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)':
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-clipboard': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-collaboration-core': 45.0.0
|
||||
'@ckeditor/ckeditor5-collaboration-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-engine': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-enter': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
@ -15399,18 +15443,6 @@ snapshots:
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
'@ckeditor/ckeditor5-emoji@45.0.0':
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-icons': 45.0.0
|
||||
'@ckeditor/ckeditor5-mention': 45.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)
|
||||
'@ckeditor/ckeditor5-typing': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-ui': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-utils': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41)
|
||||
es-toolkit: 1.32.0
|
||||
fuzzysort: 3.1.0
|
||||
|
||||
'@ckeditor/ckeditor5-emoji@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)':
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
@ -16014,7 +16046,7 @@ snapshots:
|
||||
'@ckeditor/ckeditor5-operations-compressor': 45.0.0
|
||||
'@ckeditor/ckeditor5-revision-history': 45.0.0
|
||||
'@ckeditor/ckeditor5-theme-lark': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-track-changes': 45.0.0
|
||||
'@ckeditor/ckeditor5-track-changes': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-ui': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-utils': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41)
|
||||
@ -16227,7 +16259,7 @@ snapshots:
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
'@ckeditor/ckeditor5-track-changes@45.0.0':
|
||||
'@ckeditor/ckeditor5-track-changes@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)':
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-clipboard': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-code-block': 45.0.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
@ -16256,6 +16288,10 @@ snapshots:
|
||||
ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41)
|
||||
ckeditor5-collaboration: 45.0.0
|
||||
es-toolkit: 1.32.0
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
'@ckeditor/ckeditor5-typing@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)':
|
||||
dependencies:
|
||||
@ -16362,6 +16398,32 @@ snapshots:
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
'@codemirror/commands@6.8.1':
|
||||
dependencies:
|
||||
'@codemirror/language': 6.11.0
|
||||
'@codemirror/state': 6.5.2
|
||||
'@codemirror/view': 6.36.7
|
||||
'@lezer/common': 1.2.3
|
||||
|
||||
'@codemirror/language@6.11.0':
|
||||
dependencies:
|
||||
'@codemirror/state': 6.5.2
|
||||
'@codemirror/view': 6.36.7
|
||||
'@lezer/common': 1.2.3
|
||||
'@lezer/highlight': 1.2.1
|
||||
'@lezer/lr': 1.4.2
|
||||
style-mod: 4.1.2
|
||||
|
||||
'@codemirror/state@6.5.2':
|
||||
dependencies:
|
||||
'@marijn/find-cluster-break': 1.0.2
|
||||
|
||||
'@codemirror/view@6.36.7':
|
||||
dependencies:
|
||||
'@codemirror/state': 6.5.2
|
||||
style-mod: 4.1.2
|
||||
w3c-keyname: 2.2.8
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.9
|
||||
@ -17748,6 +17810,16 @@ snapshots:
|
||||
|
||||
'@leichtgewicht/ip-codec@2.0.5': {}
|
||||
|
||||
'@lezer/common@1.2.3': {}
|
||||
|
||||
'@lezer/highlight@1.2.1':
|
||||
dependencies:
|
||||
'@lezer/common': 1.2.3
|
||||
|
||||
'@lezer/lr@1.4.2':
|
||||
dependencies:
|
||||
'@lezer/common': 1.2.3
|
||||
|
||||
'@ljharb/resumer@0.0.1':
|
||||
dependencies:
|
||||
'@ljharb/through': 2.3.14
|
||||
@ -17787,6 +17859,8 @@ snapshots:
|
||||
- supports-color
|
||||
optional: true
|
||||
|
||||
'@marijn/find-cluster-break@1.0.2': {}
|
||||
|
||||
'@mermaid-js/layout-elk@0.1.7(mermaid@11.6.0)':
|
||||
dependencies:
|
||||
d3: 7.9.0
|
||||
@ -21507,7 +21581,7 @@ snapshots:
|
||||
|
||||
ckeditor5-collaboration@45.0.0:
|
||||
dependencies:
|
||||
'@ckeditor/ckeditor5-collaboration-core': 45.0.0
|
||||
'@ckeditor/ckeditor5-collaboration-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
|
||||
ckeditor5@45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41):
|
||||
dependencies:
|
||||
@ -21530,7 +21604,7 @@ snapshots:
|
||||
'@ckeditor/ckeditor5-editor-decoupled': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-editor-inline': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-editor-multi-root': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-emoji': 45.0.0
|
||||
'@ckeditor/ckeditor5-emoji': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-engine': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-enter': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
'@ckeditor/ckeditor5-essentials': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)
|
||||
@ -29151,6 +29225,8 @@ snapshots:
|
||||
dependencies:
|
||||
webpack: 5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.4)(webpack-cli@6.0.1)
|
||||
|
||||
style-mod@4.1.2: {}
|
||||
|
||||
stylehacks@5.1.1(postcss@8.5.3):
|
||||
dependencies:
|
||||
browserslist: 4.24.4
|
||||
@ -30276,6 +30352,8 @@ snapshots:
|
||||
dependencies:
|
||||
browser-process-hrtime: 1.0.0
|
||||
|
||||
w3c-keyname@2.2.8: {}
|
||||
|
||||
w3c-xmlserializer@2.0.0:
|
||||
dependencies:
|
||||
xml-name-validator: 3.0.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user