jodit-pro 4.15.12 → 4.15.14

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 (325) hide show
  1. package/es2015/jodit.css +2 -2
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +13 -13
  4. package/es2015/jodit.js +289 -65
  5. package/es2015/jodit.min.css +1 -1
  6. package/es2015/jodit.min.js +10 -10
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  11. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  12. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  13. package/es2015/plugins/backup/backup.css +1 -1
  14. package/es2015/plugins/backup/backup.js +1 -1
  15. package/es2015/plugins/backup/backup.min.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.css +1 -1
  17. package/es2015/plugins/button-generator/button-generator.js +1 -1
  18. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  19. package/es2015/plugins/change-case/change-case.js +1 -1
  20. package/es2015/plugins/change-case/change-case.min.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.css +1 -1
  22. package/es2015/plugins/color-picker/color-picker.js +1 -1
  23. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  24. package/es2015/plugins/emoji/emoji.css +1 -1
  25. package/es2015/plugins/emoji/emoji.js +1 -1
  26. package/es2015/plugins/emoji/emoji.min.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  29. package/es2015/plugins/finder/finder.css +1 -1
  30. package/es2015/plugins/finder/finder.js +1 -1
  31. package/es2015/plugins/finder/finder.min.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.css +1 -1
  33. package/es2015/plugins/google-maps/google-maps.js +1 -1
  34. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  35. package/es2015/plugins/google-search/google-search.js +1 -1
  36. package/es2015/plugins/google-search/google-search.min.js +1 -1
  37. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  45. package/es2015/plugins/keyboard/keyboard.css +1 -1
  46. package/es2015/plugins/keyboard/keyboard.js +1 -1
  47. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  48. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  49. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  50. package/es2015/plugins/page-break/page-break.js +1 -1
  51. package/es2015/plugins/page-break/page-break.min.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.css +1 -1
  53. package/es2015/plugins/paste-code/paste-code.js +1 -1
  54. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  55. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  56. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  57. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  58. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  59. package/es2015/plugins/style/style.css +1 -1
  60. package/es2015/plugins/style/style.js +1 -1
  61. package/es2015/plugins/style/style.min.js +1 -1
  62. package/es2015/plugins/templates/templates.css +1 -1
  63. package/es2015/plugins/templates/templates.js +1 -1
  64. package/es2015/plugins/templates/templates.min.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.css +1 -1
  66. package/es2015/plugins/todo-list/todo-list.js +1 -1
  67. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  68. package/es2015/plugins/translate/translate.css +1 -1
  69. package/es2015/plugins/translate/translate.js +1 -1
  70. package/es2015/plugins/translate/translate.min.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.css +1 -1
  72. package/es2015/plugins/tune-block/tune-block.js +1 -1
  73. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  74. package/es2018/jodit.fat.min.css +1 -1
  75. package/es2018/jodit.fat.min.js +9 -9
  76. package/es2018/jodit.min.css +1 -1
  77. package/es2018/jodit.min.js +8 -8
  78. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  79. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  80. package/es2018/plugins/backup/backup.min.js +1 -1
  81. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  82. package/es2018/plugins/change-case/change-case.min.js +1 -1
  83. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  84. package/es2018/plugins/emoji/emoji.min.js +1 -1
  85. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  86. package/es2018/plugins/finder/finder.min.js +1 -1
  87. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  88. package/es2018/plugins/google-search/google-search.min.js +1 -1
  89. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  90. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  91. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  92. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  93. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  94. package/es2018/plugins/page-break/page-break.min.js +1 -1
  95. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  96. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  97. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  98. package/es2018/plugins/style/style.min.js +1 -1
  99. package/es2018/plugins/templates/templates.min.js +1 -1
  100. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  101. package/es2018/plugins/translate/translate.min.js +1 -1
  102. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  103. package/es2021/jodit.css +2 -2
  104. package/es2021/jodit.fat.min.css +1 -1
  105. package/es2021/jodit.fat.min.js +10 -10
  106. package/es2021/jodit.js +289 -65
  107. package/es2021/jodit.min.css +1 -1
  108. package/es2021/jodit.min.js +9 -9
  109. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  110. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  112. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  113. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  114. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  115. package/es2021/plugins/backup/backup.css +1 -1
  116. package/es2021/plugins/backup/backup.js +1 -1
  117. package/es2021/plugins/backup/backup.min.js +1 -1
  118. package/es2021/plugins/button-generator/button-generator.css +1 -1
  119. package/es2021/plugins/button-generator/button-generator.js +1 -1
  120. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  121. package/es2021/plugins/change-case/change-case.js +1 -1
  122. package/es2021/plugins/change-case/change-case.min.js +1 -1
  123. package/es2021/plugins/color-picker/color-picker.css +1 -1
  124. package/es2021/plugins/color-picker/color-picker.js +1 -1
  125. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  126. package/es2021/plugins/emoji/emoji.css +1 -1
  127. package/es2021/plugins/emoji/emoji.js +1 -1
  128. package/es2021/plugins/emoji/emoji.min.js +1 -1
  129. package/es2021/plugins/export-docs/export-docs.js +1 -1
  130. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  131. package/es2021/plugins/finder/finder.css +1 -1
  132. package/es2021/plugins/finder/finder.js +1 -1
  133. package/es2021/plugins/finder/finder.min.js +1 -1
  134. package/es2021/plugins/google-maps/google-maps.css +1 -1
  135. package/es2021/plugins/google-maps/google-maps.js +1 -1
  136. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  137. package/es2021/plugins/google-search/google-search.js +1 -1
  138. package/es2021/plugins/google-search/google-search.min.js +1 -1
  139. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  140. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  141. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  142. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  143. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  144. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  145. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  146. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  147. package/es2021/plugins/keyboard/keyboard.css +1 -1
  148. package/es2021/plugins/keyboard/keyboard.js +1 -1
  149. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  150. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  151. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  152. package/es2021/plugins/page-break/page-break.js +1 -1
  153. package/es2021/plugins/page-break/page-break.min.js +1 -1
  154. package/es2021/plugins/paste-code/paste-code.css +1 -1
  155. package/es2021/plugins/paste-code/paste-code.js +1 -1
  156. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  157. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  158. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  159. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  160. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  161. package/es2021/plugins/style/style.css +1 -1
  162. package/es2021/plugins/style/style.js +1 -1
  163. package/es2021/plugins/style/style.min.js +1 -1
  164. package/es2021/plugins/templates/templates.css +1 -1
  165. package/es2021/plugins/templates/templates.js +1 -1
  166. package/es2021/plugins/templates/templates.min.js +1 -1
  167. package/es2021/plugins/todo-list/todo-list.css +1 -1
  168. package/es2021/plugins/todo-list/todo-list.js +1 -1
  169. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  170. package/es2021/plugins/translate/translate.css +1 -1
  171. package/es2021/plugins/translate/translate.js +1 -1
  172. package/es2021/plugins/translate/translate.min.js +1 -1
  173. package/es2021/plugins/tune-block/tune-block.css +1 -1
  174. package/es2021/plugins/tune-block/tune-block.js +1 -1
  175. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  176. package/es2021.en/jodit.css +2 -2
  177. package/es2021.en/jodit.fat.min.css +1 -1
  178. package/es2021.en/jodit.fat.min.js +8 -8
  179. package/es2021.en/jodit.js +289 -65
  180. package/es2021.en/jodit.min.css +1 -1
  181. package/es2021.en/jodit.min.js +6 -6
  182. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  183. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  184. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  185. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  186. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  187. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  188. package/es2021.en/plugins/backup/backup.css +1 -1
  189. package/es2021.en/plugins/backup/backup.js +1 -1
  190. package/es2021.en/plugins/backup/backup.min.js +1 -1
  191. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  192. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  193. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  194. package/es2021.en/plugins/change-case/change-case.js +1 -1
  195. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  196. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  197. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  198. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  199. package/es2021.en/plugins/emoji/emoji.css +1 -1
  200. package/es2021.en/plugins/emoji/emoji.js +1 -1
  201. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  202. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  203. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  204. package/es2021.en/plugins/finder/finder.css +1 -1
  205. package/es2021.en/plugins/finder/finder.js +1 -1
  206. package/es2021.en/plugins/finder/finder.min.js +1 -1
  207. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  208. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  209. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  210. package/es2021.en/plugins/google-search/google-search.js +1 -1
  211. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  212. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  213. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  214. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  215. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  216. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  217. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  218. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  219. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  220. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  221. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  222. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  223. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  224. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  225. package/es2021.en/plugins/page-break/page-break.js +1 -1
  226. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  227. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  228. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  229. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  230. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  231. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  232. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  233. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  234. package/es2021.en/plugins/style/style.css +1 -1
  235. package/es2021.en/plugins/style/style.js +1 -1
  236. package/es2021.en/plugins/style/style.min.js +1 -1
  237. package/es2021.en/plugins/templates/templates.css +1 -1
  238. package/es2021.en/plugins/templates/templates.js +1 -1
  239. package/es2021.en/plugins/templates/templates.min.js +1 -1
  240. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  241. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  242. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  243. package/es2021.en/plugins/translate/translate.css +1 -1
  244. package/es2021.en/plugins/translate/translate.js +1 -1
  245. package/es2021.en/plugins/translate/translate.min.js +1 -1
  246. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  247. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  248. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  249. package/es5/jodit.css +3 -3
  250. package/es5/jodit.fat.min.css +1 -1
  251. package/es5/jodit.fat.min.js +2 -2
  252. package/es5/jodit.js +487 -65
  253. package/es5/jodit.min.css +3 -3
  254. package/es5/jodit.min.js +2 -2
  255. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  256. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  257. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  258. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  259. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  260. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  261. package/es5/plugins/backup/backup.css +1 -1
  262. package/es5/plugins/backup/backup.js +1 -1
  263. package/es5/plugins/backup/backup.min.js +1 -1
  264. package/es5/plugins/button-generator/button-generator.css +1 -1
  265. package/es5/plugins/button-generator/button-generator.js +1 -1
  266. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  267. package/es5/plugins/change-case/change-case.js +1 -1
  268. package/es5/plugins/change-case/change-case.min.js +1 -1
  269. package/es5/plugins/color-picker/color-picker.css +1 -1
  270. package/es5/plugins/color-picker/color-picker.js +1 -1
  271. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  272. package/es5/plugins/emoji/emoji.css +1 -1
  273. package/es5/plugins/emoji/emoji.js +1 -1
  274. package/es5/plugins/emoji/emoji.min.js +1 -1
  275. package/es5/plugins/export-docs/export-docs.js +1 -1
  276. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  277. package/es5/plugins/finder/finder.css +1 -1
  278. package/es5/plugins/finder/finder.js +1 -1
  279. package/es5/plugins/finder/finder.min.js +1 -1
  280. package/es5/plugins/google-maps/google-maps.css +1 -1
  281. package/es5/plugins/google-maps/google-maps.js +1 -1
  282. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  283. package/es5/plugins/google-search/google-search.js +1 -1
  284. package/es5/plugins/google-search/google-search.min.js +1 -1
  285. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  286. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  287. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  288. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  289. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  290. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  291. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  292. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  293. package/es5/plugins/keyboard/keyboard.css +1 -1
  294. package/es5/plugins/keyboard/keyboard.js +1 -1
  295. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  296. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  297. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  298. package/es5/plugins/page-break/page-break.js +1 -1
  299. package/es5/plugins/page-break/page-break.min.js +1 -1
  300. package/es5/plugins/paste-code/paste-code.css +1 -1
  301. package/es5/plugins/paste-code/paste-code.js +1 -1
  302. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  303. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  304. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  305. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  306. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  307. package/es5/plugins/style/style.css +1 -1
  308. package/es5/plugins/style/style.js +1 -1
  309. package/es5/plugins/style/style.min.js +1 -1
  310. package/es5/plugins/templates/templates.css +1 -1
  311. package/es5/plugins/templates/templates.js +1 -1
  312. package/es5/plugins/templates/templates.min.js +1 -1
  313. package/es5/plugins/todo-list/todo-list.css +1 -1
  314. package/es5/plugins/todo-list/todo-list.js +1 -1
  315. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  316. package/es5/plugins/translate/translate.css +1 -1
  317. package/es5/plugins/translate/translate.js +1 -1
  318. package/es5/plugins/translate/translate.min.js +1 -1
  319. package/es5/plugins/tune-block/tune-block.css +1 -1
  320. package/es5/plugins/tune-block/tune-block.js +1 -1
  321. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  322. package/es5/polyfills.fat.min.js +1 -1
  323. package/es5/polyfills.js +1 -1
  324. package/es5/polyfills.min.js +1 -1
  325. package/package.json +1 -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.15.12
4
+ * Version: v4.15.14
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -617,7 +617,8 @@ let ConfigPrototype = {};
617
617
  * When enabled, the editor displays both the WYSIWYG view and the source-code view side by side.
618
618
  */ this.useSplitMode = false;
619
619
  /**
620
- * The colors in HEX representation to select a color for the background and for the text in colorpicker
620
+ * The colors in HEX representation to select a color for the background and for the text in colorpicker.
621
+ * Each group is laid out in rows of `--jd-color-picker-columns` colors (10 by default).
621
622
  *
622
623
  * ```javascript
623
624
  * Jodit.make('#editor', {
@@ -1771,7 +1772,7 @@ __webpack_require__.r(__webpack_exports__);
1771
1772
  * ```
1772
1773
  * @packageDocumentation
1773
1774
  * @module constants
1774
- */ const APP_VERSION = "4.15.12";
1775
+ */ const APP_VERSION = "4.15.14";
1775
1776
  // prettier-ignore
1776
1777
  const ES = "es2015";
1777
1778
  const IS_ES_MODERN = true;
@@ -1822,6 +1823,8 @@ const KEY_TAB = 'Tab';
1822
1823
  const KEY_ENTER = 'Enter';
1823
1824
  const KEY_ESC = 'Escape';
1824
1825
  const KEY_ALT = 'Alt';
1826
+ const KEY_HOME = 'Home';
1827
+ const KEY_END = 'End';
1825
1828
  const KEY_LEFT = 'ArrowLeft';
1826
1829
  const KEY_UP = 'ArrowUp';
1827
1830
  const KEY_RIGHT = 'ArrowRight';
@@ -2015,9 +2018,11 @@ const PASSIVE_EVENTS = new Set([
2015
2018
  /* harmony export */ "KEY_BACKSPACE", 0, /* binding */ KEY_BACKSPACE,
2016
2019
  /* harmony export */ "KEY_DELETE", 0, /* binding */ KEY_DELETE,
2017
2020
  /* harmony export */ "KEY_DOWN", 0, /* binding */ KEY_DOWN,
2021
+ /* harmony export */ "KEY_END", 0, /* binding */ KEY_END,
2018
2022
  /* harmony export */ "KEY_ENTER", 0, /* binding */ KEY_ENTER,
2019
2023
  /* harmony export */ "KEY_ESC", 0, /* binding */ KEY_ESC,
2020
2024
  /* harmony export */ "KEY_F3", 0, /* binding */ KEY_F3,
2025
+ /* harmony export */ "KEY_HOME", 0, /* binding */ KEY_HOME,
2021
2026
  /* harmony export */ "KEY_LEFT", 0, /* binding */ KEY_LEFT,
2022
2027
  /* harmony export */ "KEY_META", 0, /* binding */ KEY_META,
2023
2028
  /* harmony export */ "KEY_RIGHT", 0, /* binding */ KEY_RIGHT,
@@ -30921,6 +30926,19 @@ function _object_spread_props(target, source) {
30921
30926
 
30922
30927
 
30923
30928
 
30929
+ const INPUT_TAGS = new Set([
30930
+ 'input',
30931
+ 'textarea',
30932
+ 'select'
30933
+ ]);
30934
+ const FOCUSABLE_SELECTOR = [
30935
+ 'button:not([disabled])',
30936
+ 'a[href]',
30937
+ 'input:not([disabled]):not([type="hidden"])',
30938
+ 'select:not([disabled])',
30939
+ 'textarea:not([disabled])',
30940
+ '[tabindex]:not([tabindex="-1"])'
30941
+ ].join(',');
30924
30942
  let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_17__.UIButton {
30925
30943
  className() {
30926
30944
  return 'ToolbarButton';
@@ -31114,7 +31132,14 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
31114
31132
  }
31115
31133
  }
31116
31134
  onTriggerKeyDown(e) {
31117
- if (this.state.disabled || ![
31135
+ if (this.state.disabled) {
31136
+ return;
31137
+ }
31138
+ if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_DOWN) {
31139
+ this.onButtonKeyDown(e);
31140
+ return;
31141
+ }
31142
+ if (![
31118
31143
  _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_ENTER,
31119
31144
  _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_SPACE,
31120
31145
  ' '
@@ -31124,6 +31149,66 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
31124
31149
  e.preventDefault();
31125
31150
  this.trigger.click();
31126
31151
  }
31152
+ /**
31153
+ * `ArrowDown` on a button with a trigger opens its dropdown and moves the
31154
+ * focus into it, like the WAI-ARIA menu button pattern
31155
+ */ onButtonKeyDown(e) {
31156
+ var _a;
31157
+ if (e.key !== _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_DOWN || this.state.disabled || !this.state.hasTrigger || e.altKey || e.ctrlKey || e.metaKey) {
31158
+ return;
31159
+ }
31160
+ e.preventDefault();
31161
+ e.stopPropagation();
31162
+ if (!this.openedPopup) {
31163
+ this.trigger.click();
31164
+ }
31165
+ (_a = this.__popupFocusables()[0]) === null || _a === void 0 ? void 0 : _a.focus();
31166
+ }
31167
+ /**
31168
+ * Inside the dropdown: `ArrowDown`/`ArrowUp` walk the items, `Escape` and
31169
+ * `ArrowUp` on the first item close it and give the focus back to the button
31170
+ */ __onPopupKeyDown(e) {
31171
+ if (!this.openedPopup || e.altKey || e.ctrlKey || e.metaKey) {
31172
+ return;
31173
+ }
31174
+ const target = e.target;
31175
+ // A text field keeps the arrow keys for itself
31176
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_6__.Dom.isTag(target, INPUT_TAGS) && e.key !== _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_ESC) {
31177
+ return;
31178
+ }
31179
+ const items = this.__popupFocusables(), index = items.indexOf(target);
31180
+ switch(e.key){
31181
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_ESC:
31182
+ this.__closePopup();
31183
+ break;
31184
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_UP:
31185
+ if (index <= 0) {
31186
+ this.__closePopup();
31187
+ } else {
31188
+ items[index - 1].focus();
31189
+ }
31190
+ break;
31191
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_DOWN:
31192
+ if (!items.length) {
31193
+ return;
31194
+ }
31195
+ items[(index + 1) % items.length].focus();
31196
+ break;
31197
+ default:
31198
+ return;
31199
+ }
31200
+ e.preventDefault();
31201
+ e.stopPropagation();
31202
+ }
31203
+ /**
31204
+ * Visible controls of the opened dropdown that can take the focus
31205
+ */ __popupFocusables() {
31206
+ const popup = this.openedPopup;
31207
+ if (!popup) {
31208
+ return [];
31209
+ }
31210
+ return Array.from(popup.container.querySelectorAll(FOCUSABLE_SELECTOR)).filter((elm)=>Boolean(elm.offsetParent));
31211
+ }
31127
31212
  /**
31128
31213
  * Create an open popup list
31129
31214
  */ __openControlList(control) {
@@ -31193,7 +31278,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
31193
31278
  openPopup() {
31194
31279
  this.__closePopup();
31195
31280
  this.openedPopup = new _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_20__.Popup(this.j, false);
31196
- this.j.e.on(this.ow, 'mousedown touchstart', this.onOutsideClick).on('escape closeAllPopups', this.onOutsideClick);
31281
+ this.j.e.on(this.ow, 'mousedown touchstart', this.onOutsideClick).on('escape closeAllPopups', this.onOutsideClick).on(this.openedPopup.container, 'keydown', this.__onPopupKeyDown);
31197
31282
  return this.openedPopup;
31198
31283
  }
31199
31284
  __closePopup() {
@@ -31209,12 +31294,18 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
31209
31294
  // throws NotFoundError. See #1458
31210
31295
  this.openedPopup = null;
31211
31296
  this.j.e.off(this.ow, 'mousedown touchstart', this.onOutsideClick).off('escape closeAllPopups', this.onOutsideClick);
31297
+ // The keyboard brought the focus into the dropdown: give it back to
31298
+ // the button, otherwise it would fall out to the document
31299
+ const { activeElement } = this.od, hadFocus = activeElement && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_6__.Dom.isOrContains(popup.container, activeElement);
31212
31300
  this.state.activated = false;
31213
31301
  popup.close();
31214
31302
  popup.destruct();
31215
31303
  if (this.trigger) {
31216
31304
  (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.trigger, 'aria-expanded', false);
31217
31305
  }
31306
+ if (hadFocus) {
31307
+ this.focus();
31308
+ }
31218
31309
  }
31219
31310
  /**
31220
31311
  * Click handler
@@ -31309,6 +31400,12 @@ __decorate([
31309
31400
  __decorate([
31310
31401
  (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_5__.watch)('trigger:keydown')
31311
31402
  ], ToolbarButton.prototype, "onTriggerKeyDown", null);
31403
+ __decorate([
31404
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_5__.watch)('button:keydown')
31405
+ ], ToolbarButton.prototype, "onButtonKeyDown", null);
31406
+ __decorate([
31407
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_2__.autobind
31408
+ ], ToolbarButton.prototype, "__onPopupKeyDown", null);
31312
31409
  __decorate([
31313
31410
  _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_2__.autobind
31314
31411
  ], ToolbarButton.prototype, "onOutsideClick", null);
@@ -32518,7 +32615,7 @@ _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', _palette_svg_
32518
32615
  /**
32519
32616
  * Build color picker
32520
32617
  *
32521
- * @param callback - Callback 'function (color) \{\}'
32618
+ * @param callback - Callback 'function (color) \{\}'. The remove button calls it with an empty string
32522
32619
  * @param coldColor - Color value ex. #fff or rgb(123, 123, 123) or rgba(123, 123, 123, 1)
32523
32620
  * @example
32524
32621
  * ```javascript
@@ -32547,7 +32644,10 @@ _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', _palette_svg_
32547
32644
  }
32548
32645
  return stack.join('');
32549
32646
  };
32550
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(form, editor.c.fromHTML(`<div class="${cn}__groups">${eachColor(editor.o.colors)}</div>`));
32647
+ // The group wrapper lays the colors out in rows, so a flat list needs one
32648
+ // too. See #1487
32649
+ const groups = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.isArray)(editor.o.colors) ? `<div class="${cn}__group">${eachColor(editor.o.colors)}</div>` : eachColor(editor.o.colors);
32650
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(form, editor.c.fromHTML(`<div class="${cn}__groups">${groups}</div>`));
32551
32651
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(form, editor.c.fromHTML(`<div data-ref="extra" class="${cn}__extra"></div>`));
32552
32652
  const { extra } = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.refs)(form);
32553
32653
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(extra, editor.c.fromHTML(`<div class="${cn}__hex"><input data-ref="hexInput" type="text" spellcheck="false" aria-label="HEX" placeholder="#FF0000" value="${valueHex || ''}"/></div>`));
@@ -32582,6 +32682,7 @@ _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', _palette_svg_
32582
32682
  e.stopPropagation();
32583
32683
  applyHexInput();
32584
32684
  });
32685
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(extra, editor.c.fromHTML(`<span class="${cn}__remove" data-color="" title="${editor.i18n('Remove')}">${editor.o.textIcons ? editor.i18n('Remove') : _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.get('eraser')}</span>`));
32585
32686
  if (editor.o.showBrowserColorPicker && (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.hasBrowserColorPicker)()) {
32586
32687
  _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(extra, editor.c.fromHTML(`<div class="${cn}__native">${iconPalette}<input type="color" value="#ffffff"/></div>`));
32587
32688
  editor.e.on(form, 'change', (e)=>{
@@ -32609,7 +32710,7 @@ _core_ui_index_js__WEBPACK_IMPORTED_MODULE_2__.Icon.set('palette', _palette_svg_
32609
32710
  if ((!target || !target.tagName || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(target, 'svg') || _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(target, 'path')) && target.parentNode) {
32610
32711
  target = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(target.parentNode, 'span', editor.editor);
32611
32712
  }
32612
- if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(target, 'span') || !target.classList.contains(cn + '__color-item')) {
32713
+ if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(target, 'span') || !target.classList.contains(cn + '__color-item') && !target.classList.contains(cn + '__remove')) {
32613
32714
  return;
32614
32715
  }
32615
32716
  const color = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.attr)(target, '-color') || '';
@@ -33839,11 +33940,12 @@ UiAiAssistant = __decorate([
33839
33940
  /* harmony import */ var _tab_tab_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(767);
33840
33941
  /* harmony import */ var _table_table_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(43003);
33841
33942
  /* harmony import */ var _table_keyboard_navigation_table_keyboard_navigation_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(72439);
33842
- /* harmony import */ var _video_video_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(26551);
33843
- /* harmony import */ var _wrap_nodes_wrap_nodes_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(72253);
33844
- /* harmony import */ var _dtd_dtd_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(65735);
33845
- /* harmony import */ var _xpath_xpath_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(83671);
33846
- /* harmony import */ var _speech_recognize_speech_recognize_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(3115);
33943
+ /* harmony import */ var _toolbar_navigation_toolbar_navigation_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(94529);
33944
+ /* harmony import */ var _video_video_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(26551);
33945
+ /* harmony import */ var _wrap_nodes_wrap_nodes_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(72253);
33946
+ /* harmony import */ var _dtd_dtd_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(65735);
33947
+ /* harmony import */ var _xpath_xpath_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(83671);
33948
+ /* harmony import */ var _speech_recognize_speech_recognize_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(3115);
33847
33949
  /*!
33848
33950
  * Jodit Editor (https://xdsoft.net/jodit/)
33849
33951
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -33913,6 +34015,7 @@ UiAiAssistant = __decorate([
33913
34015
 
33914
34016
 
33915
34017
 
34018
+
33916
34019
 
33917
34020
 
33918
34021
  // JODIT-START:FAT
@@ -35400,17 +35503,13 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('cleanHtml', clean
35400
35503
  /***/ 46776:
35401
35504
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
35402
35505
 
35403
- /* harmony import */ var _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12153);
35404
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6441);
35405
- /* harmony import */ var _eraser_svg_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44330);
35506
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6441);
35406
35507
  /*!
35407
35508
  * Jodit Editor (https://xdsoft.net/jodit/)
35408
35509
  * Released under MIT see LICENSE.txt in the project root for license information.
35409
35510
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
35410
35511
  */
35411
-
35412
-
35413
- _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
35512
+ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.cleanHTML = {
35414
35513
  timeout: 300,
35415
35514
  removeEmptyElements: true,
35416
35515
  fillEmptyParagraph: true,
@@ -35438,19 +35537,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
35438
35537
  ],
35439
35538
  disableCleanFilter: null
35440
35539
  };
35441
- _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.controls.eraser = {
35540
+ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.controls.eraser = {
35442
35541
  command: 'removeFormat',
35443
35542
  tooltip: 'Clear Formatting'
35444
35543
  };
35445
- _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_0__.Icon.set('eraser', _eraser_svg_js__WEBPACK_IMPORTED_MODULE_2__["default"]);
35446
-
35447
-
35448
- /***/ }),
35449
-
35450
- /***/ 44330:
35451
- /***/ (function(__unused_webpack_module, __webpack_exports__) {
35452
-
35453
- /* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <g fill=\"none\"> <path d=\"m4 12 10-9 7 7-10 10H7l-4-4a3 3 0 0 1 1-4Zm3-3 8 7m-4 4h10\"/> </g> </svg> ");
35454
35544
 
35455
35545
 
35456
35546
  /***/ }),
@@ -41899,8 +41989,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('indent', indent);
41899
41989
  /* harmony import */ var _size_size_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(45927);
41900
41990
  /* harmony import */ var _stat_stat_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(7309);
41901
41991
  /* harmony import */ var _table_table_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(43003);
41902
- /* harmony import */ var _wrap_nodes_wrap_nodes_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(72253);
41903
- /* harmony import */ var _dtd_dtd_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(65735);
41992
+ /* harmony import */ var _toolbar_navigation_toolbar_navigation_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(94529);
41993
+ /* harmony import */ var _wrap_nodes_wrap_nodes_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(72253);
41994
+ /* harmony import */ var _dtd_dtd_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(65735);
41904
41995
  /*!
41905
41996
  * Jodit Editor (https://xdsoft.net/jodit/)
41906
41997
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -41932,6 +42023,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('indent', indent);
41932
42023
 
41933
42024
 
41934
42025
 
42026
+
41935
42027
 
41936
42028
 
41937
42029
  /***/ }),
@@ -52909,6 +53001,127 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_0__.pluginSystem.add('table', table);
52909
53001
  /* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <g fill=\"none\"> <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2.5\"/><path d=\"M3 9h18M3 15h18M9 3v18M15 3v18\"/> </g> </svg> ");
52910
53002
 
52911
53003
 
53004
+ /***/ }),
53005
+
53006
+ /***/ 94529:
53007
+ /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
53008
+
53009
+ /* unused harmony export toolbarNavigation */
53010
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
53011
+ /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45219);
53012
+ /* harmony import */ var _core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37133);
53013
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2748);
53014
+ /* harmony import */ var _core_global_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(580);
53015
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29960);
53016
+ /* harmony import */ var _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50911);
53017
+ /*!
53018
+ * Jodit Editor (https://xdsoft.net/jodit/)
53019
+ * Released under MIT see LICENSE.txt in the project root for license information.
53020
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
53021
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
53022
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53023
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
53024
+ 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;
53025
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
53026
+ };
53027
+
53028
+
53029
+
53030
+
53031
+
53032
+
53033
+
53034
+ const INPUT_TAGS = new Set([
53035
+ 'input',
53036
+ 'textarea',
53037
+ 'select'
53038
+ ]);
53039
+ /**
53040
+ * Makes the toolbar reachable from the keyboard, as described by the WAI-ARIA
53041
+ * authoring practices for a `role="toolbar"` widget.
53042
+ *
53043
+ * The focus is moved programmatically, so this works whatever
53044
+ * {@link Config.allowTabNavigation} does with the tab order — including the
53045
+ * default, where the buttons take no part in the page tab order.
53046
+ */ class toolbarNavigation extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_6__.Plugin {
53047
+ /** @override */ afterInit(jodit) {
53048
+ jodit.registerCommand('focusToolbar', {
53049
+ hotkeys: 'alt+f10',
53050
+ exec: this.focusToolbar
53051
+ });
53052
+ }
53053
+ /** @override */ beforeDestruct() {}
53054
+ /**
53055
+ * Moves the focus to the first button of the toolbar.
53056
+ *
53057
+ * Bound to `Alt+F10` by default; remap it like any other command:
53058
+ * `commandToHotkeys: { focusToolbar: 'alt+0' }`
53059
+ */ focusToolbar() {
53060
+ const [first] = this.__buttons();
53061
+ first === null || first === void 0 ? void 0 : first.focus();
53062
+ return false;
53063
+ }
53064
+ /**
53065
+ * Arrow keys / `Home` / `End` walk the buttons, `Escape` leaves the toolbar
53066
+ */ onKeyDown(e) {
53067
+ if (e.defaultPrevented || e.altKey || e.ctrlKey || e.metaKey) {
53068
+ return;
53069
+ }
53070
+ const target = e.target;
53071
+ // A control that needs the arrow keys for itself
53072
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isTag(target, INPUT_TAGS) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_3__.Dom.isHTMLElement(target) && target.isContentEditable) {
53073
+ return;
53074
+ }
53075
+ const buttons = this.__buttons();
53076
+ if (!buttons.length) {
53077
+ return;
53078
+ }
53079
+ switch(e.key){
53080
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ESC:
53081
+ this.j.s.focus();
53082
+ break;
53083
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_HOME:
53084
+ buttons[0].focus();
53085
+ break;
53086
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_END:
53087
+ buttons[buttons.length - 1].focus();
53088
+ break;
53089
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_LEFT:
53090
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT:
53091
+ {
53092
+ const index = buttons.findIndex((button)=>button.container.contains(target));
53093
+ if (index === -1) {
53094
+ return;
53095
+ }
53096
+ const forward = e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT !== this.__isRtl(), next = index + (forward ? 1 : -1);
53097
+ buttons[(next + buttons.length) % buttons.length].focus();
53098
+ break;
53099
+ }
53100
+ default:
53101
+ return;
53102
+ }
53103
+ e.preventDefault();
53104
+ e.stopPropagation();
53105
+ return false;
53106
+ }
53107
+ /**
53108
+ * Toolbar buttons that can take the focus right now
53109
+ */ __buttons() {
53110
+ return this.j.toolbar.buttons.filter((button)=>!button.state.disabled && button.container.isConnected);
53111
+ }
53112
+ __isRtl() {
53113
+ return (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_5__.attr)(this.j.toolbar.container, 'dir') === 'rtl';
53114
+ }
53115
+ }
53116
+ __decorate([
53117
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
53118
+ ], toolbarNavigation.prototype, "focusToolbar", null);
53119
+ __decorate([
53120
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_2__.watch)('j.toolbar.container:keydown.toolbar-navigation')
53121
+ ], toolbarNavigation.prototype, "onKeyDown", null);
53122
+ _core_global_js__WEBPACK_IMPORTED_MODULE_4__.pluginSystem.add('toolbarNavigation', toolbarNavigation);
53123
+
53124
+
52912
53125
  /***/ }),
52913
53126
 
52914
53127
  /***/ 14984:
@@ -53474,6 +53687,14 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('xpath', xpath);
53474
53687
  /* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <g fill=\"none\"> <path d=\"M12 3v13m-5-5 5 5 5-5M4 15v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4\"/> </g> </svg> ");
53475
53688
 
53476
53689
 
53690
+ /***/ }),
53691
+
53692
+ /***/ 98535:
53693
+ /***/ (function(__unused_webpack_module, __webpack_exports__) {
53694
+
53695
+ /* harmony default export */ __webpack_exports__["default"] = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <g fill=\"none\"> <path d=\"m4 12 10-9 7 7-10 10H7l-4-4a3 3 0 0 1 1-4Zm3-3 8 7m-4 4h10\"/> </g> </svg> ");
53696
+
53697
+
53477
53698
  /***/ }),
53478
53699
 
53479
53700
  /***/ 43478:
@@ -53516,23 +53737,24 @@ __webpack_require__.r(__webpack_exports__);
53516
53737
  /* harmony export */ chevron: function() { return /* reexport safe */ _chevron_svg_js__WEBPACK_IMPORTED_MODULE_8__["default"]; },
53517
53738
  /* harmony export */ dots: function() { return /* reexport safe */ _dots_svg_js__WEBPACK_IMPORTED_MODULE_9__["default"]; },
53518
53739
  /* harmony export */ download: function() { return /* reexport safe */ _download_svg_js__WEBPACK_IMPORTED_MODULE_10__["default"]; },
53519
- /* harmony export */ eye: function() { return /* reexport safe */ _eye_svg_js__WEBPACK_IMPORTED_MODULE_11__["default"]; },
53520
- /* harmony export */ file: function() { return /* reexport safe */ _file_svg_js__WEBPACK_IMPORTED_MODULE_12__["default"]; },
53521
- /* harmony export */ folder: function() { return /* reexport safe */ _folder_svg_js__WEBPACK_IMPORTED_MODULE_13__["default"]; },
53522
- /* harmony export */ info_circle: function() { return /* reexport safe */ _info_circle_svg_js__WEBPACK_IMPORTED_MODULE_14__["default"]; },
53523
- /* harmony export */ left: function() { return /* reexport safe */ _left_svg_js__WEBPACK_IMPORTED_MODULE_15__["default"]; },
53524
- /* harmony export */ lock: function() { return /* reexport safe */ _lock_svg_js__WEBPACK_IMPORTED_MODULE_16__["default"]; },
53525
- /* harmony export */ ok: function() { return /* reexport safe */ _ok_svg_js__WEBPACK_IMPORTED_MODULE_17__["default"]; },
53526
- /* harmony export */ pencil: function() { return /* reexport safe */ _pencil_svg_js__WEBPACK_IMPORTED_MODULE_18__["default"]; },
53527
- /* harmony export */ plus: function() { return /* reexport safe */ _plus_svg_js__WEBPACK_IMPORTED_MODULE_19__["default"]; },
53528
- /* harmony export */ resize_handler: function() { return /* reexport safe */ _resize_handler_svg_js__WEBPACK_IMPORTED_MODULE_20__["default"]; },
53529
- /* harmony export */ right: function() { return /* reexport safe */ _right_svg_js__WEBPACK_IMPORTED_MODULE_21__["default"]; },
53530
- /* harmony export */ save: function() { return /* reexport safe */ _save_svg_js__WEBPACK_IMPORTED_MODULE_22__["default"]; },
53531
- /* harmony export */ settings: function() { return /* reexport safe */ _settings_svg_js__WEBPACK_IMPORTED_MODULE_23__["default"]; },
53532
- /* harmony export */ unlock: function() { return /* reexport safe */ _unlock_svg_js__WEBPACK_IMPORTED_MODULE_24__["default"]; },
53533
- /* harmony export */ update: function() { return /* reexport safe */ _update_svg_js__WEBPACK_IMPORTED_MODULE_25__["default"]; },
53534
- /* harmony export */ upload: function() { return /* reexport safe */ _upload_svg_js__WEBPACK_IMPORTED_MODULE_26__["default"]; },
53535
- /* harmony export */ valign: function() { return /* reexport safe */ _valign_svg_js__WEBPACK_IMPORTED_MODULE_27__["default"]; }
53740
+ /* harmony export */ eraser: function() { return /* reexport safe */ _eraser_svg_js__WEBPACK_IMPORTED_MODULE_11__["default"]; },
53741
+ /* harmony export */ eye: function() { return /* reexport safe */ _eye_svg_js__WEBPACK_IMPORTED_MODULE_12__["default"]; },
53742
+ /* harmony export */ file: function() { return /* reexport safe */ _file_svg_js__WEBPACK_IMPORTED_MODULE_13__["default"]; },
53743
+ /* harmony export */ folder: function() { return /* reexport safe */ _folder_svg_js__WEBPACK_IMPORTED_MODULE_14__["default"]; },
53744
+ /* harmony export */ info_circle: function() { return /* reexport safe */ _info_circle_svg_js__WEBPACK_IMPORTED_MODULE_15__["default"]; },
53745
+ /* harmony export */ left: function() { return /* reexport safe */ _left_svg_js__WEBPACK_IMPORTED_MODULE_16__["default"]; },
53746
+ /* harmony export */ lock: function() { return /* reexport safe */ _lock_svg_js__WEBPACK_IMPORTED_MODULE_17__["default"]; },
53747
+ /* harmony export */ ok: function() { return /* reexport safe */ _ok_svg_js__WEBPACK_IMPORTED_MODULE_18__["default"]; },
53748
+ /* harmony export */ pencil: function() { return /* reexport safe */ _pencil_svg_js__WEBPACK_IMPORTED_MODULE_19__["default"]; },
53749
+ /* harmony export */ plus: function() { return /* reexport safe */ _plus_svg_js__WEBPACK_IMPORTED_MODULE_20__["default"]; },
53750
+ /* harmony export */ resize_handler: function() { return /* reexport safe */ _resize_handler_svg_js__WEBPACK_IMPORTED_MODULE_21__["default"]; },
53751
+ /* harmony export */ right: function() { return /* reexport safe */ _right_svg_js__WEBPACK_IMPORTED_MODULE_22__["default"]; },
53752
+ /* harmony export */ save: function() { return /* reexport safe */ _save_svg_js__WEBPACK_IMPORTED_MODULE_23__["default"]; },
53753
+ /* harmony export */ settings: function() { return /* reexport safe */ _settings_svg_js__WEBPACK_IMPORTED_MODULE_24__["default"]; },
53754
+ /* harmony export */ unlock: function() { return /* reexport safe */ _unlock_svg_js__WEBPACK_IMPORTED_MODULE_25__["default"]; },
53755
+ /* harmony export */ update: function() { return /* reexport safe */ _update_svg_js__WEBPACK_IMPORTED_MODULE_26__["default"]; },
53756
+ /* harmony export */ upload: function() { return /* reexport safe */ _upload_svg_js__WEBPACK_IMPORTED_MODULE_27__["default"]; },
53757
+ /* harmony export */ valign: function() { return /* reexport safe */ _valign_svg_js__WEBPACK_IMPORTED_MODULE_28__["default"]; }
53536
53758
  /* harmony export */ });
53537
53759
  /* harmony import */ var _angle_down_svg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78173);
53538
53760
  /* harmony import */ var _angle_left_svg_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16260);
@@ -53545,23 +53767,24 @@ __webpack_require__.r(__webpack_exports__);
53545
53767
  /* harmony import */ var _chevron_svg_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(58032);
53546
53768
  /* harmony import */ var _dots_svg_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(52507);
53547
53769
  /* harmony import */ var _download_svg_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1647);
53548
- /* harmony import */ var _eye_svg_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(43478);
53549
- /* harmony import */ var _file_svg_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(60097);
53550
- /* harmony import */ var _folder_svg_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(49155);
53551
- /* harmony import */ var _info_circle_svg_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(17176);
53552
- /* harmony import */ var _left_svg_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(57882);
53553
- /* harmony import */ var _lock_svg_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(58908);
53554
- /* harmony import */ var _ok_svg_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(24829);
53555
- /* harmony import */ var _pencil_svg_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(4038);
53556
- /* harmony import */ var _plus_svg_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(45575);
53557
- /* harmony import */ var _resize_handler_svg_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(84858);
53558
- /* harmony import */ var _right_svg_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(445);
53559
- /* harmony import */ var _save_svg_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(36886);
53560
- /* harmony import */ var _settings_svg_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(10766);
53561
- /* harmony import */ var _unlock_svg_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(33651);
53562
- /* harmony import */ var _update_svg_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(20362);
53563
- /* harmony import */ var _upload_svg_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(12202);
53564
- /* harmony import */ var _valign_svg_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(80152);
53770
+ /* harmony import */ var _eraser_svg_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(98535);
53771
+ /* harmony import */ var _eye_svg_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(43478);
53772
+ /* harmony import */ var _file_svg_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60097);
53773
+ /* harmony import */ var _folder_svg_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(49155);
53774
+ /* harmony import */ var _info_circle_svg_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(17176);
53775
+ /* harmony import */ var _left_svg_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(57882);
53776
+ /* harmony import */ var _lock_svg_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(58908);
53777
+ /* harmony import */ var _ok_svg_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(24829);
53778
+ /* harmony import */ var _pencil_svg_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(4038);
53779
+ /* harmony import */ var _plus_svg_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(45575);
53780
+ /* harmony import */ var _resize_handler_svg_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(84858);
53781
+ /* harmony import */ var _right_svg_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(445);
53782
+ /* harmony import */ var _save_svg_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(36886);
53783
+ /* harmony import */ var _settings_svg_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(10766);
53784
+ /* harmony import */ var _unlock_svg_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(33651);
53785
+ /* harmony import */ var _update_svg_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(20362);
53786
+ /* harmony import */ var _upload_svg_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(12202);
53787
+ /* harmony import */ var _valign_svg_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(80152);
53565
53788
  /*!
53566
53789
  * Jodit Editor (https://xdsoft.net/jodit/)
53567
53790
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -53599,6 +53822,7 @@ __webpack_require__.r(__webpack_exports__);
53599
53822
 
53600
53823
 
53601
53824
 
53825
+
53602
53826
 
53603
53827
 
53604
53828
  /***/ }),