jodit 4.13.3 → 4.13.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +14 -14
  4. package/es2015/jodit.js +17 -8
  5. package/es2015/jodit.min.js +4 -4
  6. package/es2015/plugins/debug/debug.css +1 -1
  7. package/es2015/plugins/debug/debug.js +1 -1
  8. package/es2015/plugins/debug/debug.min.js +1 -1
  9. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  10. package/es2015/plugins/speech-recognize/speech-recognize.js +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.min.js +1 -1
  12. package/es2018/jodit.fat.min.js +4 -4
  13. package/es2018/jodit.min.js +4 -4
  14. package/es2018/plugins/debug/debug.min.js +1 -1
  15. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  16. package/es2021/jodit.css +1 -1
  17. package/es2021/jodit.fat.min.js +5 -5
  18. package/es2021/jodit.js +17 -8
  19. package/es2021/jodit.min.js +5 -5
  20. package/es2021/plugins/debug/debug.css +1 -1
  21. package/es2021/plugins/debug/debug.js +1 -1
  22. package/es2021/plugins/debug/debug.min.js +1 -1
  23. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  24. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  25. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  26. package/es2021.en/jodit.css +1 -1
  27. package/es2021.en/jodit.fat.min.js +5 -5
  28. package/es2021.en/jodit.js +17 -8
  29. package/es2021.en/jodit.min.js +5 -5
  30. package/es2021.en/plugins/debug/debug.css +1 -1
  31. package/es2021.en/plugins/debug/debug.js +1 -1
  32. package/es2021.en/plugins/debug/debug.min.js +1 -1
  33. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  34. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  35. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  36. package/es5/jodit.css +2 -2
  37. package/es5/jodit.fat.min.js +2 -2
  38. package/es5/jodit.js +17 -8
  39. package/es5/jodit.min.css +2 -2
  40. package/es5/jodit.min.js +2 -2
  41. package/es5/plugins/debug/debug.css +1 -1
  42. package/es5/plugins/debug/debug.js +1 -1
  43. package/es5/plugins/debug/debug.min.js +1 -1
  44. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  45. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  46. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  47. package/es5/polyfills.fat.min.js +1 -1
  48. package/es5/polyfills.js +1 -1
  49. package/es5/polyfills.min.js +1 -1
  50. package/esm/core/constants.js +1 -1
  51. package/esm/core/helpers/html/safe-html.js +3 -2
  52. package/esm/modules/toolbar/button/button.js +2 -1
  53. package/esm/plugins/clean-html/helpers/visitor/filters/try-remove-node.js +10 -3
  54. package/package.json +1 -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.13.3
4
+ * Version: v4.13.6
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1849,7 +1849,7 @@ __webpack_require__.r(__webpack_exports__);
1849
1849
  * ```
1850
1850
  * @packageDocumentation
1851
1851
  * @module constants
1852
- */ const APP_VERSION = "4.13.3";
1852
+ */ const APP_VERSION = "4.13.6";
1853
1853
  // prettier-ignore
1854
1854
  const ES = "es2015";
1855
1855
  const IS_ES_MODERN = true;
@@ -6179,7 +6179,7 @@ const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
6179
6179
  // markup into a live node.
6180
6180
  const foreign = box.querySelectorAll('math *, svg *');
6181
6181
  for(let i = 0; i < foreign.length; i++){
6182
- if (foreign[i].isConnected && isSmuggledForeignHtml(foreign[i])) {
6182
+ if (box.contains(foreign[i]) && isSmuggledForeignHtml(foreign[i])) {
6183
6183
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(foreign[i]);
6184
6184
  }
6185
6185
  }
@@ -6287,7 +6287,8 @@ function sanitizeHTMLElement(elm, { safeJavaScriptLink, removeOnError } = {
6287
6287
  // scheme (e.g. `java\tscript:`) — all of which the browser still resolves to
6288
6288
  // `javascript:` on click. See GHSA-j839-gqq4-gf9j.
6289
6289
  if (safeJavaScriptLink && href && isDangerousUrl(href, tagName)) {
6290
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', location.protocol + '//' + href);
6290
+ const protocol = typeof location !== 'undefined' ? location.protocol : 'http:';
6291
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', protocol + '//' + href);
6291
6292
  effected = true;
6292
6293
  }
6293
6294
  if (safeJavaScriptLink) {
@@ -24008,7 +24009,8 @@ class ToolbarButton extends jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_20__.U
24008
24009
  button.classList.remove(cn);
24009
24010
  button.classList.add(cn + '__button');
24010
24011
  Object.defineProperty(button, 'component', {
24011
- value: this
24012
+ value: this,
24013
+ configurable: true
24012
24014
  });
24013
24015
  container.appendChild(button);
24014
24016
  const trigger = this.j.c.fromHTML(`<span role="button" aria-haspopup="true" aria-expanded="false" class="${cn}__trigger">${jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_22__.Icon.get('chevron')}</span>`);
@@ -28924,15 +28926,22 @@ function filterStyleProperties(style, allowed) {
28924
28926
  * @private
28925
28927
  */ function isRemovableNode(jodit, node, current, allow, deny) {
28926
28928
  if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node)) {
28927
- if (allow && !allow[node.nodeName]) {
28929
+ // The allow/deny hashes are keyed by upper-cased tag name. HTML
28930
+ // `nodeName` is already upper-case, but foreign (SVG/MathML) elements
28931
+ // keep their original case — an SVG `<script>` reports `"script"`, so a
28932
+ // case-sensitive lookup let it slip past `denyTags` and execute. Normalise
28933
+ // to upper case so namespace can't bypass the filter. See
28934
+ // GHSA-45qg-252v-3f7p.
28935
+ const name = node.nodeName.toUpperCase();
28936
+ if (allow && !allow[name]) {
28928
28937
  return true;
28929
28938
  }
28930
28939
  // A YouTube/Vimeo player inserted through the Video button is trusted
28931
28940
  // editor content, so keep it even though `iframe` is denied by default
28932
28941
  // — otherwise the embed is stripped ~300ms after insertion (#1381).
28933
28942
  // Arbitrary/bare iframes stay denied.
28934
- const isTrustedEmbed = node.nodeName === 'IFRAME' && (0,_is_allowed_media_embed__WEBPACK_IMPORTED_MODULE_4__.isAllowedMediaEmbed)((0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_3__.attr)(node, 'src') || '');
28935
- if (!allow && deny && deny[node.nodeName] && !isTrustedEmbed) {
28943
+ const isTrustedEmbed = name === 'IFRAME' && (0,_is_allowed_media_embed__WEBPACK_IMPORTED_MODULE_4__.isAllowedMediaEmbed)((0,jodit_core_helpers_utils_attr__WEBPACK_IMPORTED_MODULE_3__.attr)(node, 'src') || '');
28944
+ if (!allow && deny && deny[name] && !isTrustedEmbed) {
28936
28945
  return true;
28937
28946
  }
28938
28947
  }