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
- Added API launching tasks for schedule with a reference on https://wicg.github.io/scheduling-apis/
- LazyWalker module now uses the new API for scheduling tasks
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 affectcleanHTML.denyTags
. Now if both options are set,
thencleanHTML.denyTags
will only be applied to those tags that are not indicated incleanHTML.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 allIViewBased
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 withposition: fixed
orposition: absolute
, then it is used as a parent. - Also,
shadowRoot
can be used as apopupRoot
Those. Parent search priorities:
popupRoot
optionshadowRoot
option- The closest element
dialog
or with styleposition: fixed
orposition: absolute
- 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
});