jodit 4.13.24 → 4.13.25

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 (52) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +28 -7
  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.fat.min.js +2 -2
  13. package/es2018/jodit.min.js +2 -2
  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 +2 -2
  18. package/es2021/jodit.js +27 -6
  19. package/es2021/jodit.min.js +2 -2
  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 +2 -2
  28. package/es2021.en/jodit.js +27 -6
  29. package/es2021.en/jodit.min.js +2 -2
  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 +28 -7
  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/decorators/cache/cache.js +21 -3
  52. package/package.json +1 -1
package/es2015/jodit.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit - Jodit is an awesome and useful wysiwyg editor with filebrowser
3
3
  * Author: Chupurnov <chupurnov@gmail.com> (https://xdsoft.net/jodit/)
4
- * Version: v4.13.24
4
+ * Version: v4.13.25
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -1849,7 +1849,7 @@ __webpack_require__.r(__webpack_exports__);
1849
1849
  * ```
1850
1850
  * @packageDocumentation
1851
1851
  * @module constants
1852
- */ const APP_VERSION = "4.13.24";
1852
+ */ const APP_VERSION = "4.13.25";
1853
1853
  // prettier-ignore
1854
1854
  const ES = "es2015";
1855
1855
  const IS_ES_MODERN = true;
@@ -2448,21 +2448,42 @@ class Create {
2448
2448
  return value;
2449
2449
  };
2450
2450
  }
2451
+ function getOwnerDocument(component) {
2452
+ const od = component.od;
2453
+ return od !== null && od !== void 0 ? od : document;
2454
+ }
2451
2455
  function cacheHTML(target, _, descriptor) {
2452
2456
  const fn = descriptor.value;
2453
2457
  if (!(0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__.isFunction)(fn)) {
2454
2458
  throw (0,jodit_core_helpers_utils_error_error__WEBPACK_IMPORTED_MODULE_3__.error)('Handler must be a Function');
2455
2459
  }
2456
2460
  let useCache = true;
2457
- const cached = new WeakMap();
2461
+ /**
2462
+ * The cache is keyed by the owner document first and only then by the
2463
+ * component class. A page can create editors inside different documents
2464
+ * (iframes) and destroy those documents later: a template cached from a
2465
+ * dead document would otherwise be cloned for every subsequent editor,
2466
+ * whose buttons then never react to clicks.
2467
+ */ const cached = new WeakMap();
2458
2468
  descriptor.value = function(...attrs) {
2459
- if (useCache && cached.has(this.constructor)) {
2460
- var _cached_get;
2461
- return (_cached_get = cached.get(this.constructor)) === null || _cached_get === void 0 ? void 0 : _cached_get.cloneNode(true);
2469
+ const doc = getOwnerDocument(this);
2470
+ const docCache = cached.get(doc);
2471
+ if (useCache && (docCache === null || docCache === void 0 ? void 0 : docCache.has(this.constructor))) {
2472
+ var _docCache_get;
2473
+ return (_docCache_get = docCache.get(this.constructor)) === null || _docCache_get === void 0 ? void 0 : _docCache_get.cloneNode(true);
2462
2474
  }
2463
2475
  const value = fn.apply(this, attrs);
2464
2476
  if (useCache && jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(value)) {
2465
- cached.set(this.constructor, value);
2477
+ if (docCache) {
2478
+ docCache.set(this.constructor, value);
2479
+ } else {
2480
+ cached.set(doc, new WeakMap([
2481
+ [
2482
+ this.constructor,
2483
+ value
2484
+ ]
2485
+ ]));
2486
+ }
2466
2487
  }
2467
2488
  return useCache ? value.cloneNode(true) : value;
2468
2489
  };