jodit-pro 4.6.9 → 4.6.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 (369) hide show
  1. package/.nvmrc +1 -1
  2. package/es2015/jodit.css +1 -1
  3. package/es2015/jodit.fat.min.js +2 -2
  4. package/es2015/jodit.js +1382 -1370
  5. package/es2015/jodit.min.js +2 -2
  6. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  7. package/es2015/plugins/autocomplete/autocomplete.min.js +2 -2
  8. package/es2015/plugins/backup/backup.css +1 -1
  9. package/es2015/plugins/backup/backup.js +65 -65
  10. package/es2015/plugins/backup/backup.min.js +2 -2
  11. package/es2015/plugins/button-generator/button-generator.css +1 -1
  12. package/es2015/plugins/button-generator/button-generator.js +110 -110
  13. package/es2015/plugins/button-generator/button-generator.min.js +2 -2
  14. package/es2015/plugins/change-case/change-case.js +7 -7
  15. package/es2015/plugins/change-case/change-case.min.js +2 -2
  16. package/es2015/plugins/color-picker/color-picker.css +1 -1
  17. package/es2015/plugins/color-picker/color-picker.js +37 -37
  18. package/es2015/plugins/color-picker/color-picker.min.js +2 -2
  19. package/es2015/plugins/emoji/emoji.css +1 -1
  20. package/es2015/plugins/emoji/emoji.js +47 -47
  21. package/es2015/plugins/emoji/emoji.min.js +2 -2
  22. package/es2015/plugins/export-docs/export-docs.js +18 -18
  23. package/es2015/plugins/export-docs/export-docs.min.js +2 -2
  24. package/es2015/plugins/finder/finder.css +1 -1
  25. package/es2015/plugins/finder/finder.js +452 -452
  26. package/es2015/plugins/finder/finder.min.js +2 -2
  27. package/es2015/plugins/google-maps/google-maps.css +1 -1
  28. package/es2015/plugins/google-maps/google-maps.js +265 -265
  29. package/es2015/plugins/google-maps/google-maps.min.js +2 -2
  30. package/es2015/plugins/google-search/google-search.js +1 -1
  31. package/es2015/plugins/google-search/google-search.min.js +2 -2
  32. package/es2015/plugins/highlight-signature/highlight-signature.js +23 -23
  33. package/es2015/plugins/highlight-signature/highlight-signature.min.js +2 -2
  34. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  35. package/es2015/plugins/iframe-editor/iframe-editor.js +40 -40
  36. package/es2015/plugins/iframe-editor/iframe-editor.min.js +2 -2
  37. package/es2015/plugins/keyboard/keyboard.css +1 -1
  38. package/es2015/plugins/keyboard/keyboard.js +60 -60
  39. package/es2015/plugins/keyboard/keyboard.min.js +2 -2
  40. package/es2015/plugins/mobile-view/mobile-view.js +26 -26
  41. package/es2015/plugins/mobile-view/mobile-view.min.js +2 -2
  42. package/es2015/plugins/page-break/page-break.js +27 -27
  43. package/es2015/plugins/page-break/page-break.min.js +2 -2
  44. package/es2015/plugins/paste-code/paste-code.css +1 -1
  45. package/es2015/plugins/paste-code/paste-code.js +51 -51
  46. package/es2015/plugins/paste-code/paste-code.min.js +2 -2
  47. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  48. package/es2015/plugins/paste-from-word/paste-from-word.min.js +2 -2
  49. package/es2015/plugins/show-blocks/show-blocks.js +27 -27
  50. package/es2015/plugins/show-blocks/show-blocks.min.js +2 -2
  51. package/es2015/plugins/todo-list/todo-list.css +1 -1
  52. package/es2015/plugins/todo-list/todo-list.js +62 -62
  53. package/es2015/plugins/todo-list/todo-list.min.js +2 -2
  54. package/es2015/plugins/translate/translate.css +1 -1
  55. package/es2015/plugins/translate/translate.js +62 -62
  56. package/es2015/plugins/translate/translate.min.js +2 -2
  57. package/es2015/plugins/tune-block/tune-block.css +1 -1
  58. package/es2015/plugins/tune-block/tune-block.js +50 -50
  59. package/es2015/plugins/tune-block/tune-block.min.js +2 -2
  60. package/es2018/jodit.css +1 -1
  61. package/es2018/jodit.fat.min.js +2 -2
  62. package/es2018/jodit.js +1227 -1160
  63. package/es2018/jodit.min.js +2 -2
  64. package/es2018/plugins/autocomplete/autocomplete.js +1 -1
  65. package/es2018/plugins/autocomplete/autocomplete.min.js +2 -2
  66. package/es2018/plugins/backup/backup.css +1 -1
  67. package/es2018/plugins/backup/backup.js +64 -64
  68. package/es2018/plugins/backup/backup.min.js +2 -2
  69. package/es2018/plugins/button-generator/button-generator.css +1 -1
  70. package/es2018/plugins/button-generator/button-generator.js +110 -110
  71. package/es2018/plugins/button-generator/button-generator.min.js +2 -2
  72. package/es2018/plugins/change-case/change-case.js +7 -7
  73. package/es2018/plugins/change-case/change-case.min.js +2 -2
  74. package/es2018/plugins/color-picker/color-picker.css +1 -1
  75. package/es2018/plugins/color-picker/color-picker.js +37 -37
  76. package/es2018/plugins/color-picker/color-picker.min.js +2 -2
  77. package/es2018/plugins/emoji/emoji.css +1 -1
  78. package/es2018/plugins/emoji/emoji.js +45 -45
  79. package/es2018/plugins/emoji/emoji.min.js +2 -2
  80. package/es2018/plugins/export-docs/export-docs.js +1 -1
  81. package/es2018/plugins/export-docs/export-docs.min.js +2 -2
  82. package/es2018/plugins/finder/finder.css +1 -1
  83. package/es2018/plugins/finder/finder.js +446 -446
  84. package/es2018/plugins/finder/finder.min.js +2 -2
  85. package/es2018/plugins/google-maps/google-maps.css +1 -1
  86. package/es2018/plugins/google-maps/google-maps.js +262 -262
  87. package/es2018/plugins/google-maps/google-maps.min.js +2 -2
  88. package/es2018/plugins/google-search/google-search.js +1 -1
  89. package/es2018/plugins/google-search/google-search.min.js +2 -2
  90. package/es2018/plugins/highlight-signature/highlight-signature.js +23 -23
  91. package/es2018/plugins/highlight-signature/highlight-signature.min.js +2 -2
  92. package/es2018/plugins/iframe-editor/iframe-editor.css +1 -1
  93. package/es2018/plugins/iframe-editor/iframe-editor.js +40 -40
  94. package/es2018/plugins/iframe-editor/iframe-editor.min.js +2 -2
  95. package/es2018/plugins/keyboard/keyboard.css +1 -1
  96. package/es2018/plugins/keyboard/keyboard.js +60 -60
  97. package/es2018/plugins/keyboard/keyboard.min.js +2 -2
  98. package/es2018/plugins/mobile-view/mobile-view.js +26 -26
  99. package/es2018/plugins/mobile-view/mobile-view.min.js +2 -2
  100. package/es2018/plugins/page-break/page-break.js +27 -27
  101. package/es2018/plugins/page-break/page-break.min.js +2 -2
  102. package/es2018/plugins/paste-code/paste-code.css +1 -1
  103. package/es2018/plugins/paste-code/paste-code.js +49 -49
  104. package/es2018/plugins/paste-code/paste-code.min.js +2 -2
  105. package/es2018/plugins/paste-from-word/paste-from-word.js +1 -1
  106. package/es2018/plugins/paste-from-word/paste-from-word.min.js +2 -2
  107. package/es2018/plugins/show-blocks/show-blocks.js +27 -27
  108. package/es2018/plugins/show-blocks/show-blocks.min.js +2 -2
  109. package/es2018/plugins/todo-list/todo-list.css +1 -1
  110. package/es2018/plugins/todo-list/todo-list.js +62 -62
  111. package/es2018/plugins/todo-list/todo-list.min.js +2 -2
  112. package/es2018/plugins/translate/translate.css +1 -1
  113. package/es2018/plugins/translate/translate.js +61 -61
  114. package/es2018/plugins/translate/translate.min.js +2 -2
  115. package/es2018/plugins/tune-block/tune-block.css +1 -1
  116. package/es2018/plugins/tune-block/tune-block.js +50 -50
  117. package/es2018/plugins/tune-block/tune-block.min.js +2 -2
  118. package/es2021/jodit.css +1 -1
  119. package/es2021/jodit.fat.min.js +2 -2
  120. package/es2021/jodit.js +1227 -1160
  121. package/es2021/jodit.min.js +2 -2
  122. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  123. package/es2021/plugins/autocomplete/autocomplete.min.js +2 -2
  124. package/es2021/plugins/backup/backup.css +1 -1
  125. package/es2021/plugins/backup/backup.js +64 -64
  126. package/es2021/plugins/backup/backup.min.js +2 -2
  127. package/es2021/plugins/button-generator/button-generator.css +1 -1
  128. package/es2021/plugins/button-generator/button-generator.js +110 -110
  129. package/es2021/plugins/button-generator/button-generator.min.js +2 -2
  130. package/es2021/plugins/change-case/change-case.js +7 -7
  131. package/es2021/plugins/change-case/change-case.min.js +2 -2
  132. package/es2021/plugins/color-picker/color-picker.css +1 -1
  133. package/es2021/plugins/color-picker/color-picker.js +37 -37
  134. package/es2021/plugins/color-picker/color-picker.min.js +2 -2
  135. package/es2021/plugins/emoji/emoji.css +1 -1
  136. package/es2021/plugins/emoji/emoji.js +45 -45
  137. package/es2021/plugins/emoji/emoji.min.js +2 -2
  138. package/es2021/plugins/export-docs/export-docs.js +1 -1
  139. package/es2021/plugins/export-docs/export-docs.min.js +2 -2
  140. package/es2021/plugins/finder/finder.css +1 -1
  141. package/es2021/plugins/finder/finder.js +446 -446
  142. package/es2021/plugins/finder/finder.min.js +2 -2
  143. package/es2021/plugins/google-maps/google-maps.css +1 -1
  144. package/es2021/plugins/google-maps/google-maps.js +262 -262
  145. package/es2021/plugins/google-maps/google-maps.min.js +2 -2
  146. package/es2021/plugins/google-search/google-search.js +1 -1
  147. package/es2021/plugins/google-search/google-search.min.js +2 -2
  148. package/es2021/plugins/highlight-signature/highlight-signature.js +23 -23
  149. package/es2021/plugins/highlight-signature/highlight-signature.min.js +2 -2
  150. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  151. package/es2021/plugins/iframe-editor/iframe-editor.js +40 -40
  152. package/es2021/plugins/iframe-editor/iframe-editor.min.js +2 -2
  153. package/es2021/plugins/keyboard/keyboard.css +1 -1
  154. package/es2021/plugins/keyboard/keyboard.js +60 -60
  155. package/es2021/plugins/keyboard/keyboard.min.js +2 -2
  156. package/es2021/plugins/mobile-view/mobile-view.js +26 -26
  157. package/es2021/plugins/mobile-view/mobile-view.min.js +2 -2
  158. package/es2021/plugins/page-break/page-break.js +27 -27
  159. package/es2021/plugins/page-break/page-break.min.js +2 -2
  160. package/es2021/plugins/paste-code/paste-code.css +1 -1
  161. package/es2021/plugins/paste-code/paste-code.js +49 -49
  162. package/es2021/plugins/paste-code/paste-code.min.js +2 -2
  163. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  164. package/es2021/plugins/paste-from-word/paste-from-word.min.js +2 -2
  165. package/es2021/plugins/show-blocks/show-blocks.js +27 -27
  166. package/es2021/plugins/show-blocks/show-blocks.min.js +2 -2
  167. package/es2021/plugins/todo-list/todo-list.css +1 -1
  168. package/es2021/plugins/todo-list/todo-list.js +62 -62
  169. package/es2021/plugins/todo-list/todo-list.min.js +2 -2
  170. package/es2021/plugins/translate/translate.css +1 -1
  171. package/es2021/plugins/translate/translate.js +61 -61
  172. package/es2021/plugins/translate/translate.min.js +2 -2
  173. package/es2021/plugins/tune-block/tune-block.css +1 -1
  174. package/es2021/plugins/tune-block/tune-block.js +50 -50
  175. package/es2021/plugins/tune-block/tune-block.min.js +2 -2
  176. package/es2021.en/jodit.css +1 -1
  177. package/es2021.en/jodit.fat.min.js +2 -2
  178. package/es2021.en/jodit.js +1227 -1160
  179. package/es2021.en/jodit.min.js +2 -2
  180. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  181. package/es2021.en/plugins/autocomplete/autocomplete.min.js +2 -2
  182. package/es2021.en/plugins/backup/backup.css +1 -1
  183. package/es2021.en/plugins/backup/backup.js +64 -64
  184. package/es2021.en/plugins/backup/backup.min.js +2 -2
  185. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  186. package/es2021.en/plugins/button-generator/button-generator.js +110 -110
  187. package/es2021.en/plugins/button-generator/button-generator.min.js +2 -2
  188. package/es2021.en/plugins/change-case/change-case.js +7 -7
  189. package/es2021.en/plugins/change-case/change-case.min.js +2 -2
  190. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  191. package/es2021.en/plugins/color-picker/color-picker.js +37 -37
  192. package/es2021.en/plugins/color-picker/color-picker.min.js +2 -2
  193. package/es2021.en/plugins/emoji/emoji.css +1 -1
  194. package/es2021.en/plugins/emoji/emoji.js +45 -45
  195. package/es2021.en/plugins/emoji/emoji.min.js +2 -2
  196. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  197. package/es2021.en/plugins/export-docs/export-docs.min.js +2 -2
  198. package/es2021.en/plugins/finder/finder.css +1 -1
  199. package/es2021.en/plugins/finder/finder.js +446 -446
  200. package/es2021.en/plugins/finder/finder.min.js +2 -2
  201. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  202. package/es2021.en/plugins/google-maps/google-maps.js +262 -262
  203. package/es2021.en/plugins/google-maps/google-maps.min.js +2 -2
  204. package/es2021.en/plugins/google-search/google-search.js +1 -1
  205. package/es2021.en/plugins/google-search/google-search.min.js +2 -2
  206. package/es2021.en/plugins/highlight-signature/highlight-signature.js +23 -23
  207. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +2 -2
  208. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  209. package/es2021.en/plugins/iframe-editor/iframe-editor.js +40 -40
  210. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +2 -2
  211. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  212. package/es2021.en/plugins/keyboard/keyboard.js +60 -60
  213. package/es2021.en/plugins/keyboard/keyboard.min.js +2 -2
  214. package/es2021.en/plugins/mobile-view/mobile-view.js +26 -26
  215. package/es2021.en/plugins/mobile-view/mobile-view.min.js +2 -2
  216. package/es2021.en/plugins/page-break/page-break.js +27 -27
  217. package/es2021.en/plugins/page-break/page-break.min.js +2 -2
  218. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  219. package/es2021.en/plugins/paste-code/paste-code.js +49 -49
  220. package/es2021.en/plugins/paste-code/paste-code.min.js +2 -2
  221. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  222. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +2 -2
  223. package/es2021.en/plugins/show-blocks/show-blocks.js +27 -27
  224. package/es2021.en/plugins/show-blocks/show-blocks.min.js +2 -2
  225. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  226. package/es2021.en/plugins/todo-list/todo-list.js +62 -62
  227. package/es2021.en/plugins/todo-list/todo-list.min.js +2 -2
  228. package/es2021.en/plugins/translate/translate.css +1 -1
  229. package/es2021.en/plugins/translate/translate.js +61 -61
  230. package/es2021.en/plugins/translate/translate.min.js +2 -2
  231. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  232. package/es2021.en/plugins/tune-block/tune-block.js +50 -50
  233. package/es2021.en/plugins/tune-block/tune-block.min.js +2 -2
  234. package/es5/jodit.css +2 -2
  235. package/es5/jodit.fat.min.js +2 -2
  236. package/es5/jodit.js +1565 -1610
  237. package/es5/jodit.min.css +2 -2
  238. package/es5/jodit.min.js +2 -2
  239. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  240. package/es5/plugins/autocomplete/autocomplete.min.js +2 -2
  241. package/es5/plugins/backup/backup.css +1 -1
  242. package/es5/plugins/backup/backup.js +80 -80
  243. package/es5/plugins/backup/backup.min.js +2 -2
  244. package/es5/plugins/button-generator/button-generator.css +1 -1
  245. package/es5/plugins/button-generator/button-generator.js +137 -137
  246. package/es5/plugins/button-generator/button-generator.min.js +2 -2
  247. package/es5/plugins/change-case/change-case.js +17 -17
  248. package/es5/plugins/change-case/change-case.min.js +2 -2
  249. package/es5/plugins/color-picker/color-picker.css +1 -1
  250. package/es5/plugins/color-picker/color-picker.js +40 -40
  251. package/es5/plugins/color-picker/color-picker.min.js +2 -2
  252. package/es5/plugins/emoji/emoji.css +1 -1
  253. package/es5/plugins/emoji/emoji.js +54 -54
  254. package/es5/plugins/emoji/emoji.min.js +2 -2
  255. package/es5/plugins/export-docs/export-docs.js +21 -21
  256. package/es5/plugins/export-docs/export-docs.min.js +2 -2
  257. package/es5/plugins/finder/finder.css +1 -1
  258. package/es5/plugins/finder/finder.js +495 -495
  259. package/es5/plugins/finder/finder.min.js +2 -2
  260. package/es5/plugins/google-maps/google-maps.css +1 -1
  261. package/es5/plugins/google-maps/google-maps.js +299 -299
  262. package/es5/plugins/google-maps/google-maps.min.js +2 -2
  263. package/es5/plugins/google-search/google-search.js +17 -17
  264. package/es5/plugins/google-search/google-search.min.js +2 -2
  265. package/es5/plugins/highlight-signature/highlight-signature.js +26 -26
  266. package/es5/plugins/highlight-signature/highlight-signature.min.js +2 -2
  267. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  268. package/es5/plugins/iframe-editor/iframe-editor.js +43 -43
  269. package/es5/plugins/iframe-editor/iframe-editor.min.js +2 -2
  270. package/es5/plugins/keyboard/keyboard.css +1 -1
  271. package/es5/plugins/keyboard/keyboard.js +62 -62
  272. package/es5/plugins/keyboard/keyboard.min.js +2 -2
  273. package/es5/plugins/mobile-view/mobile-view.js +28 -28
  274. package/es5/plugins/mobile-view/mobile-view.min.js +2 -2
  275. package/es5/plugins/page-break/page-break.js +29 -29
  276. package/es5/plugins/page-break/page-break.min.js +2 -2
  277. package/es5/plugins/paste-code/paste-code.css +1 -1
  278. package/es5/plugins/paste-code/paste-code.js +55 -55
  279. package/es5/plugins/paste-code/paste-code.min.js +2 -2
  280. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  281. package/es5/plugins/paste-from-word/paste-from-word.min.js +2 -2
  282. package/es5/plugins/show-blocks/show-blocks.js +28 -28
  283. package/es5/plugins/show-blocks/show-blocks.min.js +2 -2
  284. package/es5/plugins/todo-list/todo-list.css +1 -1
  285. package/es5/plugins/todo-list/todo-list.js +64 -64
  286. package/es5/plugins/todo-list/todo-list.min.js +2 -2
  287. package/es5/plugins/translate/translate.css +1 -1
  288. package/es5/plugins/translate/translate.js +77 -77
  289. package/es5/plugins/translate/translate.min.js +2 -2
  290. package/es5/plugins/tune-block/tune-block.css +1 -1
  291. package/es5/plugins/tune-block/tune-block.js +65 -65
  292. package/es5/plugins/tune-block/tune-block.min.js +2 -2
  293. package/esm/index.js +1 -1
  294. package/esm/jodit-pro.js +1 -1
  295. package/esm/plugins/autocomplete/autocomplete.js +1 -1
  296. package/esm/plugins/autocomplete/ui/autocomplete.js +1 -1
  297. package/esm/plugins/backup/backup.js +1 -1
  298. package/esm/plugins/backup/modules/store.js +1 -1
  299. package/esm/plugins/backup/ui/list.js +1 -1
  300. package/esm/plugins/button-generator/button-generator.js +1 -1
  301. package/esm/plugins/button-generator/ui/button/button.js +1 -1
  302. package/esm/plugins/button-generator/ui/form/form.js +1 -1
  303. package/esm/plugins/button-generator/ui/generator/button-generator.js +1 -1
  304. package/esm/plugins/button-generator/ui/preview/preview.js +1 -1
  305. package/esm/plugins/change-case/change-case.js +1 -1
  306. package/esm/plugins/color-picker/ui/input/color-input.js +1 -1
  307. package/esm/plugins/emoji/config.js +1 -1
  308. package/esm/plugins/emoji/emoji.js +1 -1
  309. package/esm/plugins/emoji/ui/emoji.js +1 -1
  310. package/esm/plugins/export-docs/export-docs.js +1 -1
  311. package/esm/plugins/finder/browser.js +1 -1
  312. package/esm/plugins/finder/finder.js +1 -1
  313. package/esm/plugins/finder/helpers/context-menu.js +1 -1
  314. package/esm/plugins/finder/helpers/helpers.js +1 -1
  315. package/esm/plugins/finder/helpers/loading-manager.js +1 -1
  316. package/esm/plugins/finder/helpers/persistent-store.js +1 -1
  317. package/esm/plugins/finder/helpers/state-manager.js +1 -1
  318. package/esm/plugins/finder/ui/folder/folder.js +1 -1
  319. package/esm/plugins/finder/ui/header/header.js +1 -1
  320. package/esm/plugins/finder/ui/item/item.js +1 -1
  321. package/esm/plugins/finder/ui/lightboox/lightbox.js +1 -1
  322. package/esm/plugins/finder/ui/panel/panel.js +1 -1
  323. package/esm/plugins/finder/ui/preview/preview.js +1 -1
  324. package/esm/plugins/finder/ui/progress/progress.js +1 -1
  325. package/esm/plugins/finder/ui/settings/settings.js +1 -1
  326. package/esm/plugins/finder/ui/source/source.js +1 -1
  327. package/esm/plugins/finder/ui/sources/sources.js +1 -1
  328. package/esm/plugins/finder/ui/tree/tree.js +1 -1
  329. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.js +1 -1
  330. package/esm/plugins/google-maps/google-maps.js +1 -1
  331. package/esm/plugins/google-maps/helpers/generate-static-elements.js +1 -1
  332. package/esm/plugins/google-maps/helpers/helpers.js +1 -1
  333. package/esm/plugins/google-maps/ui/combo-box/combo-box.js +1 -1
  334. package/esm/plugins/google-maps/ui/editors/base.js +1 -1
  335. package/esm/plugins/google-maps/ui/editors/marker/marker.js +1 -1
  336. package/esm/plugins/google-maps/ui/map/map.js +1 -1
  337. package/esm/plugins/google-maps/ui/map/modules/init-or-update-element-from-state.js +1 -1
  338. package/esm/plugins/google-maps/ui/map/modules/open-props-dialog.js +1 -1
  339. package/esm/plugins/google-maps/ui/maps-controls/maps-controls.js +1 -1
  340. package/esm/plugins/google-maps/ui/wysiwyg/wysiwyg.js +1 -1
  341. package/esm/plugins/highlight-signature/highlight-signature.js +1 -1
  342. package/esm/plugins/iframe-editor/iframe-editor.js +1 -1
  343. package/esm/plugins/keyboard/keyboard.js +1 -1
  344. package/esm/plugins/keyboard/ui/keyboard/keyboard.js +1 -1
  345. package/esm/plugins/license/helpers/helpers.js +1 -1
  346. package/esm/plugins/license/license.js +1 -1
  347. package/esm/plugins/mobile-view/mobile-view.js +1 -1
  348. package/esm/plugins/page-break/page-break.js +1 -1
  349. package/esm/plugins/paste-code/paste-code.js +1 -1
  350. package/esm/plugins/paste-from-word/cases/clean-styles.js +1 -1
  351. package/esm/plugins/paste-from-word/cases/convert-style-unit-to-pixels.js +1 -1
  352. package/esm/plugins/paste-from-word/cases/convert-to-list.js +1 -1
  353. package/esm/plugins/paste-from-word/cases/process-image.js +1 -1
  354. package/esm/plugins/paste-from-word/element/checkers.js +1 -1
  355. package/esm/plugins/paste-from-word/element/element.js +1 -1
  356. package/esm/plugins/paste-from-word/element/render.js +1 -1
  357. package/esm/plugins/paste-from-word/element/style.js +1 -1
  358. package/esm/plugins/paste-from-word/helpers/apply-styles-pro.js +1 -1
  359. package/esm/plugins/paste-from-word/helpers/calc-list-levels.js +1 -1
  360. package/esm/plugins/paste-from-word/helpers/helpers.js +1 -1
  361. package/esm/plugins/paste-from-word/helpers/transform-word-to-html.js +1 -1
  362. package/esm/plugins/show-blocks/show-blocks.js +1 -1
  363. package/esm/plugins/todo-list/config.js +1 -1
  364. package/esm/plugins/todo-list/todo-list.js +1 -1
  365. package/esm/plugins/translate/providers/google/google.js +1 -1
  366. package/esm/plugins/translate/translate.js +1 -1
  367. package/esm/plugins/translate/ui/list/list.js +1 -1
  368. package/esm/plugins/tune-block/ui/tuner/tuner.js +1 -1
  369. package/package.json +1 -1
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{onChangeGeometries as e}from"./on-change-geometries.js";import{openPropsDialog as t}from"./open-props-dialog.js";import{updateStateAndGme as o}from"./update-state-and-gme.js";import{uniqueUid as a}from"jodit/esm/core/global.js";import{Icon as i}from"jodit/esm/core/ui/icon.js";import{arrayToPath as l}from"../../../helpers/helpers.js";export function initOrUpdateElementFromState(r,s){var n;const p=this.mapElements[s];if(p){if(p.state.type===r.type)return o.call(this,r,s);p.gme.setMap(null)}let g;switch(r.type){case"text":g=new google.maps.Marker({position:new google.maps.LatLng(r.coordinates[0],r.coordinates[1]),draggable:!0,title:r.text,map:this.map});break;case"marker":g=new google.maps.Marker({position:new google.maps.LatLng(r.coordinates[0],r.coordinates[1]),draggable:!0,label:r.showCaption?r.title:"",title:r.title,icon:r.icon?i.get(r.icon):void 0,map:this.map});break;case"polyline":case"polygon":{const e=l(r.coordinates);g=new google.maps["polygon"===r.type?"Polygon":"Polyline"]({path:e,strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWeight:r.strokeWeight,editable:!0,draggable:!0,map:this.map,fillOpacity:"polygon"===r.type?r.fillOpacity:1})}break;case"circle":g=new google.maps.Circle({center:new google.maps.LatLng(r.coordinates[0],r.coordinates[1]),radius:r.radius,strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWeight:r.strokeWeight,editable:!0,draggable:!0,map:this.map,fillOpacity:null!==(n=r.fillOpacity)&&void 0!==n?n:1})}const c={type:r.type,uid:a(),state:r,gme:g};"dragend radius_changed center_changed".split(" ").forEach((t=>g.addListener(t,(()=>e.call(this,c,s))))),"polygon"!==c.type&&"polyline"!==c.type||"insert_at set_at remove_at".split(" ").forEach((t=>c.gme.getPath().addListener(t,(()=>e.call(this,c,s))))),g.addListener("click",(()=>t.call(this,c,s))),this.mapElements[s]=c}
6
+ import{onChangeGeometries as e}from"./on-change-geometries.js";import{openPropsDialog as t}from"./open-props-dialog.js";import{updateStateAndGme as o}from"./update-state-and-gme.js";import{uniqueUid as a}from"jodit/esm/core/global.js";import{Icon as i}from"jodit/esm/core/ui/icon.js";import{arrayToPath as l}from"../../../helpers/helpers.js";export function initOrUpdateElementFromState(r,s){var n;const p=this.mapElements[s];if(p){if(p.state.type===r.type)return o.call(this,r,s);p.gme.setMap(null)}let g;switch(r.type){case"text":g=new google.maps.Marker({position:new google.maps.LatLng(r.coordinates[0],r.coordinates[1]),draggable:!0,title:r.text,map:this.map});break;case"marker":g=new google.maps.Marker({position:new google.maps.LatLng(r.coordinates[0],r.coordinates[1]),draggable:!0,label:r.showCaption?r.title:"",title:r.title,icon:r.icon?i.get(r.icon):void 0,map:this.map});break;case"polyline":case"polygon":{const e=l(r.coordinates);g=new google.maps["polygon"===r.type?"Polygon":"Polyline"]({path:e,strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWeight:r.strokeWeight,editable:!0,draggable:!0,map:this.map,fillOpacity:"polygon"===r.type?r.fillOpacity:1})}break;case"circle":g=new google.maps.Circle({center:new google.maps.LatLng(r.coordinates[0],r.coordinates[1]),radius:r.radius,strokeColor:r.strokeColor,fillColor:r.fillColor,strokeWeight:r.strokeWeight,editable:!0,draggable:!0,map:this.map,fillOpacity:null!==(n=r.fillOpacity)&&void 0!==n?n:1})}const c={type:r.type,uid:a(),state:r,gme:g};"dragend radius_changed center_changed".split(" ").forEach(t=>g.addListener(t,()=>e.call(this,c,s))),"polygon"!==c.type&&"polyline"!==c.type||"insert_at set_at remove_at".split(" ").forEach(t=>c.gme.getPath().addListener(t,()=>e.call(this,c,s))),g.addListener("click",()=>t.call(this,c,s)),this.mapElements[s]=c}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{removeElement as t}from"./remove-element.js";import{updateStateAndGme as e}from"./update-state-and-gme.js";import{UIMarkerEditor as o,UIPolygonEditor as i,UIPolylineEditor as n}from"../../editors/index.js";function getInfoWindow(){const t=new google.maps.InfoWindow({content:"<div>test</div>"});return t.addListener("domready",(()=>{this.setMod("info-opened",!0)})),t.addListener("closeclick",(()=>{this.setMod("info-opened",!1)})),t}export function openPropsDialog(s,a){let d;switch(this.state.mode="hand",s.type){case"polyline":d=new n(this.jodit,s.state,this.options);break;case"marker":d=new o(this.jodit,s.state,this.options);break;case"circle":case"polygon":d=new i(this.jodit,s.state,this.options)}if(!d)return;this.append(d),this.j.e.on(d,"bin",(()=>{t.call(this,s)})).on(d,"change",((t,o)=>{e.call(this,{...s.state,[t]:o},a)}));const r=getInfoWindow.call(this);if("polygon"===s.type||"polyline"===s.type){const t=s.gme.getPath().getAt(0);r.setPosition(t)}"circle"===s.type&&r.setPosition(s.gme.getCenter()),r.setContent(d.container),r.open(this.map,s.gme),r.addListener("closeclick",(()=>{d&&(this.remove(d),d.destruct())}))}
6
+ import{removeElement as t}from"./remove-element.js";import{updateStateAndGme as e}from"./update-state-and-gme.js";import{UIMarkerEditor as o,UIPolygonEditor as i,UIPolylineEditor as n}from"../../editors/index.js";function getInfoWindow(){const t=new google.maps.InfoWindow({content:"<div>test</div>"});return t.addListener("domready",()=>{this.setMod("info-opened",!0)}),t.addListener("closeclick",()=>{this.setMod("info-opened",!1)}),t}export function openPropsDialog(s,a){let d;switch(this.state.mode="hand",s.type){case"polyline":d=new n(this.jodit,s.state,this.options);break;case"marker":d=new o(this.jodit,s.state,this.options);break;case"circle":case"polygon":d=new i(this.jodit,s.state,this.options)}if(!d)return;this.append(d),this.j.e.on(d,"bin",()=>{t.call(this,s)}).on(d,"change",(t,o)=>{e.call(this,{...s.state,[t]:o},a)});const r=getInfoWindow.call(this);if("polygon"===s.type||"polyline"===s.type){const t=s.gme.getPath().getAt(0);r.setPosition(t)}"circle"===s.type&&r.setPosition(s.gme.getCenter()),r.setContent(d.container),r.open(this.map,s.gme),r.addListener("closeclick",()=>{d&&(this.remove(d),d.destruct())})}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,e,o,r){var n,c=arguments.length,s=c<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,o,r);else for(var l=t.length-1;l>=0;l--)(n=t[l])&&(s=(c<3?n(s):c>3?n(e,o,s):n(e,o))||s);return c>3&&s&&Object.defineProperty(e,o,s),s};import{component as e}from"jodit/esm/core/decorators/component/component.js";import{UICheckbox as o,UIForm as r}from"jodit/esm/core/ui/index.js";let n=class UIMapsControlsForm extends r{className(){return"UIMapsControlsForm"}constructor(t,e){super(t),this.state=e;const r={zoomControl:"Zoom control",mapTypeControl:"Map Type control",scaleControl:"Scale control",streetViewControl:"Street View control ",rotateControl:"Rotate control",fullscreenControl:"Fullscreen control"},n=Object.keys(r);this.append(n.map((e=>new o(t,{label:r[e],name:e,checked:this.state.controls[e],switch:!0,type:"checkbox",onChange:this.onChangeSize.bind(this,e)}))))}onChangeSize(t,e){this.state.controls={...this.state.controls,[t]:"true"===e}}};n=t([e],n);export{n as UIMapsControlsForm};
6
+ var t=this&&this.__decorate||function(t,e,o,r){var n,c=arguments.length,s=c<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,o,r);else for(var l=t.length-1;l>=0;l--)(n=t[l])&&(s=(c<3?n(s):c>3?n(e,o,s):n(e,o))||s);return c>3&&s&&Object.defineProperty(e,o,s),s};import{component as e}from"jodit/esm/core/decorators/component/component.js";import{UICheckbox as o,UIForm as r}from"jodit/esm/core/ui/index.js";let n=class UIMapsControlsForm extends r{className(){return"UIMapsControlsForm"}constructor(t,e){super(t),this.state=e;const r={zoomControl:"Zoom control",mapTypeControl:"Map Type control",scaleControl:"Scale control",streetViewControl:"Street View control ",rotateControl:"Rotate control",fullscreenControl:"Fullscreen control"},n=Object.keys(r);this.append(n.map(e=>new o(t,{label:r[e],name:e,checked:this.state.controls[e],switch:!0,type:"checkbox",onChange:this.onChangeSize.bind(this,e)})))}onChangeSize(t,e){this.state.controls={...this.state.controls,[t]:"true"===e}}};n=t([e],n);export{n as UIMapsControlsForm};
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,o,i){var r,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,i);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(l=(s<3?r(l):s>3?r(t,o,l):r(t,o))||l);return s>3&&l&&Object.defineProperty(t,o,l),l};import{component as t}from"jodit/esm/core/decorators/component/component.js";import{assert as o}from"jodit/esm/core/helpers/utils/assert.js";import{UIElement as i}from"jodit/esm/core/ui/element.js";import{JoditPro as r}from"../../../../jodit-pro.js";let s=class UIWysiwyg extends i{className(){return"UIWysiwyg"}constructor(e,t,i,s){super(e);const l=this.getElm("editor");o(null!=l,"editor element does not exist");const n=r.make(l,{buttons:["bold","italic","image"],height:100,minHeight:100,allowResizeY:!1,allowResizeX:!1,disablePlugins:["mobile","backup","highlight-signature","tune-block","show-blocks"],toolbarButtonSize:"small",language:e.o.language,direction:e.o.direction,theme:e.o.theme,statusbar:!1,...t});n.value=i,n.e.on("change",(()=>s(n.value)))}render(){return"<div>\n\t\t\t<div class='&__label'>~Info~</div>\n\t\t\t<div class='&__editor'></div>\n\t\t</div>"}};s=e([t],s);export{s as UIWysiwyg};
6
+ var e=this&&this.__decorate||function(e,t,o,i){var r,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,i);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(l=(s<3?r(l):s>3?r(t,o,l):r(t,o))||l);return s>3&&l&&Object.defineProperty(t,o,l),l};import{component as t}from"jodit/esm/core/decorators/component/component.js";import{assert as o}from"jodit/esm/core/helpers/utils/assert.js";import{UIElement as i}from"jodit/esm/core/ui/element.js";import{JoditPro as r}from"../../../../jodit-pro.js";let s=class UIWysiwyg extends i{className(){return"UIWysiwyg"}constructor(e,t,i,s){super(e);const l=this.getElm("editor");o(null!=l,"editor element does not exist");const n=r.make(l,{buttons:["bold","italic","image"],height:100,minHeight:100,allowResizeY:!1,allowResizeX:!1,disablePlugins:["mobile","backup","highlight-signature","tune-block","show-blocks"],toolbarButtonSize:"small",language:e.o.language,direction:e.o.direction,theme:e.o.theme,statusbar:!1,...t});n.value=i,n.e.on("change",()=>s(n.value))}render(){return"<div>\n\t\t\t<div class='&__label'>~Info~</div>\n\t\t\t<div class='&__editor'></div>\n\t\t</div>"}};s=e([t],s);export{s as UIWysiwyg};
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,r,i){var o,s=arguments.length,n=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(n=(s<3?o(n):s>3?o(t,r,n):o(t,r))||n);return s>3&&n&&Object.defineProperty(t,r,n),n};import"./config.js";import{autobind as t,debounce as r}from"jodit/esm/core/decorators/index.js";import{Dom as i}from"jodit/esm/core/dom/dom.js";import{attr as o}from"jodit/esm/core/helpers/utils/attr.js";import{Plugin as s}from"jodit/esm/core/plugin/plugin.js";import{JoditPro as n}from"../../jodit-pro.js";export class highlightSignature extends s{constructor(){super(...arguments),this.abortController=null}afterInit(e){Object.keys(e.o.highlightSignature.schema).length&&(e.e.on("change afterSetMode",this.walkNodes).on("afterGetValueFromEditor",highlightSignature.removeUtilWrappers),this.walkNodes())}beforeDestruct(e){e.e.off("change afterSetMode",this.walkNodes).off("afterGetValueFromEditor",highlightSignature.removeUtilWrappers)}walkNodes(){var e;if(!this.j.isEditorMode())return;this.checkUtilsBoxToSchema();const{j:t}=this,r=t.ed.createNodeIterator(t.editor,NodeFilter.SHOW_TEXT);null===(e=this.abortController)||void 0===e||e.abort(),this.workLoop(r)}runWorker(e){let t;this.j.e.mute();let r=0;const{processInChunkCount:i}=this.j.o.highlightSignature;try{do{if(r+=1,t=e.nextNode(),!t)return;if(this.checkNormalizing(t))return;this.checkReplaceSchemas(t)}while(t&&i>r)}finally{this.j.e.unmute()}this.workLoop(e)}workLoop(e){this.abortController=new AbortController,this.j.async.schedulerPostTask((()=>this.runWorker(e)),{delay:this.j.o.highlightSignature.processDelay}).catch((()=>null))}checkNormalizing(e){return!!i.isText(e.nextSibling)&&(this.j.editor.normalize(),this.walkNodes(),!0)}checkReplaceSchemas(e){if(highlightSignature.hasUtilWrapper(e))return;const t=e.nodeValue;if(null==t)return;const{j:r}=this,o=r.o.highlightSignature;for(const r in o.schema){const s=RegExp(r);if(s.test(t)){const n=t.match(s);if(!n||void 0===n.index)continue;const a=o.schema[r](this.j,n);if(a)return i.markTemporary(a,{dataHighlightSchema:r}),void this.replaceMatchedTextToElm(e,t,n,a)}}}replaceMatchedTextToElm(e,t,r,o){var s;const{j:n}=this,{range:a}=n.s,h=a.startContainer===e,l=a.startOffset,c=null!==(s=r.index)&&void 0!==s?s:0;e.nodeValue=t.substring(0,c);const g=t.substring(c+r[0].length);if(g.length){const t=n.createInside.text(g);i.after(e,t)}o.innerText=r[0],i.after(e,o),h&&this.restoreCursorPosition(l,e,o.firstChild,o.nextSibling)}static hasUtilWrapper(e){return i.isTemporary(e.parentElement)}static removeUtilWrappers(e){e.value=i.replaceTemporaryFromString(e.value)}restoreCursorPosition(e,...t){for(const r of t)if(r&&r.nodeValue){const t=r.nodeValue;if(t.length>=e){const t=this.j.s.createRange();t.setStart(r,e),this.j.s.selectRange(t,!1);break}e-=t.length}}checkUtilsBoxToSchema(){i.temporaryList(this.j.editor).forEach((e=>{var t;const r=o(e,"dataHighlightSchema");if(!r)return;const s=RegExp(r),n=null!==(t=e.innerText)&&void 0!==t?t:"";s.test(n)&&!n.replace(s,"").length||(this.j.s.save(),i.unwrap(e),this.j.s.restore())}))}}highlightSignature.requires=["license"],e([r()],highlightSignature.prototype,"walkNodes",null),e([t],highlightSignature.prototype,"runWorker",null),n.plugins.add("highlight-signature",highlightSignature);
6
+ var e=this&&this.__decorate||function(e,t,r,i){var o,s=arguments.length,n=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,r,i);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(n=(s<3?o(n):s>3?o(t,r,n):o(t,r))||n);return s>3&&n&&Object.defineProperty(t,r,n),n};import"./config.js";import{autobind as t,debounce as r}from"jodit/esm/core/decorators/index.js";import{Dom as i}from"jodit/esm/core/dom/dom.js";import{attr as o}from"jodit/esm/core/helpers/utils/attr.js";import{Plugin as s}from"jodit/esm/core/plugin/plugin.js";import{JoditPro as n}from"../../jodit-pro.js";export class highlightSignature extends s{constructor(){super(...arguments),this.abortController=null}afterInit(e){Object.keys(e.o.highlightSignature.schema).length&&(e.e.on("change afterSetMode",this.walkNodes).on("afterGetValueFromEditor",highlightSignature.removeUtilWrappers),this.walkNodes())}beforeDestruct(e){e.e.off("change afterSetMode",this.walkNodes).off("afterGetValueFromEditor",highlightSignature.removeUtilWrappers)}walkNodes(){var e;if(!this.j.isEditorMode())return;this.checkUtilsBoxToSchema();const{j:t}=this,r=t.ed.createNodeIterator(t.editor,NodeFilter.SHOW_TEXT);null===(e=this.abortController)||void 0===e||e.abort(),this.workLoop(r)}runWorker(e){let t;this.j.e.mute();let r=0;const{processInChunkCount:i}=this.j.o.highlightSignature;try{do{if(r+=1,t=e.nextNode(),!t)return;if(this.checkNormalizing(t))return;this.checkReplaceSchemas(t)}while(t&&i>r)}finally{this.j.e.unmute()}this.workLoop(e)}workLoop(e){this.abortController=new AbortController,this.j.async.schedulerPostTask(()=>this.runWorker(e),{delay:this.j.o.highlightSignature.processDelay}).catch(()=>null)}checkNormalizing(e){return!!i.isText(e.nextSibling)&&(this.j.editor.normalize(),this.walkNodes(),!0)}checkReplaceSchemas(e){if(highlightSignature.hasUtilWrapper(e))return;const t=e.nodeValue;if(null==t)return;const{j:r}=this,o=r.o.highlightSignature;for(const r in o.schema){const s=RegExp(r);if(s.test(t)){const n=t.match(s);if(!n||void 0===n.index)continue;const a=o.schema[r](this.j,n);if(a)return i.markTemporary(a,{dataHighlightSchema:r}),void this.replaceMatchedTextToElm(e,t,n,a)}}}replaceMatchedTextToElm(e,t,r,o){var s;const{j:n}=this,{range:a}=n.s,h=a.startContainer===e,l=a.startOffset,c=null!==(s=r.index)&&void 0!==s?s:0;e.nodeValue=t.substring(0,c);const g=t.substring(c+r[0].length);if(g.length){const t=n.createInside.text(g);i.after(e,t)}o.innerText=r[0],i.after(e,o),h&&this.restoreCursorPosition(l,e,o.firstChild,o.nextSibling)}static hasUtilWrapper(e){return i.isTemporary(e.parentElement)}static removeUtilWrappers(e){e.value=i.replaceTemporaryFromString(e.value)}restoreCursorPosition(e,...t){for(const r of t)if(r&&r.nodeValue){const t=r.nodeValue;if(t.length>=e){const t=this.j.s.createRange();t.setStart(r,e),this.j.s.selectRange(t,!1);break}e-=t.length}}checkUtilsBoxToSchema(){i.temporaryList(this.j.editor).forEach(e=>{var t;const r=o(e,"dataHighlightSchema");if(!r)return;const s=RegExp(r),n=null!==(t=e.innerText)&&void 0!==t?t:"";s.test(n)&&!n.replace(s,"").length||(this.j.s.save(),i.unwrap(e),this.j.s.restore())})}}highlightSignature.requires=["license"],e([r()],highlightSignature.prototype,"walkNodes",null),e([t],highlightSignature.prototype,"runWorker",null),n.plugins.add("highlight-signature",highlightSignature);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,i,o){var r,s=arguments.length,l=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,o);else for(var d=e.length-1;d>=0;d--)(r=e[d])&&(l=(s<3?r(l):s>3?r(t,i,l):r(t,i))||l);return s>3&&l&&Object.defineProperty(t,i,l),l};import"./config.js";import{UIIframeEditor as t}from"./ui/iframe-editor/iframe-editor.js";import{autobind as i,watch as o}from"jodit/esm/core/decorators/index.js";import{Dom as r}from"jodit/esm/core/dom/index.js";import{attr as s,css as l}from"jodit/esm/core/helpers/index.js";import{Plugin as d}from"jodit/esm/core/plugin/index.js";import{Button as a}from"jodit/esm/core/ui/button/index.js";import{Dialog as n}from"jodit/esm/modules/index.js";import{JoditPro as m}from"../../jodit-pro.js";export class IframeEditor extends d{constructor(){super(...arguments),this.buttons=[{group:"form",name:"iframeEditor"}]}afterInit(e){e.e.on("toggleIframeEditor",this.toggleEditor)}toggleEditor(e){var i,o,d,m,c;this.__dialog||(this.__dialog=new n({language:this.j.o.language,theme:this.j.o.theme}),this.__dialog.setHeader("Iframe Properties").setSize(470,400)),e&&!r.isTag(e,"iframe")&&(e=void 0);const f=new t(this.__dialog,{src:null!==(i=null==e?void 0:e.src)&&void 0!==i?i:"",name:null!==(o=null==e?void 0:e.name)&&void 0!==o?o:"",title:null!==(d=null==e?void 0:e.title)&&void 0!==d?d:"",frameBorder:"1"===(null==e?void 0:e.frameBorder)||"yes"===(null==e?void 0:e.frameBorder),width:null!==(m=null==e?void 0:e.offsetWidth)&&void 0!==m?m:700,height:null!==(c=null==e?void 0:e.offsetHeight)&&void 0!==c?c:400});this.__dialog.setContent(f);const h=this.__dialog;h.isOpened?h.close():(h.setFooter([a(h,"cancel","Cancel","default").onAction((()=>h.close())),a(h,"ok",e?"Update":"Insert","primary").onAction((()=>{if(!f.srcField.value)return f.srcField.validate(),void f.srcField.focus();e||(e=this.j.createInside.element("iframe"),this.j.s.insertNode(e,!0,!1)),e.className=f.state.className||"",s(e,{src:f.state.src,title:f.state.title,name:f.state.name,frameborder:f.state.frameBorder?"1":"0",width:f.state.width,height:f.state.height}),r.isTag(e.parentElement,"jodit")&&l(e.parentElement,{width:f.state.width,height:f.state.height}),this.jodit.e.fire("synchro"),h.close()}))]).open(),this.jodit.async.requestIdleCallback((()=>{f.srcField.focus()})))}onDblClick(e){r.isTag(e.target,"iframe")&&this.toggleEditor(e.target)}beforeDestruct(e){var t;null===(t=this.__dialog)||void 0===t||t.destruct()}}IframeEditor.requires=["license","color-picker"],e([i],IframeEditor.prototype,"toggleEditor",null),e([o(":dblclick")],IframeEditor.prototype,"onDblClick",null),m.plugins.add("iframe-editor",IframeEditor);
6
+ var e=this&&this.__decorate||function(e,t,i,o){var r,s=arguments.length,l=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,o);else for(var d=e.length-1;d>=0;d--)(r=e[d])&&(l=(s<3?r(l):s>3?r(t,i,l):r(t,i))||l);return s>3&&l&&Object.defineProperty(t,i,l),l};import"./config.js";import{UIIframeEditor as t}from"./ui/iframe-editor/iframe-editor.js";import{autobind as i,watch as o}from"jodit/esm/core/decorators/index.js";import{Dom as r}from"jodit/esm/core/dom/index.js";import{attr as s,css as l}from"jodit/esm/core/helpers/index.js";import{Plugin as d}from"jodit/esm/core/plugin/index.js";import{Button as a}from"jodit/esm/core/ui/button/index.js";import{Dialog as n}from"jodit/esm/modules/index.js";import{JoditPro as m}from"../../jodit-pro.js";export class IframeEditor extends d{constructor(){super(...arguments),this.buttons=[{group:"form",name:"iframeEditor"}]}afterInit(e){e.e.on("toggleIframeEditor",this.toggleEditor)}toggleEditor(e){var i,o,d,m,c;this.__dialog||(this.__dialog=new n({language:this.j.o.language,theme:this.j.o.theme}),this.__dialog.setHeader("Iframe Properties").setSize(470,400)),e&&!r.isTag(e,"iframe")&&(e=void 0);const f=new t(this.__dialog,{src:null!==(i=null==e?void 0:e.src)&&void 0!==i?i:"",name:null!==(o=null==e?void 0:e.name)&&void 0!==o?o:"",title:null!==(d=null==e?void 0:e.title)&&void 0!==d?d:"",frameBorder:"1"===(null==e?void 0:e.frameBorder)||"yes"===(null==e?void 0:e.frameBorder),width:null!==(m=null==e?void 0:e.offsetWidth)&&void 0!==m?m:700,height:null!==(c=null==e?void 0:e.offsetHeight)&&void 0!==c?c:400});this.__dialog.setContent(f);const h=this.__dialog;h.isOpened?h.close():(h.setFooter([a(h,"cancel","Cancel","default").onAction(()=>h.close()),a(h,"ok",e?"Update":"Insert","primary").onAction(()=>{if(!f.srcField.value)return f.srcField.validate(),void f.srcField.focus();e||(e=this.j.createInside.element("iframe"),this.j.s.insertNode(e,!0,!1)),e.className=f.state.className||"",s(e,{src:f.state.src,title:f.state.title,name:f.state.name,frameborder:f.state.frameBorder?"1":"0",width:f.state.width,height:f.state.height}),r.isTag(e.parentElement,"jodit")&&l(e.parentElement,{width:f.state.width,height:f.state.height}),this.jodit.e.fire("synchro"),h.close()})]).open(),this.jodit.async.requestIdleCallback(()=>{f.srcField.focus()}))}onDblClick(e){r.isTag(e.target,"iframe")&&this.toggleEditor(e.target)}beforeDestruct(e){var t;null===(t=this.__dialog)||void 0===t||t.destruct()}}IframeEditor.requires=["license","color-picker"],e([i],IframeEditor.prototype,"toggleEditor",null),e([o(":dblclick")],IframeEditor.prototype,"onDblClick",null),m.plugins.add("iframe-editor",IframeEditor);
@@ -1 +1 @@
1
- var e=this&&this.__decorate||function(e,t,o,r){var s,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(s=e[n])&&(a=(i<3?s(a):i>3?s(t,o,a):s(t,o))||a);return i>3&&a&&Object.defineProperty(t,o,a),a};import"./config.js";import{UIKeyboard as t}from"./ui/keyboard/keyboard.js";import{Config as o}from"jodit/esm/config.js";import{autobind as r}from"jodit/esm/core/decorators/index.js";import{isString as s}from"jodit/esm/core/helpers/checker/index.js";import{Plugin as i}from"jodit/esm/core/plugin/index.js";import{UISelect as a}from"jodit/esm/core/ui/index.js";import{Dialog as n}from"jodit/esm/modules/index.js";import{JoditPro as d}from"../../jodit-pro.js";export class keyboard extends i{constructor(e){super(e),this.hasStyle=!d.fatMode,this.buttons=[{group:"insert",name:"keyboard"}];const{extraKeyButtons:t,extraKeyGroup:r}=e.o.keyboard;t.length&&t.forEach(((t,i)=>{const a=s(t)?t:t.key,n=s(t)||!t.hotkeys?[`ctrl+${i+1}`]:t.hotkeys;e.registerButton({name:`extraKeyboardButtons.${a}`,group:r});const{extraKeyboardButtons:d}=o.defaultOptions.controls;d[a]={name:a,tooltip:a,args:[a],hotkeys:n,command:"insertChar"}}))}afterInit(e){e.registerCommand("toggleKeyboard",this.toggleKeyboard).registerCommand("insertChar",this.insertChar),e.e.on("isKeyboardOpened",(()=>{var e;return null===(e=this.__keyboard)||void 0===e?void 0:e.isOpened}))}insertChar(e,t,o){this.j.s.insertNode(this.j.createInside.text(o))}toggleKeyboard(){if(!this.__keyboard){this.__keyboard=new n({toolbarButtonSize:"tiny"});const e=new t(this.j);this.__keyboard.setMod("slim",!0).setMod("adaptive",!1).setContent(e);const{showLayoutSwitcher:o,layoutSwitchList:r,layoutList:s}=this.j.o.keyboard;if(o){const t=new a(this.__keyboard,{value:e.state.currentLayout,options:r.map((e=>{var t,o;return{text:null!==(o=null===(t=s[e])||void 0===t?void 0:t.title)&&void 0!==o?o:e,value:e}})),onChange(t){e.state.currentLayout=t}});t.setMod("size","tiny").setMod("width","auto").setMod("variant","outline"),this.__keyboard.setHeader(t)}}this.__keyboard.isOpened?this.__keyboard.close():this.__keyboard.open()}beforeDestruct(e){var t;null===(t=this.__keyboard)||void 0===t||t.destruct()}}keyboard.requires=["license"],e([r],keyboard.prototype,"insertChar",null),e([r],keyboard.prototype,"toggleKeyboard",null),d.plugins.add("keyboard",keyboard);
1
+ var e=this&&this.__decorate||function(e,t,o,r){var s,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(s=e[n])&&(a=(i<3?s(a):i>3?s(t,o,a):s(t,o))||a);return i>3&&a&&Object.defineProperty(t,o,a),a};import"./config.js";import{UIKeyboard as t}from"./ui/keyboard/keyboard.js";import{Config as o}from"jodit/esm/config.js";import{autobind as r}from"jodit/esm/core/decorators/index.js";import{isString as s}from"jodit/esm/core/helpers/checker/index.js";import{Plugin as i}from"jodit/esm/core/plugin/index.js";import{UISelect as a}from"jodit/esm/core/ui/index.js";import{Dialog as n}from"jodit/esm/modules/index.js";import{JoditPro as d}from"../../jodit-pro.js";export class keyboard extends i{constructor(e){super(e),this.hasStyle=!d.fatMode,this.buttons=[{group:"insert",name:"keyboard"}];const{extraKeyButtons:t,extraKeyGroup:r}=e.o.keyboard;t.length&&t.forEach((t,i)=>{const a=s(t)?t:t.key,n=s(t)||!t.hotkeys?[`ctrl+${i+1}`]:t.hotkeys;e.registerButton({name:`extraKeyboardButtons.${a}`,group:r});const{extraKeyboardButtons:d}=o.defaultOptions.controls;d[a]={name:a,tooltip:a,args:[a],hotkeys:n,command:"insertChar"}})}afterInit(e){e.registerCommand("toggleKeyboard",this.toggleKeyboard).registerCommand("insertChar",this.insertChar),e.e.on("isKeyboardOpened",()=>{var e;return null===(e=this.__keyboard)||void 0===e?void 0:e.isOpened})}insertChar(e,t,o){this.j.s.insertNode(this.j.createInside.text(o))}toggleKeyboard(){if(!this.__keyboard){this.__keyboard=new n({toolbarButtonSize:"tiny"});const e=new t(this.j);this.__keyboard.setMod("slim",!0).setMod("adaptive",!1).setContent(e);const{showLayoutSwitcher:o,layoutSwitchList:r,layoutList:s}=this.j.o.keyboard;if(o){const t=new a(this.__keyboard,{value:e.state.currentLayout,options:r.map(e=>{var t,o;return{text:null!==(o=null===(t=s[e])||void 0===t?void 0:t.title)&&void 0!==o?o:e,value:e}}),onChange(t){e.state.currentLayout=t}});t.setMod("size","tiny").setMod("width","auto").setMod("variant","outline"),this.__keyboard.setHeader(t)}}this.__keyboard.isOpened?this.__keyboard.close():this.__keyboard.open()}beforeDestruct(e){var t;null===(t=this.__keyboard)||void 0===t||t.destruct()}}keyboard.requires=["license"],e([r],keyboard.prototype,"insertChar",null),e([r],keyboard.prototype,"toggleKeyboard",null),d.plugins.add("keyboard",keyboard);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t,e=this&&this.__decorate||function(t,e,s,o){var r,a=arguments.length,i=a<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,s,o);else for(var n=t.length-1;n>=0;n--)(r=t[n])&&(i=(a<3?r(i):a>3?r(e,s,i):r(e,s))||i);return a>3&&i&&Object.defineProperty(e,s,i),i};import{NBSP_SPACE as s}from"jodit/esm/core/constants.js";import{autobind as o,component as r,hook as a,watch as i}from"jodit/esm/core/decorators/index.js";import{attr as n}from"jodit/esm/core/helpers/utils/index.js";import{Icon as c,UIElement as h}from"jodit/esm/core/ui/index.js";import p from"../assets/backspace.svg.js";import l from"../assets/caps.svg.js";import u from"../assets/dots.svg.js";import y from"../assets/shift.svg.js";import d from"../assets/tab.svg.js";let f=t=class UIKeyboard extends h{className(){return"UIKeyboard"}render(){const{layout:t,keySize:e}=this.j.options.keyboard,s=t.length;return`<div>${(()=>{const o=[];for(let r=0;r<s;r+=1){const s=[];for(let o=0;o<t[r].length;o+=1)s.push(`<div style="width:${e*t[r][o]}px;height:${e}px;" class="&__key"></div>`);o.push(`<div class='&__row'>${s.join("\n")}</div>`)}return o.join("\n")})()}</div>`}onStateChange(){const{currentLayout:e,options:s,shift:o,caps:r}=this.state,{keys:a}=this.j.o.keyboard.layoutList[e];let i=0;for(let e=0;e<a.length;e+=1)for(let n=0;n<a[e].length;n+=1){const c=a[e][n].split(" ");let h=c[0];o&&(h=c[1]),!o&&r&&c[1]&&t.isLetter(c[0])&&(h=c[1]),s&&(h=c[2]),this.setKeyValue(i,null!=h?h:c[0]),i+=1}}static isLetter(t){return t.toLowerCase()!==t.toUpperCase()}setKeyValue(e,s){const o=this._keys[e];if(!o)return;let r=!1;const{options:a,shift:i,caps:c}=this.state;switch(s){case"Caps":r=c;break;case"Options":r=a;break;case"Shift":r=i}o.innerHTML=t.decorate(s),o.classList.toggle(this.getFullElName("key","active",!0),r),n(o,"-key",s)}onKeyUp(){this.pressed&&this.stopPress()}onReady(){this.j.e.on(this.getElms("key"),"mouseenter",this.stopPress)}stopPress(){this.pressed&&(this.pressed=!1,this.j.async.clearTimeout(this.reKeyDownTimeout),this._keys.forEach((t=>{t.classList.remove(this.getFullElName("key","pressed",!0))})))}onKeyDown(t,e=0){const o=t.target;if(!o||!o.classList.contains(this.getFullElName("key")))return!1;this.pressed=!0,o.classList.add(this.getFullElName("key","pressed",!0));const r=n(o,"-key");switch(r){case"Caps":this.state.caps=!this.state.caps;break;case"Shift":this.state.shift=!this.state.shift;break;case"Options":this.state.options=!this.state.options;break;case"Enter":case"Backspace":this.j.e.fire("keydown",{key:r,preventDefault(){}});break;case"Space":case"Tab":this.j.s.insertNode(this.j.createInside.text(s));break;default:this.state.shift&&(this.state.shift=!1),r&&this.j.s.insertNode(this.j.createInside.text(r))}const{periodKeyRepeat:a,delayKeyRepeat:i}=this.j.o.keyboard;return this.reKeyDownTimeout=this.j.async.setTimeout((()=>this.onKeyDown(t,a)),e||i),!1}constructor(t){super(t),this.state={caps:!1,shift:!1,options:!1,currentLayout:this.j.o.keyboard.defaultLayoutSet},this._keys=this.getElms("key"),this.pressed=!1,this.reKeyDownTimeout=0,this.onStateChange()}static decorate(t){switch(t){case"Space":return"";case"Enter":return c.get("enter");case"Backspace":return p;case"Shift":return y;case"Caps":return l;case"Options":return u;case"Tab":return d;default:return t}}};e([i(["state.currentLayout","state.options","state.shift","state.caps"])],f.prototype,"onStateChange",null),e([i(["ow:mouseup"])],f.prototype,"onKeyUp",null),e([a("ready")],f.prototype,"onReady",null),e([o],f.prototype,"stopPress",null),e([i(["container:mousedown","container:touchstart"])],f.prototype,"onKeyDown",null),f=t=e([r],f);export{f as UIKeyboard};
6
+ var t,e=this&&this.__decorate||function(t,e,s,o){var r,a=arguments.length,i=a<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,s):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,s,o);else for(var n=t.length-1;n>=0;n--)(r=t[n])&&(i=(a<3?r(i):a>3?r(e,s,i):r(e,s))||i);return a>3&&i&&Object.defineProperty(e,s,i),i};import{NBSP_SPACE as s}from"jodit/esm/core/constants.js";import{autobind as o,component as r,hook as a,watch as i}from"jodit/esm/core/decorators/index.js";import{attr as n}from"jodit/esm/core/helpers/utils/index.js";import{Icon as c,UIElement as h}from"jodit/esm/core/ui/index.js";import p from"../assets/backspace.svg.js";import l from"../assets/caps.svg.js";import u from"../assets/dots.svg.js";import y from"../assets/shift.svg.js";import d from"../assets/tab.svg.js";let f=t=class UIKeyboard extends h{className(){return"UIKeyboard"}render(){const{layout:t,keySize:e}=this.j.options.keyboard,s=t.length;return`<div>${(()=>{const o=[];for(let r=0;r<s;r+=1){const s=[];for(let o=0;o<t[r].length;o+=1)s.push(`<div style="width:${e*t[r][o]}px;height:${e}px;" class="&__key"></div>`);o.push(`<div class='&__row'>${s.join("\n")}</div>`)}return o.join("\n")})()}</div>`}onStateChange(){const{currentLayout:e,options:s,shift:o,caps:r}=this.state,{keys:a}=this.j.o.keyboard.layoutList[e];let i=0;for(let e=0;e<a.length;e+=1)for(let n=0;n<a[e].length;n+=1){const c=a[e][n].split(" ");let h=c[0];o&&(h=c[1]),!o&&r&&c[1]&&t.isLetter(c[0])&&(h=c[1]),s&&(h=c[2]),this.setKeyValue(i,null!=h?h:c[0]),i+=1}}static isLetter(t){return t.toLowerCase()!==t.toUpperCase()}setKeyValue(e,s){const o=this._keys[e];if(!o)return;let r=!1;const{options:a,shift:i,caps:c}=this.state;switch(s){case"Caps":r=c;break;case"Options":r=a;break;case"Shift":r=i}o.innerHTML=t.decorate(s),o.classList.toggle(this.getFullElName("key","active",!0),r),n(o,"-key",s)}onKeyUp(){this.pressed&&this.stopPress()}onReady(){this.j.e.on(this.getElms("key"),"mouseenter",this.stopPress)}stopPress(){this.pressed&&(this.pressed=!1,this.j.async.clearTimeout(this.reKeyDownTimeout),this._keys.forEach(t=>{t.classList.remove(this.getFullElName("key","pressed",!0))}))}onKeyDown(t,e=0){const o=t.target;if(!o||!o.classList.contains(this.getFullElName("key")))return!1;this.pressed=!0,o.classList.add(this.getFullElName("key","pressed",!0));const r=n(o,"-key");switch(r){case"Caps":this.state.caps=!this.state.caps;break;case"Shift":this.state.shift=!this.state.shift;break;case"Options":this.state.options=!this.state.options;break;case"Enter":case"Backspace":this.j.e.fire("keydown",{key:r,preventDefault(){}});break;case"Space":case"Tab":this.j.s.insertNode(this.j.createInside.text(s));break;default:this.state.shift&&(this.state.shift=!1),r&&this.j.s.insertNode(this.j.createInside.text(r))}const{periodKeyRepeat:a,delayKeyRepeat:i}=this.j.o.keyboard;return this.reKeyDownTimeout=this.j.async.setTimeout(()=>this.onKeyDown(t,a),e||i),!1}constructor(t){super(t),this.state={caps:!1,shift:!1,options:!1,currentLayout:this.j.o.keyboard.defaultLayoutSet},this._keys=this.getElms("key"),this.pressed=!1,this.reKeyDownTimeout=0,this.onStateChange()}static decorate(t){switch(t){case"Space":return"";case"Enter":return c.get("enter");case"Backspace":return p;case"Shift":return y;case"Caps":return l;case"Options":return u;case"Tab":return d;default:return t}}};e([i(["state.currentLayout","state.options","state.shift","state.caps"])],f.prototype,"onStateChange",null),e([i(["ow:mouseup"])],f.prototype,"onKeyUp",null),e([a("ready")],f.prototype,"onReady",null),e([o],f.prototype,"stopPress",null),e([i(["container:mousedown","container:touchstart"])],f.prototype,"onKeyDown",null),f=t=e([r],f);export{f as UIKeyboard};
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- const t=["*localhost*","staging.","*.dev.","*.test.","*.stg.","stg.*","test.*","beta.*","*demo.*","*test.*","acceptatie.*"];export function validateLicense(e,n){if(validateEntLicense(e=e.replace(/[^A-Z0-9-]/g,"R")))return!0;if(function isAllowedSubdomain(e){return t.some((t=>new RegExp(function escapeRegex(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}(t.replace(/\*/g,"%ANY%")).replace(/%ANY%/g,".*")).test(e)))}(n))return!0;const r=domainsHash(n),a=["[A-F013456][A-F0-9]{3}{part}","([0-3]){part}[E-L4-8]{2}\\1","[A-D]{part}[J-P5-6]{3}","{part}[A-R0-9]{3}[X-Z]"].map(((t,e)=>t.replace("{part}",r[e]||"[R-T]"))),o=RegExp(`^${a.join("-")}$`,"i"),s=e.substring(12,13),i=o.test(e);if(!i&&s===(typeof!n).toUpperCase()[5]){const t=n.split(".");return t.shift(),!!t.length&&validateLicense(e,t.join("."))}return i}export function validateEntLicense(t){return/[A-Z0-9][013456][A-P0-9]{2}[ABC]-([0-3])[ELPDF][E-L4-8]{2}\1-[A-D][R0][J-P5-6]{3}-[DPGHYE][GFPOD]{3}[A-SX-Z]/.test(t)}export function domainsHash(t){const e=t.split(".");return e.map((t=>t[0]&&t[0].charCodeAt(0)?String.fromCharCode(t[0].charCodeAt(0)+1):t[0])).concat(e.map((t=>t[t.length-1]&&t[t.length-1].charCodeAt(0)?String.fromCharCode(t[t.length-1].charCodeAt(0)-1):t[t.length-1]))).map((t=>null!=t&&/\w/.test(t)?t:"r"))}
6
+ const t=["*localhost*","staging.","*.dev.","*.test.","*.stg.","stg.*","test.*","beta.*","*demo.*","*test.*","acceptatie.*"];export function validateLicense(e,n){if(validateEntLicense(e=e.replace(/[^A-Z0-9-]/g,"R")))return!0;if(function isAllowedSubdomain(e){return t.some(t=>new RegExp(function escapeRegex(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}(t.replace(/\*/g,"%ANY%")).replace(/%ANY%/g,".*")).test(e))}(n))return!0;const r=domainsHash(n),a=["[A-F013456][A-F0-9]{3}{part}","([0-3]){part}[E-L4-8]{2}\\1","[A-D]{part}[J-P5-6]{3}","{part}[A-R0-9]{3}[X-Z]"].map((t,e)=>t.replace("{part}",r[e]||"[R-T]")),o=RegExp(`^${a.join("-")}$`,"i"),s=e.substring(12,13),i=o.test(e);if(!i&&s===(typeof!n).toUpperCase()[5]){const t=n.split(".");return t.shift(),!!t.length&&validateLicense(e,t.join("."))}return i}export function validateEntLicense(t){return/[A-Z0-9][013456][A-P0-9]{2}[ABC]-([0-3])[ELPDF][E-L4-8]{2}\1-[A-D][R0][J-P5-6]{3}-[DPGHYE][GFPOD]{3}[A-SX-Z]/.test(t)}export function domainsHash(t){const e=t.split(".");return e.map(t=>t[0]&&t[0].charCodeAt(0)?String.fromCharCode(t[0].charCodeAt(0)+1):t[0]).concat(e.map(t=>t[t.length-1]&&t[t.length-1].charCodeAt(0)?String.fromCharCode(t[t.length-1].charCodeAt(0)-1):t[t.length-1])).map(t=>null!=t&&/\w/.test(t)?t:"r")}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{validateLicense as e}from"./helpers/helpers.js";import{IS_TEST as t}from"jodit/esm/core/constants.js";import{Dom as o}from"jodit/esm/core/dom/dom.js";import{isBoolean as s}from"jodit/esm/core/helpers/checker/is-boolean.js";import{isString as i}from"jodit/esm/core/helpers/checker/is-string.js";import{Plugin as r}from"jodit/esm/core/plugin/plugin.js";import{JoditPro as n}from"../../jodit-pro.js";export class license extends r{static make(e){return new license(e)}afterInit(o){this.j.e.on("checkReserve",(async o=>{const s=this.j.o.license,r=o;if(!i(s))return"";let n=e(s,r);return!n&&s[12]>"A"&&!t&&(n=await this.validateLicenseRemote(s,r)),n?"normal":""}))}beforeDestruct(e){}async validateLicenseRemote(t,i){const r="validateJoditLicenseRemote",n=this.j.storage.get(r);if(n&&e(n,i))return!0;const c=document.createElement("script");return c.src=`https://xdsoft.net/jodit/pro/api/licenses/validate/?code=${encodeURIComponent(t)}&host=${encodeURIComponent(i)}`,document.body.appendChild(c),this.j.async.promise((t=>{window.onJoditResolveKeyCode=n=>{try{if(s(n))return t(n);e(n,i)?(this.j.storage.set(r,n),t(!0)):t(!1)}finally{o.safeRemove(c)}},this.j.async.setTimeout((()=>{t(!1),o.safeRemove(c)}),3e3)}))}}n.plugins.add("license",license);
6
+ import{validateLicense as e}from"./helpers/helpers.js";import{IS_TEST as t}from"jodit/esm/core/constants.js";import{Dom as o}from"jodit/esm/core/dom/dom.js";import{isBoolean as s}from"jodit/esm/core/helpers/checker/is-boolean.js";import{isString as i}from"jodit/esm/core/helpers/checker/is-string.js";import{Plugin as r}from"jodit/esm/core/plugin/plugin.js";import{JoditPro as n}from"../../jodit-pro.js";export class license extends r{static make(e){return new license(e)}afterInit(o){this.j.e.on("checkReserve",async o=>{const s=this.j.o.license,r=o;if(!i(s))return"";let n=e(s,r);return!n&&s[12]>"A"&&!t&&(n=await this.validateLicenseRemote(s,r)),n?"normal":""})}beforeDestruct(e){}async validateLicenseRemote(t,i){const r="validateJoditLicenseRemote",n=this.j.storage.get(r);if(n&&e(n,i))return!0;const c=document.createElement("script");return c.src=`https://xdsoft.net/jodit/pro/api/licenses/validate/?code=${encodeURIComponent(t)}&host=${encodeURIComponent(i)}`,document.body.appendChild(c),this.j.async.promise(t=>{window.onJoditResolveKeyCode=n=>{try{if(s(n))return t(n);e(n,i)?(this.j.storage.set(r,n),t(!0)):t(!1)}finally{o.safeRemove(c)}},this.j.async.setTimeout(()=>{t(!1),o.safeRemove(c)},3e3)})}}n.plugins.add("license",license);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,o,r){var i,s=arguments.length,d=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)d=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(d=(s<3?i(d):s>3?i(t,o,d):i(t,o))||d);return s>3&&d&&Object.defineProperty(t,o,d),d};import{dataBindCurrentKey as t,dataBindStoredKey as o}from"./config.js";import{component as r,watch as i}from"jodit/esm/core/decorators/index.js";import{css as s,dataBind as d}from"jodit/esm/core/helpers/utils/index.js";import{Plugin as n}from"jodit/esm/core/plugin/index.js";import{JoditPro as l}from"../../jodit-pro.js";let c=class MobileView extends n{constructor(){super(...arguments),this.buttons=[{name:"mobileView",group:"state"}],this.__currentMode="default"}afterInit(e){e.registerCommand("mobileView",{exec:(r,i,n)=>{this.__currentMode===n&&(n="default"),this.__currentMode=n,d(e,t,n),"default"!==this.__currentMode&&d(e,o,n),"default"===n?s(this.jodit.workplace,{width:null,margin:null}):s(this.j.workplace,{width:n,margin:"0 auto"})}}),e.events.on("beforeSetMode",(()=>{}))}__beforeSetMode(){"default"!==this.__currentMode&&this.j.execCommand("mobileView",!1,"default")}beforeDestruct(e){}};c.requires=["license"],e([i(":beforeSetMode.mobileView")],c.prototype,"__beforeSetMode",null),c=e([r],c),l.plugins.add("mobileView",c);
6
+ var e=this&&this.__decorate||function(e,t,o,r){var i,s=arguments.length,d=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)d=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(d=(s<3?i(d):s>3?i(t,o,d):i(t,o))||d);return s>3&&d&&Object.defineProperty(t,o,d),d};import{dataBindCurrentKey as t,dataBindStoredKey as o}from"./config.js";import{component as r,watch as i}from"jodit/esm/core/decorators/index.js";import{css as s,dataBind as d}from"jodit/esm/core/helpers/utils/index.js";import{Plugin as n}from"jodit/esm/core/plugin/index.js";import{JoditPro as l}from"../../jodit-pro.js";let c=class MobileView extends n{constructor(){super(...arguments),this.buttons=[{name:"mobileView",group:"state"}],this.__currentMode="default"}afterInit(e){e.registerCommand("mobileView",{exec:(r,i,n)=>{this.__currentMode===n&&(n="default"),this.__currentMode=n,d(e,t,n),"default"!==this.__currentMode&&d(e,o,n),"default"===n?s(this.jodit.workplace,{width:null,margin:null}):s(this.j.workplace,{width:n,margin:"0 auto"})}}),e.events.on("beforeSetMode",()=>{})}__beforeSetMode(){"default"!==this.__currentMode&&this.j.execCommand("mobileView",!1,"default")}beforeDestruct(e){}};c.requires=["license"],e([i(":beforeSetMode.mobileView")],c.prototype,"__beforeSetMode",null),c=e([r],c),l.plugins.add("mobileView",c);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,r,o){var a,i=arguments.length,s=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(i<3?a(s):i>3?a(t,r,s):a(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};import"./config.js";import{debounce as t,watch as r}from"jodit/esm/core/decorators/index.js";import{Dom as o}from"jodit/esm/core/dom/index.js";import{$$ as a,attr as i}from"jodit/esm/core/helpers/index.js";import{Plugin as s}from"jodit/esm/core/plugin/index.js";import{JoditPro as n}from"../../jodit-pro.js";export class PageBreak extends s{constructor(){super(...arguments),this.styles=styles,this.buttons=[{name:"pageBreak",group:"insert"}]}afterInit(e){e.registerCommand("insertPageBreak",(()=>{const t=e.createInside.div("",{});this.decoratePageBreak(t),e.s.insertNode(t,!1,!1);let r=t.parentNode;for(;r&&r!==e.editor&&(o.after(r,t),!o.isBlock(r));)r=t.parentNode;e.s.setCursorAfter(t),e.setEditorValue()}))}decoratePageBreak(e){i(e,{"data-jodit-page-break":!0,contenteditable:!1}),e.innerText=this.j.i18n("Page break")}beforeDestruct(){}onChange(){a('[style*="page-break-after"],[style*="page-break-before"]',this.j.editor).forEach((e=>{o.isEmpty(e)&&!i(e,"data-jodit-page-break")&&this.decoratePageBreak(e)}))}onAfterGetValueFromEditor(e){e.value=e.value.replace(/<div[^>]+data-jodit-page-break[^>]+>[^]*?<\/div>/gi,this.j.o.pageBreak.separator)}}PageBreak.requires=["license"],e([r([":change",":afterSetMode"]),t()],PageBreak.prototype,"onChange",null),e([r(":afterGetValueFromEditor")],PageBreak.prototype,"onAfterGetValueFromEditor",null),n.plugins.add("pageBreak",PageBreak);
6
+ var e=this&&this.__decorate||function(e,t,r,o){var a,i=arguments.length,s=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,o);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(i<3?a(s):i>3?a(t,r,s):a(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s};import"./config.js";import{debounce as t,watch as r}from"jodit/esm/core/decorators/index.js";import{Dom as o}from"jodit/esm/core/dom/index.js";import{$$ as a,attr as i}from"jodit/esm/core/helpers/index.js";import{Plugin as s}from"jodit/esm/core/plugin/index.js";import{JoditPro as n}from"../../jodit-pro.js";export class PageBreak extends s{constructor(){super(...arguments),this.styles=styles,this.buttons=[{name:"pageBreak",group:"insert"}]}afterInit(e){e.registerCommand("insertPageBreak",()=>{const t=e.createInside.div("",{});this.decoratePageBreak(t),e.s.insertNode(t,!1,!1);let r=t.parentNode;for(;r&&r!==e.editor&&(o.after(r,t),!o.isBlock(r));)r=t.parentNode;e.s.setCursorAfter(t),e.setEditorValue()})}decoratePageBreak(e){i(e,{"data-jodit-page-break":!0,contenteditable:!1}),e.innerText=this.j.i18n("Page break")}beforeDestruct(){}onChange(){a('[style*="page-break-after"],[style*="page-break-before"]',this.j.editor).forEach(e=>{o.isEmpty(e)&&!i(e,"data-jodit-page-break")&&this.decoratePageBreak(e)})}onAfterGetValueFromEditor(e){e.value=e.value.replace(/<div[^>]+data-jodit-page-break[^>]+>[^]*?<\/div>/gi,this.j.o.pageBreak.separator)}}PageBreak.requires=["license"],e([r([":change",":afterSetMode"]),t()],PageBreak.prototype,"onChange",null),e([r(":afterGetValueFromEditor")],PageBreak.prototype,"onAfterGetValueFromEditor",null),n.plugins.add("pageBreak",PageBreak);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,i,o){var a,s=arguments.length,n=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,o);else for(var r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s<3?a(n):s>3?a(t,i,n):a(t,i))||n);return s>3&&n&&Object.defineProperty(t,i,n),n};import"./config.js";import{IS_PROD as t}from"jodit/esm/core/constants.js";import{autobind as i,component as o,debounce as a,watch as s}from"jodit/esm/core/decorators/index.js";import{$$ as n,appendScriptAsync as r,attr as l,loadNext as d,loadNextStyle as h,refs as c,stripTags as g}from"jodit/esm/core/helpers/index.js";import{isBoolean as p}from"jodit/esm/core/helpers/checker/is-boolean.js";import{htmlspecialchars as u}from"jodit/esm/core/helpers/html/htmlspecialchars.js";import{Plugin as m}from"jodit/esm/core/plugin/index.js";import{Button as _,UIForm as f,UISelect as C,UITextArea as j}from"jodit/esm/core/ui/index.js";import{Dialog as L,Dom as b}from"jodit/esm/modules/index.js";import{JoditPro as E}from"../../jodit-pro.js";let v=class pasteCode extends m{constructor(){super(...arguments),this.buttons=[{name:"pasteCode",group:"clipboard"}],this.__highlightLibJSIsLoaded=!1,this.__loadLanguage=new Map,this.__initHighlightLibLoading=async e=>{const{globalHighlightLib:i,highlightLib:{css:o,js:a,langUrl:s,highlight:n,isLangLoaded:l,beforeLibLoad:c,afterLibLoad:g}}=this.j.o.pasteCode;return this.__highlightLibJSIsLoaded||i||(this.__highlightLibJSIsLoaded=Promise.resolve(null==c?void 0:c()).then((()=>waitingPromise(this.async,Promise.allSettled([h(this.jodit,o).catch((()=>null)),d(this.jodit,a).catch((()=>null))])))).then((()=>null==g?void 0:g()))),p(this.__highlightLibJSIsLoaded)||await this.__highlightLibJSIsLoaded,!e||l(e)||i||(this.__loadLanguage.has(e)||(t||console.log("Load language",e,"for paste-code"),this.__loadLanguage.set(e,waitingPromise(this.async,r(this.jodit,s(e)).catch((()=>null))))),await this.__loadLanguage.get(e)),{highlight:n}}}afterInit(e){e.registerCommand("pasteCode",(()=>this.__openCodeEditDialog())),e.async.requestIdleCallback((()=>this.__initHighlightLibLoading()))}__openCodeEditDialog(e,t,i){const o=this.j,a=this.__createForm(),{code:s,language:n}=c(a.container);e&&(n.value=e),t&&(s.value=t),o.async.requestIdleCallback((()=>{s.focus()})),o.s.save(),this.__createDialog((()=>{if(!a.validate())return!1;{o.s.restore();const e=o.createInside.fromHTML(o.o.pasteCode.insertTemplate(o,n.value,s.value));if(i)b.replace(i,e,o.createInside,!1,!0);else{const t=o.s.current(),i=b.up(t,b.isBlock,o.editor);i&&!b.isCell(i)?b.after(i,e):o.s.insertNode(e)}this.__imdOnChange()}}),(()=>{o.s.restore()})).setContent(a.container).open(!0)}beforeDestruct(e){}__createForm(){const{jodit:e}=this;return new f(e,[new C(e,{name:"language",label:"Language",value:e.o.pasteCode.defaultLanguage,options:e.o.pasteCode.languages,required:!0}),new j(e,{label:"Code view",resizable:!1,name:"code",required:!0,className:"jodit-paste-code__textarea"})],{className:"jodit-paste-code"})}__createDialog(e,t){const i=new L({language:this.j.o.language});return i.setHeader("Insert/Edit Code Sample").setSize(this.j.o.pasteCode.dialog.width,this.j.o.pasteCode.dialog.height).setFooter([_(i,"","Cancel","default").onAction((()=>{i.close(),t()})),_(i,"save","Save","primary").onAction((()=>{i.close(),e()}))]),i}__onChange(){this.__imdOnChange()}__imdOnChange(){n("pre",this.j.editor).forEach((e=>{l(e,"contenteditable")||(l(e,"contenteditable",!1),this.__highlightCode(e).catch((()=>null)))}))}async __highlightCode(e){const t=this.__parseLanguage(e),{highlight:i}=await this.__initHighlightLibLoading(t);let o=e;e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&(o=e.firstElementChild),o.innerHTML=i(o.innerText,t)}onPreEdit(e){const t=b.isNode(e)&&b.isTag(e,"pre")?e:b.closest(e.target,"pre",this.j.editor);if(t){const e=this.__parseLanguage(t);this.__openCodeEditDialog(e,t.innerText,t)}}__parseLanguage(e){let t=null;const getLang=e=>e.classList.forEach((e=>{if(/language-/.test(e)){const i=/language-(.*)/.exec(e);i&&i[1]&&(t=i[1])}}));return getLang(e),null==t&&e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&getLang(e.firstElementChild),this.jodit.o.pasteCode.canonicalLanguageCode(t||"html")}onAfterGetValueFromEditor(e){const strip=(e,t,i,o,a,s)=>`${t.trim()}${o}${u(g(a,this.j.ed,new Set(["br"])))}${s}`;e.value=e.value.replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>\s*<code[^>]*>)(.*?)(<\/code>\s*<\/pre>)/gis,strip).replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>)(.*?)(<\/pre>)/gis,strip)}};v.requires=["license"],e([i],v.prototype,"__openCodeEditDialog",null),e([s(["?:change","?:afterInit"]),a()],v.prototype,"__onChange",null),e([s(["?:dblclick","?:editPreInPasteCode"])],v.prototype,"onPreEdit",null),e([s("?:afterGetValueFromEditor")],v.prototype,"onAfterGetValueFromEditor",null),v=e([o],v);export{v as pasteCode};function waitingPromise(e,t){return e.promise(((e,i)=>{t.then(e).catch(i)})).catch((()=>null))}E.plugins.add("paste-code",v);
6
+ var e=this&&this.__decorate||function(e,t,i,o){var a,s=arguments.length,n=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,o);else for(var r=e.length-1;r>=0;r--)(a=e[r])&&(n=(s<3?a(n):s>3?a(t,i,n):a(t,i))||n);return s>3&&n&&Object.defineProperty(t,i,n),n};import"./config.js";import{IS_PROD as t}from"jodit/esm/core/constants.js";import{autobind as i,component as o,debounce as a,watch as s}from"jodit/esm/core/decorators/index.js";import{$$ as n,appendScriptAsync as r,attr as l,loadNext as d,loadNextStyle as h,refs as c,stripTags as g}from"jodit/esm/core/helpers/index.js";import{isBoolean as p}from"jodit/esm/core/helpers/checker/is-boolean.js";import{htmlspecialchars as u}from"jodit/esm/core/helpers/html/htmlspecialchars.js";import{Plugin as m}from"jodit/esm/core/plugin/index.js";import{Button as _,UIForm as f,UISelect as C,UITextArea as j}from"jodit/esm/core/ui/index.js";import{Dialog as L,Dom as b}from"jodit/esm/modules/index.js";import{JoditPro as E}from"../../jodit-pro.js";let v=class pasteCode extends m{constructor(){super(...arguments),this.buttons=[{name:"pasteCode",group:"clipboard"}],this.__highlightLibJSIsLoaded=!1,this.__loadLanguage=new Map,this.__initHighlightLibLoading=async e=>{const{globalHighlightLib:i,highlightLib:{css:o,js:a,langUrl:s,highlight:n,isLangLoaded:l,beforeLibLoad:c,afterLibLoad:g}}=this.j.o.pasteCode;return this.__highlightLibJSIsLoaded||i||(this.__highlightLibJSIsLoaded=Promise.resolve(null==c?void 0:c()).then(()=>waitingPromise(this.async,Promise.allSettled([h(this.jodit,o).catch(()=>null),d(this.jodit,a).catch(()=>null)]))).then(()=>null==g?void 0:g())),p(this.__highlightLibJSIsLoaded)||await this.__highlightLibJSIsLoaded,!e||l(e)||i||(this.__loadLanguage.has(e)||(t||console.log("Load language",e,"for paste-code"),this.__loadLanguage.set(e,waitingPromise(this.async,r(this.jodit,s(e)).catch(()=>null)))),await this.__loadLanguage.get(e)),{highlight:n}}}afterInit(e){e.registerCommand("pasteCode",()=>this.__openCodeEditDialog()),e.async.requestIdleCallback(()=>this.__initHighlightLibLoading())}__openCodeEditDialog(e,t,i){const o=this.j,a=this.__createForm(),{code:s,language:n}=c(a.container);e&&(n.value=e),t&&(s.value=t),o.async.requestIdleCallback(()=>{s.focus()}),o.s.save(),this.__createDialog(()=>{if(a.validate()){o.s.restore();const e=o.createInside.fromHTML(o.o.pasteCode.insertTemplate(o,n.value,s.value));if(i)b.replace(i,e,o.createInside,!1,!0);else{const t=o.s.current(),i=b.up(t,b.isBlock,o.editor);i&&!b.isCell(i)?b.after(i,e):o.s.insertNode(e)}return void this.__imdOnChange()}return!1},()=>{o.s.restore()}).setContent(a.container).open(!0)}beforeDestruct(e){}__createForm(){const{jodit:e}=this;return new f(e,[new C(e,{name:"language",label:"Language",value:e.o.pasteCode.defaultLanguage,options:e.o.pasteCode.languages,required:!0}),new j(e,{label:"Code view",resizable:!1,name:"code",required:!0,className:"jodit-paste-code__textarea"})],{className:"jodit-paste-code"})}__createDialog(e,t){const i=new L({language:this.j.o.language});return i.setHeader("Insert/Edit Code Sample").setSize(this.j.o.pasteCode.dialog.width,this.j.o.pasteCode.dialog.height).setFooter([_(i,"","Cancel","default").onAction(()=>{i.close(),t()}),_(i,"save","Save","primary").onAction(()=>{i.close(),e()})]),i}__onChange(){this.__imdOnChange()}__imdOnChange(){n("pre",this.j.editor).forEach(e=>{l(e,"contenteditable")||(l(e,"contenteditable",!1),this.__highlightCode(e).catch(()=>null))})}async __highlightCode(e){const t=this.__parseLanguage(e),{highlight:i}=await this.__initHighlightLibLoading(t);let o=e;e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&(o=e.firstElementChild),o.innerHTML=i(o.innerText,t)}onPreEdit(e){const t=b.isNode(e)&&b.isTag(e,"pre")?e:b.closest(e.target,"pre",this.j.editor);if(t){const e=this.__parseLanguage(t);this.__openCodeEditDialog(e,t.innerText,t)}}__parseLanguage(e){let t=null;const getLang=e=>e.classList.forEach(e=>{if(/language-/.test(e)){const i=/language-(.*)/.exec(e);i&&i[1]&&(t=i[1])}});return getLang(e),null==t&&e.firstElementChild===e.lastElementChild&&b.isTag(e.firstElementChild,"code")&&getLang(e.firstElementChild),this.jodit.o.pasteCode.canonicalLanguageCode(t||"html")}onAfterGetValueFromEditor(e){const strip=(e,t,i,o,a,s)=>`${t.trim()}${o}${u(g(a,this.j.ed,new Set(["br"])))}${s}`;e.value=e.value.replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>\s*<code[^>]*>)(.*?)(<\/code>\s*<\/pre>)/gis,strip).replace(/(<pre[^>]*)contenteditable\s*=\s*(['"]?)false\2([^>]*>)(.*?)(<\/pre>)/gis,strip)}};v.requires=["license"],e([i],v.prototype,"__openCodeEditDialog",null),e([s(["?:change","?:afterInit"]),a()],v.prototype,"__onChange",null),e([s(["?:dblclick","?:editPreInPasteCode"])],v.prototype,"onPreEdit",null),e([s("?:afterGetValueFromEditor")],v.prototype,"onAfterGetValueFromEditor",null),v=e([o],v);export{v as pasteCode};function waitingPromise(e,t){return e.promise((e,i)=>{t.then(e).catch(i)}).catch(()=>null)}E.plugins.add("paste-code",v);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- const t={"text-justify":["inter-ideograph"]};export function cleanStyles(e){return e.isElement&&e.attributes.style&&Object.keys(t).forEach((s=>{var l;const n=t[s];e.style.has(s)&&n.includes(null===(l=e.style.get(s))||void 0===l?void 0:l.toString())&&e.style.set(s,null)})),e}
6
+ const t={"text-justify":["inter-ideograph"]};export function cleanStyles(e){return e.isElement&&e.attributes.style&&Object.keys(t).forEach(s=>{var l;const n=t[s];e.style.has(s)&&n.includes(null===(l=e.style.get(s))||void 0===l?void 0:l.toString())&&e.style.set(s,null)}),e}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{convertUnitToPx as t}from"../helpers/index.js";export const convertStyleUnitToPixels=(e,{jodit:o})=>{if(!o.o.pasteFromWord.convertUnitsToPixel)return e;const{style:r}=e;return r.forEach((e=>{const o=r.get(e);o&&r.set(e,o.toString().replace(/\d+(\.\d+)?(pt|cm)/g,(e=>t(e)+"px")))})),e};
6
+ import{convertUnitToPx as t}from"../helpers/index.js";export const convertStyleUnitToPixels=(e,{jodit:o})=>{if(!o.o.pasteFromWord.convertUnitsToPixel)return e;const{style:r}=e;return r.forEach(e=>{const o=r.get(e);o&&r.set(e,o.toString().replace(/\d+(\.\d+)?(pt|cm)/g,e=>t(e)+"px"))}),e};
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{SPACE_REG_EXP as t}from"jodit/esm/core/constants.js";import{LEVEL_KEY as e,listStyleMap as r,STYLE_CSS_KEY as n,STYLE_KEY as s,STYLE_VALID_KEY as i,TYPE_KEY as a}from"../constants.js";import{html as o,isLeaf as u,isList as l,isPseudoLeaf as p,isSameType as c}from"../element/index.js";import{calcListLevels as m,calcStartBySymbol as b}from"../helpers/index.js";export function convertToList(t){var o;if(p(t)){t.name="li",t.style.set("text-indent",null);const p=getSymbol(t),d=/[\da-np-zA-NP-Z].?/.test(p)?"ol":"ul",f=function defineOrderedListStyle(t,e){for(const e in r)if(RegExp(e).test(t))return r[e];return"ol"===e?"decimal":"disc"}(p,d);t.attributes[a]=d,t.attributes[s]=f,m(t),function moveUp(t){for(;t;){const r=t.previousElement;if(!u(r)&&!l(r))break;if(u(r)){if(t.attributes[e]<r.attributes[e])break;if(t.attributes[e]===r.attributes[e]&&t.parent&&c(t,t.parent))break;r.append(t);continue}const n=r;if(t.attributes[e]<n.attributes[e])break;if(t.attributes[e]===n.attributes[e]&&!c(t,n))break;n.append(t)}}(t);const{parent:v}=t;if(!l(v)||!c(t,v)){const r=function wrapInNewList(t,r,a,o){const u=t.wrap(r);return u.attributes.start=b(a),u.attributes[e]=t.attributes[e],u.attributes[s]=t.attributes[s],u.attributes[i]=t.attributes[s],u.style.set(n,o),removeRedundancyStyle(u),u}(t,d,p,f);return l(v)&&(r.remove(),null===(o=v.lastElement)||void 0===o||o.append(r)),t}}return t}export function removeRedundancyStyle(t){var e;!l(t)||"li"===(null===(e=t.parent)||void 0===e?void 0:e.name)||"disc"!==t.style.get(n)&&"decimal"!==t.style.get(n)||t.style.set(n,null)}const getSymbol=e=>e.textBetween((t=>t.isComment&&/\[if.*supportLists.*]/.test(o(t))),(t=>t.isComment&&/\[endif]/.test(o(t)))).replace(/&nbsp;/g,"").replace(t(),"");
6
+ import{SPACE_REG_EXP as t}from"jodit/esm/core/constants.js";import{LEVEL_KEY as e,listStyleMap as r,STYLE_CSS_KEY as n,STYLE_KEY as s,STYLE_VALID_KEY as i,TYPE_KEY as a}from"../constants.js";import{html as o,isLeaf as u,isList as l,isPseudoLeaf as p,isSameType as c}from"../element/index.js";import{calcListLevels as m,calcStartBySymbol as b}from"../helpers/index.js";export function convertToList(t){var o;if(p(t)){t.name="li",t.style.set("text-indent",null);const p=getSymbol(t),d=/[\da-np-zA-NP-Z].?/.test(p)?"ol":"ul",f=function defineOrderedListStyle(t,e){for(const e in r)if(RegExp(e).test(t))return r[e];return"ol"===e?"decimal":"disc"}(p,d);t.attributes[a]=d,t.attributes[s]=f,m(t),function moveUp(t){for(;t;){const r=t.previousElement;if(!u(r)&&!l(r))break;if(u(r)){if(t.attributes[e]<r.attributes[e])break;if(t.attributes[e]===r.attributes[e]&&t.parent&&c(t,t.parent))break;r.append(t);continue}const n=r;if(t.attributes[e]<n.attributes[e])break;if(t.attributes[e]===n.attributes[e]&&!c(t,n))break;n.append(t)}}(t);const{parent:v}=t;if(!l(v)||!c(t,v)){const r=function wrapInNewList(t,r,a,o){const u=t.wrap(r);return u.attributes.start=b(a),u.attributes[e]=t.attributes[e],u.attributes[s]=t.attributes[s],u.attributes[i]=t.attributes[s],u.style.set(n,o),removeRedundancyStyle(u),u}(t,d,p,f);return l(v)&&(r.remove(),null===(o=v.lastElement)||void 0===o||o.append(r)),t}}return t}export function removeRedundancyStyle(t){var e;!l(t)||"li"===(null===(e=t.parent)||void 0===e?void 0:e.name)||"disc"!==t.style.get(n)&&"decimal"!==t.style.get(n)||t.style.set(n,null)}const getSymbol=e=>e.textBetween(t=>t.isComment&&/\[if.*supportLists.*]/.test(o(t)),t=>t.isComment&&/\[endif]/.test(o(t))).replace(/&nbsp;/g,"").replace(t(),"");
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{toArray as e}from"jodit/esm/core/helpers/index.js";export const processImage=(t,s)=>{var i,n;if(s.rtf&&"#comment"===t.name&&t.attributes.nodeValue&&-1!==t.attributes.nodeValue.indexOf("<v:shape")){s.shapes||(s.shapes={});const i=s.jodit.create.fromHTML(t.attributes.nodeValue);return e(i.getElementsByTagName("v:shape")).forEach((e=>{s.shapes[e.id]=e.getAttribute("o:spid")})),t}if("img"!==t.name)return t;if(s.rtf&&t.attributes["v:shapes"]){const e=null===(i=s.shapes)||void 0===i?void 0:i[t.attributes["v:shapes"]];if(e){const i=null!==(n=s.imageMap)&&void 0!==n?n:{};s.imageMap||(s.imageMap=i,parseImages(s.rtf,"i","\\shppict",s.imageMap),parseImages(s.rtf,"s","\\shp{",s.imageMap));const a=i[e.substring(7)];if(a){const e=[],s=a.hex.match(/[0-9a-f]{2}/gi);if(s){for(let t=0;t<s.length;t++){const i=parseInt(s[t],16);e.push(String.fromCharCode(i))}t.attributes.src="data:"+a.type+";base64,"+btoa(e.join(""))}}}}return t};function parseImages(e,t,s,i){const n=e.split(s);for(const e of n){const s=e.split("shplid");if(1<s.length){const e=s[1];let n="";for(let t=0;t<e.length&&!/[{ \r\n\\]/.test(e[t]);t++)n+=e[t];const a=e.split("bliptag");if(a&&a.length<2)continue;let o=null;if(a[0].indexOf("pngblip")?o="image/png":-1!==a[0].indexOf("jpegblip")&&(o="image/jpeg"),!o)continue;const p=a[1].split("}");if(p&&p.length<2)continue;let r;if(2<p.length&&p[0].includes("blipuid"))r=p[1].split(" ");else{if(r=p[0].split(" "),r&&r.length<2)continue;r.shift()}i[t+n]={hex:r.join(""),type:o}}}}
6
+ import{toArray as e}from"jodit/esm/core/helpers/index.js";export const processImage=(t,s)=>{var i,n;if(s.rtf&&"#comment"===t.name&&t.attributes.nodeValue&&-1!==t.attributes.nodeValue.indexOf("<v:shape")){s.shapes||(s.shapes={});const i=s.jodit.create.fromHTML(t.attributes.nodeValue);return e(i.getElementsByTagName("v:shape")).forEach(e=>{s.shapes[e.id]=e.getAttribute("o:spid")}),t}if("img"!==t.name)return t;if(s.rtf&&t.attributes["v:shapes"]){const e=null===(i=s.shapes)||void 0===i?void 0:i[t.attributes["v:shapes"]];if(e){const i=null!==(n=s.imageMap)&&void 0!==n?n:{};s.imageMap||(s.imageMap=i,parseImages(s.rtf,"i","\\shppict",s.imageMap),parseImages(s.rtf,"s","\\shp{",s.imageMap));const a=i[e.substring(7)];if(a){const e=[],s=a.hex.match(/[0-9a-f]{2}/gi);if(s){for(let t=0;t<s.length;t++){const i=parseInt(s[t],16);e.push(String.fromCharCode(i))}t.attributes.src="data:"+a.type+";base64,"+btoa(e.join(""))}}}}return t};function parseImages(e,t,s,i){const n=e.split(s);for(const e of n){const s=e.split("shplid");if(1<s.length){const e=s[1];let n="";for(let t=0;t<e.length&&!/[{ \r\n\\]/.test(e[t]);t++)n+=e[t];const a=e.split("bliptag");if(a&&a.length<2)continue;let o=null;if(a[0].indexOf("pngblip")?o="image/png":-1!==a[0].indexOf("jpegblip")&&(o="image/jpeg"),!o)continue;const p=a[1].split("}");if(p&&p.length<2)continue;let r;if(2<p.length&&p[0].includes("blipuid"))r=p[1].split(" ");else{if(r=p[0].split(" "),r&&r.length<2)continue;r.shift()}i[t+n]={hex:r.join(""),type:o}}}}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{html as t}from"./render.js";import{LEVEL_KEY as e,STYLE_KEY as s,TYPE_KEY as i}from"../constants.js";export function isList(t){return Boolean(t&&("ol"===t.name||"ul"===t.name))}export function isLeaf(t){return Boolean(t&&"li"===t.name)}export function isPseudoLeaf(e){return"li"!==e.name&&/mso-list:\s*l\d+ level\d+ lfo\d+/i.test(e.attributes.style)||/msolistparagraph/i.test(e.attributes.class)&&Boolean(e.find((e=>e.isComment&&t(e).includes("supportLists"))).length)}export function isSameType(t,n){const r=t.attributes[i],o=t.attributes[s];return!(n.name!==r||n.attributes[s]!==o||t.attributes[e]!==n.attributes[e])}
6
+ import{html as t}from"./render.js";import{LEVEL_KEY as e,STYLE_KEY as s,TYPE_KEY as i}from"../constants.js";export function isList(t){return Boolean(t&&("ol"===t.name||"ul"===t.name))}export function isLeaf(t){return Boolean(t&&"li"===t.name)}export function isPseudoLeaf(e){return"li"!==e.name&&/mso-list:\s*l\d+ level\d+ lfo\d+/i.test(e.attributes.style)||/msolistparagraph/i.test(e.attributes.class)&&Boolean(e.find(e=>e.isComment&&t(e).includes("supportLists")).length)}export function isSameType(t,n){const r=t.attributes[i],o=t.attributes[s];return!(n.name!==r||n.attributes[s]!==o||t.attributes[e]!==n.attributes[e])}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{html as t}from"./render.js";import{Style as e}from"./style.js";import{INSEPARABLE_TAGS as n}from"jodit/esm/core/constants.js";import{Dom as r}from"jodit/esm/core/dom/index.js";import{assert as i}from"jodit/esm/core/helpers/utils/assert.js";const s=new Set(n);export class JElement{get isText(){return this.type===Node.TEXT_NODE}get isElement(){return this.type===Node.ELEMENT_NODE}get isComment(){return this.type===Node.COMMENT_NODE}get isSingle(){return s.has(this.name)}get length(){return this.children.length}constructor(t,n){this.parent=n,this.name=t.nodeName.toLowerCase(),this.type=t.nodeType,this.attributes=function readAttributes(t){const e={};if(r.isElement(t))for(let n=0,r=t.attributes;n<r.length;n+=1)e[r[n].name]=r[n].value;else e.nodeValue=t.nodeValue;return e}(t),this.style=new e(this.attributes.style),this.children=[],t.childNodes.forEach((t=>this.children.push(JElement.make(t,this))))}static make(t,e=null){return new JElement(t,e)}wrap(t){var e;i(null!=this.parent,"You can't wrap the root element");const n=JElement.make(document.createElement(t),this.parent),r=null!==(e=this.parent.children.indexOf(this))&&void 0!==e?e:-1;return-1===r?this.parent.append(n):this.parent.children[r]=n,n.append(this),n}append(t){return i(t!==this,"Forbidden to add to yourself"),t.remove(),this.children.push(t),t.parent=this,this}get previousElement(){if(!this.parent)return null;const{children:t}=this.parent,e=t.indexOf(this);if(-1!==e)for(let n=e-1;n>=0;n-=1)if(t[n].isElement)return t[n];return null}get lastElement(){const{children:t}=this;for(let e=t.length-1;e>=0;e-=1)if(t[e].isElement)return t[e];return null}get previous(){var t,e,n;return null!==(n=null!==(t=this.sibling(!1))&&void 0!==t?t:null===(e=this.parent)||void 0===e?void 0:e.previous)&&void 0!==n?n:null}get next(){var t,e,n;return null!==(n=null!==(t=this.sibling(!0))&&void 0!==t?t:null===(e=this.parent)||void 0===e?void 0:e.next)&&void 0!==n?n:null}sibling(t){if(!this.parent)return null;const{children:e}=this.parent,n=e.indexOf(this);return-1!==n&&e[n+(t?1:-1)]?e[n+(t?1:-1)]:null}forEach(t,e=!1){const n=[...this.children];for(const r of n){if(!1===t(r))return!1;if(e&&!1===r.forEach(t,!0))return!1}}find(t,e=!0){const n=[];return this.forEach((e=>{t(e)&&n.push(e)}),e),n}map(t){return this.children.map(t)}remove(){var t,e;const n=null===(t=this.parent)||void 0===t?void 0:t.children.indexOf(this);return null!=n&&-1!==n&&(null===(e=this.parent)||void 0===e||e.children.splice(n,1)),this}textBetween(e,n){let r=!1;const i=[];return this.forEach((s=>{if(!r&&e(s)&&(r=!0),r&&s.isText&&i.push(t(s)),r&&n(s))return!1}),!0),i.join("")}}
6
+ import{html as t}from"./render.js";import{Style as e}from"./style.js";import{INSEPARABLE_TAGS as n}from"jodit/esm/core/constants.js";import{Dom as r}from"jodit/esm/core/dom/index.js";import{assert as i}from"jodit/esm/core/helpers/utils/assert.js";const s=new Set(n);export class JElement{get isText(){return this.type===Node.TEXT_NODE}get isElement(){return this.type===Node.ELEMENT_NODE}get isComment(){return this.type===Node.COMMENT_NODE}get isSingle(){return s.has(this.name)}get length(){return this.children.length}constructor(t,n){this.parent=n,this.name=t.nodeName.toLowerCase(),this.type=t.nodeType,this.attributes=function readAttributes(t){const e={};if(r.isElement(t))for(let n=0,r=t.attributes;n<r.length;n+=1)e[r[n].name]=r[n].value;else e.nodeValue=t.nodeValue;return e}(t),this.style=new e(this.attributes.style),this.children=[],t.childNodes.forEach(t=>this.children.push(JElement.make(t,this)))}static make(t,e=null){return new JElement(t,e)}wrap(t){var e;i(null!=this.parent,"You can't wrap the root element");const n=JElement.make(document.createElement(t),this.parent),r=null!==(e=this.parent.children.indexOf(this))&&void 0!==e?e:-1;return-1===r?this.parent.append(n):this.parent.children[r]=n,n.append(this),n}append(t){return i(t!==this,"Forbidden to add to yourself"),t.remove(),this.children.push(t),t.parent=this,this}get previousElement(){if(!this.parent)return null;const{children:t}=this.parent,e=t.indexOf(this);if(-1!==e)for(let n=e-1;n>=0;n-=1)if(t[n].isElement)return t[n];return null}get lastElement(){const{children:t}=this;for(let e=t.length-1;e>=0;e-=1)if(t[e].isElement)return t[e];return null}get previous(){var t,e,n;return null!==(n=null!==(t=this.sibling(!1))&&void 0!==t?t:null===(e=this.parent)||void 0===e?void 0:e.previous)&&void 0!==n?n:null}get next(){var t,e,n;return null!==(n=null!==(t=this.sibling(!0))&&void 0!==t?t:null===(e=this.parent)||void 0===e?void 0:e.next)&&void 0!==n?n:null}sibling(t){if(!this.parent)return null;const{children:e}=this.parent,n=e.indexOf(this);return-1!==n&&e[n+(t?1:-1)]?e[n+(t?1:-1)]:null}forEach(t,e=!1){const n=[...this.children];for(const r of n){if(!1===t(r))return!1;if(e&&!1===r.forEach(t,!0))return!1}}find(t,e=!0){const n=[];return this.forEach(e=>{t(e)&&n.push(e)},e),n}map(t){return this.children.map(t)}remove(){var t,e;const n=null===(t=this.parent)||void 0===t?void 0:t.children.indexOf(this);return null!=n&&-1!==n&&(null===(e=this.parent)||void 0===e||e.children.splice(n,1)),this}textBetween(e,n){let r=!1;const i=[];return this.forEach(s=>{if(!r&&e(s)&&(r=!0),r&&s.isText&&i.push(t(s)),r&&n(s))return!1},!0),i.join("")}}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{IS_PROD as e}from"jodit/esm/core/constants.js";import{isBoolean as t}from"jodit/esm/core/helpers/checker/is-boolean.js";import{trim as n}from"jodit/esm/core/helpers/string/trim.js";export function html(t,n=()=>!0,s=!0,i){switch(!0){case t.isComment:case t.isText:{if(!n(t))return"";const{nodeValue:e}=t.attributes;return t.isComment?`\x3c!--${e}--\x3e`:e}case t.isElement:{const{attributes:e}=t,r=innerHTML(t,n,s,i);if(!t.attributes["jd-safe"]&&s&&0===r.replace(/[\n\t]/g,"").length&&!t.isSingle)return"";const o=Object.keys(e).map((t=>"style"===t||null==e[t]||/^jd-/.test(t)?"":`${t}="${htmlEntity(e[t])}"`)).filter(Boolean),{str:c}=t.style,a=htmlEntity(c((e=>keyInList(e,i))));if(a&&o.push(`style="${a}"`),s&&0===o.length&&["span","a"].includes(t.name))return r;const l=o.length?" "+o.join(" "):"";return n(t)?t.isSingle?`<${t.name}${l}/>`:`<${t.name}${l}>${r}</${t.name}>`:r}default:if(!e)throw Error("Need implementation for this type")}return""}function keyInList(e,n){var s;if(!n)return!0;if(keyInList.cache.has(n)){const i=null===(s=keyInList.cache.get(n))||void 0===s?void 0:s.get(e);if(t(i))return i}const i=n.some((t=>new RegExp(t).test(e))),r=keyInList.cache.get(n)||new Map;return r.set(e,i),keyInList.cache.set(n,r),i}keyInList.cache=new WeakMap;export function innerHTML(e,t=()=>!0,s=!0,i){let r=e.map((e=>html(e,t,s,i))).join("");return"p"===e.name&&0===n(r).length&&(r="&nbsp;"),r}function htmlEntity(e){return e.toString().replace(/"/g,"&quot;")}
6
+ import{IS_PROD as e}from"jodit/esm/core/constants.js";import{isBoolean as t}from"jodit/esm/core/helpers/checker/is-boolean.js";import{trim as n}from"jodit/esm/core/helpers/string/trim.js";export function html(t,n=()=>!0,s=!0,i){switch(!0){case t.isComment:case t.isText:{if(!n(t))return"";const{nodeValue:e}=t.attributes;return t.isComment?`\x3c!--${e}--\x3e`:e}case t.isElement:{const{attributes:e}=t,r=innerHTML(t,n,s,i);if(!t.attributes["jd-safe"]&&s&&0===r.replace(/[\n\t]/g,"").length&&!t.isSingle)return"";const o=Object.keys(e).map(t=>"style"===t||null==e[t]||/^jd-/.test(t)?"":`${t}="${htmlEntity(e[t])}"`).filter(Boolean),{str:c}=t.style,a=htmlEntity(c(e=>keyInList(e,i)));if(a&&o.push(`style="${a}"`),s&&0===o.length&&["span","a"].includes(t.name))return r;const l=o.length?" "+o.join(" "):"";return n(t)?t.isSingle?`<${t.name}${l}/>`:`<${t.name}${l}>${r}</${t.name}>`:r}default:if(!e)throw Error("Need implementation for this type")}return""}function keyInList(e,n){var s;if(!n)return!0;if(keyInList.cache.has(n)){const i=null===(s=keyInList.cache.get(n))||void 0===s?void 0:s.get(e);if(t(i))return i}const i=n.some(t=>new RegExp(t).test(e)),r=keyInList.cache.get(n)||new Map;return r.set(e,i),keyInList.cache.set(n,r),i}keyInList.cache=new WeakMap;export function innerHTML(e,t=()=>!0,s=!0,i){let r=e.map(e=>html(e,t,s,i)).join("");return"p"===e.name&&0===n(r).length&&(r="&nbsp;"),r}function htmlEntity(e){return e.toString().replace(/"/g,"&quot;")}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,e,r,s){var i,a=arguments.length,o=a<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,r,s);else for(var l=t.length-1;l>=0;l--)(i=t[l])&&(o=(a<3?i(o):a>3?i(e,r,o):i(e,r))||o);return a>3&&o&&Object.defineProperty(e,r,o),o};import{autobind as e}from"jodit/esm/core/decorators/index.js";import{isString as r,kebabCase as s,trim as i}from"jodit/esm/core/helpers/index.js";import{calcMarginParts as a}from"../helpers/index.js";let o=class Style{constructor(t){this._data=readStyles(t)}get keys(){return Object.keys(this._data)}forEach(t){this.keys.forEach((e=>t(e)))}clear(){this._data={}}set(t,e){this._data[t]=e}get(t){var e;return null!==(e=this._data[t])&&void 0!==e?e:null}has(t){return void 0!==this._data[t]}add(t,e){return this._data=readStyles(this.str()+";"+`${t}:${e}`),this}str(t=t=>!0){const e=Object.keys(this._data).filter((e=>e&&!/^mso-/.test(e)&&t(e)&&null!=this.get(e))),n=t=>r(t)?/^0[a-z]+$/i.test(t)?"0":t:t.toString();return["padding","margin"].forEach((t=>{if(this._data[t]){const r=e.indexOf(t),s=a(this._data[t]);["top","right","bottom","left"].forEach(((i,a)=>{const o=`${t}-${i}`,l=this._data[o];null!=l&&(e.indexOf(o)<r||n(s[a])===n(l))&&-1!==e.indexOf(o)&&e.splice(e.indexOf(o),1)}))}})),e.length?e.map((t=>`${s(t)}:${this.get(t)}`)).join(";"):""}};o=t([e],o);export{o as Style};function readStyles(t){return function uniqueMax(t){const e={},r=[];for(let s=t.length-1;s>=0;s-=1){const i=t[s][0];e[i]||(e[i]=!0,r.unshift(t[s]))}return r}((null!=t?t:"").replace(/&quot;/g,'"').split(";").filter(Boolean).map((t=>i(t).split(":").map(i)))).reduce(((t,[e,r])=>(e&&r&&(t[e]=r),t)),{})}
6
+ var t=this&&this.__decorate||function(t,e,r,s){var i,a=arguments.length,o=a<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,r,s);else for(var l=t.length-1;l>=0;l--)(i=t[l])&&(o=(a<3?i(o):a>3?i(e,r,o):i(e,r))||o);return a>3&&o&&Object.defineProperty(e,r,o),o};import{autobind as e}from"jodit/esm/core/decorators/index.js";import{isString as r,kebabCase as s,trim as i}from"jodit/esm/core/helpers/index.js";import{calcMarginParts as a}from"../helpers/index.js";let o=class Style{constructor(t){this._data=readStyles(t)}get keys(){return Object.keys(this._data)}forEach(t){this.keys.forEach(e=>t(e))}clear(){this._data={}}set(t,e){this._data[t]=e}get(t){var e;return null!==(e=this._data[t])&&void 0!==e?e:null}has(t){return void 0!==this._data[t]}add(t,e){return this._data=readStyles(this.str()+";"+`${t}:${e}`),this}str(t=t=>!0){const e=Object.keys(this._data).filter(e=>e&&!/^mso-/.test(e)&&t(e)&&null!=this.get(e)),n=t=>r(t)?/^0[a-z]+$/i.test(t)?"0":t:t.toString();return["padding","margin"].forEach(t=>{if(this._data[t]){const r=e.indexOf(t),s=a(this._data[t]);["top","right","bottom","left"].forEach((i,a)=>{const o=`${t}-${i}`,l=this._data[o];null!=l&&(e.indexOf(o)<r||n(s[a])===n(l))&&-1!==e.indexOf(o)&&e.splice(e.indexOf(o),1)})}}),e.length?e.map(t=>`${s(t)}:${this.get(t)}`).join(";"):""}};o=t([e],o);export{o as Style};function readStyles(t){return function uniqueMax(t){const e={},r=[];for(let s=t.length-1;s>=0;s-=1){const i=t[s][0];e[i]||(e[i]=!0,r.unshift(t[s]))}return r}((null!=t?t:"").replace(/&quot;/g,'"').split(";").filter(Boolean).map(t=>i(t).split(":").map(i))).reduce((t,[e,r])=>(e&&r&&(t[e]=r),t),{})}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{transformWordToHtml as e}from"./transform-word-to-html.js";import{Dom as t}from"jodit/esm/core/dom/dom.js";import{$$ as o,attr as s}from"jodit/esm/core/helpers/utils/index.js";import{JElement as l}from"../element/index.js";export function applyStylesPro(r,n,c,m=""){var d,y;const i=document.createElement("iframe");i.style.display="none",document.body.appendChild(i);try{const t=null!==(d=i.contentDocument)&&void 0!==d?d:null===(y=i.contentWindow)||void 0===y?void 0:y.document;if(!t)return n;t.open(),t.write(n),t.close();const f="jd-style";for(let e=0;e<t.styleSheets.length;e+=1)try{const l=t.styleSheets[e].cssRules;for(let e=0;e<l.length;e+=1)l[e].selectorText&&o(l[e].selectorText,t.body).forEach((t=>{s(t,f)||(s(t,f,s(t,"style")||""),s(t,"style","")),s(t,"style",`${s(t,"style")};${l[e].style.cssText}`)}))}catch(e){}return o(`[${f}]`,t.body).forEach((e=>{s(e,"style",`${s(e,"style")};${s(e,f)}`)})),e(r,l.make(t.body),c,m)}finally{t.safeRemove(i)}return n}
6
+ import{transformWordToHtml as e}from"./transform-word-to-html.js";import{Dom as t}from"jodit/esm/core/dom/dom.js";import{$$ as o,attr as s}from"jodit/esm/core/helpers/utils/index.js";import{JElement as l}from"../element/index.js";export function applyStylesPro(r,n,c,m=""){var d,y;const i=document.createElement("iframe");i.style.display="none",document.body.appendChild(i);try{const t=null!==(d=i.contentDocument)&&void 0!==d?d:null===(y=i.contentWindow)||void 0===y?void 0:y.document;if(!t)return n;t.open(),t.write(n),t.close();const f="jd-style";for(let e=0;e<t.styleSheets.length;e+=1)try{const l=t.styleSheets[e].cssRules;for(let e=0;e<l.length;e+=1)l[e].selectorText&&o(l[e].selectorText,t.body).forEach(t=>{s(t,f)||(s(t,f,s(t,"style")||""),s(t,"style","")),s(t,"style",`${s(t,"style")};${l[e].style.cssText}`)})}catch(e){}return o(`[${f}]`,t.body).forEach(e=>{s(e,"style",`${s(e,"style")};${s(e,f)}`)}),e(r,l.make(t.body),c,m)}finally{t.safeRemove(i)}return n}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{realPixelIndent as t}from"./helpers.js";import{LEVEL_KEY as e}from"../constants.js";import{isPseudoLeaf as i,JElement as s}from"../element/index.js";export function calcListLevels(s){if(void 0!==s.attributes[e])return;const r=[t(s)],n=[s];let o=s.next;for(;o;){if(o.isElement&&!o.attributes[e]&&i(o)){const e=t(o);e&&(r.push(e),n.push(o))}o=o.next}const a=Math.min(...r.filter((t=>t>0)));let m=r.map((t=>Math.ceil(t/10)));-1!==m.indexOf(0)&&(m=m.map((t=>t+1))),n.forEach(((i,s)=>{i.attributes[e]=m[s],i.style.add("margin-left",`${Math.max(t(i)-10*m[s]/a*40,0)}px`)}))}
6
+ import{realPixelIndent as t}from"./helpers.js";import{LEVEL_KEY as e}from"../constants.js";import{isPseudoLeaf as i,JElement as s}from"../element/index.js";export function calcListLevels(s){if(void 0!==s.attributes[e])return;const r=[t(s)],n=[s];let o=s.next;for(;o;){if(o.isElement&&!o.attributes[e]&&i(o)){const e=t(o);e&&(r.push(e),n.push(o))}o=o.next}const a=Math.min(...r.filter(t=>t>0));let m=r.map(t=>Math.ceil(t/10));-1!==m.indexOf(0)&&(m=m.map(t=>t+1)),n.forEach((i,s)=>{i.attributes[e]=m[s],i.style.add("margin-left",`${Math.max(t(i)-10*m[s]/a*40,0)}px`)})}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- export function calcMarginParts(t){if(!t)return[0,0,0,0];const e=t.match(/(0|auto|(-?[.\d]+(?:\w+|%)))/g)||["0px"];switch(e.length){case 2:return[0,1,0,1].map((t=>e[t]));case 3:return[0,1,2,1].map((t=>e[t]));case 4:return[0,1,2,3].map((t=>e[t]));default:return[0,0,0,0].map((t=>e[t]))}}let t;export function convertUnitToPx(e){if("number"==typeof e)return e;if(/%$/.test(e))return 0;t||(t=document.createElement("div"),Object.assign(t.style,{position:"absolute",left:"-9999px",top:"-9999px",margin:"0",padding:"0",border:"0"}),document.body.append(t),setTimeout((()=>{null==t||t.remove(),t=null})));const n=parseFloat(e)<0;n&&(e=e.replace("-","")),t.style.width=e;const r=t.clientWidth;return n?-r:r}export function realPixelIndent(t){const{style:e}=t;let n=[0,0,0,0];const r=e.keys.filter((t=>/margin/.test(t))),a=Math.max(r.indexOf("margin-left"),r.indexOf("margin")),i=a>0?r[a]:"margin-left";let o;return"margin"===i?(n=calcMarginParts(e.get("margin")),o=n[3]||0):o=e.get(i)||0,convertUnitToPx(o)}export function calcStartBySymbol(t){return/\d.\d/.test(t)?t.split(".").pop()||null:/^\d/.test(t)?(parseInt(t,10)||1).toString():null}
6
+ export function calcMarginParts(t){if(!t)return[0,0,0,0];const e=t.match(/(0|auto|(-?[.\d]+(?:\w+|%)))/g)||["0px"];switch(e.length){case 2:return[0,1,0,1].map(t=>e[t]);case 3:return[0,1,2,1].map(t=>e[t]);case 4:return[0,1,2,3].map(t=>e[t]);default:return[0,0,0,0].map(t=>e[t])}}let t;export function convertUnitToPx(e){if("number"==typeof e)return e;if(/%$/.test(e))return 0;t||(t=document.createElement("div"),Object.assign(t.style,{position:"absolute",left:"-9999px",top:"-9999px",margin:"0",padding:"0",border:"0"}),document.body.append(t),setTimeout(()=>{null==t||t.remove(),t=null}));const n=parseFloat(e)<0;n&&(e=e.replace("-","")),t.style.width=e;const r=t.clientWidth;return n?-r:r}export function realPixelIndent(t){const{style:e}=t;let n=[0,0,0,0];const r=e.keys.filter(t=>/margin/.test(t)),a=Math.max(r.indexOf("margin-left"),r.indexOf("margin")),i=a>0?r[a]:"margin-left";let o;return"margin"===i?(n=calcMarginParts(e.get("margin")),o=n[3]||0):o=e.get(i)||0,convertUnitToPx(o)}export function calcStartBySymbol(t){return/\d.\d/.test(t)?t.split(".").pop()||null:/^\d/.test(t)?(parseInt(t,10)||1).toString():null}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{trim as o}from"jodit/esm/core/helpers/string/trim.js";import{cases as r}from"../cases/index.js";import{innerHTML as e}from"../element/index.js";export function transformWordToHtml(t,m,n,s){const f={jodit:t,rtf:s};return m.forEach((function eachElm(o){if(o){for(const e of r)if(null==(o=e(o,f)))break;null==o||o.forEach(eachElm)}})),n&&m.forEach((o=>{o.style.clear()}),!0),o(e(m,(o=>!o.isComment),!0,t.o.pasteFromWord.allowedStyleProps))}
6
+ import{trim as o}from"jodit/esm/core/helpers/string/trim.js";import{cases as r}from"../cases/index.js";import{innerHTML as e}from"../element/index.js";export function transformWordToHtml(t,m,n,s){const f={jodit:t,rtf:s};return m.forEach(function eachElm(o){if(o){for(const e of r)if(null==(o=e(o,f)))break;null==o||o.forEach(eachElm)}}),n&&m.forEach(o=>{o.style.clear()},!0),o(e(m,o=>!o.isComment,!0,t.o.pasteFromWord.allowedStyleProps))}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,o,e,s){var i,r=arguments.length,l=r<3?o:null===s?s=Object.getOwnPropertyDescriptor(o,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,o,e,s);else for(var n=t.length-1;n>=0;n--)(i=t[n])&&(l=(r<3?i(l):r>3?i(o,e,l):i(o,e))||l);return r>3&&l&&Object.defineProperty(o,e,l),l};import"./config.js";import*as o from"./langs/index.js";import e from"./show-blocks.svg.js";import{autobind as s,cache as i,cached as r}from"jodit/esm/core/decorators/index.js";import{Dom as l}from"jodit/esm/core/dom/dom.js";import{extendLang as n,getContainer as a}from"jodit/esm/core/global.js";import{Plugin as c}from"jodit/esm/core/plugin/index.js";import{Icon as h}from"jodit/esm/core/ui/icon.js";import{JoditPro as d}from"../../jodit-pro.js";export class showBlocks extends c{get style(){return a(this.jodit,showBlocks,"style",!0)}enable(){this.isEnabled=!0;const t=this.j.o.iframe?"body":".jodit-wysiwyg",{tagList:o,color:e}=this.j.o.showBlocks;this.style.innerHTML=o.map((o=>`${t} ${o}{\n\t\t\t\t\toutline: 1px dashed ${e};\n\t\t\t\t\tbackground-image: url("${function svgToUrl(t){return`data:image/svg+xml;utf8,${escape(t)}`}('<svg xmlns="http://www.w3.org/2000/svg" width="50px"><text dominant-baseline="hanging" text-anchor="end" style="fill: '+e+';font: 10px sans-serif" x="50px" y="0">'+o+"</text></svg>")}");\n\t\t\t\t\tbackground-position: top 2px ${"rtl"===this.j.o.direction?"left":"right"} 4px;\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}`)).join("")}disable(){this.isEnabled=!1;const t=r(this,"style");t&&(t.innerHTML="")}toggle(){this.isEnabled?this.disable():this.enable(),this.j.e.fire("updateToolbar")}constructor(t){super(t),this.buttons=[{name:"showBlocks",group:"state"}],this.isEnabled=!1,n(o),h.set("showBlocks",e)}afterInit(t){t.e.on("showBlocksEnabled",(()=>this.isEnabled)),t.registerCommand("enableShowBlocks",this.enable).registerCommand("disableShowBlocks",this.disable).registerCommand("toggleShowBlocks",this.toggle),this.j.o.showBlocks.enable&&this.enable()}beforeDestruct(t){this.disable(),l.safeRemove(r(this,"style"))}}showBlocks.requires=["license"],t([i],showBlocks.prototype,"style",null),t([s],showBlocks.prototype,"enable",null),t([s],showBlocks.prototype,"disable",null),t([s],showBlocks.prototype,"toggle",null),d.plugins.add("show-blocks",showBlocks);
6
+ var t=this&&this.__decorate||function(t,o,e,s){var i,r=arguments.length,l=r<3?o:null===s?s=Object.getOwnPropertyDescriptor(o,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,o,e,s);else for(var n=t.length-1;n>=0;n--)(i=t[n])&&(l=(r<3?i(l):r>3?i(o,e,l):i(o,e))||l);return r>3&&l&&Object.defineProperty(o,e,l),l};import"./config.js";import*as o from"./langs/index.js";import e from"./show-blocks.svg.js";import{autobind as s,cache as i,cached as r}from"jodit/esm/core/decorators/index.js";import{Dom as l}from"jodit/esm/core/dom/dom.js";import{extendLang as n,getContainer as a}from"jodit/esm/core/global.js";import{Plugin as c}from"jodit/esm/core/plugin/index.js";import{Icon as h}from"jodit/esm/core/ui/icon.js";import{JoditPro as d}from"../../jodit-pro.js";export class showBlocks extends c{get style(){return a(this.jodit,showBlocks,"style",!0)}enable(){this.isEnabled=!0;const t=this.j.o.iframe?"body":".jodit-wysiwyg",{tagList:o,color:e}=this.j.o.showBlocks;this.style.innerHTML=o.map(o=>`${t} ${o}{\n\t\t\t\t\toutline: 1px dashed ${e};\n\t\t\t\t\tbackground-image: url("${function svgToUrl(t){return`data:image/svg+xml;utf8,${escape(t)}`}('<svg xmlns="http://www.w3.org/2000/svg" width="50px"><text dominant-baseline="hanging" text-anchor="end" style="fill: '+e+';font: 10px sans-serif" x="50px" y="0">'+o+"</text></svg>")}");\n\t\t\t\t\tbackground-position: top 2px ${"rtl"===this.j.o.direction?"left":"right"} 4px;\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tposition: relative;\n\t\t\t\t}`).join("")}disable(){this.isEnabled=!1;const t=r(this,"style");t&&(t.innerHTML="")}toggle(){this.isEnabled?this.disable():this.enable(),this.j.e.fire("updateToolbar")}constructor(t){super(t),this.buttons=[{name:"showBlocks",group:"state"}],this.isEnabled=!1,n(o),h.set("showBlocks",e)}afterInit(t){t.e.on("showBlocksEnabled",()=>this.isEnabled),t.registerCommand("enableShowBlocks",this.enable).registerCommand("disableShowBlocks",this.disable).registerCommand("toggleShowBlocks",this.toggle),this.j.o.showBlocks.enable&&this.enable()}beforeDestruct(t){this.disable(),l.safeRemove(r(this,"style"))}}showBlocks.requires=["license"],t([i],showBlocks.prototype,"style",null),t([s],showBlocks.prototype,"enable",null),t([s],showBlocks.prototype,"disable",null),t([s],showBlocks.prototype,"toggle",null),d.plugins.add("show-blocks",showBlocks);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import o from"./assets/todo-list.svg.js";import{Config as t}from"jodit/esm/config.js";import{Dom as s}from"jodit/esm/core/dom/dom.js";import{Icon as i}from"jodit/esm/core/ui/icon.js";t.prototype.todoList={className:"todo-list",labelClassName:"todo-list__label",inputFactory:o=>o.createInside.element("input",{type:"checkbox",tabindex:-1})},t.prototype.controls.todoList={tooltip:"To-do List",icon:"todo-list",command:"todolist",isActive(o){const t=o.s.current();return Boolean(t&&s.closest(t,(o=>s.isElement(o)&&s.isTag(o,"ul")&&o.classList.contains("todo-list")),o.editor))}},i.set("todo-list",o);
6
+ import o from"./assets/todo-list.svg.js";import{Config as t}from"jodit/esm/config.js";import{Dom as s}from"jodit/esm/core/dom/dom.js";import{Icon as i}from"jodit/esm/core/ui/icon.js";t.prototype.todoList={className:"todo-list",labelClassName:"todo-list__label",inputFactory:o=>o.createInside.element("input",{type:"checkbox",tabindex:-1})},t.prototype.controls.todoList={tooltip:"To-do List",icon:"todo-list",command:"todolist",isActive(o){const t=o.s.current();return Boolean(t&&s.closest(t,o=>s.isElement(o)&&s.isTag(o,"ul")&&o.classList.contains("todo-list"),o.editor))}},i.set("todo-list",o);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var e=this&&this.__decorate||function(e,t,o,s){var i,r=arguments.length,a=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,s);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(r<3?i(a):r>3?i(t,o,a):i(t,o))||a);return r>3&&a&&Object.defineProperty(t,o,a),a};import"./config.js";import{NO_EMPTY_TAGS as t}from"jodit/esm/core/constants.js";import{autobind as o,watch as s}from"jodit/esm/core/decorators/index.js";import{Dom as i}from"jodit/esm/core/dom/dom.js";import{$$ as r,attr as a}from"jodit/esm/core/helpers/utils/index.js";import{Plugin as l}from"jodit/esm/core/plugin/index.js";import{CHANGE as n,REPLACE as p,UNWRAP as d,WRAP as c}from"jodit/esm/core/selection/index.js";import{JoditPro as m}from"../../jodit-pro.js";export class TodoList extends l{constructor(){super(...arguments),this.buttons=[{name:"todoList",group:"list"}],this.__isOwnCommand=!1}afterInit(e){e.registerCommand("todoList",this.onCommand)}onCommand(){try{this.__isOwnCommand=!0,this.jodit.s.commitStyle({element:"ul",attributes:{class:this.j.o.todoList.className},hooks:{afterWrapList:this.__afterWrapList,afterToggleAttribute:this.__afterWrapList}})}finally{this.__isOwnCommand=!1}return!1}__prependInputLabel(e){const{jodit:t}=this,{labelClassName:o,inputFactory:s}=this.j.o.todoList;if(e.querySelector("label."+o))return;const r=t.createInside.element("label",{contenteditable:"false",class:o}),a=s(t);r.appendChild(a),i.prepend(e,r)}__afterToggleList(e,t){return e!==n&&e!==p||!this.__isOwnCommand?e===d||e===p||e===n?this.__removeInputs(t):void 0:this.__appendInputs(t)}__appendInputs(e){e.querySelectorAll("li").forEach(this.__prependInputLabel)}__removeInputs(e){const{labelClassName:t}=this.j.o.todoList;e.querySelectorAll("label."+t).forEach(i.safeRemove)}__beforeToggleOrderedList(e,t,o){var s;const r="__beforeToggleOrderedList";if(e!==p&&(t.classList.contains(this.j.o.todoList.className)||o.isApplied(t,r))&&("ul"===o.element||"ol"===o.element)&&(null===(s=o.options.attributes)||void 0===s?void 0:s.class)!==this.j.o.todoList.className){const e=i.replace(t,o.element,this.jodit.createInside);return o.setApplied(e,r),this.__removeInputs(e),e}}__afterEnter(){r("ul."+this.j.o.todoList.className+" li",this.jodit.editor).forEach(this.__prependInputLabel)}__afterTab(){r("ul:not(."+this.j.o.todoList.className+") > li > label",this.jodit.editor).filter(this.isTodoLeafLabel).forEach(i.safeRemove)}__changeSelection(e){const t=this.j.s.current();this.isTodoLeafLabel(t)&&(e.preventDefault(),e.stopPropagation(),this.j.s.setCursorAfter(t))}__isEmptyListLeaf(e){return i.isEmpty(e,(e=>("input"!==e.nodeName.toLowerCase()||!this.isTodoLeafLabel(e.parentElement))&&t.has(e.tagName.toLowerCase())))}__backSpaceBeforeCases(e,t){if(e){const e=i.findNotEmptySibling(t,!0);this.isTodoLeafLabel(e)&&i.safeRemove(e)}}__isInvisibleForCursor(e){if(this.isTodoLeafLabel(e))return!0}__backSpaceAfterDelete(){const{labelClassName:e}=this.j.o.todoList;r("label."+e,this.jodit.editor).forEach((e=>{e.closest("ul."+this.j.o.todoList.className)?e.previousSibling&&e.parentElement&&i.prepend(e.parentElement,e):i.safeRemove(e)}))}__afterWrapList(e,t){e===c&&this.__appendInputs(t)}__onClickInput(e){const t=e.target;t&&i.isTag(t,"input")&&"checkbox"===t.type&&this.isTodoLeafLabel(t.parentElement)&&a(t,"checked",t.checked?"checked":null)}isTodoLeafLabel(e){const{labelClassName:t}=this.j.o.todoList;return i.isHTMLElement(e)&&e.classList.contains(t)}beforeDestruct(e){}}TodoList.requires=["license"],e([o],TodoList.prototype,"onCommand",null),e([o],TodoList.prototype,"__prependInputLabel",null),e([s(":commitStyleAfterToggleList")],TodoList.prototype,"__afterToggleList",null),e([s(":commitStyleBeforeUnwrapList")],TodoList.prototype,"__beforeToggleOrderedList",null),e([s(":afterEnter")],TodoList.prototype,"__afterEnter",null),e([s(":afterTab")],TodoList.prototype,"__afterTab",null),e([s("j.ed:selectionchange"),s(":afterEnter")],TodoList.prototype,"__changeSelection",null),e([s(":enterIsEmptyListLeaf")],TodoList.prototype,"__isEmptyListLeaf",null),e([s(":backSpaceBeforeCases")],TodoList.prototype,"__backSpaceBeforeCases",null),e([s(":backSpaceIsMovedIgnore"),s(":isInvisibleForCursor")],TodoList.prototype,"__isInvisibleForCursor",null),e([s(":backSpaceAfterDelete")],TodoList.prototype,"__backSpaceAfterDelete",null),e([o],TodoList.prototype,"__afterWrapList",null),e([s(":click")],TodoList.prototype,"__onClickInput",null),e([o],TodoList.prototype,"isTodoLeafLabel",null),m.plugins.add("todo-list",TodoList);
6
+ var e=this&&this.__decorate||function(e,t,o,s){var i,r=arguments.length,a=r<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,s);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(a=(r<3?i(a):r>3?i(t,o,a):i(t,o))||a);return r>3&&a&&Object.defineProperty(t,o,a),a};import"./config.js";import{NO_EMPTY_TAGS as t}from"jodit/esm/core/constants.js";import{autobind as o,watch as s}from"jodit/esm/core/decorators/index.js";import{Dom as i}from"jodit/esm/core/dom/dom.js";import{$$ as r,attr as a}from"jodit/esm/core/helpers/utils/index.js";import{Plugin as l}from"jodit/esm/core/plugin/index.js";import{CHANGE as n,REPLACE as p,UNWRAP as d,WRAP as c}from"jodit/esm/core/selection/index.js";import{JoditPro as m}from"../../jodit-pro.js";export class TodoList extends l{constructor(){super(...arguments),this.buttons=[{name:"todoList",group:"list"}],this.__isOwnCommand=!1}afterInit(e){e.registerCommand("todoList",this.onCommand)}onCommand(){try{this.__isOwnCommand=!0,this.jodit.s.commitStyle({element:"ul",attributes:{class:this.j.o.todoList.className},hooks:{afterWrapList:this.__afterWrapList,afterToggleAttribute:this.__afterWrapList}})}finally{this.__isOwnCommand=!1}return!1}__prependInputLabel(e){const{jodit:t}=this,{labelClassName:o,inputFactory:s}=this.j.o.todoList;if(e.querySelector("label."+o))return;const r=t.createInside.element("label",{contenteditable:"false",class:o}),a=s(t);r.appendChild(a),i.prepend(e,r)}__afterToggleList(e,t){return e!==n&&e!==p||!this.__isOwnCommand?e===d||e===p||e===n?this.__removeInputs(t):void 0:this.__appendInputs(t)}__appendInputs(e){e.querySelectorAll("li").forEach(this.__prependInputLabel)}__removeInputs(e){const{labelClassName:t}=this.j.o.todoList;e.querySelectorAll("label."+t).forEach(i.safeRemove)}__beforeToggleOrderedList(e,t,o){var s;const r="__beforeToggleOrderedList";if(e!==p&&(t.classList.contains(this.j.o.todoList.className)||o.isApplied(t,r))&&("ul"===o.element||"ol"===o.element)&&(null===(s=o.options.attributes)||void 0===s?void 0:s.class)!==this.j.o.todoList.className){const e=i.replace(t,o.element,this.jodit.createInside);return o.setApplied(e,r),this.__removeInputs(e),e}}__afterEnter(){r("ul."+this.j.o.todoList.className+" li",this.jodit.editor).forEach(this.__prependInputLabel)}__afterTab(){r("ul:not(."+this.j.o.todoList.className+") > li > label",this.jodit.editor).filter(this.isTodoLeafLabel).forEach(i.safeRemove)}__changeSelection(e){const t=this.j.s.current();this.isTodoLeafLabel(t)&&(e.preventDefault(),e.stopPropagation(),this.j.s.setCursorAfter(t))}__isEmptyListLeaf(e){return i.isEmpty(e,e=>("input"!==e.nodeName.toLowerCase()||!this.isTodoLeafLabel(e.parentElement))&&t.has(e.tagName.toLowerCase()))}__backSpaceBeforeCases(e,t){if(e){const e=i.findNotEmptySibling(t,!0);this.isTodoLeafLabel(e)&&i.safeRemove(e)}}__isInvisibleForCursor(e){if(this.isTodoLeafLabel(e))return!0}__backSpaceAfterDelete(){const{labelClassName:e}=this.j.o.todoList;r("label."+e,this.jodit.editor).forEach(e=>{e.closest("ul."+this.j.o.todoList.className)?e.previousSibling&&e.parentElement&&i.prepend(e.parentElement,e):i.safeRemove(e)})}__afterWrapList(e,t){e===c&&this.__appendInputs(t)}__onClickInput(e){const t=e.target;t&&i.isTag(t,"input")&&"checkbox"===t.type&&this.isTodoLeafLabel(t.parentElement)&&a(t,"checked",t.checked?"checked":null)}isTodoLeafLabel(e){const{labelClassName:t}=this.j.o.todoList;return i.isHTMLElement(e)&&e.classList.contains(t)}beforeDestruct(e){}}TodoList.requires=["license"],e([o],TodoList.prototype,"onCommand",null),e([o],TodoList.prototype,"__prependInputLabel",null),e([s(":commitStyleAfterToggleList")],TodoList.prototype,"__afterToggleList",null),e([s(":commitStyleBeforeUnwrapList")],TodoList.prototype,"__beforeToggleOrderedList",null),e([s(":afterEnter")],TodoList.prototype,"__afterEnter",null),e([s(":afterTab")],TodoList.prototype,"__afterTab",null),e([s("j.ed:selectionchange"),s(":afterEnter")],TodoList.prototype,"__changeSelection",null),e([s(":enterIsEmptyListLeaf")],TodoList.prototype,"__isEmptyListLeaf",null),e([s(":backSpaceBeforeCases")],TodoList.prototype,"__backSpaceBeforeCases",null),e([s(":backSpaceIsMovedIgnore"),s(":isInvisibleForCursor")],TodoList.prototype,"__isInvisibleForCursor",null),e([s(":backSpaceAfterDelete")],TodoList.prototype,"__backSpaceAfterDelete",null),e([o],TodoList.prototype,"__afterWrapList",null),e([s(":click")],TodoList.prototype,"__onClickInput",null),e([o],TodoList.prototype,"isTodoLeafLabel",null),m.plugins.add("todo-list",TodoList);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import{IS_PROD as t}from"jodit/esm/core/constants.js";import{assert as e}from"jodit/esm/core/helpers/utils/assert.js";import{languages as o}from"../languages.js";export class GoogleTranslateProvider{constructor(t){this.jodit=t}__fetch(o,r={}){const s=this.jodit.o.translate.googleProviderOptions;return e(s,"Set googleProviderOptions"),this.jodit.fetch(s.url+"?key="+s.key,{method:"POST",data:{...r,ui:this.jodit.o.language},contentType:"application/json; charset=utf-8",withCredentials:!1}).then((t=>t.json())).catch((e=>{try{this.jodit.message.error(e.json().message)}catch(e){t||console.error(e)}}))}translate(t,e,o){return this.__fetch("translate",{q:t,source:e,target:o,format:"html"}).then((t=>({text:t.data.translations[0].translatedText})))}supportedLanguages(){return Promise.resolve({langs:o})}}
6
+ import{IS_PROD as t}from"jodit/esm/core/constants.js";import{assert as e}from"jodit/esm/core/helpers/utils/assert.js";import{languages as o}from"../languages.js";export class GoogleTranslateProvider{constructor(t){this.jodit=t}__fetch(o,r={}){const s=this.jodit.o.translate.googleProviderOptions;return e(s,"Set googleProviderOptions"),this.jodit.fetch(s.url+"?key="+s.key,{method:"POST",data:{...r,ui:this.jodit.o.language},contentType:"application/json; charset=utf-8",withCredentials:!1}).then(t=>t.json()).catch(e=>{try{this.jodit.message.error(e.json().message)}catch(e){t||console.error(e)}})}translate(t,e,o){return this.__fetch("translate",{q:t,source:e,target:o,format:"html"}).then(t=>({text:t.data.translations[0].translatedText}))}supportedLanguages(){return Promise.resolve({langs:o})}}
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,e,s,r){var o,a=arguments.length,n=a<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,s,r);else for(var i=t.length-1;i>=0;i--)(o=t[i])&&(n=(a<3?o(n):a>3?o(e,s,n):o(e,s))||n);return a>3&&n&&Object.defineProperty(e,s,n),n};import"./config.js";import{GoogleTranslateProvider as e}from"./providers/google/google.js";import{UITranslateSettings as s}from"./ui/settings/settings.js";import{persistent as r}from"jodit/esm/core/decorators/index.js";import{isFunction as o}from"jodit/esm/core/helpers/checker/is-function.js";import{isString as a}from"jodit/esm/core/helpers/checker/is-string.js";import{assert as n}from"jodit/esm/core/helpers/utils/assert.js";import{defaultLanguage as i}from"jodit/esm/core/helpers/utils/default-language.js";import{Plugin as l}from"jodit/esm/core/plugin/index.js";import{Button as c}from"jodit/esm/core/ui/button/button/button.js";import{JoditPro as g}from"../../jodit-pro.js";export class Translate extends l{constructor(){super(...arguments),this.buttons=[{name:"translate.translate",group:"insert"}],this.state={sourceLang:this.jodit.o.translate.defaultSourceLang||"en",targetLang:this.jodit.o.translate.defaultTargetLang}}__getProvider(){const{provider:t}=this.jodit.options.translate;if(a(t)){if("google"===t)return new e(this.j);throw new Error("Unknown provider")}return n(o(t),"Provider must be a function"),t(this.jodit)}afterInit(t){const e=i(t.o.language,g.defaultOptions.language),r=i(t.o.language,e),o=this.__getProvider();t.registerCommand("translateOptions",{exec:async()=>{let e=this.state;const r=t.dlg();r.setHeader("Translate options");const a=await o.supportedLanguages(),n=new s(r,this.state,{sourceList:a.langs,targetList:a.langs,onChange(t){e=t}});r.setContent(n),r.setFooter([c(t,"cancel","Cancel").onAction((()=>r.close())),c(t,"ok","Save","primary").onAction((()=>{this.state=e,r.close()}))]),n.bindDestruct(r),r.setSize(500,400).open(!0)},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:()=>{const e=t.s.html;if(e)return o.translate(e,this.state.sourceLang&&"auto"!==this.state.sourceLang?this.state.sourceLang:r,this.state.targetLang).then((e=>{t.s.range.deleteContents(),t.s.insertNode(t.createInside.text(e.text))})).catch((e=>{t.message.error(a(e)?e:e.message)}));t.message.error("Select text for translate")},hotkeys:t.o.translate.hotkeys.translateSelection})}beforeDestruct(t){}}Translate.requires=["license"],t([r],Translate.prototype,"state",void 0),g.plugins.add("translate",Translate);
6
+ var t=this&&this.__decorate||function(t,e,s,r){var o,a=arguments.length,n=a<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,s,r);else for(var i=t.length-1;i>=0;i--)(o=t[i])&&(n=(a<3?o(n):a>3?o(e,s,n):o(e,s))||n);return a>3&&n&&Object.defineProperty(e,s,n),n};import"./config.js";import{GoogleTranslateProvider as e}from"./providers/google/google.js";import{UITranslateSettings as s}from"./ui/settings/settings.js";import{persistent as r}from"jodit/esm/core/decorators/index.js";import{isFunction as o}from"jodit/esm/core/helpers/checker/is-function.js";import{isString as a}from"jodit/esm/core/helpers/checker/is-string.js";import{assert as n}from"jodit/esm/core/helpers/utils/assert.js";import{defaultLanguage as i}from"jodit/esm/core/helpers/utils/default-language.js";import{Plugin as l}from"jodit/esm/core/plugin/index.js";import{Button as c}from"jodit/esm/core/ui/button/button/button.js";import{JoditPro as g}from"../../jodit-pro.js";export class Translate extends l{constructor(){super(...arguments),this.buttons=[{name:"translate.translate",group:"insert"}],this.state={sourceLang:this.jodit.o.translate.defaultSourceLang||"en",targetLang:this.jodit.o.translate.defaultTargetLang}}__getProvider(){const{provider:t}=this.jodit.options.translate;if(a(t)){if("google"===t)return new e(this.j);throw new Error("Unknown provider")}return n(o(t),"Provider must be a function"),t(this.jodit)}afterInit(t){const e=i(t.o.language,g.defaultOptions.language),r=i(t.o.language,e),o=this.__getProvider();t.registerCommand("translateOptions",{exec:async()=>{let e=this.state;const r=t.dlg();r.setHeader("Translate options");const a=await o.supportedLanguages(),n=new s(r,this.state,{sourceList:a.langs,targetList:a.langs,onChange(t){e=t}});r.setContent(n),r.setFooter([c(t,"cancel","Cancel").onAction(()=>r.close()),c(t,"ok","Save","primary").onAction(()=>{this.state=e,r.close()})]),n.bindDestruct(r),r.setSize(500,400).open(!0)},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:()=>{const e=t.s.html;if(e)return o.translate(e,this.state.sourceLang&&"auto"!==this.state.sourceLang?this.state.sourceLang:r,this.state.targetLang).then(e=>{t.s.range.deleteContents(),t.s.insertNode(t.createInside.text(e.text))}).catch(e=>{t.message.error(a(e)?e:e.message)});t.message.error("Select text for translate")},hotkeys:t.o.translate.hotkeys.translateSelection})}beforeDestruct(t){}}Translate.requires=["license"],t([r],Translate.prototype,"state",void 0),g.plugins.add("translate",Translate);
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,e,i,o){var n,s=arguments.length,r=s<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(r=(s<3?n(r):s>3?n(e,i,r):n(e,i))||r);return s>3&&r&&Object.defineProperty(e,i,r),r};import{KEY_ENTER as e}from"jodit/esm/core/constants.js";import{component as i,debounce as o,watch as n}from"jodit/esm/core/decorators/index.js";import{Dom as s}from"jodit/esm/core/dom/dom.js";import{scrollIntoViewIfNeeded as r}from"jodit/esm/core/helpers/index.js";import{attr as a}from"jodit/esm/core/helpers/utils/attr.js";import{UIElement as c}from"jodit/esm/core/ui/element.js";import{UIInput as l}from"jodit/esm/core/ui/form/inputs/input/input.js";let d=class UITranslateList extends c{className(){return"UITranslateList"}get items(){return this.getElms("item")}render(t){const e=[];return Object.keys(t.list).sort().forEach((i=>{const o=t.list[i];e.push(`<a role='button' tabindex='0' class='&__item' data-lang='${o}'>\n\t\t\t\t\t\t<span class='&__item-key'>${o}</span>\n\t\t\t\t\t\t<span class='&__item-title'>${this.j.i18n(i)}</span>\n\t\t\t\t\t</a>`)})),`<div class='&'>\n\t\t\t<div class='&__input'></div>\n\t\t\t<div class='&__list'>${e.join("")}</div>\n\t\t</div>`}constructor(t,e){var i;super(t,e),this.options=e,this.state={active:""},this.state.active=e.active;const o=new l(t,{placeholder:t.i18n("Filter"),icon:"search",onChange:this.__onChangeFilter,clearButton:!0});null===(i=this.getElm("input"))||void 0===i||i.appendChild(o.container),this.__onActiveChange()}__onChangeFilter(t){this.items.forEach((e=>{var i,o;const n=null!==(o=null===(i=e.textContent)||void 0===i?void 0:i.toLowerCase())&&void 0!==o?o:"";a(e,"data-hidden","true"!==a(e,"data-active")&&!n.includes(t.toLowerCase()))}))}__scrollToActive(){const t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&r(t,e,this.j.od)}onClickItem(t){if("keydown"===t.type&&"key"in t&&t.key!==e)return;const i=t.target;if(s.isHTMLElement(i)&&i.getAttribute("data-lang")){const t=a(i,"data-lang");this.options.onChange(t),this.state.active=t}}__onActiveChange(){this.items.forEach((t=>a(t,"data-active",a(t,"data-lang")===this.state.active))),this.__scrollToActive()}};t([o()],d.prototype,"__onChangeFilter",null),t([n(":afterOpen")],d.prototype,"__scrollToActive",null),t([n(["container:click","container:keydown"])],d.prototype,"onClickItem",null),t([n("state.active"),o()],d.prototype,"__onActiveChange",null),d=t([i],d);export{d as UITranslateList};
6
+ var t=this&&this.__decorate||function(t,e,i,o){var n,s=arguments.length,r=s<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(r=(s<3?n(r):s>3?n(e,i,r):n(e,i))||r);return s>3&&r&&Object.defineProperty(e,i,r),r};import{KEY_ENTER as e}from"jodit/esm/core/constants.js";import{component as i,debounce as o,watch as n}from"jodit/esm/core/decorators/index.js";import{Dom as s}from"jodit/esm/core/dom/dom.js";import{scrollIntoViewIfNeeded as r}from"jodit/esm/core/helpers/index.js";import{attr as a}from"jodit/esm/core/helpers/utils/attr.js";import{UIElement as c}from"jodit/esm/core/ui/element.js";import{UIInput as l}from"jodit/esm/core/ui/form/inputs/input/input.js";let d=class UITranslateList extends c{className(){return"UITranslateList"}get items(){return this.getElms("item")}render(t){const e=[];return Object.keys(t.list).sort().forEach(i=>{const o=t.list[i];e.push(`<a role='button' tabindex='0' class='&__item' data-lang='${o}'>\n\t\t\t\t\t\t<span class='&__item-key'>${o}</span>\n\t\t\t\t\t\t<span class='&__item-title'>${this.j.i18n(i)}</span>\n\t\t\t\t\t</a>`)}),`<div class='&'>\n\t\t\t<div class='&__input'></div>\n\t\t\t<div class='&__list'>${e.join("")}</div>\n\t\t</div>`}constructor(t,e){var i;super(t,e),this.options=e,this.state={active:""},this.state.active=e.active;const o=new l(t,{placeholder:t.i18n("Filter"),icon:"search",onChange:this.__onChangeFilter,clearButton:!0});null===(i=this.getElm("input"))||void 0===i||i.appendChild(o.container),this.__onActiveChange()}__onChangeFilter(t){this.items.forEach(e=>{var i,o;const n=null!==(o=null===(i=e.textContent)||void 0===i?void 0:i.toLowerCase())&&void 0!==o?o:"";a(e,"data-hidden","true"!==a(e,"data-active")&&!n.includes(t.toLowerCase()))})}__scrollToActive(){const t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&r(t,e,this.j.od)}onClickItem(t){if("keydown"===t.type&&"key"in t&&t.key!==e)return;const i=t.target;if(s.isHTMLElement(i)&&i.getAttribute("data-lang")){const t=a(i,"data-lang");this.options.onChange(t),this.state.active=t}}__onActiveChange(){this.items.forEach(t=>a(t,"data-active",a(t,"data-lang")===this.state.active)),this.__scrollToActive()}};t([o()],d.prototype,"__onChangeFilter",null),t([n(":afterOpen")],d.prototype,"__scrollToActive",null),t([n(["container:click","container:keydown"])],d.prototype,"onClickItem",null),t([n("state.active"),o()],d.prototype,"__onActiveChange",null),d=t([i],d);export{d as UITranslateList};
@@ -3,4 +3,4 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- var t=this&&this.__decorate||function(t,o,e,i){var s,r=arguments.length,n=r<3?o:null===i?i=Object.getOwnPropertyDescriptor(o,e):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,o,e,i);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(o,e,n):s(o,e))||n);return r>3&&n&&Object.defineProperty(o,e,n),n};import{component as o,idle as e,throttle as i,watch as s}from"jodit/esm/core/decorators/index.js";import{Dom as r}from"jodit/esm/core/dom/index.js";import{assert as n,css as l,position as c}from"jodit/esm/core/helpers/index.js";import{Popup as p,UIElement as h}from"jodit/esm/core/ui/index.js";import{makeCollection as a}from"jodit/esm/modules/toolbar/factory.js";let d=class UITuner extends h{constructor(){super(...arguments),this.isShown=!1,this.toolbar=a(this.j,this),this.popup=new p(this.j,!1)}className(){return"UITuner"}render(){return"<div>\n\t\t\t<div class='&__handle' title='~Click to tune~'/>\n\t\t</div>"}show(){const t=this.j.s.current();if(!t)return this.hide();const o=r.isBlock(t)?t:r.closest(t,(t=>Boolean(t&&this.j.o.tuneBlock.popup[t.nodeName.toLowerCase()])),this.j.editor);if(!o||o===this.j.editor||!this.j.o.tuneBlock.popup[o.tagName.toLowerCase()])return this.hide();this.currentBlock=o,this.isShown=!0,this.closeToolbar(),this.calcPosition(),this.container.parentNode||this.j.workplace.append(this.container)}hide(){this.isShown&&(this.isShown=!1,r.safeRemove(this.container),this.closeToolbar())}onEditorScroll(){this.isShown&&this.calcPosition()}calcPosition(){const t=l(this.j.editor,"marginLeft"),o=l(this.j.editor,"paddingLeft"),e=l(this.j.editor,"marginTop"),i=this.currentBlock.offsetWidth-15+t+o,s=this.currentBlock.offsetTop-this.j.editor.scrollTop+e;l(this.container,{transform:`translate3d(${i}px, ${s}px, 0)`}),this.popup.isOpened&&this.popup.updatePosition()}onAfterExecTune(t){t&&(this.currentBlock=t),this.calcPosition(),this.openToolbar()}onClickPrevent(t){t.preventDefault(),t.stopPropagation()}onTargetClick(){this.toggleToolbar()}openToolbar(){if(this.setMod("opened",!0),this.toolbar.build(this.j.o.tuneBlock.popup[this.currentBlock.tagName.toLowerCase()],this.currentBlock),this.popup.setContent(this.toolbar.container),!this.popup.isOpened){const t=this.getElm("handle");n(null!=t,"Handle element does not exist"),this.popup.open((()=>c(t)))}}closeToolbar(){this.setMod("opened",!1),this.popup.close()}toggleToolbar(){this.getMod("opened")?this.closeToolbar():this.openToolbar()}};t([s(":hideTuner.tune")],d.prototype,"hide",null),t([s("j.editor:scroll"),i(10)],d.prototype,"onEditorScroll",null),t([s(":afterExecTune.tune"),e()],d.prototype,"onAfterExecTune",null),t([s("container:click container:mousedown")],d.prototype,"onClickPrevent",null),t([s("handle:click")],d.prototype,"onTargetClick",null),t([s(":closeTuner.tune")],d.prototype,"closeToolbar",null),d=t([o],d);export{d as UITuner};
6
+ var t=this&&this.__decorate||function(t,o,e,i){var s,r=arguments.length,n=r<3?o:null===i?i=Object.getOwnPropertyDescriptor(o,e):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,o,e,i);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(n=(r<3?s(n):r>3?s(o,e,n):s(o,e))||n);return r>3&&n&&Object.defineProperty(o,e,n),n};import{component as o,idle as e,throttle as i,watch as s}from"jodit/esm/core/decorators/index.js";import{Dom as r}from"jodit/esm/core/dom/index.js";import{assert as n,css as l,position as c}from"jodit/esm/core/helpers/index.js";import{Popup as p,UIElement as h}from"jodit/esm/core/ui/index.js";import{makeCollection as a}from"jodit/esm/modules/toolbar/factory.js";let d=class UITuner extends h{constructor(){super(...arguments),this.isShown=!1,this.toolbar=a(this.j,this),this.popup=new p(this.j,!1)}className(){return"UITuner"}render(){return"<div>\n\t\t\t<div class='&__handle' title='~Click to tune~'/>\n\t\t</div>"}show(){const t=this.j.s.current();if(!t)return this.hide();const o=r.isBlock(t)?t:r.closest(t,t=>Boolean(t&&this.j.o.tuneBlock.popup[t.nodeName.toLowerCase()]),this.j.editor);if(!o||o===this.j.editor||!this.j.o.tuneBlock.popup[o.tagName.toLowerCase()])return this.hide();this.currentBlock=o,this.isShown=!0,this.closeToolbar(),this.calcPosition(),this.container.parentNode||this.j.workplace.append(this.container)}hide(){this.isShown&&(this.isShown=!1,r.safeRemove(this.container),this.closeToolbar())}onEditorScroll(){this.isShown&&this.calcPosition()}calcPosition(){const t=l(this.j.editor,"marginLeft"),o=l(this.j.editor,"paddingLeft"),e=l(this.j.editor,"marginTop"),i=this.currentBlock.offsetWidth-15+t+o,s=this.currentBlock.offsetTop-this.j.editor.scrollTop+e;l(this.container,{transform:`translate3d(${i}px, ${s}px, 0)`}),this.popup.isOpened&&this.popup.updatePosition()}onAfterExecTune(t){t&&(this.currentBlock=t),this.calcPosition(),this.openToolbar()}onClickPrevent(t){t.preventDefault(),t.stopPropagation()}onTargetClick(){this.toggleToolbar()}openToolbar(){if(this.setMod("opened",!0),this.toolbar.build(this.j.o.tuneBlock.popup[this.currentBlock.tagName.toLowerCase()],this.currentBlock),this.popup.setContent(this.toolbar.container),!this.popup.isOpened){const t=this.getElm("handle");n(null!=t,"Handle element does not exist"),this.popup.open(()=>c(t))}}closeToolbar(){this.setMod("opened",!1),this.popup.close()}toggleToolbar(){this.getMod("opened")?this.closeToolbar():this.openToolbar()}};t([s(":hideTuner.tune")],d.prototype,"hide",null),t([s("j.editor:scroll"),i(10)],d.prototype,"onEditorScroll",null),t([s(":afterExecTune.tune"),e()],d.prototype,"onAfterExecTune",null),t([s("container:click container:mousedown")],d.prototype,"onClickPrevent",null),t([s("handle:click")],d.prototype,"onTargetClick",null),t([s(":closeTuner.tune")],d.prototype,"closeToolbar",null),d=t([o],d);export{d as UITuner};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit-pro",
3
- "version": "4.6.9",
3
+ "version": "4.6.12",
4
4
  "author": "Chupurnov Valeriy <chupurnov@gmail.com>",
5
5
  "homepage": "https://xdsoft.net/jodit/pro/",
6
6
  "bugs": {