jodit 4.13.5 → 4.13.7

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 +13 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +14 -14
  4. package/es2015/jodit.js +20 -6
  5. package/es2015/jodit.min.js +5 -5
  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 +5 -5
  13. package/es2018/jodit.min.js +5 -5
  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 +20 -6
  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 +20 -6
  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 +20 -6
  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/modules/dialog/dialog.js +6 -0
  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.5
4
+ * Version: v4.13.7
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.5";
1852
+ */ const APP_VERSION = "4.13.7";
1853
1853
  // prettier-ignore
1854
1854
  const ES = "es2015";
1855
1855
  const IS_ES_MODERN = true;
@@ -19308,6 +19308,12 @@ class Dialog extends jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_
19308
19308
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isOpened", false);
19309
19309
  const self1 = this;
19310
19310
  self1.options = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.ConfigProto)(options, (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_11__.ConfigProto)(jodit_config__WEBPACK_IMPORTED_MODULE_16__.Config.prototype.dialog, Dialog.defaultOptions));
19311
+ // Attach event handlers passed via `options.events` to the dialog's own
19312
+ // emitter (as FileBrowser already does), so a consumer — e.g. a plugin
19313
+ // forwarding the editor's `events` config — can observe `afterOpen` /
19314
+ // `beforeClose`. Unlike popups, the dialog fires these on its own
19315
+ // emitter, so without this they were unreachable from the editor.
19316
+ self1.attachEvents(self1.options);
19311
19317
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_7__.Dom.safeRemove(self1.container);
19312
19318
  const n = this.getFullElName.bind(this);
19313
19319
  self1.container = this.c.fromHTML(`<div class="jodit jodit-dialog ${this.componentName}">
@@ -24009,7 +24015,8 @@ class ToolbarButton extends jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_20__.U
24009
24015
  button.classList.remove(cn);
24010
24016
  button.classList.add(cn + '__button');
24011
24017
  Object.defineProperty(button, 'component', {
24012
- value: this
24018
+ value: this,
24019
+ configurable: true
24013
24020
  });
24014
24021
  container.appendChild(button);
24015
24022
  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>`);
@@ -28925,15 +28932,22 @@ function filterStyleProperties(style, allowed) {
28925
28932
  * @private
28926
28933
  */ function isRemovableNode(jodit, node, current, allow, deny) {
28927
28934
  if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node)) {
28928
- if (allow && !allow[node.nodeName]) {
28935
+ // The allow/deny hashes are keyed by upper-cased tag name. HTML
28936
+ // `nodeName` is already upper-case, but foreign (SVG/MathML) elements
28937
+ // keep their original case — an SVG `<script>` reports `"script"`, so a
28938
+ // case-sensitive lookup let it slip past `denyTags` and execute. Normalise
28939
+ // to upper case so namespace can't bypass the filter. See
28940
+ // GHSA-45qg-252v-3f7p.
28941
+ const name = node.nodeName.toUpperCase();
28942
+ if (allow && !allow[name]) {
28929
28943
  return true;
28930
28944
  }
28931
28945
  // A YouTube/Vimeo player inserted through the Video button is trusted
28932
28946
  // editor content, so keep it even though `iframe` is denied by default
28933
28947
  // — otherwise the embed is stripped ~300ms after insertion (#1381).
28934
28948
  // Arbitrary/bare iframes stay denied.
28935
- 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') || '');
28936
- if (!allow && deny && deny[node.nodeName] && !isTrustedEmbed) {
28949
+ 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') || '');
28950
+ if (!allow && deny && deny[name] && !isTrustedEmbed) {
28937
28951
  return true;
28938
28952
  }
28939
28953
  }