jodit 4.12.7 → 4.12.9

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 (60) 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 +110 -32
  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 +6 -6
  18. package/es2021/jodit.js +108 -32
  19. package/es2021/jodit.min.js +6 -6
  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 +6 -6
  28. package/es2021.en/jodit.js +108 -32
  29. package/es2021.en/jodit.min.js +6 -6
  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 +109 -31
  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/size/get-fixed-position-offset.d.ts +21 -0
  52. package/esm/core/helpers/size/get-fixed-position-offset.js +46 -0
  53. package/esm/core/helpers/size/index.d.ts +1 -0
  54. package/esm/core/helpers/size/index.js +1 -0
  55. package/esm/core/ui/button/tooltip/tooltip.js +9 -3
  56. package/esm/core/ui/popup/popup.js +7 -3
  57. package/esm/plugins/select-cells/select-cells.js +11 -1
  58. package/package.json +1 -1
  59. package/types/core/helpers/size/get-fixed-position-offset.d.ts +21 -0
  60. package/types/core/helpers/size/index.d.ts +1 -0
package/es5/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.7
4
+ * Version: v4.12.9
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -2066,7 +2066,7 @@ __webpack_require__.r(__webpack_exports__);
2066
2066
  * @packageDocumentation
2067
2067
  * @module constants
2068
2068
  */
2069
- var APP_VERSION = "4.12.7";
2069
+ var APP_VERSION = "4.12.9";
2070
2070
  // prettier-ignore
2071
2071
  var ES = "es5";
2072
2072
  var IS_ES_MODERN = false;
@@ -7156,6 +7156,7 @@ __webpack_require__.r(__webpack_exports__);
7156
7156
  /* harmony export */ colorToHex: function() { return /* reexport safe */ _color__WEBPACK_IMPORTED_MODULE_3__.colorToHex; },
7157
7157
  /* harmony export */ fuzzySearchIndex: function() { return /* reexport safe */ _string__WEBPACK_IMPORTED_MODULE_7__.fuzzySearchIndex; },
7158
7158
  /* harmony export */ getContentWidth: function() { return /* reexport safe */ _size__WEBPACK_IMPORTED_MODULE_6__.getContentWidth; },
7159
+ /* harmony export */ getFixedPositionOffset: function() { return /* reexport safe */ _size__WEBPACK_IMPORTED_MODULE_6__.getFixedPositionOffset; },
7159
7160
  /* harmony export */ getScrollParent: function() { return /* reexport safe */ _size__WEBPACK_IMPORTED_MODULE_6__.getScrollParent; },
7160
7161
  /* harmony export */ hasBrowserColorPicker: function() { return /* reexport safe */ _checker__WEBPACK_IMPORTED_MODULE_2__.hasBrowserColorPicker; },
7161
7162
  /* harmony export */ hasContainer: function() { return /* reexport safe */ _checker__WEBPACK_IMPORTED_MODULE_2__.hasContainer; },
@@ -7226,7 +7227,7 @@ __webpack_require__.r(__webpack_exports__);
7226
7227
  /* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97642);
7227
7228
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(93640);
7228
7229
  /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
7229
- /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_8__) if(["default","asArray","splitArray","toArray","clearTimeout","setTimeout","hasBrowserColorPicker","hasContainer","isAbortError","isArray","isBoolean","isDestructable","isEqual","isFastEqual","isFunction","isHTML","isHtmlFromWord","isInitable","isInt","isJoditObject","isLicense","isMarker","isNativeFunction","isNumber","isNumeric","isPlainObject","isPromise","isSet","isString","isStringArray","isURL","isValidName","isViewObject","isVoid","isWindow","colorToHex","applyStyles","cleanFromWord","htmlspecialchars","nl2br","safeHTML","sanitizeHTMLElement","stripTags","NUMBER_FIELDS_REG","normalizeColor","normalizeCssNumericValue","normalizeCssValue","normalizeKeyAliases","normalizeLicense","normalizePath","normalizeRelativePath","normalizeSize","normalizeUrl","getContentWidth","getScrollParent","innerWidth","offset","position","size","CamelCaseToKebabCase","camelCase","fuzzySearchIndex","i18n","kebabCase","sprintf","stringify","trim","trimChars","trimInv","ucfirst"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _utils__WEBPACK_IMPORTED_MODULE_8__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
7230
+ /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_8__) if(["default","asArray","splitArray","toArray","clearTimeout","setTimeout","hasBrowserColorPicker","hasContainer","isAbortError","isArray","isBoolean","isDestructable","isEqual","isFastEqual","isFunction","isHTML","isHtmlFromWord","isInitable","isInt","isJoditObject","isLicense","isMarker","isNativeFunction","isNumber","isNumeric","isPlainObject","isPromise","isSet","isString","isStringArray","isURL","isValidName","isViewObject","isVoid","isWindow","colorToHex","applyStyles","cleanFromWord","htmlspecialchars","nl2br","safeHTML","sanitizeHTMLElement","stripTags","NUMBER_FIELDS_REG","normalizeColor","normalizeCssNumericValue","normalizeCssValue","normalizeKeyAliases","normalizeLicense","normalizePath","normalizeRelativePath","normalizeSize","normalizeUrl","getContentWidth","getFixedPositionOffset","getScrollParent","innerWidth","offset","position","size","CamelCaseToKebabCase","camelCase","fuzzySearchIndex","i18n","kebabCase","sprintf","stringify","trim","trimChars","trimInv","ucfirst"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _utils__WEBPACK_IMPORTED_MODULE_8__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
7230
7231
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
7231
7232
  /*!
7232
7233
  * Jodit Editor (https://xdsoft.net/jodit/)
@@ -7628,6 +7629,59 @@ function normalizeCssValue(key, value) {
7628
7629
  };
7629
7630
 
7630
7631
 
7632
+ /***/ }),
7633
+
7634
+ /***/ 2373:
7635
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7636
+
7637
+ "use strict";
7638
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7639
+ /* harmony export */ getFixedPositionOffset: function() { return /* binding */ getFixedPositionOffset; }
7640
+ /* harmony export */ });
7641
+ /*!
7642
+ * Jodit Editor (https://xdsoft.net/jodit/)
7643
+ * Released under MIT see LICENSE.txt in the project root for license information.
7644
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
7645
+ */ /**
7646
+ * @module helpers/size
7647
+ */ /**
7648
+ * Whether the element establishes a containing block for its
7649
+ * `position: fixed` descendants, so their coordinates become relative to it
7650
+ * instead of the viewport.
7651
+ */ function isContainingBlockForFixed(style) {
7652
+ return style.transform !== '' && style.transform !== 'none' || style.perspective !== '' && style.perspective !== 'none' || style.filter !== '' && style.filter !== 'none' || style.willChange === 'transform' || style.willChange === 'perspective' || style.willChange === 'filter' || style.contain === 'paint' || style.contain === 'layout' || style.contain === 'strict' || style.contain === 'content';
7653
+ }
7654
+ /**
7655
+ * Returns the viewport offset of the containing block of a `position: fixed`
7656
+ * descendant of `elm`. A fixed element is normally positioned relative to the
7657
+ * viewport, but an ancestor with `transform`, `filter`, `perspective`, etc.
7658
+ * establishes a new containing block, shifting the fixed element by that
7659
+ * ancestor's top-left corner. The returned offset should be subtracted from
7660
+ * the desired viewport coordinates before applying them.
7661
+ *
7662
+ * Returns `{ x: 0, y: 0 }` when no such ancestor exists (the common case), so
7663
+ * call sites keep their previous behaviour unchanged.
7664
+ */ function getFixedPositionOffset(elm) {
7665
+ var _elm_ownerDocument;
7666
+ var win = (_elm_ownerDocument = elm.ownerDocument) === null || _elm_ownerDocument === void 0 ? void 0 : _elm_ownerDocument.defaultView;
7667
+ var node = elm.parentElement;
7668
+ while(win && node){
7669
+ if (isContainingBlockForFixed(win.getComputedStyle(node))) {
7670
+ var rect = node.getBoundingClientRect();
7671
+ return {
7672
+ x: rect.left,
7673
+ y: rect.top
7674
+ };
7675
+ }
7676
+ node = node.parentElement;
7677
+ }
7678
+ return {
7679
+ x: 0,
7680
+ y: 0
7681
+ };
7682
+ }
7683
+
7684
+
7631
7685
  /***/ }),
7632
7686
 
7633
7687
  /***/ 34027:
@@ -7671,18 +7725,20 @@ function getScrollParent(node) {
7671
7725
  "use strict";
7672
7726
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7673
7727
  /* harmony export */ getContentWidth: function() { return /* reexport safe */ _get_content_width__WEBPACK_IMPORTED_MODULE_0__.getContentWidth; },
7674
- /* harmony export */ getScrollParent: function() { return /* reexport safe */ _get_scroll_parent__WEBPACK_IMPORTED_MODULE_1__.getScrollParent; },
7675
- /* harmony export */ innerWidth: function() { return /* reexport safe */ _inner_width__WEBPACK_IMPORTED_MODULE_2__.innerWidth; },
7676
- /* harmony export */ offset: function() { return /* reexport safe */ _offset__WEBPACK_IMPORTED_MODULE_4__.offset; },
7677
- /* harmony export */ position: function() { return /* reexport safe */ _position__WEBPACK_IMPORTED_MODULE_5__.position; },
7678
- /* harmony export */ size: function() { return /* reexport safe */ _object_size__WEBPACK_IMPORTED_MODULE_3__.size; }
7728
+ /* harmony export */ getFixedPositionOffset: function() { return /* reexport safe */ _get_fixed_position_offset__WEBPACK_IMPORTED_MODULE_1__.getFixedPositionOffset; },
7729
+ /* harmony export */ getScrollParent: function() { return /* reexport safe */ _get_scroll_parent__WEBPACK_IMPORTED_MODULE_2__.getScrollParent; },
7730
+ /* harmony export */ innerWidth: function() { return /* reexport safe */ _inner_width__WEBPACK_IMPORTED_MODULE_3__.innerWidth; },
7731
+ /* harmony export */ offset: function() { return /* reexport safe */ _offset__WEBPACK_IMPORTED_MODULE_5__.offset; },
7732
+ /* harmony export */ position: function() { return /* reexport safe */ _position__WEBPACK_IMPORTED_MODULE_6__.position; },
7733
+ /* harmony export */ size: function() { return /* reexport safe */ _object_size__WEBPACK_IMPORTED_MODULE_4__.size; }
7679
7734
  /* harmony export */ });
7680
7735
  /* harmony import */ var _get_content_width__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(54447);
7681
- /* harmony import */ var _get_scroll_parent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34027);
7682
- /* harmony import */ var _inner_width__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83215);
7683
- /* harmony import */ var _object_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18073);
7684
- /* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69143);
7685
- /* harmony import */ var _position__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23599);
7736
+ /* harmony import */ var _get_fixed_position_offset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2373);
7737
+ /* harmony import */ var _get_scroll_parent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34027);
7738
+ /* harmony import */ var _inner_width__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83215);
7739
+ /* harmony import */ var _object_size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18073);
7740
+ /* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69143);
7741
+ /* harmony import */ var _position__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23599);
7686
7742
  /*!
7687
7743
  * Jodit Editor (https://xdsoft.net/jodit/)
7688
7744
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -7697,6 +7753,7 @@ function getScrollParent(node) {
7697
7753
 
7698
7754
 
7699
7755
 
7756
+
7700
7757
  /***/ }),
7701
7758
 
7702
7759
  /***/ 83215:
@@ -16361,9 +16418,10 @@ UIButtonGroup = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_6__.__decor
16361
16418
  /* harmony import */ var jodit_core_decorators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(84839);
16362
16419
  /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27795);
16363
16420
  /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(28077);
16364
- /* harmony import */ var jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(23599);
16365
- /* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(93640);
16366
- /* harmony import */ var jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(96007);
16421
+ /* harmony import */ var jodit_core_helpers_size_get_fixed_position_offset__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(2373);
16422
+ /* harmony import */ var jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(23599);
16423
+ /* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(93640);
16424
+ /* harmony import */ var jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(96007);
16367
16425
  /*!
16368
16426
  * Jodit Editor (https://xdsoft.net/jodit/)
16369
16427
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -16388,6 +16446,7 @@ UIButtonGroup = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_6__.__decor
16388
16446
 
16389
16447
 
16390
16448
 
16449
+
16391
16450
  var WINDOW_EVENTS_ON_HIDE = [
16392
16451
  'scroll.tooltip',
16393
16452
  'joditCloseDialog',
@@ -16487,11 +16546,11 @@ var UITooltip = /*#__PURE__*/ function(UIElement) {
16487
16546
  if (!jodit_core_dom__WEBPACK_IMPORTED_MODULE_10__.Dom.isHTMLElement(e.target)) {
16488
16547
  return;
16489
16548
  }
16490
- var tooltip = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.attr)(e.target, 'aria-label');
16549
+ var tooltip = (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_14__.attr)(e.target, 'aria-label');
16491
16550
  if (!tooltip) {
16492
16551
  return;
16493
16552
  }
16494
- var disabled = Boolean((0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.attr)(e.target, 'disabled'));
16553
+ var disabled = Boolean((0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_14__.attr)(e.target, 'disabled'));
16495
16554
  if (disabled) {
16496
16555
  return;
16497
16556
  }
@@ -16502,7 +16561,7 @@ var UITooltip = /*#__PURE__*/ function(UIElement) {
16502
16561
  this.__currentTarget = e.target;
16503
16562
  var target = e.target;
16504
16563
  this.__open(function() {
16505
- var pos = (0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_12__.position)(target);
16564
+ var pos = (0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_13__.position)(target);
16506
16565
  return {
16507
16566
  x: pos.left + pos.width / 2,
16508
16567
  y: pos.top + pos.height
@@ -16535,18 +16594,23 @@ var UITooltip = /*#__PURE__*/ function(UIElement) {
16535
16594
  this.setMod('above', false);
16536
16595
  this.getElm('content').innerHTML = content;
16537
16596
  var point = getPoint();
16538
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.css)(this.container, {
16539
- left: point.x,
16540
- top: point.y
16597
+ // The tooltip is `position: fixed`. If it is rendered inside an ancestor
16598
+ // with a `transform` (e.g. an editor placed in a modal/flyout), that
16599
+ // ancestor becomes the containing block, so viewport coordinates must be
16600
+ // shifted by its offset. Returns `{0, 0}` when there is no such ancestor.
16601
+ var offset = (0,jodit_core_helpers_size_get_fixed_position_offset__WEBPACK_IMPORTED_MODULE_12__.getFixedPositionOffset)(this.container);
16602
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_14__.css)(this.container, {
16603
+ left: point.x - offset.x,
16604
+ top: point.y - offset.y
16541
16605
  });
16542
- var tooltipPos = (0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_12__.position)(this.container);
16606
+ var tooltipPos = (0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_13__.position)(this.container);
16543
16607
  var viewHeight = this.j.ow.innerHeight;
16544
16608
  // If tooltip overflows below viewport, show it above the target
16545
16609
  if (tooltipPos.top + tooltipPos.height > viewHeight) {
16546
- var targetPos = (0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_12__.position)(this.__currentTarget);
16610
+ var targetPos = (0,jodit_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_13__.position)(this.__currentTarget);
16547
16611
  this.setMod('above', true);
16548
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.css)(this.container, {
16549
- top: targetPos.top - tooltipPos.height
16612
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_14__.css)(this.container, {
16613
+ top: targetPos.top - tooltipPos.height - offset.y
16550
16614
  });
16551
16615
  }
16552
16616
  }
@@ -16561,7 +16625,7 @@ var UITooltip = /*#__PURE__*/ function(UIElement) {
16561
16625
  this.__isOpened = false;
16562
16626
  this.setMod('visible', false);
16563
16627
  this.getElm('content').innerHTML = '';
16564
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_13__.css)(this.container, {
16628
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_14__.css)(this.container, {
16565
16629
  left: -5000
16566
16630
  });
16567
16631
  }
@@ -16591,7 +16655,7 @@ var UITooltip = /*#__PURE__*/ function(UIElement) {
16591
16655
  }
16592
16656
  ]);
16593
16657
  return UITooltip;
16594
- }(jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_14__.UIElement);
16658
+ }(jodit_core_ui_element__WEBPACK_IMPORTED_MODULE_15__.UIElement);
16595
16659
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_7__.__decorate)([
16596
16660
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_9__.autobind
16597
16661
  ], UITooltip.prototype, "__onMouseLeave", null);
@@ -19156,9 +19220,13 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
19156
19220
  }
19157
19221
  var _this___calculatePosition = (0,_swc_helpers_sliced_to_array__WEBPACK_IMPORTED_MODULE_9__._)(this.__calculatePosition(this.__targetBound(), this.viewBound(), (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_15__.position)(this.container, this.j)), 2), pos = _this___calculatePosition[0], strategy = _this___calculatePosition[1];
19158
19222
  this.setMod('strategy', strategy);
19223
+ // The popup is `position: fixed`; shift by the containing-block offset
19224
+ // when it is rendered inside a transformed ancestor (e.g. a modal),
19225
+ // otherwise `{0, 0}` keeps the viewport coordinates unchanged.
19226
+ var offset = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_15__.getFixedPositionOffset)(this.container);
19159
19227
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_15__.css)(this.container, {
19160
- left: pos.left,
19161
- top: pos.top
19228
+ left: pos.left - offset.x,
19229
+ top: pos.top - offset.y
19162
19230
  });
19163
19231
  this.__childrenPopups.forEach(function(popup) {
19164
19232
  return popup.updatePosition();
@@ -46510,6 +46578,7 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
46510
46578
  * Stop a selection process
46511
46579
  */ function __onStopSelection(table, e) {
46512
46580
  var _this = this;
46581
+ var _box_bound__, _box_bound__1;
46513
46582
  if (!this.__selectedCell) {
46514
46583
  return;
46515
46584
  }
@@ -46534,7 +46603,16 @@ var selectCells = /*#__PURE__*/ function(Plugin) {
46534
46603
  cell,
46535
46604
  this.__selectedCell
46536
46605
  ]), box = this.__tableModule.formalMatrix(table);
46537
- var max = box[bound[1][0]][bound[1][1]], min = box[bound[0][0]][bound[0][1]];
46606
+ var max = (_box_bound__ = box[bound[1][0]]) === null || _box_bound__ === void 0 ? void 0 : _box_bound__[bound[1][1]], min = (_box_bound__1 = box[bound[0][0]]) === null || _box_bound__1 === void 0 ? void 0 : _box_bound__1[bound[0][1]];
46607
+ // `getSelectedBound` keeps its `Infinity` sentinel when none of the
46608
+ // selected cells belong to this table's matrix — e.g. after a
46609
+ // drag-and-drop that moved/removed the cells, leaving a stale anchor and
46610
+ // a drop target outside the table. Bail out instead of dereferencing an
46611
+ // out-of-range matrix slot (which threw `Cannot read properties of
46612
+ // undefined`).
46613
+ if (!min || !max) {
46614
+ return;
46615
+ }
46538
46616
  this.j.e.fire('showPopup', table, function() {
46539
46617
  var minOffset = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_12__.position)(min, _this.j), maxOffset = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_12__.position)(max, _this.j);
46540
46618
  return {
package/es5/jodit.min.css CHANGED
@@ -1,14 +1,14 @@
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.7
4
+ * Version: v4.12.9
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
8
8
  /*!
9
9
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
10
10
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
11
- * Version: v4.12.7
11
+ * Version: v4.12.9
12
12
  * Url: https://xdsoft.net/jodit/
13
13
  * License(s): MIT
14
14
  */