jodit 4.14.4 → 4.14.6
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 +15 -0
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.js +9 -9
- package/es2015/jodit.js +49 -34
- package/es2015/jodit.min.js +9 -9
- 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 +9 -9
- package/es2018/jodit.min.js +9 -9
- 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 +10 -10
- package/es2021/jodit.js +49 -34
- package/es2021/jodit.min.js +10 -10
- 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 +10 -10
- package/es2021.en/jodit.js +49 -34
- package/es2021.en/jodit.min.js +10 -10
- 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 +49 -34
- 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/dom/dom.js +2 -2
- package/esm/core/global.js +1 -1
- package/esm/core/helpers/checker/has-browser-color-picker.js +1 -1
- package/esm/core/helpers/html/apply-styles.js +1 -1
- package/esm/core/helpers/string/fuzzy-search-index.js +1 -1
- package/esm/core/helpers/utils/set.js +2 -2
- package/esm/core/storage/async-storage.js +1 -3
- package/esm/core/ui/popup/popup.js +1 -1
- package/esm/modules/image-editor/image-editor.js +1 -1
- package/esm/modules/table/table.js +2 -2
- package/esm/modules/widget/file-selector/file-selector.js +0 -1
- package/esm/plugins/ai-assistant/langs/en.js +1 -1
- package/esm/plugins/ai-assistant/langs/es.js +1 -1
- package/esm/plugins/backspace/cases/check-remove-char.js +0 -1
- package/esm/plugins/clean-html/helpers/visitor/filters/replace-old-tags.js +0 -1
- package/esm/plugins/color/config.js +1 -1
- package/esm/plugins/copy-format/langs/ar.js +1 -1
- package/esm/plugins/copy-format/langs/cs_cz.js +1 -1
- package/esm/plugins/copy-format/langs/de.js +1 -1
- package/esm/plugins/copy-format/langs/es.js +1 -1
- package/esm/plugins/copy-format/langs/fa.js +1 -1
- package/esm/plugins/copy-format/langs/fi.js +1 -1
- package/esm/plugins/copy-format/langs/fr.js +1 -1
- package/esm/plugins/copy-format/langs/he.js +1 -1
- package/esm/plugins/copy-format/langs/hu.js +1 -1
- package/esm/plugins/copy-format/langs/id.js +1 -1
- package/esm/plugins/copy-format/langs/it.js +1 -1
- package/esm/plugins/copy-format/langs/ja.js +1 -1
- package/esm/plugins/copy-format/langs/ko.js +1 -1
- package/esm/plugins/copy-format/langs/mn.js +1 -1
- package/esm/plugins/copy-format/langs/nl.js +1 -1
- package/esm/plugins/copy-format/langs/pl.js +1 -1
- package/esm/plugins/copy-format/langs/pt_br.js +1 -1
- package/esm/plugins/copy-format/langs/ru.js +1 -1
- package/esm/plugins/copy-format/langs/tr.js +1 -1
- package/esm/plugins/copy-format/langs/zh_cn.js +1 -1
- package/esm/plugins/copy-format/langs/zh_tw.js +1 -1
- package/esm/plugins/iframe/iframe.js +28 -9
- package/esm/plugins/line-height/langs/ar.js +1 -1
- package/esm/plugins/line-height/langs/cs_cz.js +1 -1
- package/esm/plugins/line-height/langs/de.js +1 -1
- package/esm/plugins/line-height/langs/es.js +1 -1
- package/esm/plugins/line-height/langs/fa.js +1 -1
- package/esm/plugins/line-height/langs/fi.js +1 -1
- package/esm/plugins/line-height/langs/fr.js +1 -1
- package/esm/plugins/line-height/langs/he.js +1 -1
- package/esm/plugins/line-height/langs/hu.js +1 -1
- package/esm/plugins/line-height/langs/id.js +1 -1
- package/esm/plugins/line-height/langs/it.js +1 -1
- package/esm/plugins/line-height/langs/ja.js +1 -1
- package/esm/plugins/line-height/langs/ko.js +1 -1
- package/esm/plugins/line-height/langs/mn.js +1 -1
- package/esm/plugins/line-height/langs/nl.js +1 -1
- package/esm/plugins/line-height/langs/pl.js +1 -1
- package/esm/plugins/line-height/langs/pt_br.js +1 -1
- package/esm/plugins/line-height/langs/ru.js +1 -1
- package/esm/plugins/line-height/langs/sk.js +1 -1
- package/esm/plugins/line-height/langs/tr.js +1 -1
- package/esm/plugins/line-height/langs/ua.js +1 -1
- package/esm/plugins/line-height/langs/zh_cn.js +1 -1
- package/esm/plugins/line-height/langs/zh_tw.js +1 -1
- package/esm/plugins/resize-cells/resize-cells.js +2 -2
- package/esm/plugins/resizer/resizer.js +1 -1
- package/esm/plugins/search/helpers/sentence-finder.js +1 -1
- package/esm/plugins/source/source.js +1 -1
- package/esm/plugins/speech-recognize/langs/ar.js +1 -1
- package/esm/plugins/speech-recognize/langs/cs_cz.js +1 -1
- package/esm/plugins/speech-recognize/langs/de.js +1 -1
- package/esm/plugins/speech-recognize/langs/es.js +1 -1
- package/esm/plugins/speech-recognize/langs/fa.js +1 -1
- package/esm/plugins/speech-recognize/langs/fi.js +1 -1
- package/esm/plugins/speech-recognize/langs/fr.js +1 -1
- package/esm/plugins/speech-recognize/langs/he.js +1 -1
- package/esm/plugins/speech-recognize/langs/hu.js +1 -1
- package/esm/plugins/speech-recognize/langs/id.js +1 -1
- package/esm/plugins/speech-recognize/langs/it.js +1 -1
- package/esm/plugins/speech-recognize/langs/ja.js +1 -1
- package/esm/plugins/speech-recognize/langs/ko.js +1 -1
- package/esm/plugins/speech-recognize/langs/mn.js +1 -1
- package/esm/plugins/speech-recognize/langs/nl.js +1 -1
- package/esm/plugins/speech-recognize/langs/no.js +1 -1
- package/esm/plugins/speech-recognize/langs/pl.js +1 -1
- package/esm/plugins/speech-recognize/langs/pt_br.js +1 -1
- package/esm/plugins/speech-recognize/langs/ru.js +1 -1
- package/esm/plugins/speech-recognize/langs/sk.js +1 -1
- package/esm/plugins/speech-recognize/langs/tr.js +1 -1
- package/esm/plugins/speech-recognize/langs/ua.js +1 -1
- package/esm/plugins/speech-recognize/langs/zh_cn.js +1 -1
- package/esm/plugins/speech-recognize/langs/zh_tw.js +1 -1
- package/esm/plugins/spellcheck/langs/ar.js +1 -1
- package/esm/plugins/spellcheck/langs/cs_cz.js +1 -1
- package/esm/plugins/spellcheck/langs/de.js +1 -1
- package/esm/plugins/spellcheck/langs/es.js +1 -1
- package/esm/plugins/spellcheck/langs/fa.js +1 -1
- package/esm/plugins/spellcheck/langs/fi.js +1 -1
- package/esm/plugins/spellcheck/langs/fr.js +1 -1
- package/esm/plugins/spellcheck/langs/he.js +1 -1
- package/esm/plugins/spellcheck/langs/hu.js +1 -1
- package/esm/plugins/spellcheck/langs/id.js +1 -1
- package/esm/plugins/spellcheck/langs/it.js +1 -1
- package/esm/plugins/spellcheck/langs/ja.js +1 -1
- package/esm/plugins/spellcheck/langs/ko.js +1 -1
- package/esm/plugins/spellcheck/langs/mn.js +1 -1
- package/esm/plugins/spellcheck/langs/nl.js +1 -1
- package/esm/plugins/spellcheck/langs/no.js +1 -1
- package/esm/plugins/spellcheck/langs/pl.js +1 -1
- package/esm/plugins/spellcheck/langs/pt_br.js +1 -1
- package/esm/plugins/spellcheck/langs/ru.js +1 -1
- package/esm/plugins/spellcheck/langs/sk.js +1 -1
- package/esm/plugins/spellcheck/langs/tr.js +1 -1
- package/esm/plugins/spellcheck/langs/ua.js +1 -1
- package/esm/plugins/spellcheck/langs/zh_cn.js +1 -1
- package/esm/plugins/spellcheck/langs/zh_tw.js +1 -1
- package/esm/plugins/symbols/langs/ar.js +1 -1
- package/esm/plugins/symbols/langs/cs_cz.js +1 -1
- package/esm/plugins/symbols/langs/de.js +1 -1
- package/esm/plugins/symbols/langs/es.js +1 -1
- package/esm/plugins/symbols/langs/fa.js +1 -1
- package/esm/plugins/symbols/langs/fi.js +1 -1
- package/esm/plugins/symbols/langs/fr.js +1 -1
- package/esm/plugins/symbols/langs/he.js +1 -1
- package/esm/plugins/symbols/langs/hu.js +1 -1
- package/esm/plugins/symbols/langs/id.js +1 -1
- package/esm/plugins/symbols/langs/it.js +1 -1
- package/esm/plugins/symbols/langs/ja.js +1 -1
- package/esm/plugins/symbols/langs/ko.js +1 -1
- package/esm/plugins/symbols/langs/mn.js +1 -1
- package/esm/plugins/symbols/langs/nl.js +1 -1
- package/esm/plugins/symbols/langs/pl.js +1 -1
- package/esm/plugins/symbols/langs/pt_br.js +1 -1
- package/esm/plugins/symbols/langs/ru.js +1 -1
- package/esm/plugins/symbols/langs/tr.js +1 -1
- package/esm/plugins/symbols/langs/ua.js +1 -1
- package/esm/plugins/symbols/langs/zh_cn.js +1 -1
- package/esm/plugins/symbols/langs/zh_tw.js +1 -1
- package/esm/plugins/table/config.js +1 -1
- package/package.json +4 -1
package/es2015/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.14.
|
|
4
|
+
* Version: v4.14.6
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1785,7 +1785,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1785
1785
|
* ```
|
|
1786
1786
|
* @packageDocumentation
|
|
1787
1787
|
* @module constants
|
|
1788
|
-
*/ const APP_VERSION = "4.14.
|
|
1788
|
+
*/ const APP_VERSION = "4.14.6";
|
|
1789
1789
|
// prettier-ignore
|
|
1790
1790
|
const ES = "es2015";
|
|
1791
1791
|
const IS_ES_MODERN = true;
|
|
@@ -3085,7 +3085,7 @@ const TEMP_ELEMENT_REG_EXP = new RegExp(`<([a-z]+)[^>]+${jodit_core_constants__W
|
|
|
3085
3085
|
const first = current;
|
|
3086
3086
|
let last = current;
|
|
3087
3087
|
editor.s.save();
|
|
3088
|
-
let needFindNext
|
|
3088
|
+
let needFindNext;
|
|
3089
3089
|
do {
|
|
3090
3090
|
needFindNext = false;
|
|
3091
3091
|
tmp = last.nextSibling;
|
|
@@ -3120,7 +3120,7 @@ const TEMP_ELEMENT_REG_EXP = new RegExp(`<([a-z]+)[^>]+${jodit_core_constants__W
|
|
|
3120
3120
|
let first = current;
|
|
3121
3121
|
let last = current;
|
|
3122
3122
|
editor.s.save();
|
|
3123
|
-
let needFindNext
|
|
3123
|
+
let needFindNext;
|
|
3124
3124
|
do {
|
|
3125
3125
|
needFindNext = false;
|
|
3126
3126
|
tmp = first.previousSibling;
|
|
@@ -4800,7 +4800,7 @@ const boxes = new WeakMap();
|
|
|
4800
4800
|
const name = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__.isString)(classFunc) ? classFunc : classFunc ? (0,jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_6__.getClassName)(classFunc.prototype) : 'jodit-utils';
|
|
4801
4801
|
const data = boxes.get(jodit) || {}, key = name + tag;
|
|
4802
4802
|
const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_2__.isViewObject)(jodit) ? jodit : jodit.j;
|
|
4803
|
-
let body
|
|
4803
|
+
let body;
|
|
4804
4804
|
if (!data[key]) {
|
|
4805
4805
|
let c = view.c;
|
|
4806
4806
|
body = getPopupViewRoot(view.o, view.container, jodit.od.body);
|
|
@@ -5049,7 +5049,7 @@ const boxes = new WeakMap();
|
|
|
5049
5049
|
/**
|
|
5050
5050
|
* Check if browser has a color picker (a new HTML5 attribute for input tag)
|
|
5051
5051
|
*/ function hasBrowserColorPicker() {
|
|
5052
|
-
let supportsColor
|
|
5052
|
+
let supportsColor;
|
|
5053
5053
|
try {
|
|
5054
5054
|
const a = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('input');
|
|
5055
5055
|
a.type = 'color';
|
|
@@ -5883,7 +5883,7 @@ function normalizeCSS(s) {
|
|
|
5883
5883
|
const iframe = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('iframe');
|
|
5884
5884
|
(0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_4__.css)(iframe, 'display', 'none');
|
|
5885
5885
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.append(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.body, iframe);
|
|
5886
|
-
let convertedString = '', collection
|
|
5886
|
+
let convertedString = '', collection;
|
|
5887
5887
|
try {
|
|
5888
5888
|
const iframeDoc = iframe.contentDocument || (iframe.contentWindow ? iframe.contentWindow.document : null);
|
|
5889
5889
|
if (iframeDoc) {
|
|
@@ -7222,7 +7222,7 @@ function size(subject) {
|
|
|
7222
7222
|
* Finds the position of the substring in the string, if any, and returns the length of the found subsequence.
|
|
7223
7223
|
* Unlike `indexOf` ignores INVISIBLE_SPACE and may fail at `maxDistance` characters
|
|
7224
7224
|
*/ function fuzzySearchIndex(needle, haystack, offset = 0, maxDistance = 1) {
|
|
7225
|
-
let i = 0, j
|
|
7225
|
+
let i = 0, j, startIndex = -1, len = 0, errorDistance = 0;
|
|
7226
7226
|
for(j = offset; i < needle.length && j < haystack.length;){
|
|
7227
7227
|
if (needle[i].toLowerCase() === haystack[j].toLowerCase()) {
|
|
7228
7228
|
i++;
|
|
@@ -9450,9 +9450,9 @@ const $$temp = ()=>{
|
|
|
9450
9450
|
if (parts.some(_is_unsafe_proto_key__WEBPACK_IMPORTED_MODULE_4__.isUnsafeProtoKey)) {
|
|
9451
9451
|
return;
|
|
9452
9452
|
}
|
|
9453
|
-
let result = obj
|
|
9453
|
+
let result = obj;
|
|
9454
9454
|
for(let i = 0; i < parts.length - 1; i += 1){
|
|
9455
|
-
key = parts[i];
|
|
9455
|
+
const key = parts[i];
|
|
9456
9456
|
if (!(0,jodit_core_helpers_checker_is_array__WEBPACK_IMPORTED_MODULE_0__.isArray)(result[key]) && !(0,jodit_core_helpers_checker_is_plain_object__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(result[key])) {
|
|
9457
9457
|
result[key] = (0,jodit_core_helpers_checker_is_numeric__WEBPACK_IMPORTED_MODULE_1__.isNumeric)(parts[i + 1]) ? [] : {};
|
|
9458
9458
|
}
|
|
@@ -13545,7 +13545,6 @@ class AsyncStorage {
|
|
|
13545
13545
|
}
|
|
13546
13546
|
static makeStorage(persistentOrStrategy = false, suffix, options) {
|
|
13547
13547
|
let provider = undefined;
|
|
13548
|
-
let storage = null;
|
|
13549
13548
|
// An explicit `defaultProvider` overrides the strategy-based selection
|
|
13550
13549
|
// below and decides which provider backs the storage.
|
|
13551
13550
|
const defaultProvider = options === null || options === void 0 ? void 0 : options.defaultProvider;
|
|
@@ -13570,8 +13569,7 @@ class AsyncStorage {
|
|
|
13570
13569
|
if (!provider) {
|
|
13571
13570
|
provider = new _engines_memory_storage_provider__WEBPACK_IMPORTED_MODULE_5__.MemoryStorageProvider();
|
|
13572
13571
|
}
|
|
13573
|
-
|
|
13574
|
-
return storage;
|
|
13572
|
+
return new AsyncStorage(Promise.resolve(provider), suffix);
|
|
13575
13573
|
}
|
|
13576
13574
|
constructor(provider, suffix){
|
|
13577
13575
|
;(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "provider", void 0);
|
|
@@ -16821,7 +16819,7 @@ class Popup extends jodit_core_ui_group_group__WEBPACK_IMPORTED_MODULE_12__.UIGr
|
|
|
16821
16819
|
};
|
|
16822
16820
|
};
|
|
16823
16821
|
const getMatchStrategy = (inBox)=>{
|
|
16824
|
-
let strategy
|
|
16822
|
+
let strategy;
|
|
16825
16823
|
if (Popup.boxInView(getPointByStrategy(defaultStrategy), inBox)) {
|
|
16826
16824
|
strategy = defaultStrategy;
|
|
16827
16825
|
} else {
|
|
@@ -22833,7 +22831,7 @@ class ImageEditor extends jodit_core_component__WEBPACK_IMPORTED_MODULE_2__.View
|
|
|
22833
22831
|
h: 0
|
|
22834
22832
|
}), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "calcCropBox", ()=>{
|
|
22835
22833
|
const node = this.crop_box.parentNode, w = node.offsetWidth * 0.8, h = node.offsetHeight * 0.8;
|
|
22836
|
-
let wn
|
|
22834
|
+
let wn, hn;
|
|
22837
22835
|
const { naturalWidth: nw, naturalHeight: nh } = this;
|
|
22838
22836
|
if (w > nw && h > nh) {
|
|
22839
22837
|
wn = nw;
|
|
@@ -24034,8 +24032,8 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_2__.ViewCompon
|
|
|
24034
24032
|
}
|
|
24035
24033
|
}
|
|
24036
24034
|
static __removeExtraRowspans(box, marked) {
|
|
24037
|
-
let i
|
|
24038
|
-
let j
|
|
24035
|
+
let i;
|
|
24036
|
+
let j;
|
|
24039
24037
|
for(i = 0; i < box.length; i += 1){
|
|
24040
24038
|
let min = 1000000;
|
|
24041
24039
|
let not = false;
|
|
@@ -26190,7 +26188,6 @@ jodit_core_ui__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', (_palette_svg__WE
|
|
|
26190
26188
|
button
|
|
26191
26189
|
])
|
|
26192
26190
|
]);
|
|
26193
|
-
currentImage = null;
|
|
26194
26191
|
if (elm && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isText(elm) && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isComment(elm) && (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(elm, 'img') || (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.$$)('img', elm).length)) {
|
|
26195
26192
|
currentImage = elm.tagName === 'IMG' ? elm : (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.$$)('img', elm)[0];
|
|
26196
26193
|
val(form.container, 'url', (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.attr)(currentImage, 'src'));
|
|
@@ -27611,7 +27608,6 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
|
|
|
27611
27608
|
}
|
|
27612
27609
|
if (removeNeighbor) {
|
|
27613
27610
|
jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(removeNeighbor);
|
|
27614
|
-
removeNeighbor = null;
|
|
27615
27611
|
}
|
|
27616
27612
|
if (charRemoved) {
|
|
27617
27613
|
removeEmptyForParent(fakeNode, 'a');
|
|
@@ -29213,7 +29209,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29213
29209
|
*/ function replaceOldTags(jodit, nodeElm, hadEffect) {
|
|
29214
29210
|
const newNodeElm = replaceIfMatched(jodit, nodeElm, jodit.o.cleanHTML.replaceOldTags);
|
|
29215
29211
|
if (nodeElm !== newNodeElm) {
|
|
29216
|
-
nodeElm = newNodeElm;
|
|
29217
29212
|
return true;
|
|
29218
29213
|
}
|
|
29219
29214
|
return hadEffect;
|
|
@@ -29875,7 +29870,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__.Config.prototype.controls.brush = {
|
|
|
29875
29870
|
button.state.activated = false;
|
|
29876
29871
|
},
|
|
29877
29872
|
popup: (editor, current, close, button)=>{
|
|
29878
|
-
let colorHEX = '', bg_color = '', tabs
|
|
29873
|
+
let colorHEX = '', bg_color = '', tabs, currentElement = null;
|
|
29879
29874
|
if (current && current !== editor.editor && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isNode(current)) {
|
|
29880
29875
|
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(current) && editor.s.isCollapsed() && !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(current, new Set([
|
|
29881
29876
|
'br',
|
|
@@ -32861,6 +32856,25 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
|
32861
32856
|
}
|
|
32862
32857
|
return html;
|
|
32863
32858
|
};
|
|
32859
|
+
/**
|
|
32860
|
+
* Replace the whole iframe document with the given HTML.
|
|
32861
|
+
*
|
|
32862
|
+
* The markup is parsed in an inert document first (no browsing
|
|
32863
|
+
* context: scripts do not run, sub-resources are not fetched),
|
|
32864
|
+
* sanitized there via `safeHTML`, and only then moved into the
|
|
32865
|
+
* live document. `document.write` on the live document would
|
|
32866
|
+
* execute inline scripts and event handlers while parsing,
|
|
32867
|
+
* before the sanitizer had a chance to strip them, and the
|
|
32868
|
+
* iframe is same-origin with the host page by default.
|
|
32869
|
+
* A `<script>` the cleaner is configured to keep still never
|
|
32870
|
+
* executes: nodes coming from an inert parser are flagged
|
|
32871
|
+
* "already started", exactly like `innerHTML`.
|
|
32872
|
+
* See GHSA-w3xv-x3fm-59ph.
|
|
32873
|
+
*/ const replaceDocument = (html)=>{
|
|
32874
|
+
const inert = new DOMParser().parseFromString(html, 'text/html');
|
|
32875
|
+
editor.e.fire('safeHTML', inert.documentElement);
|
|
32876
|
+
doc.replaceChild(doc.adoptNode(inert.documentElement), doc.documentElement);
|
|
32877
|
+
};
|
|
32864
32878
|
if (docMode) {
|
|
32865
32879
|
const tag = editor.element.tagName;
|
|
32866
32880
|
if (tag !== 'TEXTAREA' && tag !== 'INPUT') {
|
|
@@ -32873,19 +32887,20 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.iframeSandbox = null;
|
|
|
32873
32887
|
if (/<(html|body)/i.test(value)) {
|
|
32874
32888
|
const old = doc.documentElement.outerHTML;
|
|
32875
32889
|
if (clearMarkers(old) !== clearMarkers(value)) {
|
|
32876
|
-
|
|
32877
|
-
doc.write(editor.o.iframeDoctype + clearMarkers(value));
|
|
32878
|
-
doc.close();
|
|
32890
|
+
replaceDocument(clearMarkers(value));
|
|
32879
32891
|
editor.editor = doc.body;
|
|
32880
|
-
editor.e.fire('safeHTML', editor.editor);
|
|
32881
32892
|
toggleEditable();
|
|
32882
32893
|
editor.e.fire('prepareWYSIWYGEditor');
|
|
32883
32894
|
editor.e.stopPropagation('beforeSetNativeEditorValue');
|
|
32884
32895
|
}
|
|
32885
|
-
|
|
32886
|
-
doc.body.innerHTML = value;
|
|
32896
|
+
return true;
|
|
32887
32897
|
}
|
|
32888
|
-
|
|
32898
|
+
// A partial value goes through the regular
|
|
32899
|
+
// path: `clean-html` sanitizes it and the
|
|
32900
|
+
// editor assigns it to `doc.body` via
|
|
32901
|
+
// `innerHTML`. Writing the raw value here
|
|
32902
|
+
// would fire its event handlers first.
|
|
32903
|
+
return false;
|
|
32889
32904
|
}, {
|
|
32890
32905
|
top: true
|
|
32891
32906
|
});
|
|
@@ -39094,11 +39109,11 @@ const key = 'table_processor_observer-resize';
|
|
|
39094
39109
|
this.startX = event.clientX;
|
|
39095
39110
|
this.j.lock(key);
|
|
39096
39111
|
this.resizeHandler.classList.add('jodit-table-resizer_moved');
|
|
39097
|
-
let box
|
|
39112
|
+
let box;
|
|
39098
39113
|
this.minX = 0;
|
|
39099
39114
|
this.maxX = 1000000;
|
|
39100
39115
|
if (this.wholeTable != null) {
|
|
39101
|
-
tableBox = this.workTable.parentNode.getBoundingClientRect();
|
|
39116
|
+
const tableBox = this.workTable.parentNode.getBoundingClientRect();
|
|
39102
39117
|
this.minX = tableBox.left;
|
|
39103
39118
|
this.maxX = this.minX + tableBox.width;
|
|
39104
39119
|
} else {
|
|
@@ -39634,7 +39649,7 @@ const keyBInd = '__jodit-resizer_binded';
|
|
|
39634
39649
|
diff_y = this.pointerY - this.startY;
|
|
39635
39650
|
}
|
|
39636
39651
|
const className = this.handle.className;
|
|
39637
|
-
let new_w
|
|
39652
|
+
let new_w, new_h;
|
|
39638
39653
|
const uar = this.j.o.resizer.useAspectRatio;
|
|
39639
39654
|
if (!this.isAltMode && (uar === true || uar && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.isTag(this.element, uar))) {
|
|
39640
39655
|
if (diff_x) {
|
|
@@ -40199,7 +40214,7 @@ class SentenceFinder {
|
|
|
40199
40214
|
}
|
|
40200
40215
|
ranges(needle, position = 0) {
|
|
40201
40216
|
const results = [];
|
|
40202
|
-
let index = position, len
|
|
40217
|
+
let index = position, len, startQueueIndex = 0;
|
|
40203
40218
|
// Find all ranges in substring
|
|
40204
40219
|
do {
|
|
40205
40220
|
[index, len] = this.searchIndex(needle, this.value, index);
|
|
@@ -42391,7 +42406,7 @@ class SourceEditor {
|
|
|
42391
42406
|
return;
|
|
42392
42407
|
}
|
|
42393
42408
|
let value = this.getMirrorValue();
|
|
42394
|
-
let selectionStart
|
|
42409
|
+
let selectionStart, selectionEnd;
|
|
42395
42410
|
try {
|
|
42396
42411
|
value = value.replace(/<span[^>]+data-jodit-selection_marker=(["'])start\1[^>]*>[<>]*?<\/span>/gim, this.tempMarkerStart).replace(/<span[^>]+data-jodit-selection_marker=(["'])end\1[^>]*>[<>]*?<\/span>/gim, this.tempMarkerEnd);
|
|
42397
42412
|
if (!this.j.o.editHTMLDocumentMode && this.j.o.beautifyHTML) {
|
|
@@ -44647,7 +44662,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
|
|
|
44647
44662
|
return;
|
|
44648
44663
|
}
|
|
44649
44664
|
const index = parseInt((0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_3__.attr)(e.target, '-index') || '0', 10), row = Math.floor(index / default_cols_count), col = index % default_cols_count;
|
|
44650
|
-
let nextIndex
|
|
44665
|
+
let nextIndex;
|
|
44651
44666
|
switch(e.key){
|
|
44652
44667
|
case jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_LEFT:
|
|
44653
44668
|
nextIndex = col > 0 ? index - 1 : index;
|