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
@@ -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
  */
@@ -1736,7 +1740,7 @@ __webpack_require__.r(__webpack_exports__);
1736
1740
  * Released under MIT see LICENSE.txt in the project root for license information.
1737
1741
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
1738
1742
  */
1739
- const APP_VERSION = "4.2.50";
1743
+ const APP_VERSION = "4.3.1";
1740
1744
  // prettier-ignore
1741
1745
  const ES = "es2021";
1742
1746
  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();
@@ -2202,13 +2313,13 @@ function cacheHTML(target, _, descriptor) {
2202
2313
  return cached.get(this.constructor)?.cloneNode(true);
2203
2314
  }
2204
2315
  const value = fn.apply(this, attrs);
2205
- if (useCache && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isElement(value)) {
2316
+ if (useCache && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_2__/* .Dom */ .J.isElement(value)) {
2206
2317
  cached.set(this.constructor, value);
2207
2318
  }
2208
2319
  return useCache ? value.cloneNode(true) : value;
2209
2320
  };
2210
2321
  target.hookStatus(jodit_core_component_statuses__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready, (component) => {
2211
- const view = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isViewObject */ .hH)(component)
2322
+ const view = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__/* .isViewObject */ .hH)(component)
2212
2323
  ? component
2213
2324
  : component.jodit;
2214
2325
  useCache = Boolean(view.options.cache);
@@ -4442,18 +4553,20 @@ class EventHandlersStore {
4442
4553
  /* harmony export */ RR: function() { return /* binding */ eventEmitter; },
4443
4554
  /* harmony export */ VF: function() { return /* binding */ instances; },
4444
4555
  /* harmony export */ av: function() { return /* binding */ modules; },
4556
+ /* harmony export */ ef: function() { return /* binding */ getPopupViewRoot; },
4445
4557
  /* harmony export */ fg: function() { return /* binding */ pluginSystem; },
4446
4558
  /* harmony export */ w9: function() { return /* binding */ uniqueUid; }
4447
4559
  /* harmony export */ });
4448
- /* harmony import */ var jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83044);
4449
- /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(98253);
4450
- /* harmony import */ var jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12041);
4451
- /* harmony import */ var jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(449);
4452
- /* harmony import */ var jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75766);
4453
- /* harmony import */ var jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77402);
4454
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17352);
4455
- /* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71842);
4456
- /* harmony import */ var _event_emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50025);
4560
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65147);
4561
+ /* harmony import */ var jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83044);
4562
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98253);
4563
+ /* harmony import */ var jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12041);
4564
+ /* harmony import */ var jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(449);
4565
+ /* harmony import */ var jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75766);
4566
+ /* harmony import */ var jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77402);
4567
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17352);
4568
+ /* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71842);
4569
+ /* harmony import */ var _event_emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50025);
4457
4570
  /*!
4458
4571
  * Jodit Editor (https://xdsoft.net/jodit/)
4459
4572
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -4468,6 +4581,7 @@ class EventHandlersStore {
4468
4581
 
4469
4582
 
4470
4583
 
4584
+
4471
4585
  const instances = {};
4472
4586
  let counter = 1;
4473
4587
  const uuids = new Set();
@@ -4486,15 +4600,15 @@ function uniqueUid() {
4486
4600
  uuids.add(uid);
4487
4601
  return uid;
4488
4602
  }
4489
- const pluginSystem = new jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_1__/* .PluginSystem */ .$();
4603
+ const pluginSystem = new jodit_core_plugin_plugin_system__WEBPACK_IMPORTED_MODULE_2__/* .PluginSystem */ .$();
4490
4604
  const modules = {};
4491
4605
  const extendLang = (langs) => {
4492
4606
  Object.keys(langs).forEach(key => {
4493
- if (_constants__WEBPACK_IMPORTED_MODULE_2__.lang[key]) {
4494
- Object.assign(_constants__WEBPACK_IMPORTED_MODULE_2__.lang[key], langs[key]);
4607
+ if (_constants__WEBPACK_IMPORTED_MODULE_3__.lang[key]) {
4608
+ Object.assign(_constants__WEBPACK_IMPORTED_MODULE_3__.lang[key], langs[key]);
4495
4609
  }
4496
4610
  else {
4497
- _constants__WEBPACK_IMPORTED_MODULE_2__.lang[key] = langs[key];
4611
+ _constants__WEBPACK_IMPORTED_MODULE_3__.lang[key] = langs[key];
4498
4612
  }
4499
4613
  });
4500
4614
  };
@@ -4503,47 +4617,36 @@ const boxes = new WeakMap();
4503
4617
  * Create unique box(HTMLCotainer) and remove it after destroy
4504
4618
  */
4505
4619
  function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false) {
4506
- const name = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_5__/* .isString */ .K)(classFunc)
4620
+ const name = (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_6__/* .isString */ .K)(classFunc)
4507
4621
  ? classFunc
4508
4622
  : classFunc
4509
- ? (0,jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_0__/* .getClassName */ .u)(classFunc.prototype)
4623
+ ? (0,jodit_core_helpers_utils_get_class_name__WEBPACK_IMPORTED_MODULE_1__/* .getClassName */ .u)(classFunc.prototype)
4510
4624
  : 'jodit-utils';
4511
4625
  const data = boxes.get(jodit) || {}, key = name + tag;
4512
- const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4626
+ const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_7__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4627
+ let body = null;
4513
4628
  if (!data[key]) {
4514
4629
  let c = view.c;
4515
- let body;
4516
- if ((0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot) {
4517
- body = jodit.o.shadowRoot;
4518
- }
4519
- else {
4520
- body = jodit.od.body;
4521
- if ((0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit)) {
4522
- const dialog = _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.closest(jodit.container, 'dialog', jodit.od.body);
4523
- if (dialog) {
4524
- body = dialog;
4525
- }
4526
- }
4527
- }
4630
+ body = getPopupViewRoot(view.o, view.container, jodit.od.body);
4528
4631
  if (createInsideEditor &&
4529
- (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) &&
4632
+ (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_8__/* .isJoditObject */ .y)(jodit) &&
4530
4633
  jodit.od !== jodit.ed) {
4531
4634
  c = jodit.createInside;
4532
4635
  const place = tag === 'style' ? jodit.ed.head : jodit.ed.body;
4533
4636
  body =
4534
- (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4637
+ (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_8__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4535
4638
  ? jodit.o.shadowRoot
4536
4639
  : place;
4537
4640
  }
4538
4641
  const box = c.element(tag, {
4539
- className: `jodit jodit-${(0,jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_8__/* .kebabCase */ .k)(name)}-container jodit-box`
4642
+ className: `jodit jodit-${(0,jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_9__/* .kebabCase */ .k)(name)}-container jodit-box`
4540
4643
  });
4541
4644
  box.classList.add(`jodit_theme_${view.o.theme || 'default'}`);
4542
4645
  body.appendChild(box);
4543
4646
  data[key] = box;
4544
4647
  jodit.hookStatus('beforeDestruct', () => {
4545
4648
  view.events.off(box);
4546
- _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(box);
4649
+ _dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.safeRemove(box);
4547
4650
  delete data[key];
4548
4651
  if (Object.keys(data).length) {
4549
4652
  boxes.delete(jodit);
@@ -4556,10 +4659,22 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4556
4659
  data[key].classList.add(`jodit_theme_${view.o.theme || 'default'}`);
4557
4660
  return data[key];
4558
4661
  }
4662
+ /**
4663
+ * Get root element for view
4664
+ * @internal
4665
+ */
4666
+ function getPopupViewRoot(o, container, defaultRoot) {
4667
+ return (o.popupRoot ??
4668
+ o.shadowRoot ??
4669
+ _dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.closest(container, parentElement => _dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.isHTMLElement(parentElement) &&
4670
+ (_dom__WEBPACK_IMPORTED_MODULE_4__/* .Dom */ .J.isTag(parentElement, 'dialog') ||
4671
+ ['fixed', 'absolute'].includes((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_0__.css)(parentElement, 'position'))), defaultRoot) ??
4672
+ defaultRoot);
4673
+ }
4559
4674
  /**
4560
4675
  * Global event emitter
4561
4676
  */
4562
- const eventEmitter = new _event_emitter__WEBPACK_IMPORTED_MODULE_4__/* .EventEmitter */ .bk();
4677
+ const eventEmitter = new _event_emitter__WEBPACK_IMPORTED_MODULE_5__/* .EventEmitter */ .bk();
4563
4678
 
4564
4679
 
4565
4680
  /***/ }),
@@ -8813,6 +8928,9 @@ const $$temp = () => {
8813
8928
  temp++;
8814
8929
  return temp;
8815
8930
  };
8931
+ /**
8932
+ * @deprecated Do not use it in new code
8933
+ */
8816
8934
  function $$(selector, root) {
8817
8935
  let result;
8818
8936
  if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_ES_NEXT &&
@@ -12866,9 +12984,10 @@ class Storage {
12866
12984
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12867
12985
  /* harmony export */ z: function() { return /* binding */ Dlgs; }
12868
12986
  /* harmony export */ });
12869
- /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9823);
12870
- /* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84976);
12871
- /* harmony import */ var jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34256);
12987
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56298);
12988
+ /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9823);
12989
+ /* harmony import */ var jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84976);
12990
+ /* harmony import */ var jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34256);
12872
12991
  /*!
12873
12992
  * Jodit Editor (https://xdsoft.net/jodit/)
12874
12993
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -12877,11 +12996,14 @@ class Storage {
12877
12996
 
12878
12997
 
12879
12998
 
12999
+
12880
13000
  class Dlgs {
12881
13001
  dlg(options) {
12882
- const dialog = new jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Dialog */ .lG({
13002
+ const popupRoot = (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_0__/* .getPopupViewRoot */ .ef)(this.o, this.container, this.od.body);
13003
+ const dialog = new jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Dialog */ .lG({
12883
13004
  language: this.o.language,
12884
13005
  shadowRoot: this.o.shadowRoot,
13006
+ popupRoot,
12885
13007
  ownerWindow: this.o.ownerWindow,
12886
13008
  defaultTimeout: this.o.defaultTimeout,
12887
13009
  direction: this.o.direction,
@@ -12889,29 +13011,29 @@ class Dlgs {
12889
13011
  globalFullSize: this.o.globalFullSize,
12890
13012
  ...options
12891
13013
  });
12892
- (0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_1__/* .markOwner */ .b_)(this, dialog.container);
13014
+ (0,jodit_core_helpers_utils_utils__WEBPACK_IMPORTED_MODULE_2__/* .markOwner */ .b_)(this, dialog.container);
12893
13015
  dialog.parent = this;
12894
13016
  return dialog.bindDestruct(this);
12895
13017
  }
12896
13018
  confirm(msg, title, callback) {
12897
13019
  msg = processTitle(msg, this);
12898
13020
  title = processTitle(title, this);
12899
- return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Confirm */ .pT.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback);
13021
+ return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Confirm */ .pT.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback);
12900
13022
  }
12901
13023
  prompt(msg, title, callback, placeholder, defaultValue) {
12902
13024
  msg = processTitle(msg, this);
12903
13025
  title = processTitle(title, this);
12904
13026
  placeholder = processTitle(placeholder, this);
12905
- return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Prompt */ .XG.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, placeholder, defaultValue);
13027
+ return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Prompt */ .XG.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, placeholder, defaultValue);
12906
13028
  }
12907
13029
  alert(msg, title, callback, className) {
12908
13030
  msg = processTitle(msg, this);
12909
13031
  title = processTitle(title, this);
12910
- return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_2__/* .Alert */ .Fc.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, className);
13032
+ return jodit_modules_dialog__WEBPACK_IMPORTED_MODULE_3__/* .Alert */ .Fc.call(this.dlg({ closeOnClickOverlay: true }), msg, title, callback, className);
12911
13033
  }
12912
13034
  }
12913
13035
  function processTitle(title, self) {
12914
- 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)) {
13036
+ 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)) {
12915
13037
  title = self.i18n(title);
12916
13038
  }
12917
13039
  return title;
@@ -16228,16 +16350,14 @@ let View = View_1 = class View extends jodit_core_component_component__WEBPACK_I
16228
16350
  if (this.isDestructed) {
16229
16351
  return;
16230
16352
  }
16231
- this.progressbar.destruct();
16232
- this.message.destruct();
16353
+ (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_5__/* .cached */ .PO)(this, 'progressbar')?.destruct();
16354
+ (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_5__/* .cached */ .PO)(this, 'message')?.destruct();
16233
16355
  if (this.events) {
16234
16356
  this.events.destruct();
16235
16357
  // @ts-ignore
16236
16358
  this.events = undefined;
16237
16359
  }
16238
- if (this.buffer) {
16239
- this.buffer.clear();
16240
- }
16360
+ (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_5__/* .cached */ .PO)(this, 'buffer')?.clear();
16241
16361
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_7__/* .Dom */ .J.safeRemove(this.container);
16242
16362
  super.destruct();
16243
16363
  }
@@ -17463,15 +17583,15 @@ let Jodit = Jodit_1 = class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE
17463
17583
  }
17464
17584
  this.setStatus(jodit_modules__WEBPACK_IMPORTED_MODULE_7__.STATUSES.beforeDestruct);
17465
17585
  this.__elementToPlace.clear();
17466
- this.storage.clear();
17467
- this.buffer.clear();
17586
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(this, 'storage')?.clear();
17587
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(this, 'buffer')?.clear();
17468
17588
  this.commands.clear();
17469
17589
  this.__selectionLocked = null;
17470
17590
  this.e.off(this.ow, 'resize');
17471
17591
  this.e.off(this.ow);
17472
17592
  this.e.off(this.od);
17473
17593
  this.e.off(this.od.body);
17474
- const buffer = this.editor ? this.getEditorValue() : '';
17594
+ const tmpValue = this.editor ? this.getEditorValue() : '';
17475
17595
  this.places.forEach(({ container, workplace, statusbar, element, iframe, editor, history }) => {
17476
17596
  if (!element) {
17477
17597
  return;
@@ -17515,7 +17635,7 @@ let Jodit = Jodit_1 = class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE
17515
17635
  jodit_modules__WEBPACK_IMPORTED_MODULE_7__.Dom.safeRemove(iframe);
17516
17636
  // inline mode
17517
17637
  if (container === element) {
17518
- element.innerHTML = buffer;
17638
+ element.innerHTML = tmpValue;
17519
17639
  }
17520
17640
  history.destruct();
17521
17641
  });
@@ -17935,7 +18055,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
17935
18055
  return 'Dialog';
17936
18056
  }
17937
18057
  get destination() {
17938
- return (this.o.shadowRoot ?? this.od.body);
18058
+ const { popupRoot, shadowRoot } = this.o;
18059
+ if (popupRoot) {
18060
+ return popupRoot;
18061
+ }
18062
+ if (shadowRoot) {
18063
+ return shadowRoot;
18064
+ }
18065
+ return this.od.body;
17939
18066
  }
17940
18067
  setElements(root, elements) {
17941
18068
  const elements_list = [];
@@ -17964,14 +18091,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
17964
18091
  }
17965
18092
  });
17966
18093
  }
17967
- onMouseUp() {
18094
+ __onMouseUp() {
17968
18095
  if (this.draggable || this.resizable) {
17969
- this.removeGlobalResizeListeners();
18096
+ this.__removeGlobalResizeListeners();
17970
18097
  this.draggable = false;
17971
18098
  this.resizable = false;
17972
18099
  this.unlockSelect();
17973
18100
  if (this.e) {
17974
- this.removeGlobalResizeListeners();
18101
+ this.__removeGlobalResizeListeners();
17975
18102
  /**
17976
18103
  * Fired when the dialog box is finished to resizing
17977
18104
  */
@@ -17982,7 +18109,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
17982
18109
  /**
17983
18110
  *
17984
18111
  */
17985
- onHeaderMouseDown(e) {
18112
+ __onHeaderMouseDown(e) {
17986
18113
  const target = e.target;
17987
18114
  if (!this.o.draggable ||
17988
18115
  (target && target.nodeName.match(/^(INPUT|SELECT)$/))) {
@@ -17998,7 +18125,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
17998
18125
  e.preventDefault();
17999
18126
  }
18000
18127
  this.lockSelect();
18001
- this.addGlobalResizeListeners();
18128
+ this.__addGlobalResizeListeners();
18002
18129
  if (this.e) {
18003
18130
  /**
18004
18131
  * Fired when dialog box is started moving
@@ -18007,7 +18134,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18007
18134
  this.e.fire('closeAllPopups');
18008
18135
  }
18009
18136
  }
18010
- onMouseMove(e) {
18137
+ __onMouseMove(e) {
18011
18138
  if (this.draggable && this.o.draggable) {
18012
18139
  this.setPosition(this.startPoint.x + e.clientX - this.startX, this.startPoint.y + e.clientY - this.startY);
18013
18140
  if (this.e) {
@@ -18028,7 +18155,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18028
18155
  }
18029
18156
  }
18030
18157
  }
18031
- onEsc(e) {
18158
+ __onEsc(e) {
18032
18159
  if (!this.o.closeOnEsc) {
18033
18160
  return;
18034
18161
  }
@@ -18045,14 +18172,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18045
18172
  e.stopImmediatePropagation();
18046
18173
  }
18047
18174
  }
18048
- onResizerMouseDown(e) {
18175
+ __onResizerMouseDown(e) {
18049
18176
  this.resizable = true;
18050
18177
  this.startX = e.clientX;
18051
18178
  this.startY = e.clientY;
18052
18179
  this.startPoint.w = this.dialog.offsetWidth;
18053
18180
  this.startPoint.h = this.dialog.offsetHeight;
18054
18181
  this.lockSelect();
18055
- this.addGlobalResizeListeners();
18182
+ this.__addGlobalResizeListeners();
18056
18183
  if (this.e) {
18057
18184
  /**
18058
18185
  * Fired when dialog box is started resizing
@@ -18060,17 +18187,17 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18060
18187
  this.e.fire(this, 'startResize');
18061
18188
  }
18062
18189
  }
18063
- addGlobalResizeListeners() {
18190
+ __addGlobalResizeListeners() {
18064
18191
  const self = this;
18065
18192
  self.e
18066
- .on(self.ow, 'pointermove touchmove', self.onMouseMove)
18067
- .on(self.ow, 'pointerup touchend', self.onMouseUp);
18193
+ .on(self.ow, 'pointermove touchmove', self.__onMouseMove)
18194
+ .on(self.ow, 'pointerup touchend', self.__onMouseUp);
18068
18195
  }
18069
- removeGlobalResizeListeners() {
18196
+ __removeGlobalResizeListeners() {
18070
18197
  const self = this;
18071
18198
  self.e
18072
- .off(self.ow, 'mousemove pointermove', self.onMouseMove)
18073
- .off(self.ow, 'mouseup pointerup', self.onMouseUp);
18199
+ .off(self.ow, 'mousemove pointermove', self.__onMouseMove)
18200
+ .off(self.ow, 'mouseup pointerup', self.__onMouseUp);
18074
18201
  }
18075
18202
  /**
18076
18203
  * Specifies the size of the window
@@ -18326,7 +18453,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18326
18453
  this.toggleFullSize(false);
18327
18454
  }
18328
18455
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(this.container);
18329
- this.removeGlobalResizeListeners();
18456
+ this.__removeGlobalResizeListeners();
18330
18457
  /**
18331
18458
  * It called after the window is closed
18332
18459
  */
@@ -18352,7 +18479,7 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18352
18479
  this.unlockSelect = () => {
18353
18480
  this.setMod('moved', false);
18354
18481
  };
18355
- this.onResize = () => {
18482
+ this.__onResize = () => {
18356
18483
  if (this.options &&
18357
18484
  this.o.resizable &&
18358
18485
  !this.moved &&
@@ -18420,14 +18547,14 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18420
18547
  });
18421
18548
  const headerBox = self.getElm('header');
18422
18549
  headerBox &&
18423
- self.e.on(headerBox, 'pointerdown touchstart', self.onHeaderMouseDown);
18424
- self.e.on(self.resizer, 'mousedown touchstart', self.onResizerMouseDown);
18550
+ self.e.on(headerBox, 'pointerdown touchstart', self.__onHeaderMouseDown);
18551
+ self.e.on(self.resizer, 'mousedown touchstart', self.__onResizerMouseDown);
18425
18552
  const fullSize = jodit_core_global__WEBPACK_IMPORTED_MODULE_4__/* .pluginSystem */ .fg.get('fullsize');
18426
18553
  (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_6__/* .isFunction */ .Tn)(fullSize) && fullSize(self);
18427
18554
  this.e
18428
18555
  .on(self.container, 'close_dialog', self.close)
18429
- .on(this.ow, 'keydown', this.onEsc)
18430
- .on(this.ow, 'resize', this.onResize);
18556
+ .on(this.ow, 'keydown', this.__onEsc)
18557
+ .on(this.ow, 'resize', this.__onResize);
18431
18558
  if (this.o.closeOnClickOverlay) {
18432
18559
  const overlay = self.getElm('overlay');
18433
18560
  void 0;
@@ -18456,30 +18583,30 @@ let Dialog = Dialog_1 = class Dialog extends jodit_core_view_view_with_toolbar__
18456
18583
  this.close();
18457
18584
  }
18458
18585
  if (this.events) {
18459
- this.removeGlobalResizeListeners();
18586
+ this.__removeGlobalResizeListeners();
18460
18587
  this.events
18461
18588
  .off(this.container, 'close_dialog', self.close)
18462
- .off(this.ow, 'keydown', this.onEsc)
18463
- .off(this.ow, 'resize', this.onResize);
18589
+ .off(this.ow, 'keydown', this.__onEsc)
18590
+ .off(this.ow, 'resize', this.__onResize);
18464
18591
  }
18465
18592
  super.destruct();
18466
18593
  }
18467
18594
  };
18468
18595
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18469
18596
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18470
- ], Dialog.prototype, "onMouseUp", null);
18597
+ ], Dialog.prototype, "__onMouseUp", null);
18471
18598
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18472
18599
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18473
- ], Dialog.prototype, "onHeaderMouseDown", null);
18600
+ ], Dialog.prototype, "__onHeaderMouseDown", null);
18474
18601
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18475
18602
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18476
- ], Dialog.prototype, "onMouseMove", null);
18603
+ ], Dialog.prototype, "__onMouseMove", null);
18477
18604
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18478
18605
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18479
- ], Dialog.prototype, "onEsc", null);
18606
+ ], Dialog.prototype, "__onEsc", null);
18480
18607
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18481
18608
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18482
- ], Dialog.prototype, "onResizerMouseDown", null);
18609
+ ], Dialog.prototype, "__onResizerMouseDown", null);
18483
18610
  (0,tslib__WEBPACK_IMPORTED_MODULE_13__/* .__decorate */ .Cg)([
18484
18611
  jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
18485
18612
  ], Dialog.prototype, "close", null);
@@ -20113,8 +20240,8 @@ let FileBrowser = class FileBrowser extends jodit_core_view_view_with_toolbar__W
20113
20240
  if (this.isInDestruct) {
20114
20241
  return;
20115
20242
  }
20243
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_2__.cached)(this, '_dialog')?.destruct();
20116
20244
  super.destruct();
20117
- this._dialog.destruct();
20118
20245
  this.events && this.e.off('.filebrowser');
20119
20246
  this.uploader && this.uploader.destruct();
20120
20247
  }
@@ -27730,9 +27857,10 @@ function visitNodeWalker(jodit, nodeElm, allowTags, denyTags, currentSelectionNo
27730
27857
  "use strict";
27731
27858
  /* unused harmony export clipboard */
27732
27859
  /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
27733
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56298);
27734
- /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65147);
27735
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51329);
27860
+ /* harmony import */ var jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87875);
27861
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56298);
27862
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65147);
27863
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(51329);
27736
27864
  /*!
27737
27865
  * Jodit Editor (https://xdsoft.net/jodit/)
27738
27866
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -27742,6 +27870,7 @@ function visitNodeWalker(jodit, nodeElm, allowTags, denyTags, currentSelectionNo
27742
27870
 
27743
27871
 
27744
27872
 
27873
+
27745
27874
  /**
27746
27875
  * Clipboard plugin - cut and copy functionality
27747
27876
  */
@@ -27773,11 +27902,11 @@ class clipboard {
27773
27902
  .off(`copy.${jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID} cut.${jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID}`)
27774
27903
  .on(`copy.${jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID} cut.${jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID}`, (event) => {
27775
27904
  const selectedText = editor.s.html;
27776
- const clipboardData = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.getDataTransfer)(event) ||
27777
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.getDataTransfer)(editor.ew) ||
27778
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.getDataTransfer)(event.originalEvent);
27905
+ const clipboardData = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(event) ||
27906
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(editor.ew) ||
27907
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.getDataTransfer)(event.originalEvent);
27779
27908
  if (clipboardData) {
27780
- clipboardData.setData(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.stripTags)(selectedText));
27909
+ clipboardData.setData(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_PLAIN, (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_3__.stripTags)(selectedText));
27781
27910
  clipboardData.setData(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.TEXT_HTML, selectedText);
27782
27911
  }
27783
27912
  editor.buffer.set(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, selectedText);
@@ -27796,11 +27925,11 @@ class clipboard {
27796
27925
  }
27797
27926
  /** @override */
27798
27927
  destruct(editor) {
27799
- editor?.buffer?.set(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, '');
27928
+ (0,jodit_core_decorators_cache_cache__WEBPACK_IMPORTED_MODULE_1__/* .cached */ .PO)(editor, 'buffer')?.set(jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID, '');
27800
27929
  editor?.events?.off('.' + jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.CLIPBOARD_ID);
27801
27930
  }
27802
27931
  }
27803
- jodit_core_global__WEBPACK_IMPORTED_MODULE_1__/* .pluginSystem */ .fg.add('clipboard', clipboard);
27932
+ jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .pluginSystem */ .fg.add('clipboard', clipboard);
27804
27933
 
27805
27934
 
27806
27935
  /***/ }),
@@ -30777,13 +30906,14 @@ const JODIT_IMAGE_BLOB_ID = JODIT_IMAGE_PROCESSOR_BINDED + 'blob-id';
30777
30906
  class imageProcessor extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_4__/* .Plugin */ .k {
30778
30907
  afterInit(jodit) { }
30779
30908
  beforeDestruct(jodit) {
30780
- const list = jodit.buffer.get(JODIT_IMAGE_BLOB_ID);
30781
- if (list) {
30909
+ const buffer = (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(jodit, 'buffer');
30910
+ const list = buffer?.get(JODIT_IMAGE_BLOB_ID);
30911
+ if (buffer && list) {
30782
30912
  const keys = Object.keys(list);
30783
30913
  for (const uri of keys) {
30784
30914
  URL.revokeObjectURL(uri);
30785
30915
  }
30786
- jodit.buffer.delete(JODIT_IMAGE_BLOB_ID);
30916
+ buffer.delete(JODIT_IMAGE_BLOB_ID);
30787
30917
  }
30788
30918
  }
30789
30919
  onAfterGetValueFromEditor(data, consumer) {
@@ -37761,7 +37891,7 @@ class search extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plugin */
37761
37891
  }
37762
37892
  /** @override */
37763
37893
  beforeDestruct(jodit) {
37764
- this.ui.destruct();
37894
+ (0,jodit_core_decorators__WEBPACK_IMPORTED_MODULE_1__.cached)(this, 'ui')?.destruct();
37765
37895
  jodit.e.off('.search');
37766
37896
  }
37767
37897
  }