jodit 4.12.30 → 4.12.32

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 (53) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +3 -3
  4. package/es2015/jodit.js +20 -6
  5. package/es2015/jodit.min.js +3 -3
  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 +3 -3
  13. package/es2018/jodit.min.js +3 -3
  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 +4 -4
  18. package/es2021/jodit.js +19 -5
  19. package/es2021/jodit.min.js +4 -4
  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 +4 -4
  28. package/es2021.en/jodit.js +19 -5
  29. package/es2021.en/jodit.min.js +4 -4
  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 +21 -7
  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 +9 -2
  52. package/esm/plugins/size/size.js +11 -4
  53. package/package.json +1 -1
@@ -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.12.30
4
+ * Version: v4.12.32
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1810,7 +1810,7 @@ __webpack_require__.r(__webpack_exports__);
1810
1810
  * ```
1811
1811
  * @packageDocumentation
1812
1812
  * @module constants
1813
- */ const APP_VERSION = "4.12.30";
1813
+ */ const APP_VERSION = "4.12.32";
1814
1814
  // prettier-ignore
1815
1815
  const ES = "es2021";
1816
1816
  const IS_ES_MODERN = true;
@@ -6180,8 +6180,16 @@ function sanitizeHTMLElement(elm, { safeJavaScriptLink, removeOnError } = {
6180
6180
  (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'onerror', null);
6181
6181
  effected = true;
6182
6182
  }
6183
+ const tagName = elm.nodeName.toLowerCase();
6183
6184
  const href = elm.getAttribute('href');
6184
- if (safeJavaScriptLink && href && href.trim().indexOf('javascript') === 0) {
6185
+ // Neutralize executable-scheme `href`s with the same normalization used for
6186
+ // every other URL attribute (`isDangerousUrl`), which strips control bytes,
6187
+ // tabs and newlines and lowercases before matching the scheme. The previous
6188
+ // bare `href.trim().indexOf('javascript') === 0` was case-sensitive and
6189
+ // missed `JAVASCRIPT:`, a leading control byte, or a tab/newline inside the
6190
+ // scheme (e.g. `java\tscript:`) — all of which the browser still resolves to
6191
+ // `javascript:` on click. See GHSA-j839-gqq4-gf9j.
6192
+ if (safeJavaScriptLink && href && isDangerousUrl(href, tagName)) {
6185
6193
  (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.attr)(elm, 'href', location.protocol + '//' + href);
6186
6194
  effected = true;
6187
6195
  }
@@ -6192,7 +6200,6 @@ function sanitizeHTMLElement(elm, { safeJavaScriptLink, removeOnError } = {
6192
6200
  effected = true;
6193
6201
  }
6194
6202
  // Strip executable schemes from any other URL-bearing attribute.
6195
- const tagName = elm.nodeName.toLowerCase();
6196
6203
  for (const name of URL_ATTRIBUTES){
6197
6204
  const value = elm.getAttribute(name);
6198
6205
  if (value && isDangerousUrl(value, tagName)) {
@@ -39515,7 +39522,14 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.maxHeight = 'auto';
39515
39522
  /**
39516
39523
  * Returns service spaces: toolbar + statusbar
39517
39524
  */ __getNotWorkHeight() {
39518
- return (this.j.toolbarContainer?.offsetHeight || 0) + (this.j.statusbar?.getHeight() || 0) + 2;
39525
+ // Only a toolbar that actually lives inside the editor container takes
39526
+ // space away from the workplace. When the `toolbar` option points to an
39527
+ // external element, the toolbar is rendered outside the container, so it
39528
+ // must not be subtracted — otherwise the workplace is wrongly shrunk by
39529
+ // the toolbar's height. See https://github.com/xdan/jodit/discussions/920
39530
+ const toolbar = this.j.toolbarContainer;
39531
+ const toolbarHeight = toolbar && this.j.container.contains(toolbar) ? toolbar.offsetHeight : 0;
39532
+ return toolbarHeight + (this.j.statusbar?.getHeight() || 0) + 2;
39519
39533
  }
39520
39534
  /**
39521
39535
  * Calculate workspace height