Skip to content

v32.0.0

Compare
Choose a tag to compare
@pomek pomek released this 31 Jan 10:19
· 11178 commits to master since this release

Release highlights

We are happy to announce the release of CKEditor 5 v32.0.0.

This release introduces the following new features:

Read more in https://ckeditor.com/blog/ckeditor-5-v32.0.0-with-new-list-properties-support-for-the-script-tag-and-enhanced-mentions/

MAJOR BREAKING CHANGES ℹ️

  • engine: Batch#type has been deprecated. It will always return 'default' value and reading it will log a warning in the console. Use Batch#isUndoable, Batch#isLocal, Batch#isUndo and Batch#isTyping instead.
  • revision-history: Multiple changes to Revision properties has been introduced that impact revision history integrations. Introduced #fromRevision and #toRevision properties. Renamed #data to #diffData. The #isLocked property has been removed. Those changes have an impact on what data should be saved in your database and how the revision history plugin should be integrated. Please refer to the migration guide and the documentation to learn more about these changes.
  • revision-history: The RevisionHistoryAdapter interface has changed. Also, RevisionTracker no longer uses RevisionHistoryAdapter#getRevisions() to fetch revisions during editor initialization. You should add revisions data in your integration plugin. Please refer to the migration guide and the documentation to learn how to update your revision history integration.
  • revision-history: RevisionTracker#updateRevision() has been removed while #update() and #saveRevision() have been introduced instead. This, among others, may have an impact on your autosave integration. Please refer to the migration guide and the documentation to learn how to update your revision history integration.
  • typing: Input#isInput() has been removed. Use Batch#isTyping instead.
  • Upgraded the minimal versions of Node.js to 14.0.0 due to the end of LTS.

MINOR BREAKING CHANGES ℹ️

  • engine: The string value for the Batch type and Model#enqueueChange() is now deprecated. Using a string value will log a warning in the console. Use an object value instead. For more information, refer to the API documentation.
  • revision-history: RevisionTracker#isLocked has been removed.
  • revision-history: The flow for creating and updating a revision has changed. See documentation to learn what it looks like after the changes.
  • The previously named #_getTemplate() methods in CommentThreadView, CommentView, and SuggestionThreadView were renamed to #getTemplate(). These methods are used in annotations customization, when changing the default templates.

Features

  • autosave: Autosave#save() will now return a promise that is resolved when the autosave callback has finished. (commit)
  • comments: Introduced Annotation#refreshVisibility() and Annotations#refreshVisibility() that refresh the visibility of the annotations based on the visibility of their target elements.
  • comments: Introduced the Annotation#isVisible observable property, that allows controlling the visibility of the annotation.
  • html-support: Added support for the <script> elements. Closes #10891. (commit)
  • list: Implemented the numbered list properties UI. Closes #10877. (commit)
  • list: Added support for reversed lists and list start index (reversed and start HTML attributes). Closes #10673. (commit)
  • paste-from-office: Added support for start index in ordered lists. Closes #11043. (commit)
  • revision-history: Introduced Revision#fromVersion and Revision#toVersion.
  • revision-history: Introduced new methods in RevisionHistory plugin: #addRevisionData(), #getRevision(), #getRevisions().
  • ui: Introduced the InputNumberView class and the createLabeledInputNumber() helper for creating number inputs (see #10877). (commit)
  • ui: Introduced the InputView class for other inputs such as InputTextView to inherit from (see #10877). (commit)
  • utils: Introduced the isVisible() helper to detect whether DOM elements are visible to the user in DOM (see #10877). (commit)
  • Replaced Batch#type with a set of flags: Batch#isUndoable, Batch#isLocal, Batch#isUndo, Batch#isTyping which better represent the batch type. The Batch constructor and Model#enqueueChange() now expect an object. Closes #10967. (commit)

Bug fixes

  • comments: DOM listeners will be detached when destroying annotation collections which prevents memory leaks.
  • engine: HTMLDataProcessor#toView() should preserve leading non-layout elements while loading partial HTML. Closes #11110. (commit)
  • list: The list properties feature will no longer crash when removing content from the last list item which is next to a non-list element. Closes #8642. (commit)
  • mention: The mention plugin now allows searching mentions that include space characters. Closes #9741. (commit)
  • pagination: The page number input view should not stretch. Used InputNumberView to render the page number input in PageNavigatorView.
  • revision-history: Fixed a crash when a revision contained overlapping suggestions.
  • revision-history: Fixed a crash when content selected by triple-click was copy-pasted into the editor.
  • track-changes: Fixed a crash that was happening during real-time editing when one of the users used enter inside a suggestion.
  • typing: Fixed editor crash when an unrecognized transformation was given in configuration (as a string). (commit)
  • watchdog: Prevented EditorWatchdog from crashing during the editor destruction process when one of the plugins tries to change data at that moment. Closes #10643. (commit)

Other changes

  • autosave: The Autosave plugin will now ignore changes coming from remote clients during real-time collaboration. Closes #9233. (commit)
  • build-decoupled-document: Enabled the startIndex and reversed list properties in document build. Closes #11037. (commit)
  • comments: Renamed CommentThreadView#_getTemplate() to #getTemplate(). Renamed CommentView#_getTemplate() to #getTemplate().
  • list: Renamed the ListStyle plugin to ListProperties. Closes #10964. (commit)
  • real-time-collaboration: Collaboration updates will now be sent with shorter delays after they are rejected. This should allow for a better user experience when multiple users are typing at the same time.
  • real-time-collaboration: The RealTimeCollaborationClient#offset property is now private.
  • real-time-collaboration: Real-time collaboration feature will now create batches with #isLocal flag set to false.
  • revision-history: Renamed Revision#data to Revision#diffData. The Revision#isLocked property was removed.
  • revision-history: The RevisionHistoryAdapter interface has changed. Removed #getRevisions(), #updateRevision() and #addRevision(). Added #updateRevisions().
  • revision-history: The revision history UI now will be blocked if the editor is in read only mode.
  • revision-history: Added the index parameter in RevisionRepository#addRevision().
  • revision-history: Removed RevisionTracker#isLocked.
  • revision-history: Removed RevisionTracker#updateRevision() and added #update() and #saveRevision() instead.
  • revision-history: RevisionTracker no longer uses RevisionHistoryAdapter#getRevisions() to fetch revisions during editor initialization.
  • revision-history: An error is now thrown when the revision history plugin configuration is missing.
  • revision-history: RevisionHistoryAdapter#getRevision() and #updateRevisions() now receive the #channelId parameter.
  • track-changes: Renamed SuggestionThreadView#_getTemplate() to #getTemplate().
  • typing: The typing feature will now create batches with the #isTyping property set to true. (commit)
  • ui: FocusCycler should skip elements that are invisible to the user (see #10877). (commit)
  • undo: The undo feature will now create batches with the #isUndo property set to true. (commit)
  • users: The anonymous user will now be added to the Users plugin automatically when the editor initializes.
  • Updated translations. (commit, commit)
  • Updated the required version of Node.js to 14. Closes #10972. (commit)
  • Project migration to webpack 5. Closes #10668. (commit)

Released packages

Check out the Versioning policy guide for more information.

Released packages (summary)

Major releases (contain major breaking changes):

Releases containing new features:

Other releases: