omii-ui
Version:
使用OMII开发的WebComponents库,样式采用bootstrap。可以作为标准的esmodule使用
587 lines (518 loc) • 227 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
## 6.3.1 - 2022-12-06
### Fixed
- HTML in messages for the `WindowManager.alert` and `WindowManager.confirm` APIs were not properly sanitized. #TINY-3548
## 6.3.0 - 2022-11-23
### Added
- New `expand` function added to `tinymce.selection` which expands the selection around the nearest word. #TINY-9001
- New `expand` function added to `tinymce.dom.RangeUtils` to return a new range expanded around the nearest word. #TINY-9001
- New `color_map_background` and `color_map_foreground` options which set the base colors used in the `backcolor` and `forecolor` toolbar buttons and menu items. #TINY-9184
- Added optional `storageKey` property to `colorinput` component and `colorswatch` fancy menu item. #TINY-9184
- New `addView` function added to `editor.ui.registry` which makes it possible to register custom editor views. #TINY-9210
- New `ToggleView` command which makes it possible to hide or show registered custom views. #TINY-9210
- New `color_default_foreground` and `color_default_background` options to set the initial default color for the `forecolor` and `backcolor` toolbar buttons and menu items. #TINY-9183
- New `getTransparentElements` function added to `tinymce.html.Schema` to return a map object of transparent HTML elements. #TINY-9172
- Added `ToggleToolbarDrawer` event to subscribe to toolbar’s opening and closing. #TINY-9271
### Changed
- Transparent elements, like anchors, are now allowed in the root of the editor body if they contain blocks. #TINY-9172
- Colorswatch keyboard navigation now starts on currently selected color if present in the colorswatch. #TINY-9283
- `setContent` is now allowed to accept any custom keys and values as a second options argument. #TINY-9143
### Improved
- Transparent elements, like anchors, can now contain block elements. #TINY-9172
- Colorswatch now displays a checkmark for selected color. #TINY-9283
- Color picker dialog now starts on the appropriate color for the cursor position. #TINY-9213
### Fixed
- Parsing media content would cause a memory leak, which for example occurred when using the `getContent` API. #TINY-9186
- Dragging a noneditable element toward the bottom edge would cause the page to scroll up. #TINY-9025
- Range expanding capabilities would behave inconsistently depending on where the cursor was placed. #TINY-9029
- Compilation errors were thrown when using TypeScript 4.8. #TINY-9161
- Line separator scrolling in floating toolbars. #TINY-8948
- A double bottom border appeared on inline mode editor for the `tinymce-5` skin. #TINY-9108
- The editor header showed up even with no menubar and toolbar configured. #TINY-8819
- Inline text pattern no longer triggers if it matches only the end but not the start. #TINY-8947
- Matches of inline text patterns that are similar are now managed correctly. #TINY-8949
- Using `editor.selection.getContent({ format: 'text' })` or `editor.getContent({ format: 'text' })` would sometimes deselect selected radio buttons. #TINY-9213
- The context toolbar prevented the user from placing the cursor at the edges of the editor. #TINY-8890
- The Quick Insert context toolbar provided by the `quickbars` plugin showed when the cursor was in a fake block caret. #TINY-9190
- The `editor.selection.getRng()` API was not returning a proper range on hidden editors in Firefox. #TINY-9259
- The `editor.selection.getBookmark()` API was not returning a proper bookmark on hidden editors in Firefox. #TINY-9259
- Dragging a noneditable element before or after another noneditable element now works correctly. #TINY-9253
- The restored selection after a redo or undo action was not scrolled into view. #TINY-9222
- A newline could not be inserted when the selection was restored from a bookmark after an inline element with a `contenteditable="false"` attribute. #TINY-9194
- The global `tinymce.dom.styleSheetLoader` was not affected by the `content_css_cors` option. #TINY-6037
- The caret was moved to the previous line when a text pattern executed a `mceInsertContent` command on Enter key when running on Firefox. #TINY-9193
## 6.2.0 - 2022-09-08
### Added
- New `text_patterns_lookup` option to provide additional text patterns dynamically. #TINY-8778
- New promotion element has been added to the default UI. It can be disabled using the new `promotion` option. #TINY-8840
- New `format_noneditable_selector` option to specify the `contenteditable="false"` elements that can be wrapped in a format. #TINY-8905
- Added `allow` as a valid attribute for the `iframe` element in the editor schema. #TINY-8939
- New `search` field in the `MenuButton` that shows a search field at the top of the menu, and refetches items when the search field updates. #TINY-8952
### Improved
- The formatter can now apply a format to a `contenteditable="false"` element by wrapping it. Configurable using the `format_noneditable_selector` option. #TINY-8905
- The autocompleter now supports a multiple character trigger using the new `trigger` configuration. #TINY-8887
- The formatter now applies some inline formats, such as color and font size, to list item elements when the entire item content is selected. #TINY-8961
- The installed and available plugin lists in the Help dialog are now sorted alphabetically. #TINY-9019
- Alignment can now be applied to more types of embedded media elements. #TINY-8687
### Changed
- The `@menubar-row-separator-color` oxide variable no longer affects the divider between the Menubar and Toolbar. It only controls the color of the separator lines drawn in multiline Menubars. #TINY-8632
- The `@toolbar-separator-color` oxide variable now affects the color of the separator between the Menubar and Toolbar only. #TINY-8632
- Available Premium plugins, which are listed by name in the Help dialog, are no longer translated. #TINY-9019
### Fixed
- The Autolink plugin did not work when text nodes in the content were fragmented. #TINY-3723
- Fixed multiple incorrect types on public APIs found while enabling TypeScript strict mode. #TINY-8806
- The number of blank lines returned from `editor.getContent({format: 'text'})` differed between browsers. #TINY-8579
- The editor focused via the `auto_focus` option was not scrolled into the viewport. #TINY-8785
- Adding spaces immediately after a `contenteditable="false"` block did not work properly in some circumstances. #TINY-8814
- Elements with only `data-*` custom attributes were sometimes removed when they should not be removed. #TINY-8755
- Selecting a figure with `class="image"` incorrectly highlighted the link toolbar button. #TINY-8832
- Specifying a single, non-default list style for the `advlist_bullet_styles` and `advlist_number_styles` options was not respected. #TINY-8721
- Fixed multiple issues that occurred when formatting `contenteditable` elements. #TINY-8905
- Spaces could be incorrectly added to `urlinput` dialog components (commonly but not exclusively presented in the *Insert/Edit Link* dialog) in certain cases. #TINY-8775
- The text patterns logic threw an error when there were fragmented text nodes in a paragraph. #TINY-8779
- Dragging a `contentEditable=false` element towards a document’s edge did not cause scrolling. #TINY-8874
- Parsing large documents no longer throws a `Maximum call stack size exceeded` exception. #TINY-6945
- DomParser filter matching was not checked between filters, which could lead to an exception in the parser. #TINY-8888
- `contenteditable="false"` lists can no longer be toggled; and `contenteditable="true"` list elements within these lists can no longer be indented, split into another list element, or appended to the previous list element by deletion. #TINY-8920
- Removed extra bottom padding in the context toolbar of the `tinymce-5` skin. #TINY-8980
- Fixed a regression where pressing **Enter** added or deleted content outside the selection. #TINY-9101
- Fixed a bug where pressing **Enter** deleted selected `contenteditable="false"` `<pre>` elements. #TINY-9101
- The `editor.insertContent()` API did not respect the `no_events` argument. #TINY-9140
### Deprecated
- The autocompleter configuration property, `ch`, has been deprecated. It will be removed in the next major release. Use the `trigger` property instead. #TINY-8887
## 6.1.2 - 2022-07-29
### Fixed
- Reverted the undo level fix in the `autolink` plugin as it caused duplicated content in some edge cases. #TINY-8936
## 6.1.1 - 2022-07-27
### Fixed
- Invalid special elements were not cleaned up correctly during sanitization. #TINY-8780
- An exception was thrown when deleting all content if the start or end of the document had a `contenteditable="false"` element. #TINY-8877
- When a sidebar was opened using the `sidebar_show` option, its associated toolbar button was not highlighted. #TINY-8873
- When converting a URL to a link, the `autolink` plugin did not fire an `ExecCommand` event, nor did it create an undo level. #TINY-8896
- Worked around a Firefox bug which resulted in cookies not being available inside the editor content. #TINY-8916
- `<pre>` content pasted into a `<pre>` block that had inline styles or was `noneditable` now merges correctly with the surrounding content. #TINY-8860
- After a `codesample` was pasted, the insertion point was placed incorrectly. #TINY-8861
## 6.1.0 - 2022-06-29
### Added
- New `sidebar_show` option to show the specified sidebar on initialization. #TINY-8710
- New `newline_behavior` option controls what happens when the Return or Enter key is pressed or the `mceInsertNewLine` command is used. #TINY-8458
- New `iframe_template_callback` option in the Media plugin. Patch provided by Namstel. #TINY-8684
- New `transparent` property for `iframe` dialog component. #TINY-8534
- New `removeAttributeFilter` and `removeNodeFilter` functions added to the DomParser and DOM Serializer APIs. #TINY-7847
- New `dispatchChange` function added to the UndoManager API to fire the change with current editor status as level and current undoManager layer as lastLevel. #TINY-8641
### Improved
- Clearer focus states for buttons while navigating with a keyboard. #TINY-8557
- Support annotating certain block elements directly when using the editor's Annotation API. #TINY-8698
- The `mceLink` command can now take the value `{ dialog: true }` to always open the link dialog. #TINY-8057
- All help dialog links to `https://www.tiny.cloud` now include `rel="noopener"` to avoid potential security issues. #TINY-8834
### Changed
- The `end_container_on_empty_block` option can now take a string of blocks, allowing the exiting of a blockquote element by pressing Enter or Return twice. #TINY-6559
- The default value for `end_container_on_empty_block` option has been changed to `'blockquote'`. #TINY-6559
- Link menu and toolbar buttons now always execute the `mceLink` command. #TINY-8057
- Toggling fullscreen mode when using the Fullscreen plugin now also fires the `ResizeEditor` event. #TINY-8701
- Getting the editor's text content now returns newlines instead of an empty string if more than one empty paragraph exists. #TINY-8578
- Custom elements are now treated as non-empty elements by the schema. #TINY-4784
- The autocompleter's menu HTML element is now positioned instead of the wrapper. #TINY-6476
- Choice menu items will now use the `'menuitemradio'` aria role to better reflect that only a single item can be active. #TINY-8602
### Fixed
- Some Template plugin option values were not escaped properly when doing replacement lookups with Regular Expressions. #TINY-7433
- Copy events were not dispatched in readonly mode. #TINY-6800
- `<pre>` tags were not preserved when copying and pasting. #TINY-7719
- The URL detection used for autolink and smart paste did not work if a path segment contained valid characters such as `!` and `:`. #TINY-8069
- In some cases pressing the Backspace or Delete key would incorrectly step into tables rather than remain outside. #TINY-8592
- Links opened when Alt+Enter or Option+Return was typed even when `preventDefault()` was called on the keydown event. #TINY-8661
- Inconsistent visual behavior between choosing Edit -> Select All and typing Ctrl+A or Cmd+A when a document contained an image. #TINY-4550
- Ctrl+Shift+Home/End or Cmd+Shift+Up-arrow/Down-arrow did not expand the selection to a `contenteditable="false"` element if the element was at the beginning or end of a document. #TINY-7795
- Triple-clicking did not select a paragraph in Google Chrome in some circumstances. #TINY-8215
- Images were not showing as selected when selected along with other content. #TINY-5947
- Selection direction was not stored or restored when getting or setting selection bookmarks. #TINY-8599
- When text within an inline boundary element was selected and the right-arrow key was pressed, the insertion point incorrectly moved to the left. #TINY-8601
- In some versions of Safari, the `editor.selection.isForward()` API could throw an exception due to an invalid selection. #TINY-8686
- The selection is no longer incorrectly moved inside a comment by the `editor.selection.normalize()` API. #TINY-7817
- The `InsertParagraph` or `mceInsertNewLine` commands did not delete the current selection like the native command does. #TINY-8606
- The `InsertLineBreak` command did not replace selected content. #TINY-8458
- If selected content straddled a parent and nested list, cutting the selection did not always set the list style to `'none'` on the parent list. #TINY-8078
- Delete operations could behave incorrectly if the selection contains a `contenteditable="false"` element located at the edge of content. #TINY-8729
- Spaces were not added correctly on some browsers when the insertion point was immediately before or after a `contenteditable="false"` block element. #TINY-8588
- Images that used a Data URI were corrupted when the data wasn't base64 encoded. #TINY-8337
- `uploadImages` no longer triggers two change events if there is a removal of images on upload. #TINY-8641
- Preview and Insert Template dialogs now display the correct content background color when using dark skins. #TINY-8534
- Dialogs no longer exceed window height on smaller screens. #TINY-8146
- UI components, such as dialogs, would in some cases cause the Esc keyup event to incorrectly trigger inside the editor. #TINY-7005
- Fixed incorrect word breaks in menus when the menu presented with a scrollbar. #TINY-8572
- Notifications did not properly reposition when toggling fullscreen mode. #TINY-8701
- Text alignments, such as flush left and centered, could not be applied to `<pre>` elements. #TINY-7715
- Indenting or outdenting list items inside a block element that was inside another list item did not work. #TINY-7209
- Changing the list type of a list within another block element altered the parent element that contained that list. #TINY-8068
- Pasting columns in tables could, in some circumstances, result in an invalid table. #TINY-8040
- Copying columns in tables could sometimes result in an invalid copy. #TINY-8040
- Changing table properties with the `table_style_by_css` option set to `false` would sometimes reset the table width. #TINY-8758
- Custom elements added to otherwise blank lines were removed during serialization. #TINY-4784
- The editor's autocompleter was not triggered at the start of nested list items. #TINY-8759
- Some function types in the TreeWalker API missed that it could return `undefined`. #TINY-8592
- Nuget packages for .NET and .NET Core are now configured to copy TinyMCE into `/wwwroot/lib/` when TinyMCE is installed into a project. #TINY-8611
## 6.0.3 - 2022-05-25
### Fixed
- Could not remove values when multiple cells were selected with the cell properties dialog. #TINY-8625
- Could not remove values when multiple rows were selected with the row properties dialog. #TINY-8625
- Empty lines that were formatted in a ranged selection using the `format_empty_lines` option were not kept in the serialized content. #TINY-8639
- The `s` element was missing from the default schema text inline elements. #TINY-8639
- Some text inline elements specified via the schema were not removed when empty by default. #TINY-8639
## 6.0.2 - 2022-04-27
### Fixed
- Some media elements wouldn't update when changing the source URL. #TINY-8660
- Inline toolbars flickered when switching between editors. #TINY-8594
- Multiple inline toolbars were shown if focused too quickly. #TINY-8503
- Added background and additional spacing for the text labeled buttons in the toolbar to improve visual clarity. #TINY-8617
- Toolbar split buttons with text used an incorrect width on touch devices. #TINY-8647
## 6.0.1 - 2022-03-23
### Fixed
- Fixed the dev ZIP missing the required `bin` scripts to build from the source. #TINY-8542
- Fixed a regression whereby text patterns couldn't be updated at runtime. #TINY-8540
- Fixed an issue where tables with colgroups could be copied incorrectly in some cases. #TINY-8568
- Naked buttons better adapt to various background colors, improved text contrast in notifications. #TINY-8533
- The autocompleter would not fire the `AutocompleterStart` event nor close the menu in some cases. #TINY-8552
- It wasn't possible to select text right after an inline noneditable element. #TINY-8567
- Fixed a double border showing for the `tinymce-5` skin when using `toolbar_location: 'bottom'`. #TINY-8564
- Clipboard content was not generated correctly when cutting and copying `contenteditable="false"` elements. #TINY-8563
- Fixed the box-shadow getting clipped in autocompletor popups. #TINY-8573
- The `buttonType` property did not work for dialog footer buttons. #TINY-8582
- Fix contrast ratio for error messages. #TINY-8586
## 6.0.0 - 2022-03-03
### Added
- New `editor.options` API to replace the old `editor.settings` and `editor.getParam` APIs. #TINY-8206
- New `editor.annotator.removeAll` API to remove all annotations by name. #TINY-8195
- New `Resource.unload` API to make it possible to unload resources. #TINY-8431
- New `FakeClipboard` API on the `tinymce` global. #TINY-8353
- New `dispatch()` function to replace the now deprecated `fire()` function in various APIs. #TINY-8102
- New `AutocompleterStart`, `AutocompleterUpdate` and `AutocompleterEnd` events. #TINY-8279
- New `mceAutocompleterClose`, `mceAutocompleterReload` commands. #TINY-8279
- New `mceInsertTableDialog` command to open the insert table dialog. #TINY-8273
- New `slider` dialog component. #TINY-8304
- New `imagepreview` dialog component, allowing preview and zoom of any image URL. #TINY-8333
- New `buttonType` property on dialog button components, supporting `toolbar` style in addition to `primary` and `secondary`. #TINY-8304
- The `tabindex` attribute is now copied from the target element to the iframe. #TINY-8315
### Improved
- New default theme styling for TinyMCE 6 facelift with old skin available as `tinymce-5` and `tinymce-5-dark`. #TINY-8373
- The default height of editor has been increased from `200px` to `400px` to improve the usability of the editor. #TINY-6860
- The upload results returned from the `editor.uploadImages()` API now includes a `removed` flag, reflecting if the image was removed after a failed upload. #TINY-7735
- The `ScriptLoader`, `StyleSheetLoader`, `AddOnManager`, `PluginManager` and `ThemeManager` APIs will now return a `Promise` when loading resources instead of using callbacks. #TINY-8325
- A `ThemeLoadError` event is now fired if the theme fails to load. #TINY-8325
- The `BeforeSetContent` event will now include the actual serialized content when passing in an `AstNode` to the `editor.setContent` API. #TINY-7996
- Improved support for placing the caret before or after noneditable elements within the editor. #TINY-8169
- Calls to `editor.selection.setRng` now update the caret position bookmark used when focus is returned to the editor. #TINY-8450
- The `emoticon` plugin dialog, toolbar and menu item has been updated to use the more accurate `Emojis` term. #TINY-7631
- The dialog `redial` API will now only rerender the changed components instead of the whole dialog. #TINY-8334
- The dialog API `setData` method now uses a deep merge algorithm to support partial nested objects. #TINY-8333
- The dialog spec `initialData` type is now `Partial<T>` to match the underlying implementation details. #TINY-8334
- Notifications no longer require a timeout to disable the close button. #TINY-6679
- The editor theme is now fetched in parallel with the icons, language pack and plugins. #TINY-8453
### Changed
- TinyMCE is now MIT licensed. #TINY-2316
- Moved the `paste` plugin's functionality to TinyMCE core. #TINY-8310
- The `paste_data_images` option now defaults to `true`. #TINY-8310
- Moved the `noneditable` plugin to TinyMCE core. #TINY-8311
- Renamed the `noneditable_noneditable_class` option to `noneditable_class`. #TINY-8311
- Renamed the `noneditable_editable_class` option to `editable_class`. #TINY-8311
- Moved the `textpattern` plugin to TinyMCE core. #TINY-8312
- Renamed the `textpattern_patterns` option to `text_patterns`. #TINY-8312
- Moved the `hr` plugin's functionality to TinyMCE core. #TINY-8313
- Moved the `print` plugin's functionality to TinyMCE core. #TINY-8314
- Moved non-UI table functionality to core. #TINY-8273
- The `DomParser` API no longer uses a custom parser internally and instead uses the native `DOMParser` API. #TINY-4627
- The `editor.getContent()` API can provide custom content by preventing and overriding `content` in the `BeforeGetContent` event. This makes it consistent with the `editor.selection.getContent()` API. #TINY-8018
- The `editor.setContent()` API can now be prevented using the `BeforeSetContent` event. This makes it consistent with the `editor.selection.setContent()` API. #TINY-8018
- Add-ons such as plugins and themes are no longer constructed using the `new` operator. #TINY-8256
- A number of APIs that were not proper classes, are no longer constructed using the `new` operator. #TINY-8322
- The Editor commands APIs will no longer fallback to executing the browsers native command functionality. #TINY-7829
- The Editor query command APIs will now return `false` or an empty string on removed editors. #TINY-7829
- The `mceAddEditor` and `mceToggleEditor` commands now take an object as their value to specify the id and editor options. #TINY-8138
- The `mceInsertTable` command can no longer open the insert table dialog. Use the `mceInsertTableDialog` command instead. #TINY-8273
- The `plugins` option now returns a `string` array instead of a space separated string. #TINY-8455
- The `media` plugin no longer treats `iframe`, `video`, `audio` or `object` elements as "special" and will validate the contents against the schema. #TINY-8382
- The `images_upload_handler` option is no longer passed a `success` or `failure` callback and instead requires a `Promise` to be returned with the upload result. #TINY-8325
- The `tinymce.settings` global property is no longer set upon initialization. #TINY-7359
- The `change` event is no longer fired on first modification. #TINY-6920
- The `GetContent` event will now always pass a `string` for the `content` property. #TINY-7996
- Changed the default tag for the strikethrough format to the `s` tag when using a html 5 schema. #TINY-8262
- The `strike` tag is automatically converted to the `s` tag when using a html 5 schema. #TINY-8262
- Aligning a table to the left or right will now use margin styling instead of float styling. #TINY-6558
- The `:` control character has been changed to `~` for the schema `valid_elements` and `extended_valid_elements` options. #TINY-6726
- The `primary` property on dialog buttons has been deprecated. Use the new `buttonType` property instead. #TINY-8304
- Changed the default statusbar element path delimiter from `»` to `›`. #TINY-8372
- Replaced the `Powered by Tiny` branding text with the Tiny logo. #TINY-8371
- The default minimum height of editor has been changed to 100px to prevent the UI disappearing while resizing. #TINY-6860
- RGB colors are no longer converted to hex values when parsing or serializing content. #TINY-8163
- Replaced the `isDisabled()` function with an `isEnabled()` function for various APIs. #TINY-8101
- Replaced the `enable()` and `disable()` functions with a `setEnabled(state)` function in various APIs. #TINY-8101
- Replaced the `disabled` property with an `enabled` property in various APIs. #TINY-8101
- Replaced the `disable(name)` and `enable(name)` functions with a `setEnabled(name, state)` function in the Dialog APIs. #TINY-8101
- Renamed the `tinymce.Env.os.isOSX` API to `tinymce.Env.os.isMacOS`. #TINY-8175
- Renamed the `tinymce.Env.browser.isChrome` API to `tinymce.Env.browser.isChromium` to better reflect its functionality. #TINY-8300
- Renamed the `getShortEndedElements` Schema API to `getVoidElements`. #TINY-8344
- Renamed the `font_formats` option to `font_family_formats`. #TINY-8328
- Renamed the `fontselect` toolbar button and `fontformats` menu item to `fontfamily`. #TINY-8328
- Renamed the `fontsize_formats` option to `font_size_formats`. #TINY-8328
- Renamed the `fontsizeselect` toolbar button and `fontsizes` menu item to `fontsize`. #TINY-8328
- Renamed the `formatselect` toolbar button and `blockformats` menu item to `blocks`. #TINY-8328
- Renamed the `styleselect` toolbar button and `formats` menu item to `styles`. #TINY-8328
- Renamed the `lineheight_formats` option to `line_height_formats`. #TINY-8328
- Renamed the `getWhiteSpaceElements()` function to `getWhitespaceElements()` in the `Schema` API. #TINY-8102
- Renamed the `mceInsertClipboardContent` command `content` property to `html` to better reflect what data is passed. #TINY-8310
- Renamed the `default_link_target` option to `link_default_target` for both `link` and `autolink` plugins. #TINY-4603
- Renamed the `rel_list` option to `link_rel_list` for the `link` plugin. #TINY-4603
- Renamed the `target_list` option to `link_target_list` for the `link` plugin. #TINY-4603
- The default value for the `link_default_protocol` option has been changed to `https` instead of `http`. #TINY-7824
- The default value for the `element_format` option has been changed to `html`. #TINY-8263
- The default value for the `schema` option has been changed to `html5`. #TINY-8261
- The default value for the `table_style_by_css` option has been changed to `true`. #TINY-8259
- The default value for the `table_use_colgroups` option has been changed to `true`. #TINY-8259
### Fixed
- The object returned from the `editor.fire()` API was incorrect if the editor had been removed. #TINY-8018
- The `editor.selection.getContent()` API did not respect the `no_events` argument. #TINY-8018
- The `editor.annotator.remove` API did not keep selection when removing the annotation. #TINY-8195
- The `GetContent` event was not fired when getting `tree` or `text` formats using the `editor.selection.getContent()` API. #TINY-8018
- The `beforeinput` and `input` events would sometimes not fire as expected when deleting content. #TINY-8168 #TINY-8329
- The `table` plugin would sometimes not correctly handle headers in the `tfoot` section. #TINY-8104
- The `silver` theme UI was incorrectly rendered before plugins had initialized. #TINY-8288
- The aria labels for the color picker dialog were not translated. #TINY-8381
- Fixed sub-menu items not read by screen readers. Patch contributed by westonkd. #TINY-8417
- Dialog labels and other text-based UI properties did not escape HTML markup. #TINY-7524
- Anchor elements would render incorrectly when using the `allow_html_in_named_anchor` option. #TINY-3799
- The `AstNode` HTML serializer did not serialize `pre` or `textarea` elements correctly when they contained newlines. #TINY-8446
- Fixed sub-menu items not read by screen readers. Patch contributed by westonkd. #TINY-8417
- The Home or End keys would move out of a editable element contained within a noneditable element. #TINY-8201
- Dialogs could not be opened in inline mode before the editor had been rendered. #TINY-8397
- Clicking on menu items could cause an unexpected console warning if the `onAction` function caused the menu to close. #TINY-8513
- Fixed various color and contrast issues for the dark skins. #TINY-8527
### Removed
- Removed support for Microsoft Internet Explorer 11. #TINY-8194 #TINY-8241
- Removed support for Microsoft Word from the opensource paste functionality. #TINY-7493
- Removed support for the `plugins` option allowing a mixture of a string array and of space separated strings. #TINY-8399
- Removed support for the deprecated `false` value for the `forced_root_block` option. #TINY-8260
- Removed the jQuery integration. #TINY-4519
- Removed the `imagetools` plugin, which is now classified as a Premium plugin. #TINY-8209
- Removed the `imagetools` dialog component. #TINY-8333
- Removed the `toc` plugin, which is now classified as a Premium plugin. #TINY-8250
- Removed the `tabfocus` plugin. #TINY-8315
- Removed the `textpattern` plugin's API as part of moving it to core. #TINY-8312
- Removed the `table` plugin's API. #TINY-8273
- Removed the callback for the `EditorUpload` API. #TINY-8325
- Removed the legacy browser detection properties from the `Env` API. #TINY-8162
- Removed the `filterNode` method from the `DomParser` API. #TINY-8249
- Removed the `SaxParser` API. #TINY-8218
- Removed the `tinymce.utils.Promise` API. #TINY-8241
- Removed the `toHex` function for the `DOMUtils` and `Styles` APIs. #TINY-8163
- Removed the `execCommand` handler function from the plugin and theme interfaces. #TINY-7829
- Removed the `editor.settings` property as it has been replaced by the new Options API. #TINY-8236
- Removed the `shortEnded` and `fixed` properties on `tinymce.html.Node` class. #TINY-8205
- Removed the `mceInsertRawHTML` command. #TINY-8214
- Removed the style field from the `image` plugin dialog advanced tab. #TINY-3422
- Removed the `paste_filter_drop` option as native drag and drop handling is no longer supported. #TINY-8511
- Removed the legacy `mobile` theme. #TINY-7832
- Removed the deprecated `$`, `Class`, `DomQuery` and `Sizzle` APIs. #TINY-4520 #TINY-8326
- Removed the deprecated `Color`, `JSON`, `JSONP` and `JSONRequest`. #TINY-8162
- Removed the deprecated `XHR` API. #TINY-8164
- Removed the deprecated `setIconStroke` Split Toolbar Button API. #TINY-8162
- Removed the deprecated `editors` property from `EditorManager`. #TINY-8162
- Removed the deprecated `execCallback` and `setMode` APIs from `Editor`. #TINY-8162
- Removed the deprecated `addComponents` and `dependencies` APIs from `AddOnManager`. #TINY-8162
- Removed the deprecated `clearInterval`, `clearTimeout`, `debounce`, `requestAnimationFrame`, `setInterval`, `setTimeout` and `throttle` APIs from `Delay`. #TINY-8162
- Removed the deprecated `Schema` options. #TINY-7821
- Removed the deprecated `file_browser_callback_types`, `force_hex_style_colors` and `images_dataimg_filter` options. #TINY-7823
- Removed the deprecated `filepicker_validator_handler`, `force_p_newlines`, `gecko_spellcheck`, `tab_focus`, `table_responsive_width` and `toolbar_drawer` options. #TINY-7820
- Removed the deprecated `media_scripts` option in the `media` plugin. #TINY-8421
- Removed the deprecated `editor_deselector`, `editor_selector`, `elements`, `mode` and `types` legacy TinyMCE init options. #TINY-7822
- Removed the deprecated `content_editable_state` and `padd_empty_with_br` options. #TINY-8400
- Removed the deprecated `autoresize_on_init` option from the `autoresize` plugin. #TINY-8400
- Removed the deprecated `fullpage`, `spellchecker`, `bbcode`, `legacyoutput`, `colorpicker`, `contextmenu` and `textcolor` plugins. #TINY-8192
- Removed the undocumented `editor.editorCommands.hasCustomCommand` API. #TINY-7829
- Removed the undocumented `mceResetDesignMode`, `mceRepaint` and `mceBeginUndoLevel` commands. #TINY-7829
### Deprecated
- The dialog button component's `primary` property has been deprecated and will be removed in the next major release. Use the new `buttonType` property instead. #TINY-8304
- The `fire()` function of `tinymce.Editor`, `tinymce.dom.EventUtils`, `tinymce.dom.DOMUtils`, `tinymce.util.Observable` and `tinymce.util.EventDispatcher` has been deprecated and will be removed in the next major release. Use the `dispatch()` function instead. #TINY-8102
- The `content` property on the `SetContent` event has been deprecated and will be removed in the next major release. #TINY-8457
- The return value of the `editor.setContent` API has been deprecated and will be removed in the next major release. #TINY-8457
## 5.10.3 - 2022-02-09
### Fixed
- Alignment would sometimes be removed on parent elements when changing alignment on certain inline nodes, such as images. #TINY-8308
- The `fullscreen` plugin would reset the scroll position when exiting fullscreen mode. #TINY-8418
## 5.10.2 - 2021-11-17
### Fixed
- Internal selectors were appearing in the style list when using the `importcss` plugin. #TINY-8238
## 5.10.1 - 2021-11-03
### Fixed
- The iframe aria help text was not read by some screen readers. #TINY-8171
- Clicking the `forecolor` or `backcolor` toolbar buttons would do nothing until selecting a color. #TINY-7836
- Crop functionality did not work in the `imagetools` plugin when the editor was rendered in a shadow root. #TINY-6387
- Fixed an exception thrown on Safari when closing the `searchreplace` plugin dialog. #TINY-8166
- The `autolink` plugin did not convert URLs to links when starting with a bracket. #TINY-8091
- The `autolink` plugin incorrectly created nested links in some cases. #TINY-8091
- Tables could have an incorrect height set on rows when rendered outside of the editor. #TINY-7699
- In certain circumstances, the table of contents plugin would incorrectly add an extra empty list item. #TINY-4636
- The insert table grid menu displayed an incorrect size when re-opening the grid. #TINY-6532
- The word count plugin was treating the zero width space character (`​`) as a word. #TINY-7484
## 5.10.0 - 2021-10-11
### Added
- Added a new `URI.isDomSafe(uri)` API to check if a URI is considered safe to be inserted into the DOM. #TINY-7998
- Added the `ESC` key code constant to the `VK` API. #TINY-7917
- Added a new `deprecation_warnings` setting for turning off deprecation console warning messages. #TINY-8049
### Improved
- The `element` argument of the `editor.selection.scrollIntoView()` API is now optional, and if it is not provided the current selection will be scrolled into view. #TINY-7291
### Changed
- The deprecated `scope` attribute is no longer added to `td` cells when converting a row to a header row. #TINY-7731
- The number of `col` elements is normalized to match the number of columns in a table after a table action. #TINY-8011
### Fixed
- Fixed a regression that caused block wrapper formats to apply and remove incorrectly when using a collapsed selection with multiple words. #TINY-8036
- Resizing table columns in some scenarios would resize the column to an incorrect position. #TINY-7731
- Inserting a table where the parent element had padding would cause the table width to be incorrect. #TINY-7991
- The resize backdrop element did not have the `data-mce-bogus="all"` attribute set to prevent it being included in output. #TINY-7854
- Resize handles appeared on top of dialogs and menus when using an inline editor. #TINY-3263
- Fixed the `autoresize` plugin incorrectly scrolling to the top of the editor content in some cases when changing content. #TINY-7291
- Fixed the `editor.selection.scrollIntoView()` type signature, as it incorrectly required an `Element` instead of `HTMLElement`. #TINY-7291
- Table cells that were both row and column headers did not retain the correct state when converting back to a regular row or column. #TINY-7709
- Clicking beside a non-editable element could cause the editor to incorrectly scroll to the top of the content. #TINY-7062
- Clicking in a table cell, with a non-editable element in an adjacent cell, incorrectly caused the non-editable element to be selected. #TINY-7736
- Split toolbar buttons incorrectly had nested `tabindex="-1"` attributes. #TINY-7879
- Fixed notifications rendering in the wrong place initially and when the page was scrolled. #TINY-7894
- Fixed an exception getting thrown when the number of `col` elements didn't match the number of columns in a table. #TINY-7041 #TINY-8011
- The table selection state could become incorrect after selecting a noneditable table cell. #TINY-8053
- As of Mozilla Firefox 91, toggling fullscreen mode with `toolbar_sticky` enabled would cause the toolbar to disappear. #TINY-7873
- Fixed URLs not cleaned correctly in some cases in the `link` and `image` plugins. #TINY-7998
- Fixed the `image` and `media` toolbar buttons incorrectly appearing to be in an inactive state in some cases. #TINY-3463
- Fixed the `editor.selection.selectorChanged` API not firing if the selector matched the current selection when registered in some cases. #TINY-3463
- Inserting content into a `contenteditable="true"` element that was contained within a `contenteditable="false"` element would move the selection to an incorrect location. #TINY-7842
- Dragging and dropping `contenteditable="false"` elements could result in the element being placed in an unexpected location. #TINY-7917
- Pressing the Escape key would not cancel a drag action that started on a `contenteditable="false"` element within the editor. #TINY-7917
- `video` and `audio` elements were unable to be played when the `media` plugin live embeds were enabled in some cases. #TINY-7674
- Pasting images would throw an exception if the clipboard `items` were not files (for example, screenshots taken from gnome-software). Patch contributed by cedric-anne. #TINY-8079
### Deprecated
- Several APIs have been deprecated. See the release notes section for information. #TINY-8023 #TINY-8063
- Several Editor settings have been deprecated. See the release notes section for information. #TINY-8086
- The Table of Contents and Image Tools plugins will be classified as Premium plugins in the next major release. #TINY-8087
- Word support in the `paste` plugin has been deprecated and will be removed in the next major release. #TINY-8087
## 5.9.2 - 2021-09-08
### Fixed
- Fixed an exception getting thrown when disabling events and setting content. #TINY-7956
- Delete operations could behave incorrectly if the selection crossed a table boundary. #TINY-7596
## 5.9.1 - 2021-08-27
### Fixed
- Published TinyMCE types failed to compile in strict mode. #TINY-7915
- The `TableModified` event sometimes didn't fire when performing certain table actions. #TINY-7916
## 5.9.0 - 2021-08-26
### Added
- Added a new `mceFocus` command that focuses the editor. Equivalent to using `editor.focus()`. #TINY-7373
- Added a new `mceTableToggleClass` command which toggles the provided class on the currently selected table. #TINY-7476
- Added a new `mceTableCellToggleClass` command which toggles the provided class on the currently selected table cells. #TINY-7476
- Added a new `tablecellvalign` toolbar button and menu item for vertical table cell alignment. #TINY-7477
- Added a new `tablecellborderwidth` toolbar button and menu item to change table cell border width. #TINY-7478
- Added a new `tablecellborderstyle` toolbar button and menu item to change table cell border style. #TINY-7478
- Added a new `tablecaption` toolbar button and menu item to toggle captions on tables. #TINY-7479
- Added a new `mceTableToggleCaption` command that toggles captions on a selected table. #TINY-7479
- Added a new `tablerowheader` toolbar button and menu item to toggle the header state of row cells. #TINY-7478
- Added a new `tablecolheader` toolbar button and menu item to toggle the header state of column cells. #TINY-7482
- Added a new `tablecellbordercolor` toolbar button and menu item to select table cell border colors, with an accompanying setting `table_border_color_map` to customize the available values. #TINY-7480
- Added a new `tablecellbackgroundcolor` toolbar button and menu item to select table cell background colors, with an accompanying setting `table_background_color_map` to customize the available values. #TINY-7480
- Added a new `language` menu item and toolbar button to add `lang` attributes to content, with an accompanying `content_langs` setting to specify the languages available. #TINY-6149
- A new `lang` format is now available that can be used with `editor.formatter`, or applied with the `Lang` editor command. #TINY-6149
- Added a new `language` icon for the `language` toolbar button. #TINY-7670
- Added a new `table-row-numbering` icon. #TINY-7327
- Added new plugin commands: `mceEmoticons` (Emoticons), `mceWordCount` (Word Count), and `mceTemplate` (Template). #TINY-7619
- Added a new `iframe_aria_text` setting to set the iframe title attribute. #TINY-1264
- Added a new DomParser `Node.children()` API to return all the children of a `Node`. #TINY-7756
### Improved
- Sticky toolbars can now be offset from the top of the page using the new `toolbar_sticky_offset` setting. #TINY-7337
- Fancy menu items now accept an `initData` property to allow custom initialization data. #TINY-7480
- Improved the load time of the `fullpage` plugin by using the existing editor schema rather than creating a new one. #TINY-6504
- Improved the performance when UI components are rendered. #TINY-7572
- The context toolbar no longer unnecessarily repositions to the top of large elements when scrolling. #TINY-7545
- The context toolbar will now move out of the way when it overlaps with the selection, such as in table cells. #TINY-7192
- The context toolbar now uses a short animation when transitioning between different locations. #TINY-7740
- `Env.browser` now uses the User-Agent Client Hints API where it is available. #TINY-7785
- Icons with a `-rtl` suffix in their name will now automatically be used when the UI is rendered in right-to-left mode. #TINY-7782
- The `formatter.match` API now accepts an optional `similar` parameter to check if the format partially matches. #TINY-7712
- The `formatter.formatChanged` API now supports providing format variables when listening for changes. #TINY-7713
- The formatter will now fire `FormatApply` and `FormatRemove` events for the relevant actions. #TINY-7713
- The `autolink` plugin link detection now permits custom protocols. #TINY-7714
- The `autolink` plugin valid link detection has been improved. #TINY-7714
### Changed
- Changed the load order so content CSS is loaded before the editor is populated with content. #TINY-7249
- Changed the `emoticons`, `wordcount`, `code`, `codesample`, and `template` plugins to open dialogs using commands. #TINY-7619
- The context toolbar will no longer show an arrow when it overlaps the content, such as in table cells. #TINY-7665
- The context toolbar will no longer overlap the statusbar for toolbars using `node` or `selection` positions. #TINY-7666
### Fixed
- The `editor.fire` API was incorrectly mutating the original `args` provided. #TINY-3254
- Unbinding an event handler did not take effect immediately while the event was firing. #TINY-7436
- Binding an event handler incorrectly took effect immediately while the event was firing. #TINY-7436
- Unbinding a native event handler inside the `remove` event caused an exception that blocked editor removal. #TINY-7730
- The `SetContent` event contained the incorrect `content` when using the `editor.selection.setContent()` API. #TINY-3254
- The editor content could be edited after calling `setProgressState(true)` in iframe mode. #TINY-7373
- Tabbing out of the editor after calling `setProgressState(true)` behaved inconsistently in iframe mode. #TINY-7373
- Flash of unstyled content while loading the editor because the content CSS was loaded after the editor content was rendered. #TINY-7249
- Partially transparent RGBA values provided in the `color_map` setting were given the wrong hex value. #TINY-7163
- HTML comments with mismatched quotes were parsed incorrectly under certain circumstances. #TINY-7589
- The editor could crash when inserting certain HTML content. #TINY-7756
- Inserting certain HTML content into the editor could result in invalid HTML once parsed. #TINY-7756
- Links in notification text did not show the correct mouse pointer. #TINY-7661
- Using the Tab key to navigate into the editor on Microsoft Internet Explorer 11 would incorrectly focus the toolbar. #TINY-3707
- The editor selection could be placed in an incorrect location when undoing or redoing changes in a document containing `contenteditable="false"` elements. #TINY-7663
- Menus and context menus were not closed when clicking into a different editor. #TINY-7399
- Context menus on Android were not displayed when more than one HTML element was selected. #TINY-7688
- Disabled nested menu items could still be opened. #TINY-7700
- The nested menu item chevron icon was not fading when the menu item was disabled. #TINY-7700
- `imagetools` buttons were incorrectly enabled for remote images without `imagetools_proxy` set. #TINY-7772
- Only table content would be deleted when partially selecting a table and content outside the table. #TINY-6044
- The table cell selection handling was incorrect in some cases when dealing with nested tables. #TINY-6298
- Removing a table row or column could result in the cursor getting placed in an invalid location. #TINY-7695
- Pressing the Tab key to navigate through table cells did not skip noneditable cells. #TINY-7705
- Clicking on a noneditable table cell did not show a visual selection like other noneditable elements. #TINY-7724
- Some table operations would incorrectly cause table row attributes and styles to be lost. #TINY-6666
- The selection was incorrectly lost when using the `mceTableCellType` and `mceTableRowType` commands. #TINY-6666
- The `mceTableRowType` was reversing the order of the rows when converting multiple header rows back to body rows. #TINY-6666
- The table dialog did not always respect the `table_style_with_css` option. #TINY-4926
- Pasting into a table with multiple cells selected could cause the content to be pasted in the wrong location. #TINY-7485
- The `TableModified` event was not fired when pasting cells into a table. #TINY-6939
- The table paste column before and after icons were not flipped in RTL mode. #TINY-7851
- Fixed table corruption when deleting a `contenteditable="false"` cell. #TINY-7891
- The `dir` attribute was being incorrectly applied to list items. #TINY-4589
- Applying selector formats would sometimes not apply the format correctly to elements in a list. #TINY-7393
- For formats that specify an attribute or style that should be removed, the formatter `match` API incorrectly returned `false`. #TINY-6149
- The type signature on the `formatter.matchNode` API had the wrong return type (was `boolean` but should have been `Formatter | undefined`). #TINY-6149
- The `formatter.formatChanged` API would ignore the `similar` parameter if another callback had already been registered for the same format. #TINY-7713
- The `formatter.formatChanged` API would sometimes not run the callback the first time the format was removed. #TINY-7713
- Base64 encoded images with spaces or line breaks in the data URI were not displayed correctly. Patch contributed by RoboBurned.
### Deprecated
- The `bbcode`, `fullpage`, `legacyoutput`, and `spellchecker` plugins have been deprecated and marked for removal in the next major release. #TINY-7260
## 5.8.2 - 2021-06-23
### Fixed
- Fixed an issue when pasting cells from tables containing `colgroup`s into tables without `colgroup`s. #TINY-6675
- Fixed an issue that could cause an invalid toolbar button state when multiple inline editors were on a single page. #TINY-6297
## 5.8.1 - 2021-05-20
### Fixed
- An unexpected exception was thrown when switching to readonly mode and adjusting the editor width. #TINY-6383
- Content could be lost when the `pagebreak_split_block` setting was enabled. #TINY-3388
- The `list-style-type: none;` style on nested list items was incorrectly removed when clearing formatting. #TINY-6264
- URLs were not always detected when pasting over a selection. Patch contributed by jwcooper. #TINY-6997
- Properties on the `OpenNotification` event were incorrectly namespaced. #TINY-7486
## 5.8.0 - 2021-05-06
### Added
- Added the `PAGE_UP` and `PAGE_DOWN` key code constants to the `VK` API. #TINY-4612
- The editor resize handle can now be controlled using the keyboard. #TINY-4823
- Added a new `fixed_toolbar_container_target` setting which renders the toolbar in the specified `HTMLElement`. Patch contributed by pvrobays.
### Improved
- The `inline_boundaries` feature now supports the `home`, `end`, `pageup`, and `pagedown` keys. #TINY-4612
- Updated the `formatter.matchFormat` API to support matching formats with variables in the `classes` property. #TINY-7227
- Added HTML5 `audio` and `video` elements to the default alignment formats. #TINY-6633
- Added support for alpha list numbering to the list properties dialog. #TINY-6891
### Changed
- Updated the `image` dialog to display the class list dropdown as full-width if the caption checkbox is not present. #TINY-6400
- Renamed the "H Align" and "V Align" input labels in the Table Cell Properties dialog to "Horizontal align" and "Vertical align" respectively. #TINY-7285
### Deprecated
- The undocumented `setIconStroke` Split Toolbar Button API has been deprecated and will be removed in a future release. #TINY-3551
### Fixed
- Fixed a bug where it wasn't possible to align nested list items. #TINY-6567
- The RGB fields in the color picker dialog were not staying in sync with the color palette and hue slider.