jodit-pro 4.13.35 → 4.13.37

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 (316) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +5 -5
  3. package/es2015/jodit.js +199 -109
  4. package/es2015/jodit.min.js +10 -10
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  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/image-editor-pro/image-editor-pro.css +1 -1
  41. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  43. package/es2015/plugins/keyboard/keyboard.css +1 -1
  44. package/es2015/plugins/keyboard/keyboard.js +1 -1
  45. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  46. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  47. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  48. package/es2015/plugins/page-break/page-break.js +1 -1
  49. package/es2015/plugins/page-break/page-break.min.js +1 -1
  50. package/es2015/plugins/paste-code/paste-code.css +1 -1
  51. package/es2015/plugins/paste-code/paste-code.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  53. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  54. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  55. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  56. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  57. package/es2015/plugins/style/style.css +1 -1
  58. package/es2015/plugins/style/style.js +1 -1
  59. package/es2015/plugins/style/style.min.js +1 -1
  60. package/es2015/plugins/templates/templates.css +1 -1
  61. package/es2015/plugins/templates/templates.js +1 -1
  62. package/es2015/plugins/templates/templates.min.js +1 -1
  63. package/es2015/plugins/todo-list/todo-list.css +1 -1
  64. package/es2015/plugins/todo-list/todo-list.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  66. package/es2015/plugins/translate/translate.css +1 -1
  67. package/es2015/plugins/translate/translate.js +1 -1
  68. package/es2015/plugins/translate/translate.min.js +1 -1
  69. package/es2015/plugins/tune-block/tune-block.css +1 -1
  70. package/es2015/plugins/tune-block/tune-block.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  72. package/es2018/jodit.fat.min.js +5 -5
  73. package/es2018/jodit.min.js +5 -5
  74. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  75. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  76. package/es2018/plugins/backup/backup.min.js +1 -1
  77. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  78. package/es2018/plugins/change-case/change-case.min.js +1 -1
  79. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  80. package/es2018/plugins/emoji/emoji.min.js +1 -1
  81. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  82. package/es2018/plugins/finder/finder.min.js +1 -1
  83. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  84. package/es2018/plugins/google-search/google-search.min.js +1 -1
  85. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  86. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  87. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  88. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  89. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  90. package/es2018/plugins/page-break/page-break.min.js +1 -1
  91. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  92. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  93. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  94. package/es2018/plugins/style/style.min.js +1 -1
  95. package/es2018/plugins/templates/templates.min.js +1 -1
  96. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  97. package/es2018/plugins/translate/translate.min.js +1 -1
  98. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  99. package/es2021/jodit.css +1 -1
  100. package/es2021/jodit.fat.min.js +8 -8
  101. package/es2021/jodit.js +199 -109
  102. package/es2021/jodit.min.js +8 -8
  103. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  104. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  105. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  106. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  107. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  108. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  109. package/es2021/plugins/backup/backup.css +1 -1
  110. package/es2021/plugins/backup/backup.js +1 -1
  111. package/es2021/plugins/backup/backup.min.js +1 -1
  112. package/es2021/plugins/button-generator/button-generator.css +1 -1
  113. package/es2021/plugins/button-generator/button-generator.js +1 -1
  114. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  115. package/es2021/plugins/change-case/change-case.js +1 -1
  116. package/es2021/plugins/change-case/change-case.min.js +1 -1
  117. package/es2021/plugins/color-picker/color-picker.css +1 -1
  118. package/es2021/plugins/color-picker/color-picker.js +1 -1
  119. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  120. package/es2021/plugins/emoji/emoji.css +1 -1
  121. package/es2021/plugins/emoji/emoji.js +1 -1
  122. package/es2021/plugins/emoji/emoji.min.js +1 -1
  123. package/es2021/plugins/export-docs/export-docs.js +1 -1
  124. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  125. package/es2021/plugins/finder/finder.css +1 -1
  126. package/es2021/plugins/finder/finder.js +1 -1
  127. package/es2021/plugins/finder/finder.min.js +1 -1
  128. package/es2021/plugins/google-maps/google-maps.css +1 -1
  129. package/es2021/plugins/google-maps/google-maps.js +1 -1
  130. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  131. package/es2021/plugins/google-search/google-search.js +1 -1
  132. package/es2021/plugins/google-search/google-search.min.js +1 -1
  133. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  134. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  135. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  136. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  137. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  138. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  139. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  140. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  141. package/es2021/plugins/keyboard/keyboard.css +1 -1
  142. package/es2021/plugins/keyboard/keyboard.js +1 -1
  143. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  144. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  145. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  146. package/es2021/plugins/page-break/page-break.js +1 -1
  147. package/es2021/plugins/page-break/page-break.min.js +1 -1
  148. package/es2021/plugins/paste-code/paste-code.css +1 -1
  149. package/es2021/plugins/paste-code/paste-code.js +1 -1
  150. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  151. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  152. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  153. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  154. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  155. package/es2021/plugins/style/style.css +1 -1
  156. package/es2021/plugins/style/style.js +1 -1
  157. package/es2021/plugins/style/style.min.js +1 -1
  158. package/es2021/plugins/templates/templates.css +1 -1
  159. package/es2021/plugins/templates/templates.js +1 -1
  160. package/es2021/plugins/templates/templates.min.js +1 -1
  161. package/es2021/plugins/todo-list/todo-list.css +1 -1
  162. package/es2021/plugins/todo-list/todo-list.js +1 -1
  163. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  164. package/es2021/plugins/translate/translate.css +1 -1
  165. package/es2021/plugins/translate/translate.js +1 -1
  166. package/es2021/plugins/translate/translate.min.js +1 -1
  167. package/es2021/plugins/tune-block/tune-block.css +1 -1
  168. package/es2021/plugins/tune-block/tune-block.js +1 -1
  169. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  170. package/es2021.en/jodit.css +1 -1
  171. package/es2021.en/jodit.fat.min.js +8 -8
  172. package/es2021.en/jodit.js +199 -109
  173. package/es2021.en/jodit.min.js +8 -8
  174. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  175. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  176. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  177. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  178. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  179. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  180. package/es2021.en/plugins/backup/backup.css +1 -1
  181. package/es2021.en/plugins/backup/backup.js +1 -1
  182. package/es2021.en/plugins/backup/backup.min.js +1 -1
  183. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  184. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  185. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  186. package/es2021.en/plugins/change-case/change-case.js +1 -1
  187. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  188. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  189. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  190. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  191. package/es2021.en/plugins/emoji/emoji.css +1 -1
  192. package/es2021.en/plugins/emoji/emoji.js +1 -1
  193. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  194. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  195. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  196. package/es2021.en/plugins/finder/finder.css +1 -1
  197. package/es2021.en/plugins/finder/finder.js +1 -1
  198. package/es2021.en/plugins/finder/finder.min.js +1 -1
  199. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  200. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  201. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  202. package/es2021.en/plugins/google-search/google-search.js +1 -1
  203. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  204. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  205. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  206. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  207. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  208. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  209. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  210. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  211. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  212. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  213. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  214. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  215. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  216. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  217. package/es2021.en/plugins/page-break/page-break.js +1 -1
  218. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  219. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  220. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  221. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  222. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  223. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  224. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  225. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  226. package/es2021.en/plugins/style/style.css +1 -1
  227. package/es2021.en/plugins/style/style.js +1 -1
  228. package/es2021.en/plugins/style/style.min.js +1 -1
  229. package/es2021.en/plugins/templates/templates.css +1 -1
  230. package/es2021.en/plugins/templates/templates.js +1 -1
  231. package/es2021.en/plugins/templates/templates.min.js +1 -1
  232. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  233. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  234. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  235. package/es2021.en/plugins/translate/translate.css +1 -1
  236. package/es2021.en/plugins/translate/translate.js +1 -1
  237. package/es2021.en/plugins/translate/translate.min.js +1 -1
  238. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  239. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  240. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  241. package/es5/jodit.css +2 -2
  242. package/es5/jodit.fat.min.js +2 -2
  243. package/es5/jodit.js +216 -113
  244. package/es5/jodit.min.css +2 -2
  245. package/es5/jodit.min.js +2 -2
  246. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  247. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  248. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  249. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  250. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  251. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  252. package/es5/plugins/backup/backup.css +1 -1
  253. package/es5/plugins/backup/backup.js +1 -1
  254. package/es5/plugins/backup/backup.min.js +1 -1
  255. package/es5/plugins/button-generator/button-generator.css +1 -1
  256. package/es5/plugins/button-generator/button-generator.js +1 -1
  257. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  258. package/es5/plugins/change-case/change-case.js +1 -1
  259. package/es5/plugins/change-case/change-case.min.js +1 -1
  260. package/es5/plugins/color-picker/color-picker.css +1 -1
  261. package/es5/plugins/color-picker/color-picker.js +1 -1
  262. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  263. package/es5/plugins/emoji/emoji.css +1 -1
  264. package/es5/plugins/emoji/emoji.js +1 -1
  265. package/es5/plugins/emoji/emoji.min.js +1 -1
  266. package/es5/plugins/export-docs/export-docs.js +1 -1
  267. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  268. package/es5/plugins/finder/finder.css +1 -1
  269. package/es5/plugins/finder/finder.js +1 -1
  270. package/es5/plugins/finder/finder.min.js +1 -1
  271. package/es5/plugins/google-maps/google-maps.css +1 -1
  272. package/es5/plugins/google-maps/google-maps.js +1 -1
  273. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  274. package/es5/plugins/google-search/google-search.js +1 -1
  275. package/es5/plugins/google-search/google-search.min.js +1 -1
  276. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  277. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  278. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  279. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  280. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  281. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  282. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  283. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  284. package/es5/plugins/keyboard/keyboard.css +1 -1
  285. package/es5/plugins/keyboard/keyboard.js +1 -1
  286. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  287. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  288. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  289. package/es5/plugins/page-break/page-break.js +1 -1
  290. package/es5/plugins/page-break/page-break.min.js +1 -1
  291. package/es5/plugins/paste-code/paste-code.css +1 -1
  292. package/es5/plugins/paste-code/paste-code.js +1 -1
  293. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  294. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  295. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  296. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  297. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  298. package/es5/plugins/style/style.css +1 -1
  299. package/es5/plugins/style/style.js +1 -1
  300. package/es5/plugins/style/style.min.js +1 -1
  301. package/es5/plugins/templates/templates.css +1 -1
  302. package/es5/plugins/templates/templates.js +1 -1
  303. package/es5/plugins/templates/templates.min.js +1 -1
  304. package/es5/plugins/todo-list/todo-list.css +1 -1
  305. package/es5/plugins/todo-list/todo-list.js +1 -1
  306. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  307. package/es5/plugins/translate/translate.css +1 -1
  308. package/es5/plugins/translate/translate.js +1 -1
  309. package/es5/plugins/translate/translate.min.js +1 -1
  310. package/es5/plugins/tune-block/tune-block.css +1 -1
  311. package/es5/plugins/tune-block/tune-block.js +1 -1
  312. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  313. package/es5/polyfills.fat.min.js +1 -1
  314. package/es5/polyfills.js +1 -1
  315. package/es5/polyfills.min.js +1 -1
  316. 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.13.35
4
+ * Version: v4.13.37
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1838,7 +1838,7 @@ __webpack_require__.r(__webpack_exports__);
1838
1838
  * ```
1839
1839
  * @packageDocumentation
1840
1840
  * @module constants
1841
- */ const APP_VERSION = "4.13.35";
1841
+ */ const APP_VERSION = "4.13.37";
1842
1842
  // prettier-ignore
1843
1843
  const ES = "es2015";
1844
1844
  const IS_ES_MODERN = true;
@@ -30180,26 +30180,27 @@ const instance = (j)=>j.getInstance('Table', j.o);
30180
30180
  /* harmony export */ ToolbarButton: function() { return /* binding */ ToolbarButton; }
30181
30181
  /* harmony export */ });
30182
30182
  /* harmony import */ var _core_component_statuses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78213);
30183
- /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45219);
30184
- /* harmony import */ var _core_decorators_cache_cache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33433);
30185
- /* harmony import */ var _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87325);
30186
- /* harmony import */ var _core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37133);
30187
- /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2748);
30188
- /* harmony import */ var _core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68345);
30189
- /* harmony import */ var _core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23282);
30190
- /* harmony import */ var _core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19306);
30191
- /* harmony import */ var _core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(72430);
30192
- /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(70799);
30193
- /* harmony import */ var _core_helpers_size_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(56175);
30194
- /* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(87058);
30195
- /* harmony import */ var _core_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(38837);
30196
- /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(29960);
30197
- /* harmony import */ var _core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(37790);
30198
- /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(62843);
30199
- /* harmony import */ var _core_ui_helpers_get_control_type_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(72157);
30200
- /* harmony import */ var _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(12153);
30201
- /* harmony import */ var _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(56917);
30202
- /* harmony import */ var _factory_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(21491);
30183
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82758);
30184
+ /* harmony import */ var _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45219);
30185
+ /* harmony import */ var _core_decorators_cache_cache_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33433);
30186
+ /* harmony import */ var _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(87325);
30187
+ /* harmony import */ var _core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37133);
30188
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2748);
30189
+ /* harmony import */ var _core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68345);
30190
+ /* harmony import */ var _core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23282);
30191
+ /* harmony import */ var _core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(19306);
30192
+ /* harmony import */ var _core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(72430);
30193
+ /* harmony import */ var _core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(70799);
30194
+ /* harmony import */ var _core_helpers_size_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(56175);
30195
+ /* harmony import */ var _core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(87058);
30196
+ /* harmony import */ var _core_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(38837);
30197
+ /* harmony import */ var _core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29960);
30198
+ /* harmony import */ var _core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(37790);
30199
+ /* harmony import */ var _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(62843);
30200
+ /* harmony import */ var _core_ui_helpers_get_control_type_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(72157);
30201
+ /* harmony import */ var _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(12153);
30202
+ /* harmony import */ var _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(56917);
30203
+ /* harmony import */ var _factory_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(21491);
30203
30204
  function _define_property(obj, key, value) {
30204
30205
  if (key in obj) {
30205
30206
  Object.defineProperty(obj, key, {
@@ -30283,7 +30284,8 @@ function _object_spread_props(target, source) {
30283
30284
 
30284
30285
 
30285
30286
 
30286
- let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_16__.UIButton {
30287
+
30288
+ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_17__.UIButton {
30287
30289
  className() {
30288
30290
  return 'ToolbarButton';
30289
30291
  }
@@ -30294,13 +30296,13 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30294
30296
  super.updateAriaLabel();
30295
30297
  if (this.trigger) {
30296
30298
  const i8nTooltip = this.state.tooltip ? this.jodit.i18n(this.state.tooltip) : null;
30297
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-label', i8nTooltip);
30299
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.trigger, 'aria-label', i8nTooltip);
30298
30300
  }
30299
30301
  }
30300
30302
  /**
30301
30303
  * Get parent toolbar
30302
30304
  */ get toolbar() {
30303
- const ToolbarCollection = (0,_core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_3__.getComponentClass)('ToolbarCollection');
30305
+ const ToolbarCollection = (0,_core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_4__.getComponentClass)('ToolbarCollection');
30304
30306
  return this.closest(ToolbarCollection);
30305
30307
  }
30306
30308
  update() {
@@ -30322,7 +30324,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30322
30324
  * Calculates whether the button is active
30323
30325
  */ __calculateActivatedStatus(tc) {
30324
30326
  var _a, _b;
30325
- if ((0,_core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_8__.isJoditObject)(this.j) && !this.j.editorIsActive) {
30327
+ if ((0,_core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_9__.isJoditObject)(this.j) && !this.j.editorIsActive) {
30326
30328
  return false;
30327
30329
  }
30328
30330
  if ((_b = (_a = this.control).isActive) === null || _b === void 0 ? void 0 : _b.call(_a, this.j, this)) {
@@ -30346,11 +30348,11 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30346
30348
  return Boolean(tc && tc.shouldBeDisabled(this));
30347
30349
  }
30348
30350
  onChangeActivated() {
30349
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.button, 'aria-pressed', this.state.activated);
30351
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.button, 'aria-pressed', this.state.activated);
30350
30352
  super.onChangeActivated();
30351
30353
  }
30352
30354
  onChangeText() {
30353
- if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__.isFunction)(this.control.template)) {
30355
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__.isFunction)(this.control.template)) {
30354
30356
  this.text.innerHTML = this.control.template(this.j, this.control.name, this.j.i18n(this.state.text));
30355
30357
  } else {
30356
30358
  super.onChangeText();
@@ -30358,7 +30360,8 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30358
30360
  this.setMod('text-icons', Boolean(this.text.innerText.trim().length));
30359
30361
  }
30360
30362
  onChangeTabIndex() {
30361
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.button, 'tabindex', this.state.tabIndex);
30363
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.button, 'tabindex', this.state.tabIndex);
30364
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.trigger, 'tabindex', this.state.tabIndex);
30362
30365
  }
30363
30366
  createContainer() {
30364
30367
  const cn = this.componentName;
@@ -30371,7 +30374,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30371
30374
  configurable: true
30372
30375
  });
30373
30376
  container.appendChild(button);
30374
- 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>`);
30377
+ 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_19__.Icon.get('chevron')}</span>`);
30375
30378
  // For caching
30376
30379
  button.appendChild(trigger);
30377
30380
  return container;
@@ -30384,15 +30387,15 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30384
30387
  if (this.state.hasTrigger) {
30385
30388
  this.container.appendChild(this.trigger);
30386
30389
  } else {
30387
- _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_5__.Dom.safeRemove(this.trigger);
30390
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_6__.Dom.safeRemove(this.trigger);
30388
30391
  }
30389
30392
  this.setMod('with-trigger', this.state.hasTrigger || null);
30390
30393
  }
30391
30394
  /** @override */ onChangeDisabled() {
30392
30395
  const disabled = this.state.disabled ? 'disabled' : null;
30393
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'disabled', disabled);
30394
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.button, 'disabled', disabled);
30395
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.container, 'disabled', disabled);
30396
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.trigger, 'disabled', disabled);
30397
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.button, 'disabled', disabled);
30398
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.container, 'disabled', disabled);
30396
30399
  }
30397
30400
  /**
30398
30401
  * Init constant data from control
@@ -30402,7 +30405,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30402
30405
  state.name = ctr.name;
30403
30406
  this.__initIconFromControl();
30404
30407
  if (ctr.tooltip) {
30405
- state.tooltip = (0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__.isFunction)(ctr.tooltip) ? ctr.tooltip(this.j, ctr, this) : ctr.tooltip;
30408
+ state.tooltip = (0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__.isFunction)(ctr.tooltip) ? ctr.tooltip(this.j, ctr, this) : ctr.tooltip;
30406
30409
  }
30407
30410
  state.hasTrigger = Boolean(ctr.list || ctr.popup && ctr.exec);
30408
30411
  }
@@ -30410,12 +30413,12 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30410
30413
  var _a;
30411
30414
  const { control: ctr, state } = this;
30412
30415
  const { textIcons } = this.j.o;
30413
- if (textIcons === true || (0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__.isFunction)(textIcons) && textIcons(ctr.name) || ctr.template) {
30414
- state.icon = (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_16__.UIButtonState)().icon;
30416
+ if (textIcons === true || (0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__.isFunction)(textIcons) && textIcons(ctr.name) || ctr.template) {
30417
+ state.icon = (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_17__.UIButtonState)().icon;
30415
30418
  state.text = ctr.text || ctr.name;
30416
30419
  return;
30417
30420
  }
30418
- if (!(0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_10__.isString)(ctr.icon) && ctr.icon != null) {
30421
+ if (!(0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_11__.isString)(ctr.icon) && ctr.icon != null) {
30419
30422
  state.icon = {
30420
30423
  name: ctr.icon.name || ctr.name,
30421
30424
  iconURL: ctr.icon.iconURL || '',
@@ -30428,7 +30431,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30428
30431
  state.icon.iconURL = ctr.iconURL;
30429
30432
  } else {
30430
30433
  const name = ctr.icon || ctr.name;
30431
- state.icon.name = _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_18__.Icon.exists(name) || ((_a = this.j.o.extraIcons) === null || _a === void 0 ? void 0 : _a[name]) ? name : '';
30434
+ state.icon.name = _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_19__.Icon.exists(name) || ((_a = this.j.o.extraIcons) === null || _a === void 0 ? void 0 : _a[name]) ? name : '';
30432
30435
  }
30433
30436
  if (!ctr.iconURL && !state.icon.name) {
30434
30437
  state.text = ctr.text || ctr.name;
@@ -30443,22 +30446,22 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30443
30446
  return;
30444
30447
  }
30445
30448
  const { control: ctr } = this;
30446
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-expanded', true);
30449
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.trigger, 'aria-expanded', true);
30447
30450
  e.buffer = {
30448
30451
  actionTrigger: this
30449
30452
  };
30450
30453
  if (ctr.list) {
30451
30454
  return this.__openControlList(ctr);
30452
30455
  }
30453
- if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__.isFunction)(ctr.popup)) {
30456
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__.isFunction)(ctr.popup)) {
30454
30457
  const popup = this.openPopup();
30455
30458
  popup.parentElement = this;
30456
30459
  try {
30457
- if (this.j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_12__.camelCase)(`before-${ctr.name}-open-popup`), this.target, ctr, popup) !== false) {
30460
+ if (this.j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_13__.camelCase)(`before-${ctr.name}-open-popup`), this.target, ctr, popup) !== false) {
30458
30461
  const target = (_c = (_b = (_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.getTarget(this)) !== null && _b !== void 0 ? _b : this.target) !== null && _c !== void 0 ? _c : null;
30459
30462
  const elm = ctr.popup(this.j, target, this.__closePopup, this);
30460
30463
  if (elm) {
30461
- popup.setContent((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_10__.isString)(elm) ? this.j.c.fromHTML(elm) : elm).open(()=>(0,_core_helpers_size_index_js__WEBPACK_IMPORTED_MODULE_11__.position)(this.container), false, this.j.o.allowTabNavigation ? this.container : undefined);
30464
+ popup.setContent((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_11__.isString)(elm) ? this.j.c.fromHTML(elm) : elm).open(()=>(0,_core_helpers_size_index_js__WEBPACK_IMPORTED_MODULE_12__.position)(this.container), false, this.j.o.allowTabNavigation ? this.container : undefined);
30462
30465
  } else {
30463
30466
  this.__closePopup();
30464
30467
  }
@@ -30471,28 +30474,39 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30471
30474
  * Fired after the popup was opened for some control button
30472
30475
  */ /**
30473
30476
  * Close all opened popups
30474
- */ this.j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_12__.camelCase)(`after-${ctr.name}-open-popup`), popup.container);
30477
+ */ this.j.e.fire((0,_core_helpers_string_camel_case_js__WEBPACK_IMPORTED_MODULE_13__.camelCase)(`after-${ctr.name}-open-popup`), popup.container);
30475
30478
  }
30476
30479
  }
30480
+ onTriggerKeyDown(e) {
30481
+ if (this.state.disabled || ![
30482
+ _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_ENTER,
30483
+ _core_constants_js__WEBPACK_IMPORTED_MODULE_1__.KEY_SPACE,
30484
+ ' '
30485
+ ].includes(e.key)) {
30486
+ return;
30487
+ }
30488
+ e.preventDefault();
30489
+ this.trigger.click();
30490
+ }
30477
30491
  /**
30478
30492
  * Create an open popup list
30479
30493
  */ __openControlList(control) {
30480
30494
  var _a;
30481
- const controls = (_a = this.jodit.options.controls) !== null && _a !== void 0 ? _a : {}, getControl = (key)=>(0,_core_ui_helpers_get_control_type_js__WEBPACK_IMPORTED_MODULE_17__.findControlType)(key, controls);
30495
+ const controls = (_a = this.jodit.options.controls) !== null && _a !== void 0 ? _a : {}, getControl = (key)=>(0,_core_ui_helpers_get_control_type_js__WEBPACK_IMPORTED_MODULE_18__.findControlType)(key, controls);
30482
30496
  const list = control.list;
30483
30497
  const menu = this.openPopup();
30484
- const toolbar = (0,_factory_js__WEBPACK_IMPORTED_MODULE_20__.makeCollection)(this.j);
30498
+ const toolbar = (0,_factory_js__WEBPACK_IMPORTED_MODULE_21__.makeCollection)(this.j);
30485
30499
  menu.parentElement = this;
30486
30500
  toolbar.parentElement = menu;
30487
30501
  toolbar.mode = 'vertical';
30488
- const isListItem = (key)=>(0,_core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_9__.isPlainObject)(key) && 'title' in key && 'value' in key;
30502
+ const isListItem = (key)=>(0,_core_helpers_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_10__.isPlainObject)(key) && 'title' in key && 'value' in key;
30489
30503
  const getButton = (key, value)=>{
30490
- if ((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_10__.isString)(value) && getControl(value)) {
30504
+ if ((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_11__.isString)(value) && getControl(value)) {
30491
30505
  return _object_spread({
30492
30506
  name: value.toString()
30493
30507
  }, getControl(value));
30494
30508
  }
30495
- if ((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_10__.isString)(key) && getControl(key)) {
30509
+ if ((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_11__.isString)(key) && getControl(key)) {
30496
30510
  return _object_spread({
30497
30511
  name: key.toString()
30498
30512
  }, getControl(key), typeof value === 'object' ? value : {});
@@ -30523,26 +30537,26 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30523
30537
  value
30524
30538
  ]
30525
30539
  };
30526
- if ((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_10__.isString)(value)) {
30540
+ if ((0,_core_helpers_checker_is_string_js__WEBPACK_IMPORTED_MODULE_11__.isString)(value)) {
30527
30541
  childControl.text = value;
30528
30542
  }
30529
30543
  return childControl;
30530
30544
  };
30531
- toolbar.build((0,_core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_6__.isArray)(list) ? list.map(getButton) : (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_15__.keys)(list, false).map((key)=>getButton(key, list[key])), this.target);
30532
- menu.setContent(toolbar).open(()=>(0,_core_helpers_size_index_js__WEBPACK_IMPORTED_MODULE_11__.position)(this.container), false, this.j.o.allowTabNavigation ? this.container : undefined);
30545
+ toolbar.build((0,_core_helpers_checker_is_array_js__WEBPACK_IMPORTED_MODULE_7__.isArray)(list) ? list.map(getButton) : (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_16__.keys)(list, false).map((key)=>getButton(key, list[key])), this.target);
30546
+ menu.setContent(toolbar).open(()=>(0,_core_helpers_size_index_js__WEBPACK_IMPORTED_MODULE_12__.position)(this.container), false, this.j.o.allowTabNavigation ? this.container : undefined);
30533
30547
  this.state.activated = true;
30534
30548
  }
30535
30549
  onOutsideClick(e) {
30536
30550
  if (!this.openedPopup) {
30537
30551
  return;
30538
30552
  }
30539
- if (!e || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isNode(e.target) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_5__.Dom.isOrContains(this.container, e.target) && !this.openedPopup.isOwnClick(e)) {
30553
+ if (!e || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_6__.Dom.isNode(e.target) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_6__.Dom.isOrContains(this.container, e.target) && !this.openedPopup.isOwnClick(e)) {
30540
30554
  this.__closePopup();
30541
30555
  }
30542
30556
  }
30543
30557
  openPopup() {
30544
30558
  this.__closePopup();
30545
- this.openedPopup = new _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_19__.Popup(this.j, false);
30559
+ this.openedPopup = new _core_ui_popup_popup_js__WEBPACK_IMPORTED_MODULE_20__.Popup(this.j, false);
30546
30560
  this.j.e.on(this.ow, 'mousedown touchstart', this.onOutsideClick).on('escape closeAllPopups', this.onOutsideClick);
30547
30561
  return this.openedPopup;
30548
30562
  }
@@ -30554,7 +30568,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30554
30568
  this.openedPopup.destruct();
30555
30569
  this.openedPopup = null;
30556
30570
  if (this.trigger) {
30557
- (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_14__.attr)(this.trigger, 'aria-expanded', false);
30571
+ (0,_core_helpers_utils_attr_js__WEBPACK_IMPORTED_MODULE_15__.attr)(this.trigger, 'aria-expanded', false);
30558
30572
  }
30559
30573
  }
30560
30574
  }
@@ -30563,7 +30577,7 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30563
30577
  */ onClick(originalEvent) {
30564
30578
  var _a, _b, _c, _d, _e, _f, _g;
30565
30579
  const { control: ctr } = this;
30566
- if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__.isFunction)(ctr.exec)) {
30580
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__.isFunction)(ctr.exec)) {
30567
30581
  const target = (_c = (_b = (_a = this.toolbar) === null || _a === void 0 ? void 0 : _a.getTarget(this)) !== null && _b !== void 0 ? _b : this.target) !== null && _c !== void 0 ? _c : null;
30568
30582
  const result = ctr.exec(this.j, target, {
30569
30583
  control: ctr,
@@ -30587,11 +30601,11 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30587
30601
  if (ctr.list) {
30588
30602
  return this.__openControlList(ctr);
30589
30603
  }
30590
- if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_7__.isFunction)(ctr.popup)) {
30604
+ if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_8__.isFunction)(ctr.popup)) {
30591
30605
  return this.onTriggerClick(originalEvent);
30592
30606
  }
30593
30607
  if (ctr.command || ctr.name) {
30594
- (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_15__.call)((0,_core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_8__.isJoditObject)(this.j) ? this.j.execCommand.bind(this.j) : this.j.od.execCommand.bind(this.j.od), ctr.command || ctr.name, false, ctr.args && ctr.args[0]);
30608
+ (0,_core_helpers_utils_utils_js__WEBPACK_IMPORTED_MODULE_16__.call)((0,_core_helpers_checker_is_jodit_object_js__WEBPACK_IMPORTED_MODULE_9__.isJoditObject)(this.j) ? this.j.execCommand.bind(this.j) : this.j.od.execCommand.bind(this.j.od), ctr.command || ctr.name, false, ctr.args && ctr.args[0]);
30595
30609
  this.j.e.fire('closeAllPopups');
30596
30610
  }
30597
30611
  }
@@ -30603,21 +30617,21 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30603
30617
  super(jodit);
30604
30618
  this.control = control;
30605
30619
  this.target = target;
30606
- this.state = _object_spread_props(_object_spread({}, (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_16__.UIButtonState)()), {
30620
+ this.state = _object_spread_props(_object_spread({}, (0,_core_ui_button_index_js__WEBPACK_IMPORTED_MODULE_17__.UIButtonState)()), {
30607
30621
  theme: 'toolbar',
30608
30622
  currentValue: '',
30609
30623
  hasTrigger: false
30610
30624
  });
30611
30625
  this.openedPopup = null;
30612
30626
  const button = this.getElm('button');
30613
- (0,_core_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_13__.assert)(button, 'Element button should exists');
30627
+ (0,_core_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_14__.assert)(button, 'Element button should exists');
30614
30628
  this.button = button;
30615
30629
  Object.defineProperty(button, 'component', {
30616
30630
  value: this,
30617
30631
  configurable: true
30618
30632
  });
30619
30633
  const trigger = this.getElm('trigger');
30620
- (0,_core_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_13__.assert)(trigger, 'Element trigger should exists');
30634
+ (0,_core_helpers_utils_assert_js__WEBPACK_IMPORTED_MODULE_14__.assert)(trigger, 'Element trigger should exists');
30621
30635
  this.trigger = trigger;
30622
30636
  trigger.remove();
30623
30637
  // Prevent lost focus
@@ -30638,24 +30652,27 @@ let ToolbarButton = class ToolbarButton extends _core_ui_button_index_js__WEBPAC
30638
30652
  }
30639
30653
  };
30640
30654
  __decorate([
30641
- _core_decorators_cache_cache_js__WEBPACK_IMPORTED_MODULE_2__.cacheHTML
30655
+ _core_decorators_cache_cache_js__WEBPACK_IMPORTED_MODULE_3__.cacheHTML
30642
30656
  ], ToolbarButton.prototype, "createContainer", null);
30643
30657
  __decorate([
30644
- (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_4__.watch)('state.hasTrigger', {
30658
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_5__.watch)('state.hasTrigger', {
30645
30659
  immediately: false
30646
30660
  })
30647
30661
  ], ToolbarButton.prototype, "onChangeHasTrigger", null);
30648
30662
  __decorate([
30649
- (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_4__.watch)('trigger:click')
30663
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_5__.watch)('trigger:click')
30650
30664
  ], ToolbarButton.prototype, "onTriggerClick", null);
30651
30665
  __decorate([
30652
- _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
30666
+ (0,_core_decorators_watch_watch_js__WEBPACK_IMPORTED_MODULE_5__.watch)('trigger:keydown')
30667
+ ], ToolbarButton.prototype, "onTriggerKeyDown", null);
30668
+ __decorate([
30669
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_2__.autobind
30653
30670
  ], ToolbarButton.prototype, "onOutsideClick", null);
30654
30671
  __decorate([
30655
- _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_1__.autobind
30672
+ _core_decorators_autobind_autobind_js__WEBPACK_IMPORTED_MODULE_2__.autobind
30656
30673
  ], ToolbarButton.prototype, "__closePopup", null);
30657
30674
  ToolbarButton = __decorate([
30658
- _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_3__.component
30675
+ _core_decorators_component_component_js__WEBPACK_IMPORTED_MODULE_4__.component
30659
30676
  ], ToolbarButton);
30660
30677
 
30661
30678
 
@@ -46923,10 +46940,26 @@ let UISearch = class UISearch extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE
46923
46940
  this.replaceButton = replaceBtn;
46924
46941
  this.currentBox = current;
46925
46942
  this.countBox = count;
46943
+ const closeAction = ()=>this.close();
46944
+ const replaceAction = ()=>void jodit.e.fire(this, 'pressReplaceButton');
46945
+ const nextAction = ()=>void jodit.e.fire('searchNext');
46946
+ const prevAction = ()=>void jodit.e.fire('searchPrevious');
46947
+ // Pointer activation is handled on `pointerdown` (returning `false`
46948
+ // there keeps the focus and selection intact), but activating a
46949
+ // native button from the keyboard (Enter/Space) fires only `click`
46950
+ // with `detail === 0` — handle that path separately. Pointer clicks
46951
+ // arrive with `detail >= 1`, so the action does not run twice.
46952
+ // See https://github.com/xdan/jodit/issues/1440
46953
+ const onKeyboardActivate = (action)=>(e)=>{
46954
+ if (!e.detail) {
46955
+ e.preventDefault();
46956
+ action();
46957
+ }
46958
+ };
46926
46959
  jodit.e.on(this.closeButton, 'pointerdown', ()=>{
46927
- this.close();
46960
+ closeAction();
46928
46961
  return false;
46929
- }).on(this.queryInput, 'input', ()=>{
46962
+ }).on(this.closeButton, 'click', onKeyboardActivate(closeAction)).on(this.queryInput, 'input', ()=>{
46930
46963
  this.currentIndex = 0;
46931
46964
  }).on(this.queryInput, 'pointerdown', ()=>{
46932
46965
  if (jodit.s.isFocused()) {
@@ -46934,15 +46967,15 @@ let UISearch = class UISearch extends _core_ui_index_js__WEBPACK_IMPORTED_MODULE
46934
46967
  this.selInfo = jodit.s.save();
46935
46968
  }
46936
46969
  }).on(this.replaceButton, 'pointerdown', ()=>{
46937
- jodit.e.fire(this, 'pressReplaceButton');
46970
+ replaceAction();
46938
46971
  return false;
46939
- }).on(next, 'pointerdown', ()=>{
46940
- void jodit.e.fire('searchNext');
46972
+ }).on(this.replaceButton, 'click', onKeyboardActivate(replaceAction)).on(next, 'pointerdown', ()=>{
46973
+ nextAction();
46941
46974
  return false;
46942
- }).on(prev, 'pointerdown', ()=>{
46943
- jodit.e.fire('searchPrevious');
46975
+ }).on(next, 'click', onKeyboardActivate(nextAction)).on(prev, 'pointerdown', ()=>{
46976
+ prevAction();
46944
46977
  return false;
46945
- }).on(this.queryInput, 'input', ()=>{
46978
+ }).on(prev, 'click', onKeyboardActivate(prevAction)).on(this.queryInput, 'input', ()=>{
46946
46979
  this.setMod('empty-query', !(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.trim)(this.queryInput.value).length);
46947
46980
  }).on(this.queryInput, 'keydown', (()=>{
46948
46981
  const debounced = this.j.async.debounce((e)=>_async_to_generator(function*() {
@@ -51780,12 +51813,13 @@ function findCell(editor, key) {
51780
51813
  /***/ 40329:
51781
51814
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
51782
51815
 
51783
- /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22732);
51784
- /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21537);
51785
- /* harmony import */ var _core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43555);
51786
- /* harmony import */ var _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12153);
51787
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6441);
51788
- /* harmony import */ var _table_svg_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6091);
51816
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
51817
+ /* harmony import */ var _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22732);
51818
+ /* harmony import */ var _core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21537);
51819
+ /* harmony import */ var _core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43555);
51820
+ /* harmony import */ var _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12153);
51821
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6441);
51822
+ /* harmony import */ var _table_svg_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6091);
51789
51823
  /*!
51790
51824
  * Jodit Editor (https://xdsoft.net/jodit/)
51791
51825
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -51796,13 +51830,14 @@ function findCell(editor, key) {
51796
51830
 
51797
51831
 
51798
51832
 
51799
- _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.table = {
51833
+
51834
+ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.table = {
51800
51835
  splitBlockOnInsertTable: true,
51801
51836
  selectionCellStyle: 'border: 1px double #1e88e5 !important;',
51802
51837
  useExtraClassesOptions: false
51803
51838
  };
51804
- _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_3__.Icon.set('table', _table_svg_js__WEBPACK_IMPORTED_MODULE_5__["default"]);
51805
- _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51839
+ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('table', _table_svg_js__WEBPACK_IMPORTED_MODULE_6__["default"]);
51840
+ _config_js__WEBPACK_IMPORTED_MODULE_5__.Config.prototype.controls.table = {
51806
51841
  data: {
51807
51842
  cols: 10,
51808
51843
  rows: 10,
@@ -51832,19 +51867,25 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51832
51867
  };
51833
51868
  const form = editor.c.fromHTML('<form class="jodit-form jodit-form__inserter">' + '<div class="jodit-form__table-creator-box">' + '<div class="jodit-form__container"></div>' + '<div class="jodit-form__options">' + generateExtraClasses() + '</div>' + '</div>' + '<label class="jodit-form__center">' + '<span>1</span> &times; <span>1</span>' + '</label>' + '</form>'), rows = form.querySelectorAll('span')[0], cols = form.querySelectorAll('span')[1], blocksContainer = form.querySelector('.jodit-form__container'), options = form.querySelector('.jodit-form__options'), cells = [];
51834
51869
  const cnt = default_rows_count * default_cols_count;
51870
+ (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(blocksContainer, {
51871
+ role: 'grid',
51872
+ ariaLabel: 'Table size',
51873
+ ariaRowcount: default_rows_count,
51874
+ ariaColcount: default_cols_count
51875
+ });
51835
51876
  for(let i = 0; i < cnt; i += 1){
51836
51877
  if (!cells[i]) {
51878
+ const row = Math.floor(i / default_cols_count) + 1, col = i % default_cols_count + 1;
51837
51879
  cells.push(editor.c.element('span', {
51838
- dataIndex: i
51880
+ dataIndex: i,
51881
+ role: 'gridcell',
51882
+ tabindex: i === 0 ? 0 : -1,
51883
+ ariaLabel: `${row} by ${col}`
51839
51884
  }));
51840
51885
  }
51841
51886
  }
51842
- const mouseenter = (e, index)=>{
51843
- const dv = e.target;
51844
- if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(dv, 'span')) {
51845
- return;
51846
- }
51847
- const k = index === undefined || isNaN(index) ? parseInt((0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_2__.attr)(dv, '-index') || '0', 10) : index || 0;
51887
+ const highlightCell = (cell)=>{
51888
+ const k = parseInt((0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(cell, '-index') || '0', 10);
51848
51889
  const rows_count = Math.ceil((k + 1) / default_cols_count), cols_count = k % default_cols_count + 1;
51849
51890
  for(let i = 0; i < cells.length; i += 1){
51850
51891
  if (cols_count >= i % default_cols_count + 1 && rows_count >= Math.ceil((i + 1) / default_cols_count)) {
@@ -51856,14 +51897,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51856
51897
  cols.textContent = cols_count.toString();
51857
51898
  rows.textContent = rows_count.toString();
51858
51899
  };
51859
- editor.e.on(blocksContainer, 'mousemove', mouseenter).on(blocksContainer, 'touchstart mousedown', (e)=>{
51860
- const dv = e.target;
51861
- e.preventDefault();
51862
- e.stopImmediatePropagation();
51863
- if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(dv, 'span')) {
51864
- return;
51865
- }
51866
- const k = parseInt((0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_2__.attr)(dv, '-index') || '0', 10);
51900
+ const insertTable = (cell)=>{
51901
+ const k = parseInt((0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(cell, '-index') || '0', 10);
51867
51902
  const rows_count = Math.ceil((k + 1) / default_cols_count), cols_count = k % default_cols_count + 1;
51868
51903
  const crt = editor.createInside, tbody = crt.element('tbody'), table = crt.element('table');
51869
51904
  table.appendChild(tbody);
@@ -51875,7 +51910,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51875
51910
  if (!first_td) {
51876
51911
  first_td = td;
51877
51912
  }
51878
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.css)(td, 'width', (100 / cols_count).toFixed(4) + '%');
51913
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.css)(td, 'width', (100 / cols_count).toFixed(4) + '%');
51879
51914
  td.appendChild(crt.element('br'));
51880
51915
  tr.appendChild(crt.text('\n'));
51881
51916
  tr.appendChild(crt.text('\t'));
@@ -51884,7 +51919,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51884
51919
  tbody.appendChild(crt.text('\n'));
51885
51920
  tbody.appendChild(tr);
51886
51921
  }
51887
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.$$)('input[type=checkbox]:checked', options).forEach((input)=>{
51922
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.$$)('input[type=checkbox]:checked', options).forEach((input)=>{
51888
51923
  input.value.split(/[\s]+/).forEach((className)=>{
51889
51924
  table.classList.add(className);
51890
51925
  });
@@ -51893,15 +51928,15 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51893
51928
  editor.s.removeMarkers();
51894
51929
  editor.editor.normalize();
51895
51930
  editor.history.snapshot.restore(snapshot);
51896
- const block = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.furthest(editor.s.current(), _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock, editor.editor);
51897
- if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(block)) {
51898
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.replace(block, table, undefined, false, true);
51931
+ const block = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.furthest(editor.s.current(), _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, editor.editor);
51932
+ if (block && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isEmpty(block)) {
51933
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.replace(block, table, undefined, false, true);
51899
51934
  } else {
51900
51935
  if (block) {
51901
51936
  const fake = crt.text('\n');
51902
51937
  if (!editor.o.table.splitBlockOnInsertTable) {
51903
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(block, fake);
51904
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(fake, table);
51938
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, fake);
51939
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(fake, table);
51905
51940
  } else {
51906
51941
  const range = editor.s.range;
51907
51942
  range.collapse(false);
@@ -51910,9 +51945,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51910
51945
  editor.s.selectRange(range);
51911
51946
  const firstPart = editor.s.splitSelection(block, fake);
51912
51947
  if (firstPart) {
51913
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(firstPart, table);
51948
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(firstPart, table);
51914
51949
  } else {
51915
- _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(block, table);
51950
+ _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, table);
51916
51951
  }
51917
51952
  }
51918
51953
  } else {
@@ -51921,13 +51956,68 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.table = {
51921
51956
  }
51922
51957
  if (first_td) {
51923
51958
  editor.s.setCursorIn(first_td);
51924
- (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_1__.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
51959
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.scrollIntoViewIfNeeded)(first_td, editor.editor, editor.ed);
51925
51960
  }
51926
51961
  close();
51962
+ };
51963
+ editor.e.on(blocksContainer, 'mousemove', (e)=>{
51964
+ if (_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(e.target, 'span')) {
51965
+ highlightCell(e.target);
51966
+ }
51967
+ }).on(blocksContainer, 'touchstart mousedown', (e)=>{
51968
+ if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(e.target, 'span')) {
51969
+ return;
51970
+ }
51971
+ e.preventDefault();
51972
+ e.stopImmediatePropagation();
51973
+ insertTable(e.target);
51974
+ }).on(blocksContainer, 'keydown', (e)=>{
51975
+ if (!_core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(e.target, 'span')) {
51976
+ return;
51977
+ }
51978
+ if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ENTER) {
51979
+ e.preventDefault();
51980
+ e.stopImmediatePropagation();
51981
+ insertTable(e.target);
51982
+ return;
51983
+ }
51984
+ if (e.key === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_ESC) {
51985
+ e.preventDefault();
51986
+ e.stopImmediatePropagation();
51987
+ close();
51988
+ return;
51989
+ }
51990
+ const index = parseInt((0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(e.target, '-index') || '0', 10), row = Math.floor(index / default_cols_count), col = index % default_cols_count;
51991
+ let nextIndex = index;
51992
+ switch(e.key){
51993
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_LEFT:
51994
+ nextIndex = col > 0 ? index - 1 : index;
51995
+ break;
51996
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_RIGHT:
51997
+ nextIndex = col < default_cols_count - 1 ? index + 1 : index;
51998
+ break;
51999
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_UP:
52000
+ nextIndex = row > 0 ? index - default_cols_count : index;
52001
+ break;
52002
+ case _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.KEY_DOWN:
52003
+ nextIndex = row < default_rows_count - 1 ? index + default_cols_count : index;
52004
+ break;
52005
+ default:
52006
+ return;
52007
+ }
52008
+ e.preventDefault();
52009
+ e.stopImmediatePropagation();
52010
+ if (nextIndex !== index) {
52011
+ cells[index].tabIndex = -1;
52012
+ cells[nextIndex].tabIndex = 0;
52013
+ cells[nextIndex].focus();
52014
+ highlightCell(cells[nextIndex]);
52015
+ }
51927
52016
  });
51928
52017
  if (button && button.parentElement) {
51929
52018
  for(let i = 0; i < default_rows_count; i += 1){
51930
52019
  const row = editor.c.div();
52020
+ (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(row, 'role', 'row');
51931
52021
  for(let j = 0; j < default_cols_count; j += 1){
51932
52022
  row.appendChild(cells[i * default_cols_count + j]);
51933
52023
  }