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/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.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;
@@ -31147,7 +31147,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('dtd', dtd);
31147
31147
  let block = (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.getBlockWrapper)(fake, jodit);
31148
31148
  const isLi = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isLeaf(block);
31149
31149
  // if use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
31150
- if ((!isLi || event?.shiftKey) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event?.shiftKey)) {
31150
+ if ((!isLi || event?.shiftKey) && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.checkBR)(fake, jodit, event?.shiftKey, block)) {
31151
31151
  return false;
31152
31152
  }
31153
31153
  // wrap no wrapped element
@@ -31209,15 +31209,19 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('enter', enter);
31209
31209
  /**
31210
31210
  * Checks the possibility and necessity of inserting a BR instead of a block
31211
31211
  * @private
31212
- */ function checkBR(fake, jodit, shiftKeyPressed) {
31212
+ */ function checkBR(fake, jodit, shiftKeyPressed, block) {
31213
31213
  const isMultiLineBlock = Boolean(jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
31214
31214
  'pre',
31215
31215
  'blockquote'
31216
31216
  ], jodit.editor));
31217
- const isCell = !isMultiLineBlock && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
31217
+ // A cell itself can't be split into two cells, so bare cell content gets
31218
+ // a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
31219
+ // block is split like anywhere else, otherwise every line of the cell
31220
+ // stays inside one block and block styles apply to all of them at once.
31221
+ 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, [
31218
31222
  'td',
31219
31223
  'th'
31220
- ], jodit.editor);
31224
+ ], jodit.editor)));
31221
31225
  const isBRMode = jodit.o.enter.toLowerCase() === jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
31222
31226
  // if you use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
31223
31227
  if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
@@ -39262,11 +39266,22 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.resizer = {
39262
39266
 
39263
39267
 
39264
39268
  const keyBInd = '__jodit-resizer_binded';
39269
+ /**
39270
+ * Reads a plain pixel value out of a `width`/`height` attribute.
39271
+ * Relative values such as `100%` are ignored — they cannot be turned into a
39272
+ * fixed pixel box for the wrapper.
39273
+ */ function attrPixelSize(element, key) {
39274
+ const value = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(element, key)?.trim();
39275
+ if (!value || !/^\d+(\.\d+)?(px)?$/i.test(value)) {
39276
+ return 0;
39277
+ }
39278
+ return parseFloat(value);
39279
+ }
39265
39280
  /**
39266
39281
  * The module creates a supporting frame for resizing of the elements img and table
39267
39282
  */ class resizer extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_8__.Plugin {
39268
39283
  /** @override */ afterInit(editor) {
39269
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.$$)('div', this.rect).forEach((resizeHandle)=>{
39284
+ ;(0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.$$)('div', this.rect).forEach((resizeHandle)=>{
39270
39285
  editor.e.on(resizeHandle, 'mousedown.resizer touchstart.resizer', this.onStartResizing.bind(this, resizeHandle));
39271
39286
  });
39272
39287
  jodit_core_global__WEBPACK_IMPORTED_MODULE_5__.eventEmitter.on('hideHelpers', this.hide);
@@ -39488,11 +39503,23 @@ const keyBInd = '__jodit-resizer_binded';
39488
39503
  'data-jodit_iframe_wrapper': 1
39489
39504
  });
39490
39505
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(wrapper, 'style', (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.attr)(element, 'style'));
39506
+ // Inside a hidden container (`display:none` on any ancestor)
39507
+ // offsetWidth/offsetHeight are 0. Writing that into the wrapper
39508
+ // collapsed it to 0x0, the following content painted over the
39509
+ // iframe, and nothing corrected it once the container was shown.
39510
+ // Fall back to the iframe's own size attributes and, when there
39511
+ // is nothing measurable at all, let the wrapper size itself.
39512
+ const width = element.offsetWidth || attrPixelSize(element, 'width');
39513
+ const height = element.offsetHeight || attrPixelSize(element, 'height');
39491
39514
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, {
39492
- display: (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block',
39493
- width: element.offsetWidth,
39494
- height: element.offsetHeight
39515
+ display: (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_7__.cssInline)(element, 'display') === 'inline-block' ? 'inline-block' : 'block'
39495
39516
  });
39517
+ if (width) {
39518
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, 'width', width);
39519
+ }
39520
+ if (height) {
39521
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_6__.css)(wrapper, 'height', height);
39522
+ }
39496
39523
  if (element.parentNode) {
39497
39524
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_4__.Dom.before(element, wrapper);
39498
39525
  }