jodit-pro 4.12.27 → 4.12.33

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 (371) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +17 -15
  4. package/es2015/jodit.js +231 -74
  5. package/es2015/jodit.min.js +8 -8
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +34 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +596 -44
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +33 -33
  10. package/es2015/plugins/autocomplete/autocomplete.css +62 -0
  11. package/es2015/plugins/autocomplete/autocomplete.js +29 -2
  12. package/es2015/plugins/autocomplete/autocomplete.min.css +1 -0
  13. package/es2015/plugins/autocomplete/autocomplete.min.js +2 -2
  14. package/es2015/plugins/backup/backup.css +1 -1
  15. package/es2015/plugins/backup/backup.js +1 -1
  16. package/es2015/plugins/backup/backup.min.js +1 -1
  17. package/es2015/plugins/button-generator/button-generator.css +1 -1
  18. package/es2015/plugins/button-generator/button-generator.js +1 -1
  19. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  20. package/es2015/plugins/change-case/change-case.js +1 -1
  21. package/es2015/plugins/change-case/change-case.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/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 +23 -2
  49. package/es2015/plugins/page-break/page-break.min.js +2 -2
  50. package/es2015/plugins/paste-code/paste-code.css +28 -1
  51. package/es2015/plugins/paste-code/paste-code.js +489 -64
  52. package/es2015/plugins/paste-code/paste-code.min.css +1 -1
  53. package/es2015/plugins/paste-code/paste-code.min.js +4 -2
  54. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  55. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  56. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  57. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  58. package/es2015/plugins/style/style.css +1 -1
  59. package/es2015/plugins/style/style.js +1 -1
  60. package/es2015/plugins/style/style.min.js +1 -1
  61. package/es2015/plugins/templates/templates.css +1 -1
  62. package/es2015/plugins/templates/templates.js +1 -1
  63. package/es2015/plugins/templates/templates.min.js +1 -1
  64. package/es2015/plugins/todo-list/todo-list.css +1 -1
  65. package/es2015/plugins/todo-list/todo-list.js +9 -1
  66. package/es2015/plugins/todo-list/todo-list.min.js +2 -2
  67. package/es2015/plugins/translate/translate.css +1 -1
  68. package/es2015/plugins/translate/translate.js +1 -1
  69. package/es2015/plugins/translate/translate.min.js +1 -1
  70. package/es2015/plugins/tune-block/tune-block.css +1 -1
  71. package/es2015/plugins/tune-block/tune-block.js +1 -1
  72. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  73. package/es2018/jodit.fat.min.css +1 -1
  74. package/es2018/jodit.fat.min.js +16 -14
  75. package/es2018/jodit.min.js +8 -8
  76. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  77. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +38 -38
  78. package/es2018/plugins/autocomplete/autocomplete.min.css +1 -0
  79. package/es2018/plugins/autocomplete/autocomplete.min.js +2 -2
  80. package/es2018/plugins/backup/backup.min.js +1 -1
  81. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  82. package/es2018/plugins/change-case/change-case.min.js +1 -1
  83. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  84. package/es2018/plugins/emoji/emoji.min.js +1 -1
  85. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  86. package/es2018/plugins/finder/finder.min.js +1 -1
  87. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  88. package/es2018/plugins/google-search/google-search.min.js +1 -1
  89. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  90. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  91. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  92. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  93. package/es2018/plugins/page-break/page-break.min.js +2 -2
  94. package/es2018/plugins/paste-code/paste-code.min.css +1 -1
  95. package/es2018/plugins/paste-code/paste-code.min.js +4 -2
  96. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  97. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  98. package/es2018/plugins/style/style.min.js +1 -1
  99. package/es2018/plugins/templates/templates.min.js +1 -1
  100. package/es2018/plugins/todo-list/todo-list.min.js +2 -2
  101. package/es2018/plugins/translate/translate.min.js +1 -1
  102. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  103. package/es2021/jodit.css +1 -1
  104. package/es2021/jodit.fat.min.css +1 -1
  105. package/es2021/jodit.fat.min.js +18 -16
  106. package/es2021/jodit.js +231 -74
  107. package/es2021/jodit.min.js +9 -9
  108. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +34 -1
  109. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +569 -42
  110. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +9 -9
  112. package/es2021/plugins/autocomplete/autocomplete.css +62 -0
  113. package/es2021/plugins/autocomplete/autocomplete.js +29 -2
  114. package/es2021/plugins/autocomplete/autocomplete.min.css +1 -0
  115. package/es2021/plugins/autocomplete/autocomplete.min.js +2 -2
  116. package/es2021/plugins/backup/backup.css +1 -1
  117. package/es2021/plugins/backup/backup.js +1 -1
  118. package/es2021/plugins/backup/backup.min.js +1 -1
  119. package/es2021/plugins/button-generator/button-generator.css +1 -1
  120. package/es2021/plugins/button-generator/button-generator.js +1 -1
  121. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  122. package/es2021/plugins/change-case/change-case.js +1 -1
  123. package/es2021/plugins/change-case/change-case.min.js +1 -1
  124. package/es2021/plugins/color-picker/color-picker.css +1 -1
  125. package/es2021/plugins/color-picker/color-picker.js +1 -1
  126. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  127. package/es2021/plugins/emoji/emoji.css +1 -1
  128. package/es2021/plugins/emoji/emoji.js +1 -1
  129. package/es2021/plugins/emoji/emoji.min.js +1 -1
  130. package/es2021/plugins/export-docs/export-docs.js +1 -1
  131. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  132. package/es2021/plugins/finder/finder.css +1 -1
  133. package/es2021/plugins/finder/finder.js +1 -1
  134. package/es2021/plugins/finder/finder.min.js +1 -1
  135. package/es2021/plugins/google-maps/google-maps.css +1 -1
  136. package/es2021/plugins/google-maps/google-maps.js +1 -1
  137. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  138. package/es2021/plugins/google-search/google-search.js +1 -1
  139. package/es2021/plugins/google-search/google-search.min.js +1 -1
  140. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  141. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  142. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  143. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  144. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  145. package/es2021/plugins/keyboard/keyboard.css +1 -1
  146. package/es2021/plugins/keyboard/keyboard.js +1 -1
  147. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  148. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  149. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  150. package/es2021/plugins/page-break/page-break.js +23 -2
  151. package/es2021/plugins/page-break/page-break.min.js +2 -2
  152. package/es2021/plugins/paste-code/paste-code.css +28 -1
  153. package/es2021/plugins/paste-code/paste-code.js +488 -64
  154. package/es2021/plugins/paste-code/paste-code.min.css +1 -1
  155. package/es2021/plugins/paste-code/paste-code.min.js +4 -2
  156. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  157. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  158. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  159. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  160. package/es2021/plugins/style/style.css +1 -1
  161. package/es2021/plugins/style/style.js +1 -1
  162. package/es2021/plugins/style/style.min.js +1 -1
  163. package/es2021/plugins/templates/templates.css +1 -1
  164. package/es2021/plugins/templates/templates.js +1 -1
  165. package/es2021/plugins/templates/templates.min.js +1 -1
  166. package/es2021/plugins/todo-list/todo-list.css +1 -1
  167. package/es2021/plugins/todo-list/todo-list.js +9 -1
  168. package/es2021/plugins/todo-list/todo-list.min.js +2 -2
  169. package/es2021/plugins/translate/translate.css +1 -1
  170. package/es2021/plugins/translate/translate.js +1 -1
  171. package/es2021/plugins/translate/translate.min.js +1 -1
  172. package/es2021/plugins/tune-block/tune-block.css +1 -1
  173. package/es2021/plugins/tune-block/tune-block.js +1 -1
  174. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  175. package/es2021.en/jodit.css +1 -1
  176. package/es2021.en/jodit.fat.min.css +1 -1
  177. package/es2021.en/jodit.fat.min.js +29 -27
  178. package/es2021.en/jodit.js +231 -74
  179. package/es2021.en/jodit.min.js +9 -9
  180. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +34 -1
  181. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +569 -42
  182. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  183. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +9 -9
  184. package/es2021.en/plugins/autocomplete/autocomplete.css +62 -0
  185. package/es2021.en/plugins/autocomplete/autocomplete.js +29 -2
  186. package/es2021.en/plugins/autocomplete/autocomplete.min.css +1 -0
  187. package/es2021.en/plugins/autocomplete/autocomplete.min.js +2 -2
  188. package/es2021.en/plugins/backup/backup.css +1 -1
  189. package/es2021.en/plugins/backup/backup.js +1 -1
  190. package/es2021.en/plugins/backup/backup.min.js +1 -1
  191. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  192. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  193. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  194. package/es2021.en/plugins/change-case/change-case.js +1 -1
  195. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  196. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  197. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  198. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  199. package/es2021.en/plugins/emoji/emoji.css +1 -1
  200. package/es2021.en/plugins/emoji/emoji.js +1 -1
  201. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  202. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  203. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  204. package/es2021.en/plugins/finder/finder.css +1 -1
  205. package/es2021.en/plugins/finder/finder.js +1 -1
  206. package/es2021.en/plugins/finder/finder.min.js +1 -1
  207. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  208. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  209. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  210. package/es2021.en/plugins/google-search/google-search.js +1 -1
  211. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  212. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  213. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  214. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  215. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  216. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  217. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  218. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  219. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  220. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  221. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  222. package/es2021.en/plugins/page-break/page-break.js +23 -2
  223. package/es2021.en/plugins/page-break/page-break.min.js +2 -2
  224. package/es2021.en/plugins/paste-code/paste-code.css +28 -1
  225. package/es2021.en/plugins/paste-code/paste-code.js +488 -64
  226. package/es2021.en/plugins/paste-code/paste-code.min.css +1 -1
  227. package/es2021.en/plugins/paste-code/paste-code.min.js +4 -2
  228. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  229. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  230. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  231. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  232. package/es2021.en/plugins/style/style.css +1 -1
  233. package/es2021.en/plugins/style/style.js +1 -1
  234. package/es2021.en/plugins/style/style.min.js +1 -1
  235. package/es2021.en/plugins/templates/templates.css +1 -1
  236. package/es2021.en/plugins/templates/templates.js +1 -1
  237. package/es2021.en/plugins/templates/templates.min.js +1 -1
  238. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  239. package/es2021.en/plugins/todo-list/todo-list.js +9 -1
  240. package/es2021.en/plugins/todo-list/todo-list.min.js +2 -2
  241. package/es2021.en/plugins/translate/translate.css +1 -1
  242. package/es2021.en/plugins/translate/translate.js +1 -1
  243. package/es2021.en/plugins/translate/translate.min.js +1 -1
  244. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  245. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  246. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  247. package/es5/jodit.css +2 -2
  248. package/es5/jodit.fat.min.css +1 -1
  249. package/es5/jodit.fat.min.js +2 -2
  250. package/es5/jodit.js +333 -74
  251. package/es5/jodit.min.css +2 -2
  252. package/es5/jodit.min.js +2 -2
  253. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +34 -1
  254. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +734 -44
  255. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  256. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +2 -2
  257. package/es5/plugins/autocomplete/autocomplete.css +62 -0
  258. package/es5/plugins/autocomplete/autocomplete.js +29 -2
  259. package/es5/plugins/autocomplete/autocomplete.min.css +1 -0
  260. package/es5/plugins/autocomplete/autocomplete.min.js +2 -2
  261. package/es5/plugins/backup/backup.css +1 -1
  262. package/es5/plugins/backup/backup.js +1 -1
  263. package/es5/plugins/backup/backup.min.js +1 -1
  264. package/es5/plugins/button-generator/button-generator.css +1 -1
  265. package/es5/plugins/button-generator/button-generator.js +1 -1
  266. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  267. package/es5/plugins/change-case/change-case.js +1 -1
  268. package/es5/plugins/change-case/change-case.min.js +1 -1
  269. package/es5/plugins/color-picker/color-picker.css +1 -1
  270. package/es5/plugins/color-picker/color-picker.js +1 -1
  271. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  272. package/es5/plugins/emoji/emoji.css +1 -1
  273. package/es5/plugins/emoji/emoji.js +1 -1
  274. package/es5/plugins/emoji/emoji.min.js +1 -1
  275. package/es5/plugins/export-docs/export-docs.js +1 -1
  276. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  277. package/es5/plugins/finder/finder.css +1 -1
  278. package/es5/plugins/finder/finder.js +1 -1
  279. package/es5/plugins/finder/finder.min.js +1 -1
  280. package/es5/plugins/google-maps/google-maps.css +1 -1
  281. package/es5/plugins/google-maps/google-maps.js +1 -1
  282. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  283. package/es5/plugins/google-search/google-search.js +1 -1
  284. package/es5/plugins/google-search/google-search.min.js +1 -1
  285. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  286. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  287. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  288. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  289. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  290. package/es5/plugins/keyboard/keyboard.css +1 -1
  291. package/es5/plugins/keyboard/keyboard.js +1 -1
  292. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  293. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  294. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  295. package/es5/plugins/page-break/page-break.js +23 -2
  296. package/es5/plugins/page-break/page-break.min.js +2 -2
  297. package/es5/plugins/paste-code/paste-code.css +28 -1
  298. package/es5/plugins/paste-code/paste-code.js +586 -66
  299. package/es5/plugins/paste-code/paste-code.min.css +1 -1
  300. package/es5/plugins/paste-code/paste-code.min.js +2 -2
  301. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  302. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  303. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  304. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  305. package/es5/plugins/style/style.css +1 -1
  306. package/es5/plugins/style/style.js +1 -1
  307. package/es5/plugins/style/style.min.js +1 -1
  308. package/es5/plugins/templates/templates.css +1 -1
  309. package/es5/plugins/templates/templates.js +1 -1
  310. package/es5/plugins/templates/templates.min.js +1 -1
  311. package/es5/plugins/todo-list/todo-list.css +1 -1
  312. package/es5/plugins/todo-list/todo-list.js +9 -1
  313. package/es5/plugins/todo-list/todo-list.min.js +2 -2
  314. package/es5/plugins/translate/translate.css +1 -1
  315. package/es5/plugins/translate/translate.js +1 -1
  316. package/es5/plugins/translate/translate.min.js +1 -1
  317. package/es5/plugins/tune-block/tune-block.css +1 -1
  318. package/es5/plugins/tune-block/tune-block.js +1 -1
  319. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  320. package/es5/polyfills.fat.min.js +1 -1
  321. package/es5/polyfills.js +1 -1
  322. package/es5/polyfills.min.js +1 -1
  323. package/esm/config.d.ts +6 -1
  324. package/esm/plugins/ai-assistant-pro/config.js +1 -1
  325. package/esm/plugins/ai-assistant-pro/icons/microphone.svg.js +1 -0
  326. package/esm/plugins/ai-assistant-pro/interface/options.d.ts +35 -0
  327. package/esm/plugins/ai-assistant-pro/providers/jodit-ai-adapter.js +1 -1
  328. package/esm/plugins/ai-assistant-pro/ui/input-area/input-area.d.ts +20 -0
  329. package/esm/plugins/ai-assistant-pro/ui/input-area/input-area.js +2 -2
  330. package/esm/plugins/ai-assistant-pro/voice/microphone-streamer.d.ts +26 -0
  331. package/esm/plugins/ai-assistant-pro/voice/microphone-streamer.js +1 -0
  332. package/esm/plugins/ai-assistant-pro/voice/voice-engine.d.ts +36 -0
  333. package/esm/plugins/ai-assistant-pro/voice/voice-engine.js +0 -0
  334. package/esm/plugins/ai-assistant-pro/voice/voice-input-button.d.ts +85 -0
  335. package/esm/plugins/ai-assistant-pro/voice/voice-input-button.js +1 -0
  336. package/esm/plugins/ai-assistant-pro/voice/voice-transcriber.d.ts +55 -0
  337. package/esm/plugins/ai-assistant-pro/voice/voice-transcriber.js +1 -0
  338. package/esm/plugins/all.d.ts +1 -1
  339. package/esm/plugins/all.js +1 -1
  340. package/esm/plugins/autocomplete/autocomplete.d.ts +2 -26
  341. package/esm/plugins/autocomplete/autocomplete.impl.d.ts +31 -0
  342. package/esm/plugins/autocomplete/autocomplete.impl.js +1 -0
  343. package/esm/plugins/autocomplete/autocomplete.js +1 -1
  344. package/esm/plugins/index.d.ts +1 -1
  345. package/esm/plugins/index.js +1 -1
  346. package/esm/plugins/page-break/page-break.js +1 -1
  347. package/esm/plugins/paste-code/config.d.ts +6 -1
  348. package/esm/plugins/paste-code/config.js +1 -1
  349. package/esm/plugins/paste-code/helpers.d.ts +25 -0
  350. package/esm/plugins/paste-code/helpers.js +1 -0
  351. package/esm/plugins/paste-code/paste-code.d.ts +9 -0
  352. package/esm/plugins/paste-code/paste-code.js +1 -1
  353. package/esm/plugins/paste-code/ui/code-tuner/code-tuner.d.ts +87 -0
  354. package/esm/plugins/paste-code/ui/code-tuner/code-tuner.js +3 -0
  355. package/esm/plugins/paste-code/ui/code-tuner/drag.svg.js +1 -0
  356. package/esm/plugins/todo-list/todo-list.js +1 -1
  357. package/package.json +1 -1
  358. package/types/config.d.ts +6 -1
  359. package/types/plugins/ai-assistant-pro/interface/options.d.ts +35 -0
  360. package/types/plugins/ai-assistant-pro/ui/input-area/input-area.d.ts +20 -0
  361. package/types/plugins/ai-assistant-pro/voice/microphone-streamer.d.ts +26 -0
  362. package/types/plugins/ai-assistant-pro/voice/voice-engine.d.ts +36 -0
  363. package/types/plugins/ai-assistant-pro/voice/voice-input-button.d.ts +85 -0
  364. package/types/plugins/ai-assistant-pro/voice/voice-transcriber.d.ts +55 -0
  365. package/types/plugins/autocomplete/autocomplete.d.ts +2 -26
  366. package/types/plugins/autocomplete/autocomplete.impl.d.ts +31 -0
  367. package/types/plugins/index.d.ts +1 -1
  368. package/types/plugins/paste-code/config.d.ts +6 -1
  369. package/types/plugins/paste-code/helpers.d.ts +25 -0
  370. package/types/plugins/paste-code/paste-code.d.ts +9 -0
  371. package/types/plugins/paste-code/ui/code-tuner/code-tuner.d.ts +87 -0
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.12.27
4
+ * Version: v4.12.33
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1805,7 +1805,7 @@ __webpack_require__.r(__webpack_exports__);
1805
1805
  * ```
1806
1806
  * @packageDocumentation
1807
1807
  * @module constants
1808
- */ const APP_VERSION = "4.12.27";
1808
+ */ const APP_VERSION = "4.12.33";
1809
1809
  // prettier-ignore
1810
1810
  const ES = "es2015";
1811
1811
  const IS_ES_MODERN = true;
@@ -6139,6 +6139,7 @@ __webpack_require__.r(__webpack_exports__);
6139
6139
  /* harmony export */ LimitedStack: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.LimitedStack; },
6140
6140
  /* harmony export */ NUMBER_FIELDS_REG: function() { return /* reexport safe */ _normalize_index_js__WEBPACK_IMPORTED_MODULE_5__.NUMBER_FIELDS_REG; },
6141
6141
  /* harmony export */ OptionsError: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.OptionsError; },
6142
+ /* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.UNSAFE_PROTO_KEYS; },
6142
6143
  /* harmony export */ abort: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.abort; },
6143
6144
  /* harmony export */ alignElement: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.alignElement; },
6144
6145
  /* harmony export */ alreadyLoadedList: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.alreadyLoadedList; },
@@ -6211,6 +6212,7 @@ __webpack_require__.r(__webpack_exports__);
6211
6212
  /* harmony export */ isString: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isString; },
6212
6213
  /* harmony export */ isStringArray: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isStringArray; },
6213
6214
  /* harmony export */ isURL: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isURL; },
6215
+ /* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _utils_index_js__WEBPACK_IMPORTED_MODULE_8__.isUnsafeProtoKey; },
6214
6216
  /* harmony export */ isValidName: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isValidName; },
6215
6217
  /* harmony export */ isViewObject: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isViewObject; },
6216
6218
  /* harmony export */ isVoid: function() { return /* reexport safe */ _checker_index_js__WEBPACK_IMPORTED_MODULE_2__.isVoid; },
@@ -7617,7 +7619,8 @@ const completeUrl = (url)=>{
7617
7619
  /* harmony import */ var _checker_is_void_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86068);
7618
7620
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6441);
7619
7621
  /* harmony import */ var _extend_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97735);
7620
- /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37790);
7622
+ /* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(69175);
7623
+ /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37790);
7621
7624
  /*!
7622
7625
  * Jodit Editor (https://xdsoft.net/jodit/)
7623
7626
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -7629,18 +7632,7 @@ const completeUrl = (url)=>{
7629
7632
 
7630
7633
 
7631
7634
 
7632
- /**
7633
- * Keys that must never be copied from a (potentially untrusted) config object —
7634
- * assigning them during a recursive merge can reach and mutate
7635
- * `Object.prototype` (prototype pollution, CWE-1321).
7636
- */ const UNSAFE_PROTO_KEYS = [
7637
- '__proto__',
7638
- 'constructor',
7639
- 'prototype'
7640
- ];
7641
- function isUnsafeProtoKey(key) {
7642
- return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
7643
- }
7635
+
7644
7636
  /**
7645
7637
  * @example
7646
7638
  * ```js
@@ -7689,7 +7681,7 @@ function isUnsafeProtoKey(key) {
7689
7681
  }
7690
7682
  const newOpt = {};
7691
7683
  Object.keys(options).forEach((key)=>{
7692
- if (isUnsafeProtoKey(key)) {
7684
+ if ((0,_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__.isUnsafeProtoKey)(key)) {
7693
7685
  return;
7694
7686
  }
7695
7687
  const opt = options[key], protoKey = proto ? proto[key] : null;
@@ -7711,7 +7703,7 @@ function isUnsafeProtoKey(key) {
7711
7703
  return newOpt;
7712
7704
  }
7713
7705
  function ConfigFlatten(obj) {
7714
- return (0,_utils_js__WEBPACK_IMPORTED_MODULE_6__.keys)(obj, false).reduce((app, key)=>{
7706
+ return (0,_utils_js__WEBPACK_IMPORTED_MODULE_7__.keys)(obj, false).reduce((app, key)=>{
7715
7707
  app[key] = obj[key];
7716
7708
  return app;
7717
7709
  }, {});
@@ -7753,7 +7745,7 @@ function ConfigFlatten(obj) {
7753
7745
  * @see {@link ConfigProto} for the prototype-chain variant used at editor creation time
7754
7746
  */ function ConfigMerge(target, source) {
7755
7747
  Object.keys(source).forEach((key)=>{
7756
- if (isUnsafeProtoKey(key)) {
7748
+ if ((0,_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_6__.isUnsafeProtoKey)(key)) {
7757
7749
  return;
7758
7750
  }
7759
7751
  const srcVal = source[key];
@@ -7766,7 +7758,7 @@ function ConfigFlatten(obj) {
7766
7758
  });
7767
7759
  }
7768
7760
  function ConfigDeepFlatten(obj) {
7769
- return (0,_utils_js__WEBPACK_IMPORTED_MODULE_6__.keys)(obj, false).reduce((app, key)=>{
7761
+ return (0,_utils_js__WEBPACK_IMPORTED_MODULE_7__.keys)(obj, false).reduce((app, key)=>{
7770
7762
  app[key] = (0,_checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(obj[key]) ? ConfigDeepFlatten(obj[key]) : obj[key];
7771
7763
  return app;
7772
7764
  }, {});
@@ -8339,14 +8331,15 @@ const getClassName = (obj)=>{
8339
8331
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8340
8332
 
8341
8333
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8342
- /* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_23__.$$; },
8334
+ /* harmony export */ $$: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.$$; },
8343
8335
  /* harmony export */ ConfigDeepFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigDeepFlatten; },
8344
8336
  /* harmony export */ ConfigFlatten: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigFlatten; },
8345
8337
  /* harmony export */ ConfigMerge: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigMerge; },
8346
8338
  /* harmony export */ ConfigProto: function() { return /* reexport safe */ _config_proto_js__WEBPACK_IMPORTED_MODULE_7__.ConfigProto; },
8347
8339
  /* harmony export */ ConnectionError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.ConnectionError; },
8348
- /* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_25__.LimitedStack; },
8340
+ /* harmony export */ LimitedStack: function() { return /* reexport safe */ _stack_js__WEBPACK_IMPORTED_MODULE_26__.LimitedStack; },
8349
8341
  /* harmony export */ OptionsError: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.OptionsError; },
8342
+ /* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.UNSAFE_PROTO_KEYS; },
8350
8343
  /* harmony export */ abort: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.abort; },
8351
8344
  /* harmony export */ alignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.alignElement; },
8352
8345
  /* harmony export */ alreadyLoadedList: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.alreadyLoadedList; },
@@ -8356,17 +8349,17 @@ const getClassName = (obj)=>{
8356
8349
  /* harmony export */ attr: function() { return /* reexport safe */ _attr_js__WEBPACK_IMPORTED_MODULE_3__.attr; },
8357
8350
  /* harmony export */ browser: function() { return /* reexport safe */ _browser_js__WEBPACK_IMPORTED_MODULE_4__.browser; },
8358
8351
  /* harmony export */ buildQuery: function() { return /* reexport safe */ _build_query_js__WEBPACK_IMPORTED_MODULE_5__.buildQuery; },
8359
- /* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.call; },
8360
- /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.callPromise; },
8361
- /* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.callThis; },
8352
+ /* harmony export */ call: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.call; },
8353
+ /* harmony export */ callPromise: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.callPromise; },
8354
+ /* harmony export */ callThis: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.callThis; },
8362
8355
  /* harmony export */ clearAlign: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.clearAlign; },
8363
8356
  /* harmony export */ clearCenterAlign: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.clearCenterAlign; },
8364
- /* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_18__.cns; },
8357
+ /* harmony export */ cns: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.cns; },
8365
8358
  /* harmony export */ completeUrl: function() { return /* reexport safe */ _complete_url_js__WEBPACK_IMPORTED_MODULE_6__.completeUrl; },
8366
8359
  /* harmony export */ connection: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.connection; },
8367
8360
  /* harmony export */ convertMediaUrlToVideoEmbed: function() { return /* reexport safe */ _convert_media_url_to_video_embed_js__WEBPACK_IMPORTED_MODULE_8__.convertMediaUrlToVideoEmbed; },
8368
8361
  /* harmony export */ css: function() { return /* reexport safe */ _css_js__WEBPACK_IMPORTED_MODULE_9__.css; },
8369
- /* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_23__.cssPath; },
8362
+ /* harmony export */ cssPath: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.cssPath; },
8370
8363
  /* harmony export */ ctrlKey: function() { return /* reexport safe */ _ctrl_key_js__WEBPACK_IMPORTED_MODULE_10__.ctrlKey; },
8371
8364
  /* harmony export */ dataBind: function() { return /* reexport safe */ _data_bind_js__WEBPACK_IMPORTED_MODULE_11__.dataBind; },
8372
8365
  /* harmony export */ defaultLanguage: function() { return /* reexport safe */ _default_language_js__WEBPACK_IMPORTED_MODULE_12__.defaultLanguage; },
@@ -8374,30 +8367,31 @@ const getClassName = (obj)=>{
8374
8367
  /* harmony export */ fastClone: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.fastClone; },
8375
8368
  /* harmony export */ get: function() { return /* reexport safe */ _get_js__WEBPACK_IMPORTED_MODULE_15__.get; },
8376
8369
  /* harmony export */ getClassName: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.getClassName; },
8377
- /* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.getDataTransfer; },
8378
- /* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.getPropertyDescriptor; },
8379
- /* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_23__.getXPathByElement; },
8370
+ /* harmony export */ getDataTransfer: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.getDataTransfer; },
8371
+ /* harmony export */ getPropertyDescriptor: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.getPropertyDescriptor; },
8372
+ /* harmony export */ getXPathByElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.getXPathByElement; },
8380
8373
  /* harmony export */ hAlignElement: function() { return /* reexport safe */ _align_js__WEBPACK_IMPORTED_MODULE_0__.hAlignElement; },
8381
8374
  /* harmony export */ humanSizeToBytes: function() { return /* reexport safe */ _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__.humanSizeToBytes; },
8382
- /* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_22__.inView; },
8375
+ /* harmony export */ inView: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__.inView; },
8383
8376
  /* harmony export */ isAtom: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.isAtom; },
8377
+ /* harmony export */ isUnsafeProtoKey: function() { return /* reexport safe */ _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__.isUnsafeProtoKey; },
8384
8378
  /* harmony export */ keepNames: function() { return /* reexport safe */ _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__.keepNames; },
8385
- /* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.keys; },
8386
- /* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.loadImage; },
8379
+ /* harmony export */ keys: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.keys; },
8380
+ /* harmony export */ loadImage: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.loadImage; },
8387
8381
  /* harmony export */ loadNext: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNext; },
8388
8382
  /* harmony export */ loadNextStyle: function() { return /* reexport safe */ _append_script_js__WEBPACK_IMPORTED_MODULE_1__.loadNextStyle; },
8389
8383
  /* harmony export */ markAsAtomic: function() { return /* reexport safe */ _extend_js__WEBPACK_IMPORTED_MODULE_14__.markAsAtomic; },
8390
- /* harmony export */ markDeprecated: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_18__.markDeprecated; },
8391
- /* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.markOwner; },
8392
- /* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_26__.memorizeExec; },
8384
+ /* harmony export */ markDeprecated: function() { return /* reexport safe */ _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__.markDeprecated; },
8385
+ /* harmony export */ markOwner: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.markOwner; },
8386
+ /* harmony export */ memorizeExec: function() { return /* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_27__.memorizeExec; },
8393
8387
  /* harmony export */ options: function() { return /* reexport safe */ _error_index_js__WEBPACK_IMPORTED_MODULE_13__.options; },
8394
- /* harmony export */ parseQuery: function() { return /* reexport safe */ _parse_query_js__WEBPACK_IMPORTED_MODULE_19__.parseQuery; },
8395
- /* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_20__.previewBox; },
8396
- /* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_23__.refs; },
8397
- /* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_21__.reset; },
8398
- /* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_23__.resolveElement; },
8399
- /* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_22__.scrollIntoViewIfNeeded; },
8400
- /* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_24__.set; }
8388
+ /* harmony export */ parseQuery: function() { return /* reexport safe */ _parse_query_js__WEBPACK_IMPORTED_MODULE_20__.parseQuery; },
8389
+ /* harmony export */ previewBox: function() { return /* reexport safe */ _print_js__WEBPACK_IMPORTED_MODULE_21__.previewBox; },
8390
+ /* harmony export */ refs: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.refs; },
8391
+ /* harmony export */ reset: function() { return /* reexport safe */ _reset_js__WEBPACK_IMPORTED_MODULE_22__.reset; },
8392
+ /* harmony export */ resolveElement: function() { return /* reexport safe */ _selector_js__WEBPACK_IMPORTED_MODULE_24__.resolveElement; },
8393
+ /* harmony export */ scrollIntoViewIfNeeded: function() { return /* reexport safe */ _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__.scrollIntoViewIfNeeded; },
8394
+ /* harmony export */ set: function() { return /* reexport safe */ _set_js__WEBPACK_IMPORTED_MODULE_25__.set; }
8401
8395
  /* harmony export */ });
8402
8396
  /* harmony import */ var _align_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25726);
8403
8397
  /* harmony import */ var _append_script_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63799);
@@ -8417,15 +8411,16 @@ const getClassName = (obj)=>{
8417
8411
  /* harmony import */ var _get_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(94643);
8418
8412
  /* harmony import */ var _get_class_name_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(80568);
8419
8413
  /* harmony import */ var _human_size_to_bytes_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(38420);
8420
- /* harmony import */ var _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(95942);
8421
- /* harmony import */ var _parse_query_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(82501);
8422
- /* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(11628);
8423
- /* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(58844);
8424
- /* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(26395);
8425
- /* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(76078);
8426
- /* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(3703);
8427
- /* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(50535);
8428
- /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(37790);
8414
+ /* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(69175);
8415
+ /* harmony import */ var _mark_deprecated_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(95942);
8416
+ /* harmony import */ var _parse_query_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(82501);
8417
+ /* harmony import */ var _print_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(11628);
8418
+ /* harmony import */ var _reset_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(58844);
8419
+ /* harmony import */ var _scroll_into_view_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(26395);
8420
+ /* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(76078);
8421
+ /* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(3703);
8422
+ /* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(50535);
8423
+ /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(37790);
8429
8424
  /*!
8430
8425
  * Jodit Editor (https://xdsoft.net/jodit/)
8431
8426
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -8459,6 +8454,38 @@ const getClassName = (obj)=>{
8459
8454
 
8460
8455
 
8461
8456
 
8457
+
8458
+
8459
+
8460
+ /***/ }),
8461
+
8462
+ /***/ 69175:
8463
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
8464
+
8465
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8466
+ /* harmony export */ UNSAFE_PROTO_KEYS: function() { return /* binding */ UNSAFE_PROTO_KEYS; },
8467
+ /* harmony export */ isUnsafeProtoKey: function() { return /* binding */ isUnsafeProtoKey; }
8468
+ /* harmony export */ });
8469
+ /*!
8470
+ * Jodit Editor (https://xdsoft.net/jodit/)
8471
+ * Released under MIT see LICENSE.txt in the project root for license information.
8472
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
8473
+ */ /**
8474
+ * @module helpers/utils
8475
+ */ /**
8476
+ * Keys that must never be written from a (potentially untrusted) source —
8477
+ * assigning them while walking/merging an object can reach and mutate
8478
+ * `Object.prototype` (prototype pollution, CWE-1321).
8479
+ */ const UNSAFE_PROTO_KEYS = [
8480
+ '__proto__',
8481
+ 'constructor',
8482
+ 'prototype'
8483
+ ];
8484
+ /**
8485
+ * Check whether a key can be used to pollute the prototype chain.
8486
+ */ function isUnsafeProtoKey(key) {
8487
+ return UNSAFE_PROTO_KEYS.indexOf(key) !== -1;
8488
+ }
8462
8489
 
8463
8490
 
8464
8491
  /***/ }),
@@ -8931,6 +8958,7 @@ const $$temp = ()=>{
8931
8958
  /* harmony import */ var _checker_is_numeric_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29807);
8932
8959
  /* harmony import */ var _checker_is_plain_object_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72430);
8933
8960
  /* harmony import */ var _checker_is_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70799);
8961
+ /* harmony import */ var _is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69175);
8934
8962
  /*!
8935
8963
  * Jodit Editor (https://xdsoft.net/jodit/)
8936
8964
  * Released under MIT see LICENSE.txt in the project root for license information.
@@ -8939,6 +8967,7 @@ const $$temp = ()=>{
8939
8967
 
8940
8968
 
8941
8969
 
8970
+
8942
8971
  /**
8943
8972
  * Safe access in tree object
8944
8973
  *
@@ -8956,6 +8985,9 @@ const $$temp = ()=>{
8956
8985
  return;
8957
8986
  }
8958
8987
  const parts = chain.split('.');
8988
+ if (parts.some(_is_unsafe_proto_key_js__WEBPACK_IMPORTED_MODULE_4__.isUnsafeProtoKey)) {
8989
+ return;
8990
+ }
8959
8991
  let result = obj, key = parts[0];
8960
8992
  for(let i = 0; i < parts.length - 1; i += 1){
8961
8993
  key = parts[i];
@@ -27765,12 +27797,17 @@ const TABS = {
27765
27797
  self.j.alert('The name should not be empty');
27766
27798
  return false;
27767
27799
  }
27800
+ self.j.e.fire('afterImageEditorSave', data, name);
27768
27801
  self.onSave(name, data, self.hide, (e)=>{
27769
27802
  self.j.alert(e.message);
27770
27803
  });
27771
27804
  });
27772
27805
  break;
27773
27806
  case self.buttons.save:
27807
+ // Notify listeners that a crop/resize was applied,
27808
+ // passing the action box (action + box dimensions).
27809
+ // See https://github.com/xdan/jodit/issues/820
27810
+ self.j.e.fire('afterImageEditorSave', data);
27774
27811
  self.onSave(undefined, data, self.hide, (e)=>{
27775
27812
  self.j.alert(e.message);
27776
27813
  });
@@ -30311,6 +30348,15 @@ function processOldBrowserDrag(self, cData, handlerSuccess, handlerError, onFina
30311
30348
  if (!fileList.length) {
30312
30349
  return Promise.reject((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.error)('Need files'));
30313
30350
  }
30351
+ // Client-side validation hook — returning `false` aborts the upload.
30352
+ // See https://github.com/xdan/jodit/issues/1329
30353
+ if ((0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.isFunction)(o.beforeUpload)) {
30354
+ if (o.beforeUpload.call(uploader, fileList) === false) {
30355
+ const err = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_0__.error)('Upload canceled');
30356
+ (handlerError || o.defaultHandlerError).call(uploader, err);
30357
+ return Promise.reject(err);
30358
+ }
30359
+ }
30314
30360
  const promises = [];
30315
30361
  if (o.insertImageAsBase64URI) {
30316
30362
  readImagesWithReader(fileList, o.imagesExtensions, promises, uploader, handlerSuccess, o.defaultHandlerSuccess);
@@ -32141,10 +32187,14 @@ class backspace extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_4__.Plugi
32141
32187
  return false;
32142
32188
  }
32143
32189
  (0,_core_selection_helpers_index_js__WEBPACK_IMPORTED_MODULE_5__.moveNodeInsideStart)(jodit, fakeNode, backspace);
32144
- if (_cases_index_js__WEBPACK_IMPORTED_MODULE_8__.cases.some((func)=>{
32190
+ const disabled = jodit.o.delete.disableCases;
32191
+ if (_cases_index_js__WEBPACK_IMPORTED_MODULE_8__.casesMap.some(([key, func])=>{
32192
+ if (disabled && disabled.has(key)) {
32193
+ return;
32194
+ }
32145
32195
  if ((0,_core_helpers_checker_is_function_js__WEBPACK_IMPORTED_MODULE_3__.isFunction)(func) && func(jodit, fakeNode, backspace, mode)) {
32146
32196
  if (!_core_constants_js__WEBPACK_IMPORTED_MODULE_0__.IS_PROD) {
32147
- console.info('Remove case:', func.name);
32197
+ console.info('Remove case:', key);
32148
32198
  }
32149
32199
  return true;
32150
32200
  }
@@ -32806,8 +32856,9 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
32806
32856
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
32807
32857
 
32808
32858
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32809
- /* harmony export */ cases: function() { return /* binding */ cases; }
32859
+ /* harmony export */ casesMap: function() { return /* binding */ casesMap; }
32810
32860
  /* harmony export */ });
32861
+ /* unused harmony export cases */
32811
32862
  /* harmony import */ var _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62845);
32812
32863
  /* harmony import */ var _check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91748);
32813
32864
  /* harmony import */ var _check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73792);
@@ -32821,8 +32872,6 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
32821
32872
  * Jodit Editor (https://xdsoft.net/jodit/)
32822
32873
  * Released under MIT see LICENSE.txt in the project root for license information.
32823
32874
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
32824
- */ /**
32825
- * @module plugins/backspace
32826
32875
  */
32827
32876
 
32828
32877
 
@@ -32833,18 +32882,52 @@ function checkRepeatRemoveCharAction(backspace, sibling, fakeNode, mode, removed
32833
32882
 
32834
32883
 
32835
32884
  /**
32885
+ * Ordered delete/backspace cases with stable keys. The first one returning
32886
+ * `true` wins. The keys are stable across minified builds (function names are
32887
+ * mangled by terser) so they can be referenced by `delete.disableCases`.
32836
32888
  * @private
32837
- */ const cases = [
32838
- _check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__.checkRemoveUnbreakableElement,
32839
- _check_remove_content_not_editable_js__WEBPACK_IMPORTED_MODULE_3__.checkRemoveContentNotEditable,
32840
- _check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__.checkRemoveChar,
32841
- _check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__.checkTableCell,
32842
- _check_remove_empty_parent_js__WEBPACK_IMPORTED_MODULE_5__.checkRemoveEmptyParent,
32843
- _check_remove_empty_neighbor_js__WEBPACK_IMPORTED_MODULE_4__.checkRemoveEmptyNeighbor,
32844
- _check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists,
32845
- _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors,
32846
- _check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__.checkUnwrapFirstListItem
32889
+ */ const casesMap = [
32890
+ [
32891
+ 'remove-unbreakable',
32892
+ _check_remove_unbreakable_element_js__WEBPACK_IMPORTED_MODULE_6__.checkRemoveUnbreakableElement
32893
+ ],
32894
+ [
32895
+ 'remove-not-editable',
32896
+ _check_remove_content_not_editable_js__WEBPACK_IMPORTED_MODULE_3__.checkRemoveContentNotEditable
32897
+ ],
32898
+ [
32899
+ 'remove-char',
32900
+ _check_remove_char_js__WEBPACK_IMPORTED_MODULE_2__.checkRemoveChar
32901
+ ],
32902
+ [
32903
+ 'table-cell',
32904
+ _check_table_cell_js__WEBPACK_IMPORTED_MODULE_7__.checkTableCell
32905
+ ],
32906
+ [
32907
+ 'remove-empty-parent',
32908
+ _check_remove_empty_parent_js__WEBPACK_IMPORTED_MODULE_5__.checkRemoveEmptyParent
32909
+ ],
32910
+ [
32911
+ 'remove-empty-neighbor',
32912
+ _check_remove_empty_neighbor_js__WEBPACK_IMPORTED_MODULE_4__.checkRemoveEmptyNeighbor
32913
+ ],
32914
+ [
32915
+ 'join-two-lists',
32916
+ _check_join_two_lists_js__WEBPACK_IMPORTED_MODULE_1__.checkJoinTwoLists
32917
+ ],
32918
+ [
32919
+ 'join-neighbors',
32920
+ _check_join_neighbors_js__WEBPACK_IMPORTED_MODULE_0__.checkJoinNeighbors
32921
+ ],
32922
+ [
32923
+ 'unwrap-first-list-item',
32924
+ _check_unwrap_first_list_item_js__WEBPACK_IMPORTED_MODULE_8__.checkUnwrapFirstListItem
32925
+ ]
32847
32926
  ];
32927
+ /**
32928
+ * @private
32929
+ * @deprecated Use `casesMap` to also get the stable case keys.
32930
+ */ const cases = casesMap.map(([, fn])=>fn);
32848
32931
 
32849
32932
 
32850
32933
  /***/ }),
@@ -33380,6 +33463,18 @@ _core_ui_icon_js__WEBPACK_IMPORTED_MODULE_4__.Icon.set('class-span', _class_span
33380
33463
  _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_1__.Dom.safeRemove(iframe);
33381
33464
  return false;
33382
33465
  }
33466
+ /**
33467
+ * Collapse a value that holds only a single empty block (e.g.
33468
+ * `<p><br></p>` left after deleting all content) to an empty string —
33469
+ * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
33470
+ */ onAfterGetValueFromEditor(data) {
33471
+ if (!this.j.o.cleanHTML.collapseEmptyValueToEmptyString) {
33472
+ return;
33473
+ }
33474
+ if (/^<([a-z][a-z0-9]*)\b[^>]*>(?:<br\/?>)?<\/\1>$/i.test(data.value.trim())) {
33475
+ data.value = '';
33476
+ }
33477
+ }
33383
33478
  onSafeHTML(sandBox) {
33384
33479
  const sanitizer = this.j.o.cleanHTML.sanitizer;
33385
33480
  if (sanitizer) {
@@ -33422,6 +33517,9 @@ __decorate([
33422
33517
  __decorate([
33423
33518
  (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':beforeSetNativeEditorValue')
33424
33519
  ], cleanHtml.prototype, "onBeforeSetNativeEditorValue", null);
33520
+ __decorate([
33521
+ (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':afterGetValueFromEditor')
33522
+ ], cleanHtml.prototype, "onAfterGetValueFromEditor", null);
33425
33523
  __decorate([
33426
33524
  (0,_core_decorators_index_js__WEBPACK_IMPORTED_MODULE_0__.watch)(':safeHTML')
33427
33525
  ], cleanHtml.prototype, "onSafeHTML", null);
@@ -33447,6 +33545,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.cleanHTML = {
33447
33545
  timeout: 300,
33448
33546
  removeEmptyElements: true,
33449
33547
  fillEmptyParagraph: true,
33548
+ collapseEmptyValueToEmptyString: false,
33450
33549
  replaceNBSP: true,
33451
33550
  replaceOldTags: {
33452
33551
  i: 'em',
@@ -36837,6 +36936,25 @@ _config_js__WEBPACK_IMPORTED_MODULE_4__.Config.prototype.controls.font = _object
36837
36936
  return v.toLowerCase().replace(/['"]+/g, '').replace(/[^a-z0-9-]+/g, ',');
36838
36937
  }
36839
36938
  },
36939
+ // When no font is explicitly set, the computed font-family equals the
36940
+ // editor's own default (e.g. `-apple-system, …`). Return '' so the
36941
+ // button shows the `Default` list entry instead of that raw stack.
36942
+ // See #1370
36943
+ value: (editor)=>{
36944
+ const current = editor.s.current();
36945
+ if (!current) {
36946
+ return;
36947
+ }
36948
+ const box = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.closest(current, _core_dom_index_js__WEBPACK_IMPORTED_MODULE_0__.Dom.isElement, editor.editor);
36949
+ if (!box) {
36950
+ return;
36951
+ }
36952
+ const value = (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(box, 'font-family').toString();
36953
+ if (value === (0,_core_helpers_utils_css_js__WEBPACK_IMPORTED_MODULE_2__.css)(editor.editor, 'font-family').toString()) {
36954
+ return '';
36955
+ }
36956
+ return value;
36957
+ },
36840
36958
  tooltip: 'Font family'
36841
36959
  });
36842
36960
 
@@ -41483,6 +41601,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.link = {
41483
41601
  noFollowCheckbox: true,
41484
41602
  openInNewTabCheckbox: true,
41485
41603
  openInNewTabCheckboxDefaultChecked: false,
41604
+ ariaLabelInput: false,
41486
41605
  modeClassName: 'input',
41487
41606
  selectMultipleClassName: true,
41488
41607
  preventReadOnlyNavigation: true,
@@ -41652,7 +41771,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
41652
41771
  const currentElement = current;
41653
41772
  const isImageContent = _core_dom_index_js__WEBPACK_IMPORTED_MODULE_1__.Dom.isImage(currentElement);
41654
41773
  let { content_input } = elements;
41655
- const { className_input } = elements, { className_select } = elements;
41774
+ const { className_input } = elements, { className_select } = elements, { aria_label_input } = elements;
41656
41775
  if (!content_input) {
41657
41776
  content_input = jodit.c.element('input', {
41658
41777
  type: 'hidden',
@@ -41675,6 +41794,9 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
41675
41794
  if (!isImageContent && current) {
41676
41795
  content_input.value = getSelectionText();
41677
41796
  }
41797
+ if (aria_label_input) {
41798
+ aria_label_input.value = link ? (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'aria-label') || '' : '';
41799
+ }
41678
41800
  if (link) {
41679
41801
  url_input.value = (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(link, 'href') || '';
41680
41802
  if (modeClassName) {
@@ -41762,6 +41884,10 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.link = {
41762
41884
  }
41763
41885
  (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'rel', relParts.length ? relParts.join(' ') : null);
41764
41886
  }
41887
+ if (aria_label_input) {
41888
+ const ariaLabel = aria_label_input.value.trim();
41889
+ (0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_3__.attr)(a, 'aria-label', ariaLabel || null);
41890
+ }
41765
41891
  jodit.e.fire('applyLink', jodit, a, form);
41766
41892
  });
41767
41893
  jodit.synchronizeValues();
@@ -41900,7 +42026,7 @@ function writeImage(a, content_input, textWasChanged, url_input) {
41900
42026
  */
41901
42027
 
41902
42028
  const formTemplate = (editor)=>{
41903
- const { openInNewTabCheckbox, noFollowCheckbox, modeClassName, selectSizeClassName, selectMultipleClassName, selectOptionsClassName } = editor.o.link;
42029
+ const { openInNewTabCheckbox, noFollowCheckbox, ariaLabelInput, modeClassName, selectSizeClassName, selectMultipleClassName, selectOptionsClassName } = editor.o.link;
41904
42030
  return new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIForm(editor, [
41905
42031
  new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
41906
42032
  new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
@@ -41912,6 +42038,13 @@ const formTemplate = (editor)=>{
41912
42038
  required: true
41913
42039
  })
41914
42040
  ]),
42041
+ ariaLabelInput ? new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
42042
+ new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
42043
+ name: 'ariaLabel',
42044
+ ref: 'aria_label_input',
42045
+ label: 'Aria label'
42046
+ })
42047
+ ]) : null,
41915
42048
  new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIBlock(editor, [
41916
42049
  new _core_ui_form_index_js__WEBPACK_IMPORTED_MODULE_1__.UIInput(editor, {
41917
42050
  name: 'content',
@@ -45637,15 +45770,37 @@ class selectCells extends _core_plugin_index_js__WEBPACK_IMPORTED_MODULE_5__.Plu
45637
45770
  }
45638
45771
  /**
45639
45772
  * Mouse click inside the table
45640
- */ onStartSelection(cell) {
45773
+ */ onStartSelection(cell, event) {
45774
+ var _a;
45641
45775
  if (this.j.o.readonly) {
45642
45776
  return;
45643
45777
  }
45778
+ const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
45779
+ // Ctrl/Cmd + click toggles a single cell into the existing selection
45780
+ // instead of resetting it — non-contiguous multi-cell selection.
45781
+ // See https://github.com/xdan/jodit/issues/1163
45782
+ if (((event === null || event === void 0 ? void 0 : event.ctrlKey) || (event === null || event === void 0 ? void 0 : event.metaKey)) && cell !== this.j.editor && table && _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.isCell(cell)) {
45783
+ if (this.__tableModule.getAllSelectedCells().includes(cell)) {
45784
+ this.__tableModule.removeSelection(cell);
45785
+ } else {
45786
+ if (!cell.firstChild) {
45787
+ cell.appendChild(this.j.createInside.element('br'));
45788
+ }
45789
+ this.__tableModule.addSelection(cell);
45790
+ }
45791
+ this.__selectedCell = cell;
45792
+ (_a = this.j.s.sel) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
45793
+ if (this.__tableModule.getAllSelectedCells().length) {
45794
+ this.j.e.fire('showPopup', table, ()=>(0,_core_helpers_index_js__WEBPACK_IMPORTED_MODULE_4__.position)(cell, this.j), 'cells');
45795
+ } else {
45796
+ this.j.e.fire('hidePopup', 'cells');
45797
+ }
45798
+ return false;
45799
+ }
45644
45800
  this.unselectCells();
45645
45801
  if (cell === this.j.editor) {
45646
45802
  return;
45647
45803
  }
45648
- const table = _core_dom_dom_js__WEBPACK_IMPORTED_MODULE_2__.Dom.closest(cell, 'table', this.j.editor);
45649
45804
  if (!cell || !table) {
45650
45805
  return;
45651
45806
  }
@@ -46424,7 +46579,7 @@ _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.sourceEditorNativeOptio
46424
46579
  */ highlightActiveLine: true
46425
46580
  };
46426
46581
  _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.sourceEditorCDNUrlsJS = [
46427
- 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.2/ace.js'
46582
+ 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.43.3/ace.js'
46428
46583
  ];
46429
46584
  _config_js__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.beautifyHTMLCDNUrlsJS = [
46430
46585
  'https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.14.4/beautify.min.js',
@@ -51428,10 +51583,9 @@ class JoditPro extends jodit_esm_index__WEBPACK_IMPORTED_MODULE_4__.Jodit {
51428
51583
 
51429
51584
  /***/ }),
51430
51585
 
51431
- /***/ 44864:
51586
+ /***/ 49934:
51432
51587
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
51433
51588
 
51434
- __webpack_require__.r(__webpack_exports__);
51435
51589
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
51436
51590
  /* harmony export */ autocomplete: function() { return /* binding */ autocomplete; }
51437
51591
  /* harmony export */ });
@@ -52008,7 +52162,7 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__de
52008
52162
  /* harmony import */ var jodit_esm_plugins_all__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25187);
52009
52163
  /* harmony import */ var jodit_pro_plugins_paste_from_word_paste_from_word__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58858);
52010
52164
  /* harmony import */ var jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21246);
52011
- /* harmony import */ var jodit_pro_plugins_autocomplete_autocomplete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44864);
52165
+ /* harmony import */ var jodit_pro_plugins_autocomplete_autocomplete_impl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49934);
52012
52166
  /* harmony import */ var jodit_esm_plugins_speech_recognize_speech_recognize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3115);
52013
52167
  /*!
52014
52168
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
@@ -52017,6 +52171,9 @@ AutocompleteItem = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__de
52017
52171
  */
52018
52172
 
52019
52173
 
52174
+ // `.impl` (not the standalone entry) — the entry additionally carries the
52175
+ // standalone stylesheet that must stay OUT of the main bundle so webpack
52176
+ // emits plugins/autocomplete/autocomplete.min.css. See #1308
52020
52177
 
52021
52178
 
52022
52179