jodit 4.2.25 → 4.2.32

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 (169) hide show
  1. package/.nvmrc +1 -1
  2. package/CHANGELOG.md +119 -5
  3. package/es2015/jodit.css +14 -2
  4. package/es2015/jodit.fat.min.css +1 -1
  5. package/es2015/jodit.fat.min.js +2 -2
  6. package/es2015/jodit.js +422 -284
  7. package/es2015/jodit.min.css +1 -1
  8. package/es2015/jodit.min.js +2 -2
  9. package/es2015/plugins/debug/debug.js +1 -1
  10. package/es2015/plugins/debug/debug.min.js +1 -1
  11. package/es2015/plugins/speech-recognize/speech-recognize.css +1 -1
  12. package/es2015/plugins/speech-recognize/speech-recognize.js +25 -18
  13. package/es2015/plugins/speech-recognize/speech-recognize.min.js +2 -2
  14. package/es2018/jodit.css +14 -2
  15. package/es2018/jodit.fat.min.css +1 -1
  16. package/es2018/jodit.fat.min.js +2 -2
  17. package/es2018/jodit.js +416 -278
  18. package/es2018/jodit.min.css +1 -1
  19. package/es2018/jodit.min.js +2 -2
  20. package/es2018/plugins/debug/debug.js +1 -1
  21. package/es2018/plugins/debug/debug.min.js +1 -1
  22. package/es2018/plugins/speech-recognize/speech-recognize.css +1 -1
  23. package/es2018/plugins/speech-recognize/speech-recognize.js +25 -18
  24. package/es2018/plugins/speech-recognize/speech-recognize.min.js +2 -2
  25. package/es2021/jodit.css +14 -2
  26. package/es2021/jodit.fat.min.css +1 -1
  27. package/es2021/jodit.fat.min.js +2 -2
  28. package/es2021/jodit.js +416 -278
  29. package/es2021/jodit.min.css +1 -1
  30. package/es2021/jodit.min.js +2 -2
  31. package/es2021/plugins/debug/debug.js +1 -1
  32. package/es2021/plugins/debug/debug.min.js +1 -1
  33. package/es2021/plugins/speech-recognize/speech-recognize.css +1 -1
  34. package/es2021/plugins/speech-recognize/speech-recognize.js +25 -18
  35. package/es2021/plugins/speech-recognize/speech-recognize.min.js +2 -2
  36. package/es2021.en/jodit.css +14 -2
  37. package/es2021.en/jodit.fat.min.css +1 -1
  38. package/es2021.en/jodit.fat.min.js +2 -2
  39. package/es2021.en/jodit.js +391 -272
  40. package/es2021.en/jodit.min.css +1 -1
  41. package/es2021.en/jodit.min.js +2 -2
  42. package/es2021.en/plugins/debug/debug.js +1 -1
  43. package/es2021.en/plugins/debug/debug.min.js +1 -1
  44. package/es2021.en/plugins/speech-recognize/speech-recognize.css +1 -1
  45. package/es2021.en/plugins/speech-recognize/speech-recognize.js +25 -18
  46. package/es2021.en/plugins/speech-recognize/speech-recognize.min.js +2 -2
  47. package/es5/164.fat.min.js +10 -0
  48. package/es5/164.js +4939 -0
  49. package/es5/164.min.js +10 -0
  50. package/es5/5.fat.min.js +10 -0
  51. package/es5/5.js +76 -0
  52. package/es5/5.min.js +10 -0
  53. package/es5/jodit.css +21 -6
  54. package/es5/jodit.fat.min.css +1 -1
  55. package/es5/jodit.fat.min.js +2 -2
  56. package/es5/jodit.js +817 -5709
  57. package/es5/jodit.min.css +3 -3
  58. package/es5/jodit.min.js +2 -2
  59. package/es5/plugins/debug/debug.js +1 -1
  60. package/es5/plugins/debug/debug.min.js +1 -1
  61. package/es5/plugins/speech-recognize/speech-recognize.css +1 -1
  62. package/es5/plugins/speech-recognize/speech-recognize.js +26 -19
  63. package/es5/plugins/speech-recognize/speech-recognize.min.js +2 -2
  64. package/esm/config.js +3 -7
  65. package/esm/core/async/async.js +2 -1
  66. package/esm/core/constants.d.ts +2 -0
  67. package/esm/core/constants.js +12 -8
  68. package/esm/core/decorators/watch/watch.js +0 -1
  69. package/esm/core/dom/dom.d.ts +2 -1
  70. package/esm/core/dom/dom.js +12 -6
  71. package/esm/core/event-emitter/event-emitter.js +3 -3
  72. package/esm/core/global.js +16 -3
  73. package/esm/core/helpers/array/to-array.d.ts +1 -6
  74. package/esm/core/helpers/array/to-array.js +1 -1
  75. package/esm/core/helpers/async/set-timeout.d.ts +0 -3
  76. package/esm/core/helpers/async/set-timeout.js +3 -2
  77. package/esm/core/helpers/checker/has-browser-color-picker.d.ts +0 -3
  78. package/esm/core/helpers/checker/has-browser-color-picker.js +2 -1
  79. package/esm/core/helpers/checker/is-url.d.ts +0 -3
  80. package/esm/core/helpers/checker/is-url.js +2 -1
  81. package/esm/core/helpers/html/apply-styles.js +3 -3
  82. package/esm/core/helpers/html/clean-from-word.js +2 -1
  83. package/esm/core/helpers/html/htmlspecialchars.d.ts +0 -3
  84. package/esm/core/helpers/html/htmlspecialchars.js +2 -1
  85. package/esm/core/helpers/normalize/normalize-key-aliases.js +2 -1
  86. package/esm/core/helpers/normalize/normalize-size.d.ts +1 -1
  87. package/esm/core/helpers/size/get-scroll-parent.js +3 -2
  88. package/esm/core/helpers/utils/complete-url.js +2 -1
  89. package/esm/core/helpers/utils/convert-media-url-to-video-embed.js +2 -1
  90. package/esm/core/helpers/utils/default-language.js +3 -2
  91. package/esm/core/helpers/utils/reset.js +3 -3
  92. package/esm/core/request/ajax.js +2 -1
  93. package/esm/core/selection/selection.js +1 -0
  94. package/esm/core/selection/style/api/has-same-style.js +15 -10
  95. package/esm/core/selection/style/api/toggle-attributes.js +2 -1
  96. package/esm/core/selection/style/commit-style.d.ts +1 -1
  97. package/esm/core/ui/button/tooltip/tooltip.d.ts +1 -0
  98. package/esm/core/ui/button/tooltip/tooltip.js +11 -5
  99. package/esm/core/ui/form/inputs/file/file.d.ts +1 -0
  100. package/esm/core/ui/form/inputs/file/file.js +1 -0
  101. package/esm/core/ui/form/validators/input.d.ts +3 -3
  102. package/esm/core/ui/form/validators/select.d.ts +1 -1
  103. package/esm/jodit.js +3 -0
  104. package/esm/modules/file-browser/config.js +9 -1
  105. package/esm/modules/file-browser/data-provider.js +0 -1
  106. package/esm/modules/file-browser/file-browser.js +0 -1
  107. package/esm/modules/table/table.d.ts +2 -3
  108. package/esm/modules/table/table.js +27 -35
  109. package/esm/modules/toolbar/button/button.d.ts +1 -1
  110. package/esm/plugins/add-new-line/add-new-line.js +4 -1
  111. package/esm/plugins/backspace/cases/check-remove-char.js +1 -0
  112. package/esm/plugins/clean-html/config.d.ts +3 -3
  113. package/esm/plugins/clean-html/helpers/visitor/filters/fill-empty-paragraph.js +9 -1
  114. package/esm/plugins/hotkeys/hotkeys.js +4 -2
  115. package/esm/plugins/iframe/config.d.ts +15 -3
  116. package/esm/plugins/iframe/config.js +1 -0
  117. package/esm/plugins/iframe/iframe.js +3 -0
  118. package/esm/plugins/indent/helpers.d.ts +1 -1
  119. package/esm/plugins/inline-popup/config/items/a.d.ts +2 -2
  120. package/esm/plugins/inline-popup/config/items/cells.d.ts +1 -1
  121. package/esm/plugins/inline-popup/config/items/img.d.ts +1 -1
  122. package/esm/plugins/search/config.js +2 -2
  123. package/esm/plugins/search/helpers/highlight-text-ranges.js +3 -1
  124. package/esm/plugins/select-cells/select-cells.js +1 -1
  125. package/esm/plugins/source/editor/engines/ace.d.ts +0 -1
  126. package/esm/plugins/speech-recognize/config.js +1 -1
  127. package/esm/plugins/speech-recognize/helpers/api.d.ts +1 -1
  128. package/esm/plugins/speech-recognize/helpers/api.js +5 -2
  129. package/esm/plugins/speech-recognize/helpers/sound.js +6 -4
  130. package/esm/plugins/stat/config.d.ts +1 -0
  131. package/esm/plugins/stat/config.js +1 -0
  132. package/esm/plugins/stat/stat.js +14 -3
  133. package/esm/plugins/symbols/langs/index.d.ts +2 -1
  134. package/esm/plugins/symbols/langs/index.js +2 -1
  135. package/esm/plugins/symbols/langs/ua.d.ts +1 -0
  136. package/esm/plugins/symbols/langs/ua.js +9 -0
  137. package/esm/plugins/table/config.js +19 -3
  138. package/esm/polyfills.d.ts +10 -0
  139. package/esm/polyfills.js +54 -0
  140. package/esm/tsconfig.json +1 -1
  141. package/package.json +1 -1
  142. package/types/core/constants.d.ts +2 -0
  143. package/types/core/dom/dom.d.ts +2 -1
  144. package/types/core/helpers/array/to-array.d.ts +1 -6
  145. package/types/core/helpers/async/set-timeout.d.ts +0 -3
  146. package/types/core/helpers/checker/has-browser-color-picker.d.ts +0 -3
  147. package/types/core/helpers/checker/is-url.d.ts +0 -3
  148. package/types/core/helpers/html/htmlspecialchars.d.ts +0 -3
  149. package/types/core/helpers/normalize/normalize-size.d.ts +1 -1
  150. package/types/core/selection/style/commit-style.d.ts +1 -1
  151. package/types/core/ui/button/tooltip/tooltip.d.ts +1 -0
  152. package/types/core/ui/form/inputs/file/file.d.ts +1 -0
  153. package/types/core/ui/form/validators/input.d.ts +3 -3
  154. package/types/core/ui/form/validators/select.d.ts +1 -1
  155. package/types/modules/table/table.d.ts +2 -3
  156. package/types/modules/toolbar/button/button.d.ts +1 -1
  157. package/types/plugins/clean-html/config.d.ts +3 -3
  158. package/types/plugins/iframe/config.d.ts +15 -3
  159. package/types/plugins/indent/helpers.d.ts +1 -1
  160. package/types/plugins/inline-popup/config/items/a.d.ts +2 -2
  161. package/types/plugins/inline-popup/config/items/cells.d.ts +1 -1
  162. package/types/plugins/inline-popup/config/items/img.d.ts +1 -1
  163. package/types/plugins/source/editor/engines/ace.d.ts +0 -1
  164. package/types/plugins/speech-recognize/helpers/api.d.ts +1 -1
  165. package/types/plugins/stat/config.d.ts +1 -0
  166. package/types/plugins/symbols/langs/index.d.ts +2 -1
  167. package/types/plugins/symbols/langs/ua.d.ts +1 -0
  168. package/types/polyfills.d.ts +10 -0
  169. package/types/tsconfig.json +1 -1
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.25
4
+ * Version: v4.2.32
5
5
  * Url: https://xdsoft.net/jodit/
6
6
  * License(s): MIT
7
7
  */
@@ -247,16 +247,12 @@ class Config {
247
247
  showPlaceholder: false
248
248
  }
249
249
  };
250
- this.ownerDocument = (typeof document !== 'undefined'
251
- ? document
252
- : null);
250
+ this.ownerDocument = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument;
253
251
  /**
254
252
  * Allows you to specify the window in which the editor will be created. Default - window
255
253
  * This is necessary if you are creating the editor inside an iframe but the code is running in the parent window
256
254
  */
257
- this.ownerWindow = (typeof window !== 'undefined'
258
- ? window
259
- : null);
255
+ this.ownerWindow = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow;
260
256
  /**
261
257
  * Shadow root if Jodit was created in it
262
258
  *
@@ -1030,16 +1026,16 @@ Config.prototype.controls = {};
1030
1026
  /* harmony export */ j: function() { return /* binding */ Async; }
1031
1027
  /* harmony export */ });
1032
1028
  /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
1033
- /* harmony import */ var jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(59146);
1029
+ /* harmony import */ var jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89044);
1034
1030
  /* harmony import */ var jodit_core_helpers_checker_is_abort_error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(99951);
1035
1031
  /* harmony import */ var jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(69052);
1036
- /* harmony import */ var jodit_core_helpers_checker_is_number__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2461);
1032
+ /* harmony import */ var jodit_core_helpers_checker_is_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2461);
1037
1033
  /* harmony import */ var jodit_core_helpers_checker_is_plain_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(25376);
1038
1034
  /* harmony import */ var jodit_core_helpers_checker_is_promise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92039);
1039
1035
  /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(98253);
1040
- /* harmony import */ var jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35642);
1041
- /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28712);
1042
- /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_1__);
1036
+ /* harmony import */ var jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35642);
1037
+ /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28712);
1038
+ /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2__);
1043
1039
  /* harmony import */ var jodit_core_helpers_utils_error_errors_abort_error__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(21567);
1044
1040
  /*!
1045
1041
  * Jodit Editor (https://xdsoft.net/jodit/)
@@ -1089,17 +1085,18 @@ class Async {
1089
1085
  return 0;
1090
1086
  }
1091
1087
  let options = {};
1092
- if ((0,jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_2__/* .isVoid */ .R)(timeout)) {
1088
+ if ((0,jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_3__/* .isVoid */ .R)(timeout)) {
1093
1089
  timeout = 0;
1094
1090
  }
1095
- if (!(0,jodit_core_helpers_checker_is_number__WEBPACK_IMPORTED_MODULE_3__/* .isNumber */ .E)(timeout)) {
1091
+ if (!(0,jodit_core_helpers_checker_is_number__WEBPACK_IMPORTED_MODULE_4__/* .isNumber */ .E)(timeout)) {
1096
1092
  options = timeout;
1097
1093
  timeout = options.timeout || 0;
1098
1094
  }
1099
1095
  if (options.label) {
1100
1096
  this.clearLabel(options.label);
1101
1097
  }
1102
- const timer = (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_4__/* .setTimeout */ .w)(callback, timeout, ...args), key = options.label || timer;
1098
+ const timer = (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_1__/* .setTimeout */ .w)(callback, timeout, ...args);
1099
+ const key = options.label || timer;
1103
1100
  this.timers.set(key, timer);
1104
1101
  this.__callbacks.set(key, callback);
1105
1102
  return timer;
@@ -1115,7 +1112,7 @@ class Async {
1115
1112
  }
1116
1113
  clearLabel(label) {
1117
1114
  if (label && this.timers.has(label)) {
1118
- (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_4__/* .clearTimeout */ .D)(this.timers.get(label));
1115
+ (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_1__/* .clearTimeout */ .D)(this.timers.get(label));
1119
1116
  this.timers.delete(label);
1120
1117
  this.__callbacks.delete(label);
1121
1118
  }
@@ -1124,7 +1121,7 @@ class Async {
1124
1121
  if ((0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_5__/* .isString */ .K)(timerOrLabel)) {
1125
1122
  return this.clearLabel(timerOrLabel);
1126
1123
  }
1127
- (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_4__/* .clearTimeout */ .D)(timerOrLabel);
1124
+ (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_1__/* .clearTimeout */ .D)(timerOrLabel);
1128
1125
  this.timers.delete(timerOrLabel);
1129
1126
  this.__callbacks.delete(timerOrLabel);
1130
1127
  }
@@ -1166,7 +1163,7 @@ class Async {
1166
1163
  if (!timer && firstCallImmediately) {
1167
1164
  callFn(...args);
1168
1165
  }
1169
- (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_4__/* .clearTimeout */ .D)(timer);
1166
+ (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_1__/* .clearTimeout */ .D)(timer);
1170
1167
  timer = this.setTimeout(() => callFn(...args), (0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_7__/* .isFunction */ .T)(timeout) ? timeout() : timeout);
1171
1168
  this.timers.set(fn, timer);
1172
1169
  }
@@ -1320,7 +1317,7 @@ class Async {
1320
1317
  clear() {
1321
1318
  this.requestsIdle.forEach(key => this.cancelIdleCallback(key));
1322
1319
  this.requestsRaf.forEach(key => this.cancelAnimationFrame(key));
1323
- this.timers.forEach(key => (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_4__/* .clearTimeout */ .D)(this.timers.get(key)));
1320
+ this.timers.forEach(key => (0,jodit_core_helpers_async__WEBPACK_IMPORTED_MODULE_1__/* .clearTimeout */ .D)(this.timers.get(key)));
1324
1321
  this.timers.clear();
1325
1322
  this.promisesRejections.forEach(reject => reject());
1326
1323
  this.promisesRejections.clear();
@@ -1729,6 +1726,8 @@ __webpack_require__.r(__webpack_exports__);
1729
1726
  /* harmony export */ TEXT_PLAIN: function() { return /* binding */ TEXT_PLAIN; },
1730
1727
  /* harmony export */ TEXT_RTF: function() { return /* binding */ TEXT_RTF; },
1731
1728
  /* harmony export */ TOKENS: function() { return /* binding */ TOKENS; },
1729
+ /* harmony export */ globalDocument: function() { return /* binding */ globalDocument; },
1730
+ /* harmony export */ globalWindow: function() { return /* binding */ globalWindow; },
1732
1731
  /* harmony export */ lang: function() { return /* binding */ lang; }
1733
1732
  /* harmony export */ });
1734
1733
  /*!
@@ -1736,7 +1735,7 @@ __webpack_require__.r(__webpack_exports__);
1736
1735
  * Released under MIT see LICENSE.txt in the project root for license information.
1737
1736
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
1738
1737
  */
1739
- const APP_VERSION = "4.2.25";
1738
+ const APP_VERSION = "4.2.32";
1740
1739
  // prettier-ignore
1741
1740
  const ES = "es2018";
1742
1741
  const IS_ES_MODERN = true;
@@ -1755,6 +1754,10 @@ const INVISIBLE_SPACE_REG_EXP_START = () => /^[\uFEFF]+/g;
1755
1754
  const SPACE_REG_EXP = () => /[\s\n\t\r\uFEFF\u200b]+/g;
1756
1755
  const SPACE_REG_EXP_START = () => /^[\s\n\t\r\uFEFF\u200b]+/g;
1757
1756
  const SPACE_REG_EXP_END = () => /[\s\n\t\r\uFEFF\u200b]+$/g;
1757
+ const globalWindow = typeof window !== 'undefined' ? window : undefined;
1758
+ const globalDocument = typeof document !== 'undefined'
1759
+ ? document
1760
+ : undefined;
1758
1761
  const IS_BLOCK = /^(ADDRESS|ARTICLE|ASIDE|BLOCKQUOTE|CANVAS|DD|DFN|DIV|DL|DT|FIELDSET|FIGCAPTION|FIGURE|FOOTER|FORM|H[1-6]|HEADER|HGROUP|HR|LI|MAIN|NAV|NOSCRIPT|OUTPUT|P|PRE|RUBY|SCRIPT|STYLE|OBJECT|OL|SECTION|IFRAME|JODIT|JODIT-MEDIA|UL|TR|TD|TH|TBODY|THEAD|TFOOT|TABLE|BODY|HTML|VIDEO)$/i;
1759
1762
  const IS_INLINE = /^(STRONG|SPAN|I|EM|B|SUP|SUB|A|U)$/i;
1760
1763
  const LIST_TAGS = new Set(['ul', 'ol']);
@@ -1879,8 +1882,8 @@ const INSERT_AS_TEXT = 'insert_as_text';
1879
1882
  */
1880
1883
  const INSERT_ONLY_TEXT = 'insert_only_text';
1881
1884
  const SAFE_COUNT_CHANGE_CALL = 10;
1882
- const IS_MAC = typeof window !== 'undefined' &&
1883
- /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);
1885
+ const IS_MAC = typeof globalWindow !== 'undefined' &&
1886
+ /Mac|iPod|iPhone|iPad/.test(globalWindow.navigator.platform);
1884
1887
  const KEY_ALIASES = {
1885
1888
  add: '+',
1886
1889
  break: 'pause',
@@ -1898,8 +1901,8 @@ const KEY_ALIASES = {
1898
1901
  option: 'alt',
1899
1902
  return: 'enter',
1900
1903
  right: 'arrowright',
1901
- space: ' ',
1902
- spacebar: ' ',
1904
+ space: 'space',
1905
+ spacebar: 'space',
1903
1906
  up: 'arrowup',
1904
1907
  win: 'meta',
1905
1908
  windows: 'meta'
@@ -1908,7 +1911,7 @@ const BASE_PATH = (() => {
1908
1911
  if (typeof document === 'undefined') {
1909
1912
  return '';
1910
1913
  }
1911
- const script = document.currentScript, removeScriptName = (s) => {
1914
+ const script = globalDocument.currentScript, removeScriptName = (s) => {
1912
1915
  const parts = s.split('/');
1913
1916
  if (/\.js/.test(parts[parts.length - 1])) {
1914
1917
  return parts.slice(0, parts.length - 1).join('/') + '/';
@@ -1918,11 +1921,11 @@ const BASE_PATH = (() => {
1918
1921
  if (script) {
1919
1922
  return removeScriptName(script.src);
1920
1923
  }
1921
- const scripts = document.querySelectorAll('script[src]');
1924
+ const scripts = globalDocument.querySelectorAll('script[src]');
1922
1925
  if (scripts && scripts.length) {
1923
1926
  return removeScriptName(scripts[scripts.length - 1].src);
1924
1927
  }
1925
- return window.location.href;
1928
+ return globalWindow.location.href;
1926
1929
  })();
1927
1930
  const TEMP_ATTR = 'data-jodit-temp';
1928
1931
  const lang = {};
@@ -2670,7 +2673,6 @@ function watch(observeFields, opts) {
2670
2673
  const [objectPath, eventName] = field.split(':');
2671
2674
  let ctx = context;
2672
2675
  if (objectPath.length) {
2673
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2674
2676
  ctx = component.get(objectPath);
2675
2677
  }
2676
2678
  if ((0,jodit_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_3__/* .isFunction */ .T)(ctx)) {
@@ -2861,11 +2863,17 @@ class Dom {
2861
2863
  }
2862
2864
  static replace(elm, newTagName, create, withAttributes = false, notMoveContent = false) {
2863
2865
  if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isHTML */ .AH)(newTagName)) {
2866
+ void 0;
2864
2867
  newTagName = create.fromHTML(newTagName);
2865
2868
  }
2866
- const tag = (0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(newTagName)
2867
- ? create.element(newTagName)
2868
- : newTagName;
2869
+ let tag;
2870
+ if ((0,jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__/* .isString */ .Kg)(newTagName)) {
2871
+ void 0;
2872
+ tag = create.element(newTagName);
2873
+ }
2874
+ else {
2875
+ tag = newTagName;
2876
+ }
2869
2877
  if (!notMoveContent) {
2870
2878
  while (elm.firstChild) {
2871
2879
  tag.appendChild(elm.firstChild);
@@ -3329,7 +3337,7 @@ class Dom {
3329
3337
  * Move all content to another element
3330
3338
  */
3331
3339
  static moveContent(from, to, inStart = false, filter = () => true) {
3332
- const fragment = (from.ownerDocument || document).createDocumentFragment();
3340
+ const fragment = (from.ownerDocument || jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument).createDocumentFragment();
3333
3341
  (0,jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_1__/* .toArray */ .$)(from.childNodes)
3334
3342
  .filter(elm => {
3335
3343
  if (filter(elm)) {
@@ -3790,7 +3798,7 @@ class EventEmitter {
3790
3798
  passive: true,
3791
3799
  capture: (_a = options === null || options === void 0 ? void 0 : options.capture) !== null && _a !== void 0 ? _a : false
3792
3800
  }
3793
- : (_b = options === null || options === void 0 ? void 0 : options.capture) !== null && _b !== void 0 ? _b : false;
3801
+ : ((_b = options === null || options === void 0 ? void 0 : options.capture) !== null && _b !== void 0 ? _b : false);
3794
3802
  syntheticCallback.options = eOpts;
3795
3803
  subject.addEventListener(event, syntheticCallback, eOpts);
3796
3804
  this.__memoryDOMSubjectToHandler(subject, syntheticCallback);
@@ -4022,7 +4030,7 @@ class EventEmitter {
4022
4030
  this.__domEventsMap = new Map();
4023
4031
  this.__mutedEvents = new Set();
4024
4032
  this.__key = '__JoditEventEmitterNamespaces';
4025
- this.__doc = document;
4033
+ this.__doc = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument;
4026
4034
  this.__prepareEvent = (e) => {
4027
4035
  if (e.cancelBubble) {
4028
4036
  return;
@@ -4518,9 +4526,20 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4518
4526
  const data = boxes.get(jodit) || {}, key = name + tag;
4519
4527
  const view = (0,jodit_core_helpers_checker_is_view_object__WEBPACK_IMPORTED_MODULE_6__/* .isViewObject */ .h)(jodit) ? jodit : jodit.j;
4520
4528
  if (!data[key]) {
4521
- let c = view.c, body = (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) && jodit.o.shadowRoot
4522
- ? jodit.o.shadowRoot
4523
- : jodit.od.body;
4529
+ 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
+ }
4524
4543
  if (createInsideEditor &&
4525
4544
  (0,jodit_core_helpers_checker_is_jodit_object__WEBPACK_IMPORTED_MODULE_7__/* .isJoditObject */ .y)(jodit) &&
4526
4545
  jodit.od !== jodit.ed) {
@@ -4538,6 +4557,7 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4538
4557
  body.appendChild(box);
4539
4558
  data[key] = box;
4540
4559
  jodit.hookStatus('beforeDestruct', () => {
4560
+ view.events.off(box);
4541
4561
  _dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(box);
4542
4562
  delete data[key];
4543
4563
  if (Object.keys(data).length) {
@@ -4545,6 +4565,7 @@ function getContainer(jodit, classFunc, tag = 'div', createInsideEditor = false)
4545
4565
  }
4546
4566
  });
4547
4567
  boxes.set(jodit, data);
4568
+ view.events.fire('getContainer', box);
4548
4569
  }
4549
4570
  data[key].classList.remove('jodit_theme_default', 'jodit_theme_dark');
4550
4571
  data[key].classList.add(`jodit_theme_${view.o.theme || 'default'}`);
@@ -4673,7 +4694,7 @@ const toArray = function toArray(...args) {
4673
4694
  var _a;
4674
4695
  const func = (0,jodit_core_helpers_checker_is_native_function__WEBPACK_IMPORTED_MODULE_1__/* .isNativeFunction */ .a)(Array.from)
4675
4696
  ? Array.from
4676
- : (_a = (0,jodit_core_helpers_utils_reset__WEBPACK_IMPORTED_MODULE_0__/* .reset */ .c)('Array.from')) !== null && _a !== void 0 ? _a : Array.from;
4697
+ : ((_a = (0,jodit_core_helpers_utils_reset__WEBPACK_IMPORTED_MODULE_0__/* .reset */ .c)('Array.from')) !== null && _a !== void 0 ? _a : Array.from);
4677
4698
  return func.apply(Array, args);
4678
4699
  };
4679
4700
 
@@ -4710,6 +4731,7 @@ const toArray = function toArray(...args) {
4710
4731
  /* harmony export */ D: function() { return /* binding */ clearTimeout; },
4711
4732
  /* harmony export */ w: function() { return /* binding */ setTimeout; }
4712
4733
  /* harmony export */ });
4734
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
4713
4735
  /*!
4714
4736
  * Jodit Editor (https://xdsoft.net/jodit/)
4715
4737
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -4718,6 +4740,7 @@ const toArray = function toArray(...args) {
4718
4740
  /**
4719
4741
  * @module helpers/async
4720
4742
  */
4743
+
4721
4744
  /**
4722
4745
  * Create async callback if set timeout value - else call function immediately
4723
4746
  */
@@ -4726,7 +4749,7 @@ function setTimeout(callback, timeout, ...args) {
4726
4749
  callback.call(null, ...args);
4727
4750
  }
4728
4751
  else {
4729
- return window.setTimeout(callback, timeout, ...args);
4752
+ return jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.setTimeout(callback, timeout, ...args);
4730
4753
  }
4731
4754
  return 0;
4732
4755
  }
@@ -4734,7 +4757,7 @@ function setTimeout(callback, timeout, ...args) {
4734
4757
  * Clear timeout
4735
4758
  */
4736
4759
  function clearTimeout(timer) {
4737
- window.clearTimeout(timer);
4760
+ jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.clearTimeout(timer);
4738
4761
  }
4739
4762
 
4740
4763
 
@@ -4747,6 +4770,7 @@ function clearTimeout(timer) {
4747
4770
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4748
4771
  /* harmony export */ k: function() { return /* binding */ hasBrowserColorPicker; }
4749
4772
  /* harmony export */ });
4773
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
4750
4774
  /*!
4751
4775
  * Jodit Editor (https://xdsoft.net/jodit/)
4752
4776
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -4755,13 +4779,14 @@ function clearTimeout(timer) {
4755
4779
  /**
4756
4780
  * @module helpers/checker
4757
4781
  */
4782
+
4758
4783
  /**
4759
4784
  * Check if browser has a color picker (a new HTML5 attribute for input tag)
4760
4785
  */
4761
4786
  function hasBrowserColorPicker() {
4762
4787
  let supportsColor = true;
4763
4788
  try {
4764
- const a = document.createElement('input');
4789
+ const a = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('input');
4765
4790
  a.type = 'color';
4766
4791
  a.value = '!';
4767
4792
  supportsColor = a.type === 'color' && a.value !== '!';
@@ -5411,6 +5436,7 @@ function isStringArray(value) {
5411
5436
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5412
5437
  /* harmony export */ m: function() { return /* binding */ isURL; }
5413
5438
  /* harmony export */ });
5439
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
5414
5440
  /*!
5415
5441
  * Jodit Editor (https://xdsoft.net/jodit/)
5416
5442
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -5419,6 +5445,7 @@ function isStringArray(value) {
5419
5445
  /**
5420
5446
  * @module helpers/checker
5421
5447
  */
5448
+
5422
5449
  /**
5423
5450
  * Check if a string is an url
5424
5451
  */
@@ -5435,7 +5462,7 @@ function isURL(str) {
5435
5462
  return false;
5436
5463
  }
5437
5464
  }
5438
- const a = document.createElement('a');
5465
+ const a = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('a');
5439
5466
  a.href = str;
5440
5467
  return Boolean(a.hostname);
5441
5468
  }
@@ -5670,9 +5697,9 @@ function applyStyles(html) {
5670
5697
  }
5671
5698
  html = html.substring(html.indexOf('<html '), html.length);
5672
5699
  html = html.substring(0, html.lastIndexOf('</html>') + '</html>'.length);
5673
- const iframe = document.createElement('iframe');
5700
+ const iframe = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('iframe');
5674
5701
  iframe.style.display = 'none';
5675
- document.body.appendChild(iframe);
5702
+ jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.body.appendChild(iframe);
5676
5703
  let convertedString = '', collection = [];
5677
5704
  try {
5678
5705
  const iframeDoc = iframe.contentDocument ||
@@ -5743,9 +5770,10 @@ function applyStyles(html) {
5743
5770
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5744
5771
  /* harmony export */ w: function() { return /* binding */ cleanFromWord; }
5745
5772
  /* harmony export */ });
5746
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
5747
- /* harmony import */ var jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42448);
5748
- /* harmony import */ var jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59101);
5773
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
5774
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
5775
+ /* harmony import */ var jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42448);
5776
+ /* harmony import */ var jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59101);
5749
5777
  /*!
5750
5778
  * Jodit Editor (https://xdsoft.net/jodit/)
5751
5779
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -5757,6 +5785,7 @@ function applyStyles(html) {
5757
5785
 
5758
5786
 
5759
5787
 
5788
+
5760
5789
  /**
5761
5790
  * The method automatically cleans up content from Microsoft Word and other HTML sources to ensure clean, compliant
5762
5791
  * content that matches the look and feel of the site.
@@ -5768,11 +5797,11 @@ function cleanFromWord(html) {
5768
5797
  }
5769
5798
  let convertedString = '';
5770
5799
  try {
5771
- const div = document.createElement('div');
5800
+ const div = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('div');
5772
5801
  div.innerHTML = html;
5773
5802
  const marks = [];
5774
5803
  if (div.firstChild) {
5775
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.each(div, node => {
5804
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.each(div, node => {
5776
5805
  if (!node) {
5777
5806
  return;
5778
5807
  }
@@ -5787,10 +5816,10 @@ function cleanFromWord(html) {
5787
5816
  case 'W:SDT':
5788
5817
  case 'W:SDTPR':
5789
5818
  case 'FONT':
5790
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.unwrap(node);
5819
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.unwrap(node);
5791
5820
  break;
5792
5821
  default:
5793
- (0,jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_1__/* .toArray */ .$)(node.attributes).forEach((attr) => {
5822
+ (0,jodit_core_helpers_array_to_array__WEBPACK_IMPORTED_MODULE_2__/* .toArray */ .$)(node.attributes).forEach((attr) => {
5794
5823
  if ([
5795
5824
  'src',
5796
5825
  'href',
@@ -5809,14 +5838,14 @@ function cleanFromWord(html) {
5809
5838
  }
5810
5839
  });
5811
5840
  }
5812
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.safeRemove.apply(null, marks);
5841
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.safeRemove.apply(null, marks);
5813
5842
  convertedString = div.innerHTML;
5814
5843
  }
5815
5844
  catch (e) { }
5816
5845
  if (convertedString) {
5817
5846
  html = convertedString;
5818
5847
  }
5819
- html = html.split(/(\n)/).filter(jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_2__/* .trim */ .Bq).join('\n');
5848
+ html = html.split(/(\n)/).filter(jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_3__/* .trim */ .Bq).join('\n');
5820
5849
  return html
5821
5850
  .replace(/<(\/)?(html|colgroup|col|o:p)[^>]*>/g, '')
5822
5851
  .replace(/<!--[^>]*>/g, '');
@@ -5832,6 +5861,7 @@ function cleanFromWord(html) {
5832
5861
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5833
5862
  /* harmony export */ G: function() { return /* binding */ htmlspecialchars; }
5834
5863
  /* harmony export */ });
5864
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
5835
5865
  /*!
5836
5866
  * Jodit Editor (https://xdsoft.net/jodit/)
5837
5867
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -5840,11 +5870,12 @@ function cleanFromWord(html) {
5840
5870
  /**
5841
5871
  * @module helpers/html
5842
5872
  */
5873
+
5843
5874
  /**
5844
5875
  * Convert special characters to HTML entities
5845
5876
  */
5846
5877
  function htmlspecialchars(html) {
5847
- const tmp = document.createElement('div');
5878
+ const tmp = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('div');
5848
5879
  tmp.textContent = html;
5849
5880
  return tmp.innerHTML;
5850
5881
  }
@@ -6345,7 +6376,8 @@ function normalizeKeyAliases(keys) {
6345
6376
  ctrl: 2,
6346
6377
  control: 2,
6347
6378
  alt: 3,
6348
- shift: 4
6379
+ shift: 4,
6380
+ space: 5
6349
6381
  };
6350
6382
  return keys
6351
6383
  .replace(/\+\+/g, '+add')
@@ -6564,8 +6596,9 @@ const getContentWidth = (element, win) => {
6564
6596
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6565
6597
  /* harmony export */ m: function() { return /* binding */ getScrollParent; }
6566
6598
  /* harmony export */ });
6567
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
6568
- /* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97369);
6599
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
6600
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
6601
+ /* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97369);
6569
6602
  /*!
6570
6603
  * Jodit Editor (https://xdsoft.net/jodit/)
6571
6604
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -6573,19 +6606,20 @@ const getContentWidth = (element, win) => {
6573
6606
  */
6574
6607
 
6575
6608
 
6609
+
6576
6610
  function getScrollParent(node) {
6577
6611
  if (!node) {
6578
6612
  return null;
6579
6613
  }
6580
- const isElement = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isHTMLElement(node);
6581
- const overflowY = isElement && (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_1__.css)(node, 'overflowY');
6614
+ const isElement = jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isHTMLElement(node);
6615
+ const overflowY = isElement && (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_2__.css)(node, 'overflowY');
6582
6616
  const isScrollable = isElement && overflowY !== 'visible' && overflowY !== 'hidden';
6583
6617
  if (isScrollable && node.scrollHeight >= node.clientHeight) {
6584
6618
  return node;
6585
6619
  }
6586
6620
  return (getScrollParent(node.parentNode) ||
6587
- document.scrollingElement ||
6588
- document.body);
6621
+ jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.scrollingElement ||
6622
+ jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.body);
6589
6623
  }
6590
6624
 
6591
6625
 
@@ -7510,16 +7544,18 @@ const buildQuery = (data, prefix) => {
7510
7544
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7511
7545
  /* harmony export */ X: function() { return /* binding */ completeUrl; }
7512
7546
  /* harmony export */ });
7547
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
7513
7548
  /*!
7514
7549
  * Jodit Editor (https://xdsoft.net/jodit/)
7515
7550
  * Released under MIT see LICENSE.txt in the project root for license information.
7516
7551
  * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
7517
7552
  */
7553
+
7518
7554
  /**
7519
7555
  * @module helpers/utils
7520
7556
  */
7521
7557
  const completeUrl = (url) => {
7522
- if (window.location.protocol === 'file:' && /^\/\//.test(url)) {
7558
+ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.location.protocol === 'file:' && /^\/\//.test(url)) {
7523
7559
  url = 'https:' + url;
7524
7560
  }
7525
7561
  return url;
@@ -7636,8 +7672,9 @@ function ConfigFlatten(obj) {
7636
7672
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7637
7673
  /* harmony export */ m: function() { return /* binding */ convertMediaUrlToVideoEmbed; }
7638
7674
  /* harmony export */ });
7639
- /* harmony import */ var jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6939);
7640
- /* harmony import */ var _parse_query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70807);
7675
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
7676
+ /* harmony import */ var jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6939);
7677
+ /* harmony import */ var _parse_query__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70807);
7641
7678
  /*!
7642
7679
  * Jodit Editor (https://xdsoft.net/jodit/)
7643
7680
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -7648,14 +7685,15 @@ function ConfigFlatten(obj) {
7648
7685
  */
7649
7686
 
7650
7687
 
7688
+
7651
7689
  /**
7652
7690
  * Javascript url pattern converter replace youtube/vimeo url in embed code.
7653
7691
  */
7654
7692
  const convertMediaUrlToVideoEmbed = (url, width = 400, height = 345) => {
7655
- if (!(0,jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_0__/* .isURL */ .m)(url)) {
7693
+ if (!(0,jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_1__/* .isURL */ .m)(url)) {
7656
7694
  return url;
7657
7695
  }
7658
- const parser = document.createElement('a'), pattern1 = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
7696
+ const parser = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('a'), pattern1 = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
7659
7697
  parser.href = url;
7660
7698
  if (!width) {
7661
7699
  width = 400;
@@ -7681,7 +7719,7 @@ const convertMediaUrlToVideoEmbed = (url, width = 400, height = 345) => {
7681
7719
  case 'youtu.be':
7682
7720
  case 'www.youtu.be': {
7683
7721
  const query = parser.search
7684
- ? (0,_parse_query__WEBPACK_IMPORTED_MODULE_1__/* .parseQuery */ .m)(parser.search)
7722
+ ? (0,_parse_query__WEBPACK_IMPORTED_MODULE_2__/* .parseQuery */ .m)(parser.search)
7685
7723
  : { v: parser.pathname.substr(1) };
7686
7724
  return query.v
7687
7725
  ? '<iframe width="' +
@@ -7875,7 +7913,8 @@ const dataBind = (elm, key, value) => {
7875
7913
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7876
7914
  /* harmony export */ e: function() { return /* binding */ defaultLanguage; }
7877
7915
  /* harmony export */ });
7878
- /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98253);
7916
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
7917
+ /* harmony import */ var jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98253);
7879
7918
  /*!
7880
7919
  * Jodit Editor (https://xdsoft.net/jodit/)
7881
7920
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -7885,15 +7924,16 @@ const dataBind = (elm, key, value) => {
7885
7924
  * @module helpers/utils
7886
7925
  */
7887
7926
 
7927
+
7888
7928
  /**
7889
7929
  * Try define user language
7890
7930
  */
7891
7931
  const defaultLanguage = (language, defaultLanguage = 'en') => {
7892
- if (language !== 'auto' && (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_0__/* .isString */ .K)(language)) {
7932
+ if (language !== 'auto' && (0,jodit_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_1__/* .isString */ .K)(language)) {
7893
7933
  return language;
7894
7934
  }
7895
- if (document.documentElement && document.documentElement.lang) {
7896
- return document.documentElement.lang;
7935
+ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.documentElement && jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.documentElement.lang) {
7936
+ return jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.documentElement.lang;
7897
7937
  }
7898
7938
  if (navigator.language) {
7899
7939
  return navigator.language.substring(0, 2);
@@ -8647,10 +8687,10 @@ const map = {};
8647
8687
  function reset(key) {
8648
8688
  var _a, _b;
8649
8689
  if (!(key in map)) {
8650
- const iframe = document.createElement('iframe');
8690
+ const iframe = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('iframe');
8651
8691
  try {
8652
8692
  iframe.src = 'about:blank';
8653
- document.body.appendChild(iframe);
8693
+ jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.body.appendChild(iframe);
8654
8694
  if (!iframe.contentWindow) {
8655
8695
  return null;
8656
8696
  }
@@ -9579,14 +9619,15 @@ Plugin.requires = [];
9579
9619
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9580
9620
  /* harmony export */ d: function() { return /* binding */ Ajax; }
9581
9621
  /* harmony export */ });
9582
- /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31635);
9622
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31635);
9583
9623
  /* harmony import */ var jodit_core_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64890);
9584
- /* harmony import */ var jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(26318);
9585
- /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65147);
9586
- /* harmony import */ var jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50156);
9587
- /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36115);
9588
- /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(27337);
9589
- /* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(91672);
9624
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17352);
9625
+ /* harmony import */ var jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26318);
9626
+ /* harmony import */ var jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65147);
9627
+ /* harmony import */ var jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50156);
9628
+ /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36115);
9629
+ /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27337);
9630
+ /* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(91672);
9590
9631
  /*!
9591
9632
  * Jodit Editor (https://xdsoft.net/jodit/)
9592
9633
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -9600,33 +9641,34 @@ Plugin.requires = [];
9600
9641
 
9601
9642
 
9602
9643
 
9644
+
9603
9645
  class Ajax {
9604
9646
  className() {
9605
9647
  return 'Ajax';
9606
9648
  }
9607
- constructor(options, defaultAjaxOptions = jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.defaultAjaxOptions) {
9649
+ constructor(options, defaultAjaxOptions = jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.defaultAjaxOptions) {
9608
9650
  this.__async = new jodit_core_async__WEBPACK_IMPORTED_MODULE_0__/* .Async */ .j();
9609
9651
  this.__isFulfilled = false;
9610
9652
  this.__activated = false;
9611
9653
  this.__isDestructed = false;
9612
- this.options = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.ConfigProto)(options || {}, defaultAjaxOptions);
9654
+ this.options = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.ConfigProto)(options || {}, defaultAjaxOptions);
9613
9655
  this.xhr = this.o.xhr ? this.o.xhr() : new XMLHttpRequest();
9614
9656
  }
9615
9657
  __buildParams(obj, prefix) {
9616
- if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(obj) &&
9658
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(obj) &&
9617
9659
  this.options.contentType &&
9618
9660
  this.options.contentType.includes('application/json')) {
9619
9661
  return JSON.stringify(obj);
9620
9662
  }
9621
- if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isFunction)(this.o.queryBuild)) {
9663
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isFunction)(this.o.queryBuild)) {
9622
9664
  return this.o.queryBuild.call(this, obj, prefix);
9623
9665
  }
9624
- if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isString)(obj) ||
9625
- obj instanceof window.FormData ||
9626
- (typeof obj === 'object' && obj != null && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isFunction)(obj.append))) {
9666
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isString)(obj) ||
9667
+ obj instanceof jodit_core_constants__WEBPACK_IMPORTED_MODULE_1__.globalWindow.FormData ||
9668
+ (typeof obj === 'object' && obj != null && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isFunction)(obj.append))) {
9627
9669
  return obj;
9628
9670
  }
9629
- return (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.buildQuery)(obj);
9671
+ return (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.buildQuery)(obj);
9630
9672
  }
9631
9673
  get o() {
9632
9674
  return this.options;
@@ -9650,16 +9692,16 @@ class Ajax {
9650
9692
  var _a;
9651
9693
  const onReject = () => {
9652
9694
  this.__isFulfilled = true;
9653
- reject(jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_2__/* .connection */ .FI('Connection error'));
9695
+ reject(jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_3__/* .connection */ .FI('Connection error'));
9654
9696
  };
9655
9697
  const onResolve = () => {
9656
9698
  this.__isFulfilled = true;
9657
- resolve(new _response__WEBPACK_IMPORTED_MODULE_5__/* .Response */ .Y(request, xhr.status, xhr.statusText, !xhr.responseType ? xhr.responseText : xhr.response));
9699
+ resolve(new _response__WEBPACK_IMPORTED_MODULE_6__/* .Response */ .Y(request, xhr.status, xhr.statusText, !xhr.responseType ? xhr.responseText : xhr.response));
9658
9700
  };
9659
9701
  xhr.onload = onResolve;
9660
9702
  xhr.onabort = () => {
9661
9703
  this.__isFulfilled = true;
9662
- reject(jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_2__/* .abort */ .h2('Abort connection'));
9704
+ reject(jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_3__/* .abort */ .h2('Abort connection'));
9663
9705
  };
9664
9706
  xhr.onerror = onReject;
9665
9707
  xhr.ontimeout = onReject;
@@ -9683,7 +9725,7 @@ class Ajax {
9683
9725
  }
9684
9726
  else if (xhr.statusText) {
9685
9727
  this.__isFulfilled = true;
9686
- reject(jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_2__/* .connection */ .FI(xhr.statusText));
9728
+ reject(jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_3__/* .connection */ .FI(xhr.statusText));
9687
9729
  }
9688
9730
  }
9689
9731
  };
@@ -9694,7 +9736,7 @@ class Ajax {
9694
9736
  xhr.setRequestHeader('Content-type', o.contentType);
9695
9737
  }
9696
9738
  let { headers } = o;
9697
- if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isFunction)(headers)) {
9739
+ if ((0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isFunction)(headers)) {
9698
9740
  headers = await headers.call(this);
9699
9741
  }
9700
9742
  if (headers && xhr.setRequestHeader) {
@@ -9710,22 +9752,22 @@ class Ajax {
9710
9752
  }
9711
9753
  prepareRequest() {
9712
9754
  if (!this.o.url) {
9713
- throw jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_2__/* .error */ .z3('Need URL for AJAX request');
9755
+ throw jodit_core_helpers_utils_error__WEBPACK_IMPORTED_MODULE_3__/* .error */ .z3('Need URL for AJAX request');
9714
9756
  }
9715
9757
  let url = this.o.url;
9716
9758
  const data = this.o.data;
9717
9759
  const method = (this.o.method || 'get').toLowerCase();
9718
- if (method === 'get' && data && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(data)) {
9760
+ if (method === 'get' && data && (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(data)) {
9719
9761
  const qIndex = url.indexOf('?');
9720
9762
  if (qIndex !== -1) {
9721
- const urlData = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.parseQuery)(url);
9763
+ const urlData = (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.parseQuery)(url);
9722
9764
  url =
9723
9765
  url.substring(0, qIndex) +
9724
9766
  '?' +
9725
- (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.buildQuery)({ ...urlData, ...data });
9767
+ (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.buildQuery)({ ...urlData, ...data });
9726
9768
  }
9727
9769
  else {
9728
- url += '?' + (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.buildQuery)(this.o.data);
9770
+ url += '?' + (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_2__.buildQuery)(this.o.data);
9729
9771
  }
9730
9772
  }
9731
9773
  const request = {
@@ -9749,8 +9791,8 @@ class Ajax {
9749
9791
  }
9750
9792
  }
9751
9793
  Ajax.log = [];
9752
- (0,tslib__WEBPACK_IMPORTED_MODULE_6__/* .__decorate */ .Cg)([
9753
- jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Ay
9794
+ (0,tslib__WEBPACK_IMPORTED_MODULE_7__/* .__decorate */ .Cg)([
9795
+ jodit_core_decorators_autobind_autobind__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Ay
9754
9796
  ], Ajax.prototype, "destruct", null);
9755
9797
 
9756
9798
 
@@ -10639,6 +10681,7 @@ class Selection {
10639
10681
  /**
10640
10682
  * Call callback for all selection node
10641
10683
  */
10684
+ // eslint-disable-next-line complexity
10642
10685
  eachSelection(callback) {
10643
10686
  var _a;
10644
10687
  const sel = this.sel;
@@ -11423,12 +11466,13 @@ function getSuitParent(style, node, root) {
11423
11466
  /* harmony export */ Y: function() { return /* binding */ hasSameStyleKeys; },
11424
11467
  /* harmony export */ g: function() { return /* binding */ hasSameStyle; }
11425
11468
  /* harmony export */ });
11426
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
11427
- /* harmony import */ var jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35642);
11428
- /* harmony import */ var jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(59678);
11429
- /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28712);
11430
- /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_1__);
11431
- /* harmony import */ var jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38322);
11469
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
11470
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
11471
+ /* harmony import */ var jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35642);
11472
+ /* harmony import */ var jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(59678);
11473
+ /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28712);
11474
+ /* harmony import */ var jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(jodit_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_2__);
11475
+ /* harmony import */ var jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38322);
11432
11476
  /*!
11433
11477
  * Jodit Editor (https://xdsoft.net/jodit/)
11434
11478
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11439,48 +11483,53 @@ function getSuitParent(style, node, root) {
11439
11483
 
11440
11484
 
11441
11485
 
11486
+
11442
11487
  /**
11443
11488
  * Element has the same styles as in the commit
11444
11489
  * @private
11445
11490
  */
11446
11491
  function hasSameStyle(elm, rules) {
11447
- return Boolean(!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isTag(elm, 'font') &&
11448
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isHTMLElement(elm) &&
11492
+ return Boolean(!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(elm, 'font') &&
11493
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isHTMLElement(elm) &&
11449
11494
  Object.keys(rules).every(property => {
11450
- const value = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_2__/* .css */ .A)(elm, property, true);
11495
+ const value = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_3__/* .css */ .A)(elm, property, true);
11451
11496
  if (value === '' &&
11452
11497
  (rules[property] === '' || rules[property] == null)) {
11453
11498
  return true;
11454
11499
  }
11455
- return (!(0,jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_3__/* .isVoid */ .R)(value) &&
11500
+ return (!(0,jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_4__/* .isVoid */ .R)(value) &&
11456
11501
  value !== '' &&
11457
- !(0,jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_3__/* .isVoid */ .R)(rules[property]) &&
11458
- (0,jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_4__/* .normalizeCssValue */ .iy)(property, rules[property])
11502
+ !(0,jodit_core_helpers_checker_is_void__WEBPACK_IMPORTED_MODULE_4__/* .isVoid */ .R)(rules[property]) &&
11503
+ (0,jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_5__/* .normalizeCssValue */ .iy)(property, rules[property])
11459
11504
  .toString()
11460
11505
  .toLowerCase() === value.toString().toLowerCase());
11461
11506
  }));
11462
11507
  }
11463
- const elm = document.createElement('div');
11464
- elm.style.color = 'red';
11465
- void 0;
11466
- void 0;
11467
- void 0;
11508
+ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument) {
11509
+ const elm = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('div');
11510
+ elm.style.color = 'red';
11511
+ void 0;
11512
+ void 0;
11513
+ void 0;
11514
+ }
11468
11515
  /**
11469
11516
  * Element has the similar styles keys
11470
11517
  */
11471
11518
  function hasSameStyleKeys(elm, rules) {
11472
- return Boolean(!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isTag(elm, 'font') &&
11473
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isHTMLElement(elm) &&
11519
+ return Boolean(!jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(elm, 'font') &&
11520
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isHTMLElement(elm) &&
11474
11521
  Object.keys(rules).every(property => {
11475
- const value = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_2__/* .css */ .A)(elm, property, true);
11522
+ const value = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_3__/* .css */ .A)(elm, property, true);
11476
11523
  return value !== '';
11477
11524
  }));
11478
11525
  }
11479
- const elm2 = document.createElement('div');
11480
- elm2.style.color = 'red';
11481
- void 0;
11482
- void 0;
11483
- void 0;
11526
+ if (jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument) {
11527
+ const elm2 = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('div');
11528
+ elm2.style.color = 'red';
11529
+ void 0;
11530
+ void 0;
11531
+ void 0;
11532
+ }
11484
11533
 
11485
11534
 
11486
11535
  /***/ }),
@@ -11863,16 +11912,17 @@ function wrapList(commitStyle, wrapper, jodit) {
11863
11912
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11864
11913
  /* harmony export */ Y: function() { return /* binding */ toggleAttributes; }
11865
11914
  /* harmony export */ });
11866
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
11867
- /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56298);
11868
- /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9823);
11869
- /* harmony import */ var jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59678);
11870
- /* harmony import */ var jodit_core_helpers_size_object_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95350);
11871
- /* harmony import */ var jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(449);
11872
- /* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97369);
11873
- /* harmony import */ var jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(38322);
11874
- /* harmony import */ var jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72197);
11875
- /* harmony import */ var jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(12043);
11915
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
11916
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
11917
+ /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56298);
11918
+ /* harmony import */ var jodit_core_helpers_checker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9823);
11919
+ /* harmony import */ var jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59678);
11920
+ /* harmony import */ var jodit_core_helpers_size_object_size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95350);
11921
+ /* harmony import */ var jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(449);
11922
+ /* harmony import */ var jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97369);
11923
+ /* harmony import */ var jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(38322);
11924
+ /* harmony import */ var jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(72197);
11925
+ /* harmony import */ var jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12043);
11876
11926
  /*!
11877
11927
  * Jodit Editor (https://xdsoft.net/jodit/)
11878
11928
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -11888,6 +11938,7 @@ function wrapList(commitStyle, wrapper, jodit) {
11888
11938
 
11889
11939
 
11890
11940
 
11941
+
11891
11942
  const tak = 'toggleAttributes';
11892
11943
  /**
11893
11944
  * Toggles attributes
@@ -11899,7 +11950,7 @@ function toggleAttributes(commitStyle, elm, jodit, mode, dry = false) {
11899
11950
  }
11900
11951
  !dry && commitStyle.setApplied(elm, tak);
11901
11952
  const { attributes } = commitStyle.options;
11902
- if (attributes && (0,jodit_core_helpers_size_object_size__WEBPACK_IMPORTED_MODULE_3__/* .size */ .E)(attributes) > 0) {
11953
+ if (attributes && (0,jodit_core_helpers_size_object_size__WEBPACK_IMPORTED_MODULE_4__/* .size */ .E)(attributes) > 0) {
11903
11954
  Object.keys(attributes).forEach((key) => {
11904
11955
  const value = attributes[key];
11905
11956
  switch (key) {
@@ -11921,24 +11972,24 @@ function toggleAttributes(commitStyle, elm, jodit, mode, dry = false) {
11921
11972
  function toggleStyle(commitStyle, jodit, style, elm, dry, mode) {
11922
11973
  void 0;
11923
11974
  Object.keys(style).forEach((rule) => {
11924
- const inlineValue = elm.style.getPropertyValue((0,jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_6__/* .kebabCase */ .k)(rule));
11975
+ const inlineValue = elm.style.getPropertyValue((0,jodit_core_helpers_string_kebab_case__WEBPACK_IMPORTED_MODULE_7__/* .kebabCase */ .k)(rule));
11925
11976
  const newValue = style[rule];
11926
11977
  if (inlineValue === '' && newValue == null) {
11927
11978
  return;
11928
11979
  }
11929
11980
  if (getNativeCSSValue(jodit, elm, rule) ===
11930
- (0,jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_7__/* .normalizeCssValue */ .iy)(rule, newValue)) {
11981
+ (0,jodit_core_helpers_normalize_normalize_css_value__WEBPACK_IMPORTED_MODULE_8__/* .normalizeCssValue */ .iy)(rule, newValue)) {
11931
11982
  if (!inlineValue) {
11932
11983
  return;
11933
11984
  }
11934
- !dry && (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__/* .css */ .A)(elm, rule, null);
11935
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .UNSET */ .Ag;
11985
+ !dry && (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_9__/* .css */ .A)(elm, rule, null);
11986
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .UNSET */ .Ag;
11936
11987
  mode = removeExtraStyleAttribute(commitStyle, elm, mode);
11937
11988
  return;
11938
11989
  }
11939
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .CHANGE */ .PL;
11990
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .CHANGE */ .PL;
11940
11991
  if (!dry) {
11941
- (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__/* .css */ .A)(elm, rule, newValue);
11992
+ (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_9__/* .css */ .A)(elm, rule, newValue);
11942
11993
  mode = removeExtraStyleAttribute(commitStyle, elm, mode);
11943
11994
  }
11944
11995
  });
@@ -11946,19 +11997,19 @@ function toggleStyle(commitStyle, jodit, style, elm, dry, mode) {
11946
11997
  }
11947
11998
  function toggleClass(jodit, value, elm, mode, dry) {
11948
11999
  void 0;
11949
- const hook = jodit.e.fire.bind(jodit.e, `${jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* ._PREFIX */ .ar}AfterToggleAttribute`);
12000
+ const hook = jodit.e.fire.bind(jodit.e, `${jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* ._PREFIX */ .ar}AfterToggleAttribute`);
11950
12001
  if (elm.classList.contains(value.toString())) {
11951
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .UNSET */ .Ag;
12002
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .UNSET */ .Ag;
11952
12003
  if (!dry) {
11953
12004
  elm.classList.remove(value);
11954
12005
  if (elm.classList.length === 0) {
11955
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.attr)(elm, 'class', null);
12006
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.attr)(elm, 'class', null);
11956
12007
  hook(mode, elm, 'class', null);
11957
12008
  }
11958
12009
  }
11959
12010
  }
11960
12011
  else {
11961
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .CHANGE */ .PL;
12012
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .CHANGE */ .PL;
11962
12013
  if (!dry) {
11963
12014
  elm.classList.add(value);
11964
12015
  hook(mode, elm, 'class', value);
@@ -11968,16 +12019,16 @@ function toggleClass(jodit, value, elm, mode, dry) {
11968
12019
  }
11969
12020
  function toggleAttribute(jodit, value, elm, key, dry, mode) {
11970
12021
  void 0;
11971
- const hook = jodit.e.fire.bind(jodit.e, `${jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* ._PREFIX */ .ar}AfterToggleAttribute`);
11972
- if ((0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.attr)(elm, key) === value) {
11973
- !dry && (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.attr)(elm, key, null);
11974
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .UNSET */ .Ag;
12022
+ const hook = jodit.e.fire.bind(jodit.e, `${jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* ._PREFIX */ .ar}AfterToggleAttribute`);
12023
+ if ((0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.attr)(elm, key) === value) {
12024
+ !dry && (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.attr)(elm, key, null);
12025
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .UNSET */ .Ag;
11975
12026
  !dry && hook(mode, elm, key, value);
11976
12027
  return mode;
11977
12028
  }
11978
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .CHANGE */ .PL;
12029
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .CHANGE */ .PL;
11979
12030
  if (!dry) {
11980
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.attr)(elm, key, value);
12031
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.attr)(elm, key, value);
11981
12032
  hook(mode, elm, key, value);
11982
12033
  }
11983
12034
  return mode;
@@ -11987,11 +12038,11 @@ function toggleAttribute(jodit, value, elm, key, dry, mode) {
11987
12038
  * and if it is default, it removes the element itself
11988
12039
  */
11989
12040
  function removeExtraStyleAttribute(commitStyle, elm, mode) {
11990
- if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.attr)(elm, 'style')) {
11991
- (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_4__.attr)(elm, 'style', null);
12041
+ if (!(0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.attr)(elm, 'style')) {
12042
+ (0,jodit_core_helpers_utils__WEBPACK_IMPORTED_MODULE_5__.attr)(elm, 'style', null);
11992
12043
  if (elm.tagName.toLowerCase() === commitStyle.defaultTag) {
11993
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.unwrap(elm);
11994
- mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_9__/* .UNWRAP */ .OJ;
12044
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.unwrap(elm);
12045
+ mode = jodit_core_selection_style_constants__WEBPACK_IMPORTED_MODULE_10__/* .UNWRAP */ .OJ;
11995
12046
  }
11996
12047
  }
11997
12048
  return mode;
@@ -12001,12 +12052,12 @@ function removeExtraStyleAttribute(commitStyle, elm, mode) {
12001
12052
  */
12002
12053
  function getShadowRoot(jodit) {
12003
12054
  var _a;
12004
- if ((0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_5__/* .dataBind */ .m)(jodit, 'shadowRoot') !== undefined) {
12005
- return (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_5__/* .dataBind */ .m)(jodit, 'shadowRoot');
12055
+ if ((0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_6__/* .dataBind */ .m)(jodit, 'shadowRoot') !== undefined) {
12056
+ return (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_6__/* .dataBind */ .m)(jodit, 'shadowRoot');
12006
12057
  }
12007
- const container = (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_1__/* .getContainer */ .My)(jodit);
12008
- const iframe = document.createElement('iframe');
12009
- (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__/* .css */ .A)(iframe, {
12058
+ const container = (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .getContainer */ .My)(jodit);
12059
+ const iframe = jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalDocument.createElement('iframe');
12060
+ (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_9__/* .css */ .A)(iframe, {
12010
12061
  width: 0,
12011
12062
  height: 0,
12012
12063
  position: 'absolute',
@@ -12016,7 +12067,7 @@ function getShadowRoot(jodit) {
12016
12067
  container.appendChild(iframe);
12017
12068
  const doc = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document;
12018
12069
  const shadowRoot = !doc ? jodit.od.body : doc.body;
12019
- (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_5__/* .dataBind */ .m)(jodit, 'shadowRoot', shadowRoot);
12070
+ (0,jodit_core_helpers_utils_data_bind__WEBPACK_IMPORTED_MODULE_6__/* .dataBind */ .m)(jodit, 'shadowRoot', shadowRoot);
12020
12071
  return shadowRoot;
12021
12072
  }
12022
12073
  /**
@@ -12027,8 +12078,8 @@ function getNativeCSSValue(jodit, elm, key) {
12027
12078
  newElm.style.cssText = elm.style.cssText;
12028
12079
  const root = getShadowRoot(jodit);
12029
12080
  root.appendChild(newElm);
12030
- const result = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_8__/* .css */ .A)(newElm, key);
12031
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.safeRemove(newElm);
12081
+ const result = (0,jodit_core_helpers_utils_css__WEBPACK_IMPORTED_MODULE_9__/* .css */ .A)(newElm, key);
12082
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.safeRemove(newElm);
12032
12083
  return result;
12033
12084
  }
12034
12085
 
@@ -13422,15 +13473,21 @@ let UITooltip = UITooltip_1 = class UITooltip extends jodit_core_ui_element__WEB
13422
13473
  if (!view.o.textIcons &&
13423
13474
  view.o.showTooltip &&
13424
13475
  !view.o.useNativeTooltip) {
13476
+ this.j.e.on('getContainer', (box) => {
13477
+ this.__onAttach(box);
13478
+ });
13425
13479
  view.hookStatus(jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .STATUSES */ .f.ready, () => {
13426
- // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13427
- (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13428
- view.e.on(view.container, 'mouseenter.tooltip', this.__onMouseEnter, {
13429
- capture: true
13430
- });
13480
+ this.__onAttach(this.j.container);
13431
13481
  });
13432
13482
  }
13433
13483
  }
13484
+ __onAttach(container) {
13485
+ // TODO Move it inside __show method. Now it is here because testcase failed with capturing
13486
+ (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .getContainer */ .My)(this.j, UITooltip_1).appendChild(this.container);
13487
+ this.j.e.on(container, 'mouseenter.tooltip', this.__onMouseEnter, {
13488
+ capture: true
13489
+ });
13490
+ }
13434
13491
  __addListenersOnEnter() {
13435
13492
  if (this.__listenClose) {
13436
13493
  return;
@@ -14058,6 +14115,7 @@ let UIFileInput = class UIFileInput extends jodit_core_ui_form_inputs_input_inpu
14058
14115
  }
14059
14116
  createContainer(options) {
14060
14117
  this.button = new jodit_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_0__/* .UIButton */ .lD(this.j, {
14118
+ tooltip: options.tooltip,
14061
14119
  icon: {
14062
14120
  name: 'plus'
14063
14121
  }
@@ -14497,8 +14555,8 @@ __webpack_require__.r(__webpack_exports__);
14497
14555
  /* harmony export */ required: function() { return /* binding */ required; },
14498
14556
  /* harmony export */ url: function() { return /* binding */ url; }
14499
14557
  /* harmony export */ });
14500
- /* harmony import */ var jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6939);
14501
- /* harmony import */ var jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59101);
14558
+ /* harmony import */ var jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6939);
14559
+ /* harmony import */ var jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59101);
14502
14560
  /*!
14503
14561
  * Jodit Editor (https://xdsoft.net/jodit/)
14504
14562
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -14510,7 +14568,7 @@ __webpack_require__.r(__webpack_exports__);
14510
14568
  * Input is required
14511
14569
  */
14512
14570
  const required = function (input) {
14513
- if (!(0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_0__/* .trim */ .Bq)(input.value).length) {
14571
+ if (!(0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_1__/* .trim */ .Bq)(input.value).length) {
14514
14572
  input.error = 'Please fill out this field';
14515
14573
  return false;
14516
14574
  }
@@ -14520,7 +14578,7 @@ const required = function (input) {
14520
14578
  * Input value should be valid URL
14521
14579
  */
14522
14580
  const url = function (input) {
14523
- if (!(0,jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_1__/* .isURL */ .m)((0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_0__/* .trim */ .Bq)(input.value))) {
14581
+ if (!(0,jodit_core_helpers_checker_is_url__WEBPACK_IMPORTED_MODULE_0__/* .isURL */ .m)((0,jodit_core_helpers_string_trim__WEBPACK_IMPORTED_MODULE_1__/* .trim */ .Bq)(input.value))) {
14524
14582
  input.error = 'Please enter a web address';
14525
14583
  return false;
14526
14584
  }
@@ -17080,6 +17138,9 @@ let Jodit = Jodit_1 = class Jodit extends jodit_modules__WEBPACK_IMPORTED_MODULE
17080
17138
  }
17081
17139
  }
17082
17140
  catch (e) {
17141
+ if (!jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
17142
+ throw e;
17143
+ }
17083
17144
  this.destruct();
17084
17145
  throw e;
17085
17146
  }
@@ -19073,10 +19134,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.filebrowser
19073
19134
  jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.controls.filebrowser = {
19074
19135
  upload: {
19075
19136
  icon: 'plus',
19137
+ tooltip: 'Upload file',
19076
19138
  isInput: true,
19077
19139
  isDisabled: (browser) => !browser.dataProvider.canI('FileUpload'),
19078
- getContent: (filebrowser) => {
19140
+ getContent: (filebrowser, btnInt) => {
19079
19141
  const btn = new jodit_core_ui_form_inputs_file_file__WEBPACK_IMPORTED_MODULE_2__/* .UIFileInput */ .n(filebrowser, {
19142
+ tooltip: btnInt.control.tooltip,
19080
19143
  onlyImages: filebrowser.state.onlyImages
19081
19144
  });
19082
19145
  filebrowser.e.fire('bindUploader.filebrowser', btn.container);
@@ -19085,6 +19148,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.controls.fil
19085
19148
  },
19086
19149
  remove: {
19087
19150
  icon: 'bin',
19151
+ tooltip: 'Remove file',
19088
19152
  isDisabled: (browser) => {
19089
19153
  return (!browser.state.activeElements.length ||
19090
19154
  !browser.dataProvider.canI('FileRemove'));
@@ -19094,11 +19158,13 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.controls.fil
19094
19158
  }
19095
19159
  },
19096
19160
  update: {
19161
+ tooltip: 'Update file list',
19097
19162
  exec: (editor) => {
19098
19163
  editor.e.fire('update.filebrowser');
19099
19164
  }
19100
19165
  },
19101
19166
  select: {
19167
+ tooltip: 'Select file',
19102
19168
  icon: 'check',
19103
19169
  isDisabled: (browser) => !browser.state.activeElements.length,
19104
19170
  exec: (editor) => {
@@ -19106,6 +19172,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.controls.fil
19106
19172
  }
19107
19173
  },
19108
19174
  edit: {
19175
+ tooltip: 'Edit image',
19109
19176
  icon: 'pencil',
19110
19177
  isDisabled: (browser) => {
19111
19178
  const selected = browser.state.activeElements;
@@ -19119,6 +19186,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.controls.fil
19119
19186
  }
19120
19187
  },
19121
19188
  tiles: {
19189
+ tooltip: 'Tiles view',
19122
19190
  icon: 'th',
19123
19191
  isActive: (filebrowser) => filebrowser.state.view === 'tiles',
19124
19192
  exec: (filebrowser) => {
@@ -19126,6 +19194,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_3__/* .Config */ .T.prototype.controls.fil
19126
19194
  }
19127
19195
  },
19128
19196
  list: {
19197
+ tooltip: 'List view',
19129
19198
  icon: 'th-list',
19130
19199
  isActive: (filebrowser) => filebrowser.state.view === 'list',
19131
19200
  exec: (filebrowser) => {
@@ -19542,7 +19611,6 @@ let DataProvider = class DataProvider {
19542
19611
  data: {}
19543
19612
  };
19544
19613
  }
19545
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
19546
19614
  const query = this.o[type];
19547
19615
  if (query.data === undefined) {
19548
19616
  query.data = {
@@ -19788,7 +19856,6 @@ let FileBrowser = class FileBrowser extends jodit_core_view_view_with_toolbar__W
19788
19856
  get dataProvider() {
19789
19857
  return (0,_factories__WEBPACK_IMPORTED_MODULE_16__/* .makeDataProvider */ .S)(this, this.options);
19790
19858
  }
19791
- // eslint-disable-next-line no-unused-vars
19792
19859
  onSelect(callback) {
19793
19860
  return () => {
19794
19861
  if (this.state.activeElements.length) {
@@ -22310,7 +22377,6 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22310
22377
  const selector = (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.cssPath)(td);
22311
22378
  selector && selectors.push(selector);
22312
22379
  });
22313
- // eslint-disable-next-line no-prototype-builtins
22314
22380
  style.innerHTML = selectors.length
22315
22381
  ? selectors.join(',') +
22316
22382
  `{${this.jodit.options.table.selectionCellStyle}}`
@@ -22529,46 +22595,39 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22529
22595
  removeRow(table, rowIndex) {
22530
22596
  return Table.__removeRow(table, rowIndex);
22531
22597
  }
22532
- static __appendColumn(table, j, after, create) {
22598
+ /**
22599
+ * Insert column before / after all the columns containing the selected cells
22600
+ */
22601
+ appendColumn(table, selectedCell, insertAfter = true) {
22533
22602
  const box = Table.__formalMatrix(table);
22534
- let i;
22535
- if (j === undefined || j < 0) {
22536
- j = Table.__getColumnsCount(table) - 1;
22537
- }
22538
- for (i = 0; i < box.length; i += 1) {
22539
- const cell = create.element('td');
22540
- const td = box[i][j];
22541
- let added = false;
22542
- if (after) {
22543
- if ((box[i] && td && j + 1 >= box[i].length) ||
22544
- td !== box[i][j + 1]) {
22545
- if (td.nextSibling) {
22546
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(td.nextSibling, cell);
22547
- }
22548
- else {
22549
- td.parentNode && td.parentNode.appendChild(cell);
22550
- }
22551
- added = true;
22603
+ if (!insertAfter && jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.isCell(selectedCell.previousElementSibling)) {
22604
+ return this.appendColumn(table, selectedCell.previousElementSibling, true);
22605
+ }
22606
+ const columnIndex = insertAfter
22607
+ ? selectedCell.cellIndex + ((selectedCell.colSpan || 1) - 1)
22608
+ : selectedCell.cellIndex;
22609
+ const newColumnIndex = insertAfter ? columnIndex + 1 : columnIndex;
22610
+ for (let i = 0; i < box.length;) {
22611
+ const cells = box[i];
22612
+ if (cells[columnIndex] !== cells[newColumnIndex] ||
22613
+ columnIndex === newColumnIndex) {
22614
+ const cell = this.j.createInside.element('td');
22615
+ if (insertAfter) {
22616
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.after(cells[columnIndex], cell);
22552
22617
  }
22553
- }
22554
- else {
22555
- if (j - 1 < 0 ||
22556
- (box[i][j] !== box[i][j - 1] && box[i][j].parentNode)) {
22557
- jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(box[i][j], cell);
22558
- added = true;
22618
+ else {
22619
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.before(cells[columnIndex], cell);
22620
+ }
22621
+ if (cells[columnIndex].rowSpan > 1) {
22622
+ cell.rowSpan = cells[columnIndex].rowSpan;
22559
22623
  }
22560
22624
  }
22561
- if (!added) {
22562
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan', parseInt((0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.attr)(box[i][j], 'colspan') || '1', 10) + 1);
22625
+ else {
22626
+ cells[columnIndex].colSpan += 1;
22563
22627
  }
22628
+ i += cells[columnIndex].rowSpan || 1;
22564
22629
  }
22565
22630
  }
22566
- /**
22567
- * Insert column before / after all the columns containing the selected cells
22568
- */
22569
- appendColumn(table, j, after) {
22570
- return Table.__appendColumn(table, j, after, this.j.createInside);
22571
- }
22572
22631
  static __removeColumn(table, j) {
22573
22632
  const box = Table.__formalMatrix(table);
22574
22633
  let dec;
@@ -22786,7 +22845,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22786
22845
  alreadyMerged.delete(first);
22787
22846
  Table.__unmark(__marked);
22788
22847
  Table.__normalizeTable(table);
22789
- (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach((tr, index) => {
22848
+ (0,jodit_core_helpers___WEBPACK_IMPORTED_MODULE_5__.toArray)(table.rows).forEach(tr => {
22790
22849
  if (!tr.cells.length) {
22791
22850
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_3__/* .Dom */ .J.safeRemove(tr);
22792
22851
  }
@@ -22795,7 +22854,7 @@ class Table extends jodit_core_component__WEBPACK_IMPORTED_MODULE_0__/* .ViewCom
22795
22854
  }
22796
22855
  }
22797
22856
  /**
22798
- * It combines all of the selected cells into one. The contents of the cells will also be combined
22857
+ * It combines all the selected cells into one. The contents of the cells will also be combined
22799
22858
  */
22800
22859
  mergeSelected(table) {
22801
22860
  return Table.__mergeSelected(table, this.j);
@@ -25151,7 +25210,9 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25151
25210
  editor.e
25152
25211
  .off(editor.editor, '.' + ns)
25153
25212
  .off(editor.container, '.' + ns)
25213
+ .off('.' + ns)
25154
25214
  .on([editor.ow, editor.ew, editor.editor], 'scroll' + '.' + ns, this.__hideForce)
25215
+ .on('finishedCleanHTMLWorker' + '.' + ns, this.__hideForce)
25155
25216
  .on(editor.editor, 'click' + '.' + ns, this.__hide)
25156
25217
  .on(editor.container, 'mouseleave' + '.' + ns, this.__hide)
25157
25218
  .on(editor.editor, 'mousemove' + '.' + ns, this.__onMouseMove);
@@ -25239,7 +25300,8 @@ class addNewLine extends jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Plugin {
25239
25300
  jodit_modules__WEBPACK_IMPORTED_MODULE_3__.Dom.safeRemove(this.__line);
25240
25301
  this.j.e
25241
25302
  .off([this.j.ow, this.j.ew, this.j.editor], '.' + ns)
25242
- .off(this.j.container, '.' + ns);
25303
+ .off(this.j.container, '.' + ns)
25304
+ .off('.' + ns);
25243
25305
  }
25244
25306
  }
25245
25307
  (0,tslib__WEBPACK_IMPORTED_MODULE_5__/* .__decorate */ .Cg)([
@@ -26130,6 +26192,7 @@ function checkNotCollapsed(jodit) {
26130
26192
  * ```
26131
26193
  * @private
26132
26194
  */
26195
+ // eslint-disable-next-line complexity
26133
26196
  function checkRemoveChar(jodit, fakeNode, backspace, mode) {
26134
26197
  var _a, _b;
26135
26198
  const step = backspace ? -1 : 1;
@@ -27426,13 +27489,21 @@ function allowAttributes(jodit, nodeElm, hadEffect, allow) {
27426
27489
  */
27427
27490
 
27428
27491
 
27492
+ const TABLE_CONTAINER_TAGS = new Set([
27493
+ 'table',
27494
+ 'tbody',
27495
+ 'thead',
27496
+ 'tfoot',
27497
+ 'tr'
27498
+ ]);
27429
27499
  /**
27430
27500
  * @private
27431
27501
  */
27432
27502
  function fillEmptyParagraph(jodit, nodeElm, hadEffect) {
27433
27503
  if (jodit.o.cleanHTML.fillEmptyParagraph &&
27434
27504
  jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isBlock(nodeElm) &&
27435
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS)) {
27505
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isEmpty(nodeElm, jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INSEPARABLE_TAGS) &&
27506
+ !jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isTag(nodeElm, TABLE_CONTAINER_TAGS)) {
27436
27507
  const br = jodit.createInside.element('br');
27437
27508
  nodeElm.appendChild(br);
27438
27509
  return true;
@@ -30663,7 +30734,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30663
30734
  constructor() {
30664
30735
  super(...arguments);
30665
30736
  this.onKeyPress = (event) => {
30666
- const special = this.specialKeys[event.which], character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30737
+ const special = this.specialKeys[event.which];
30738
+ const character = (event.key || String.fromCharCode(event.which)).toLowerCase();
30667
30739
  const modif = [special || character];
30668
30740
  ['alt', 'ctrl', 'shift', 'meta'].forEach(specialKey => {
30669
30741
  if (event[specialKey + 'Key'] && special !== specialKey) {
@@ -30757,7 +30829,8 @@ class hotkeys extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plugin *
30757
30829
  }
30758
30830
  })
30759
30831
  .on('keydown.hotkeys', (event) => {
30760
- const shortcut = this.onKeyPress(event), stop = {
30832
+ const shortcut = this.onKeyPress(event);
30833
+ const stop = {
30761
30834
  shouldStop: true
30762
30835
  };
30763
30836
  const resultOfFire = this.j.e.fire(shortcut + '.hotkey', event.type, stop);
@@ -30931,6 +31004,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.iframeStyle
30931
31004
  '-ms-user-select: none' +
30932
31005
  '}';
30933
31006
  jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.iframeCSSLinks = [];
31007
+ jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.iframeSandbox = null;
30934
31008
 
30935
31009
 
30936
31010
  /***/ }),
@@ -31007,6 +31081,9 @@ function iframe(editor) {
31007
31081
  iframe.setAttribute('allowtransparency', 'true');
31008
31082
  iframe.setAttribute('tabindex', opt.tabIndex.toString());
31009
31083
  iframe.setAttribute('frameborder', '0');
31084
+ if (opt.iframeSandbox != null) {
31085
+ iframe.setAttribute('sandbox', opt.iframeSandbox);
31086
+ }
31010
31087
  editor.workplace.appendChild(iframe);
31011
31088
  editor.iframe = iframe;
31012
31089
  const result = editor.e.fire('generateDocumentStructure.iframe', null, editor);
@@ -36785,13 +36862,13 @@ function generateCriticalCSS(jodit) {
36785
36862
  /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
36786
36863
  /* harmony import */ var jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71842);
36787
36864
  /* harmony import */ var jodit_core_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56298);
36788
- /* harmony import */ var jodit_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17527);
36789
- /* harmony import */ var jodit_core_helpers_utils_print__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98434);
36790
- /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(931);
36791
- /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36115);
36792
- /* harmony import */ var _lib_generate_critical_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11131);
36793
- /* harmony import */ var _print_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59827);
36794
- /* harmony import */ var _print_svg__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_print_svg__WEBPACK_IMPORTED_MODULE_7__);
36865
+ /* harmony import */ var jodit_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17527);
36866
+ /* harmony import */ var jodit_core_helpers_utils_print__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98434);
36867
+ /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(931);
36868
+ /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(36115);
36869
+ /* harmony import */ var _lib_generate_critical_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11131);
36870
+ /* harmony import */ var _print_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59827);
36871
+ /* harmony import */ var _print_svg__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_print_svg__WEBPACK_IMPORTED_MODULE_8__);
36795
36872
  /*!
36796
36873
  * Jodit Editor (https://xdsoft.net/jodit/)
36797
36874
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -36806,8 +36883,8 @@ function generateCriticalCSS(jodit) {
36806
36883
 
36807
36884
 
36808
36885
 
36809
- jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_4__/* .Icon */ .I.set('print', (_print_svg__WEBPACK_IMPORTED_MODULE_7___default()));
36810
- jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.controls.print = {
36886
+ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .I.set('print', (_print_svg__WEBPACK_IMPORTED_MODULE_8___default()));
36887
+ jodit_config__WEBPACK_IMPORTED_MODULE_6__/* .Config */ .T.prototype.controls.print = {
36811
36888
  exec: (editor) => {
36812
36889
  const iframe = editor.create.element('iframe');
36813
36890
  Object.assign(iframe.style, {
@@ -36818,7 +36895,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.controls.pri
36818
36895
  height: 0,
36819
36896
  border: 0
36820
36897
  });
36821
- (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .getContainer */ .My)(editor, jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T).appendChild(iframe);
36898
+ (0,jodit_core_global__WEBPACK_IMPORTED_MODULE_2__/* .getContainer */ .My)(editor, jodit_config__WEBPACK_IMPORTED_MODULE_6__/* .Config */ .T).appendChild(iframe);
36822
36899
  const afterFinishPrint = () => {
36823
36900
  editor.e.off(editor.ow, 'mousemove', afterFinishPrint);
36824
36901
  jodit_core_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.safeRemove(iframe);
@@ -36834,12 +36911,12 @@ jodit_config__WEBPACK_IMPORTED_MODULE_5__/* .Config */ .T.prototype.controls.pri
36834
36911
  }
36835
36912
  else {
36836
36913
  myWindow.document.write('<!doctype html><html lang="' +
36837
- (0,jodit_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_8__/* .defaultLanguage */ .e)(editor.o.language) +
36914
+ (0,jodit_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_3__/* .defaultLanguage */ .e)(editor.o.language) +
36838
36915
  '"><head><title></title></head><style>' +
36839
- (0,_lib_generate_critical_css__WEBPACK_IMPORTED_MODULE_6__/* .generateCriticalCSS */ .Y)(editor) +
36916
+ (0,_lib_generate_critical_css__WEBPACK_IMPORTED_MODULE_7__/* .generateCriticalCSS */ .Y)(editor) +
36840
36917
  '</style><body></body></html>');
36841
36918
  myWindow.document.close();
36842
- (0,jodit_core_helpers_utils_print__WEBPACK_IMPORTED_MODULE_3__/* .previewBox */ .u)(editor, undefined, 'px', myWindow.document.body);
36919
+ (0,jodit_core_helpers_utils_print__WEBPACK_IMPORTED_MODULE_4__/* .previewBox */ .u)(editor, undefined, 'px', myWindow.document.body);
36843
36920
  }
36844
36921
  const style = myWindow.document.createElement('style');
36845
36922
  style.innerHTML = `@media print {
@@ -37915,10 +37992,11 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .pluginSystem */ .fg.add('resiz
37915
37992
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
37916
37993
 
37917
37994
  "use strict";
37918
- /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(931);
37919
- /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36115);
37920
- /* harmony import */ var _search_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21917);
37921
- /* harmony import */ var _search_svg__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_search_svg__WEBPACK_IMPORTED_MODULE_2__);
37995
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
37996
+ /* harmony import */ var jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(931);
37997
+ /* harmony import */ var jodit_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36115);
37998
+ /* harmony import */ var _search_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21917);
37999
+ /* harmony import */ var _search_svg__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_search_svg__WEBPACK_IMPORTED_MODULE_3__);
37922
38000
  /*!
37923
38001
  * Jodit Editor (https://xdsoft.net/jodit/)
37924
38002
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -37928,14 +38006,14 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_3__/* .pluginSystem */ .fg.add('resiz
37928
38006
 
37929
38007
 
37930
38008
 
37931
- jodit_config__WEBPACK_IMPORTED_MODULE_1__/* .Config */ .T.prototype.useSearch = true;
37932
- jodit_config__WEBPACK_IMPORTED_MODULE_1__/* .Config */ .T.prototype.search = {
38009
+
38010
+ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.useSearch = true;
38011
+ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.search = {
37933
38012
  lazyIdleTimeout: 0,
37934
- // @ts-ignore Because Highlight is not defined in the types TS 5.3.3
37935
- useCustomHighlightAPI: typeof window.Highlight !== 'undefined'
38013
+ useCustomHighlightAPI: jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow && typeof jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.Highlight !== 'undefined'
37936
38014
  };
37937
- jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_0__/* .Icon */ .I.set('search', (_search_svg__WEBPACK_IMPORTED_MODULE_2___default()));
37938
- jodit_config__WEBPACK_IMPORTED_MODULE_1__/* .Config */ .T.prototype.controls.find = {
38015
+ jodit_core_ui_icon__WEBPACK_IMPORTED_MODULE_1__/* .Icon */ .I.set('search', (_search_svg__WEBPACK_IMPORTED_MODULE_3___default()));
38016
+ jodit_config__WEBPACK_IMPORTED_MODULE_2__/* .Config */ .T.prototype.controls.find = {
37939
38017
  tooltip: 'Find',
37940
38018
  icon: 'search',
37941
38019
  exec(jodit, _, { control }) {
@@ -37976,8 +38054,9 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__/* .Config */ .T.prototype.controls.fin
37976
38054
  /* harmony export */ _B: function() { return /* binding */ highlightTextRanges; },
37977
38055
  /* harmony export */ zy: function() { return /* binding */ getSelectionWrappers; }
37978
38056
  /* harmony export */ });
37979
- /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55186);
37980
- /* harmony import */ var jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58720);
38057
+ /* harmony import */ var jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17352);
38058
+ /* harmony import */ var jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55186);
38059
+ /* harmony import */ var jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58720);
37981
38060
  /*!
37982
38061
  * Jodit Editor (https://xdsoft.net/jodit/)
37983
38062
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -37985,6 +38064,7 @@ jodit_config__WEBPACK_IMPORTED_MODULE_1__/* .Config */ .T.prototype.controls.fin
37985
38064
  */
37986
38065
 
37987
38066
 
38067
+
37988
38068
  /**
37989
38069
  * @private
37990
38070
  */
@@ -38003,15 +38083,15 @@ function highlightTextRanges(jodit, rng, restRanges, ci, root) {
38003
38083
  const span = ci.element('span', {
38004
38084
  [TMP_ATTR]: true
38005
38085
  });
38006
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.markTemporary(span);
38086
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.markTemporary(span);
38007
38087
  normalizeRanges(rng, restRanges, ci);
38008
38088
  let next = rng.startContainer;
38009
38089
  do {
38010
38090
  if (!next) {
38011
38091
  break;
38012
38092
  }
38013
- if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isText(next) && !isSelectionWrapper(next.parentNode)) {
38014
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.wrap(next, span.cloneNode(), ci);
38093
+ if (jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isText(next) && !isSelectionWrapper(next.parentNode)) {
38094
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.wrap(next, span.cloneNode(), ci);
38015
38095
  }
38016
38096
  if (next === rng.endContainer) {
38017
38097
  break;
@@ -38030,13 +38110,13 @@ function highlightTextRanges(jodit, rng, restRanges, ci, root) {
38030
38110
  * @private
38031
38111
  */
38032
38112
  function getSelectionWrappers(root) {
38033
- return (0,jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_1__.$$)(`[${TMP_ATTR}]`, root);
38113
+ return (0,jodit_core_helpers_utils_selector__WEBPACK_IMPORTED_MODULE_2__.$$)(`[${TMP_ATTR}]`, root);
38034
38114
  }
38035
38115
  /**
38036
38116
  * @private
38037
38117
  */
38038
38118
  function clearSelectionWrappers(root) {
38039
- getSelectionWrappers(root).forEach(span => jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.unwrap(span));
38119
+ getSelectionWrappers(root).forEach(span => jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.unwrap(span));
38040
38120
  }
38041
38121
  /**
38042
38122
  * @private
@@ -38048,12 +38128,13 @@ function clearSelectionWrappersFromHTML(root) {
38048
38128
  * @private
38049
38129
  */
38050
38130
  function isSelectionWrapper(node) {
38051
- return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isElement(node) && node.hasAttribute(TMP_ATTR);
38131
+ return jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.isElement(node) && node.hasAttribute(TMP_ATTR);
38052
38132
  }
38053
38133
  function checkNativeSelectionMethod(jodit, rng, restRanges) {
38054
38134
  if (jodit.o.search.useCustomHighlightAPI &&
38055
38135
  // @ts-ignore Because Highlight is not defined in the types TS 5.3.3
38056
- typeof window.Highlight !== 'undefined') {
38136
+ jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow &&
38137
+ typeof jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.globalWindow.Highlight !== 'undefined') {
38057
38138
  const ranges = [rng, ...restRanges].map(rng => {
38058
38139
  const range = jodit.selection.createRange();
38059
38140
  range.setStart(rng.startContainer, rng.startOffset);
@@ -38077,7 +38158,7 @@ function normalizeRanges(rng, restRanges, ci) {
38077
38158
  if (rng.startOffset !== 0) {
38078
38159
  const text = ci.text(startText.substring(0, rng.startOffset));
38079
38160
  rng.startContainer.nodeValue = startText.substring(rng.startOffset);
38080
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.before(rng.startContainer, text);
38161
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.before(rng.startContainer, text);
38081
38162
  if (rng.startContainer === rng.endContainer) {
38082
38163
  diff = rng.startOffset;
38083
38164
  rng.endOffset -= diff;
@@ -38088,7 +38169,7 @@ function normalizeRanges(rng, restRanges, ci) {
38088
38169
  if (rng.endOffset !== endText.length) {
38089
38170
  const text = ci.text(endText.substring(rng.endOffset));
38090
38171
  rng.endContainer.nodeValue = endText.substring(0, rng.endOffset);
38091
- jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(rng.endContainer, text);
38172
+ jodit_core_dom_dom__WEBPACK_IMPORTED_MODULE_1__/* .Dom */ .J.after(rng.endContainer, text);
38092
38173
  for (const range of restRanges) {
38093
38174
  if (range.startContainer === rng.endContainer) {
38094
38175
  range.startContainer = text;
@@ -39105,7 +39186,7 @@ class selectCells extends jodit_core_plugin__WEBPACK_IMPORTED_MODULE_5__/* .Plug
39105
39186
  break;
39106
39187
  case 'addcolumnafter':
39107
39188
  case 'addcolumnbefore':
39108
- this.__tableModule.appendColumn(table, cell.cellIndex, command === 'addcolumnafter');
39189
+ this.__tableModule.appendColumn(table, cell, command === 'addcolumnafter');
39109
39190
  break;
39110
39191
  case 'addrowafter':
39111
39192
  case 'addrowbefore':
@@ -40985,6 +41066,7 @@ jodit_core_global__WEBPACK_IMPORTED_MODULE_1__/* .pluginSystem */ .fg.add('spell
40985
41066
 
40986
41067
  jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.showCharsCounter = true;
40987
41068
  jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.countHTMLChars = false;
41069
+ jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.countTextSpaces = false;
40988
41070
  jodit_config__WEBPACK_IMPORTED_MODULE_0__/* .Config */ .T.prototype.showWordsCounter = true;
40989
41071
 
40990
41072
 
@@ -41031,9 +41113,20 @@ class stat extends jodit_core_plugin_plugin__WEBPACK_IMPORTED_MODULE_3__/* .Plug
41031
41113
  this.calc = this.j.async.throttle(() => {
41032
41114
  const text = this.j.text;
41033
41115
  if (this.j.o.showCharsCounter && this.charCounter) {
41034
- const chars = this.j.o.countHTMLChars
41035
- ? this.j.value
41036
- : text.replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.SPACE_REG_EXP)(), '');
41116
+ let chars;
41117
+ if (this.j.o.countHTMLChars) {
41118
+ chars = this.j.value;
41119
+ }
41120
+ else {
41121
+ if (this.j.o.countTextSpaces) {
41122
+ chars = text
41123
+ .replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE_REG_EXP)(), '')
41124
+ .replace(/[\r\n]/g, '');
41125
+ }
41126
+ else {
41127
+ chars = text.replace((0,jodit_core_constants__WEBPACK_IMPORTED_MODULE_0__.SPACE_REG_EXP)(), '');
41128
+ }
41129
+ }
41037
41130
  this.charCounter.textContent = this.j.i18n('Chars: %d', chars.length);
41038
41131
  }
41039
41132
  if (this.j.o.showWordsCounter && this.wordCounter) {
@@ -41667,8 +41760,9 @@ __webpack_require__.r(__webpack_exports__);
41667
41760
  /* harmony export */ pt_br: function() { return /* reexport module object */ _pt_br_js__WEBPACK_IMPORTED_MODULE_16__; },
41668
41761
  /* harmony export */ ru: function() { return /* reexport module object */ _ru_js__WEBPACK_IMPORTED_MODULE_17__; },
41669
41762
  /* harmony export */ tr: function() { return /* reexport module object */ _tr_js__WEBPACK_IMPORTED_MODULE_18__; },
41670
- /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__; },
41671
- /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__; }
41763
+ /* harmony export */ ua: function() { return /* reexport module object */ _ua_js__WEBPACK_IMPORTED_MODULE_19__; },
41764
+ /* harmony export */ zh_cn: function() { return /* reexport module object */ _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__; },
41765
+ /* harmony export */ zh_tw: function() { return /* reexport module object */ _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__; }
41672
41766
  /* harmony export */ });
41673
41767
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37605);
41674
41768
  /* harmony import */ var _ar_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ar_js__WEBPACK_IMPORTED_MODULE_0__);
@@ -41708,10 +41802,12 @@ __webpack_require__.r(__webpack_exports__);
41708
41802
  /* harmony import */ var _ru_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_ru_js__WEBPACK_IMPORTED_MODULE_17__);
41709
41803
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(98376);
41710
41804
  /* harmony import */ var _tr_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_tr_js__WEBPACK_IMPORTED_MODULE_18__);
41711
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(47238);
41712
- /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_19__);
41713
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(72386);
41714
- /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_20__);
41805
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(28776);
41806
+ /* harmony import */ var _ua_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_ua_js__WEBPACK_IMPORTED_MODULE_19__);
41807
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(47238);
41808
+ /* harmony import */ var _zh_cn_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_zh_cn_js__WEBPACK_IMPORTED_MODULE_20__);
41809
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(72386);
41810
+ /* harmony import */ var _zh_tw_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_zh_tw_js__WEBPACK_IMPORTED_MODULE_21__);
41715
41811
  /*!
41716
41812
  * Jodit Editor (https://xdsoft.net/jodit/)
41717
41813
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -41739,6 +41835,7 @@ __webpack_require__.r(__webpack_exports__);
41739
41835
 
41740
41836
 
41741
41837
 
41838
+
41742
41839
 
41743
41840
 
41744
41841
  /***/ }),
@@ -41894,6 +41991,23 @@ module.exports = {
41894
41991
  };
41895
41992
 
41896
41993
 
41994
+ /***/ }),
41995
+
41996
+ /***/ 28776:
41997
+ /***/ (function(module) {
41998
+
41999
+ "use strict";
42000
+
42001
+ /*!
42002
+ * Jodit Editor (https://xdsoft.net/jodit/)
42003
+ * Released under MIT see LICENSE.txt in the project root for license information.
42004
+ * Copyright (c) 2013-2024 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
42005
+ */
42006
+ module.exports = {
42007
+ symbols: 'символ'
42008
+ };
42009
+
42010
+
41897
42011
  /***/ }),
41898
42012
 
41899
42013
  /***/ 47238:
@@ -42464,6 +42578,8 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42464
42578
  }
42465
42579
  },
42466
42580
  popup: (editor, current, close, button) => {
42581
+ editor.editor.normalize();
42582
+ const snapshot = editor.history.snapshot.make();
42467
42583
  const control = button.control;
42468
42584
  const default_rows_count = control.data && control.data.rows ? control.data.rows : 10, default_cols_count = control.data && control.data.cols ? control.data.cols : 10;
42469
42585
  const generateExtraClasses = () => {
@@ -42556,10 +42672,24 @@ jodit_config__WEBPACK_IMPORTED_MODULE_4__/* .Config */ .T.prototype.controls.tab
42556
42672
  table.classList.add(className);
42557
42673
  });
42558
42674
  });
42559
- if (editor.editor.firstChild) {
42560
- editor.s.insertNode(crt.text('\n'), false, false);
42675
+ editor.s.restore();
42676
+ editor.s.removeMarkers();
42677
+ editor.editor.normalize();
42678
+ editor.history.snapshot.restore(snapshot);
42679
+ const block = jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.furthest(editor.s.current(), jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isBlock, editor.editor);
42680
+ if (block && jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.isEmpty(block)) {
42681
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.replace(block, table, undefined, false, true);
42682
+ }
42683
+ else {
42684
+ if (block) {
42685
+ const fake = crt.text('\n');
42686
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(block, fake);
42687
+ jodit_core_dom__WEBPACK_IMPORTED_MODULE_0__/* .Dom */ .J.after(fake, table);
42688
+ }
42689
+ else {
42690
+ editor.s.insertNode(table, false);
42691
+ }
42561
42692
  }
42562
- editor.s.insertNode(table, false);
42563
42693
  if (first_td) {
42564
42694
  editor.s.setCursorIn(first_td);
42565
42695
  (0,jodit_core_helpers__WEBPACK_IMPORTED_MODULE_1__.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
@@ -43952,7 +44082,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
43952
44082
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
43953
44083
  PERFORMANCE OF THIS SOFTWARE.
43954
44084
  ***************************************************************************** */
43955
- /* global Reflect, Promise, SuppressedError, Symbol */
44085
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
43956
44086
 
43957
44087
  var extendStatics = function(d, b) {
43958
44088
  extendStatics = Object.setPrototypeOf ||
@@ -44063,8 +44193,8 @@ function __awaiter(thisArg, _arguments, P, generator) {
44063
44193
  }
44064
44194
 
44065
44195
  function __generator(thisArg, body) {
44066
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
44067
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44196
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
44197
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44068
44198
  function verb(n) { return function (v) { return step([n, v]); }; }
44069
44199
  function step(op) {
44070
44200
  if (f) throw new TypeError("Generator is already executing.");
@@ -44168,8 +44298,9 @@ function __await(v) {
44168
44298
  function __asyncGenerator(thisArg, _arguments, generator) {
44169
44299
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
44170
44300
  var g = generator.apply(thisArg, _arguments || []), i, q = [];
44171
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
44172
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
44301
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
44302
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
44303
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
44173
44304
  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
44174
44305
  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
44175
44306
  function fulfill(value) { resume("next", value); }
@@ -44235,16 +44366,18 @@ function __classPrivateFieldIn(state, receiver) {
44235
44366
  function __addDisposableResource(env, value, async) {
44236
44367
  if (value !== null && value !== void 0) {
44237
44368
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
44238
- var dispose;
44369
+ var dispose, inner;
44239
44370
  if (async) {
44240
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
44241
- dispose = value[Symbol.asyncDispose];
44371
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
44372
+ dispose = value[Symbol.asyncDispose];
44242
44373
  }
44243
44374
  if (dispose === void 0) {
44244
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
44245
- dispose = value[Symbol.dispose];
44375
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
44376
+ dispose = value[Symbol.dispose];
44377
+ if (async) inner = dispose;
44246
44378
  }
44247
44379
  if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
44380
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
44248
44381
  env.stack.push({ value: value, dispose: dispose, async: async });
44249
44382
  }
44250
44383
  else if (async) {
@@ -44263,17 +44396,22 @@ function __disposeResources(env) {
44263
44396
  env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
44264
44397
  env.hasError = true;
44265
44398
  }
44399
+ var r, s = 0;
44266
44400
  function next() {
44267
- while (env.stack.length) {
44268
- var rec = env.stack.pop();
44401
+ while (r = env.stack.pop()) {
44269
44402
  try {
44270
- var result = rec.dispose && rec.dispose.call(rec.value);
44271
- if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
44403
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
44404
+ if (r.dispose) {
44405
+ var result = r.dispose.call(r.value);
44406
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
44407
+ }
44408
+ else s |= 1;
44272
44409
  }
44273
44410
  catch (e) {
44274
- fail(e);
44411
+ fail(e);
44275
44412
  }
44276
44413
  }
44414
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
44277
44415
  if (env.hasError) throw env.error;
44278
44416
  }
44279
44417
  return next();