jodit 4.15.1 → 4.15.3

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 (56) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +5 -5
  4. package/es2015/jodit.js +38 -10
  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 +37 -10
  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 +37 -10
  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 +37 -9
  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/plugins/enter/enter.js +1 -1
  52. package/esm/plugins/enter/helpers/check-br.d.ts +2 -2
  53. package/esm/plugins/enter/helpers/check-br.js +9 -2
  54. package/esm/plugins/resizer/resizer.js +28 -3
  55. package/package.json +1 -1
  56. package/types/plugins/enter/helpers/check-br.d.ts +2 -2
@@ -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.15.1
4
+ * Version: v4.15.3
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1779,7 +1779,7 @@ __webpack_require__.r(__webpack_exports__);
1779
1779
  * ```
1780
1780
  * @packageDocumentation
1781
1781
  * @module constants
1782
- */ const APP_VERSION = "4.15.1";
1782
+ */ const APP_VERSION = "4.15.3";
1783
1783
  // prettier-ignore
1784
1784
  const ES = "es2021";
1785
1785
  const IS_ES_MODERN = true;
@@ -30760,7 +30760,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('dtd', dtd);
30760
30760
  let block = (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.getBlockWrapper)(fake, jodit);
30761
30761
  const isLi = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isLeaf(block);
30762
30762
  // if use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
30763
- if ((!isLi || event?.shiftKey) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event?.shiftKey)) {
30763
+ if ((!isLi || event?.shiftKey) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event?.shiftKey, block)) {
30764
30764
  return false;
30765
30765
  }
30766
30766
  // wrap no wrapped element
@@ -30822,15 +30822,19 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('enter', enter);
30822
30822
  /**
30823
30823
  * Checks the possibility and necessity of inserting a BR instead of a block
30824
30824
  * @private
30825
- */ function checkBR(fake, jodit, shiftKeyPressed) {
30825
+ */ function checkBR(fake, jodit, shiftKeyPressed, block) {
30826
30826
  const isMultiLineBlock = Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
30827
30827
  'pre',
30828
30828
  'blockquote'
30829
30829
  ], jodit.editor));
30830
- const isCell = !isMultiLineBlock && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
30830
+ // A cell itself can't be split into two cells, so bare cell content gets
30831
+ // a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
30832
+ // block is split like anywhere else, otherwise every line of the cell
30833
+ // stays inside one block and block styles apply to all of them at once.
30834
+ const isCell = !isMultiLineBlock && (block ? jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(block) : Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
30831
30835
  'td',
30832
30836
  'th'
30833
- ], jodit.editor);
30837
+ ], jodit.editor)));
30834
30838
  const isBRMode = jodit.o.enter.toLowerCase() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
30835
30839
  // if you use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
30836
30840
  if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
@@ -38509,11 +38513,22 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
38509
38513
 
38510
38514
 
38511
38515
  const keyBInd = '__jodit-resizer_binded';
38516
+ /**
38517
+ * Reads a plain pixel value out of a `width`/`height` attribute.
38518
+ * Relative values such as `100%` are ignored — they cannot be turned into a
38519
+ * fixed pixel box for the wrapper.
38520
+ */ function attrPixelSize(element, key) {
38521
+ const value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(element, key)?.trim();
38522
+ if (!value || !/^\d+(\.\d+)?(px)?$/i.test(value)) {
38523
+ return 0;
38524
+ }
38525
+ return parseFloat(value);
38526
+ }
38512
38527
  /**
38513
38528
  * The module creates a supporting frame for resizing of the elements img and table
38514
38529
  */ class resizer extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_8__.Plugin {
38515
38530
  /** @override */ afterInit(editor) {
38516
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.$$)('div', this.rect).forEach((resizeHandle)=>{
38531
+ ;(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.$$)('div', this.rect).forEach((resizeHandle)=>{
38517
38532
  editor.e.on(resizeHandle, 'mousedown.resizer touchstart.resizer', this.onStartResizing.bind(this, resizeHandle));
38518
38533
  });
38519
38534
  jodit_core_global__WEBPACK_IMPORTED_MODULE_5__.eventEmitter.on('hideHelpers', this.hide);
@@ -38735,11 +38750,23 @@ const keyBInd = '__jodit-resizer_binded';
38735
38750
  'data-jodit_iframe_wrapper': 1
38736
38751
  });
38737
38752
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(wrapper, 'style', (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(element, 'style'));
38753
+ // Inside a hidden container (`display:none` on any ancestor)
38754
+ // offsetWidth/offsetHeight are 0. Writing that into the wrapper
38755
+ // collapsed it to 0x0, the following content painted over the
38756
+ // iframe, and nothing corrected it once the container was shown.
38757
+ // Fall back to the iframe's own size attributes and, when there
38758
+ // is nothing measurable at all, let the wrapper size itself.
38759
+ const width = element.offsetWidth || attrPixelSize(element, 'width');
38760
+ const height = element.offsetHeight || attrPixelSize(element, 'height');
38738
38761
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, {
38739
- display: (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block',
38740
- width: element.offsetWidth,
38741
- height: element.offsetHeight
38762
+ display: (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block'
38742
38763
  });
38764
+ if (width) {
38765
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, 'width', width);
38766
+ }
38767
+ if (height) {
38768
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, 'height', height);
38769
+ }
38743
38770
  if (element.parentNode) {
38744
38771
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.before(element, wrapper);
38745
38772
  }