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/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.13.5
4
+ * Version: v4.13.7
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1843,7 +1843,7 @@ __webpack_require__.r(__webpack_exports__);
1843
1843
  * ```
1844
1844
  * @packageDocumentation
1845
1845
  * @module constants
1846
- */ const APP_VERSION = "4.13.5";
1846
+ */ const APP_VERSION = "4.13.7";
1847
1847
  // prettier-ignore
1848
1848
  const ES = "es2021";
1849
1849
  const IS_ES_MODERN = true;
@@ -19162,6 +19162,12 @@ class Dialog extends jodit_core_view_view_with_toolbar__WEBPACK_IMPORTED_MODULE_
19162
19162
  */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isOpened", false);
19163
19163
  const self1 = this;
19164
19164
  self1.options = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_9__.ConfigProto)(options, (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_9__.ConfigProto)(jodit_config__WEBPACK_IMPORTED_MODULE_14__.Config.prototype.dialog, Dialog.defaultOptions));
19165
+ // Attach event handlers passed via `options.events` to the dialog's own
19166
+ // emitter (as FileBrowser already does), so a consumer — e.g. a plugin
19167
+ // forwarding the editor's `events` config — can observe `afterOpen` /
19168
+ // `beforeClose`. Unlike popups, the dialog fires these on its own
19169
+ // emitter, so without this they were unreachable from the editor.
19170
+ self1.attachEvents(self1.options);
19165
19171
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(self1.container);
19166
19172
  const n = this.getFullElName.bind(this);
19167
19173
  self1.container = this.c.fromHTML(`<div class="jodit jodit-dialog ${this.componentName}">
@@ -23822,7 +23828,8 @@ class ToolbarButton extends jodit_core_ui_button__WEBPACK_IMPORTED_MODULE_18__.U
23822
23828
  button.classList.remove(cn);
23823
23829
  button.classList.add(cn + '__button');
23824
23830
  Object.defineProperty(button, 'component', {
23825
- value: this
23831
+ value: this,
23832
+ configurable: true
23826
23833
  });
23827
23834
  container.appendChild(button);
23828
23835
  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_20__.Icon.get('chevron')}</span>`);
@@ -28720,15 +28727,22 @@ function filterStyleProperties(style, allowed) {
28720
28727
  * @private
28721
28728
  */ function isRemovableNode(jodit, node, current, allow, deny) {
28722
28729
  if (!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(node)) {
28723
- if (allow && !allow[node.nodeName]) {
28730
+ // The allow/deny hashes are keyed by upper-cased tag name. HTML
28731
+ // `nodeName` is already upper-case, but foreign (SVG/MathML) elements
28732
+ // keep their original case — an SVG `<script>` reports `"script"`, so a
28733
+ // case-sensitive lookup let it slip past `denyTags` and execute. Normalise
28734
+ // to upper case so namespace can't bypass the filter. See
28735
+ // GHSA-45qg-252v-3f7p.
28736
+ const name = node.nodeName.toUpperCase();
28737
+ if (allow && !allow[name]) {
28724
28738
  return true;
28725
28739
  }
28726
28740
  // A YouTube/Vimeo player inserted through the Video button is trusted
28727
28741
  // editor content, so keep it even though `iframe` is denied by default
28728
28742
  // — otherwise the embed is stripped ~300ms after insertion (#1381).
28729
28743
  // Arbitrary/bare iframes stay denied.
28730
- 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') || '');
28731
- if (!allow && deny && deny[node.nodeName] && !isTrustedEmbed) {
28744
+ 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') || '');
28745
+ if (!allow && deny && deny[name] && !isTrustedEmbed) {
28732
28746
  return true;
28733
28747
  }
28734
28748
  }