jodit-pro 4.9.22 → 4.9.27

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 (299) hide show
  1. package/CHANGELOG.md +63 -1
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +44 -44
  4. package/es2015/jodit.js +229 -101
  5. package/es2015/jodit.min.js +7 -7
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +193 -161
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +30 -30
  9. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  11. package/es2015/plugins/backup/backup.css +1 -1
  12. package/es2015/plugins/backup/backup.js +1 -1
  13. package/es2015/plugins/backup/backup.min.js +1 -1
  14. package/es2015/plugins/button-generator/button-generator.css +1 -1
  15. package/es2015/plugins/button-generator/button-generator.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  17. package/es2015/plugins/change-case/change-case.js +1 -1
  18. package/es2015/plugins/change-case/change-case.min.js +1 -1
  19. package/es2015/plugins/color-picker/color-picker.css +1 -1
  20. package/es2015/plugins/color-picker/color-picker.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  22. package/es2015/plugins/emoji/emoji.css +1 -1
  23. package/es2015/plugins/emoji/emoji.js +1 -1
  24. package/es2015/plugins/emoji/emoji.min.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  27. package/es2015/plugins/finder/finder.css +1 -1
  28. package/es2015/plugins/finder/finder.js +1 -1
  29. package/es2015/plugins/finder/finder.min.js +1 -1
  30. package/es2015/plugins/google-maps/google-maps.css +1 -1
  31. package/es2015/plugins/google-maps/google-maps.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  33. package/es2015/plugins/google-search/google-search.js +1 -1
  34. package/es2015/plugins/google-search/google-search.min.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  36. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  40. package/es2015/plugins/keyboard/keyboard.css +1 -1
  41. package/es2015/plugins/keyboard/keyboard.js +1 -1
  42. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  44. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  45. package/es2015/plugins/page-break/page-break.js +1 -1
  46. package/es2015/plugins/page-break/page-break.min.js +1 -1
  47. package/es2015/plugins/paste-code/paste-code.css +1 -1
  48. package/es2015/plugins/paste-code/paste-code.js +1 -1
  49. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  51. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  53. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  54. package/es2015/plugins/style/style.css +1 -1
  55. package/es2015/plugins/style/style.js +1 -1
  56. package/es2015/plugins/style/style.min.js +1 -1
  57. package/es2015/plugins/todo-list/todo-list.css +1 -1
  58. package/es2015/plugins/todo-list/todo-list.js +1 -1
  59. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  60. package/es2015/plugins/translate/translate.css +1 -1
  61. package/es2015/plugins/translate/translate.js +1 -1
  62. package/es2015/plugins/translate/translate.min.js +1 -1
  63. package/es2015/plugins/tune-block/tune-block.css +1 -1
  64. package/es2015/plugins/tune-block/tune-block.js +1 -1
  65. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  66. package/es2018/jodit.fat.min.js +30 -30
  67. package/es2018/jodit.min.js +16 -16
  68. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +20 -20
  69. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  70. package/es2018/plugins/backup/backup.min.js +1 -1
  71. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  72. package/es2018/plugins/change-case/change-case.min.js +1 -1
  73. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  74. package/es2018/plugins/emoji/emoji.min.js +1 -1
  75. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  76. package/es2018/plugins/finder/finder.min.js +1 -1
  77. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  78. package/es2018/plugins/google-search/google-search.min.js +1 -1
  79. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  80. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  81. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  82. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  83. package/es2018/plugins/page-break/page-break.min.js +1 -1
  84. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  85. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  86. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  87. package/es2018/plugins/style/style.min.js +1 -1
  88. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  89. package/es2018/plugins/translate/translate.min.js +1 -1
  90. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  91. package/es2021/jodit.css +1 -1
  92. package/es2021/jodit.fat.min.js +32 -32
  93. package/es2021/jodit.js +229 -101
  94. package/es2021/jodit.min.js +24 -24
  95. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  96. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +194 -162
  97. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +20 -20
  98. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  99. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  100. package/es2021/plugins/backup/backup.css +1 -1
  101. package/es2021/plugins/backup/backup.js +1 -1
  102. package/es2021/plugins/backup/backup.min.js +1 -1
  103. package/es2021/plugins/button-generator/button-generator.css +1 -1
  104. package/es2021/plugins/button-generator/button-generator.js +1 -1
  105. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  106. package/es2021/plugins/change-case/change-case.js +1 -1
  107. package/es2021/plugins/change-case/change-case.min.js +1 -1
  108. package/es2021/plugins/color-picker/color-picker.css +1 -1
  109. package/es2021/plugins/color-picker/color-picker.js +1 -1
  110. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  111. package/es2021/plugins/emoji/emoji.css +1 -1
  112. package/es2021/plugins/emoji/emoji.js +1 -1
  113. package/es2021/plugins/emoji/emoji.min.js +1 -1
  114. package/es2021/plugins/export-docs/export-docs.js +1 -1
  115. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  116. package/es2021/plugins/finder/finder.css +1 -1
  117. package/es2021/plugins/finder/finder.js +1 -1
  118. package/es2021/plugins/finder/finder.min.js +1 -1
  119. package/es2021/plugins/google-maps/google-maps.css +1 -1
  120. package/es2021/plugins/google-maps/google-maps.js +1 -1
  121. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  122. package/es2021/plugins/google-search/google-search.js +1 -1
  123. package/es2021/plugins/google-search/google-search.min.js +1 -1
  124. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  125. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  126. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  127. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  128. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  129. package/es2021/plugins/keyboard/keyboard.css +1 -1
  130. package/es2021/plugins/keyboard/keyboard.js +1 -1
  131. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  132. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  133. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  134. package/es2021/plugins/page-break/page-break.js +1 -1
  135. package/es2021/plugins/page-break/page-break.min.js +1 -1
  136. package/es2021/plugins/paste-code/paste-code.css +1 -1
  137. package/es2021/plugins/paste-code/paste-code.js +1 -1
  138. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  139. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  140. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  141. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  142. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  143. package/es2021/plugins/style/style.css +1 -1
  144. package/es2021/plugins/style/style.js +1 -1
  145. package/es2021/plugins/style/style.min.js +1 -1
  146. package/es2021/plugins/todo-list/todo-list.css +1 -1
  147. package/es2021/plugins/todo-list/todo-list.js +1 -1
  148. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  149. package/es2021/plugins/translate/translate.css +1 -1
  150. package/es2021/plugins/translate/translate.js +1 -1
  151. package/es2021/plugins/translate/translate.min.js +1 -1
  152. package/es2021/plugins/tune-block/tune-block.css +1 -1
  153. package/es2021/plugins/tune-block/tune-block.js +1 -1
  154. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  155. package/es2021.en/jodit.css +1 -1
  156. package/es2021.en/jodit.fat.min.js +83 -83
  157. package/es2021.en/jodit.js +229 -101
  158. package/es2021.en/jodit.min.js +10 -10
  159. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  160. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +194 -162
  161. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +20 -20
  162. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  163. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  164. package/es2021.en/plugins/backup/backup.css +1 -1
  165. package/es2021.en/plugins/backup/backup.js +1 -1
  166. package/es2021.en/plugins/backup/backup.min.js +1 -1
  167. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  168. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  169. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  170. package/es2021.en/plugins/change-case/change-case.js +1 -1
  171. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  172. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  173. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  174. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  175. package/es2021.en/plugins/emoji/emoji.css +1 -1
  176. package/es2021.en/plugins/emoji/emoji.js +1 -1
  177. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  178. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  179. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  180. package/es2021.en/plugins/finder/finder.css +1 -1
  181. package/es2021.en/plugins/finder/finder.js +1 -1
  182. package/es2021.en/plugins/finder/finder.min.js +1 -1
  183. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  184. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  185. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  186. package/es2021.en/plugins/google-search/google-search.js +1 -1
  187. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  188. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  189. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  190. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  191. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  192. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  193. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  194. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  195. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  196. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  197. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  198. package/es2021.en/plugins/page-break/page-break.js +1 -1
  199. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  200. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  201. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  202. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  203. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  204. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  205. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  206. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  207. package/es2021.en/plugins/style/style.css +1 -1
  208. package/es2021.en/plugins/style/style.js +1 -1
  209. package/es2021.en/plugins/style/style.min.js +1 -1
  210. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  211. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  212. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  213. package/es2021.en/plugins/translate/translate.css +1 -1
  214. package/es2021.en/plugins/translate/translate.js +1 -1
  215. package/es2021.en/plugins/translate/translate.min.js +1 -1
  216. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  217. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  218. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  219. package/es5/jodit.css +2 -2
  220. package/es5/jodit.fat.min.js +2 -2
  221. package/es5/jodit.js +249 -105
  222. package/es5/jodit.min.css +2 -2
  223. package/es5/jodit.min.js +2 -2
  224. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  225. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +221 -174
  226. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +2 -2
  227. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  228. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  229. package/es5/plugins/backup/backup.css +1 -1
  230. package/es5/plugins/backup/backup.js +1 -1
  231. package/es5/plugins/backup/backup.min.js +1 -1
  232. package/es5/plugins/button-generator/button-generator.css +1 -1
  233. package/es5/plugins/button-generator/button-generator.js +1 -1
  234. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  235. package/es5/plugins/change-case/change-case.js +1 -1
  236. package/es5/plugins/change-case/change-case.min.js +1 -1
  237. package/es5/plugins/color-picker/color-picker.css +1 -1
  238. package/es5/plugins/color-picker/color-picker.js +1 -1
  239. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  240. package/es5/plugins/emoji/emoji.css +1 -1
  241. package/es5/plugins/emoji/emoji.js +1 -1
  242. package/es5/plugins/emoji/emoji.min.js +1 -1
  243. package/es5/plugins/export-docs/export-docs.js +1 -1
  244. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  245. package/es5/plugins/finder/finder.css +1 -1
  246. package/es5/plugins/finder/finder.js +1 -1
  247. package/es5/plugins/finder/finder.min.js +1 -1
  248. package/es5/plugins/google-maps/google-maps.css +1 -1
  249. package/es5/plugins/google-maps/google-maps.js +1 -1
  250. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  251. package/es5/plugins/google-search/google-search.js +1 -1
  252. package/es5/plugins/google-search/google-search.min.js +1 -1
  253. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  254. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  255. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  256. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  257. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  258. package/es5/plugins/keyboard/keyboard.css +1 -1
  259. package/es5/plugins/keyboard/keyboard.js +1 -1
  260. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  261. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  262. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  263. package/es5/plugins/page-break/page-break.js +1 -1
  264. package/es5/plugins/page-break/page-break.min.js +1 -1
  265. package/es5/plugins/paste-code/paste-code.css +1 -1
  266. package/es5/plugins/paste-code/paste-code.js +1 -1
  267. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  268. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  269. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  270. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  271. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  272. package/es5/plugins/style/style.css +1 -1
  273. package/es5/plugins/style/style.js +1 -1
  274. package/es5/plugins/style/style.min.js +1 -1
  275. package/es5/plugins/todo-list/todo-list.css +1 -1
  276. package/es5/plugins/todo-list/todo-list.js +1 -1
  277. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  278. package/es5/plugins/translate/translate.css +1 -1
  279. package/es5/plugins/translate/translate.js +1 -1
  280. package/es5/plugins/translate/translate.min.js +1 -1
  281. package/es5/plugins/tune-block/tune-block.css +1 -1
  282. package/es5/plugins/tune-block/tune-block.js +1 -1
  283. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  284. package/es5/polyfills.fat.min.js +1 -1
  285. package/es5/polyfills.js +1 -1
  286. package/es5/polyfills.min.js +1 -1
  287. package/esm/plugins/ai-assistant-pro/ui/input-area/input-area.d.ts +5 -1
  288. package/esm/plugins/ai-assistant-pro/ui/main-panel/main-panel.d.ts +1 -1
  289. package/esm/plugins/ai-assistant-pro/ui/settings-button/settings-button.d.ts +7 -1
  290. package/esm/plugins/ai-assistant-pro/ui/settings-popup/dialog-settings.d.ts +3 -1
  291. package/esm/plugins/ai-assistant-pro/ui/settings-popup/global-settings.d.ts +5 -1
  292. package/esm/plugins/ai-assistant-pro/ui/settings-popup/settings-popup.d.ts +7 -1
  293. package/package.json +1 -1
  294. package/types/plugins/ai-assistant-pro/ui/input-area/input-area.d.ts +5 -1
  295. package/types/plugins/ai-assistant-pro/ui/main-panel/main-panel.d.ts +1 -1
  296. package/types/plugins/ai-assistant-pro/ui/settings-button/settings-button.d.ts +7 -1
  297. package/types/plugins/ai-assistant-pro/ui/settings-popup/dialog-settings.d.ts +3 -1
  298. package/types/plugins/ai-assistant-pro/ui/settings-popup/global-settings.d.ts +5 -1
  299. package/types/plugins/ai-assistant-pro/ui/settings-popup/settings-popup.d.ts +7 -1
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.9.22
4
+ * Version: v4.9.27
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -3312,7 +3312,7 @@ class JoditPro extends jodit_esm_index__WEBPACK_IMPORTED_MODULE_3__.Jodit {
3312
3312
  }
3313
3313
  /**
3314
3314
  * Get temporary list
3315
- * @deprecated
3315
+ * @deprecated Just do not use it, it is not needed anymore
3316
3316
  */ static temporaryList(root) {
3317
3317
  return (0,_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_1__.toArray)(root.querySelectorAll(`[${_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEMP_ATTR}]`));
3318
3318
  }
@@ -6728,7 +6728,7 @@ let UIButton = class UIButton extends _element_js__WEBPACK_IMPORTED_MODULE_9__.U
6728
6728
  }
6729
6729
  onChangeText() {
6730
6730
  this.text.textContent = this.jodit.i18n(this.state.text);
6731
- this.__updateAriaLabel();
6731
+ this.updateAriaLabel();
6732
6732
  }
6733
6733
  onChangeTextSetMode() {
6734
6734
  this.setMod('text-icons', Boolean(this.state.text.trim().length));
@@ -6751,9 +6751,9 @@ let UIButton = class UIButton extends _element_js__WEBPACK_IMPORTED_MODULE_9__.U
6751
6751
  (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_8__.attr)(this.container, 'title', i8nTooltip);
6752
6752
  }
6753
6753
  (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_8__.attr)(this.container, 'aria-label', i8nTooltip);
6754
- this.__updateAriaLabel();
6754
+ this.updateAriaLabel();
6755
6755
  }
6756
- __updateAriaLabel() {
6756
+ updateAriaLabel() {
6757
6757
  const hasText = this.state.text.trim().length > 0;
6758
6758
  const i8nTooltip = this.state.tooltip ? this.jodit.i18n(this.state.tooltip) : null;
6759
6759
  (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_8__.attr)(this.container, 'aria-label', i8nTooltip);
@@ -7236,6 +7236,9 @@ let ToolbarCollection = class ToolbarCollection extends _core_ui_group_list_js__
7236
7236
  className() {
7237
7237
  return 'ToolbarCollection';
7238
7238
  }
7239
+ getRole() {
7240
+ return 'toolbar';
7241
+ }
7239
7242
  /**
7240
7243
  * First button in a list
7241
7244
  */ get firstButton() {
@@ -7337,14 +7340,30 @@ ToolbarCollection = __decorate([
7337
7340
  /* harmony export */ "default": function() { return /* binding */ DataProvider; }
7338
7341
  /* harmony export */ });
7339
7342
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
7340
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
7341
- /* harmony import */ var _core_request_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41601);
7342
- /* harmony import */ var _builders_item_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(159);
7343
+ /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45219);
7344
+ /* harmony import */ var _core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23282);
7345
+ /* harmony import */ var _core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70091);
7346
+ /* harmony import */ var _core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68934);
7347
+ /* harmony import */ var _core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89890);
7348
+ /* harmony import */ var _core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3703);
7349
+ /* harmony import */ var _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54079);
7350
+ /* harmony import */ var _builders_item_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(159);
7343
7351
  /*!
7344
7352
  * Jodit Editor (https://xdsoft.net/jodit/)
7345
7353
  * Released under MIT see LICENSE.txt in the project root for license information.
7346
7354
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
7347
- */
7355
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
7356
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7357
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7358
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7359
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7360
+ };
7361
+
7362
+
7363
+
7364
+
7365
+
7366
+
7348
7367
 
7349
7368
 
7350
7369
 
@@ -7377,13 +7396,13 @@ class DataProvider {
7377
7396
  ajax === null || ajax === void 0 ? void 0 : ajax.abort();
7378
7397
  instances.delete(name);
7379
7398
  }
7380
- const opts = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.ConfigProto)(this.options[name] !== undefined ? this.options[name] : {}, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.ConfigProto)({
7399
+ const opts = (0,_core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__.ConfigProto)(this.options[name] !== undefined ? this.options[name] : {}, (0,_core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__.ConfigProto)({
7381
7400
  onProgress: this.progressHandler
7382
7401
  }, this.o.ajax));
7383
7402
  if (opts.prepareData) {
7384
7403
  opts.data = opts.prepareData.call(this, opts.data);
7385
7404
  }
7386
- const ajax = new _core_request_index_js__WEBPACK_IMPORTED_MODULE_2__.Ajax(opts);
7405
+ const ajax = new _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_7__.Ajax(opts);
7387
7406
  instances.set(name, ajax);
7388
7407
  const promise = ajax.send();
7389
7408
  promise.finally(()=>{
@@ -7412,7 +7431,7 @@ class DataProvider {
7412
7431
  if (this.o.permissions.url) {
7413
7432
  return this.get('permissions').then((resp)=>{
7414
7433
  if (this.parent.isInDestruct) {
7415
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.abort)();
7434
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.abort)();
7416
7435
  }
7417
7436
  let process = this.o.permissions.process;
7418
7437
  if (!process) {
@@ -7434,7 +7453,7 @@ class DataProvider {
7434
7453
  const rule = 'allow' + action;
7435
7454
  if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
7436
7455
  if (!possibleRules.has(rule)) {
7437
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)('Wrong action ' + action);
7456
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Wrong action ' + action);
7438
7457
  }
7439
7458
  }
7440
7459
  const presetValue = this.o.permissionsPresets[rule];
@@ -7465,18 +7484,18 @@ class DataProvider {
7465
7484
  /**
7466
7485
  * Load items list by path and source
7467
7486
  */ items(path, source, mods = {}) {
7468
- return this.__items(path, source, mods, (resp)=>this.generateItemsList(resp.data.sources, mods));
7487
+ return this.__items(path, source, mods, (resp)=>this.__generateItemsList(resp.data.sources, mods));
7469
7488
  }
7470
7489
  /**
7471
7490
  * Load items list by path and source
7472
7491
  */ itemsEx(path, source, mods = {}) {
7473
7492
  const calcTotal = (sources)=>sources.reduce((acc, source)=>acc + source.files.length, 0);
7474
7493
  return this.__items(path, source, mods, (resp)=>({
7475
- items: this.generateItemsList(resp.data.sources, mods),
7494
+ items: this.__generateItemsList(resp.data.sources, mods),
7476
7495
  loadedTotal: calcTotal(resp.data.sources)
7477
7496
  }));
7478
7497
  }
7479
- generateItemsList(sources, mods = {}) {
7498
+ __generateItemsList(sources, mods = {}) {
7480
7499
  const elements = [];
7481
7500
  const canBeFile = (item)=>item.type === 'folder' || !mods.onlyImages || item.isImage === undefined || item.isImage;
7482
7501
  const inFilter = (item)=>{
@@ -7486,12 +7505,12 @@ class DataProvider {
7486
7505
  sources.forEach((source)=>{
7487
7506
  if (source.files && source.files.length) {
7488
7507
  const { sort } = this.o;
7489
- if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.isFunction)(sort) && mods.sortBy) {
7508
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_2__.isFunction)(sort) && mods.sortBy) {
7490
7509
  source.files.sort((a, b)=>sort(a, b, mods.sortBy));
7491
7510
  }
7492
7511
  source.files.forEach((item)=>{
7493
7512
  if (inFilter(item) && canBeFile(item)) {
7494
- elements.push(_builders_item_js__WEBPACK_IMPORTED_MODULE_3__.FileBrowserItem.create({
7513
+ elements.push(_builders_item_js__WEBPACK_IMPORTED_MODULE_8__.FileBrowserItem.create({
7495
7514
  ...item,
7496
7515
  sourceName: source.name,
7497
7516
  source
@@ -7503,7 +7522,7 @@ class DataProvider {
7503
7522
  return elements;
7504
7523
  }
7505
7524
  async tree(path, source) {
7506
- path = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.normalizeRelativePath)(path);
7525
+ path = (0,_core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_3__.normalizeRelativePath)(path);
7507
7526
  if (!this.o.folder) {
7508
7527
  return Promise.reject(Error('Set Folder Api options'));
7509
7528
  }
@@ -7524,12 +7543,12 @@ class DataProvider {
7524
7543
  /**
7525
7544
  * Get path by url. You can use this method in another modules
7526
7545
  */ getPathByUrl(url) {
7527
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.set)('options.getLocalFileByUrl.data.url', url, this);
7546
+ (0,_core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_6__.set)('options.getLocalFileByUrl.data.url', url, this);
7528
7547
  return this.get('getLocalFileByUrl').then((resp)=>{
7529
7548
  if (this.isSuccess(resp)) {
7530
7549
  return resp.data;
7531
7550
  }
7532
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(this.getMessage(resp));
7551
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
7533
7552
  });
7534
7553
  }
7535
7554
  /**
@@ -7541,7 +7560,7 @@ class DataProvider {
7541
7560
  */ createFolder(name, path, source) {
7542
7561
  const { create } = this.o;
7543
7562
  if (!create) {
7544
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)('Set Create api options');
7563
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Set Create api options');
7545
7564
  }
7546
7565
  create.data.source = source;
7547
7566
  create.data.path = path;
@@ -7550,7 +7569,7 @@ class DataProvider {
7550
7569
  if (this.isSuccess(resp)) {
7551
7570
  return true;
7552
7571
  }
7553
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(this.getMessage(resp));
7572
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
7554
7573
  });
7555
7574
  }
7556
7575
  /**
@@ -7562,7 +7581,7 @@ class DataProvider {
7562
7581
  const mode = isFile ? 'fileMove' : 'folderMove';
7563
7582
  const option = this.options[mode];
7564
7583
  if (!option) {
7565
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)('Set Move api options');
7584
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Set Move api options');
7566
7585
  }
7567
7586
  option.data.from = filepath;
7568
7587
  option.data.path = path;
@@ -7571,7 +7590,7 @@ class DataProvider {
7571
7590
  if (this.isSuccess(resp)) {
7572
7591
  return true;
7573
7592
  }
7574
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(this.getMessage(resp));
7593
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
7575
7594
  });
7576
7595
  }
7577
7596
  /**
@@ -7580,10 +7599,10 @@ class DataProvider {
7580
7599
  * @param path - Relative path
7581
7600
  * @param file - The filename
7582
7601
  * @param source - Source
7583
- */ remove(action, path, file, source) {
7602
+ */ __remove(action, path, file, source) {
7584
7603
  const fr = this.o[action];
7585
7604
  if (!fr) {
7586
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(`Set "${action}" api options`);
7605
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(`Set "${action}" api options`);
7587
7606
  }
7588
7607
  fr.data.path = path;
7589
7608
  fr.data.name = file;
@@ -7602,7 +7621,7 @@ class DataProvider {
7602
7621
  * @param file - The filename
7603
7622
  * @param source - Source
7604
7623
  */ fileRemove(path, file, source) {
7605
- return this.remove('fileRemove', path, file, source);
7624
+ return this.__remove('fileRemove', path, file, source);
7606
7625
  }
7607
7626
  /**
7608
7627
  * Deleting a folder
@@ -7611,7 +7630,7 @@ class DataProvider {
7611
7630
  * @param file - The filename
7612
7631
  * @param source - Source
7613
7632
  */ folderRemove(path, file, source) {
7614
- return this.remove('folderRemove', path, file, source);
7633
+ return this.__remove('folderRemove', path, file, source);
7615
7634
  }
7616
7635
  /**
7617
7636
  * Rename action
@@ -7620,10 +7639,10 @@ class DataProvider {
7620
7639
  * @param name - Old name
7621
7640
  * @param newname - New name
7622
7641
  * @param source - Source
7623
- */ rename(action, path, name, newname, source) {
7642
+ */ __rename(action, path, name, newname, source) {
7624
7643
  const fr = this.o[action];
7625
7644
  if (!fr) {
7626
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(`Set "${action}" api options`);
7645
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(`Set "${action}" api options`);
7627
7646
  }
7628
7647
  fr.data.path = path;
7629
7648
  fr.data.name = name;
@@ -7639,14 +7658,14 @@ class DataProvider {
7639
7658
  /**
7640
7659
  * Rename folder
7641
7660
  */ folderRename(path, name, newname, source) {
7642
- return this.rename('folderRename', path, name, newname, source);
7661
+ return this.__rename('folderRename', path, name, newname, source);
7643
7662
  }
7644
7663
  /**
7645
7664
  * Rename file
7646
7665
  */ fileRename(path, name, newname, source) {
7647
- return this.rename('fileRename', path, name, newname, source);
7666
+ return this.__rename('fileRename', path, name, newname, source);
7648
7667
  }
7649
- changeImage(type, path, source, name, newname, box) {
7668
+ __changeImage(type, path, source, name, newname, box) {
7650
7669
  if (!this.o[type]) {
7651
7670
  this.o[type] = {
7652
7671
  data: {}
@@ -7672,12 +7691,12 @@ class DataProvider {
7672
7691
  /**
7673
7692
  * Send command to server to crop image
7674
7693
  */ crop(path, source, name, newname, box) {
7675
- return this.changeImage('crop', path, source, name, newname, box);
7694
+ return this.__changeImage('crop', path, source, name, newname, box);
7676
7695
  }
7677
7696
  /**
7678
7697
  * Send command to server to resize image
7679
7698
  */ resize(path, source, name, newname, box) {
7680
- return this.changeImage('resize', path, source, name, newname, box);
7699
+ return this.__changeImage('resize', path, source, name, newname, box);
7681
7700
  }
7682
7701
  getMessage(resp) {
7683
7702
  return this.options.getMessage(resp);
@@ -7698,6 +7717,60 @@ class DataProvider {
7698
7717
  }
7699
7718
  }
7700
7719
 
7720
+ __decorate([
7721
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7722
+ ], DataProvider.prototype, "onProgress", null);
7723
+ __decorate([
7724
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7725
+ ], DataProvider.prototype, "permissions", null);
7726
+ __decorate([
7727
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7728
+ ], DataProvider.prototype, "canI", null);
7729
+ __decorate([
7730
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7731
+ ], DataProvider.prototype, "items", null);
7732
+ __decorate([
7733
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7734
+ ], DataProvider.prototype, "itemsEx", null);
7735
+ __decorate([
7736
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7737
+ ], DataProvider.prototype, "tree", null);
7738
+ __decorate([
7739
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7740
+ ], DataProvider.prototype, "getPathByUrl", null);
7741
+ __decorate([
7742
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7743
+ ], DataProvider.prototype, "createFolder", null);
7744
+ __decorate([
7745
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7746
+ ], DataProvider.prototype, "move", null);
7747
+ __decorate([
7748
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7749
+ ], DataProvider.prototype, "fileRemove", null);
7750
+ __decorate([
7751
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7752
+ ], DataProvider.prototype, "folderRemove", null);
7753
+ __decorate([
7754
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7755
+ ], DataProvider.prototype, "folderRename", null);
7756
+ __decorate([
7757
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7758
+ ], DataProvider.prototype, "fileRename", null);
7759
+ __decorate([
7760
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7761
+ ], DataProvider.prototype, "crop", null);
7762
+ __decorate([
7763
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7764
+ ], DataProvider.prototype, "resize", null);
7765
+ __decorate([
7766
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7767
+ ], DataProvider.prototype, "getMessage", null);
7768
+ __decorate([
7769
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7770
+ ], DataProvider.prototype, "isSuccess", null);
7771
+ __decorate([
7772
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
7773
+ ], DataProvider.prototype, "destruct", null);
7701
7774
 
7702
7775
 
7703
7776
  /***/ }),
@@ -11784,6 +11857,7 @@ __webpack_require__.r(__webpack_exports__);
11784
11857
  /* harmony export */ buildQuery: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.buildQuery; },
11785
11858
  /* harmony export */ call: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.call; },
11786
11859
  /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.callPromise; },
11860
+ /* harmony export */ callThis: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.callThis; },
11787
11861
  /* harmony export */ camelCase: function() { return /* reexport safe */ _string_index_js__WEBPACK_IMPORTED_MODULE_7__.camelCase; },
11788
11862
  /* harmony export */ cleanFromWord: function() { return /* reexport safe */ _html_index_js__WEBPACK_IMPORTED_MODULE_4__.cleanFromWord; },
11789
11863
  /* harmony export */ clearAlign: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.clearAlign; },
@@ -12958,16 +13032,21 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.popup = {
12958
13032
 
12959
13033
 
12960
13034
  let UIList = class UIList extends _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup {
12961
- /** @override */ className() {
13035
+ className() {
12962
13036
  return 'UIList';
12963
13037
  }
13038
+ getRole() {
13039
+ return 'list';
13040
+ }
12964
13041
  __onChangeMode() {
12965
13042
  this.setMod('mode', this.mode);
12966
13043
  }
12967
13044
  /**
12968
13045
  * Make new group and append it in list of elements
12969
- */ makeGroup() {
12970
- return new _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup(this.jodit);
13046
+ */ makeGroup(role) {
13047
+ return new _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup(this.jodit, [], role ? {
13048
+ role
13049
+ } : undefined);
12971
13050
  }
12972
13051
  /**
12973
13052
  * All buttons from list
@@ -12987,7 +13066,7 @@ let UIList = class UIList extends _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup
12987
13066
  items = (0,_helpers_array_split_array_js__WEBPACK_IMPORTED_MODULE_4__.splitArray)(items);
12988
13067
  this.clear();
12989
13068
  let lastBtnSeparator = false;
12990
- let line = this.makeGroup();
13069
+ let line = this.makeGroup('group');
12991
13070
  this.append(line);
12992
13071
  line.setMod('line', true);
12993
13072
  let group;
@@ -12995,7 +13074,7 @@ let UIList = class UIList extends _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup
12995
13074
  let elm = null;
12996
13075
  switch(control.name){
12997
13076
  case '\n':
12998
- line = this.makeGroup();
13077
+ line = this.makeGroup('group');
12999
13078
  line.setMod('line', true);
13000
13079
  group = this.makeGroup();
13001
13080
  line.append(group);
@@ -19711,6 +19790,7 @@ let ToolbarEditorCollection = class ToolbarEditorCollection extends _collection_
19711
19790
  * @see https://github.com/jodit/jodit-react/issues/138
19712
19791
  */ prependInvisibleInput(container) {
19713
19792
  const input = this.j.create.element('input', {
19793
+ name: 'jodit-toolbar-focus-helper_' + this.j.id,
19714
19794
  tabIndex: -1,
19715
19795
  disabled: true,
19716
19796
  style: 'width: 0; height:0; position: absolute; visibility: hidden;'
@@ -20015,6 +20095,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.dots = {
20015
20095
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20016
20096
  /* harmony export */ call: function() { return /* binding */ call; },
20017
20097
  /* harmony export */ callPromise: function() { return /* binding */ callPromise; },
20098
+ /* harmony export */ callThis: function() { return /* binding */ callThis; },
20018
20099
  /* harmony export */ getDataTransfer: function() { return /* binding */ getDataTransfer; },
20019
20100
  /* harmony export */ getPropertyDescriptor: function() { return /* binding */ getPropertyDescriptor; },
20020
20101
  /* harmony export */ keys: function() { return /* binding */ keys; },
@@ -20045,6 +20126,17 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.dots = {
20045
20126
  */ function call(func, ...args) {
20046
20127
  return func(...args);
20047
20128
  }
20129
+ /**
20130
+ * Call function with parameters
20131
+ *
20132
+ * @example
20133
+ * ```js
20134
+ * const f = Math.random();
20135
+ * Jodit.modules.Helpers.call(f > 0.5 ? Math.ceil : Math.floor, f);
20136
+ * ```
20137
+ */ function callThis(func, thisArg, ...args) {
20138
+ return func.apply(thisArg, args);
20139
+ }
20048
20140
  /**
20049
20141
  * Mark element for debugging
20050
20142
  */ function markOwner(jodit, elm) {
@@ -22494,6 +22586,7 @@ __webpack_require__.r(__webpack_exports__);
22494
22586
  /* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
22495
22587
  /* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.call; },
22496
22588
  /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.callPromise; },
22589
+ /* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.callThis; },
22497
22590
  /* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
22498
22591
  /* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
22499
22592
  /* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_18__.cns; },
@@ -24285,7 +24378,8 @@ var UIElement_1;
24285
24378
 
24286
24379
  let UIElement = UIElement_1 = class UIElement extends _component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewComponent {
24287
24380
  getRole() {
24288
- return '';
24381
+ var _a;
24382
+ return ((_a = this.options) === null || _a === void 0 ? void 0 : _a.role) || '';
24289
24383
  }
24290
24384
  get parentElement() {
24291
24385
  return this.__parentElement;
@@ -24382,11 +24476,12 @@ let UIElement = UIElement_1 = class UIElement extends _component_index_js__WEBPA
24382
24476
  this.parentElement = null;
24383
24477
  return super.destruct();
24384
24478
  }
24385
- /** @override */ constructor(jodit, options){
24479
+ constructor(jodit, options){
24386
24480
  super(jodit);
24387
24481
  this.name = '';
24388
24482
  this.__parentElement = null;
24389
24483
  this.mods = {};
24484
+ this.options = options;
24390
24485
  this.container = this.createContainer(options);
24391
24486
  const role = this.getRole();
24392
24487
  role && (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(this.container, 'role', role);
@@ -24611,11 +24706,16 @@ function trimChars(value, chars) {
24611
24706
  /* harmony import */ var _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91907);
24612
24707
  /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
24613
24708
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
24614
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
24615
- /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62843);
24616
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6441);
24617
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62489);
24618
- /* harmony import */ var _templates_form_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22461);
24709
+ /* harmony import */ var _core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4510);
24710
+ /* harmony import */ var _core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49055);
24711
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29960);
24712
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41180);
24713
+ /* harmony import */ var _core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76078);
24714
+ /* harmony import */ var _core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37790);
24715
+ /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62843);
24716
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(6441);
24717
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(62489);
24718
+ /* harmony import */ var _templates_form_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(22461);
24619
24719
  /*!
24620
24720
  * Jodit Editor (https://xdsoft.net/jodit/)
24621
24721
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -24635,6 +24735,11 @@ var ImageEditor_1;
24635
24735
 
24636
24736
 
24637
24737
 
24738
+
24739
+
24740
+
24741
+
24742
+
24638
24743
  const jie = 'jodit-image-editor';
24639
24744
  const TABS = {
24640
24745
  resize: 'resize',
@@ -24682,9 +24787,9 @@ const TABS = {
24682
24787
  return this.j.async.promise((resolve)=>{
24683
24788
  const timestamp = new Date().getTime();
24684
24789
  this.image = this.j.c.element('img');
24685
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('img,.jodit-icon_loader', this.resize_box).forEach(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove);
24686
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('img,.jodit-icon_loader', this.crop_box).forEach(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove);
24687
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, 'background', 'transparent');
24790
+ (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.$$)('img,.jodit-icon_loader', this.resize_box).forEach(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove);
24791
+ (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.$$)('img,.jodit-icon_loader', this.crop_box).forEach(_core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove);
24792
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, 'background', 'transparent');
24688
24793
  this.onSave = save;
24689
24794
  this.resize_box.appendChild(this.j.c.element('i', {
24690
24795
  class: 'jodit-icon_loader'
@@ -24699,7 +24804,7 @@ const TABS = {
24699
24804
  }
24700
24805
  this.image.setAttribute('src', url);
24701
24806
  this._dialog.open();
24702
- const { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
24807
+ const { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
24703
24808
  const onload = ()=>{
24704
24809
  if (this.isDestructed) {
24705
24810
  return;
@@ -24713,7 +24818,7 @@ const TABS = {
24713
24818
  this.resize_box.appendChild(this.image);
24714
24819
  this.cropImage = this.image.cloneNode(true);
24715
24820
  this.crop_box.appendChild(this.cropImage);
24716
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove.apply(null, (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)('.jodit-icon_loader', this.editor));
24821
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__.Dom.safeRemove.apply(null, (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.$$)('.jodit-icon_loader', this.editor));
24717
24822
  if (this.activeTab === TABS.crop) {
24718
24823
  this.showCrop();
24719
24824
  }
@@ -24735,9 +24840,9 @@ const TABS = {
24735
24840
  if (!slide) {
24736
24841
  return;
24737
24842
  }
24738
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)(`.${jie}__slider,.${jie}__area`, self.editor).forEach((elm)=>elm.classList.remove(`${jie}_active`));
24843
+ (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.$$)(`.${jie}__slider,.${jie}__area`, self.editor).forEach((elm)=>elm.classList.remove(`${jie}_active`));
24739
24844
  slide.classList.add(`${jie}_active`);
24740
- this.activeTab = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(slide, '-area') || TABS.resize;
24845
+ this.activeTab = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(slide, '-area') || TABS.resize;
24741
24846
  const tab = self.editor.querySelector(`.${jie}__area.${jie}__area_` + self.activeTab);
24742
24847
  if (tab) {
24743
24848
  tab.classList.add(`${jie}_active`);
@@ -24747,14 +24852,14 @@ const TABS = {
24747
24852
  }
24748
24853
  }
24749
24854
  onChangeSizeInput(e) {
24750
- const self = this, input = e.target, { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor), isWidth = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(input, 'data-ref') === 'widthInput', x = parseInt(input.value, 10), minX = isWidth ? self.o.min_width : self.o.min_height, minY = !isWidth ? self.o.min_width : self.o.min_height;
24855
+ const self = this, input = e.target, { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor), isWidth = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(input, 'data-ref') === 'widthInput', x = parseInt(input.value, 10), minX = isWidth ? self.o.min_width : self.o.min_height, minY = !isWidth ? self.o.min_width : self.o.min_height;
24751
24856
  let y;
24752
24857
  if (x > minX) {
24753
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, isWidth ? 'width' : 'height', x);
24858
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, isWidth ? 'width' : 'height', x);
24754
24859
  if (self.resizeUseRatio) {
24755
24860
  y = isWidth ? Math.round(x / self.ratio) : Math.round(x * self.ratio);
24756
24861
  if (y > minY) {
24757
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, !isWidth ? 'width' : 'height', y);
24862
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, !isWidth ? 'width' : 'height', y);
24758
24863
  if (isWidth) {
24759
24864
  heightInput.value = y.toString();
24760
24865
  } else {
@@ -24774,8 +24879,8 @@ const TABS = {
24774
24879
  self.start_x = e.clientX;
24775
24880
  self.start_y = e.clientY;
24776
24881
  if (self.activeTab === TABS.crop) {
24777
- self.top_x = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'left');
24778
- self.top_y = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'top');
24882
+ self.top_x = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'left');
24883
+ self.top_y = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'top');
24779
24884
  self.width = self.cropHandler.offsetWidth;
24780
24885
  self.height = self.cropHandler.offsetHeight;
24781
24886
  } else {
@@ -24796,7 +24901,7 @@ const TABS = {
24796
24901
  if (!self.clicked) {
24797
24902
  return;
24798
24903
  }
24799
- const { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
24904
+ const { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
24800
24905
  self.diff_x = e.clientX - self.start_x;
24801
24906
  self.diff_y = e.clientY - self.start_y;
24802
24907
  if (self.activeTab === TABS.resize && self.resizeUseRatio || self.activeTab === TABS.crop && self.cropUseRatio) {
@@ -24813,11 +24918,11 @@ const TABS = {
24813
24918
  }
24814
24919
  if (self.activeTab === TABS.resize) {
24815
24920
  if (self.new_w > self.o.resizeMinWidth) {
24816
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, 'width', self.new_w + 'px');
24921
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, 'width', self.new_w + 'px');
24817
24922
  widthInput.value = self.new_w.toString();
24818
24923
  }
24819
24924
  if (self.new_h > self.o.resizeMinHeight) {
24820
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, 'height', self.new_h + 'px');
24925
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, 'height', self.new_h + 'px');
24821
24926
  heightInput.value = self.new_h.toString();
24822
24927
  }
24823
24928
  this.j.e.fire(self.resizeHandler, 'updatesize');
@@ -24829,7 +24934,7 @@ const TABS = {
24829
24934
  if (self.top_y + self.new_h > self.cropImage.offsetHeight) {
24830
24935
  self.new_h = self.cropImage.offsetHeight - self.top_y;
24831
24936
  }
24832
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, {
24937
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, {
24833
24938
  width: self.new_w,
24834
24939
  height: self.new_h
24835
24940
  });
@@ -24837,11 +24942,11 @@ const TABS = {
24837
24942
  if (self.top_x + self.diff_x + self.cropHandler.offsetWidth > self.cropImage.offsetWidth) {
24838
24943
  self.diff_x = self.cropImage.offsetWidth - self.top_x - self.cropHandler.offsetWidth;
24839
24944
  }
24840
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'left', self.top_x + self.diff_x);
24945
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'left', self.top_x + self.diff_x);
24841
24946
  if (self.top_y + self.diff_y + self.cropHandler.offsetHeight > self.cropImage.offsetHeight) {
24842
24947
  self.diff_y = self.cropImage.offsetHeight - self.top_y - self.cropHandler.offsetHeight;
24843
24948
  }
24844
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'top', self.top_y + self.diff_y);
24949
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'top', self.top_y + self.diff_y);
24845
24950
  }
24846
24951
  this.j.e.fire(self.cropHandler, 'updatesize');
24847
24952
  }
@@ -24902,7 +25007,7 @@ const TABS = {
24902
25007
  wn = nw * (h / nh);
24903
25008
  hn = h;
24904
25009
  }
24905
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.crop_box, {
25010
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.crop_box, {
24906
25011
  width: wn,
24907
25012
  height: hn
24908
25013
  });
@@ -24920,8 +25025,8 @@ const TABS = {
24920
25025
  } else {
24921
25026
  this.new_h = ImageEditor_1.calcValueByPercent(h, this.o.cropDefaultHeight);
24922
25027
  }
24923
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, {
24924
- backgroundImage: 'url(' + (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(this.cropImage, 'src') + ')',
25028
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, {
25029
+ backgroundImage: 'url(' + (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(this.cropImage, 'src') + ')',
24925
25030
  width: this.new_w,
24926
25031
  height: this.new_h,
24927
25032
  left: w / 2 - this.new_w / 2,
@@ -24934,8 +25039,8 @@ const TABS = {
24934
25039
  return;
24935
25040
  }
24936
25041
  const ratioX = this.cropImage.offsetWidth / this.naturalWidth, ratioY = this.cropImage.offsetHeight / this.naturalHeight;
24937
- this.cropBox.x = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, 'left') / ratioX;
24938
- this.cropBox.y = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, 'top') / ratioY;
25042
+ this.cropBox.x = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, 'left') / ratioX;
25043
+ this.cropBox.y = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, 'top') / ratioY;
24939
25044
  this.cropBox.w = this.cropHandler.offsetWidth / ratioX;
24940
25045
  this.cropBox.h = this.cropHandler.offsetHeight / ratioY;
24941
25046
  this.sizes.textContent = this.cropBox.w.toFixed(0) + 'x' + this.cropBox.h.toFixed(0);
@@ -24946,7 +25051,7 @@ const TABS = {
24946
25051
  };
24947
25052
  this.setHandlers = ()=>{
24948
25053
  const self = this;
24949
- const { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
25054
+ const { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
24950
25055
  self.j.e.on([
24951
25056
  self.editor.querySelector('.jodit_bottomright'),
24952
25057
  self.cropHandler
@@ -24955,11 +25060,11 @@ const TABS = {
24955
25060
  self.showCrop();
24956
25061
  this.j.e.fire(self.cropHandler, 'updatesize');
24957
25062
  });
24958
- self.j.e.on((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(this.editor.querySelectorAll(`.${jie}__slider-title`)), 'click', this.onTitleModeClick).on([
25063
+ self.j.e.on((0,_core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(this.editor.querySelectorAll(`.${jie}__slider-title`)), 'click', this.onTitleModeClick).on([
24959
25064
  widthInput,
24960
25065
  heightInput
24961
25066
  ], 'input', this.onChangeSizeInput);
24962
- const { keepAspectRatioResize, keepAspectRatioCrop } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
25067
+ const { keepAspectRatioResize, keepAspectRatioCrop } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
24963
25068
  if (keepAspectRatioResize) {
24964
25069
  keepAspectRatioResize.addEventListener('change', ()=>{
24965
25070
  this.resizeUseRatio = keepAspectRatioResize.checked;
@@ -24971,7 +25076,7 @@ const TABS = {
24971
25076
  });
24972
25077
  }
24973
25078
  self.j.e.on(self.resizeHandler, 'updatesize', ()=>{
24974
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.resizeHandler, {
25079
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.resizeHandler, {
24975
25080
  top: 0,
24976
25081
  left: 0,
24977
25082
  width: self.image.offsetWidth || self.naturalWidth,
@@ -24982,7 +25087,7 @@ const TABS = {
24982
25087
  if (!self.cropImage) {
24983
25088
  return;
24984
25089
  }
24985
- let new_x = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'left'), new_y = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'top'), new_width = self.cropHandler.offsetWidth, new_height = self.cropHandler.offsetHeight;
25090
+ let new_x = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'left'), new_y = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'top'), new_width = self.cropHandler.offsetWidth, new_height = self.cropHandler.offsetHeight;
24986
25091
  if (new_x < 0) {
24987
25092
  new_x = 0;
24988
25093
  }
@@ -25001,7 +25106,7 @@ const TABS = {
25001
25106
  new_width = new_height * self.ratio;
25002
25107
  }
25003
25108
  }
25004
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, {
25109
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, {
25005
25110
  width: new_width,
25006
25111
  height: new_height,
25007
25112
  left: new_x,
@@ -25020,7 +25125,7 @@ const TABS = {
25020
25125
  switch(button){
25021
25126
  case self.buttons.saveas:
25022
25127
  self.j.prompt('Enter new name', 'Save in new file', (name)=>{
25023
- if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(name)) {
25128
+ if (!(0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_4__.trim)(name)) {
25024
25129
  self.j.alert('The name should not be empty');
25025
25130
  return false;
25026
25131
  }
@@ -25036,7 +25141,7 @@ const TABS = {
25036
25141
  break;
25037
25142
  case self.buttons.reset:
25038
25143
  if (self.activeTab === TABS.resize) {
25039
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, {
25144
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, {
25040
25145
  width: null,
25041
25146
  height: null
25042
25147
  });
@@ -25051,18 +25156,24 @@ const TABS = {
25051
25156
  });
25052
25157
  });
25053
25158
  };
25054
- this.options = editor && editor.o && editor.o.imageeditor ? editor.o.imageeditor : _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.defaultOptions.imageeditor;
25159
+ this.options = editor && editor.o && editor.o.imageeditor ? editor.o.imageeditor : _config_js__WEBPACK_IMPORTED_MODULE_10__.Config.defaultOptions.imageeditor;
25055
25160
  const o = this.options;
25056
25161
  this.resizeUseRatio = o.resizeUseRatio;
25057
25162
  this.cropUseRatio = o.cropUseRatio;
25058
25163
  this.buttons = {
25059
- reset: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__.Button)(this.j, 'update', 'Reset'),
25060
- save: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__.Button)(this.j, 'save', 'Save'),
25061
- saveas: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__.Button)(this.j, 'save', 'Save as ...')
25164
+ reset: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__.Button)(this.j, 'update', 'Reset'),
25165
+ save: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__.Button)(this.j, 'save', 'Save'),
25166
+ saveas: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__.Button)(this.j, {
25167
+ icon: {
25168
+ name: 'save'
25169
+ },
25170
+ name: 'save-as',
25171
+ text: 'Save as ...'
25172
+ })
25062
25173
  };
25063
25174
  this.activeTab = o.resize ? TABS.resize : TABS.crop;
25064
- this.editor = (0,_templates_form_js__WEBPACK_IMPORTED_MODULE_7__.form)(this.j, this.options);
25065
- const { resizeBox, cropBox } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
25175
+ this.editor = (0,_templates_form_js__WEBPACK_IMPORTED_MODULE_12__.form)(this.j, this.options);
25176
+ const { resizeBox, cropBox } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
25066
25177
  this.resize_box = resizeBox;
25067
25178
  this.crop_box = cropBox;
25068
25179
  this.sizes = this.editor.querySelector(`.${jie}__area.${jie}__area_crop .jodit-image-editor__sizes`);
@@ -25127,7 +25238,7 @@ ImageEditor = ImageEditor_1 = __decorate([
25127
25238
  /**
25128
25239
  * Open Image Editor
25129
25240
  */ function openImageEditor(href, name, path, source, onSuccess, onFailed) {
25130
- return this.getInstance('ImageEditor', this.o).open(href, (newname, box, success, failed)=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.call)(box.action === 'resize' ? this.dataProvider.resize : this.dataProvider.crop, path, source, name, newname, box.box).then((ok)=>{
25241
+ return this.getInstance('ImageEditor', this.o).open(href, (newname, box, success, failed)=>(0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_8__.call)(box.action === 'resize' ? this.dataProvider.resize : this.dataProvider.crop, path, source, name, newname, box.box).then((ok)=>{
25131
25242
  if (ok) {
25132
25243
  success();
25133
25244
  if (onSuccess) {
@@ -31378,7 +31489,8 @@ let UIGroup = UIGroup_1 = class UIGroup extends _element_js__WEBPACK_IMPORTED_MO
31378
31489
  return 'UIGroup';
31379
31490
  }
31380
31491
  getRole() {
31381
- return 'list';
31492
+ var _a;
31493
+ return ((_a = this.options) === null || _a === void 0 ? void 0 : _a.role) || 'list';
31382
31494
  }
31383
31495
  /**
31384
31496
  * All group children
@@ -38734,6 +38846,13 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
38734
38846
  getRole() {
38735
38847
  return 'listitem';
38736
38848
  }
38849
+ updateAriaLabel() {
38850
+ super.updateAriaLabel();
38851
+ if (this.trigger) {
38852
+ const i8nTooltip = this.state.tooltip ? this.jodit.i18n(this.state.tooltip) : null;
38853
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-label', i8nTooltip);
38854
+ }
38855
+ }
38737
38856
  /**
38738
38857
  * Get parent toolbar
38739
38858
  */ get toolbar() {
@@ -38807,7 +38926,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
38807
38926
  value: this
38808
38927
  });
38809
38928
  container.appendChild(button);
38810
- const trigger = this.j.c.fromHTML(`<span role="trigger" class="${cn}__trigger">${_core_ui_icon_js__WEBPACK_IMPORTED_MODULE_18__.Icon.get('chevron')}</span>`);
38929
+ const trigger = this.j.c.fromHTML(`<span role="button" aria-haspopup="true" aria-expanded="false" class="${cn}__trigger">${_core_ui_icon_js__WEBPACK_IMPORTED_MODULE_18__.Icon.get('chevron')}</span>`);
38811
38930
  // For caching
38812
38931
  button.appendChild(trigger);
38813
38932
  return container;
@@ -38866,6 +38985,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
38866
38985
  return;
38867
38986
  }
38868
38987
  const { control: ctr } = this;
38988
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-expanded', true);
38869
38989
  e.buffer = {
38870
38990
  actionTrigger: this
38871
38991
  };
@@ -38979,6 +39099,9 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
38979
39099
  this.openedPopup.close();
38980
39100
  this.openedPopup.destruct();
38981
39101
  this.openedPopup = null;
39102
+ if (this.trigger) {
39103
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-expanded', false);
39104
+ }
38982
39105
  }
38983
39106
  }
38984
39107
  /**
@@ -42743,7 +42866,7 @@ __webpack_require__.r(__webpack_exports__);
42743
42866
  * ```
42744
42867
  * @packageDocumentation
42745
42868
  * @module constants
42746
- */ const APP_VERSION = "4.9.22";
42869
+ */ const APP_VERSION = "4.9.27";
42747
42870
  // prettier-ignore
42748
42871
  const ES = "es2021";
42749
42872
  const IS_ES_MODERN = true;
@@ -43378,11 +43501,13 @@ ToolbarSelect = __decorate([
43378
43501
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
43379
43502
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
43380
43503
  /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
43381
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
43382
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
43383
- /* harmony import */ var _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80870);
43384
- /* harmony import */ var _modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21491);
43385
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(86012);
43504
+ /* harmony import */ var _core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49055);
43505
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29960);
43506
+ /* harmony import */ var _core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(76078);
43507
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50911);
43508
+ /* harmony import */ var _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80870);
43509
+ /* harmony import */ var _modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21491);
43510
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(86012);
43386
43511
  /*!
43387
43512
  * Jodit Editor (https://xdsoft.net/jodit/)
43388
43513
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -43395,12 +43520,15 @@ ToolbarSelect = __decorate([
43395
43520
 
43396
43521
 
43397
43522
 
43523
+
43524
+
43398
43525
  /**
43399
43526
  * Show a path to a current element in status bar
43400
- */ class xpath extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
43527
+ */ class xpath extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_6__.Plugin {
43401
43528
  afterInit() {
43402
43529
  if (this.j.o.showXPathInStatusbar) {
43403
43530
  this.container = this.j.c.div('jodit-xpath');
43531
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(this.container, 'role', 'list');
43404
43532
  const init = ()=>{
43405
43533
  if (!this.j.o.showXPathInStatusbar || !this.container) {
43406
43534
  return;
@@ -43415,7 +43543,7 @@ ToolbarSelect = __decorate([
43415
43543
  this.appendSelectAll();
43416
43544
  }
43417
43545
  };
43418
- this.j.e.off('.xpath').on('mouseup.xpath change.xpath keydown.xpath changeSelection.xpath', this.calcPath).on('afterSetMode.xpath afterInit.xpath changePlace.xpath', init);
43546
+ this.j.e.off('.xpath').on('pointerup.xpath change.xpath keydown.xpath changeSelection.xpath', this.calcPath).on('afterSetMode.xpath afterInit.xpath changePlace.xpath', init);
43419
43547
  init();
43420
43548
  this.calcPath();
43421
43549
  }
@@ -43434,7 +43562,7 @@ ToolbarSelect = __decorate([
43434
43562
  super(...arguments);
43435
43563
  this.onContext = (bindElement, event)=>{
43436
43564
  if (!this.menu) {
43437
- this.menu = new _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_5__.ContextMenu(this.j);
43565
+ this.menu = new _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_7__.ContextMenu(this.j);
43438
43566
  }
43439
43567
  this.menu.show(event.clientX, event.clientY, [
43440
43568
  {
@@ -43461,7 +43589,7 @@ ToolbarSelect = __decorate([
43461
43589
  };
43462
43590
  this.onSelectPath = (bindElement, event)=>{
43463
43591
  this.j.s.focus();
43464
- const path = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(event.target, '-path') || '/';
43592
+ const path = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(event.target, '-path') || '/';
43465
43593
  if (path === '/') {
43466
43594
  this.j.execCommand('selectall');
43467
43595
  return false;
@@ -43477,7 +43605,7 @@ ToolbarSelect = __decorate([
43477
43605
  return false;
43478
43606
  };
43479
43607
  this.tpl = (bindElement, path, name, title)=>{
43480
- const item = this.j.c.fromHTML(`<span class="jodit-xpath__item"><a role="button" data-path="${path}" title="${title}" tabindex="-1"'>${(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(name)}</a></span>`);
43608
+ const item = this.j.c.fromHTML(`<span class="jodit-xpath__item"><a role="button" data-path="${path}" title="${title}" tabindex="-1"'>${(0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_3__.trim)(name)}</a></span>`);
43481
43609
  const a = item.firstChild;
43482
43610
  this.j.e.on(a, 'click', this.onSelectPath.bind(this, bindElement)).on(a, 'contextmenu', this.onContext.bind(this, bindElement));
43483
43611
  return item;
@@ -43490,7 +43618,7 @@ ToolbarSelect = __decorate([
43490
43618
  };
43491
43619
  this.appendSelectAll = ()=>{
43492
43620
  this.removeSelectAll();
43493
- this.selectAllButton = (0,_modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_6__.makeButton)(this.j, {
43621
+ this.selectAllButton = (0,_modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_8__.makeButton)(this.j, {
43494
43622
  name: 'selectall',
43495
43623
  ...this.j.o.controls.selectall
43496
43624
  });
@@ -43510,7 +43638,7 @@ ToolbarSelect = __decorate([
43510
43638
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(current, (elm)=>{
43511
43639
  if (elm && this.j.editor !== elm && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isText(elm) && !_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isComment(elm)) {
43512
43640
  name = elm.nodeName.toLowerCase();
43513
- xpth = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getXPathByElement)(elm, this.j.editor).replace(/^\//, '');
43641
+ xpth = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_5__.getXPathByElement)(elm, this.j.editor).replace(/^\//, '');
43514
43642
  li = this.tpl(elm, xpth, name, this.j.i18n('Select %s', name));
43515
43643
  this.container && this.container.insertBefore(li, this.container.firstChild);
43516
43644
  }