jodit 4.4.7 → 4.5.1
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 +25 -3
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +2 -2
- package/es2015/jodit.js +82 -40
- package/es2015/jodit.min.js +2 -2
- 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.css +1 -1
- package/es2018/jodit.fat.min.js +2 -2
- package/es2018/jodit.js +82 -40
- package/es2018/jodit.min.js +2 -2
- package/es2018/plugins/debug/debug.css +1 -1
- package/es2018/plugins/debug/debug.js +1 -1
- package/es2018/plugins/debug/debug.min.js +1 -1
- package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
- package/es2018/plugins/speech-recognize/speech-recognize.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 +2 -2
- package/es2021/jodit.js +82 -40
- package/es2021/jodit.min.js +2 -2
- 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 +2 -2
- package/es2021.en/jodit.js +82 -40
- package/es2021.en/jodit.min.js +2 -2
- 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/5.fat.min.js +1 -1
- package/es5/5.min.js +1 -1
- package/es5/975.fat.min.js +1 -1
- package/es5/975.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +82 -40
- 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/esm/core/constants.js +1 -1
- package/esm/core/dom/dom.d.ts +5 -0
- package/esm/core/dom/dom.js +36 -12
- package/esm/plugins/clean-html/helpers/visitor/filters/try-remove-node.js +11 -5
- package/esm/plugins/indent/indent.js +34 -22
- package/package.json +1 -1
- package/types/core/dom/dom.d.ts +5 -0
package/es2021.en/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.
|
|
4
|
+
* Version: v4.5.1
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1743,7 +1743,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1743
1743
|
* Released under MIT see LICENSE.txt in the project root for license information.
|
|
1744
1744
|
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
|
|
1745
1745
|
*/
|
|
1746
|
-
const APP_VERSION = "4.
|
|
1746
|
+
const APP_VERSION = "4.5.1";
|
|
1747
1747
|
// prettier-ignore
|
|
1748
1748
|
const ES = "es2021";
|
|
1749
1749
|
const IS_ES_MODERN = true;
|
|
@@ -2884,28 +2884,25 @@ class Dom {
|
|
|
2884
2884
|
}
|
|
2885
2885
|
}
|
|
2886
2886
|
/**
|
|
2887
|
-
* Wrap all inline siblings
|
|
2887
|
+
* Wrap all inline next siblings
|
|
2888
2888
|
*/
|
|
2889
|
-
static
|
|
2890
|
-
let tmp
|
|
2889
|
+
static wrapNextInline(current, tag, editor) {
|
|
2890
|
+
let tmp;
|
|
2891
|
+
const first = current;
|
|
2892
|
+
let last = current;
|
|
2891
2893
|
editor.s.save();
|
|
2892
2894
|
let needFindNext = false;
|
|
2893
|
-
do {
|
|
2894
|
-
needFindNext = false;
|
|
2895
|
-
tmp = first.previousSibling;
|
|
2896
|
-
if (tmp && !Dom.isBlock(tmp)) {
|
|
2897
|
-
needFindNext = true;
|
|
2898
|
-
first = tmp;
|
|
2899
|
-
}
|
|
2900
|
-
} while (needFindNext);
|
|
2901
2895
|
do {
|
|
2902
2896
|
needFindNext = false;
|
|
2903
2897
|
tmp = last.nextSibling;
|
|
2904
|
-
if (tmp && !Dom.isBlock(tmp)) {
|
|
2898
|
+
if (tmp && !Dom.isBlock(tmp) && !Dom.isTag(tmp, 'br')) {
|
|
2905
2899
|
needFindNext = true;
|
|
2906
2900
|
last = tmp;
|
|
2907
2901
|
}
|
|
2908
2902
|
} while (needFindNext);
|
|
2903
|
+
return Dom.__wrapElements(tag, editor, first, last);
|
|
2904
|
+
}
|
|
2905
|
+
static __wrapElements(tag, editor, first, last) {
|
|
2909
2906
|
const wrapper = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(tag) ? editor.createInside.element(tag) : tag;
|
|
2910
2907
|
if (first.parentNode) {
|
|
2911
2908
|
first.parentNode.insertBefore(wrapper, first);
|
|
@@ -2922,6 +2919,33 @@ class Dom {
|
|
|
2922
2919
|
editor.s.restore();
|
|
2923
2920
|
return wrapper;
|
|
2924
2921
|
}
|
|
2922
|
+
/**
|
|
2923
|
+
* Wrap all inline siblings
|
|
2924
|
+
*/
|
|
2925
|
+
static wrapInline(current, tag, editor) {
|
|
2926
|
+
let tmp;
|
|
2927
|
+
let first = current;
|
|
2928
|
+
let last = current;
|
|
2929
|
+
editor.s.save();
|
|
2930
|
+
let needFindNext = false;
|
|
2931
|
+
do {
|
|
2932
|
+
needFindNext = false;
|
|
2933
|
+
tmp = first.previousSibling;
|
|
2934
|
+
if (tmp && !Dom.isBlock(tmp)) {
|
|
2935
|
+
needFindNext = true;
|
|
2936
|
+
first = tmp;
|
|
2937
|
+
}
|
|
2938
|
+
} while (needFindNext);
|
|
2939
|
+
do {
|
|
2940
|
+
needFindNext = false;
|
|
2941
|
+
tmp = last.nextSibling;
|
|
2942
|
+
if (tmp && !Dom.isBlock(tmp)) {
|
|
2943
|
+
needFindNext = true;
|
|
2944
|
+
last = tmp;
|
|
2945
|
+
}
|
|
2946
|
+
} while (needFindNext);
|
|
2947
|
+
return Dom.__wrapElements(tag, editor, first, last);
|
|
2948
|
+
}
|
|
2925
2949
|
/**
|
|
2926
2950
|
* Wrap node inside another node
|
|
2927
2951
|
*/
|
|
@@ -27796,12 +27820,18 @@ function tryRemoveNode(jodit, nodeElm, hadEffect, allowTags, denyTags, currentSe
|
|
|
27796
27820
|
* @private
|
|
27797
27821
|
*/
|
|
27798
27822
|
function isRemovableNode(jodit, node, current, allow, deny) {
|
|
27799
|
-
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(node)
|
|
27800
|
-
(
|
|
27801
|
-
|
|
27823
|
+
if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(node)) {
|
|
27824
|
+
if (allow && !allow[node.nodeName]) {
|
|
27825
|
+
return true;
|
|
27826
|
+
}
|
|
27827
|
+
if (!allow && deny && deny[node.nodeName]) {
|
|
27828
|
+
return true;
|
|
27829
|
+
}
|
|
27802
27830
|
}
|
|
27803
|
-
|
|
27804
|
-
|
|
27831
|
+
if (!jodit.o.cleanHTML.removeEmptyElements) {
|
|
27832
|
+
return false;
|
|
27833
|
+
}
|
|
27834
|
+
return (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isElement(node) &&
|
|
27805
27835
|
node.nodeName.match(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_INLINE) != null &&
|
|
27806
27836
|
!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTemporary(node) &&
|
|
27807
27837
|
(0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__/* .trim */ .Bq)(node.innerHTML).length === 0 &&
|
|
@@ -32682,7 +32712,7 @@ const getKey = (direction, box) => `${jodit_core_dom_dom__WEBPACK_IMPORTED_MODUL
|
|
|
32682
32712
|
/* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
|
|
32683
32713
|
/* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71842);
|
|
32684
32714
|
/* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56298);
|
|
32685
|
-
/* harmony import */ var
|
|
32715
|
+
/* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97369);
|
|
32686
32716
|
/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97767);
|
|
32687
32717
|
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3392);
|
|
32688
32718
|
/*!
|
|
@@ -32696,6 +32726,22 @@ const getKey = (direction, box) => `${jodit_core_dom_dom__WEBPACK_IMPORTED_MODUL
|
|
|
32696
32726
|
|
|
32697
32727
|
|
|
32698
32728
|
|
|
32729
|
+
const applyIndentToBox = (processedElements, currentBox, editor, command) => {
|
|
32730
|
+
if (!currentBox) {
|
|
32731
|
+
return;
|
|
32732
|
+
}
|
|
32733
|
+
if (processedElements.has(currentBox)) {
|
|
32734
|
+
return;
|
|
32735
|
+
}
|
|
32736
|
+
const key = (0,_helpers__WEBPACK_IMPORTED_MODULE_5__/* .getKey */ .i)(editor.o.direction, currentBox);
|
|
32737
|
+
processedElements.add(currentBox);
|
|
32738
|
+
let value = currentBox.style[key] ? parseInt(currentBox.style[key], 10) : 0;
|
|
32739
|
+
value += editor.o.indentMargin * (command === 'outdent' ? -1 : 1);
|
|
32740
|
+
currentBox.style[key] = value > 0 ? value + 'px' : '';
|
|
32741
|
+
if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.attr)(currentBox, 'style')) {
|
|
32742
|
+
(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.attr)(currentBox, 'style', null);
|
|
32743
|
+
}
|
|
32744
|
+
};
|
|
32699
32745
|
/**
|
|
32700
32746
|
* Indents the line containing the selection or insertion point.
|
|
32701
32747
|
*/
|
|
@@ -32709,46 +32755,42 @@ function indent(editor) {
|
|
|
32709
32755
|
name: 'outdent',
|
|
32710
32756
|
group: 'indent'
|
|
32711
32757
|
});
|
|
32712
|
-
const
|
|
32713
|
-
const processedElements =
|
|
32758
|
+
const indentCommand = (command) => {
|
|
32759
|
+
const processedElements = new Set();
|
|
32760
|
+
const { enter, enterBlock } = editor.o;
|
|
32761
|
+
const isBrMode = enter.toLowerCase() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.BR;
|
|
32762
|
+
const current = editor.s.current();
|
|
32763
|
+
if (isBrMode && editor.s.isCollapsed()) {
|
|
32764
|
+
if (current) {
|
|
32765
|
+
const box = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.wrapNextInline(current, enterBlock, editor);
|
|
32766
|
+
applyIndentToBox(processedElements, box, editor, command);
|
|
32767
|
+
return false;
|
|
32768
|
+
}
|
|
32769
|
+
}
|
|
32714
32770
|
editor.s.eachSelection((current) => {
|
|
32715
32771
|
editor.s.save();
|
|
32716
32772
|
let currentBox = current
|
|
32717
32773
|
? jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.up(current, jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isBlock, editor.editor)
|
|
32718
32774
|
: false;
|
|
32719
|
-
const { enter } = editor.o;
|
|
32720
32775
|
if (!currentBox && current) {
|
|
32721
|
-
currentBox = jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.wrapInline
|
|
32776
|
+
currentBox = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.call)(!isBrMode ? jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.wrapInline : jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.wrapNextInline, current, !isBrMode ? enter.toLowerCase() : enterBlock, editor);
|
|
32722
32777
|
}
|
|
32723
32778
|
if (!currentBox) {
|
|
32724
32779
|
editor.s.restore();
|
|
32725
32780
|
return false;
|
|
32726
32781
|
}
|
|
32727
|
-
|
|
32728
|
-
if (currentBox && !alreadyIndented) {
|
|
32729
|
-
const key = (0,_helpers__WEBPACK_IMPORTED_MODULE_5__/* .getKey */ .i)(editor.o.direction, currentBox);
|
|
32730
|
-
processedElements.push(currentBox);
|
|
32731
|
-
let value = currentBox.style[key]
|
|
32732
|
-
? parseInt(currentBox.style[key], 10)
|
|
32733
|
-
: 0;
|
|
32734
|
-
value +=
|
|
32735
|
-
editor.o.indentMargin * (command === 'outdent' ? -1 : 1);
|
|
32736
|
-
currentBox.style[key] = value > 0 ? value + 'px' : '';
|
|
32737
|
-
if (!(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(currentBox, 'style')) {
|
|
32738
|
-
(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.attr)(currentBox, 'style', null);
|
|
32739
|
-
}
|
|
32740
|
-
}
|
|
32782
|
+
applyIndentToBox(processedElements, currentBox, editor, command);
|
|
32741
32783
|
editor.s.restore();
|
|
32742
32784
|
});
|
|
32743
32785
|
editor.synchronizeValues();
|
|
32744
32786
|
return false;
|
|
32745
32787
|
};
|
|
32746
32788
|
editor.registerCommand('indent', {
|
|
32747
|
-
exec:
|
|
32789
|
+
exec: indentCommand,
|
|
32748
32790
|
hotkeys: ['ctrl+]', 'cmd+]']
|
|
32749
32791
|
});
|
|
32750
32792
|
editor.registerCommand('outdent', {
|
|
32751
|
-
exec:
|
|
32793
|
+
exec: indentCommand,
|
|
32752
32794
|
hotkeys: ['ctrl+[', 'cmd+[']
|
|
32753
32795
|
});
|
|
32754
32796
|
}
|