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
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.15.1
4
+ * Version: v4.15.3
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1785,7 +1785,7 @@ __webpack_require__.r(__webpack_exports__);
1785
1785
  * ```
1786
1786
  * @packageDocumentation
1787
1787
  * @module constants
1788
- */ const APP_VERSION = "4.15.1";
1788
+ */ const APP_VERSION = "4.15.3";
1789
1789
  // prettier-ignore
1790
1790
  const ES = "es2015";
1791
1791
  const IS_ES_MODERN = true;
@@ -31365,7 +31365,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('dtd', dtd);
31365
31365
  let block = (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.getBlockWrapper)(fake, jodit);
31366
31366
  const isLi = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isLeaf(block);
31367
31367
  // if use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
31368
- if ((!isLi || (event === null || event === void 0 ? void 0 : event.shiftKey)) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event === null || event === void 0 ? void 0 : event.shiftKey)) {
31368
+ if ((!isLi || (event === null || event === void 0 ? void 0 : event.shiftKey)) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event === null || event === void 0 ? void 0 : event.shiftKey, block)) {
31369
31369
  return false;
31370
31370
  }
31371
31371
  // wrap no wrapped element
@@ -31427,15 +31427,19 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('enter', enter);
31427
31427
  /**
31428
31428
  * Checks the possibility and necessity of inserting a BR instead of a block
31429
31429
  * @private
31430
- */ function checkBR(fake, jodit, shiftKeyPressed) {
31430
+ */ function checkBR(fake, jodit, shiftKeyPressed, block) {
31431
31431
  const isMultiLineBlock = Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
31432
31432
  'pre',
31433
31433
  'blockquote'
31434
31434
  ], jodit.editor));
31435
- const isCell = !isMultiLineBlock && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
31435
+ // A cell itself can't be split into two cells, so bare cell content gets
31436
+ // a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
31437
+ // block is split like anywhere else, otherwise every line of the cell
31438
+ // stays inside one block and block styles apply to all of them at once.
31439
+ 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, [
31436
31440
  'td',
31437
31441
  'th'
31438
- ], jodit.editor);
31442
+ ], jodit.editor)));
31439
31443
  const isBRMode = jodit.o.enter.toLowerCase() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
31440
31444
  // if you use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
31441
31445
  if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
@@ -39537,11 +39541,23 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
39537
39541
 
39538
39542
 
39539
39543
  const keyBInd = '__jodit-resizer_binded';
39544
+ /**
39545
+ * Reads a plain pixel value out of a `width`/`height` attribute.
39546
+ * Relative values such as `100%` are ignored — they cannot be turned into a
39547
+ * fixed pixel box for the wrapper.
39548
+ */ function attrPixelSize(element, key) {
39549
+ var _attr;
39550
+ const value = (_attr = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(element, key)) === null || _attr === void 0 ? void 0 : _attr.trim();
39551
+ if (!value || !/^\d+(\.\d+)?(px)?$/i.test(value)) {
39552
+ return 0;
39553
+ }
39554
+ return parseFloat(value);
39555
+ }
39540
39556
  /**
39541
39557
  * The module creates a supporting frame for resizing of the elements img and table
39542
39558
  */ class resizer extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_8__.Plugin {
39543
39559
  /** @override */ afterInit(editor) {
39544
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.$$)('div', this.rect).forEach((resizeHandle)=>{
39560
+ ;(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.$$)('div', this.rect).forEach((resizeHandle)=>{
39545
39561
  editor.e.on(resizeHandle, 'mousedown.resizer touchstart.resizer', this.onStartResizing.bind(this, resizeHandle));
39546
39562
  });
39547
39563
  jodit_core_global__WEBPACK_IMPORTED_MODULE_5__.eventEmitter.on('hideHelpers', this.hide);
@@ -39763,11 +39779,23 @@ const keyBInd = '__jodit-resizer_binded';
39763
39779
  'data-jodit_iframe_wrapper': 1
39764
39780
  });
39765
39781
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(wrapper, 'style', (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(element, 'style'));
39782
+ // Inside a hidden container (`display:none` on any ancestor)
39783
+ // offsetWidth/offsetHeight are 0. Writing that into the wrapper
39784
+ // collapsed it to 0x0, the following content painted over the
39785
+ // iframe, and nothing corrected it once the container was shown.
39786
+ // Fall back to the iframe's own size attributes and, when there
39787
+ // is nothing measurable at all, let the wrapper size itself.
39788
+ const width = element.offsetWidth || attrPixelSize(element, 'width');
39789
+ const height = element.offsetHeight || attrPixelSize(element, 'height');
39766
39790
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, {
39767
- display: (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block',
39768
- width: element.offsetWidth,
39769
- height: element.offsetHeight
39791
+ display: (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block'
39770
39792
  });
39793
+ if (width) {
39794
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, 'width', width);
39795
+ }
39796
+ if (height) {
39797
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, 'height', height);
39798
+ }
39771
39799
  if (element.parentNode) {
39772
39800
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.before(element, wrapper);
39773
39801
  }