jodit-pro 4.18.9 → 4.18.12

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 (348) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +13 -13
  3. package/es2015/jodit.js +286 -48
  4. package/es2015/jodit.min.js +14 -14
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +3 -3
  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 +14 -7
  13. package/es2015/plugins/backup/backup.min.js +2 -2
  14. package/es2015/plugins/button-generator/button-generator.css +1 -1
  15. package/es2015/plugins/button-generator/button-generator.js +26 -19
  16. package/es2015/plugins/button-generator/button-generator.min.js +3 -3
  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/chart/chart.css +1 -1
  20. package/es2015/plugins/chart/chart.js +1 -1
  21. package/es2015/plugins/chart/chart.min.js +1 -1
  22. package/es2015/plugins/color-picker/color-picker.css +1 -1
  23. package/es2015/plugins/color-picker/color-picker.js +1 -1
  24. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  25. package/es2015/plugins/emoji/emoji.css +1 -1
  26. package/es2015/plugins/emoji/emoji.js +1 -1
  27. package/es2015/plugins/emoji/emoji.min.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.js +1 -1
  29. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  30. package/es2015/plugins/finder/finder.css +1 -1
  31. package/es2015/plugins/finder/finder.js +1 -1
  32. package/es2015/plugins/finder/finder.min.js +1 -1
  33. package/es2015/plugins/google-maps/google-maps.css +1 -1
  34. package/es2015/plugins/google-maps/google-maps.js +1 -1
  35. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  36. package/es2015/plugins/google-search/google-search.js +1 -1
  37. package/es2015/plugins/google-search/google-search.min.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  39. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  42. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  45. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  46. package/es2015/plugins/keyboard/keyboard.css +1 -1
  47. package/es2015/plugins/keyboard/keyboard.js +1 -1
  48. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  49. package/es2015/plugins/math/math.css +1 -1
  50. package/es2015/plugins/math/math.js +1 -1
  51. package/es2015/plugins/math/math.min.js +1 -1
  52. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  53. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  54. package/es2015/plugins/page-break/page-break.js +1 -1
  55. package/es2015/plugins/page-break/page-break.min.js +1 -1
  56. package/es2015/plugins/paste-code/paste-code.css +1 -1
  57. package/es2015/plugins/paste-code/paste-code.js +1 -1
  58. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  59. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  60. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  61. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  62. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  63. package/es2015/plugins/style/style.css +1 -1
  64. package/es2015/plugins/style/style.js +1 -1
  65. package/es2015/plugins/style/style.min.js +1 -1
  66. package/es2015/plugins/templates/templates.css +1 -1
  67. package/es2015/plugins/templates/templates.js +1 -1
  68. package/es2015/plugins/templates/templates.min.js +1 -1
  69. package/es2015/plugins/todo-list/todo-list.css +1 -1
  70. package/es2015/plugins/todo-list/todo-list.js +1 -1
  71. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  72. package/es2015/plugins/translate/translate.css +1 -1
  73. package/es2015/plugins/translate/translate.js +1 -1
  74. package/es2015/plugins/translate/translate.min.js +1 -1
  75. package/es2015/plugins/tune-block/tune-block.css +1 -1
  76. package/es2015/plugins/tune-block/tune-block.js +1 -1
  77. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  78. package/es2018/jodit.fat.min.js +16 -16
  79. package/es2018/jodit.min.js +8 -8
  80. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +3 -3
  81. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  82. package/es2018/plugins/backup/backup.min.js +2 -2
  83. package/es2018/plugins/button-generator/button-generator.min.js +3 -3
  84. package/es2018/plugins/change-case/change-case.min.js +1 -1
  85. package/es2018/plugins/chart/chart.min.js +1 -1
  86. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  87. package/es2018/plugins/emoji/emoji.min.js +1 -1
  88. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  89. package/es2018/plugins/finder/finder.min.js +1 -1
  90. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  91. package/es2018/plugins/google-search/google-search.min.js +1 -1
  92. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  93. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  94. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  95. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  96. package/es2018/plugins/math/math.min.js +1 -1
  97. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  98. package/es2018/plugins/page-break/page-break.min.js +1 -1
  99. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  100. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  101. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  102. package/es2018/plugins/style/style.min.js +1 -1
  103. package/es2018/plugins/templates/templates.min.js +1 -1
  104. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  105. package/es2018/plugins/translate/translate.min.js +1 -1
  106. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  107. package/es2021/jodit.css +1 -1
  108. package/es2021/jodit.fat.min.js +19 -19
  109. package/es2021/jodit.js +286 -48
  110. package/es2021/jodit.min.js +8 -8
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  112. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
  113. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +3 -3
  114. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  115. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  116. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  117. package/es2021/plugins/backup/backup.css +1 -1
  118. package/es2021/plugins/backup/backup.js +14 -7
  119. package/es2021/plugins/backup/backup.min.js +2 -2
  120. package/es2021/plugins/button-generator/button-generator.css +1 -1
  121. package/es2021/plugins/button-generator/button-generator.js +26 -19
  122. package/es2021/plugins/button-generator/button-generator.min.js +3 -3
  123. package/es2021/plugins/change-case/change-case.js +1 -1
  124. package/es2021/plugins/change-case/change-case.min.js +1 -1
  125. package/es2021/plugins/chart/chart.css +1 -1
  126. package/es2021/plugins/chart/chart.js +1 -1
  127. package/es2021/plugins/chart/chart.min.js +1 -1
  128. package/es2021/plugins/color-picker/color-picker.css +1 -1
  129. package/es2021/plugins/color-picker/color-picker.js +1 -1
  130. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  131. package/es2021/plugins/emoji/emoji.css +1 -1
  132. package/es2021/plugins/emoji/emoji.js +1 -1
  133. package/es2021/plugins/emoji/emoji.min.js +1 -1
  134. package/es2021/plugins/export-docs/export-docs.js +1 -1
  135. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  136. package/es2021/plugins/finder/finder.css +1 -1
  137. package/es2021/plugins/finder/finder.js +1 -1
  138. package/es2021/plugins/finder/finder.min.js +1 -1
  139. package/es2021/plugins/google-maps/google-maps.css +1 -1
  140. package/es2021/plugins/google-maps/google-maps.js +1 -1
  141. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  142. package/es2021/plugins/google-search/google-search.js +1 -1
  143. package/es2021/plugins/google-search/google-search.min.js +1 -1
  144. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  145. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  146. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  147. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  148. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  149. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  150. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  151. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  152. package/es2021/plugins/keyboard/keyboard.css +1 -1
  153. package/es2021/plugins/keyboard/keyboard.js +1 -1
  154. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  155. package/es2021/plugins/math/math.css +1 -1
  156. package/es2021/plugins/math/math.js +1 -1
  157. package/es2021/plugins/math/math.min.js +1 -1
  158. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  159. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  160. package/es2021/plugins/page-break/page-break.js +1 -1
  161. package/es2021/plugins/page-break/page-break.min.js +1 -1
  162. package/es2021/plugins/paste-code/paste-code.css +1 -1
  163. package/es2021/plugins/paste-code/paste-code.js +1 -1
  164. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  165. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  166. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  167. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  168. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  169. package/es2021/plugins/style/style.css +1 -1
  170. package/es2021/plugins/style/style.js +1 -1
  171. package/es2021/plugins/style/style.min.js +1 -1
  172. package/es2021/plugins/templates/templates.css +1 -1
  173. package/es2021/plugins/templates/templates.js +1 -1
  174. package/es2021/plugins/templates/templates.min.js +1 -1
  175. package/es2021/plugins/todo-list/todo-list.css +1 -1
  176. package/es2021/plugins/todo-list/todo-list.js +1 -1
  177. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  178. package/es2021/plugins/translate/translate.css +1 -1
  179. package/es2021/plugins/translate/translate.js +1 -1
  180. package/es2021/plugins/translate/translate.min.js +1 -1
  181. package/es2021/plugins/tune-block/tune-block.css +1 -1
  182. package/es2021/plugins/tune-block/tune-block.js +1 -1
  183. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  184. package/es2021.en/jodit.css +1 -1
  185. package/es2021.en/jodit.fat.min.js +17 -17
  186. package/es2021.en/jodit.js +286 -48
  187. package/es2021.en/jodit.min.js +8 -8
  188. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  189. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
  190. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +26 -26
  191. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  192. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  193. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  194. package/es2021.en/plugins/backup/backup.css +1 -1
  195. package/es2021.en/plugins/backup/backup.js +14 -7
  196. package/es2021.en/plugins/backup/backup.min.js +2 -2
  197. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  198. package/es2021.en/plugins/button-generator/button-generator.js +26 -19
  199. package/es2021.en/plugins/button-generator/button-generator.min.js +3 -3
  200. package/es2021.en/plugins/change-case/change-case.js +1 -1
  201. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  202. package/es2021.en/plugins/chart/chart.css +1 -1
  203. package/es2021.en/plugins/chart/chart.js +1 -1
  204. package/es2021.en/plugins/chart/chart.min.js +1 -1
  205. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  206. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  207. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  208. package/es2021.en/plugins/emoji/emoji.css +1 -1
  209. package/es2021.en/plugins/emoji/emoji.js +1 -1
  210. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  211. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  212. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  213. package/es2021.en/plugins/finder/finder.css +1 -1
  214. package/es2021.en/plugins/finder/finder.js +1 -1
  215. package/es2021.en/plugins/finder/finder.min.js +1 -1
  216. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  217. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  218. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  219. package/es2021.en/plugins/google-search/google-search.js +1 -1
  220. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  221. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  222. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  223. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  224. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  225. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  226. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  227. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  228. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  229. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  230. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  231. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  232. package/es2021.en/plugins/math/math.css +1 -1
  233. package/es2021.en/plugins/math/math.js +1 -1
  234. package/es2021.en/plugins/math/math.min.js +1 -1
  235. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  236. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  237. package/es2021.en/plugins/page-break/page-break.js +1 -1
  238. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  239. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  240. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  241. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  242. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  243. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  244. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  245. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  246. package/es2021.en/plugins/style/style.css +1 -1
  247. package/es2021.en/plugins/style/style.js +1 -1
  248. package/es2021.en/plugins/style/style.min.js +1 -1
  249. package/es2021.en/plugins/templates/templates.css +1 -1
  250. package/es2021.en/plugins/templates/templates.js +1 -1
  251. package/es2021.en/plugins/templates/templates.min.js +1 -1
  252. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  253. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  254. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  255. package/es2021.en/plugins/translate/translate.css +1 -1
  256. package/es2021.en/plugins/translate/translate.js +1 -1
  257. package/es2021.en/plugins/translate/translate.min.js +1 -1
  258. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  259. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  260. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  261. package/es5/jodit.css +2 -2
  262. package/es5/jodit.fat.min.js +2 -2
  263. package/es5/jodit.js +298 -44
  264. package/es5/jodit.min.css +2 -2
  265. package/es5/jodit.min.js +2 -2
  266. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  267. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +19 -1
  268. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +2 -2
  269. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  270. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  271. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  272. package/es5/plugins/backup/backup.css +1 -1
  273. package/es5/plugins/backup/backup.js +14 -7
  274. package/es5/plugins/backup/backup.min.js +2 -2
  275. package/es5/plugins/button-generator/button-generator.css +1 -1
  276. package/es5/plugins/button-generator/button-generator.js +26 -19
  277. package/es5/plugins/button-generator/button-generator.min.js +2 -2
  278. package/es5/plugins/change-case/change-case.js +1 -1
  279. package/es5/plugins/change-case/change-case.min.js +1 -1
  280. package/es5/plugins/chart/chart.css +1 -1
  281. package/es5/plugins/chart/chart.js +1 -1
  282. package/es5/plugins/chart/chart.min.js +1 -1
  283. package/es5/plugins/color-picker/color-picker.css +1 -1
  284. package/es5/plugins/color-picker/color-picker.js +1 -1
  285. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  286. package/es5/plugins/emoji/emoji.css +1 -1
  287. package/es5/plugins/emoji/emoji.js +1 -1
  288. package/es5/plugins/emoji/emoji.min.js +1 -1
  289. package/es5/plugins/export-docs/export-docs.js +1 -1
  290. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  291. package/es5/plugins/finder/finder.css +1 -1
  292. package/es5/plugins/finder/finder.js +1 -1
  293. package/es5/plugins/finder/finder.min.js +1 -1
  294. package/es5/plugins/google-maps/google-maps.css +1 -1
  295. package/es5/plugins/google-maps/google-maps.js +1 -1
  296. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  297. package/es5/plugins/google-search/google-search.js +1 -1
  298. package/es5/plugins/google-search/google-search.min.js +1 -1
  299. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  300. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  301. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  302. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  303. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  304. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  305. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  306. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  307. package/es5/plugins/keyboard/keyboard.css +1 -1
  308. package/es5/plugins/keyboard/keyboard.js +1 -1
  309. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  310. package/es5/plugins/math/math.css +1 -1
  311. package/es5/plugins/math/math.js +1 -1
  312. package/es5/plugins/math/math.min.js +1 -1
  313. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  314. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  315. package/es5/plugins/page-break/page-break.js +1 -1
  316. package/es5/plugins/page-break/page-break.min.js +1 -1
  317. package/es5/plugins/paste-code/paste-code.css +1 -1
  318. package/es5/plugins/paste-code/paste-code.js +1 -1
  319. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  320. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  321. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  322. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  323. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  324. package/es5/plugins/style/style.css +1 -1
  325. package/es5/plugins/style/style.js +1 -1
  326. package/es5/plugins/style/style.min.js +1 -1
  327. package/es5/plugins/templates/templates.css +1 -1
  328. package/es5/plugins/templates/templates.js +1 -1
  329. package/es5/plugins/templates/templates.min.js +1 -1
  330. package/es5/plugins/todo-list/todo-list.css +1 -1
  331. package/es5/plugins/todo-list/todo-list.js +1 -1
  332. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  333. package/es5/plugins/translate/translate.css +1 -1
  334. package/es5/plugins/translate/translate.js +1 -1
  335. package/es5/plugins/translate/translate.min.js +1 -1
  336. package/es5/plugins/tune-block/tune-block.css +1 -1
  337. package/es5/plugins/tune-block/tune-block.js +1 -1
  338. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  339. package/es5/polyfills.fat.min.js +1 -1
  340. package/es5/polyfills.js +1 -1
  341. package/es5/polyfills.min.js +1 -1
  342. package/esm/plugins/ai-assistant-pro/ai-assistant-pro.js +2 -2
  343. package/esm/plugins/ai-assistant-pro/core/panel-resize.d.ts +4 -0
  344. package/esm/plugins/ai-assistant-pro/core/panel-resize.js +1 -1
  345. package/esm/plugins/backup/ui/item.js +1 -1
  346. package/esm/plugins/button-generator/ui/form/form.js +2 -2
  347. package/package.json +1 -1
  348. package/types/plugins/ai-assistant-pro/core/panel-resize.d.ts +4 -0
package/es5/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.18.9
4
+ * Version: v4.18.12
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -2331,7 +2331,7 @@ function _unsupported_iterable_to_array(o, minLen) {
2331
2331
  if (n === "Map" || n === "Set") return Array.from(n);
2332
2332
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
2333
2333
  }
2334
- var APP_VERSION = "4.18.9";
2334
+ var APP_VERSION = "4.18.12";
2335
2335
  // prettier-ignore
2336
2336
  var ES = "es5";
2337
2337
  var IS_ES_MODERN = false;
@@ -3139,6 +3139,8 @@ function _unsupported_iterable_to_array(o, minLen) {
3139
3139
  */ ;
3140
3140
 
3141
3141
  var componentRegistry = new Map();
3142
+ var decoratedClasses = new WeakSet();
3143
+ var warnedClasses = new WeakSet();
3142
3144
  /**
3143
3145
  * Decorate components and set status isReady after constructor
3144
3146
  * @param constructorFunction - Component constructor class
@@ -3162,11 +3164,18 @@ var componentRegistry = new Map();
3162
3164
  Object.setPrototypeOf(_this, newConstructorFunction.prototype);
3163
3165
  }
3164
3166
  _this.setStatus('ready');
3167
+ } else if (!_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD && !decoratedClasses.has(_this.constructor) && !warnedClasses.has(_this.constructor)) {
3168
+ // Only the outermost class's decorator sets `ready`, so a subclass
3169
+ // without its own decorator stays in `beforeInit`. See #1685
3170
+ warnedClasses.add(_this.constructor);
3171
+ console.warn('Component "'.concat(_this.constructor.name || (0,_helpers_utils_get_class_name_js__WEBPACK_IMPORTED_MODULE_1__.getClassName)(_this), '" extends a @component class without being decorated itself, so it never becomes ready and its @watch, @debounce, @throttle and @hook handlers never run'));
3165
3172
  }
3166
3173
  return _this;
3167
3174
  }
3168
3175
  return newConstructorFunction;
3169
3176
  }(constructorFunction);
3177
+ decoratedClasses.add(constructorFunction);
3178
+ decoratedClasses.add(newConstructorFunction);
3170
3179
  var name = (0,_helpers_utils_get_class_name_js__WEBPACK_IMPORTED_MODULE_1__.getClassName)(constructorFunction.prototype);
3171
3180
  if (componentRegistry.has(name) && !_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
3172
3181
  throw new Error('Component with name "'.concat(name, '" is already registered'));
@@ -24554,6 +24563,7 @@ function _unsupported_iterable_to_array(o, minLen) {
24554
24563
  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;
24555
24564
  return c > 3 && r && Object.defineProperty(target, key, r), r;
24556
24565
  };
24566
+ var Popup_1;
24557
24567
 
24558
24568
 
24559
24569
 
@@ -24570,7 +24580,7 @@ var EVENTS_FOR_AUTOCLOSE = [
24570
24580
  'backSpaceAfterDelete',
24571
24581
  'beforeCommandDelete'
24572
24582
  ];
24573
- var Popup = /*#__PURE__*/ function(UIGroup) {
24583
+ var Popup = Popup_1 = /*#__PURE__*/ function(UIGroup) {
24574
24584
  "use strict";
24575
24585
  _inherits(Popup, UIGroup);
24576
24586
  function Popup(jodit) {
@@ -24614,7 +24624,7 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
24614
24624
  key: "updateParentElement",
24615
24625
  value: function updateParentElement(target) {
24616
24626
  var _this = this;
24617
- if (target !== this && _component_component_js__WEBPACK_IMPORTED_MODULE_0__.Component.isInstanceOf(target, Popup)) {
24627
+ if (target !== this && _component_component_js__WEBPACK_IMPORTED_MODULE_0__.Component.isInstanceOf(target, Popup_1)) {
24618
24628
  this.__childrenPopups.forEach(function(popup) {
24619
24629
  if (!target.closest(popup) && popup.isOpened) {
24620
24630
  popup.close();
@@ -24663,7 +24673,7 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
24663
24673
  if (parentContainer) {
24664
24674
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(parentContainer, this.container);
24665
24675
  } else {
24666
- var popupContainer = (0,_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(this.jodit, Popup);
24676
+ var popupContainer = (0,_global_js__WEBPACK_IMPORTED_MODULE_3__.getContainer)(this.jodit, Popup_1);
24667
24677
  if (parentContainer !== this.container.parentElement) {
24668
24678
  _dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.append(popupContainer, this.container);
24669
24679
  }
@@ -24799,11 +24809,11 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
24799
24809
  };
24800
24810
  var getMatchStrategy = function getMatchStrategy(inBox) {
24801
24811
  var strategy;
24802
- if (Popup.boxInView(getPointByStrategy(defaultStrategy), inBox)) {
24812
+ if (Popup_1.boxInView(getPointByStrategy(defaultStrategy), inBox)) {
24803
24813
  strategy = defaultStrategy;
24804
24814
  } else {
24805
24815
  strategy = list.find(function(key) {
24806
- if (Popup.boxInView(getPointByStrategy(key), inBox)) {
24816
+ if (Popup_1.boxInView(getPointByStrategy(key), inBox)) {
24807
24817
  return key;
24808
24818
  }
24809
24819
  return;
@@ -24814,7 +24824,7 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
24814
24824
  // Try to find match position inside Jodit.container
24815
24825
  var strategy = getMatchStrategy((0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(this.j.container, this.j));
24816
24826
  // If not found or is not inside window view
24817
- if (!strategy || !Popup.boxInView(getPointByStrategy(strategy), view)) {
24827
+ if (!strategy || !Popup_1.boxInView(getPointByStrategy(strategy), view)) {
24818
24828
  // Find match strategy inside window view
24819
24829
  strategy = getMatchStrategy(view) || strategy || defaultStrategy;
24820
24830
  }
@@ -24869,7 +24879,7 @@ var Popup = /*#__PURE__*/ function(UIGroup) {
24869
24879
  if (!e.target) {
24870
24880
  return false;
24871
24881
  }
24872
- var box = _element_js__WEBPACK_IMPORTED_MODULE_7__.UIElement.closestElement(e.target, Popup);
24882
+ var box = _element_js__WEBPACK_IMPORTED_MODULE_7__.UIElement.closestElement(e.target, Popup_1);
24873
24883
  return Boolean(box && (this === box || box.closest(this)));
24874
24884
  }
24875
24885
  },
@@ -24952,6 +24962,10 @@ __decorate([
24952
24962
  __decorate([
24953
24963
  _decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.autobind
24954
24964
  ], Popup.prototype, "__closeOnOutsideClick", null);
24965
+ Popup = Popup_1 = __decorate([
24966
+ _decorators_index_js__WEBPACK_IMPORTED_MODULE_1__.component
24967
+ ], Popup);
24968
+
24955
24969
 
24956
24970
 
24957
24971
  /***/ }),
@@ -26883,7 +26897,7 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
26883
26897
  commands.push(command);
26884
26898
  if (!(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.isFunction)(command)) {
26885
26899
  var hotkeys = this.o.commandToHotkeys[commandName] || this.o.commandToHotkeys[commandNameOriginal] || command.hotkeys;
26886
- if (hotkeys) {
26900
+ if (hotkeys && hotkeys.length) {
26887
26901
  this.registerHotkeyToCommand(hotkeys, commandName, options === null || options === void 0 ? void 0 : options.stopPropagation);
26888
26902
  }
26889
26903
  }
@@ -26897,6 +26911,10 @@ var Jodit = Jodit_1 = /*#__PURE__*/ function(ViewWithToolbar) {
26897
26911
  value: function registerHotkeyToCommand(hotkeys, commandName) {
26898
26912
  var _this = this;
26899
26913
  var shouldStop = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
26914
+ // An empty list (e.g. `commandToHotkeys: { cmd: [] }`) turns the key off
26915
+ if (!hotkeys || !hotkeys.length) {
26916
+ return;
26917
+ }
26900
26918
  var shortcuts = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.asArray)(hotkeys).map(_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.normalizeKeyAliases).map(function(hotkey) {
26901
26919
  return hotkey + '.hotkey';
26902
26920
  }).join(' ');
@@ -34644,6 +34662,11 @@ var Dialog_1;
34644
34662
 
34645
34663
 
34646
34664
 
34665
+ /**
34666
+ * A position from 0 up to `max`, or 0 when the panel is larger than the window
34667
+ */ var clampToWindow = function clampToWindow(value, max) {
34668
+ return Math.max(0, Math.min(value, max));
34669
+ };
34647
34670
  _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.dialog = {
34648
34671
  namespace: '',
34649
34672
  extraButtons: [],
@@ -34854,6 +34877,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
34854
34877
  this.startY = e.clientY;
34855
34878
  this.startPoint.x = (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_8__.css)(this.dialog, 'left');
34856
34879
  this.startPoint.y = (0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_8__.css)(this.dialog, 'top');
34880
+ // Rounded up: at the right edge a fraction of a pixel less room would
34881
+ // wrap the header of a panel that has no width of its own
34882
+ var _this_dialog_getBoundingClientRect = this.dialog.getBoundingClientRect(), width = _this_dialog_getBoundingClientRect.width, height = _this_dialog_getBoundingClientRect.height;
34883
+ this.startPoint.w = Math.ceil(width);
34884
+ this.startPoint.h = Math.ceil(height);
34857
34885
  this.setMaxZIndex();
34858
34886
  if (e.cancelable) {
34859
34887
  e.preventDefault();
@@ -34872,7 +34900,11 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
34872
34900
  key: "__onMouseMove",
34873
34901
  value: function __onMouseMove(e) {
34874
34902
  if (this.draggable && this.o.draggable) {
34875
- this.setPosition(this.startPoint.x + e.clientX - this.startX, this.startPoint.y + e.clientY - this.startY);
34903
+ var documentElement = this.od.documentElement;
34904
+ // Keep the whole panel in the window at the size it had when the
34905
+ // drag began. A panel with no width of its own would otherwise
34906
+ // shrink as it neared the right edge, and then leave the window
34907
+ this.setPosition(clampToWindow(this.startPoint.x + e.clientX - this.startX, (documentElement.clientWidth || this.ow.innerWidth) - this.startPoint.w), clampToWindow(this.startPoint.y + e.clientY - this.startY, (documentElement.clientHeight || this.ow.innerHeight) - this.startPoint.h));
34876
34908
  if (this.e) {
34877
34909
  /**
34878
34910
  * Fired when dialog box is moved
@@ -35022,8 +35054,8 @@ _config_js__WEBPACK_IMPORTED_MODULE_13__.Config.prototype.controls.dialog = {
35022
35054
  }
35023
35055
  // strings on purpose: `css()` would truncate fractional pixels
35024
35056
  ;(0,_core_helpers_utils_index_js__WEBPACK_IMPORTED_MODULE_8__.css)(this.dialog, {
35025
- left: (x || left) + 'px',
35026
- top: (y || top) + 'px'
35057
+ left: (x !== null && x !== void 0 ? x : left) + 'px',
35058
+ top: (y !== null && y !== void 0 ? y : top) + 'px'
35027
35059
  });
35028
35060
  return this;
35029
35061
  }
@@ -38507,7 +38539,8 @@ var DEFAULT_SOURCE_NAME = 'default';
38507
38539
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38508
38540
  /* harmony export */ FileBrowserFiles: function() { return /* binding */ FileBrowserFiles; }
38509
38541
  /* harmony export */ });
38510
- /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67510);
38542
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
38543
+ /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67510);
38511
38544
  function _assert_this_initialized(self) {
38512
38545
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
38513
38546
  return self;
@@ -38579,7 +38612,14 @@ function _type_of(obj) {
38579
38612
  * Jodit Editor (https://xdsoft.net/jodit/)
38580
38613
  * Released under MIT see LICENSE.txt in the project root for license information.
38581
38614
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
38582
- */ ;
38615
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
38616
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38617
+ if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38618
+ 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;
38619
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
38620
+ };
38621
+
38622
+
38583
38623
  var FileBrowserFiles = /*#__PURE__*/ function(UIGroup) {
38584
38624
  "use strict";
38585
38625
  _inherits(FileBrowserFiles, UIGroup);
@@ -38596,7 +38636,11 @@ var FileBrowserFiles = /*#__PURE__*/ function(UIGroup) {
38596
38636
  }
38597
38637
  ]);
38598
38638
  return FileBrowserFiles;
38599
- }(_core_ui_index_js__WEBPACK_IMPORTED_MODULE_0__.UIGroup);
38639
+ }(_core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__.UIGroup);
38640
+ FileBrowserFiles = __decorate([
38641
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.component
38642
+ ], FileBrowserFiles);
38643
+
38600
38644
 
38601
38645
 
38602
38646
  /***/ }),
@@ -38628,7 +38672,8 @@ var FileBrowserFiles = /*#__PURE__*/ function(UIGroup) {
38628
38672
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
38629
38673
  /* harmony export */ FileBrowserTree: function() { return /* binding */ FileBrowserTree; }
38630
38674
  /* harmony export */ });
38631
- /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67510);
38675
+ /* harmony import */ var _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65478);
38676
+ /* harmony import */ var _core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67510);
38632
38677
  function _assert_this_initialized(self) {
38633
38678
  if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
38634
38679
  return self;
@@ -38700,7 +38745,14 @@ function _type_of(obj) {
38700
38745
  * Jodit Editor (https://xdsoft.net/jodit/)
38701
38746
  * Released under MIT see LICENSE.txt in the project root for license information.
38702
38747
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
38703
- */ ;
38748
+ */ var __decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {
38749
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38750
+ if ((typeof Reflect === "undefined" ? "undefined" : _type_of(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38751
+ 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;
38752
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
38753
+ };
38754
+
38755
+
38704
38756
  var FileBrowserTree = /*#__PURE__*/ function(UIGroup) {
38705
38757
  "use strict";
38706
38758
  _inherits(FileBrowserTree, UIGroup);
@@ -38717,7 +38769,11 @@ var FileBrowserTree = /*#__PURE__*/ function(UIGroup) {
38717
38769
  }
38718
38770
  ]);
38719
38771
  return FileBrowserTree;
38720
- }(_core_ui_index_js__WEBPACK_IMPORTED_MODULE_0__.UIGroup);
38772
+ }(_core_ui_index_js__WEBPACK_IMPORTED_MODULE_1__.UIGroup);
38773
+ FileBrowserTree = __decorate([
38774
+ _core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.component
38775
+ ], FileBrowserTree);
38776
+
38721
38777
 
38722
38778
 
38723
38779
  /***/ }),
@@ -47303,6 +47359,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47303
47359
  * Check if two separate elements can be connected
47304
47360
  * @private
47305
47361
  */ function checkJoinNeighbors(jodit, fakeNode, backspace) {
47362
+ if (checkJoinBareText(jodit, fakeNode, backspace)) {
47363
+ return true;
47364
+ }
47306
47365
  var nextBox = fakeNode, mainClosestBox = nextBox;
47307
47366
  // Find the main big closest element
47308
47367
  while(nextBox && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(nextBox, backspace) && nextBox.parentElement !== jodit.editor){
@@ -47330,7 +47389,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47330
47389
  return true;
47331
47390
  }
47332
47391
  var box = findCaretBox(fakeNode, mainClosestBox);
47333
- if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
47392
+ if (sibling && (checkPullNextLine(jodit, fakeNode, box, sibling, backspace) || checkMoveListContent(jodit, box, sibling, backspace) || checkJoinInlineSibling(jodit, box, sibling, backspace) || moveContentAndRemoveEmpty(jodit, box, findEdgeBlock(resolveTableSibling(sibling, backspace), backspace, jodit.editor), backspace))) {
47334
47393
  jodit.s.setCursorBefore(fakeNode);
47335
47394
  return true;
47336
47395
  }
@@ -47417,6 +47476,74 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_2__.pluginSystem.add('backspace', backs
47417
47476
  }
47418
47477
  return true;
47419
47478
  }
47479
+ /**
47480
+ * A block next to bare text in the same parent joins that text, as the
47481
+ * browsers do: `<li>one<p>|two</p></li>` gives `<li>one|two</li>`, and
47482
+ * `<li><p>one|</p>two</li>` gives `<li><p>one|two</p></li>`
47483
+ * @private
47484
+ */ function checkJoinInlineSibling(jodit, box, sibling, backspace) {
47485
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(sibling) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(box) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(box) || // The caret's block is nested deeper than the text: `text<div><p>|x</p></div>`
47486
+ box.parentNode !== sibling.parentNode || Array.from(box.childNodes).some(function(node) {
47487
+ return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);
47488
+ })) {
47489
+ return false;
47490
+ }
47491
+ if (backspace) {
47492
+ // Text after the block keeps its own line
47493
+ var next = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(box, false);
47494
+ if (next && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(next) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(next, 'br')) {
47495
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(box, jodit.createInside.element('br'));
47496
+ }
47497
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(box);
47498
+ return true;
47499
+ }
47500
+ var filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
47501
+ for(var node = sibling; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
47502
+ var next1 = node.nextSibling;
47503
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
47504
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
47505
+ break;
47506
+ }
47507
+ filter(node) ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(box, node) : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
47508
+ node = next1;
47509
+ }
47510
+ return true;
47511
+ }
47512
+ /**
47513
+ * Bare text next to a block in the same parent, as the browsers join them:
47514
+ * Backspace in `<div><p>a</p>|b</div>` gives `<div><p>a|b</p></div>`, Delete
47515
+ * in `<div>a|<p>b</p>c</div>` gives `<div>a|b<br>c</div>`
47516
+ */ function checkJoinBareText(jodit, fakeNode, backspace) {
47517
+ var block = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(fakeNode, backspace);
47518
+ if (!_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isElement(block) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(block) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isList(block) || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(block, 'table') || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isCell(block) || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isContentEditable(block, jodit.editor) || Array.from(block.childNodes).some(function(node) {
47519
+ return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);
47520
+ })) {
47521
+ return false;
47522
+ }
47523
+ var filter = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.getMoveFilter)(jodit);
47524
+ if (backspace) {
47525
+ // The caret's line goes to the end of the block before it
47526
+ for(var node = fakeNode; node && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(node);){
47527
+ var next = node.nextSibling;
47528
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(node, 'br')) {
47529
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
47530
+ break;
47531
+ }
47532
+ filter(node) ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.append(block, node) : _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(node);
47533
+ node = next;
47534
+ }
47535
+ } else {
47536
+ // The block's content joins the caret's line, and text after the
47537
+ // block keeps its own line
47538
+ var next1 = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.findNotEmptySibling(block, false);
47539
+ if (next1 && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock(next1) && !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(next1, 'br')) {
47540
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after(block, jodit.createInside.element('br'));
47541
+ }
47542
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.unwrap(block);
47543
+ }
47544
+ jodit.s.setCursorBefore(fakeNode);
47545
+ return true;
47546
+ }
47420
47547
  function checkMoveListContent(jodit, mainClosestBox, sibling, backspace) {
47421
47548
  // Process UL/LI/OL cases
47422
47549
  var siblingIsList = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(sibling, _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.LIST_TAGS);
@@ -47560,9 +47687,11 @@ function moveContentAndRemoveEmpty(jodit, mainClosestBox, sibling, backspace) {
47560
47687
  * ```html
47561
47688
  * t|st
47562
47689
  * ```
47690
+ * With `stopBeforeSpace`, nothing is removed when the next char is a space.
47563
47691
  * @private
47564
47692
  */ // eslint-disable-next-line complexity
47565
47693
  function checkRemoveChar(jodit, fakeNode, backspace, mode) {
47694
+ var stopBeforeSpace = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
47566
47695
  var _a, _b;
47567
47696
  var step = backspace ? -1 : 1;
47568
47697
  var anotherSibling = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(fakeNode, !backspace);
@@ -47581,6 +47710,9 @@ function checkRemoveChar(jodit, fakeNode, backspace, mode) {
47581
47710
  break;
47582
47711
  }
47583
47712
  if ((_a = sibling.nodeValue) === null || _a === void 0 ? void 0 : _a.length) {
47713
+ if (stopBeforeSpace && isSpace(nextChar(sibling.nodeValue, backspace))) {
47714
+ break;
47715
+ }
47584
47716
  removed = tryRemoveChar(sibling, backspace, step, anotherSibling);
47585
47717
  if (!sibling.nodeValue.length && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isInlineBlock(sibling.parentNode)) {
47586
47718
  sibling.nodeValue = _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE;
@@ -47618,10 +47750,11 @@ function getNextInlineSibling(sibling, backspace, root) {
47618
47750
  var nextSibling = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.sibling(sibling, backspace);
47619
47751
  if (!nextSibling && sibling.parentNode && sibling.parentNode !== root) {
47620
47752
  nextSibling = (0,_helpers_js__WEBPACK_IMPORTED_MODULE_3__.findMostNestedNeighbor)(sibling, !backspace, root, true);
47621
- // Do not cross a list-item boundary. At the start of a list item the
47622
- // neighbor can be the text of the parent/previous item; deleting a char
47623
- // there is wrong — the list cases must handle the outdent/merge (#1277).
47624
- if (nextSibling && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(sibling, 'li', root) !== _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(nextSibling, 'li', root)) {
47753
+ // Do not cross a block boundary. At the start of a list item the
47754
+ // neighbor can be the text of the parent/previous item (#1277), and at
47755
+ // the start of a paragraph the text before it in the same parent
47756
+ // (#1693); deleting a char there is wrong — the join cases handle them.
47757
+ if (nextSibling && _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(sibling, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, root) !== _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(nextSibling, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isBlock, root)) {
47625
47758
  return null;
47626
47759
  }
47627
47760
  }
@@ -47688,9 +47821,25 @@ function replaceSpaceOnNBSP(anotherSibling, backspace, value) {
47688
47821
  }
47689
47822
  function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed, jodit) {
47690
47823
  ;(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.call)(backspace ? _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.after : _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.before, sibling, fakeNode);
47691
- if (mode === 'sentence' || mode === 'word' && removed !== ' ' && removed !== _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE) {
47692
- checkRemoveChar(jodit, fakeNode, backspace, mode);
47824
+ var wordChar = mode === 'word' && !isSpace(removed);
47825
+ // Backspace by word removes the spaces before the caret, then the word, and keeps the space in front of it
47826
+ if (mode === 'sentence' || wordChar || mode === 'word' && backspace) {
47827
+ checkRemoveChar(jodit, fakeNode, backspace, mode, wordChar && backspace);
47828
+ }
47829
+ }
47830
+ /**
47831
+ * The char tryRemoveChar would remove next
47832
+ */ function nextChar(value, backspace) {
47833
+ var chars = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_2__.toArray)(value);
47834
+ var step = backspace ? -1 : 1;
47835
+ var index = backspace ? chars.length - 1 : 0;
47836
+ while(chars[index] === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.INVISIBLE_SPACE){
47837
+ index += step;
47693
47838
  }
47839
+ return chars[index];
47840
+ }
47841
+ function isSpace(char) {
47842
+ return char === ' ' || char === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.NBSP_SPACE;
47694
47843
  }
47695
47844
 
47696
47845
 
@@ -47969,6 +48118,68 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
47969
48118
  }
47970
48119
 
47971
48120
 
48121
+ /***/ }),
48122
+
48123
+ /***/ 70921:
48124
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
48125
+
48126
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
48127
+ /* harmony export */ checkUnwrapListItem: function() { return /* binding */ checkUnwrapListItem; }
48128
+ /* harmony export */ });
48129
+ /* harmony import */ var _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2748);
48130
+ /*!
48131
+ * Jodit Editor (https://xdsoft.net/jodit/)
48132
+ * Released under MIT see LICENSE.txt in the project root for license information.
48133
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
48134
+ */
48135
+ /**
48136
+ * Backspace at the start of a later list item takes the bullet off, as Word
48137
+ * does: the item becomes a paragraph where it was, and the list is split
48138
+ * around it. A split `<ol>` carries its numbering on with `start`.
48139
+ *
48140
+ * @example
48141
+ * ```html
48142
+ * <ol><li>first</li><li>|second</li><li>third</li></ol>
48143
+ * ```
48144
+ * Result
48145
+ * ```html
48146
+ * <ol><li>first</li></ol><p>|second</p><ol start="2"><li>third</li></ol>
48147
+ * ```
48148
+ *
48149
+ * @private
48150
+ */ function checkUnwrapListItem(jodit, fakeNode, backspace) {
48151
+ if (!backspace) {
48152
+ return false;
48153
+ }
48154
+ var li = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(fakeNode, 'li', jodit.editor);
48155
+ var list = li ? li.parentElement : null;
48156
+ if (!li || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isList(list) || !li.previousElementSibling || _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isEmpty(li) || Array.from(li.childNodes).some(function(node) {
48157
+ return _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isBlock(node);
48158
+ }) || !jodit.s.cursorInTheEdge(true, li)) {
48159
+ return false;
48160
+ }
48161
+ var p = jodit.createInside.element(jodit.o.enterBlock);
48162
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(list, p);
48163
+ if (li.nextElementSibling) {
48164
+ var rest = list.cloneNode(false);
48165
+ // Two lists cannot share one id
48166
+ rest.removeAttribute('id');
48167
+ while(li.nextSibling){
48168
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.append(rest, li.nextSibling);
48169
+ }
48170
+ if (_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isTag(list, 'ol')) {
48171
+ var start = parseInt(list.getAttribute('start') || '1', 10) || 1;
48172
+ rest.setAttribute('start', String(start + list.children.length - 1));
48173
+ }
48174
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.after(p, rest);
48175
+ }
48176
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.moveContent(li, p);
48177
+ _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_0__.Dom.safeRemove(li);
48178
+ jodit.s.setCursorBefore(fakeNode);
48179
+ return true;
48180
+ }
48181
+
48182
+
47972
48183
  /***/ }),
47973
48184
 
47974
48185
  /***/ 14630:
@@ -47987,6 +48198,7 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
47987
48198
  /* harmony import */ var _check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(56825);
47988
48199
  /* harmony import */ var _check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90240);
47989
48200
  /* harmony import */ var _check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(68034);
48201
+ /* harmony import */ var _check_unwrap_list_item_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(70921);
47990
48202
  function _array_like_to_array(arr, len) {
47991
48203
  if (len == null || len > arr.length) len = arr.length;
47992
48204
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -48046,6 +48258,7 @@ function _unsupported_iterable_to_array(o, minLen) {
48046
48258
 
48047
48259
 
48048
48260
 
48261
+
48049
48262
  /**
48050
48263
  * Ordered delete/backspace cases with stable keys. The first one returning
48051
48264
  * `true` wins. The keys are stable across minified builds (function names are
@@ -48080,6 +48293,10 @@ function _unsupported_iterable_to_array(o, minLen) {
48080
48293
  'join-two-lists',
48081
48294
  _check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
48082
48295
  ],
48296
+ [
48297
+ 'unwrap-list-item',
48298
+ _check_unwrap_list_item_js__WEBPACK_IMPORTED_MODULE_9__.checkUnwrapListItem
48299
+ ],
48083
48300
  [
48084
48301
  'join-neighbors',
48085
48302
  _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
@@ -48103,7 +48320,8 @@ function _unsupported_iterable_to_array(o, minLen) {
48103
48320
  /***/ 32496:
48104
48321
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
48105
48322
 
48106
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6441);
48323
+ /* harmony import */ var _core_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82758);
48324
+ /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6441);
48107
48325
  /*!
48108
48326
  * Jodit Editor (https://xdsoft.net/jodit/)
48109
48327
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -48111,13 +48329,18 @@ function _unsupported_iterable_to_array(o, minLen) {
48111
48329
  */ /**
48112
48330
  * @module plugins/backspace
48113
48331
  */
48114
- _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.delete = {
48332
+
48333
+ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.delete = {
48115
48334
  hotkeys: {
48116
- delete: [
48335
+ delete: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [
48336
+ 'delete'
48337
+ ] : [
48117
48338
  'delete',
48118
48339
  'cmd+backspace'
48119
48340
  ],
48120
- deleteWord: [
48341
+ deleteWord: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [
48342
+ 'ctrl+delete'
48343
+ ] : [
48121
48344
  'ctrl+delete',
48122
48345
  'cmd+alt+backspace',
48123
48346
  'ctrl+alt+backspace'
@@ -48129,7 +48352,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_0__.Config.prototype.delete = {
48129
48352
  backspace: [
48130
48353
  'backspace'
48131
48354
  ],
48132
- backspaceWord: [
48355
+ backspaceWord: _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_MAC ? [] : [
48133
48356
  'ctrl+backspace'
48134
48357
  ],
48135
48358
  backspaceSentence: [
@@ -53048,7 +53271,7 @@ function _wrap_native_super(Class) {
53048
53271
  ]);
53049
53272
  var block = (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.getBlockWrapper)(fake, jodit);
53050
53273
  var isLi = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isLeaf(block);
53051
- // if use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
53274
+ // if use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
53052
53275
  if ((!isLi || (event === null || event === void 0 ? void 0 : event.shiftKey)) && (0,_helpers_index_js__WEBPACK_IMPORTED_MODULE_6__.checkBR)(fake, jodit, event === null || event === void 0 ? void 0 : event.shiftKey, block)) {
53053
53276
  return false;
53054
53277
  }
@@ -53118,10 +53341,9 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
53118
53341
  * Checks the possibility and necessity of inserting a BR instead of a block
53119
53342
  * @private
53120
53343
  */ function checkBR(fake, jodit, shiftKeyPressed, block) {
53121
- var isMultiLineBlock = Boolean(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, [
53122
- 'pre',
53123
- 'blockquote'
53124
- ], jodit.editor));
53344
+ // Text in a <pre>, or bare text in a quote, gets a BR. A real block inside
53345
+ // a quote (<p>, <h3>, ...) is split like anywhere else, as in a cell below.
53346
+ var isMultiLineBlock = Boolean(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, 'pre', jodit.editor)) || (block ? _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isTag(block, 'blockquote') : Boolean(_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.closest(fake, 'blockquote', jodit.editor)));
53125
53347
  // A cell itself can't be split into two cells, so bare cell content gets
53126
53348
  // a BR. But when the cell already holds a real block (<p>, <h3>, ...) that
53127
53349
  // block is split like anywhere else, otherwise every line of the cell
@@ -53131,7 +53353,7 @@ _core_global_js__WEBPACK_IMPORTED_MODULE_3__.pluginSystem.add('enter', enter);
53131
53353
  'th'
53132
53354
  ], jodit.editor)));
53133
53355
  var isBRMode = jodit.o.enter.toLowerCase() === _core_constants_js__WEBPACK_IMPORTED_MODULE_0__.BR.toLowerCase();
53134
- // if you use <br> defaultTag for break line or when was entered SHIFt key or in <td> or <th> or <blockquote>
53356
+ // if you use <br> defaultTag for break line or when was entered SHIFt key or in <td>, <th> or <blockquote> without an inner block
53135
53357
  if (isBRMode || isCell || shiftKeyPressed && !isMultiLineBlock || !shiftKeyPressed && isMultiLineBlock) {
53136
53358
  // 2 BR before
53137
53359
  if (isMultiLineBlock && checkSeveralBR(fake)) {
@@ -56663,8 +56885,12 @@ function _wrap_native_super(Class) {
56663
56885
  dialog.close();
56664
56886
  });
56665
56887
  buttons.remove.onAction(function() {
56888
+ var caret = j.s.createRange();
56889
+ caret.setStartBefore(_this.state.sourceImage);
56890
+ caret.collapse(true);
56666
56891
  j.s.removeNode(_this.state.sourceImage);
56667
56892
  dialog.close();
56893
+ j.s.selectRange(caret);
56668
56894
  });
56669
56895
  buttons.cancel.onAction(function() {
56670
56896
  dialog.close();
@@ -56678,10 +56904,20 @@ function _wrap_native_super(Class) {
56678
56904
  ],
56679
56905
  buttons.check
56680
56906
  ]);
56681
- j.e.on(dialog, 'afterClose', function() {
56682
- if (_this.state.image.parentNode && j.o.image.selectImageAfterClose) {
56683
- j.s.select(_this.state.sourceImage);
56907
+ // The dialog fires `afterClose` on its own emitter, not the editor's
56908
+ dialog.e.on(dialog, 'afterClose', function() {
56909
+ var sourceImage = _this.state.sourceImage;
56910
+ if (j.isInDestruct || !_core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isOrContains(j.editor, sourceImage)) {
56911
+ return;
56912
+ }
56913
+ if (j.o.image.selectImageAfterClose) {
56914
+ j.s.select(sourceImage);
56915
+ return;
56684
56916
  }
56917
+ var caret = j.s.createRange();
56918
+ caret.setStartAfter(sourceImage);
56919
+ caret.collapse(true);
56920
+ j.s.selectRange(caret);
56685
56921
  });
56686
56922
  dialog.setSize(j.o.image.dialogWidth);
56687
56923
  (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.markOwner)(j, dialog.container);
@@ -56719,6 +56955,7 @@ function _wrap_native_super(Class) {
56719
56955
  this.activeTabState.activeTab = 'Image';
56720
56956
  this.__lock();
56721
56957
  this.dialog.open().setModal(true).setPosition();
56958
+ this.__focusFirstField();
56722
56959
  this.async.promise(function(resolve, reject) {
56723
56960
  return (0,_readers_index_js__WEBPACK_IMPORTED_MODULE_10__.readValuesFromImage)(_this.j, _this.state).then(resolve, reject);
56724
56961
  }).catch(function(e) {
@@ -56731,6 +56968,21 @@ function _wrap_native_super(Class) {
56731
56968
  return false;
56732
56969
  }
56733
56970
  },
56971
+ {
56972
+ /**
56973
+ * Keys typed while the dialog is open must not reach the editor behind it,
56974
+ * so focus the active tab's first field, or else the first field shown
56975
+ */ key: "__focusFirstField",
56976
+ value: function __focusFirstField() {
56977
+ var _a;
56978
+ var fields = function fields(box) {
56979
+ return (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.toArray)(box.querySelectorAll('input, select, textarea'));
56980
+ };
56981
+ (_a = fields(this.form.getElm('tabsBox')).concat(fields(this.form.container)).find(function(field) {
56982
+ return field.offsetParent != null;
56983
+ })) === null || _a === void 0 ? void 0 : _a.focus();
56984
+ }
56985
+ },
56734
56986
  {
56735
56987
  key: "__lock",
56736
56988
  value: function __lock() {
@@ -63386,9 +63638,11 @@ var isButtonSeparator = function isButtonSeparator(item) {
63386
63638
  return cleaned;
63387
63639
  }
63388
63640
  /**
63389
- * The width that decides which breakpoint set the toolbar uses. A toolbar
63390
- * rendered into an external container (`toolbar` set to an element or a
63391
- * selector) lays out in that container, so its width is what matters there.
63641
+ * The width that decides which breakpoint set the toolbar uses: the editor's
63642
+ * own width, or its parent's while the editor has none yet (for example
63643
+ * while hidden at init). A toolbar rendered into an external container
63644
+ * (`toolbar` set to an element or a selector) lays out in that container, so
63645
+ * its width is what matters there.
63392
63646
  */ function adaptiveWidth(editor) {
63393
63647
  var _a;
63394
63648
  var toolbar = editor.o.toolbar;
@@ -63398,7 +63652,7 @@ var isButtonSeparator = function isButtonSeparator(item) {
63398
63652
  return width;
63399
63653
  }
63400
63654
  }
63401
- return ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
63655
+ return editor.container.offsetWidth || ((_a = editor.container.parentElement) !== null && _a !== void 0 ? _a : editor.container).offsetWidth;
63402
63656
  }
63403
63657
  /**
63404
63658
  * Rebuild toolbar in depends on editor's width