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
package/es2015/jodit.js CHANGED
@@ -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
  */
@@ -3477,7 +3477,7 @@ class JoditPro extends jodit_esm_index__WEBPACK_IMPORTED_MODULE_4__.Jodit {
3477
3477
  }
3478
3478
  /**
3479
3479
  * Get temporary list
3480
- * @deprecated
3480
+ * @deprecated Just do not use it, it is not needed anymore
3481
3481
  */ static temporaryList(root) {
3482
3482
  return (0,_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_1__.toArray)(root.querySelectorAll(`[${_constants_js__WEBPACK_IMPORTED_MODULE_0__.TEMP_ATTR}]`));
3483
3483
  }
@@ -7114,7 +7114,7 @@ let UIButton = class UIButton extends _element_js__WEBPACK_IMPORTED_MODULE_9__.U
7114
7114
  }
7115
7115
  onChangeText() {
7116
7116
  this.text.textContent = this.jodit.i18n(this.state.text);
7117
- this.__updateAriaLabel();
7117
+ this.updateAriaLabel();
7118
7118
  }
7119
7119
  onChangeTextSetMode() {
7120
7120
  this.setMod('text-icons', Boolean(this.state.text.trim().length));
@@ -7137,9 +7137,9 @@ let UIButton = class UIButton extends _element_js__WEBPACK_IMPORTED_MODULE_9__.U
7137
7137
  (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_8__.attr)(this.container, 'title', i8nTooltip);
7138
7138
  }
7139
7139
  (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_8__.attr)(this.container, 'aria-label', i8nTooltip);
7140
- this.__updateAriaLabel();
7140
+ this.updateAriaLabel();
7141
7141
  }
7142
- __updateAriaLabel() {
7142
+ updateAriaLabel() {
7143
7143
  const hasText = this.state.text.trim().length > 0;
7144
7144
  const i8nTooltip = this.state.tooltip ? this.jodit.i18n(this.state.tooltip) : null;
7145
7145
  (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_8__.attr)(this.container, 'aria-label', i8nTooltip);
@@ -7622,6 +7622,9 @@ let ToolbarCollection = class ToolbarCollection extends _core_ui_group_list_js__
7622
7622
  className() {
7623
7623
  return 'ToolbarCollection';
7624
7624
  }
7625
+ getRole() {
7626
+ return 'toolbar';
7627
+ }
7625
7628
  /**
7626
7629
  * First button in a list
7627
7630
  */ get firstButton() {
@@ -7723,9 +7726,14 @@ ToolbarCollection = __decorate([
7723
7726
  /* harmony export */ "default": function() { return /* binding */ DataProvider; }
7724
7727
  /* harmony export */ });
7725
7728
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
7726
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
7727
- /* harmony import */ var _core_request_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41601);
7728
- /* harmony import */ var _builders_item_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(159);
7729
+ /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45219);
7730
+ /* harmony import */ var _core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23282);
7731
+ /* harmony import */ var _core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70091);
7732
+ /* harmony import */ var _core_helpers_utils_config_proto_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68934);
7733
+ /* harmony import */ var _core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89890);
7734
+ /* harmony import */ var _core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3703);
7735
+ /* harmony import */ var _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54079);
7736
+ /* harmony import */ var _builders_item_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(159);
7729
7737
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
7730
7738
  try {
7731
7739
  var info = gen[key](arg);
@@ -7811,7 +7819,18 @@ function _object_spread_props(target, source) {
7811
7819
  * Jodit Editor (https://xdsoft.net/jodit/)
7812
7820
  * Released under MIT see LICENSE.txt in the project root for license information.
7813
7821
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
7814
- */
7822
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
7823
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7824
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7825
+ 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;
7826
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7827
+ };
7828
+
7829
+
7830
+
7831
+
7832
+
7833
+
7815
7834
 
7816
7835
 
7817
7836
 
@@ -7844,13 +7863,13 @@ class DataProvider {
7844
7863
  ajax === null || ajax === void 0 ? void 0 : ajax.abort();
7845
7864
  instances.delete(name);
7846
7865
  }
7847
- 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)({
7866
+ 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)({
7848
7867
  onProgress: this.progressHandler
7849
7868
  }, this.o.ajax));
7850
7869
  if (opts.prepareData) {
7851
7870
  opts.data = opts.prepareData.call(this, opts.data);
7852
7871
  }
7853
- const ajax = new _core_request_index_js__WEBPACK_IMPORTED_MODULE_2__.Ajax(opts);
7872
+ const ajax = new _core_request_ajax_js__WEBPACK_IMPORTED_MODULE_7__.Ajax(opts);
7854
7873
  instances.set(name, ajax);
7855
7874
  const promise = ajax.send();
7856
7875
  promise.finally(()=>{
@@ -7880,7 +7899,7 @@ class DataProvider {
7880
7899
  if (this.o.permissions.url) {
7881
7900
  return this.get('permissions').then((resp)=>{
7882
7901
  if (this.parent.isInDestruct) {
7883
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.abort)();
7902
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.abort)();
7884
7903
  }
7885
7904
  let process = this.o.permissions.process;
7886
7905
  if (!process) {
@@ -7903,7 +7922,7 @@ class DataProvider {
7903
7922
  const rule = 'allow' + action;
7904
7923
  if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
7905
7924
  if (!possibleRules.has(rule)) {
7906
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)('Wrong action ' + action);
7925
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Wrong action ' + action);
7907
7926
  }
7908
7927
  }
7909
7928
  const presetValue = this.o.permissionsPresets[rule];
@@ -7934,18 +7953,18 @@ class DataProvider {
7934
7953
  /**
7935
7954
  * Load items list by path and source
7936
7955
  */ items(path, source, mods = {}) {
7937
- return this.__items(path, source, mods, (resp)=>this.generateItemsList(resp.data.sources, mods));
7956
+ return this.__items(path, source, mods, (resp)=>this.__generateItemsList(resp.data.sources, mods));
7938
7957
  }
7939
7958
  /**
7940
7959
  * Load items list by path and source
7941
7960
  */ itemsEx(path, source, mods = {}) {
7942
7961
  const calcTotal = (sources)=>sources.reduce((acc, source)=>acc + source.files.length, 0);
7943
7962
  return this.__items(path, source, mods, (resp)=>({
7944
- items: this.generateItemsList(resp.data.sources, mods),
7963
+ items: this.__generateItemsList(resp.data.sources, mods),
7945
7964
  loadedTotal: calcTotal(resp.data.sources)
7946
7965
  }));
7947
7966
  }
7948
- generateItemsList(sources, mods = {}) {
7967
+ __generateItemsList(sources, mods = {}) {
7949
7968
  const elements = [];
7950
7969
  const canBeFile = (item)=>item.type === 'folder' || !mods.onlyImages || item.isImage === undefined || item.isImage;
7951
7970
  const inFilter = (item)=>{
@@ -7955,12 +7974,12 @@ class DataProvider {
7955
7974
  sources.forEach((source)=>{
7956
7975
  if (source.files && source.files.length) {
7957
7976
  const { sort } = this.o;
7958
- if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.isFunction)(sort) && mods.sortBy) {
7977
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_2__.isFunction)(sort) && mods.sortBy) {
7959
7978
  source.files.sort((a, b)=>sort(a, b, mods.sortBy));
7960
7979
  }
7961
7980
  source.files.forEach((item)=>{
7962
7981
  if (inFilter(item) && canBeFile(item)) {
7963
- elements.push(_builders_item_js__WEBPACK_IMPORTED_MODULE_3__.FileBrowserItem.create(_object_spread_props(_object_spread({}, item), {
7982
+ elements.push(_builders_item_js__WEBPACK_IMPORTED_MODULE_8__.FileBrowserItem.create(_object_spread_props(_object_spread({}, item), {
7964
7983
  sourceName: source.name,
7965
7984
  source
7966
7985
  })));
@@ -7972,7 +7991,7 @@ class DataProvider {
7972
7991
  }
7973
7992
  tree(path, source) {
7974
7993
  return _async_to_generator(function*() {
7975
- path = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.normalizeRelativePath)(path);
7994
+ path = (0,_core_helpers_normalize_normalize_relative_path_js__WEBPACK_IMPORTED_MODULE_3__.normalizeRelativePath)(path);
7976
7995
  if (!this.o.folder) {
7977
7996
  return Promise.reject(Error('Set Folder Api options'));
7978
7997
  }
@@ -7994,12 +8013,12 @@ class DataProvider {
7994
8013
  /**
7995
8014
  * Get path by url. You can use this method in another modules
7996
8015
  */ getPathByUrl(url) {
7997
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.set)('options.getLocalFileByUrl.data.url', url, this);
8016
+ (0,_core_helpers_utils_set_js__WEBPACK_IMPORTED_MODULE_6__.set)('options.getLocalFileByUrl.data.url', url, this);
7998
8017
  return this.get('getLocalFileByUrl').then((resp)=>{
7999
8018
  if (this.isSuccess(resp)) {
8000
8019
  return resp.data;
8001
8020
  }
8002
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(this.getMessage(resp));
8021
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
8003
8022
  });
8004
8023
  }
8005
8024
  /**
@@ -8011,7 +8030,7 @@ class DataProvider {
8011
8030
  */ createFolder(name, path, source) {
8012
8031
  const { create } = this.o;
8013
8032
  if (!create) {
8014
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)('Set Create api options');
8033
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Set Create api options');
8015
8034
  }
8016
8035
  create.data.source = source;
8017
8036
  create.data.path = path;
@@ -8020,7 +8039,7 @@ class DataProvider {
8020
8039
  if (this.isSuccess(resp)) {
8021
8040
  return true;
8022
8041
  }
8023
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(this.getMessage(resp));
8042
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
8024
8043
  });
8025
8044
  }
8026
8045
  /**
@@ -8032,7 +8051,7 @@ class DataProvider {
8032
8051
  const mode = isFile ? 'fileMove' : 'folderMove';
8033
8052
  const option = this.options[mode];
8034
8053
  if (!option) {
8035
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)('Set Move api options');
8054
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)('Set Move api options');
8036
8055
  }
8037
8056
  option.data.from = filepath;
8038
8057
  option.data.path = path;
@@ -8041,7 +8060,7 @@ class DataProvider {
8041
8060
  if (this.isSuccess(resp)) {
8042
8061
  return true;
8043
8062
  }
8044
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(this.getMessage(resp));
8063
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(this.getMessage(resp));
8045
8064
  });
8046
8065
  }
8047
8066
  /**
@@ -8050,10 +8069,10 @@ class DataProvider {
8050
8069
  * @param path - Relative path
8051
8070
  * @param file - The filename
8052
8071
  * @param source - Source
8053
- */ remove(action, path, file, source) {
8072
+ */ __remove(action, path, file, source) {
8054
8073
  const fr = this.o[action];
8055
8074
  if (!fr) {
8056
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(`Set "${action}" api options`);
8075
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(`Set "${action}" api options`);
8057
8076
  }
8058
8077
  fr.data.path = path;
8059
8078
  fr.data.name = file;
@@ -8072,7 +8091,7 @@ class DataProvider {
8072
8091
  * @param file - The filename
8073
8092
  * @param source - Source
8074
8093
  */ fileRemove(path, file, source) {
8075
- return this.remove('fileRemove', path, file, source);
8094
+ return this.__remove('fileRemove', path, file, source);
8076
8095
  }
8077
8096
  /**
8078
8097
  * Deleting a folder
@@ -8081,7 +8100,7 @@ class DataProvider {
8081
8100
  * @param file - The filename
8082
8101
  * @param source - Source
8083
8102
  */ folderRemove(path, file, source) {
8084
- return this.remove('folderRemove', path, file, source);
8103
+ return this.__remove('folderRemove', path, file, source);
8085
8104
  }
8086
8105
  /**
8087
8106
  * Rename action
@@ -8090,10 +8109,10 @@ class DataProvider {
8090
8109
  * @param name - Old name
8091
8110
  * @param newname - New name
8092
8111
  * @param source - Source
8093
- */ rename(action, path, name, newname, source) {
8112
+ */ __rename(action, path, name, newname, source) {
8094
8113
  const fr = this.o[action];
8095
8114
  if (!fr) {
8096
- throw (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.error)(`Set "${action}" api options`);
8115
+ throw (0,_core_helpers_utils_error_index_js__WEBPACK_IMPORTED_MODULE_5__.error)(`Set "${action}" api options`);
8097
8116
  }
8098
8117
  fr.data.path = path;
8099
8118
  fr.data.name = name;
@@ -8109,14 +8128,14 @@ class DataProvider {
8109
8128
  /**
8110
8129
  * Rename folder
8111
8130
  */ folderRename(path, name, newname, source) {
8112
- return this.rename('folderRename', path, name, newname, source);
8131
+ return this.__rename('folderRename', path, name, newname, source);
8113
8132
  }
8114
8133
  /**
8115
8134
  * Rename file
8116
8135
  */ fileRename(path, name, newname, source) {
8117
- return this.rename('fileRename', path, name, newname, source);
8136
+ return this.__rename('fileRename', path, name, newname, source);
8118
8137
  }
8119
- changeImage(type, path, source, name, newname, box) {
8138
+ __changeImage(type, path, source, name, newname, box) {
8120
8139
  if (!this.o[type]) {
8121
8140
  this.o[type] = {
8122
8141
  data: {}
@@ -8142,12 +8161,12 @@ class DataProvider {
8142
8161
  /**
8143
8162
  * Send command to server to crop image
8144
8163
  */ crop(path, source, name, newname, box) {
8145
- return this.changeImage('crop', path, source, name, newname, box);
8164
+ return this.__changeImage('crop', path, source, name, newname, box);
8146
8165
  }
8147
8166
  /**
8148
8167
  * Send command to server to resize image
8149
8168
  */ resize(path, source, name, newname, box) {
8150
- return this.changeImage('resize', path, source, name, newname, box);
8169
+ return this.__changeImage('resize', path, source, name, newname, box);
8151
8170
  }
8152
8171
  getMessage(resp) {
8153
8172
  return this.options.getMessage(resp);
@@ -8168,6 +8187,60 @@ class DataProvider {
8168
8187
  }
8169
8188
  }
8170
8189
 
8190
+ __decorate([
8191
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8192
+ ], DataProvider.prototype, "onProgress", null);
8193
+ __decorate([
8194
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8195
+ ], DataProvider.prototype, "permissions", null);
8196
+ __decorate([
8197
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8198
+ ], DataProvider.prototype, "canI", null);
8199
+ __decorate([
8200
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8201
+ ], DataProvider.prototype, "items", null);
8202
+ __decorate([
8203
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8204
+ ], DataProvider.prototype, "itemsEx", null);
8205
+ __decorate([
8206
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8207
+ ], DataProvider.prototype, "tree", null);
8208
+ __decorate([
8209
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8210
+ ], DataProvider.prototype, "getPathByUrl", null);
8211
+ __decorate([
8212
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8213
+ ], DataProvider.prototype, "createFolder", null);
8214
+ __decorate([
8215
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8216
+ ], DataProvider.prototype, "move", null);
8217
+ __decorate([
8218
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8219
+ ], DataProvider.prototype, "fileRemove", null);
8220
+ __decorate([
8221
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8222
+ ], DataProvider.prototype, "folderRemove", null);
8223
+ __decorate([
8224
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8225
+ ], DataProvider.prototype, "folderRename", null);
8226
+ __decorate([
8227
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8228
+ ], DataProvider.prototype, "fileRename", null);
8229
+ __decorate([
8230
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8231
+ ], DataProvider.prototype, "crop", null);
8232
+ __decorate([
8233
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8234
+ ], DataProvider.prototype, "resize", null);
8235
+ __decorate([
8236
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8237
+ ], DataProvider.prototype, "getMessage", null);
8238
+ __decorate([
8239
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8240
+ ], DataProvider.prototype, "isSuccess", null);
8241
+ __decorate([
8242
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
8243
+ ], DataProvider.prototype, "destruct", null);
8171
8244
 
8172
8245
 
8173
8246
  /***/ }),
@@ -12544,6 +12617,7 @@ __webpack_require__.r(__webpack_exports__);
12544
12617
  /* harmony export */ buildQuery: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.buildQuery; },
12545
12618
  /* harmony export */ call: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.call; },
12546
12619
  /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.callPromise; },
12620
+ /* harmony export */ callThis: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.callThis; },
12547
12621
  /* harmony export */ camelCase: function() { return /* reexport safe */ _string_index_js__WEBPACK_IMPORTED_MODULE_7__.camelCase; },
12548
12622
  /* harmony export */ cleanFromWord: function() { return /* reexport safe */ _html_index_js__WEBPACK_IMPORTED_MODULE_4__.cleanFromWord; },
12549
12623
  /* harmony export */ clearAlign: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.clearAlign; },
@@ -13840,16 +13914,21 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.popup = {
13840
13914
 
13841
13915
 
13842
13916
  let UIList = class UIList extends _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup {
13843
- /** @override */ className() {
13917
+ className() {
13844
13918
  return 'UIList';
13845
13919
  }
13920
+ getRole() {
13921
+ return 'list';
13922
+ }
13846
13923
  __onChangeMode() {
13847
13924
  this.setMod('mode', this.mode);
13848
13925
  }
13849
13926
  /**
13850
13927
  * Make new group and append it in list of elements
13851
- */ makeGroup() {
13852
- return new _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup(this.jodit);
13928
+ */ makeGroup(role) {
13929
+ return new _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup(this.jodit, [], role ? {
13930
+ role
13931
+ } : undefined);
13853
13932
  }
13854
13933
  /**
13855
13934
  * All buttons from list
@@ -13869,7 +13948,7 @@ let UIList = class UIList extends _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup
13869
13948
  items = (0,_helpers_array_split_array_js__WEBPACK_IMPORTED_MODULE_4__.splitArray)(items);
13870
13949
  this.clear();
13871
13950
  let lastBtnSeparator = false;
13872
- let line = this.makeGroup();
13951
+ let line = this.makeGroup('group');
13873
13952
  this.append(line);
13874
13953
  line.setMod('line', true);
13875
13954
  let group;
@@ -13877,7 +13956,7 @@ let UIList = class UIList extends _group_js__WEBPACK_IMPORTED_MODULE_6__.UIGroup
13877
13956
  let elm = null;
13878
13957
  switch(control.name){
13879
13958
  case '\n':
13880
- line = this.makeGroup();
13959
+ line = this.makeGroup('group');
13881
13960
  line.setMod('line', true);
13882
13961
  group = this.makeGroup();
13883
13962
  line.append(group);
@@ -21138,6 +21217,7 @@ let ToolbarEditorCollection = class ToolbarEditorCollection extends _collection_
21138
21217
  * @see https://github.com/jodit/jodit-react/issues/138
21139
21218
  */ prependInvisibleInput(container) {
21140
21219
  const input = this.j.create.element('input', {
21220
+ name: 'jodit-toolbar-focus-helper_' + this.j.id,
21141
21221
  tabIndex: -1,
21142
21222
  disabled: true,
21143
21223
  style: 'width: 0; height:0; position: absolute; visibility: hidden;'
@@ -21442,6 +21522,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.dots = {
21442
21522
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
21443
21523
  /* harmony export */ call: function() { return /* binding */ call; },
21444
21524
  /* harmony export */ callPromise: function() { return /* binding */ callPromise; },
21525
+ /* harmony export */ callThis: function() { return /* binding */ callThis; },
21445
21526
  /* harmony export */ getDataTransfer: function() { return /* binding */ getDataTransfer; },
21446
21527
  /* harmony export */ getPropertyDescriptor: function() { return /* binding */ getPropertyDescriptor; },
21447
21528
  /* harmony export */ keys: function() { return /* binding */ keys; },
@@ -21472,6 +21553,17 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.dots = {
21472
21553
  */ function call(func, ...args) {
21473
21554
  return func(...args);
21474
21555
  }
21556
+ /**
21557
+ * Call function with parameters
21558
+ *
21559
+ * @example
21560
+ * ```js
21561
+ * const f = Math.random();
21562
+ * Jodit.modules.Helpers.call(f > 0.5 ? Math.ceil : Math.floor, f);
21563
+ * ```
21564
+ */ function callThis(func, thisArg, ...args) {
21565
+ return func.apply(thisArg, args);
21566
+ }
21475
21567
  /**
21476
21568
  * Mark element for debugging
21477
21569
  */ function markOwner(jodit, elm) {
@@ -24130,6 +24222,7 @@ __webpack_require__.r(__webpack_exports__);
24130
24222
  /* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
24131
24223
  /* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.call; },
24132
24224
  /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.callPromise; },
24225
+ /* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.callThis; },
24133
24226
  /* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
24134
24227
  /* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
24135
24228
  /* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_18__.cns; },
@@ -26030,7 +26123,8 @@ var UIElement_1;
26030
26123
 
26031
26124
  let UIElement = UIElement_1 = class UIElement extends _component_index_js__WEBPACK_IMPORTED_MODULE_0__.ViewComponent {
26032
26125
  getRole() {
26033
- return '';
26126
+ var _a;
26127
+ return ((_a = this.options) === null || _a === void 0 ? void 0 : _a.role) || '';
26034
26128
  }
26035
26129
  get parentElement() {
26036
26130
  return this.__parentElement;
@@ -26127,11 +26221,12 @@ let UIElement = UIElement_1 = class UIElement extends _component_index_js__WEBPA
26127
26221
  this.parentElement = null;
26128
26222
  return super.destruct();
26129
26223
  }
26130
- /** @override */ constructor(jodit, options){
26224
+ constructor(jodit, options){
26131
26225
  super(jodit);
26132
26226
  this.name = '';
26133
26227
  this.__parentElement = null;
26134
26228
  this.mods = {};
26229
+ this.options = options;
26135
26230
  this.container = this.createContainer(options);
26136
26231
  const role = this.getRole();
26137
26232
  role && (0,_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(this.container, 'role', role);
@@ -26388,11 +26483,16 @@ __webpack_require__.r(__webpack_exports__);
26388
26483
  /* harmony import */ var _core_component_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91907);
26389
26484
  /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65478);
26390
26485
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22732);
26391
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
26392
- /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62843);
26393
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6441);
26394
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62489);
26395
- /* harmony import */ var _templates_form_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22461);
26486
+ /* harmony import */ var _core_helpers_array_to_array_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4510);
26487
+ /* harmony import */ var _core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49055);
26488
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29960);
26489
+ /* harmony import */ var _core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41180);
26490
+ /* harmony import */ var _core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76078);
26491
+ /* harmony import */ var _core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37790);
26492
+ /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62843);
26493
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(6441);
26494
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(62489);
26495
+ /* harmony import */ var _templates_form_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(22461);
26396
26496
  /*!
26397
26497
  * Jodit Editor (https://xdsoft.net/jodit/)
26398
26498
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -26412,6 +26512,11 @@ var ImageEditor_1;
26412
26512
 
26413
26513
 
26414
26514
 
26515
+
26516
+
26517
+
26518
+
26519
+
26415
26520
  const jie = 'jodit-image-editor';
26416
26521
  const TABS = {
26417
26522
  resize: 'resize',
@@ -26459,9 +26564,9 @@ const TABS = {
26459
26564
  return this.j.async.promise((resolve)=>{
26460
26565
  const timestamp = new Date().getTime();
26461
26566
  this.image = this.j.c.element('img');
26462
- (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);
26463
- (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);
26464
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, 'background', 'transparent');
26567
+ (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);
26568
+ (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);
26569
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, 'background', 'transparent');
26465
26570
  this.onSave = save;
26466
26571
  this.resize_box.appendChild(this.j.c.element('i', {
26467
26572
  class: 'jodit-icon_loader'
@@ -26476,7 +26581,7 @@ const TABS = {
26476
26581
  }
26477
26582
  this.image.setAttribute('src', url);
26478
26583
  this._dialog.open();
26479
- const { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
26584
+ const { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
26480
26585
  const onload = ()=>{
26481
26586
  if (this.isDestructed) {
26482
26587
  return;
@@ -26490,7 +26595,7 @@ const TABS = {
26490
26595
  this.resize_box.appendChild(this.image);
26491
26596
  this.cropImage = this.image.cloneNode(true);
26492
26597
  this.crop_box.appendChild(this.cropImage);
26493
- _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));
26598
+ _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));
26494
26599
  if (this.activeTab === TABS.crop) {
26495
26600
  this.showCrop();
26496
26601
  }
@@ -26512,9 +26617,9 @@ const TABS = {
26512
26617
  if (!slide) {
26513
26618
  return;
26514
26619
  }
26515
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.$$)(`.${jie}__slider,.${jie}__area`, self.editor).forEach((elm)=>elm.classList.remove(`${jie}_active`));
26620
+ (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.$$)(`.${jie}__slider,.${jie}__area`, self.editor).forEach((elm)=>elm.classList.remove(`${jie}_active`));
26516
26621
  slide.classList.add(`${jie}_active`);
26517
- this.activeTab = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(slide, '-area') || TABS.resize;
26622
+ this.activeTab = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(slide, '-area') || TABS.resize;
26518
26623
  const tab = self.editor.querySelector(`.${jie}__area.${jie}__area_` + self.activeTab);
26519
26624
  if (tab) {
26520
26625
  tab.classList.add(`${jie}_active`);
@@ -26524,14 +26629,14 @@ const TABS = {
26524
26629
  }
26525
26630
  }
26526
26631
  onChangeSizeInput(e) {
26527
- 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;
26632
+ 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;
26528
26633
  let y;
26529
26634
  if (x > minX) {
26530
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, isWidth ? 'width' : 'height', x);
26635
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, isWidth ? 'width' : 'height', x);
26531
26636
  if (self.resizeUseRatio) {
26532
26637
  y = isWidth ? Math.round(x / self.ratio) : Math.round(x * self.ratio);
26533
26638
  if (y > minY) {
26534
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, !isWidth ? 'width' : 'height', y);
26639
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, !isWidth ? 'width' : 'height', y);
26535
26640
  if (isWidth) {
26536
26641
  heightInput.value = y.toString();
26537
26642
  } else {
@@ -26551,8 +26656,8 @@ const TABS = {
26551
26656
  self.start_x = e.clientX;
26552
26657
  self.start_y = e.clientY;
26553
26658
  if (self.activeTab === TABS.crop) {
26554
- self.top_x = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'left');
26555
- self.top_y = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'top');
26659
+ self.top_x = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'left');
26660
+ self.top_y = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'top');
26556
26661
  self.width = self.cropHandler.offsetWidth;
26557
26662
  self.height = self.cropHandler.offsetHeight;
26558
26663
  } else {
@@ -26573,7 +26678,7 @@ const TABS = {
26573
26678
  if (!self.clicked) {
26574
26679
  return;
26575
26680
  }
26576
- const { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
26681
+ const { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
26577
26682
  self.diff_x = e.clientX - self.start_x;
26578
26683
  self.diff_y = e.clientY - self.start_y;
26579
26684
  if (self.activeTab === TABS.resize && self.resizeUseRatio || self.activeTab === TABS.crop && self.cropUseRatio) {
@@ -26590,11 +26695,11 @@ const TABS = {
26590
26695
  }
26591
26696
  if (self.activeTab === TABS.resize) {
26592
26697
  if (self.new_w > self.o.resizeMinWidth) {
26593
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, 'width', self.new_w + 'px');
26698
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, 'width', self.new_w + 'px');
26594
26699
  widthInput.value = self.new_w.toString();
26595
26700
  }
26596
26701
  if (self.new_h > self.o.resizeMinHeight) {
26597
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, 'height', self.new_h + 'px');
26702
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, 'height', self.new_h + 'px');
26598
26703
  heightInput.value = self.new_h.toString();
26599
26704
  }
26600
26705
  this.j.e.fire(self.resizeHandler, 'updatesize');
@@ -26606,7 +26711,7 @@ const TABS = {
26606
26711
  if (self.top_y + self.new_h > self.cropImage.offsetHeight) {
26607
26712
  self.new_h = self.cropImage.offsetHeight - self.top_y;
26608
26713
  }
26609
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, {
26714
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, {
26610
26715
  width: self.new_w,
26611
26716
  height: self.new_h
26612
26717
  });
@@ -26614,11 +26719,11 @@ const TABS = {
26614
26719
  if (self.top_x + self.diff_x + self.cropHandler.offsetWidth > self.cropImage.offsetWidth) {
26615
26720
  self.diff_x = self.cropImage.offsetWidth - self.top_x - self.cropHandler.offsetWidth;
26616
26721
  }
26617
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'left', self.top_x + self.diff_x);
26722
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'left', self.top_x + self.diff_x);
26618
26723
  if (self.top_y + self.diff_y + self.cropHandler.offsetHeight > self.cropImage.offsetHeight) {
26619
26724
  self.diff_y = self.cropImage.offsetHeight - self.top_y - self.cropHandler.offsetHeight;
26620
26725
  }
26621
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, 'top', self.top_y + self.diff_y);
26726
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, 'top', self.top_y + self.diff_y);
26622
26727
  }
26623
26728
  this.j.e.fire(self.cropHandler, 'updatesize');
26624
26729
  }
@@ -26679,7 +26784,7 @@ const TABS = {
26679
26784
  wn = nw * (h / nh);
26680
26785
  hn = h;
26681
26786
  }
26682
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.crop_box, {
26787
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.crop_box, {
26683
26788
  width: wn,
26684
26789
  height: hn
26685
26790
  });
@@ -26697,8 +26802,8 @@ const TABS = {
26697
26802
  } else {
26698
26803
  this.new_h = ImageEditor_1.calcValueByPercent(h, this.o.cropDefaultHeight);
26699
26804
  }
26700
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, {
26701
- backgroundImage: 'url(' + (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(this.cropImage, 'src') + ')',
26805
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, {
26806
+ backgroundImage: 'url(' + (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(this.cropImage, 'src') + ')',
26702
26807
  width: this.new_w,
26703
26808
  height: this.new_h,
26704
26809
  left: w / 2 - this.new_w / 2,
@@ -26711,8 +26816,8 @@ const TABS = {
26711
26816
  return;
26712
26817
  }
26713
26818
  const ratioX = this.cropImage.offsetWidth / this.naturalWidth, ratioY = this.cropImage.offsetHeight / this.naturalHeight;
26714
- this.cropBox.x = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, 'left') / ratioX;
26715
- this.cropBox.y = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(this.cropHandler, 'top') / ratioY;
26819
+ this.cropBox.x = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, 'left') / ratioX;
26820
+ this.cropBox.y = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(this.cropHandler, 'top') / ratioY;
26716
26821
  this.cropBox.w = this.cropHandler.offsetWidth / ratioX;
26717
26822
  this.cropBox.h = this.cropHandler.offsetHeight / ratioY;
26718
26823
  this.sizes.textContent = this.cropBox.w.toFixed(0) + 'x' + this.cropBox.h.toFixed(0);
@@ -26723,7 +26828,7 @@ const TABS = {
26723
26828
  };
26724
26829
  this.setHandlers = ()=>{
26725
26830
  const self = this;
26726
- const { widthInput, heightInput } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
26831
+ const { widthInput, heightInput } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
26727
26832
  self.j.e.on([
26728
26833
  self.editor.querySelector('.jodit_bottomright'),
26729
26834
  self.cropHandler
@@ -26732,11 +26837,11 @@ const TABS = {
26732
26837
  self.showCrop();
26733
26838
  this.j.e.fire(self.cropHandler, 'updatesize');
26734
26839
  });
26735
- self.j.e.on((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(this.editor.querySelectorAll(`.${jie}__slider-title`)), 'click', this.onTitleModeClick).on([
26840
+ 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([
26736
26841
  widthInput,
26737
26842
  heightInput
26738
26843
  ], 'input', this.onChangeSizeInput);
26739
- const { keepAspectRatioResize, keepAspectRatioCrop } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
26844
+ const { keepAspectRatioResize, keepAspectRatioCrop } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
26740
26845
  if (keepAspectRatioResize) {
26741
26846
  keepAspectRatioResize.addEventListener('change', ()=>{
26742
26847
  this.resizeUseRatio = keepAspectRatioResize.checked;
@@ -26748,7 +26853,7 @@ const TABS = {
26748
26853
  });
26749
26854
  }
26750
26855
  self.j.e.on(self.resizeHandler, 'updatesize', ()=>{
26751
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.resizeHandler, {
26856
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.resizeHandler, {
26752
26857
  top: 0,
26753
26858
  left: 0,
26754
26859
  width: self.image.offsetWidth || self.naturalWidth,
@@ -26759,7 +26864,7 @@ const TABS = {
26759
26864
  if (!self.cropImage) {
26760
26865
  return;
26761
26866
  }
26762
- 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;
26867
+ 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;
26763
26868
  if (new_x < 0) {
26764
26869
  new_x = 0;
26765
26870
  }
@@ -26778,7 +26883,7 @@ const TABS = {
26778
26883
  new_width = new_height * self.ratio;
26779
26884
  }
26780
26885
  }
26781
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.cropHandler, {
26886
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.cropHandler, {
26782
26887
  width: new_width,
26783
26888
  height: new_height,
26784
26889
  left: new_x,
@@ -26797,7 +26902,7 @@ const TABS = {
26797
26902
  switch(button){
26798
26903
  case self.buttons.saveas:
26799
26904
  self.j.prompt('Enter new name', 'Save in new file', (name)=>{
26800
- if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(name)) {
26905
+ if (!(0,_core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_4__.trim)(name)) {
26801
26906
  self.j.alert('The name should not be empty');
26802
26907
  return false;
26803
26908
  }
@@ -26813,7 +26918,7 @@ const TABS = {
26813
26918
  break;
26814
26919
  case self.buttons.reset:
26815
26920
  if (self.activeTab === TABS.resize) {
26816
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.css)(self.image, {
26921
+ (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_6__.css)(self.image, {
26817
26922
  width: null,
26818
26923
  height: null
26819
26924
  });
@@ -26828,18 +26933,24 @@ const TABS = {
26828
26933
  });
26829
26934
  });
26830
26935
  };
26831
- this.options = editor && editor.o && editor.o.imageeditor ? editor.o.imageeditor : _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.defaultOptions.imageeditor;
26936
+ this.options = editor && editor.o && editor.o.imageeditor ? editor.o.imageeditor : _config_js__WEBPACK_IMPORTED_MODULE_10__.Config.defaultOptions.imageeditor;
26832
26937
  const o = this.options;
26833
26938
  this.resizeUseRatio = o.resizeUseRatio;
26834
26939
  this.cropUseRatio = o.cropUseRatio;
26835
26940
  this.buttons = {
26836
- reset: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__.Button)(this.j, 'update', 'Reset'),
26837
- save: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__.Button)(this.j, 'save', 'Save'),
26838
- saveas: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_4__.Button)(this.j, 'save', 'Save as ...')
26941
+ reset: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__.Button)(this.j, 'update', 'Reset'),
26942
+ save: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__.Button)(this.j, 'save', 'Save'),
26943
+ saveas: (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_9__.Button)(this.j, {
26944
+ icon: {
26945
+ name: 'save'
26946
+ },
26947
+ name: 'save-as',
26948
+ text: 'Save as ...'
26949
+ })
26839
26950
  };
26840
26951
  this.activeTab = o.resize ? TABS.resize : TABS.crop;
26841
- this.editor = (0,_templates_form_js__WEBPACK_IMPORTED_MODULE_7__.form)(this.j, this.options);
26842
- const { resizeBox, cropBox } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.refs)(this.editor);
26952
+ this.editor = (0,_templates_form_js__WEBPACK_IMPORTED_MODULE_12__.form)(this.j, this.options);
26953
+ const { resizeBox, cropBox } = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_7__.refs)(this.editor);
26843
26954
  this.resize_box = resizeBox;
26844
26955
  this.crop_box = cropBox;
26845
26956
  this.sizes = this.editor.querySelector(`.${jie}__area.${jie}__area_crop .jodit-image-editor__sizes`);
@@ -26904,7 +27015,7 @@ ImageEditor = ImageEditor_1 = __decorate([
26904
27015
  /**
26905
27016
  * Open Image Editor
26906
27017
  */ function openImageEditor(href, name, path, source, onSuccess, onFailed) {
26907
- 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)=>{
27018
+ 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)=>{
26908
27019
  if (ok) {
26909
27020
  success();
26910
27021
  if (onSuccess) {
@@ -33653,7 +33764,8 @@ let UIGroup = UIGroup_1 = class UIGroup extends _element_js__WEBPACK_IMPORTED_MO
33653
33764
  return 'UIGroup';
33654
33765
  }
33655
33766
  getRole() {
33656
- return 'list';
33767
+ var _a;
33768
+ return ((_a = this.options) === null || _a === void 0 ? void 0 : _a.role) || 'list';
33657
33769
  }
33658
33770
  /**
33659
33771
  * All group children
@@ -41597,6 +41709,13 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
41597
41709
  getRole() {
41598
41710
  return 'listitem';
41599
41711
  }
41712
+ updateAriaLabel() {
41713
+ super.updateAriaLabel();
41714
+ if (this.trigger) {
41715
+ const i8nTooltip = this.state.tooltip ? this.jodit.i18n(this.state.tooltip) : null;
41716
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-label', i8nTooltip);
41717
+ }
41718
+ }
41600
41719
  /**
41601
41720
  * Get parent toolbar
41602
41721
  */ get toolbar() {
@@ -41670,7 +41789,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
41670
41789
  value: this
41671
41790
  });
41672
41791
  container.appendChild(button);
41673
- const trigger = this.j.c.fromHTML(`<span role="trigger" class="${cn}__trigger">${_core_ui_icon_js__WEBPACK_IMPORTED_MODULE_18__.Icon.get('chevron')}</span>`);
41792
+ 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>`);
41674
41793
  // For caching
41675
41794
  button.appendChild(trigger);
41676
41795
  return container;
@@ -41729,6 +41848,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
41729
41848
  return;
41730
41849
  }
41731
41850
  const { control: ctr } = this;
41851
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-expanded', true);
41732
41852
  e.buffer = {
41733
41853
  actionTrigger: this
41734
41854
  };
@@ -41838,6 +41958,9 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
41838
41958
  this.openedPopup.close();
41839
41959
  this.openedPopup.destruct();
41840
41960
  this.openedPopup = null;
41961
+ if (this.trigger) {
41962
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-expanded', false);
41963
+ }
41841
41964
  }
41842
41965
  }
41843
41966
  /**
@@ -45713,7 +45836,7 @@ __webpack_require__.r(__webpack_exports__);
45713
45836
  * ```
45714
45837
  * @packageDocumentation
45715
45838
  * @module constants
45716
- */ const APP_VERSION = "4.9.22";
45839
+ */ const APP_VERSION = "4.9.27";
45717
45840
  // prettier-ignore
45718
45841
  const ES = "es2015";
45719
45842
  const IS_ES_MODERN = true;
@@ -46364,11 +46487,13 @@ ToolbarSelect = __decorate([
46364
46487
  /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
46365
46488
  /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
46366
46489
  /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(580);
46367
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
46368
- /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50911);
46369
- /* harmony import */ var _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80870);
46370
- /* harmony import */ var _modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21491);
46371
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(86012);
46490
+ /* harmony import */ var _core_helpers_string_trim_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49055);
46491
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29960);
46492
+ /* harmony import */ var _core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(76078);
46493
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50911);
46494
+ /* harmony import */ var _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80870);
46495
+ /* harmony import */ var _modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21491);
46496
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(86012);
46372
46497
  function _define_property(obj, key, value) {
46373
46498
  if (key in obj) {
46374
46499
  Object.defineProperty(obj, key, {
@@ -46409,12 +46534,15 @@ function _object_spread(target) {
46409
46534
 
46410
46535
 
46411
46536
 
46537
+
46538
+
46412
46539
  /**
46413
46540
  * Show a path to a current element in status bar
46414
- */ class xpath extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugin {
46541
+ */ class xpath extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_6__.Plugin {
46415
46542
  afterInit() {
46416
46543
  if (this.j.o.showXPathInStatusbar) {
46417
46544
  this.container = this.j.c.div('jodit-xpath');
46545
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(this.container, 'role', 'list');
46418
46546
  const init = ()=>{
46419
46547
  if (!this.j.o.showXPathInStatusbar || !this.container) {
46420
46548
  return;
@@ -46429,7 +46557,7 @@ function _object_spread(target) {
46429
46557
  this.appendSelectAll();
46430
46558
  }
46431
46559
  };
46432
- this.j.e.off('.xpath').on('mouseup.xpath change.xpath keydown.xpath changeSelection.xpath', this.calcPath).on('afterSetMode.xpath afterInit.xpath changePlace.xpath', init);
46560
+ this.j.e.off('.xpath').on('pointerup.xpath change.xpath keydown.xpath changeSelection.xpath', this.calcPath).on('afterSetMode.xpath afterInit.xpath changePlace.xpath', init);
46433
46561
  init();
46434
46562
  this.calcPath();
46435
46563
  }
@@ -46448,7 +46576,7 @@ function _object_spread(target) {
46448
46576
  super(...arguments);
46449
46577
  this.onContext = (bindElement, event)=>{
46450
46578
  if (!this.menu) {
46451
- this.menu = new _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_5__.ContextMenu(this.j);
46579
+ this.menu = new _modules_context_menu_context_menu_js__WEBPACK_IMPORTED_MODULE_7__.ContextMenu(this.j);
46452
46580
  }
46453
46581
  this.menu.show(event.clientX, event.clientY, [
46454
46582
  {
@@ -46475,7 +46603,7 @@ function _object_spread(target) {
46475
46603
  };
46476
46604
  this.onSelectPath = (bindElement, event)=>{
46477
46605
  this.j.s.focus();
46478
- const path = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(event.target, '-path') || '/';
46606
+ const path = (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_4__.attr)(event.target, '-path') || '/';
46479
46607
  if (path === '/') {
46480
46608
  this.j.execCommand('selectall');
46481
46609
  return false;
@@ -46491,7 +46619,7 @@ function _object_spread(target) {
46491
46619
  return false;
46492
46620
  };
46493
46621
  this.tpl = (bindElement, path, name, title)=>{
46494
- 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>`);
46622
+ 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>`);
46495
46623
  const a = item.firstChild;
46496
46624
  this.j.e.on(a, 'click', this.onSelectPath.bind(this, bindElement)).on(a, 'contextmenu', this.onContext.bind(this, bindElement));
46497
46625
  return item;
@@ -46504,7 +46632,7 @@ function _object_spread(target) {
46504
46632
  };
46505
46633
  this.appendSelectAll = ()=>{
46506
46634
  this.removeSelectAll();
46507
- this.selectAllButton = (0,_modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_6__.makeButton)(this.j, _object_spread({
46635
+ this.selectAllButton = (0,_modules_toolbar_factory_js__WEBPACK_IMPORTED_MODULE_8__.makeButton)(this.j, _object_spread({
46508
46636
  name: 'selectall'
46509
46637
  }, this.j.o.controls.selectall));
46510
46638
  this.selectAllButton.state.size = 'tiny';
@@ -46523,7 +46651,7 @@ function _object_spread(target) {
46523
46651
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.up(current, (elm)=>{
46524
46652
  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)) {
46525
46653
  name = elm.nodeName.toLowerCase();
46526
- xpth = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.getXPathByElement)(elm, this.j.editor).replace(/^\//, '');
46654
+ xpth = (0,_core_helpers_utils_selector_js__WEBPACK_IMPORTED_MODULE_5__.getXPathByElement)(elm, this.j.editor).replace(/^\//, '');
46527
46655
  li = this.tpl(elm, xpth, name, this.j.i18n('Select %s', name));
46528
46656
  this.container && this.container.insertBefore(li, this.container.firstChild);
46529
46657
  }