jodit 4.2.50 → 4.3.1

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 (82) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +238 -108
  5. package/es2015/jodit.min.js +2 -2
  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.css +1 -1
  13. package/es2018/jodit.fat.min.js +2 -2
  14. package/es2018/jodit.js +239 -108
  15. package/es2018/jodit.min.js +2 -2
  16. package/es2018/plugins/debug/debug.css +1 -1
  17. package/es2018/plugins/debug/debug.js +1 -1
  18. package/es2018/plugins/debug/debug.min.js +1 -1
  19. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  20. package/es2018/plugins/speech-recognize/speech-recognize.js +1 -1
  21. package/es2018/plugins/speech-recognize/speech-recognize.min.js +1 -1
  22. package/es2021/jodit.css +1 -1
  23. package/es2021/jodit.fat.min.js +2 -2
  24. package/es2021/jodit.js +237 -107
  25. package/es2021/jodit.min.js +2 -2
  26. package/es2021/plugins/debug/debug.css +1 -1
  27. package/es2021/plugins/debug/debug.js +1 -1
  28. package/es2021/plugins/debug/debug.min.js +1 -1
  29. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  30. package/es2021/plugins/speech-recognize/speech-recognize.js +1 -1
  31. package/es2021/plugins/speech-recognize/speech-recognize.min.js +1 -1
  32. package/es2021.en/jodit.css +1 -1
  33. package/es2021.en/jodit.fat.min.js +2 -2
  34. package/es2021.en/jodit.js +237 -107
  35. package/es2021.en/jodit.min.js +2 -2
  36. package/es2021.en/plugins/debug/debug.css +1 -1
  37. package/es2021.en/plugins/debug/debug.js +1 -1
  38. package/es2021.en/plugins/debug/debug.min.js +1 -1
  39. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  40. package/es2021.en/plugins/speech-recognize/speech-recognize.js +1 -1
  41. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +1 -1
  42. package/es5/164.fat.min.js +1 -1
  43. package/es5/164.min.js +1 -1
  44. package/es5/5.fat.min.js +1 -1
  45. package/es5/5.min.js +1 -1
  46. package/es5/jodit.css +2 -2
  47. package/es5/jodit.fat.min.js +2 -2
  48. package/es5/jodit.js +241 -109
  49. package/es5/jodit.min.css +2 -2
  50. package/es5/jodit.min.js +2 -2
  51. package/es5/plugins/debug/debug.css +1 -1
  52. package/es5/plugins/debug/debug.js +1 -1
  53. package/es5/plugins/debug/debug.min.js +1 -1
  54. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  55. package/es5/plugins/speech-recognize/speech-recognize.js +1 -1
  56. package/es5/plugins/speech-recognize/speech-recognize.min.js +1 -1
  57. package/esm/config.d.ts +4 -0
  58. package/esm/config.js +4 -0
  59. package/esm/core/constants.js +1 -1
  60. package/esm/core/decorators/cache/cache.d.ts +100 -0
  61. package/esm/core/decorators/cache/cache.js +106 -0
  62. package/esm/core/global.d.ts +6 -1
  63. package/esm/core/global.js +15 -13
  64. package/esm/core/helpers/utils/selector.d.ts +5 -1
  65. package/esm/core/helpers/utils/selector.js +3 -0
  66. package/esm/core/traits/dlgs.js +3 -0
  67. package/esm/core/view/view.js +4 -6
  68. package/esm/jodit.js +5 -5
  69. package/esm/modules/dialog/dialog.d.ts +8 -8
  70. package/esm/modules/dialog/dialog.js +37 -30
  71. package/esm/modules/file-browser/file-browser.js +2 -2
  72. package/esm/plugins/clipboard/clipboard.js +2 -1
  73. package/esm/plugins/image-processor/image-processor.js +5 -4
  74. package/esm/plugins/search/search.js +2 -2
  75. package/esm/types/view.d.ts +1 -0
  76. package/package.json +1 -1
  77. package/types/config.d.ts +4 -0
  78. package/types/core/decorators/cache/cache.d.ts +100 -0
  79. package/types/core/global.d.ts +6 -1
  80. package/types/core/helpers/utils/selector.d.ts +5 -1
  81. package/types/modules/dialog/dialog.d.ts +8 -8
  82. package/types/types/view.d.ts +1 -0
package/es2018/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.2.50
4
+ * Version: v4.3.1
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1000,6 +1000,10 @@ class Config {
1000
1000
  * Buttons in toolbat without SVG - only texts
1001
1001
  */
1002
1002
  this.textIcons = false;
1003
+ /**
1004
+ * Element for dialog container
1005
+ */
1006
+ this.popupRoot = null;
1003
1007
  /**
1004
1008
  * shows a INPUT[type=color] to open the browser color picker, on the right bottom of widget color picker
1005
1009
  */
@@ -1735,7 +1739,7 @@ __webpack_require__.r(__webpack_exports__);
1735
1739
  * Released under MIT see LICENSE.txt in the project root for license information.
1736
1740
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
1737
1741
  */
1738
- const APP_VERSION = "4.2.50";
1742
+ const APP_VERSION = "4.3.1";
1739
1743
  // prettier-ignore
1740
1744
  const ES = "es2018";
1741
1745
  const IS_ES_MODERN = true;
@@ -2152,9 +2156,10 @@ class Create {
2152
2156
  /* harmony export */ PP: function() { return /* binding */ cache; }
2153
2157
  /* harmony export */ });
2154
2158
  /* harmony import */ var jodit_core_component_statuses__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64567);
2155
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
2156
- /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9823);
2157
- /* harmony import */ var jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76166);
2159
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17352);
2160
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55186);
2161
+ /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9823);
2162
+ /* harmony import */ var jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(76166);
2158
2163
  /*!
2159
2164
  * Jodit Editor (https://xdsoft.net/jodit/)
2160
2165
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -2164,19 +2169,125 @@ class Create {
2164
2169
 
2165
2170
 
2166
2171
 
2172
+
2173
+ /**
2174
+ * Retrieves a cached property value from an object if it exists; otherwise, returns `null`.
2175
+ *
2176
+ * This utility is particularly useful when working with properties that are lazily initialized
2177
+ * or dynamically created, such as getters or cached computations. It ensures you can safely
2178
+ * access the value without triggering initialization or creating a new instance.
2179
+ *
2180
+ * ### Usage Example:
2181
+ * ```typescript
2182
+ * import type { IUIElement } from "jodit";
2183
+ *
2184
+ * const { component, cache, cached } = Jodit.decorators;
2185
+ * const { UIElement } = Jodit.modules;
2186
+ *
2187
+ * @component
2188
+ * class SomeComponent extends UIElement {
2189
+ * @cache
2190
+ * get someElement(): IUIElement {
2191
+ * return new UIElement(this.jodit);
2192
+ * }
2193
+ *
2194
+ * destruct() {
2195
+ * // Use the cached utility to clean up only if the property is initialized
2196
+ * cached(this, 'someElement')?.destruct();
2197
+ * super.destruct();
2198
+ * }
2199
+ * }
2200
+ * ```
2201
+ *
2202
+ * @param object - The object containing the property to check.
2203
+ * @param property - The name of the property to retrieve from the cache.
2204
+ * @returns The cached value of the property if it exists; otherwise, `null`.
2205
+ *
2206
+ * ### Notes:
2207
+ * - If the property is defined as a getter, the function will return `null`
2208
+ * instead of invoking the getter.
2209
+ * - This function is non-destructive and does not alter the object's state.
2210
+ */
2167
2211
  function cached(object, property) {
2168
2212
  const descriptor = Object.getOwnPropertyDescriptor(object, property);
2169
- if (!descriptor || (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isFunction */ .Tn)(descriptor.get)) {
2213
+ if (!descriptor || (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__/* .isFunction */ .Tn)(descriptor.get)) {
2170
2214
  return null;
2171
2215
  }
2172
2216
  return descriptor.value;
2173
2217
  }
2218
+ /**
2219
+ * A decorator that caches the result of a getter method. Once the getter is accessed for the first time,
2220
+ * its computed value is stored as a property of the object. Subsequent accesses return the cached value
2221
+ * without recalculating it, improving performance and avoiding redundant computations.
2222
+ *
2223
+ * ### Key Features:
2224
+ * - **Lazy Initialization**: The original getter is invoked only once, the first time the property is accessed.
2225
+ * - **Immutability**: After caching, the value is stored as a non-writable, non-configurable property, preventing accidental modifications.
2226
+ * - **Conditional Caching**: If the returned value has a property `noCache` set to `true`, the caching mechanism is bypassed, and the getter is invoked each time.
2227
+ *
2228
+ * ### Usage Example 1: Basic Caching
2229
+ * ```typescript
2230
+ * import { cache } from './decorators';
2231
+ *
2232
+ * class Example {
2233
+ * private counter = 0;
2234
+ *
2235
+ * @cache
2236
+ * get expensiveComputation(): number {
2237
+ * console.log('Calculating...');
2238
+ * return ++this.counter;
2239
+ * }
2240
+ * }
2241
+ *
2242
+ * const instance = new Example();
2243
+ * console.log(instance.expensiveComputation); // Logs "Calculating..." and returns 1
2244
+ * console.log(instance.expensiveComputation); // Returns 1 (cached value, no calculation)
2245
+ * ```
2246
+ *
2247
+ * ### Usage Example 2: Integration with Cached Utilities
2248
+ * ```typescript
2249
+ * import { cache, cached } from './decorators';
2250
+ * import type { IUIElement } from "jodit";
2251
+ *
2252
+ * const { component } = Jodit.decorators;
2253
+ * const { UIElement } = Jodit.modules;
2254
+ *
2255
+ * @component
2256
+ * class SomeComponent extends UIElement {
2257
+ * @cache
2258
+ * get someElement(): IUIElement {
2259
+ * return new UIElement(this.jodit);
2260
+ * }
2261
+ *
2262
+ * destruct() {
2263
+ * // Use the cached utility to clean up only if the property is initialized
2264
+ * cached(this, 'someElement')?.destruct();
2265
+ * super.destruct();
2266
+ * }
2267
+ * }
2268
+ * ```
2269
+ *
2270
+ * @param _ - The target object (not used directly).
2271
+ * @param name - The name of the property to decorate.
2272
+ * @param descriptor - The property descriptor, which must include a getter method.
2273
+ * @throws Will throw an error if the descriptor does not include a getter.
2274
+ *
2275
+ * ### Notes:
2276
+ * - **Performance**: Ideal for properties that are computationally expensive and do not change after the initial computation.
2277
+ * - **Flexibility**: Supports conditional caching via the `noCache` property in the returned value.
2278
+ * - **Compatibility**: Designed to work seamlessly with objects and classes in TypeScript or JavaScript.
2279
+ */
2174
2280
  function cache(_, name, descriptor) {
2175
2281
  const getter = descriptor.get;
2176
2282
  if (!getter) {
2177
- throw (0,jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_3__/* .error */ .z3)('Getter property descriptor expected');
2283
+ throw (0,jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_4__/* .error */ .z3)('Getter property descriptor expected');
2178
2284
  }
2179
2285
  descriptor.get = function () {
2286
+ if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.IS_PROD) {
2287
+ if (this.isInDestruct) {
2288
+ console.error('Trying to access property in destructed component');
2289
+ }
2290
+ }
2180
2291
  const value = getter.call(this);
2181
2292
  if (value && value.noCache === true) {
2182
2293
  return value;
@@ -2192,8 +2303,8 @@ function cache(_, name, descriptor) {
2192
2303
  }
2193
2304
  function cacheHTML(target, _, descriptor) {
2194
2305
  const fn = descriptor.value;
2195
- if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isFunction */ .Tn)(fn)) {
2196
- throw (0,jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_3__/* .error */ .z3)('Handler must be a Function');
2306
+ if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__/* .isFunction */ .Tn)(fn)) {
2307
+ throw (0,jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_4__/* .error */ .z3)('Handler must be a Function');
2197
2308
  }
2198
2309
  let useCache = true;
2199
2310
  const cached = new WeakMap();
@@ -2203,13 +2314,13 @@ function cacheHTML(target, _, descriptor) {
2203
2314
  return (_a = cached.get(this.constructor)) === null || _a === void 0 ? void 0 : _a.cloneNode(true);
2204
2315
  }
2205
2316
  const value = fn.apply(this, attrs);
2206
- if (useCache && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isElement(value)) {
2317
+ if (useCache && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isElement(value)) {
2207
2318
  cached.set(this.constructor, value);
2208
2319
  }
2209
2320
  return useCache ? value.cloneNode(true) : value;
2210
2321
  };
2211
2322
  target.hookStatus(jodit_core_component_statuses__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready, (component) => {
2212
- const view = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isViewObject */ .hH)(component)
2323
+ const view = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__/* .isViewObject */ .hH)(component)
2213
2324
  ? component
2214
2325
  : component.jodit;
2215
2326
  useCache = Boolean(view.options.cache);
@@ -4457,18 +4568,20 @@ class EventHandlersStore {
4457
4568
  /* harmony export */ RR: function() { return /* binding */ eventEmitter; },
4458
4569
  /* harmony export */ VF: function() { return /* binding */ instances; },
4459
4570
  /* harmony export */ av: function() { return /* binding */ modules; },
4571
+ /* harmony export */ ef: function() { return /* binding */ getPopupViewRoot; },
4460
4572
  /* harmony export */ fg: function() { return /* binding */ pluginSystem; },
4461
4573
  /* harmony export */ w9: function() { return /* binding */ uniqueUid; }
4462
4574
  /* harmony export */ });
4463
- /* harmony import */ var jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83044);
4464
- /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(98253);
4465
- /* harmony import */ var jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12041);
4466
- /* harmony import */ var jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(449);
4467
- /* harmony import */ var jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75766);
4468
- /* harmony import */ var jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77402);
4469
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17352);
4470
- /* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71842);
4471
- /* harmony import */ var _event_emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50025);
4575
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65147);
4576
+ /* harmony import */ var jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83044);
4577
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98253);
4578
+ /* harmony import */ var jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12041);
4579
+ /* harmony import */ var jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(449);
4580
+ /* harmony import */ var jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75766);
4581
+ /* harmony import */ var jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77402);
4582
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17352);
4583
+ /* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71842);
4584
+ /* harmony import */ var _event_emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50025);
4472
4585
  /*!
4473
4586
  * Jodit Editor (https://xdsoft.net/jodit/)
4474
4587
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -4483,6 +4596,7 @@ class EventHandlersStore {
4483
4596
 
4484
4597
 
4485
4598
 
4599
+
4486
4600
  const instances = {};
4487
4601
  let counter = 1;
4488
4602
  const uuids = new Set();
@@ -4501,15 +4615,15 @@ function uniqueUid() {
4501
4615
  uuids.add(uid);
4502
4616
  return uid;
4503
4617
  }
4504
- const pluginSystem = new jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_1__/* .PluginSystem */ .$();
4618
+ const pluginSystem = new jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_2__/* .PluginSystem */ .$();
4505
4619
  const modules = {};
4506
4620
  const extendLang = (langs) => {
4507
4621
  Object.keys(langs).forEach(key => {
4508
- if (_constants__WEBPACK_IMPORTED_MODULE_2__.lang[key]) {
4509
- Object.assign(_constants__WEBPACK_IMPORTED_MODULE_2__.lang[key], langs[key]);
4622
+ if (_constants__WEBPACK_IMPORTED_MODULE_3__.lang[key]) {
4623
+ Object.assign(_constants__WEBPACK_IMPORTED_MODULE_3__.lang[key], langs[key]);
4510
4624
  }
4511
4625
  else {
4512
- _constants__WEBPACK_IMPORTED_MODULE_2__.lang[key] = langs[key];
4626
+ _constants__WEBPACK_IMPORTED_MODULE_3__.lang[key] = langs[key];
4513
4627
  }
4514
4628
  });
4515
4629
  };
@@ -4518,47 +4632,36 @@ const boxes = new WeakMap();
4518
4632
  * Create unique box(HTMLCotainer) and remove it after destroy
4519
4633
  */
4520
4634
  function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false) {
4521
- const name = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_5__/* .isString */ .K)(classFunc)
4635
+ const name = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__/* .isString */ .K)(classFunc)
4522
4636
  ? classFunc
4523
4637
  : classFunc
4524
- ? (0,jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_0__/* .getClassName */ .u)(classFunc.prototype)
4638
+ ? (0,jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_1__/* .getClassName */ .u)(classFunc.prototype)
4525
4639
  : 'jodit-utils';
4526
4640
  const data = boxes.get(jodit) || {}, key = name + tag;
4527
- const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4641
+ const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_7__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4642
+ let body = null;
4528
4643
  if (!data[key]) {
4529
4644
  let c = view.c;
4530
- let body;
4531
- if ((0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot) {
4532
- body = jodit.o.shadowRoot;
4533
- }
4534
- else {
4535
- body = jodit.od.body;
4536
- if ((0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit)) {
4537
- const dialog = _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.closest(jodit.container, 'dialog', jodit.od.body);
4538
- if (dialog) {
4539
- body = dialog;
4540
- }
4541
- }
4542
- }
4645
+ body = getPopupViewRoot(view.o, view.container, jodit.od.body);
4543
4646
  if (createInsideEditor &&
4544
- (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) &&
4647
+ (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_8__/* .isJoditObject */ .y)(jodit) &&
4545
4648
  jodit.od !== jodit.ed) {
4546
4649
  c = jodit.createInside;
4547
4650
  const place = tag === 'style' ? jodit.ed.head : jodit.ed.body;
4548
4651
  body =
4549
- (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4652
+ (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_8__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4550
4653
  ? jodit.o.shadowRoot
4551
4654
  : place;
4552
4655
  }
4553
4656
  const box = c.element(tag, {
4554
- className: `jodit jodit-${(0,jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_8__/* .kebabCase */ .k)(name)}-container jodit-box`
4657
+ className: `jodit jodit-${(0,jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_9__/* .kebabCase */ .k)(name)}-container jodit-box`
4555
4658
  });
4556
4659
  box.classList.add(`jodit_theme_${view.o.theme || 'default'}`);
4557
4660
  body.appendChild(box);
4558
4661
  data[key] = box;
4559
4662
  jodit.hookStatus('beforeDestruct', () => {
4560
4663
  view.events.off(box);
4561
- _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(box);
4664
+ _dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.safeRemove(box);
4562
4665
  delete data[key];
4563
4666
  if (Object.keys(data).length) {
4564
4667
  boxes.delete(jodit);
@@ -4571,10 +4674,20 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4571
4674
  data[key].classList.add(`jodit_theme_${view.o.theme || 'default'}`);
4572
4675
  return data[key];
4573
4676
  }
4677
+ /**
4678
+ * Get root element for view
4679
+ * @internal
4680
+ */
4681
+ function getPopupViewRoot(o, container, defaultRoot) {
4682
+ var _a, _b, _c;
4683
+ return ((_c = (_b = (_a = o.popupRoot) !== null && _a !== void 0 ? _a : o.shadowRoot) !== null && _b !== void 0 ? _b : _dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.closest(container, parentElement => _dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.isHTMLElement(parentElement) &&
4684
+ (_dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.isTag(parentElement, 'dialog') ||
4685
+ ['fixed', 'absolute'].includes((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.css)(parentElement, 'position'))), defaultRoot)) !== null && _c !== void 0 ? _c : defaultRoot);
4686
+ }
4574
4687
  /**
4575
4688
  * Global event emitter
4576
4689
  */
4577
- const eventEmitter = new _event_emitter__WEBPACK_IMPORTED_MODULE_4__/* .EventEmitter */ .bk();
4690
+ const eventEmitter = new _event_emitter__WEBPACK_IMPORTED_MODULE_5__/* .EventEmitter */ .bk();
4578
4691
 
4579
4692
 
4580
4693
  /***/ }),
@@ -8833,6 +8946,9 @@ const $$temp = () => {
8833
8946
  temp++;
8834
8947
  return temp;
8835
8948
  };
8949
+ /**
8950
+ * @deprecated Do not use it in new code
8951
+ */
8836
8952
  function $$(selector, root) {
8837
8953
  let result;
8838
8954
  if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_ES_NEXT &&
@@ -12905,9 +13021,10 @@ class Storage {
12905
13021
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12906
13022
  /* harmony export */ z: function() { return /* binding */ Dlgs; }
12907
13023
  /* harmony export */ });
12908
- /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9823);
12909
- /* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84976);
12910
- /* harmony import */ var jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34256);
13024
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56298);
13025
+ /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9823);
13026
+ /* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84976);
13027
+ /* harmony import */ var jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34256);
12911
13028
  /*!
12912
13029
  * Jodit Editor (https://xdsoft.net/jodit/)
12913
13030
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -12916,11 +13033,14 @@ class Storage {
12916
13033
 
12917
13034
 
12918
13035
 
13036
+
12919
13037
  class Dlgs {
12920
13038
  dlg(options) {
12921
- const dialog = new jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Dialog */ .lG({
13039
+ const popupRoot = (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_0__/* .getPopupViewRoot */ .ef)(this.o, this.container, this.od.body);
13040
+ const dialog = new jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Dialog */ .lG({
12922
13041
  language: this.o.language,
12923
13042
  shadowRoot: this.o.shadowRoot,
13043
+ popupRoot,
12924
13044
  ownerWindow: this.o.ownerWindow,
12925
13045
  defaultTimeout: this.o.defaultTimeout,
12926
13046
  direction: this.o.direction,
@@ -12928,29 +13048,29 @@ class Dlgs {
12928
13048
  globalFullSize: this.o.globalFullSize,
12929
13049
  ...options
12930
13050
  });
12931
- (0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_1__/* .markOwner */ .b_)(this, dialog.container);
13051
+ (0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_2__/* .markOwner */ .b_)(this, dialog.container);
12932
13052
  dialog.parent = this;
12933
13053
  return dialog.bindDestruct(this);
12934
13054
  }
12935
13055
  confirm(msg, title, callback) {
12936
13056
  msg = processTitle(msg, this);
12937
13057
  title = processTitle(title, this);
12938
- return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Confirm */ .pT.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback);
13058
+ return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Confirm */ .pT.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback);
12939
13059
  }
12940
13060
  prompt(msg, title, callback, placeholder, defaultValue) {
12941
13061
  msg = processTitle(msg, this);
12942
13062
  title = processTitle(title, this);
12943
13063
  placeholder = processTitle(placeholder, this);
12944
- return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Prompt */ .XG.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, placeholder, defaultValue);
13064
+ return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Prompt */ .XG.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, placeholder, defaultValue);
12945
13065
  }
12946
13066
  alert(msg, title, callback, className) {
12947
13067
  msg = processTitle(msg, this);
12948
13068
  title = processTitle(title, this);
12949
- return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Alert */ .Fc.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, className);
13069
+ return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Alert */ .Fc.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, className);
12950
13070
  }
12951
13071
  }
12952
13072
  function processTitle(title, self) {
12953
- if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isString */ .Kg)(title) && !(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__/* .isHTML */ .AH)(title)) {
13073
+ if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__/* .isString */ .Kg)(title) && !(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__/* .isHTML */ .AH)(title)) {
12954
13074
  title = self.i18n(title);
12955
13075
  }
12956
13076
  return title;
@@ -16279,19 +16399,18 @@ let View = View_1 = class View extends jodit_core_component_component__WEBPACK_I
16279
16399
  }
16280
16400
  /** @override */
16281
16401
  destruct() {
16402
+ var _a, _b, _c;
16282
16403
  if (this.isDestructed) {
16283
16404
  return;
16284
16405
  }
16285
- this.progressbar.destruct();
16286
- this.message.destruct();
16406
+ (_a = (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_5__/* .cached */ .PO)(this, 'progressbar')) === null || _a === void 0 ? void 0 : _a.destruct();
16407
+ (_b = (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_5__/* .cached */ .PO)(this, 'message')) === null || _b === void 0 ? void 0 : _b.destruct();
16287
16408
  if (this.events) {
16288
16409
  this.events.destruct();
16289
16410
  // @ts-ignore
16290
16411
  this.events = undefined;
16291
16412
  }
16292
- if (this.buffer) {
16293
- this.buffer.clear();
16294
- }
16413
+ (_c = (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_5__/* .cached */ .PO)(this, 'buffer')) === null || _c === void 0 ? void 0 : _c.clear();
16295
16414
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__/* .Dom */ .J.safeRemove(this.container);
16296
16415
  super.destruct();
16297
16416
  }
@@ -17512,20 +17631,21 @@ let Jodit = Jodit_1 = class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE
17512
17631
  * Jodit's Destructor. Remove editor, and return source input
17513
17632
  */
17514
17633
  destruct() {
17634
+ var _a, _b;
17515
17635
  if (this.isInDestruct) {
17516
17636
  return;
17517
17637
  }
17518
17638
  this.setStatus(jodit_modules__WEBPACK_IMPORTED_MODULE_7__.STATUSES.beforeDestruct);
17519
17639
  this.__elementToPlace.clear();
17520
- this.storage.clear();
17521
- this.buffer.clear();
17640
+ (_a = (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(this, 'storage')) === null || _a === void 0 ? void 0 : _a.clear();
17641
+ (_b = (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(this, 'buffer')) === null || _b === void 0 ? void 0 : _b.clear();
17522
17642
  this.commands.clear();
17523
17643
  this.__selectionLocked = null;
17524
17644
  this.e.off(this.ow, 'resize');
17525
17645
  this.e.off(this.ow);
17526
17646
  this.e.off(this.od);
17527
17647
  this.e.off(this.od.body);
17528
- const buffer = this.editor ? this.getEditorValue() : '';
17648
+ const tmpValue = this.editor ? this.getEditorValue() : '';
17529
17649
  this.places.forEach(({ container, workplace, statusbar, element, iframe, editor, history }) => {
17530
17650
  if (!element) {
17531
17651
  return;
@@ -17569,7 +17689,7 @@ let Jodit = Jodit_1 = class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE
17569
17689
  jodit_modules__WEBPACK_IMPORTED_MODULE_7__.Dom.safeRemove(iframe);
17570
17690
  // inline mode
17571
17691
  if (container === element) {
17572
- element.innerHTML = buffer;
17692
+ element.innerHTML = tmpValue;
17573
17693
  }
17574
17694
  history.destruct();
17575
17695
  });
@@ -18009,8 +18129,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18009
18129
  return 'Dialog';
18010
18130
  }
18011
18131
  get destination() {
18012
- var _a;
18013
- return ((_a = this.o.shadowRoot) !== null && _a !== void 0 ? _a : this.od.body);
18132
+ const { popupRoot, shadowRoot } = this.o;
18133
+ if (popupRoot) {
18134
+ return popupRoot;
18135
+ }
18136
+ if (shadowRoot) {
18137
+ return shadowRoot;
18138
+ }
18139
+ return this.od.body;
18014
18140
  }
18015
18141
  setElements(root, elements) {
18016
18142
  const elements_list = [];
@@ -18039,14 +18165,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18039
18165
  }
18040
18166
  });
18041
18167
  }
18042
- onMouseUp() {
18168
+ __onMouseUp() {
18043
18169
  if (this.draggable || this.resizable) {
18044
- this.removeGlobalResizeListeners();
18170
+ this.__removeGlobalResizeListeners();
18045
18171
  this.draggable = false;
18046
18172
  this.resizable = false;
18047
18173
  this.unlockSelect();
18048
18174
  if (this.e) {
18049
- this.removeGlobalResizeListeners();
18175
+ this.__removeGlobalResizeListeners();
18050
18176
  /**
18051
18177
  * Fired when the dialog box is finished to resizing
18052
18178
  */
@@ -18057,7 +18183,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18057
18183
  /**
18058
18184
  *
18059
18185
  */
18060
- onHeaderMouseDown(e) {
18186
+ __onHeaderMouseDown(e) {
18061
18187
  const target = e.target;
18062
18188
  if (!this.o.draggable ||
18063
18189
  (target && target.nodeName.match(/^(INPUT|SELECT)$/))) {
@@ -18073,7 +18199,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18073
18199
  e.preventDefault();
18074
18200
  }
18075
18201
  this.lockSelect();
18076
- this.addGlobalResizeListeners();
18202
+ this.__addGlobalResizeListeners();
18077
18203
  if (this.e) {
18078
18204
  /**
18079
18205
  * Fired when dialog box is started moving
@@ -18082,7 +18208,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18082
18208
  this.e.fire('closeAllPopups');
18083
18209
  }
18084
18210
  }
18085
- onMouseMove(e) {
18211
+ __onMouseMove(e) {
18086
18212
  if (this.draggable && this.o.draggable) {
18087
18213
  this.setPosition(this.startPoint.x + e.clientX - this.startX, this.startPoint.y + e.clientY - this.startY);
18088
18214
  if (this.e) {
@@ -18103,7 +18229,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18103
18229
  }
18104
18230
  }
18105
18231
  }
18106
- onEsc(e) {
18232
+ __onEsc(e) {
18107
18233
  if (!this.o.closeOnEsc) {
18108
18234
  return;
18109
18235
  }
@@ -18120,14 +18246,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18120
18246
  e.stopImmediatePropagation();
18121
18247
  }
18122
18248
  }
18123
- onResizerMouseDown(e) {
18249
+ __onResizerMouseDown(e) {
18124
18250
  this.resizable = true;
18125
18251
  this.startX = e.clientX;
18126
18252
  this.startY = e.clientY;
18127
18253
  this.startPoint.w = this.dialog.offsetWidth;
18128
18254
  this.startPoint.h = this.dialog.offsetHeight;
18129
18255
  this.lockSelect();
18130
- this.addGlobalResizeListeners();
18256
+ this.__addGlobalResizeListeners();
18131
18257
  if (this.e) {
18132
18258
  /**
18133
18259
  * Fired when dialog box is started resizing
@@ -18135,17 +18261,17 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18135
18261
  this.e.fire(this, 'startResize');
18136
18262
  }
18137
18263
  }
18138
- addGlobalResizeListeners() {
18264
+ __addGlobalResizeListeners() {
18139
18265
  const self = this;
18140
18266
  self.e
18141
- .on(self.ow, 'pointermove touchmove', self.onMouseMove)
18142
- .on(self.ow, 'pointerup touchend', self.onMouseUp);
18267
+ .on(self.ow, 'pointermove touchmove', self.__onMouseMove)
18268
+ .on(self.ow, 'pointerup touchend', self.__onMouseUp);
18143
18269
  }
18144
- removeGlobalResizeListeners() {
18270
+ __removeGlobalResizeListeners() {
18145
18271
  const self = this;
18146
18272
  self.e
18147
- .off(self.ow, 'mousemove pointermove', self.onMouseMove)
18148
- .off(self.ow, 'mouseup pointerup', self.onMouseUp);
18273
+ .off(self.ow, 'mousemove pointermove', self.__onMouseMove)
18274
+ .off(self.ow, 'mouseup pointerup', self.__onMouseUp);
18149
18275
  }
18150
18276
  /**
18151
18277
  * Specifies the size of the window
@@ -18401,7 +18527,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18401
18527
  this.toggleFullSize(false);
18402
18528
  }
18403
18529
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(this.container);
18404
- this.removeGlobalResizeListeners();
18530
+ this.__removeGlobalResizeListeners();
18405
18531
  /**
18406
18532
  * It called after the window is closed
18407
18533
  */
@@ -18427,7 +18553,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18427
18553
  this.unlockSelect = () => {
18428
18554
  this.setMod('moved', false);
18429
18555
  };
18430
- this.onResize = () => {
18556
+ this.__onResize = () => {
18431
18557
  if (this.options &&
18432
18558
  this.o.resizable &&
18433
18559
  !this.moved &&
@@ -18495,14 +18621,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18495
18621
  });
18496
18622
  const headerBox = self.getElm('header');
18497
18623
  headerBox &&
18498
- self.e.on(headerBox, 'pointerdown touchstart', self.onHeaderMouseDown);
18499
- self.e.on(self.resizer, 'mousedown touchstart', self.onResizerMouseDown);
18624
+ self.e.on(headerBox, 'pointerdown touchstart', self.__onHeaderMouseDown);
18625
+ self.e.on(self.resizer, 'mousedown touchstart', self.__onResizerMouseDown);
18500
18626
  const fullSize = jodit_core_global__WEBPACK_IMPORTED_MODULE_4__/* .pluginSystem */ .fg.get('fullsize');
18501
18627
  (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_6__/* .isFunction */ .Tn)(fullSize) && fullSize(self);
18502
18628
  this.e
18503
18629
  .on(self.container, 'close_dialog', self.close)
18504
- .on(this.ow, 'keydown', this.onEsc)
18505
- .on(this.ow, 'resize', this.onResize);
18630
+ .on(this.ow, 'keydown', this.__onEsc)
18631
+ .on(this.ow, 'resize', this.__onResize);
18506
18632
  if (this.o.closeOnClickOverlay) {
18507
18633
  const overlay = self.getElm('overlay');
18508
18634
  void 0;
@@ -18531,30 +18657,30 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18531
18657
  this.close();
18532
18658
  }
18533
18659
  if (this.events) {
18534
- this.removeGlobalResizeListeners();
18660
+ this.__removeGlobalResizeListeners();
18535
18661
  this.events
18536
18662
  .off(this.container, 'close_dialog', self.close)
18537
- .off(this.ow, 'keydown', this.onEsc)
18538
- .off(this.ow, 'resize', this.onResize);
18663
+ .off(this.ow, 'keydown', this.__onEsc)
18664
+ .off(this.ow, 'resize', this.__onResize);
18539
18665
  }
18540
18666
  super.destruct();
18541
18667
  }
18542
18668
  };
18543
18669
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18544
18670
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18545
- ], Dialog.prototype, "onMouseUp", null);
18671
+ ], Dialog.prototype, "__onMouseUp", null);
18546
18672
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18547
18673
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18548
- ], Dialog.prototype, "onHeaderMouseDown", null);
18674
+ ], Dialog.prototype, "__onHeaderMouseDown", null);
18549
18675
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18550
18676
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18551
- ], Dialog.prototype, "onMouseMove", null);
18677
+ ], Dialog.prototype, "__onMouseMove", null);
18552
18678
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18553
18679
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18554
- ], Dialog.prototype, "onEsc", null);
18680
+ ], Dialog.prototype, "__onEsc", null);
18555
18681
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18556
18682
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18557
- ], Dialog.prototype, "onResizerMouseDown", null);
18683
+ ], Dialog.prototype, "__onResizerMouseDown", null);
18558
18684
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18559
18685
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18560
18686
  ], Dialog.prototype, "close", null);
@@ -20194,11 +20320,12 @@ let FileBrowser = class FileBrowser extends jodit_core_view_view_with_toolbar__W
20194
20320
  self.setStatus(jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready);
20195
20321
  }
20196
20322
  destruct() {
20323
+ var _a;
20197
20324
  if (this.isInDestruct) {
20198
20325
  return;
20199
20326
  }
20327
+ (_a = (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.cached)(this, '_dialog')) === null || _a === void 0 ? void 0 : _a.destruct();
20200
20328
  super.destruct();
20201
- this._dialog.destruct();
20202
20329
  this.events && this.e.off('.filebrowser');
20203
20330
  this.uploader && this.uploader.destruct();
20204
20331
  }
@@ -27890,9 +28017,10 @@ function visitNodeWalker(jodit, nodeElm, allowTags, denyTags, currentSelectionNo
27890
28017
  "use strict";
27891
28018
  /* unused harmony export clipboard */
27892
28019
  /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
27893
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56298);
27894
- /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65147);
27895
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51329);
28020
+ /* harmony import */ var jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87875);
28021
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56298);
28022
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65147);
28023
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(51329);
27896
28024
  /*!
27897
28025
  * Jodit Editor (https://xdsoft.net/jodit/)
27898
28026
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -27902,6 +28030,7 @@ function visitNodeWalker(jodit, nodeElm, allowTags, denyTags, currentSelectionNo
27902
28030
 
27903
28031
 
27904
28032
 
28033
+
27905
28034
  /**
27906
28035
  * Clipboard plugin - cut and copy functionality
27907
28036
  */
@@ -27935,11 +28064,11 @@ class clipboard {
27935
28064
  .on(`copy.${jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID} cut.${jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID}`, (event) => {
27936
28065
  var _a;
27937
28066
  const selectedText = editor.s.html;
27938
- const clipboardData = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.getDataTransfer)(event) ||
27939
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.getDataTransfer)(editor.ew) ||
27940
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.getDataTransfer)(event.originalEvent);
28067
+ const clipboardData = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(event) ||
28068
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(editor.ew) ||
28069
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(event.originalEvent);
27941
28070
  if (clipboardData) {
27942
- clipboardData.setData(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.stripTags)(selectedText));
28071
+ clipboardData.setData(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.stripTags)(selectedText));
27943
28072
  clipboardData.setData(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML, selectedText);
27944
28073
  }
27945
28074
  editor.buffer.set(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, selectedText);
@@ -27959,11 +28088,11 @@ class clipboard {
27959
28088
  /** @override */
27960
28089
  destruct(editor) {
27961
28090
  var _a, _b;
27962
- (_a = editor === null || editor === void 0 ? void 0 : editor.buffer) === null || _a === void 0 ? void 0 : _a.set(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, '');
28091
+ (_a = (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_1__/* .cached */ .PO)(editor, 'buffer')) === null || _a === void 0 ? void 0 : _a.set(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, '');
27963
28092
  (_b = editor === null || editor === void 0 ? void 0 : editor.events) === null || _b === void 0 ? void 0 : _b.off('.' + jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID);
27964
28093
  }
27965
28094
  }
27966
- jodit_core_global__WEBPACK_IMPORTED_MODULE_1__/* .pluginSystem */ .fg.add('clipboard', clipboard);
28095
+ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .pluginSystem */ .fg.add('clipboard', clipboard);
27967
28096
 
27968
28097
 
27969
28098
  /***/ }),
@@ -31347,13 +31476,14 @@ const JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
31347
31476
  class imageProcessor extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plugin */ .k {
31348
31477
  afterInit(jodit) { }
31349
31478
  beforeDestruct(jodit) {
31350
- const list = jodit.buffer.get(JODIT_IMAGE_BLOB_ID);
31351
- if (list) {
31479
+ const buffer = (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(jodit, 'buffer');
31480
+ const list = buffer === null || buffer === void 0 ? void 0 : buffer.get(JODIT_IMAGE_BLOB_ID);
31481
+ if (buffer && list) {
31352
31482
  const keys = Object.keys(list);
31353
31483
  for (const uri of keys) {
31354
31484
  URL.revokeObjectURL(uri);
31355
31485
  }
31356
- jodit.buffer.delete(JODIT_IMAGE_BLOB_ID);
31486
+ buffer.delete(JODIT_IMAGE_BLOB_ID);
31357
31487
  }
31358
31488
  }
31359
31489
  onAfterGetValueFromEditor(data, consumer) {
@@ -38759,7 +38889,8 @@ class search extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plugin */
38759
38889
  }
38760
38890
  /** @override */
38761
38891
  beforeDestruct(jodit) {
38762
- this.ui.destruct();
38892
+ var _a;
38893
+ (_a = (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(this, 'ui')) === null || _a === void 0 ? void 0 : _a.destruct();
38763
38894
  jodit.e.off('.search');
38764
38895
  }
38765
38896
  }