BREAKING CHANGES
-
The Watchdog is gone, and with it the automatic restart of a crashed editor. An editor that crashes now stays as it is, with its content and its undo history, instead of being rebuilt from the data it had before. The
errorevent still reports what happened, in both phases.- CKEditor 5 in version 49 or higher is now required. That is where the error reporting this integration uses appears. The declared peer dependency and the runtime version check were raised to match.
- The
watchdog-configanddisable-watchdogprops were removed from<ckeditor>and<ckeditor-multi-root>, and the matchingwatchdogConfiganddisableWatchdogoptions fromuseMultiRootEditor(). There is no watchdog left to configure or disable. - The runtime variant of
EditorErrorDescriptionno longer carriescausesRestartor thewatchdoginstance. Nothing restarts, so there is nothing to announce, and theEditorWatchdogclass no longer exists. It still carriesphaseand theeditorthe error came from. MultiRootEditorWithWatchdogRelaxedConstructorwas renamed toMultiRootEditorRelaxedConstructor. Where the old type mentioned an optional staticEditorWatchdog, the new one requires a staticonEditorError— every editor class has one, so only a hand-written editor class has to do anything about it.- Runtime errors are now reported in cases where they were not before. The runtime half of the
errorevent used to exist only when a watchdog was actually attached, so an editor created withdisable-watchdog, or one whose class did not expose a staticEditorWatchdog, never reported anything at runtime. Every editor reports now. - Remove the
watchdog-configanddisable-watchdogbindings from your templates. They are no longer declared props, so Vue passes them through to the rendered element as plain attributes instead of ignoring them.
Integrators who relied on the restart should handle the
errorevent themselves — reload the editor, tell the user, or report to their error tracker.
Features
- The stylesheets loaded by
useCKEditorCloud()can now be injected into a shadow root instead ofdocument.head, so the editor styles stay scoped to a web component rather than leaking into the page. Pass the root astargetNodeof theinjectedStylesheetsLocationoption. - Added support for Trusted Types when loading CKEditor 5 from CDN with the
useCKEditorCloud()composable. Script URLs are now passed through theckeditor5-integrationsTrusted Types policy, so applications that enforce Trusted Types with therequire-trusted-types-for 'script'CSP directive only need to addckeditor5-integrationsto thetrusted-typesdirective. - Added support for using the
<Ckeditor>component inside<KeepAlive>. WithClassicEditor, the editor UI is now moved together with the component when it is deactivated and put back when it is activated, instead of staying on the page. The same editor instance is kept, so its content and undo history are preserved.
Bug fixes
- Fixed the
Failed to execute 'insertBefore' on 'Node'error thrown when the<Ckeditor>component withClassicEditorwas replaced, for example after changing its:key. Vue used the editor UI as the insertion point for the new component and the editor removed it while being destroyed.