github xdan/jodit 4.5.12

latest releases: 4.5.17, 4.5.16, 4.5.15...
7 days ago

4.5.12

🏠 Internal

 @eslint/compat                      ^1.2.3  →    ^1.2.6
 @eslint/js                         ^9.16.0  →   ^9.20.0
 @playwright/test                   ^1.49.0  →   ^1.50.1
 @swc/core                         ^1.10.11  →  ^1.10.16
 @types/node                       ^22.10.1  →  ^22.13.4
 @typescript-eslint/eslint-plugin   ^8.16.0  →   ^8.24.0
 @typescript-eslint/parser          ^8.16.0  →   ^8.24.0
 axios                               ^1.7.8  →    ^1.7.9
 compression                         ^1.7.5  →    ^1.8.0
 core-js                            ^3.39.0  →   ^3.40.0
 dotenv                             ^16.4.5  →   ^16.4.7
 eslint                             ^9.16.0  →   ^9.20.1
 eslint-config-prettier              ^9.1.0  →   ^10.0.1
 eslint-plugin-prettier              ^5.2.1  →    ^5.2.3
 glob                               ^11.0.0  →   ^11.0.1
 globals                           ^15.12.0  →  ^15.15.0
 less                                ^4.2.1  →    ^4.2.2
 mocha                              ^10.8.2  →   ^11.1.0
 postcss                           >=8.4.49  →   >=8.5.2
 prettier                            ^3.4.1  →    ^3.5.1
 stylelint                         ^16.11.0  →  ^16.14.1
 stylelint-config-standard          ^36.0.1  →   ^37.0.0
 stylelint-prettier                  ^5.0.2  →    ^5.0.3
 terser-webpack-plugin              ^5.3.10  →   ^5.3.11
 ts-loader                           ^9.5.1  →    ^9.5.2
 typescript                          ^5.7.2  →    ^5.7.3
 webpack                             5.96.1  →    5.98.0
 webpack-cli                         ^5.1.4  →    ^6.0.1
 webpack-dev-server                  ^5.1.0  →    ^5.2.0

4.5.10

🏠 Internal

  • Shit of the Chai JS module to the browser because the developers decided not to support the assembly for browsers anymore

🚀 New Feature

const editor = Jodit.make('#editor');
editor.schedulePostTask(
	() => {
		console.log('Task 1');
	},
	{ priority: 'user-blocking' }
);

4.5.5

🚀 New Feature

  • Added the ability to add their html inserts to the plugin paste
Jodit.make('#editor', {
	events: {
		onCustomPasteHTMLOption: (action, html) => {
			if (action === 'custom') {
				const div = document.createElement('div');
				div.innerHTML = html;
				const spans = div.querySelectorAll('span');
				for (let i = 0; i < spans.length; i++) {
					const span = spans[i];
					const p = document.createElement('p');
					p.innerHTML = span.innerHTML;
					span.parentNode.replaceChild(p, span);
				}
				return div.innerHTML;
			}
		}
	},
	pasteHTMLActionList: [
		{
			text: 'Custom',
			value: 'custom'
		}
	]
});

4.5.4

🏠 Internal

  • ESM build is going to the ES2018 target, not ES2020. This is due to the fact that the ES2020 target is not supported by all browsers. The ES2018 target is supported by all modern browsers. If you need to support older browsers, you can use the ES5 build.

4.5.2

🚀 New Feature

  • Added plugins/all.js for ESM build
import { Jodit } from 'jodit/esm/index.js';
console.log(Jodit.plugins.size); // 21 See. https://github.com/xdan/jodit/blob/main/tools/utils/resolve-alias-imports.ts#L81
import 'jodit/esm/plugins/all.js';
console.log(Jodit.plugins.size); // 62 and more in the future

4.5.1

💥 Breaking Change

  • If the cleanHTML.allowTags option was set, then this did not affect cleanHTML.denyTags. Now if both options are set,
    then cleanHTML.denyTags will only be applied to those tags that are not indicated in cleanHTML.allowTags
Jodit.make('#editor', {
	cleanHTML: {
		allowTags: 'script,p', // Only Script and P tags will be allowed
		denyTags: 'script,img' // This option is completely ignored
	}
});

4.4.8

🐛 Bug Fix

  • Fixed an error when in Jodit in the line transfer mode BR, when the indent button pressed the element was removed

4.3.1

💥 Breaking Change

  • Added the popupRoot option for all IViewBased classes (Dialog, Jodit, FileBrowser). Allows you to specify the parental element of dialogs and popup windows.
  • If the option is not specified, then when creating a dialogue, there is a bypass of a tree, starting with the editor. If an element is found dialog or eny element with position: fixed or position: absolute, then it is used as a parent.
  • Also, shadowRoot can be used as a popupRoot

Those. Parent search priorities:

  1. popupRoot option
  2. shadowRoot option
  3. The closest element dialog or with style position: fixed or position: absolute
  4. document.body

This is necessary in cases where Jodit is displayed inside the dialog windows with a focus interception.
For example, when inserting in [mui dialog] (https://mui.com/material-ui/react-dialog/)

If this is your situation, then in most cases you won't need to do anything, as Jodit will find the correct parent element on its own.
But if your code logic was configured specifically to insert into document.body, then you will need to explicitly specify popupRoot: document.body

const editor = Jodit.make('#editor', {
	popupRoot: document.body
});

Don't miss a new jodit release

NewReleases is sending notifications on new releases.