jodit 4.17.2 → 4.17.3

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.
Files changed (62) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +6 -0
  3. package/es2015/jodit.css +1 -1
  4. package/es2015/jodit.fat.min.js +4 -4
  5. package/es2015/jodit.js +34 -2
  6. package/es2015/jodit.min.js +4 -4
  7. package/es2015/plugins/debug/debug.css +1 -1
  8. package/es2015/plugins/debug/debug.js +1 -1
  9. package/es2015/plugins/debug/debug.min.js +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  12. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  13. package/es2018/jodit.fat.min.js +4 -4
  14. package/es2018/jodit.min.js +4 -4
  15. package/es2018/plugins/debug/debug.min.js +1 -1
  16. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  17. package/es2021/jodit.css +1 -1
  18. package/es2021/jodit.fat.min.js +5 -5
  19. package/es2021/jodit.js +34 -2
  20. package/es2021/jodit.min.js +5 -5
  21. package/es2021/plugins/debug/debug.css +1 -1
  22. package/es2021/plugins/debug/debug.js +1 -1
  23. package/es2021/plugins/debug/debug.min.js +1 -1
  24. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  25. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  26. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  27. package/es2021.en/jodit.css +1 -1
  28. package/es2021.en/jodit.fat.min.js +5 -5
  29. package/es2021.en/jodit.js +34 -2
  30. package/es2021.en/jodit.min.js +5 -5
  31. package/es2021.en/plugins/debug/debug.css +1 -1
  32. package/es2021.en/plugins/debug/debug.js +1 -1
  33. package/es2021.en/plugins/debug/debug.min.js +1 -1
  34. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  35. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  36. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  37. package/es5/jodit.css +2 -2
  38. package/es5/jodit.fat.min.js +2 -2
  39. package/es5/jodit.js +54 -2
  40. package/es5/jodit.min.css +2 -2
  41. package/es5/jodit.min.js +2 -2
  42. package/es5/plugins/debug/debug.css +1 -1
  43. package/es5/plugins/debug/debug.js +1 -1
  44. package/es5/plugins/debug/debug.min.js +1 -1
  45. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  46. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  47. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  48. package/es5/polyfills.fat.min.js +1 -1
  49. package/es5/polyfills.js +1 -1
  50. package/es5/polyfills.min.js +1 -1
  51. package/esm/core/constants.js +1 -1
  52. package/esm/core/helpers/html/safe-html.js +15 -0
  53. package/esm/jodit.js +5 -0
  54. package/esm/plugins/clean-html/clean-html.d.ts +8 -0
  55. package/esm/plugins/clean-html/clean-html.js +13 -0
  56. package/examples/build/es2015/jodit.min.css +1 -0
  57. package/examples/build/es2015/jodit.min.js +10 -0
  58. package/examples/build/es2015/plugins/debug/debug.min.js +10 -0
  59. package/examples/build/es2015/plugins/speech-recognize/speech-recognize.min.css +1 -0
  60. package/examples/build/es2015/plugins/speech-recognize/speech-recognize.min.js +10 -0
  61. package/package.json +1 -1
  62. package/types/plugins/clean-html/clean-html.d.ts +8 -0
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.17.2
4
+ * Version: v4.17.3
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.2";
1802
+ */ const APP_VERSION = "4.17.3";
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
  /**
@@ -28752,6 +28772,15 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
28752
28772
  return false;
28753
28773
  }
28754
28774
  }
28775
+ /**
28776
+ * The value was sanitized in an inert document and has just been re-parsed
28777
+ * into the live editor with scripting on. Where the two parsers disagree
28778
+ * (`<noscript>`, raw-text elements), markup that was inert text a moment
28779
+ * ago is a real element now, so the live tree is sanitized once more, in
28780
+ * the same call stack, before any handler it might carry can fire.
28781
+ */ onAfterSetNativeEditorValue() {
28782
+ ;(0,jodit_core_helpers_html_safe_html__WEBPACK_IMPORTED_MODULE_6__.safeHTML)(this.j.editor, this.j.o.cleanHTML);
28783
+ }
28755
28784
  /**
28756
28785
  * Event handler when manually assigning a value to the HTML editor.
28757
28786
  */ onBeforeSetNativeEditorValue(data) {
@@ -28877,6 +28906,9 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
28877
28906
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
28878
28907
  (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeCommand')
28879
28908
  ], cleanHtml.prototype, "beforeCommand", null);
28909
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
28910
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':afterSetNativeEditorValue')
28911
+ ], cleanHtml.prototype, "onAfterSetNativeEditorValue", null);
28880
28912
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
28881
28913
  (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeSetNativeEditorValue')
28882
28914
  ], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);