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
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.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)) {
@@ -40269,7 +40276,14 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.maxHeight = 'auto';
40269
40276
  /**
40270
40277
  * Returns service spaces: toolbar + statusbar
40271
40278
  */ __getNotWorkHeight() {
40272
- return (this.j.toolbarContainer?.offsetHeight || 0) + (this.j.statusbar?.getHeight() || 0) + 2;
40279
+ // Only a toolbar that actually lives inside the editor container takes
40280
+ // space away from the workplace. When the `toolbar` option points to an
40281
+ // external element, the toolbar is rendered outside the container, so it
40282
+ // must not be subtracted — otherwise the workplace is wrongly shrunk by
40283
+ // the toolbar's height. See https://github.com/xdan/jodit/discussions/920
40284
+ const toolbar = this.j.toolbarContainer;
40285
+ const toolbarHeight = toolbar && this.j.container.contains(toolbar) ? toolbar.offsetHeight : 0;
40286
+ return toolbarHeight + (this.j.statusbar?.getHeight() || 0) + 2;
40273
40287
  }
40274
40288
  /**
40275
40289
  * Calculate workspace height