jodit 4.13.22 → 4.13.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +3 -3
- package/es2015/jodit.js +34 -7
- package/es2015/jodit.min.js +3 -3
- package/es2015/plugins/debug/debug.css +1 -1
- package/es2015/plugins/debug/debug.js +1 -1
- package/es2015/plugins/debug/debug.min.js +1 -1
- package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2018/jodit.fat.min.js +3 -3
- package/es2018/jodit.min.js +3 -3
- package/es2018/plugins/debug/debug.min.js +1 -1
- package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2021/jodit.css +1 -1
- package/es2021/jodit.fat.min.js +4 -4
- package/es2021/jodit.js +35 -7
- package/es2021/jodit.min.js +4 -4
- package/es2021/plugins/debug/debug.css +1 -1
- package/es2021/plugins/debug/debug.js +1 -1
- package/es2021/plugins/debug/debug.min.js +1 -1
- package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es2021.en/jodit.css +1 -1
- package/es2021.en/jodit.fat.min.js +4 -4
- package/es2021.en/jodit.js +35 -7
- package/es2021.en/jodit.min.js +4 -4
- package/es2021.en/plugins/debug/debug.css +1 -1
- package/es2021.en/plugins/debug/debug.js +1 -1
- package/es2021.en/plugins/debug/debug.min.js +1 -1
- package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +36 -7
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/debug/debug.css +1 -1
- package/es5/plugins/debug/debug.js +1 -1
- package/es5/plugins/debug/debug.min.js +1 -1
- package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
- package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/esm/core/constants.js +1 -1
- package/esm/core/selection/style/api/wrap.d.ts +2 -1
- package/esm/core/selection/style/api/wrap.js +12 -2
- package/esm/core/selection/style/transactions.js +18 -4
- package/esm/plugins/clean-html/helpers/visitor/filters/remove-empty-text-node.js +7 -1
- package/esm/plugins/clean-html/helpers/visitor/filters/remove-inv-text-nodes.js +4 -1
- package/package.json +1 -1
- package/types/core/selection/style/api/wrap.d.ts +2 -1
package/es2021/jodit.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
|
|
3
3
|
* Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
|
|
4
|
-
* Version: v4.13.
|
|
4
|
+
* Version: v4.13.24
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1843,7 +1843,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1843
1843
|
* ```
|
|
1844
1844
|
* @packageDocumentation
|
|
1845
1845
|
* @module constants
|
|
1846
|
-
*/ const APP_VERSION = "4.13.
|
|
1846
|
+
*/ const APP_VERSION = "4.13.24";
|
|
1847
1847
|
// prettier-ignore
|
|
1848
1848
|
const ES = "es2021";
|
|
1849
1849
|
const IS_ES_MODERN = true;
|
|
@@ -11985,6 +11985,7 @@ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument) {
|
|
|
11985
11985
|
"use strict";
|
|
11986
11986
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11987
11987
|
/* harmony export */ FiniteStateMachine: function() { return /* reexport safe */ _finite_state_machine__WEBPACK_IMPORTED_MODULE_1__.FiniteStateMachine; },
|
|
11988
|
+
/* harmony export */ WRAP_NODES: function() { return /* reexport safe */ _wrap__WEBPACK_IMPORTED_MODULE_13__.WRAP_NODES; },
|
|
11988
11989
|
/* harmony export */ extractSelectedPart: function() { return /* reexport safe */ _extract__WEBPACK_IMPORTED_MODULE_0__.extractSelectedPart; },
|
|
11989
11990
|
/* harmony export */ getSuitChild: function() { return /* reexport safe */ _get_suit_child__WEBPACK_IMPORTED_MODULE_2__.getSuitChild; },
|
|
11990
11991
|
/* harmony export */ getSuitParent: function() { return /* reexport safe */ _get_suit_parent__WEBPACK_IMPORTED_MODULE_3__.getSuitParent; },
|
|
@@ -12647,6 +12648,7 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
|
|
|
12647
12648
|
|
|
12648
12649
|
"use strict";
|
|
12649
12650
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
12651
|
+
/* harmony export */ WRAP_NODES: function() { return /* binding */ WRAP_NODES; },
|
|
12650
12652
|
/* harmony export */ wrap: function() { return /* binding */ wrap; }
|
|
12651
12653
|
/* harmony export */ });
|
|
12652
12654
|
/* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27795);
|
|
@@ -12701,7 +12703,7 @@ const WRAP_NODES = new Set([
|
|
|
12701
12703
|
* otherwise it wraps free text in an element.
|
|
12702
12704
|
*/ function findOrCreateWrapper(commitStyle, font, jodit) {
|
|
12703
12705
|
if (commitStyle.elementIsBlock) {
|
|
12704
|
-
const box = jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.up(font, (node)=>jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node) && !jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(node, WRAP_NODES), jodit.editor);
|
|
12706
|
+
const box = jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.up(font, (node)=>jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node) && !jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(node, WRAP_NODES) && !hasBlockChildren(node), jodit.editor);
|
|
12705
12707
|
if (box) {
|
|
12706
12708
|
return box;
|
|
12707
12709
|
}
|
|
@@ -12710,6 +12712,13 @@ const WRAP_NODES = new Set([
|
|
|
12710
12712
|
(0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_1__.attr)(font, 'size', null);
|
|
12711
12713
|
return font;
|
|
12712
12714
|
}
|
|
12715
|
+
/**
|
|
12716
|
+
* A block that itself contains block-level children is a layout container:
|
|
12717
|
+
* replacing it wholesale would merge all its blocks into the new element,
|
|
12718
|
+
* so the selection must be wrapped in a new block inside it instead.
|
|
12719
|
+
*/ function hasBlockChildren(node) {
|
|
12720
|
+
return Array.from(node.childNodes).some((child)=>jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(child));
|
|
12721
|
+
}
|
|
12713
12722
|
|
|
12714
12723
|
|
|
12715
12724
|
/***/ }),
|
|
@@ -13096,13 +13105,25 @@ const transactions = {
|
|
|
13096
13105
|
},
|
|
13097
13106
|
[states.UNWRAP]: {
|
|
13098
13107
|
exec (value) {
|
|
13099
|
-
|
|
13108
|
+
const { element, style, jodit } = value;
|
|
13109
|
+
if (element.attributes.length && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(element, style.element)) {
|
|
13110
|
+
return {
|
|
13111
|
+
...value,
|
|
13112
|
+
next: states.REPLACE_DEFAULT
|
|
13113
|
+
};
|
|
13114
|
+
}
|
|
13115
|
+
// Unwrapping a block inside a container (e.g. an h3 inside a div)
|
|
13116
|
+
// leaves bare inline content there: the wrapNodes plugin restores
|
|
13117
|
+
// paragraphs only at the editor root. Replace such a block with
|
|
13118
|
+
// the default tag instead.
|
|
13119
|
+
const parent = element.parentElement;
|
|
13120
|
+
if (style.elementIsBlock && !style.elementIsDefault && parent && parent !== jodit.editor && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(parent) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(parent, jodit_core_selection_style_api__WEBPACK_IMPORTED_MODULE_3__.WRAP_NODES)) {
|
|
13100
13121
|
return {
|
|
13101
13122
|
...value,
|
|
13102
13123
|
next: states.REPLACE_DEFAULT
|
|
13103
13124
|
};
|
|
13104
13125
|
}
|
|
13105
|
-
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(
|
|
13126
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(element);
|
|
13106
13127
|
return {
|
|
13107
13128
|
...value,
|
|
13108
13129
|
mode: jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_4__.UNWRAP,
|
|
@@ -28476,7 +28497,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
28476
28497
|
* @private
|
|
28477
28498
|
*/ function removeEmptyTextNode(jodit, node, hadEffect, arg, argi, currentNode) {
|
|
28478
28499
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isText(node) && !node.nodeValue) {
|
|
28479
|
-
|
|
28500
|
+
// Restore the caret only while the editor owns focus. The walker runs
|
|
28501
|
+
// asynchronously, so the user may have already tabbed away — moving the
|
|
28502
|
+
// selection here would call `focus()` and steal focus back from the
|
|
28503
|
+
// element the user navigated to (e.g. Shift+Tab accessibility flow).
|
|
28504
|
+
if (node === currentNode && jodit.s.isFocused() && jodit.s.isCollapsed()) {
|
|
28480
28505
|
jodit.s.setCursorAfter(node);
|
|
28481
28506
|
}
|
|
28482
28507
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(node);
|
|
@@ -28519,7 +28544,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
28519
28544
|
return hadEffect;
|
|
28520
28545
|
}
|
|
28521
28546
|
node.nodeValue = node.nodeValue.replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP)(), '');
|
|
28522
|
-
|
|
28547
|
+
// Same guard as in `removeEmptyTextNode`: the walker is asynchronous, so
|
|
28548
|
+
// never move the selection (it re-focuses the editor) once the user has
|
|
28549
|
+
// moved focus elsewhere.
|
|
28550
|
+
if (node === currentNode && jodit.s.isFocused() && jodit.s.isCollapsed()) {
|
|
28523
28551
|
jodit.s.setCursorAfter(node);
|
|
28524
28552
|
}
|
|
28525
28553
|
if (!node.nodeValue) {
|