jodit 4.17.2 → 4.17.4
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 +5 -5
- package/es2015/jodit.js +60 -7
- package/es2015/jodit.min.js +10 -10
- 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 +5 -5
- package/es2018/jodit.min.js +5 -5
- 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 +6 -6
- package/es2021/jodit.js +60 -7
- package/es2021/jodit.min.js +6 -6
- 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 +6 -6
- package/es2021.en/jodit.js +60 -7
- package/es2021.en/jodit.min.js +6 -6
- 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 +80 -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/helpers/html/safe-html.js +15 -0
- package/esm/jodit.js +5 -0
- package/esm/modules/file-browser/data-provider.d.ts +1 -0
- package/esm/modules/file-browser/data-provider.js +26 -5
- package/esm/plugins/clean-html/clean-html.d.ts +8 -0
- package/esm/plugins/clean-html/clean-html.js +13 -0
- package/package.json +1 -1
- package/types/modules/file-browser/data-provider.d.ts +1 -0
- package/types/plugins/clean-html/clean-html.d.ts +8 -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.17.
|
|
4
|
+
* Version: v4.17.4
|
|
5
5
|
* Url: https://xdsoft.net/jodit/
|
|
6
6
|
* License(s): MIT
|
|
7
7
|
*/
|
|
@@ -1799,7 +1799,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1799
1799
|
* ```
|
|
1800
1800
|
* @packageDocumentation
|
|
1801
1801
|
* @module constants
|
|
1802
|
-
*/ const APP_VERSION = "4.17.
|
|
1802
|
+
*/ const APP_VERSION = "4.17.4";
|
|
1803
1803
|
// prettier-ignore
|
|
1804
1804
|
const ES = "es2021";
|
|
1805
1805
|
const IS_ES_MODERN = true;
|
|
@@ -6197,6 +6197,21 @@ function isSmuggledForeignHtml(elm) {
|
|
|
6197
6197
|
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(elm);
|
|
6198
6198
|
}
|
|
6199
6199
|
}
|
|
6200
|
+
// `<noscript>` is parsed as markup in a document with scripting off (the
|
|
6201
|
+
// inert document the value is sanitized in) and as raw text in one with
|
|
6202
|
+
// scripting on (the live editor). The same serialized bytes therefore
|
|
6203
|
+
// describe two different trees, and markup hidden as inert text in the
|
|
6204
|
+
// first comes alive as elements in the second. The element has no use in
|
|
6205
|
+
// editor content, so it goes, together with everything it carried.
|
|
6206
|
+
const noscript = [];
|
|
6207
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.each(box, (node)=>{
|
|
6208
|
+
if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(node) && node.nodeName === 'NOSCRIPT') {
|
|
6209
|
+
noscript.push(node);
|
|
6210
|
+
}
|
|
6211
|
+
});
|
|
6212
|
+
for (const elm of noscript){
|
|
6213
|
+
jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(elm);
|
|
6214
|
+
}
|
|
6200
6215
|
const removeEvents = options.removeEventAttributes ?? options.removeOnError;
|
|
6201
6216
|
// Single synchronous traversal of the subtree. Besides removing event
|
|
6202
6217
|
// handlers and `javascript:` links, `sanitizeHTMLElement` neutralises
|
|
@@ -17971,6 +17986,11 @@ class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE_10__.ViewWithToolbar
|
|
|
17971
17986
|
}
|
|
17972
17987
|
if (this.editor) {
|
|
17973
17988
|
this.editor.innerHTML = data.value;
|
|
17989
|
+
// Fired synchronously, before any task can run: the value was
|
|
17990
|
+
// sanitized in an inert document and re-parsed here with scripting
|
|
17991
|
+
// on, and the two parsers do not always agree. Listeners get to
|
|
17992
|
+
// look at the tree that actually exists.
|
|
17993
|
+
this.e.fire('afterSetNativeEditorValue');
|
|
17974
17994
|
}
|
|
17975
17995
|
}
|
|
17976
17996
|
/**
|
|
@@ -20744,6 +20764,16 @@ const DOCS_URL = 'https://xdsoft.net/jodit/docs/modules/file_browser.html';
|
|
|
20744
20764
|
});
|
|
20745
20765
|
return resp;
|
|
20746
20766
|
}
|
|
20767
|
+
/**
|
|
20768
|
+
* Actions that only read from the connector. A newer request for one of them
|
|
20769
|
+
* makes the older one pointless, so it is aborted; every other action changes
|
|
20770
|
+
* server state and must be allowed to finish.
|
|
20771
|
+
*/ const REPLACEABLE_ACTIONS = new Set([
|
|
20772
|
+
'items',
|
|
20773
|
+
'folder',
|
|
20774
|
+
'permissions',
|
|
20775
|
+
'getLocalFileByUrl'
|
|
20776
|
+
]);
|
|
20747
20777
|
class DataProvider {
|
|
20748
20778
|
/**
|
|
20749
20779
|
* Alias for options
|
|
@@ -20752,10 +20782,19 @@ class DataProvider {
|
|
|
20752
20782
|
}
|
|
20753
20783
|
get(name) {
|
|
20754
20784
|
const instances = this.__ajaxInstances;
|
|
20755
|
-
|
|
20756
|
-
|
|
20785
|
+
// A listing asked for again supersedes the one still loading, so the
|
|
20786
|
+
// earlier request is aborted. That must never happen to a request
|
|
20787
|
+
// that changes something on the server: aborting it does not undo it,
|
|
20788
|
+
// the caller just never hears the result. Removing several files at
|
|
20789
|
+
// once used to send one `fileRemove` per file and abort all but the
|
|
20790
|
+
// last, so only the last one was ever removed. Mutating requests get a
|
|
20791
|
+
// key of their own and run side by side.
|
|
20792
|
+
const replaceable = REPLACEABLE_ACTIONS.has(name);
|
|
20793
|
+
const key = replaceable ? name : `${name}#${++this.__requestSerial}`;
|
|
20794
|
+
if (replaceable && instances.has(key)) {
|
|
20795
|
+
const ajax = instances.get(key);
|
|
20757
20796
|
ajax?.abort();
|
|
20758
|
-
instances.delete(
|
|
20797
|
+
instances.delete(key);
|
|
20759
20798
|
}
|
|
20760
20799
|
const opts = (0,jodit_core_helpers_utils_config_proto__WEBPACK_IMPORTED_MODULE_8__.ConfigProto)(this.options[name] !== undefined ? this.options[name] : {}, (0,jodit_core_helpers_utils_config_proto__WEBPACK_IMPORTED_MODULE_8__.ConfigProto)({
|
|
20761
20800
|
onProgress: this.progressHandler
|
|
@@ -20764,11 +20803,11 @@ class DataProvider {
|
|
|
20764
20803
|
opts.data = opts.prepareData.call(this, opts.data);
|
|
20765
20804
|
}
|
|
20766
20805
|
const ajax = new jodit_core_request_ajax__WEBPACK_IMPORTED_MODULE_11__.Ajax(opts);
|
|
20767
|
-
instances.set(
|
|
20806
|
+
instances.set(key, ajax);
|
|
20768
20807
|
const promise = ajax.send();
|
|
20769
20808
|
promise.finally(()=>{
|
|
20770
20809
|
ajax.destruct();
|
|
20771
|
-
instances.delete(
|
|
20810
|
+
instances.delete(key);
|
|
20772
20811
|
this.progressHandler(100);
|
|
20773
20812
|
}).catch(()=>null);
|
|
20774
20813
|
return promise.then((resp)=>resp.json()).then((resp)=>{
|
|
@@ -21073,11 +21112,13 @@ class DataProvider {
|
|
|
21073
21112
|
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0);
|
|
21074
21113
|
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__currentPermissions", void 0);
|
|
21075
21114
|
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__ajaxInstances", void 0);
|
|
21115
|
+
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "__requestSerial", void 0);
|
|
21076
21116
|
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "progressHandler", void 0);
|
|
21077
21117
|
this.parent = parent;
|
|
21078
21118
|
this.options = options;
|
|
21079
21119
|
this.__currentPermissions = null;
|
|
21080
21120
|
this.__ajaxInstances = new Map();
|
|
21121
|
+
this.__requestSerial = 0;
|
|
21081
21122
|
this.progressHandler = (ignore)=>{};
|
|
21082
21123
|
}
|
|
21083
21124
|
}
|
|
@@ -28678,6 +28719,15 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
|
|
|
28678
28719
|
return false;
|
|
28679
28720
|
}
|
|
28680
28721
|
}
|
|
28722
|
+
/**
|
|
28723
|
+
* The value was sanitized in an inert document and has just been re-parsed
|
|
28724
|
+
* into the live editor with scripting on. Where the two parsers disagree
|
|
28725
|
+
* (`<noscript>`, raw-text elements), markup that was inert text a moment
|
|
28726
|
+
* ago is a real element now, so the live tree is sanitized once more, in
|
|
28727
|
+
* the same call stack, before any handler it might carry can fire.
|
|
28728
|
+
*/ onAfterSetNativeEditorValue() {
|
|
28729
|
+
;(0,jodit_core_helpers_html_safe_html__WEBPACK_IMPORTED_MODULE_6__.safeHTML)(this.j.editor, this.j.o.cleanHTML);
|
|
28730
|
+
}
|
|
28681
28731
|
/**
|
|
28682
28732
|
* Event handler when manually assigning a value to the HTML editor.
|
|
28683
28733
|
*/ onBeforeSetNativeEditorValue(data) {
|
|
@@ -28803,6 +28853,9 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
|
|
|
28803
28853
|
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
28804
28854
|
(0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeCommand')
|
|
28805
28855
|
], cleanHtml.prototype, "beforeCommand", null);
|
|
28856
|
+
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
28857
|
+
(0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':afterSetNativeEditorValue')
|
|
28858
|
+
], cleanHtml.prototype, "onAfterSetNativeEditorValue", null);
|
|
28806
28859
|
(0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
|
|
28807
28860
|
(0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeSetNativeEditorValue')
|
|
28808
28861
|
], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
|