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/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.17.2
4
+ * Version: v4.17.3
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1805,7 +1805,7 @@ __webpack_require__.r(__webpack_exports__);
1805
1805
  * ```
1806
1806
  * @packageDocumentation
1807
1807
  * @module constants
1808
- */ const APP_VERSION = "4.17.2";
1808
+ */ const APP_VERSION = "4.17.3";
1809
1809
  // prettier-ignore
1810
1810
  const ES = "es2015";
1811
1811
  const IS_ES_MODERN = true;
@@ -6222,6 +6222,21 @@ function isSmuggledForeignHtml(elm) {
6222
6222
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(elm);
6223
6223
  }
6224
6224
  }
6225
+ // `<noscript>` is parsed as markup in a document with scripting off (the
6226
+ // inert document the value is sanitized in) and as raw text in one with
6227
+ // scripting on (the live editor). The same serialized bytes therefore
6228
+ // describe two different trees, and markup hidden as inert text in the
6229
+ // first comes alive as elements in the second. The element has no use in
6230
+ // editor content, so it goes, together with everything it carried.
6231
+ const noscript = [];
6232
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.each(box, (node)=>{
6233
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement(node) && node.nodeName === 'NOSCRIPT') {
6234
+ noscript.push(node);
6235
+ }
6236
+ });
6237
+ for (const elm of noscript){
6238
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(elm);
6239
+ }
6225
6240
  const removeEvents = (_options_removeEventAttributes = options.removeEventAttributes) !== null && _options_removeEventAttributes !== void 0 ? _options_removeEventAttributes : options.removeOnError;
6226
6241
  // Single synchronous traversal of the subtree. Besides removing event
6227
6242
  // handlers and `javascript:` links, `sanitizeHTMLElement` neutralises
@@ -18112,6 +18127,11 @@ class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE_11__.ViewWithToolbar
18112
18127
  }
18113
18128
  if (this.editor) {
18114
18129
  this.editor.innerHTML = data.value;
18130
+ // Fired synchronously, before any task can run: the value was
18131
+ // sanitized in an inert document and re-parsed here with scripting
18132
+ // on, and the two parsers do not always agree. Listeners get to
18133
+ // look at the tree that actually exists.
18134
+ this.e.fire('afterSetNativeEditorValue');
18115
18135
  }
18116
18136
  }
18117
18137
  /**
@@ -28965,6 +28985,15 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
28965
28985
  return false;
28966
28986
  }
28967
28987
  }
28988
+ /**
28989
+ * The value was sanitized in an inert document and has just been re-parsed
28990
+ * into the live editor with scripting on. Where the two parsers disagree
28991
+ * (`<noscript>`, raw-text elements), markup that was inert text a moment
28992
+ * ago is a real element now, so the live tree is sanitized once more, in
28993
+ * the same call stack, before any handler it might carry can fire.
28994
+ */ onAfterSetNativeEditorValue() {
28995
+ ;(0,jodit_core_helpers_html_safe_html__WEBPACK_IMPORTED_MODULE_6__.safeHTML)(this.j.editor, this.j.o.cleanHTML);
28996
+ }
28968
28997
  /**
28969
28998
  * Event handler when manually assigning a value to the HTML editor.
28970
28999
  */ onBeforeSetNativeEditorValue(data) {
@@ -29091,6 +29120,9 @@ class cleanHtml extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_7__.Pl
29091
29120
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
29092
29121
  (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeCommand')
29093
29122
  ], cleanHtml.prototype, "beforeCommand", null);
29123
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
29124
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':afterSetNativeEditorValue')
29125
+ ], cleanHtml.prototype, "onAfterSetNativeEditorValue", null);
29094
29126
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
29095
29127
  (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':beforeSetNativeEditorValue')
29096
29128
  ], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);