UNPKG

tinymce

Version:

Web based JavaScript HTML WYSIWYG editor control.

570 lines (506 loc) 238 kB
# 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.4.2 - 2023-04-26 ### Fixed - The editor would display a notification error when it fails to retirieve a blob image uri. #TINY-9604 - Menu buttons would have the Tabstopping behaviour in toolbar. #TINY-9723 - The `urlinput` dialog component would not open the typeahead dropdown when the input value was reset to an empty string. #TINY-9717 - Redial would in some situations cause select elements not to have an initial value selected when they should have. #TINY-9679 - Fixed the mouse pointer style from a text cursor to a default arrow pointer when hovering over the tree dialog component items. #TINY-9692 - Enabled variant of togglable `tox-button` and `tox-button--secondary` now supports `hover`/`active`/`focus`/`disabled` states. #TINY-9713 - Setting an invalid unit in the `fontsizeinput` would change it do the default value instead of reverting it back to the previous valid value. #TINY-9754 - Selection was not correctly scrolled horizontally into view when using the `selection.scrollIntoView` API. #TINY-9747 - Context toolbars displayed the incorrect status for the `advlist` plugin buttons. #TINY-9680 - The image would not be inserted when using the `quickimage` button on Chrome. #TINY-9769 ## 6.4.1 - 2023-03-29 ### Fixed - The `fontsizeinput` increase and decrease size buttons now work on TinyMCE mobile. #TINY-9725 - The TinyMCE editor toolbar is now accessible for all screen widths; it no longer collapses into an inaccessible vertical line when the screen is scrolled horizontally. #TINY-9646 - Reverted the changes made, in TinyMCE 6.4.0, to UI button colors in focus, active, and enabled states. #TINY-9176 ## 6.4.0 - 2023-03-15 ### Added - New `tree` component that can be used in dialog body panel. #TINY-9532 - `renderUI` property in the `Theme` type can now return a `Promise<RenderResult>` instead of `RenderResult`. #TINY-9556 - New `isEditable` API to `editor.selection` that returns true or false if the current selection is editable. #TINY-9462 - New `isEditable` API to `editor.dom` that returns true or false if the specified node is editable. #TINY-9462 - New `setText` and `setIcon` methods added to menu button and toolbar button API. #TINY-9268 - New `highlight_on_focus` option which enables highlighting the content area on focus. #TINY-9277 - New `fontsizeinput` toolbar item which allows the user to set the size via input and also increase and decrease it with `+` and `-` buttons. #TINY-9429 - Added `skipFocus` option to the `ToggleToolbarDrawer` command to preserve focus. #TINY-9337 - New `font_size_input_default_unit` option allows entry of numbers without a unit in `fontsizeinput`. They are then parsed as the set unit. If `font_size_input_default_unit` is not set the default is `pt`. #TINY-9585 - New `group` and `togglebutton` in view. #TINY-9523 - New `togglebutton` in dialog footer buttons. #TINY-9523 - Added `toggleFullscreen` to dialog API. #TINY-9528 - New `text-size-increase` and `text-size-decrease` icons. #TINY-9530 - New `xss_sanitization` option to allow disabling of XSS sanitization. #TINY-9600 - Added the top right close button of modal dialogs to the tabbing order. The 'x' button in these dialogs can now be accessed using keyboard navigation. #TINY-9520 - New `ui_mode` option for editor in scrollable containers support. #TINY-9414 - The sidebar element now has the accessibility role `region` when visible and the accessibility role `presentation` when hidden. #TINY-9517 - The `tox-custom-editor` class now has a border highlight when it is selected. #TINY-9673 - An element could be dropped onto the decendants of an element with a `contenteditable="false"` attribute. #TINY-9364 - Checkmark did not show in menu color swatches. #TINY-9395 - Add support for navigating inside the tree component using arrow keys and shift key. #TINY-9614 ### Improved - Direct invalid child text nodes of list elements are now wrapped in list item elements. #TINY-4818 - Templates are now be parsed before preview and insertion to make preview consistent with inserted template content and prevent XSS. #TINY-9244 - Pressing backspace on an empty line now preserves formatting on the previous empty line. #TINY-9454 - Pressing enter inside the `inputfontsize` input field now moves focus back into the editor content. #TINY-9598 - Drag and drop events for elements with a `contenteditable="false"` attribute now includes target element details. #TINY-9599 - Updated focus, active, and enabled colors of UI buttons for improved contrast against the UI color. #TINY-9176 ### Changed - The `link` plugins context menu items no longer appears for links that include elements with a `contenteditable="false"` attribute. #TINY-9491 - The formatting of elements with a `contenteditable="false"` attribute are no longer cloned to new cells when new table rows are created. #TINY-9449 - Changed the color of `@dialog-table-border-color`, and added right padding to the first cell of dialog table. #TINY-9380 ### Fixed - Sometimes the editor would finish initializing before the silver theme would have finished loading. #TINY-9556 - The `searchreplace` modal closed incorrectly when clicking outside of the alert that pops up when no match is found. #TINY-9443 - The text color or background color picker toolbar buttons did not update when the text color or background color was changed using the equivalent commands in the Format menu. #TINY-9439 - The `onSetup` api function would not run when defining custom group toolbar button. #TINY-9496 - The foreground and background menu icons would not properly update to display the last used color. #TINY-9497 - Added new `setIconFill` function to `NestedMenuItemInstanceApi`. #TINY-9497 - Pasting links to text would sometimes not generate the correct undo stack in Safari. #TINY-9489 - Toolbar split buttons in `advlist` plugin now show the correct state when the cursor is in a checklist. #TINY-5167 - Dragging transparent elements into transparent block elements could produce invalid nesting of transparents. #TINY-9231 - The `editor.insertContent` API would insert contents inside elements with a `contenteditable="false"` attribute if the selection was inside the element. #TINY-9462 - Closing a dialog would scroll down the document in Safari. #TINY-9148 - Inline headers would not work in some situations when the editor was moved too far right horizontally. #TINY-8977 - Quick toolbars were incorrectly rendered during the dragging of elements with a `contenteditable="false"` attribute. #TINY-9305 - Selection of images, horizontal rules, tables or elements with a `contenteditable="false"` attribute was possible if they were within an element with a `contenteditable="false"` attribute. #TINY-9473 - Ranged deletion of formatted text using selection or a keyboard shortcut would sometimes cause Blink- and Webkit-based browsers to insert interpreted tags upon typing. This could result in inconsistent tags. #TINY-9302 - Visual characters were rendered inside elements with a `contenteditable="false"` attribute. #TINY-9474 - Lists with an element with a `contenteditable="false"` attribute as their root were incorrectly editable using list API commands, toolbar buttons and menu items. #TINY-9458 - Color picker dialog would not update the preview color if the hex input value was prefixed with the `#` character. #TINY-9457 - Table cell selection was possible even if the element being selected was within an element with a `contenteditable="false"` attribute. #TINY-9459 - Table commands were modifying tables that were within an element with a `contenteditable="false"` attribute. #TINY-9459 - Fake carets were rendered for elements with a `contenteditable="false"` attribute and for tables within an element with a `contenteditable="false"` attribute. #TINY-9459 - Textareas with scrollbars in dialogs would not render rounded corners correctly on some browsers. #TINY-9331 - It was possible to open links inside the editor if the editor root was an element with a `contenteditable="false"` attribute. #TINY-9470 - Inline boundary was rendered for boundary elements that had a `contenteditable="false"` attribute. #TINY-9471 - Clicking on a disabled split button will no longer call the `onAction` callback. #TINY-9504 - The *Edit Link* dialog incorrectly retrieved the URL value when opened immediately after the link insertion. #TINY-7993 - The `ForwardDelete` and `Delete` editor commands were deleting content within elements with a `contenteditable="false"` attribute. #TINY-9477 - The Backspace and Forward Delete keys were deleting content within elements with a `contenteditable="false"` attribute. #TINY-9477 - Inserting newlines inside an editable element that was inside an element with a `contenteditable="false"` attribute root would sometimes try to split the editable element. #TINY-9461 - Creating a list in a table cell when the caret is in front of an anchor element would not properly include the anchor in the list. #TINY-6853 - Dragging and dropping elements with a `contenteditable="false"` attribute on table borders would remove the element on drop. #TINY-9021 - Elements with a `contenteditable="false"` attribute would be removed when dragged and dropped within a root element with a `contenteditable="false"` attribute. #TINY-9558 - Formatting could be applied or removed to list items with a `contenteditable="false"` attribute that were inside an element with a `contenteditable="false"` attribute. #TINY-9563 - Annotation were not removed if the annotation was deleted immediately after being created. #TINY-9399 - Inserting a link for a selection from quickbars did not preserve formatting. #TINY-9593 - Inline dialog position was not correct when the editor was not inline and was contained in a `fixed` or `absolute` positioned element. #TINY-9554 - Sticky toolbars did not fade transition when undocking in classic iframe mode. #TINY-9408 - Inserting elements that were not valid within the closest editing host would incorrectly split the editing host. #TINY-9595 - The `color_cols` option was not respected in the `forecolor` or `backcolor` color swatches. #TINY-9560 - Drag and dropping the last element with a `contenteditable="false"` attribute out of its parent block would not properly pad the parent block element. #TINY-9606 - Applying heading formats from `text_patterns` produced an invisible space before a word. #TINY-9603 - Opening color swatches caused the browser tab to crash when `color_cols` or other column option was set to 0. #TINY-9649 - Opening a menu button in the footer of a dialog after a redial threw an error. #TINY-9686 - After closing a view, the `more...` toolbar button disappeared if the editor had `toolbar_mode: 'sliding'` and the toolbar was opened. #TINY-9419 - Inline dialogs would open partially off screen when the toolbar had a small width. #TINY-9588 ## 6.3.2 - 2023-02-22 ### Fixed - Removed a workaround for ensuring stylesheets are loaded in an outdated version of webkit. #TINY-9433 ## 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 - The `autoresize` plugin used to cause infinite resize when `content_css` is set to `document`. #TINY-8872 ## 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 (`&#8203;`) 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 certai