jodit-pro 4.11.24 → 4.11.26

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 (314) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +3 -3
  3. package/es2015/jodit.js +2 -2
  4. package/es2015/jodit.min.js +2 -2
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  10. package/es2015/plugins/backup/backup.css +1 -1
  11. package/es2015/plugins/backup/backup.js +1 -1
  12. package/es2015/plugins/backup/backup.min.js +1 -1
  13. package/es2015/plugins/button-generator/button-generator.css +1 -1
  14. package/es2015/plugins/button-generator/button-generator.js +1 -1
  15. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  16. package/es2015/plugins/change-case/change-case.js +1 -1
  17. package/es2015/plugins/change-case/change-case.min.js +1 -1
  18. package/es2015/plugins/color-picker/color-picker.css +1 -1
  19. package/es2015/plugins/color-picker/color-picker.js +1 -1
  20. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  21. package/es2015/plugins/emoji/emoji.css +1 -1
  22. package/es2015/plugins/emoji/emoji.js +1 -1
  23. package/es2015/plugins/emoji/emoji.min.js +1 -1
  24. package/es2015/plugins/export-docs/export-docs.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  26. package/es2015/plugins/finder/finder.css +1 -1
  27. package/es2015/plugins/finder/finder.js +1 -1
  28. package/es2015/plugins/finder/finder.min.js +1 -1
  29. package/es2015/plugins/google-maps/google-maps.css +1 -1
  30. package/es2015/plugins/google-maps/google-maps.js +1 -1
  31. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  32. package/es2015/plugins/google-search/google-search.js +1 -1
  33. package/es2015/plugins/google-search/google-search.min.js +1 -1
  34. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  36. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  39. package/es2015/plugins/keyboard/keyboard.css +1 -1
  40. package/es2015/plugins/keyboard/keyboard.js +1 -1
  41. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  42. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  44. package/es2015/plugins/page-break/page-break.js +1 -1
  45. package/es2015/plugins/page-break/page-break.min.js +1 -1
  46. package/es2015/plugins/paste-code/paste-code.css +1 -1
  47. package/es2015/plugins/paste-code/paste-code.js +1 -1
  48. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  49. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  51. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  53. package/es2015/plugins/style/style.css +1 -1
  54. package/es2015/plugins/style/style.js +1 -1
  55. package/es2015/plugins/style/style.min.js +1 -1
  56. package/es2015/plugins/templates/templates.css +1 -1
  57. package/es2015/plugins/templates/templates.js +1 -1
  58. package/es2015/plugins/templates/templates.min.js +1 -1
  59. package/es2015/plugins/todo-list/todo-list.css +1 -1
  60. package/es2015/plugins/todo-list/todo-list.js +1 -1
  61. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  62. package/es2015/plugins/translate/translate.css +1 -1
  63. package/es2015/plugins/translate/translate.js +96 -21
  64. package/es2015/plugins/translate/translate.min.js +2 -2
  65. package/es2015/plugins/tune-block/tune-block.css +1 -1
  66. package/es2015/plugins/tune-block/tune-block.js +1 -1
  67. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  68. package/es2018/jodit.fat.min.js +5 -5
  69. package/es2018/jodit.min.js +2 -2
  70. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  71. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  72. package/es2018/plugins/backup/backup.min.js +1 -1
  73. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  74. package/es2018/plugins/change-case/change-case.min.js +1 -1
  75. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  76. package/es2018/plugins/emoji/emoji.min.js +1 -1
  77. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  78. package/es2018/plugins/finder/finder.min.js +1 -1
  79. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  80. package/es2018/plugins/google-search/google-search.min.js +1 -1
  81. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  82. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  83. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  84. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  85. package/es2018/plugins/page-break/page-break.min.js +1 -1
  86. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  87. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  88. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  89. package/es2018/plugins/style/style.min.js +1 -1
  90. package/es2018/plugins/templates/templates.min.js +1 -1
  91. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  92. package/es2018/plugins/translate/translate.min.js +2 -2
  93. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  94. package/es2021/jodit.css +1 -1
  95. package/es2021/jodit.fat.min.js +5 -5
  96. package/es2021/jodit.js +2 -2
  97. package/es2021/jodit.min.js +2 -2
  98. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  99. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  100. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  101. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  102. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  103. package/es2021/plugins/backup/backup.css +1 -1
  104. package/es2021/plugins/backup/backup.js +1 -1
  105. package/es2021/plugins/backup/backup.min.js +1 -1
  106. package/es2021/plugins/button-generator/button-generator.css +1 -1
  107. package/es2021/plugins/button-generator/button-generator.js +1 -1
  108. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  109. package/es2021/plugins/change-case/change-case.js +1 -1
  110. package/es2021/plugins/change-case/change-case.min.js +1 -1
  111. package/es2021/plugins/color-picker/color-picker.css +1 -1
  112. package/es2021/plugins/color-picker/color-picker.js +1 -1
  113. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  114. package/es2021/plugins/emoji/emoji.css +1 -1
  115. package/es2021/plugins/emoji/emoji.js +1 -1
  116. package/es2021/plugins/emoji/emoji.min.js +1 -1
  117. package/es2021/plugins/export-docs/export-docs.js +1 -1
  118. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  119. package/es2021/plugins/finder/finder.css +1 -1
  120. package/es2021/plugins/finder/finder.js +1 -1
  121. package/es2021/plugins/finder/finder.min.js +1 -1
  122. package/es2021/plugins/google-maps/google-maps.css +1 -1
  123. package/es2021/plugins/google-maps/google-maps.js +1 -1
  124. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  125. package/es2021/plugins/google-search/google-search.js +1 -1
  126. package/es2021/plugins/google-search/google-search.min.js +1 -1
  127. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  128. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  129. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  130. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  131. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  132. package/es2021/plugins/keyboard/keyboard.css +1 -1
  133. package/es2021/plugins/keyboard/keyboard.js +1 -1
  134. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  135. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  136. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  137. package/es2021/plugins/page-break/page-break.js +1 -1
  138. package/es2021/plugins/page-break/page-break.min.js +1 -1
  139. package/es2021/plugins/paste-code/paste-code.css +1 -1
  140. package/es2021/plugins/paste-code/paste-code.js +1 -1
  141. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  142. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  143. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  144. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  145. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  146. package/es2021/plugins/style/style.css +1 -1
  147. package/es2021/plugins/style/style.js +1 -1
  148. package/es2021/plugins/style/style.min.js +1 -1
  149. package/es2021/plugins/templates/templates.css +1 -1
  150. package/es2021/plugins/templates/templates.js +1 -1
  151. package/es2021/plugins/templates/templates.min.js +1 -1
  152. package/es2021/plugins/todo-list/todo-list.css +1 -1
  153. package/es2021/plugins/todo-list/todo-list.js +1 -1
  154. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  155. package/es2021/plugins/translate/translate.css +1 -1
  156. package/es2021/plugins/translate/translate.js +96 -21
  157. package/es2021/plugins/translate/translate.min.js +4 -4
  158. package/es2021/plugins/tune-block/tune-block.css +1 -1
  159. package/es2021/plugins/tune-block/tune-block.js +1 -1
  160. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  161. package/es2021.en/jodit.css +1 -1
  162. package/es2021.en/jodit.fat.min.js +3 -3
  163. package/es2021.en/jodit.js +2 -2
  164. package/es2021.en/jodit.min.js +2 -2
  165. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  166. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  167. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  168. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  169. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  170. package/es2021.en/plugins/backup/backup.css +1 -1
  171. package/es2021.en/plugins/backup/backup.js +1 -1
  172. package/es2021.en/plugins/backup/backup.min.js +1 -1
  173. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  174. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  175. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  176. package/es2021.en/plugins/change-case/change-case.js +1 -1
  177. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  178. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  179. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  180. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  181. package/es2021.en/plugins/emoji/emoji.css +1 -1
  182. package/es2021.en/plugins/emoji/emoji.js +1 -1
  183. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  184. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  185. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  186. package/es2021.en/plugins/finder/finder.css +1 -1
  187. package/es2021.en/plugins/finder/finder.js +1 -1
  188. package/es2021.en/plugins/finder/finder.min.js +1 -1
  189. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  190. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  191. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  192. package/es2021.en/plugins/google-search/google-search.js +1 -1
  193. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  194. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  195. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  196. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  197. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  198. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  199. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  200. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  201. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  202. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  203. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  204. package/es2021.en/plugins/page-break/page-break.js +1 -1
  205. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  206. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  207. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  208. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  209. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  210. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  211. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  212. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  213. package/es2021.en/plugins/style/style.css +1 -1
  214. package/es2021.en/plugins/style/style.js +1 -1
  215. package/es2021.en/plugins/style/style.min.js +1 -1
  216. package/es2021.en/plugins/templates/templates.css +1 -1
  217. package/es2021.en/plugins/templates/templates.js +1 -1
  218. package/es2021.en/plugins/templates/templates.min.js +1 -1
  219. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  220. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  221. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  222. package/es2021.en/plugins/translate/translate.css +1 -1
  223. package/es2021.en/plugins/translate/translate.js +96 -21
  224. package/es2021.en/plugins/translate/translate.min.js +4 -4
  225. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  226. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  227. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  228. package/es5/jodit.css +2 -2
  229. package/es5/jodit.fat.min.js +2 -2
  230. package/es5/jodit.js +2 -2
  231. package/es5/jodit.min.css +2 -2
  232. package/es5/jodit.min.js +2 -2
  233. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  234. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  235. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  236. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  237. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  238. package/es5/plugins/backup/backup.css +1 -1
  239. package/es5/plugins/backup/backup.js +1 -1
  240. package/es5/plugins/backup/backup.min.js +1 -1
  241. package/es5/plugins/button-generator/button-generator.css +1 -1
  242. package/es5/plugins/button-generator/button-generator.js +1 -1
  243. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  244. package/es5/plugins/change-case/change-case.js +1 -1
  245. package/es5/plugins/change-case/change-case.min.js +1 -1
  246. package/es5/plugins/color-picker/color-picker.css +1 -1
  247. package/es5/plugins/color-picker/color-picker.js +1 -1
  248. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  249. package/es5/plugins/emoji/emoji.css +1 -1
  250. package/es5/plugins/emoji/emoji.js +1 -1
  251. package/es5/plugins/emoji/emoji.min.js +1 -1
  252. package/es5/plugins/export-docs/export-docs.js +1 -1
  253. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  254. package/es5/plugins/finder/finder.css +1 -1
  255. package/es5/plugins/finder/finder.js +1 -1
  256. package/es5/plugins/finder/finder.min.js +1 -1
  257. package/es5/plugins/google-maps/google-maps.css +1 -1
  258. package/es5/plugins/google-maps/google-maps.js +1 -1
  259. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  260. package/es5/plugins/google-search/google-search.js +1 -1
  261. package/es5/plugins/google-search/google-search.min.js +1 -1
  262. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  263. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  264. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  265. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  266. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  267. package/es5/plugins/keyboard/keyboard.css +1 -1
  268. package/es5/plugins/keyboard/keyboard.js +1 -1
  269. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  270. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  271. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  272. package/es5/plugins/page-break/page-break.js +1 -1
  273. package/es5/plugins/page-break/page-break.min.js +1 -1
  274. package/es5/plugins/paste-code/paste-code.css +1 -1
  275. package/es5/plugins/paste-code/paste-code.js +1 -1
  276. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  277. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  278. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  279. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  280. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  281. package/es5/plugins/style/style.css +1 -1
  282. package/es5/plugins/style/style.js +1 -1
  283. package/es5/plugins/style/style.min.js +1 -1
  284. package/es5/plugins/templates/templates.css +1 -1
  285. package/es5/plugins/templates/templates.js +1 -1
  286. package/es5/plugins/templates/templates.min.js +1 -1
  287. package/es5/plugins/todo-list/todo-list.css +1 -1
  288. package/es5/plugins/todo-list/todo-list.js +1 -1
  289. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  290. package/es5/plugins/translate/translate.css +1 -1
  291. package/es5/plugins/translate/translate.js +118 -21
  292. package/es5/plugins/translate/translate.min.js +2 -2
  293. package/es5/plugins/tune-block/tune-block.css +1 -1
  294. package/es5/plugins/tune-block/tune-block.js +1 -1
  295. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  296. package/es5/polyfills.fat.min.js +1 -1
  297. package/es5/polyfills.js +1 -1
  298. package/es5/polyfills.min.js +1 -1
  299. package/esm/config.d.ts +3 -1
  300. package/esm/plugins/translate/config.d.ts +3 -2
  301. package/esm/plugins/translate/config.js +1 -1
  302. package/esm/plugins/translate/interface.d.ts +8 -0
  303. package/esm/plugins/translate/providers/cloud/cloud.d.ts +14 -0
  304. package/esm/plugins/translate/providers/cloud/cloud.js +1 -0
  305. package/esm/plugins/translate/providers/google/google.js +1 -1
  306. package/esm/plugins/translate/providers/languages.d.ts +1 -0
  307. package/esm/plugins/translate/providers/languages.js +1 -1
  308. package/esm/plugins/translate/translate.js +1 -1
  309. package/package.json +1 -1
  310. package/types/config.d.ts +3 -1
  311. package/types/plugins/translate/config.d.ts +3 -2
  312. package/types/plugins/translate/interface.d.ts +8 -0
  313. package/types/plugins/translate/providers/cloud/cloud.d.ts +14 -0
  314. package/types/plugins/translate/providers/languages.d.ts +1 -0
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -66,6 +66,10 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.translate = {
66
66
  url: 'https://translation.googleapis.com/language/translate/v2',
67
67
  key: ''
68
68
  },
69
+ cloudProviderOptions: {
70
+ url: 'https://cloud.xdsoft.net',
71
+ key: ''
72
+ },
69
73
  defaultSourceLang: '',
70
74
  defaultTargetLang: 'de'
71
75
  };
@@ -92,6 +96,94 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_2__.Config.prototype.controls.translat
92
96
  jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_3__.Icon.set('translate', (_assets_translate_svg__WEBPACK_IMPORTED_MODULE_1___default())).set('translate-swap', (_assets_swap_svg__WEBPACK_IMPORTED_MODULE_0___default()));
93
97
 
94
98
 
99
+ /***/ }),
100
+
101
+ /***/ 50090:
102
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
103
+
104
+ "use strict";
105
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
106
+ /* harmony export */ CloudTranslateProvider: function() { return /* binding */ CloudTranslateProvider; }
107
+ /* harmony export */ });
108
+ /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20616);
109
+ /* harmony import */ var _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67709);
110
+ /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82749);
111
+ /* harmony import */ var jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(82758);
112
+ /* harmony import */ var jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38837);
113
+ /* harmony import */ var jodit_pro_plugins_translate_providers_languages__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80942);
114
+ /*!
115
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
116
+ * See LICENSE.md in the project root for license information.
117
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
118
+ */
119
+
120
+
121
+
122
+
123
+
124
+ var CloudTranslateProvider = /*#__PURE__*/ function() {
125
+ "use strict";
126
+ function CloudTranslateProvider(jodit) {
127
+ (0,_swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, CloudTranslateProvider);
128
+ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(this, "jodit", void 0);
129
+ this.jodit = jodit;
130
+ }
131
+ (0,_swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__._)(CloudTranslateProvider, [
132
+ {
133
+ key: "__fetch",
134
+ value: function __fetch(endpoint) {
135
+ var _this = this;
136
+ var data = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
137
+ var opt = this.jodit.o.translate.cloudProviderOptions;
138
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_4__.assert)(opt, 'Set cloudProviderOptions');
139
+ return this.jodit.fetch(opt.url + endpoint + '?key=' + opt.key, {
140
+ method: 'POST',
141
+ data: data,
142
+ contentType: 'application/json; charset=utf-8',
143
+ withCredentials: false
144
+ }).then(function(resp) {
145
+ return resp.json();
146
+ }).catch(function(resp) {
147
+ try {
148
+ _this.jodit.message.error(resp.json().message);
149
+ } catch (e) {
150
+ if (!jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_3__.IS_PROD) {
151
+ console.error(e);
152
+ }
153
+ }
154
+ });
155
+ }
156
+ },
157
+ {
158
+ key: "translate",
159
+ value: function translate(text, source, target) {
160
+ var body = {
161
+ text: text,
162
+ targetLanguageCode: target
163
+ };
164
+ if (source) {
165
+ body.sourceLanguageCode = source;
166
+ }
167
+ return this.__fetch('/v1/translate', body).then(function(resp) {
168
+ return {
169
+ text: resp.text
170
+ };
171
+ });
172
+ }
173
+ },
174
+ {
175
+ key: "supportedLanguages",
176
+ value: function supportedLanguages() {
177
+ return Promise.resolve({
178
+ langs: jodit_pro_plugins_translate_providers_languages__WEBPACK_IMPORTED_MODULE_5__.languages
179
+ });
180
+ }
181
+ }
182
+ ]);
183
+ return CloudTranslateProvider;
184
+ }();
185
+
186
+
95
187
  /***/ }),
96
188
 
97
189
  /***/ 27834:
@@ -159,12 +251,15 @@ var GoogleTranslateProvider = /*#__PURE__*/ function() {
159
251
  {
160
252
  key: "translate",
161
253
  value: function translate(q, source, target) {
162
- return this.__fetch('translate', {
254
+ var data = {
163
255
  q: q,
164
- source: source,
165
256
  target: target,
166
257
  format: 'html'
167
- }).then(function(resp) {
258
+ };
259
+ if (source) {
260
+ data.source = source;
261
+ }
262
+ return this.__fetch('translate', data).then(function(resp) {
168
263
  return {
169
264
  text: resp.data.translations[0].translatedText
170
265
  };
@@ -198,6 +293,7 @@ var GoogleTranslateProvider = /*#__PURE__*/ function() {
198
293
  * See LICENSE.md in the project root for license information.
199
294
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
200
295
  */ var languages = {
296
+ 'Detect language': 'auto',
201
297
  Afrikaans: 'af',
202
298
  Albanian: 'sq',
203
299
  Amharic: 'am',
@@ -477,14 +573,14 @@ __webpack_require__.r(__webpack_exports__);
477
573
  /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31635);
478
574
  /* harmony import */ var _swc_helpers_ts_generator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(62361);
479
575
  /* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20104);
480
- /* harmony import */ var _providers_google_google__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27834);
481
- /* harmony import */ var _ui_settings_settings__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33124);
482
- /* harmony import */ var _replace_text_fragments__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(73534);
483
- /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(65478);
484
- /* harmony import */ var jodit_esm_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(23282);
485
- /* harmony import */ var jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(70799);
486
- /* harmony import */ var jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(38837);
487
- /* harmony import */ var jodit_esm_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(96325);
576
+ /* harmony import */ var _providers_cloud_cloud__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(50090);
577
+ /* harmony import */ var _providers_google_google__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(27834);
578
+ /* harmony import */ var _ui_settings_settings__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(33124);
579
+ /* harmony import */ var _replace_text_fragments__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(73534);
580
+ /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(65478);
581
+ /* harmony import */ var jodit_esm_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(23282);
582
+ /* harmony import */ var jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(70799);
583
+ /* harmony import */ var jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(38837);
488
584
  /* harmony import */ var jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(50911);
489
585
  /* harmony import */ var jodit_esm_core_ui_button_button_button__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(10830);
490
586
  /* harmony import */ var jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(2692);
@@ -535,15 +631,17 @@ var Translate = /*#__PURE__*/ function(Plugin) {
535
631
  key: "__getProvider",
536
632
  value: function __getProvider() {
537
633
  var provider = this.jodit.options.translate.provider;
538
- if ((0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_15__.isString)(provider)) {
634
+ if ((0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_16__.isString)(provider)) {
539
635
  switch(provider){
540
636
  case 'google':
541
- return new _providers_google_google__WEBPACK_IMPORTED_MODULE_10__.GoogleTranslateProvider(this.j);
637
+ return new _providers_google_google__WEBPACK_IMPORTED_MODULE_11__.GoogleTranslateProvider(this.j);
638
+ case 'cloud':
639
+ return new _providers_cloud_cloud__WEBPACK_IMPORTED_MODULE_10__.CloudTranslateProvider(this.j);
542
640
  default:
543
641
  throw new Error('Unknown provider');
544
642
  }
545
643
  }
546
- (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_16__.assert)((0,jodit_esm_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_14__.isFunction)(provider), 'Provider must be a function');
644
+ (0,jodit_esm_core_helpers_utils_assert__WEBPACK_IMPORTED_MODULE_17__.assert)((0,jodit_esm_core_helpers_checker_is_function__WEBPACK_IMPORTED_MODULE_15__.isFunction)(provider), 'Provider must be a function');
547
645
  return provider(this.jodit);
548
646
  }
549
647
  },
@@ -551,7 +649,6 @@ var Translate = /*#__PURE__*/ function(Plugin) {
551
649
  key: "afterInit",
552
650
  value: function afterInit(jodit) {
553
651
  var _this = this;
554
- var defaultLanguage = (0,jodit_esm_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_17__.defaultLanguage)(jodit.o.language, jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_20__.JoditPro.defaultOptions.language), language = (0,jodit_esm_core_helpers_utils_default_language__WEBPACK_IMPORTED_MODULE_17__.defaultLanguage)(jodit.o.language, defaultLanguage);
555
652
  var provider = this.__getProvider();
556
653
  jodit.registerCommand('translateOptions', {
557
654
  exec: function exec() {
@@ -572,7 +669,7 @@ var Translate = /*#__PURE__*/ function(Plugin) {
572
669
  langsList = _state.sent();
573
670
  sourceLangs = 'source' in langsList ? langsList.source.langs : langsList.langs;
574
671
  targetLangs = 'target' in langsList ? langsList.target.langs : langsList.langs;
575
- settings = new _ui_settings_settings__WEBPACK_IMPORTED_MODULE_11__.UITranslateSettings(dlg, this.state, {
672
+ settings = new _ui_settings_settings__WEBPACK_IMPORTED_MODULE_12__.UITranslateSettings(dlg, this.state, {
576
673
  sourceList: sourceLangs,
577
674
  targetList: targetLangs,
578
675
  onChange: function onChange(state) {
@@ -601,20 +698,20 @@ var Translate = /*#__PURE__*/ function(Plugin) {
601
698
  hotkeys: jodit.o.translate.hotkeys.translateOptions
602
699
  }).registerCommand('translate', {
603
700
  exec: function exec() {
604
- var selection = (0,_replace_text_fragments__WEBPACK_IMPORTED_MODULE_12__.getSelectionFragments)(jodit).filter(function(fragment) {
701
+ var selection = (0,_replace_text_fragments__WEBPACK_IMPORTED_MODULE_13__.getSelectionFragments)(jodit).filter(function(fragment) {
605
702
  return fragment.text.trim().length > 0;
606
703
  });
607
704
  if (!selection.length) {
608
705
  jodit.message.error('Select text for translate');
609
706
  return;
610
707
  }
611
- var source = !_this.state.sourceLang || _this.state.sourceLang === 'auto' ? language : _this.state.sourceLang;
708
+ var source = !_this.state.sourceLang || _this.state.sourceLang === 'auto' ? '' : _this.state.sourceLang;
612
709
  var target = _this.state.targetLang;
613
710
  return Promise.all(selection.map(function(fragment) {
614
711
  provider.translate(fragment.text, source, target).then(function(response) {
615
712
  fragment.replace(response.text);
616
713
  }).catch(function(error) {
617
- jodit.message.error((0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_15__.isString)(error) ? error : error.message);
714
+ jodit.message.error((0,jodit_esm_core_helpers_checker_is_string__WEBPACK_IMPORTED_MODULE_16__.isString)(error) ? error : error.message);
618
715
  });
619
716
  })).then(function() {
620
717
  jodit.synchronizeValues();
@@ -635,7 +732,7 @@ var Translate = /*#__PURE__*/ function(Plugin) {
635
732
  'license'
636
733
  ]);
637
734
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_7__.__decorate)([
638
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_13__.persistent
735
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_14__.persistent
639
736
  ], Translate.prototype, "state", void 0);
640
737
  jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_20__.JoditPro.plugins.add('translate', Translate);
641
738
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
8
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var a in n)("object"==typeof exports?exports:t)[a]=n[a]}}(self,function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[954],{74922:function(t){t.exports='<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> <path d="M13.98 22L6 30l7.98 8v-6H28v-4H13.98v-6zM42 18l-7.98-8v6H20v4h14.02v6L42 18z"/> <path d="M0 0h48v48H0z" fill="none"/> </svg>'},34575:function(t){t.exports='<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <path d="M4.545 6.714 4.11 8H3l1.862-5h1.284L8 8H6.833l-.435-1.286H4.545zm1.634-.736L5.5 3.956h-.049l-.679 2.022H6.18z"/> <path d="M0 2a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v3h3a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2zm7.138 9.995c.193.301.402.583.63.846-.748.575-1.673 1.001-2.768 1.292.178.217.451.635.555.867 1.125-.359 2.08-.844 2.886-1.494.777.665 1.739 1.165 2.93 1.472.133-.254.414-.673.629-.89-1.125-.253-2.057-.694-2.82-1.284.681-.747 1.222-1.651 1.621-2.757H14V8h-3v1.047h.765c-.318.844-.74 1.546-1.272 2.13a6.066 6.066 0 0 1-.415-.492 1.988 1.988 0 0 1-.94.31z"/> </svg>'},20104:function(t,e,n){"use strict";var a=n(74922),i=n.n(a),r=n(34575),o=n.n(r),s=n(6441),l=n(12153);s.Config.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},defaultSourceLang:"",defaultTargetLang:"de"},s.Config.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec:function(t){t.execCommand("translate")},list:["Options"],childExec:function(t,e,n){var a=n.control;t.execCommand("translate"+a.name)},mods:{stroke:!1}}},l.Icon.set("translate",o()).set("translate-swap",i())},27834:function(t,e,n){"use strict";n.d(e,{GoogleTranslateProvider:function(){return d}});var a=n(20616),i=n(67709),r=n(82749),o=n(56075),s=n(11886),l=n(82758),c=n(38837),u=n(80942),d=function(){function t(e){(0,a._)(this,t),(0,r._)(this,"jodit",void 0),this.jodit=e}return(0,i._)(t,[{key:"__fetch",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.jodit.o.translate.googleProviderOptions;return(0,c.assert)(a,"Set googleProviderOptions"),this.jodit.fetch(a.url+"?key="+a.key,{method:"POST",data:(0,s._)((0,o._)({},n),{ui:this.jodit.o.language}),contentType:"application/json; charset=utf-8",withCredentials:!1}).then(function(t){return t.json()}).catch(function(t){try{e.jodit.message.error(t.json().message)}catch(t){l.IS_PROD}})}},{key:"translate",value:function(t,e,n){return this.__fetch("translate",{q:t,source:e,target:n,format:"html"}).then(function(t){return{text:t.data.translations[0].translatedText}})}},{key:"supportedLanguages",value:function(){return Promise.resolve({langs:u.languages})}}]),t}()},80942:function(t,e,n){"use strict";n.d(e,{languages:function(){return a}});var a={Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"}},73534:function(t,e,n){"use strict";n.d(e,{getSelectionFragments:function(){return i}});var a=n(2748);function i(t){var e=[],n=t.s.expandSelection().sel;if(!n||0===n.rangeCount||n.isCollapsed)return e;t.s.range.commonAncestorContainer.normalize();var i=t.s.range,l=i.commonAncestorContainer,c=i.startContainer,u=i.endContainer,d=i.startOffset,g=i.endOffset;if(c===u){if(a.Dom.isText(c))return[o(c,d,g)];if(g-d==1){var h=c.childNodes[d];return a.Dom.isText(h)?[o(h,0,h.nodeValue.length)]:[s(h)]}if(0===d&&c.childNodes.length===g)return[s(c)];for(var f=d;f<g;f++){var p=c.childNodes[f];a.Dom.isText(p)?e.push(o(p,0,p.nodeValue.length)):e.push(s(p))}return e}for(var v=new Set,_=t.ed.createTreeWalker(l,NodeFilter.SHOW_ALL,{acceptNode:function(t){return!i.intersectsNode(t)||a.Dom.closest(t,function(t){return t&&v.has(t)},l)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),m=_.nextNode();m;){if(a.Dom.isElement(m)&&r(i,m))v.add(m),e.push(s(m));else if(a.Dom.isText(m)&&r(i,m))e.push(o(m,0,m.nodeValue.length));else if(a.Dom.isText(m)){var y=0,k=m.nodeValue.length;m===c&&(y=d),m===u&&(k=g),e.push(o(m,y,k))}m=_.nextNode()}return e}var r=function(t,e){var n=document.createRange();try{n.selectNodeContents(e)}catch(t){n.selectNode(e)}return 0>=t.compareBoundaryPoints(Range.START_TO_START,n)&&t.compareBoundaryPoints(Range.END_TO_END,n)>=0};function o(t,e,n){return{text:t.nodeValue.slice(e,n),replace:function(a){t.nodeValue=t.nodeValue.slice(0,e)+a+t.nodeValue.slice(n)}}}function s(t){return{text:t.innerHTML,replace:function(e){t.innerHTML=e}}}},73098:function(t,e,n){"use strict";n.r(e),n.d(e,{Translate:function(){return T}});var a=n(77688),i=n(80294),r=n(20616),o=n(67709),s=n(82749),l=n(18766),c=n(23078),u=n(31635),d=n(62361);n(20104);var g=n(27834),h=n(33124),f=n(73534),p=n(65478),v=n(23282),_=n(70799),m=n(38837),y=n(96325),k=n(50911),L=n(10830),w=n(2692),T=function(t){function e(){var t;return(0,r._)(this,e),t=(0,i._)(this,e,arguments),(0,s._)(t,"buttons",[{name:"translate.translate",group:"insert"}]),(0,s._)(t,"state",{sourceLang:t.jodit.o.translate.defaultSourceLang||"en",targetLang:t.jodit.o.translate.defaultTargetLang}),t}return(0,l._)(e,t),(0,o._)(e,[{key:"__getProvider",value:function(){var t=this.jodit.options.translate.provider;if((0,_.isString)(t))if("google"===t)return new g.GoogleTranslateProvider(this.j);else throw Error("Unknown provider");return(0,m.assert)((0,v.isFunction)(t),"Provider must be a function"),t(this.jodit)}},{key:"afterInit",value:function(t){var e=this,n=(0,y.defaultLanguage)(t.o.language,w.JoditPro.defaultOptions.language),i=(0,y.defaultLanguage)(t.o.language,n),r=this.__getProvider();t.registerCommand("translateOptions",{exec:function(){return(0,a._)(function(){var e,n,a,i,o,s,l;return(0,d._)(this,function(c){switch(c.label){case 0:return e=this,n=this.state,(a=t.dlg()).setHeader("Translate options"),[4,r.supportedLanguages()];case 1:return o="source"in(i=c.sent())?i.source.langs:i.langs,s="target"in i?i.target.langs:i.langs,l=new h.UITranslateSettings(a,this.state,{sourceList:o,targetList:s,onChange:function(t){n=t}}),a.setContent(l),a.setFooter([(0,L.Button)(t,"cancel","Cancel").onAction(function(){return a.close()}),(0,L.Button)(t,"ok","Save","primary").onAction(function(){e.state=n,a.close()})]),l.bindDestruct(a),a.setSize(500,400).open(!0),[2]}})}).call(e)},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:function(){var n=(0,f.getSelectionFragments)(t).filter(function(t){return t.text.trim().length>0});if(!n.length)return void t.message.error("Select text for translate");var a=e.state.sourceLang&&"auto"!==e.state.sourceLang?e.state.sourceLang:i,o=e.state.targetLang;return Promise.all(n.map(function(e){r.translate(e.text,a,o).then(function(t){e.replace(t.text)}).catch(function(e){t.message.error((0,_.isString)(e)?e:e.message)})})).then(function(){t.synchronizeValues()})},hotkeys:t.o.translate.hotkeys.translateSelection})}},{key:"beforeDestruct",value:function(t){}}]),e}((0,c._)(k.Plugin));(0,s._)(T,"requires",["license"]),(0,u.__decorate)([p.persistent],T.prototype,"state",void 0),w.JoditPro.plugins.add("translate",T)},67082:function(t,e,n){"use strict";n.d(e,{UITranslateList:function(){return v}});var a=n(80294),i=n(20616),r=n(67709),o=n(82749),s=n(18766),l=n(31635),c=n(82758),u=n(65478),d=n(2748),g=n(21537),h=n(29960),f=n(48538),p=n(80256),v=function(t){function e(t,n){(0,i._)(this,e),r=(0,a._)(this,e,[t,n]),(0,o._)(r,"options",void 0),(0,o._)(r,"state",void 0),r.options=n,r.state={active:""},r.state.active=n.active;var r,s,l=new p.UIInput(t,{placeholder:t.i18n("Filter"),icon:"search",onChange:r.__onChangeFilter,clearButton:!0});return null==(s=r.getElm("input"))||s.appendChild(l.container),r.__onActiveChange(),r}return(0,s._)(e,t),(0,r._)(e,[{key:"className",value:function(){return"UITranslateList"}},{key:"items",get:function(){return this.getElms("item")}},{key:"render",value:function(t){var e=this,n=[];return(Array.isArray(t.list)?t.list:Object.keys(t.list).map(function(e){return{title:e,code:t.list[e]}})).forEach(function(t){var a=t.code;n.push("<a role='button' tabindex='0' class='&__item' data-lang='".concat(a,"'>\n <span class='&__item-key'>").concat(a,"</span>\n <span class='&__item-title'>").concat(e.j.i18n(t.title),"</span>\n </a>"))}),"<div class='&'>\n <div class='&__input'></div>\n <div class='&__list'>".concat(n.join(""),"</div>\n </div>")}},{key:"__onChangeFilter",value:function(t){this.items.forEach(function(e){var n,a,i=null!=(n=null==(a=e.textContent)?void 0:a.toLowerCase())?n:"";(0,h.attr)(e,"data-hidden","true"!==(0,h.attr)(e,"data-active")&&!i.includes(t.toLowerCase()))})}},{key:"__scrollToActive",value:function(){var t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&(0,g.scrollIntoViewIfNeeded)(t,e,this.j.od)}},{key:"onClickItem",value:function(t){if("keydown"!==t.type||!("key"in t)||t.key===c.KEY_ENTER){var e=t.target;if(d.Dom.isHTMLElement(e)&&e.getAttribute("data-lang")){var n=(0,h.attr)(e,"data-lang");this.options.onChange(n),this.state.active=n}}}},{key:"__onActiveChange",value:function(){var t=this;this.items.forEach(function(e){return(0,h.attr)(e,"data-active",(0,h.attr)(e,"data-lang")===t.state.active)}),this.__scrollToActive()}}]),e}(f.UIElement);(0,l.__decorate)([(0,u.debounce)()],v.prototype,"__onChangeFilter",null),(0,l.__decorate)([(0,u.watch)(":afterOpen")],v.prototype,"__scrollToActive",null),(0,l.__decorate)([(0,u.watch)(["container:click","container:keydown"])],v.prototype,"onClickItem",null),(0,l.__decorate)([(0,u.watch)("state.active"),(0,u.debounce)()],v.prototype,"__onActiveChange",null),v=(0,l.__decorate)([u.component],v)},33124:function(t,e,n){"use strict";n.d(e,{UITranslateSettings:function(){return h}});var a=n(80294),i=n(20616),r=n(67709),o=n(82749),s=n(18766),l=n(56075),c=n(31635),u=n(65478),d=n(67510),g=n(67082),h=function(t){function e(t,n,r){var s,c,u;return(0,i._)(this,e),s=(0,a._)(this,e,[t]),(0,o._)(s,"state",void 0),(0,o._)(s,"options",void 0),(0,o._)(s,"__sourceList",void 0),(0,o._)(s,"__targetList",void 0),s.state=n,s.options=r,s.__sourceList=new g.UITranslateList(t,{list:r.sourceList,active:n.sourceLang,onChange:function(t){s.state.sourceLang=t,s.options.onChange((0,l._)({},s.state))}}),null==(c=s.getElm("source-list"))||c.appendChild(s.__sourceList.container),s.__targetList=new g.UITranslateList(t,{list:r.targetList,active:n.targetLang,onChange:function(t){s.state.targetLang=t,s.options.onChange((0,l._)({},s.state))}}),null==(u=s.getElm("target-list"))||u.appendChild(s.__targetList.container),s}return(0,s._)(e,t),(0,r._)(e,[{key:"className",value:function(){return"UITranslateSettings"}},{key:"render",value:function(){return"<div>\n <div class='&__list &__source-list'></div>\n <div class='&__arrow'>\n <a class='&__arrow-swap'>*translate-swap*</a>\n </div>\n <div class='&__list &__target-list'></div>\n </div>"}},{key:"__onSwap",value:function(){var t=this.state.sourceLang;this.state.sourceLang=this.state.targetLang,this.state.targetLang=t,this.__sourceList.state.active=this.state.sourceLang,this.__targetList.state.active=this.state.targetLang,this.options.onChange((0,l._)({},this.state))}}]),e}(d.UIElement);(0,c.__decorate)([(0,u.watch)("arrow-swap:click")],h.prototype,"__onSwap",null),h=(0,c.__decorate)([u.component],h)},11886:function(t,e,n){"use strict";function a(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):(function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e})(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}n.d(e,{_:function(){return a}})}},function(t){return t(t.s=73098)}])});
8
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var a in n)("object"==typeof exports?exports:t)[a]=n[a]}}(self,function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[954],{74922:function(t){t.exports='<svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> <path d="M13.98 22L6 30l7.98 8v-6H28v-4H13.98v-6zM42 18l-7.98-8v6H20v4h14.02v6L42 18z"/> <path d="M0 0h48v48H0z" fill="none"/> </svg>'},34575:function(t){t.exports='<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <path d="M4.545 6.714 4.11 8H3l1.862-5h1.284L8 8H6.833l-.435-1.286H4.545zm1.634-.736L5.5 3.956h-.049l-.679 2.022H6.18z"/> <path d="M0 2a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v3h3a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2a2 2 0 0 1-2-2V2zm2-1a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H2zm7.138 9.995c.193.301.402.583.63.846-.748.575-1.673 1.001-2.768 1.292.178.217.451.635.555.867 1.125-.359 2.08-.844 2.886-1.494.777.665 1.739 1.165 2.93 1.472.133-.254.414-.673.629-.89-1.125-.253-2.057-.694-2.82-1.284.681-.747 1.222-1.651 1.621-2.757H14V8h-3v1.047h.765c-.318.844-.74 1.546-1.272 2.13a6.066 6.066 0 0 1-.415-.492 1.988 1.988 0 0 1-.94.31z"/> </svg>'},20104:function(t,e,n){"use strict";var a=n(74922),i=n.n(a),r=n(34575),o=n.n(r),s=n(6441),l=n(12153);s.Config.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},cloudProviderOptions:{url:"https://cloud.xdsoft.net",key:""},defaultSourceLang:"",defaultTargetLang:"de"},s.Config.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec:function(t){t.execCommand("translate")},list:["Options"],childExec:function(t,e,n){var a=n.control;t.execCommand("translate"+a.name)},mods:{stroke:!1}}},l.Icon.set("translate",o()).set("translate-swap",i())},50090:function(t,e,n){"use strict";n.d(e,{CloudTranslateProvider:function(){return c}});var a=n(20616),i=n(67709),r=n(82749),o=n(82758),s=n(38837),l=n(80942),c=function(){function t(e){(0,a._)(this,t),(0,r._)(this,"jodit",void 0),this.jodit=e}return(0,i._)(t,[{key:"__fetch",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.jodit.o.translate.cloudProviderOptions;return(0,s.assert)(a,"Set cloudProviderOptions"),this.jodit.fetch(a.url+t+"?key="+a.key,{method:"POST",data:n,contentType:"application/json; charset=utf-8",withCredentials:!1}).then(function(t){return t.json()}).catch(function(t){try{e.jodit.message.error(t.json().message)}catch(t){o.IS_PROD}})}},{key:"translate",value:function(t,e,n){var a={text:t,targetLanguageCode:n};return e&&(a.sourceLanguageCode=e),this.__fetch("/v1/translate",a).then(function(t){return{text:t.text}})}},{key:"supportedLanguages",value:function(){return Promise.resolve({langs:l.languages})}}]),t}()},27834:function(t,e,n){"use strict";n.d(e,{GoogleTranslateProvider:function(){return d}});var a=n(20616),i=n(67709),r=n(82749),o=n(56075),s=n(11886),l=n(82758),c=n(38837),u=n(80942),d=function(){function t(e){(0,a._)(this,t),(0,r._)(this,"jodit",void 0),this.jodit=e}return(0,i._)(t,[{key:"__fetch",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.jodit.o.translate.googleProviderOptions;return(0,c.assert)(a,"Set googleProviderOptions"),this.jodit.fetch(a.url+"?key="+a.key,{method:"POST",data:(0,s._)((0,o._)({},n),{ui:this.jodit.o.language}),contentType:"application/json; charset=utf-8",withCredentials:!1}).then(function(t){return t.json()}).catch(function(t){try{e.jodit.message.error(t.json().message)}catch(t){l.IS_PROD}})}},{key:"translate",value:function(t,e,n){var a={q:t,target:n,format:"html"};return e&&(a.source=e),this.__fetch("translate",a).then(function(t){return{text:t.data.translations[0].translatedText}})}},{key:"supportedLanguages",value:function(){return Promise.resolve({langs:u.languages})}}]),t}()},80942:function(t,e,n){"use strict";n.d(e,{languages:function(){return a}});var a={"Detect language":"auto",Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"}},73534:function(t,e,n){"use strict";n.d(e,{getSelectionFragments:function(){return i}});var a=n(2748);function i(t){var e=[],n=t.s.expandSelection().sel;if(!n||0===n.rangeCount||n.isCollapsed)return e;t.s.range.commonAncestorContainer.normalize();var i=t.s.range,l=i.commonAncestorContainer,c=i.startContainer,u=i.endContainer,d=i.startOffset,h=i.endOffset;if(c===u){if(a.Dom.isText(c))return[o(c,d,h)];if(h-d==1){var g=c.childNodes[d];return a.Dom.isText(g)?[o(g,0,g.nodeValue.length)]:[s(g)]}if(0===d&&c.childNodes.length===h)return[s(c)];for(var f=d;f<h;f++){var v=c.childNodes[f];a.Dom.isText(v)?e.push(o(v,0,v.nodeValue.length)):e.push(s(v))}return e}for(var p=new Set,_=t.ed.createTreeWalker(l,NodeFilter.SHOW_ALL,{acceptNode:function(t){return!i.intersectsNode(t)||a.Dom.closest(t,function(t){return t&&p.has(t)},l)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),m=_.nextNode();m;){if(a.Dom.isElement(m)&&r(i,m))p.add(m),e.push(s(m));else if(a.Dom.isText(m)&&r(i,m))e.push(o(m,0,m.nodeValue.length));else if(a.Dom.isText(m)){var y=0,k=m.nodeValue.length;m===c&&(y=d),m===u&&(k=h),e.push(o(m,y,k))}m=_.nextNode()}return e}var r=function(t,e){var n=document.createRange();try{n.selectNodeContents(e)}catch(t){n.selectNode(e)}return 0>=t.compareBoundaryPoints(Range.START_TO_START,n)&&t.compareBoundaryPoints(Range.END_TO_END,n)>=0};function o(t,e,n){return{text:t.nodeValue.slice(e,n),replace:function(a){t.nodeValue=t.nodeValue.slice(0,e)+a+t.nodeValue.slice(n)}}}function s(t){return{text:t.innerHTML,replace:function(e){t.innerHTML=e}}}},73098:function(t,e,n){"use strict";n.r(e),n.d(e,{Translate:function(){return C}});var a=n(77688),i=n(80294),r=n(20616),o=n(67709),s=n(82749),l=n(18766),c=n(23078),u=n(31635),d=n(62361);n(20104);var h=n(50090),g=n(27834),f=n(33124),v=n(73534),p=n(65478),_=n(23282),m=n(70799),y=n(38837),k=n(50911),L=n(10830),w=n(2692),C=function(t){function e(){var t;return(0,r._)(this,e),t=(0,i._)(this,e,arguments),(0,s._)(t,"buttons",[{name:"translate.translate",group:"insert"}]),(0,s._)(t,"state",{sourceLang:t.jodit.o.translate.defaultSourceLang||"en",targetLang:t.jodit.o.translate.defaultTargetLang}),t}return(0,l._)(e,t),(0,o._)(e,[{key:"__getProvider",value:function(){var t=this.jodit.options.translate.provider;if((0,m.isString)(t))switch(t){case"google":return new g.GoogleTranslateProvider(this.j);case"cloud":return new h.CloudTranslateProvider(this.j);default:throw Error("Unknown provider")}return(0,y.assert)((0,_.isFunction)(t),"Provider must be a function"),t(this.jodit)}},{key:"afterInit",value:function(t){var e=this,n=this.__getProvider();t.registerCommand("translateOptions",{exec:function(){return(0,a._)(function(){var e,a,i,r,o,s,l;return(0,d._)(this,function(c){switch(c.label){case 0:return e=this,a=this.state,(i=t.dlg()).setHeader("Translate options"),[4,n.supportedLanguages()];case 1:return o="source"in(r=c.sent())?r.source.langs:r.langs,s="target"in r?r.target.langs:r.langs,l=new f.UITranslateSettings(i,this.state,{sourceList:o,targetList:s,onChange:function(t){a=t}}),i.setContent(l),i.setFooter([(0,L.Button)(t,"cancel","Cancel").onAction(function(){return i.close()}),(0,L.Button)(t,"ok","Save","primary").onAction(function(){e.state=a,i.close()})]),l.bindDestruct(i),i.setSize(500,400).open(!0),[2]}})}).call(e)},hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:function(){var a=(0,v.getSelectionFragments)(t).filter(function(t){return t.text.trim().length>0});if(!a.length)return void t.message.error("Select text for translate");var i=e.state.sourceLang&&"auto"!==e.state.sourceLang?e.state.sourceLang:"",r=e.state.targetLang;return Promise.all(a.map(function(e){n.translate(e.text,i,r).then(function(t){e.replace(t.text)}).catch(function(e){t.message.error((0,m.isString)(e)?e:e.message)})})).then(function(){t.synchronizeValues()})},hotkeys:t.o.translate.hotkeys.translateSelection})}},{key:"beforeDestruct",value:function(t){}}]),e}((0,c._)(k.Plugin));(0,s._)(C,"requires",["license"]),(0,u.__decorate)([p.persistent],C.prototype,"state",void 0),w.JoditPro.plugins.add("translate",C)},67082:function(t,e,n){"use strict";n.d(e,{UITranslateList:function(){return p}});var a=n(80294),i=n(20616),r=n(67709),o=n(82749),s=n(18766),l=n(31635),c=n(82758),u=n(65478),d=n(2748),h=n(21537),g=n(29960),f=n(48538),v=n(80256),p=function(t){function e(t,n){(0,i._)(this,e),r=(0,a._)(this,e,[t,n]),(0,o._)(r,"options",void 0),(0,o._)(r,"state",void 0),r.options=n,r.state={active:""},r.state.active=n.active;var r,s,l=new v.UIInput(t,{placeholder:t.i18n("Filter"),icon:"search",onChange:r.__onChangeFilter,clearButton:!0});return null==(s=r.getElm("input"))||s.appendChild(l.container),r.__onActiveChange(),r}return(0,s._)(e,t),(0,r._)(e,[{key:"className",value:function(){return"UITranslateList"}},{key:"items",get:function(){return this.getElms("item")}},{key:"render",value:function(t){var e=this,n=[];return(Array.isArray(t.list)?t.list:Object.keys(t.list).map(function(e){return{title:e,code:t.list[e]}})).forEach(function(t){var a=t.code;n.push("<a role='button' tabindex='0' class='&__item' data-lang='".concat(a,"'>\n <span class='&__item-key'>").concat(a,"</span>\n <span class='&__item-title'>").concat(e.j.i18n(t.title),"</span>\n </a>"))}),"<div class='&'>\n <div class='&__input'></div>\n <div class='&__list'>".concat(n.join(""),"</div>\n </div>")}},{key:"__onChangeFilter",value:function(t){this.items.forEach(function(e){var n,a,i=null!=(n=null==(a=e.textContent)?void 0:a.toLowerCase())?n:"";(0,g.attr)(e,"data-hidden","true"!==(0,g.attr)(e,"data-active")&&!i.includes(t.toLowerCase()))})}},{key:"__scrollToActive",value:function(){var t=this.container.querySelector('[data-active="true"]'),e=this.getElm("list");t&&e&&(0,h.scrollIntoViewIfNeeded)(t,e,this.j.od)}},{key:"onClickItem",value:function(t){if("keydown"!==t.type||!("key"in t)||t.key===c.KEY_ENTER){var e=t.target;if(d.Dom.isHTMLElement(e)&&e.getAttribute("data-lang")){var n=(0,g.attr)(e,"data-lang");this.options.onChange(n),this.state.active=n}}}},{key:"__onActiveChange",value:function(){var t=this;this.items.forEach(function(e){return(0,g.attr)(e,"data-active",(0,g.attr)(e,"data-lang")===t.state.active)}),this.__scrollToActive()}}]),e}(f.UIElement);(0,l.__decorate)([(0,u.debounce)()],p.prototype,"__onChangeFilter",null),(0,l.__decorate)([(0,u.watch)(":afterOpen")],p.prototype,"__scrollToActive",null),(0,l.__decorate)([(0,u.watch)(["container:click","container:keydown"])],p.prototype,"onClickItem",null),(0,l.__decorate)([(0,u.watch)("state.active"),(0,u.debounce)()],p.prototype,"__onActiveChange",null),p=(0,l.__decorate)([u.component],p)},33124:function(t,e,n){"use strict";n.d(e,{UITranslateSettings:function(){return g}});var a=n(80294),i=n(20616),r=n(67709),o=n(82749),s=n(18766),l=n(56075),c=n(31635),u=n(65478),d=n(67510),h=n(67082),g=function(t){function e(t,n,r){var s,c,u;return(0,i._)(this,e),s=(0,a._)(this,e,[t]),(0,o._)(s,"state",void 0),(0,o._)(s,"options",void 0),(0,o._)(s,"__sourceList",void 0),(0,o._)(s,"__targetList",void 0),s.state=n,s.options=r,s.__sourceList=new h.UITranslateList(t,{list:r.sourceList,active:n.sourceLang,onChange:function(t){s.state.sourceLang=t,s.options.onChange((0,l._)({},s.state))}}),null==(c=s.getElm("source-list"))||c.appendChild(s.__sourceList.container),s.__targetList=new h.UITranslateList(t,{list:r.targetList,active:n.targetLang,onChange:function(t){s.state.targetLang=t,s.options.onChange((0,l._)({},s.state))}}),null==(u=s.getElm("target-list"))||u.appendChild(s.__targetList.container),s}return(0,s._)(e,t),(0,r._)(e,[{key:"className",value:function(){return"UITranslateSettings"}},{key:"render",value:function(){return"<div>\n <div class='&__list &__source-list'></div>\n <div class='&__arrow'>\n <a class='&__arrow-swap'>*translate-swap*</a>\n </div>\n <div class='&__list &__target-list'></div>\n </div>"}},{key:"__onSwap",value:function(){var t=this.state.sourceLang;this.state.sourceLang=this.state.targetLang,this.state.targetLang=t,this.__sourceList.state.active=this.state.sourceLang,this.__targetList.state.active=this.state.targetLang,this.options.onChange((0,l._)({},this.state))}}]),e}(d.UIElement);(0,c.__decorate)([(0,u.watch)("arrow-swap:click")],g.prototype,"__onSwap",null),g=(0,c.__decorate)([u.component],g)},11886:function(t,e,n){"use strict";function a(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):(function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e})(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}n.d(e,{_:function(){return a}})}},function(t){return t(t.s=73098)}])});
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
package/es5/polyfills.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.24
4
+ * Version: v4.11.26
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
package/esm/config.d.ts CHANGED
@@ -23,6 +23,7 @@ import type { IStyleDefinition } from "./plugins/style/interface";
23
23
  import type { ITemplateDefinition } from "./plugins/templates/interface";
24
24
  import type { ITranslateProviderFactory } from "./plugins/translate/interface";
25
25
  import type { IGoogleTranslateProviderOptions } from "./plugins/translate/interface";
26
+ import type { ICloudTranslateProviderOptions } from "./plugins/translate/interface";
26
27
  import type { IControlType } from "jodit/esm/types/index";
27
28
  declare module 'jodit/esm/config' {
28
29
  interface Config {
@@ -239,8 +240,9 @@ interface Config {
239
240
  translateSelection: string[];
240
241
  translateOptions: string[];
241
242
  };
242
- provider: 'google' | ITranslateProviderFactory;
243
+ provider: 'google' | 'cloud' | ITranslateProviderFactory;
243
244
  googleProviderOptions: IGoogleTranslateProviderOptions;
245
+ cloudProviderOptions: ICloudTranslateProviderOptions;
244
246
  defaultSourceLang: string;
245
247
  defaultTargetLang: string;
246
248
  };
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import type { IGoogleTranslateProviderOptions, ITranslateProviderFactory } from "./interface";
6
+ import type { ICloudTranslateProviderOptions, IGoogleTranslateProviderOptions, ITranslateProviderFactory } from "./interface";
7
7
  declare module 'jodit/esm/config' {
8
8
  interface Config {
9
9
  translate: {
@@ -11,8 +11,9 @@ declare module 'jodit/esm/config' {
11
11
  translateSelection: string[];
12
12
  translateOptions: string[];
13
13
  };
14
- provider: 'google' | ITranslateProviderFactory;
14
+ provider: 'google' | 'cloud' | ITranslateProviderFactory;
15
15
  googleProviderOptions: IGoogleTranslateProviderOptions;
16
+ cloudProviderOptions: ICloudTranslateProviderOptions;
16
17
  defaultSourceLang: string;
17
18
  defaultTargetLang: string;
18
19
  };
@@ -1 +1 @@
1
- import o from"./assets/swap.svg.js";import r from"./assets/translate.svg.js";import{Config as e}from"jodit/esm/config.js";import{Icon as s}from"jodit/esm/core/ui/icon.js";e.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},defaultSourceLang:"",defaultTargetLang:"de"},e.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec(t){t.execCommand("translate")},list:["Options"],childExec(t,n,{control:a}){t.execCommand("translate"+a.name)},mods:{stroke:!1}}},s.set("translate",r).set("translate-swap",o);
1
+ import a from"./assets/swap.svg.js";import r from"./assets/translate.svg.js";import{Config as e}from"jodit/esm/config.js";import{Icon as s}from"jodit/esm/core/ui/icon.js";e.prototype.translate={hotkeys:{translateSelection:["ctrl+shift+o","cmd+shift+o"],translateOptions:["ctrl+shift+p","cmd+shift+p"]},provider:"google",googleProviderOptions:{url:"https://translation.googleapis.com/language/translate/v2",key:""},cloudProviderOptions:{url:"https://cloud.xdsoft.net",key:""},defaultSourceLang:"",defaultTargetLang:"de"},e.prototype.controls.translate={translate:{tooltip:"Translate selected text",icon:"translate",command:"translate",exec(t){t.execCommand("translate")},list:["Options"],childExec(t,n,{control:o}){t.execCommand("translate"+o.name)},mods:{stroke:!1}}},s.set("translate",r).set("translate-swap",a);
@@ -42,6 +42,14 @@ export interface IGoogleTranslateResponse {
42
42
  ];
43
43
  };
44
44
  }
45
+ export interface ICloudTranslateProviderOptions {
46
+ url: string;
47
+ key: string;
48
+ }
49
+ export interface ICloudTranslateResponse {
50
+ success: boolean;
51
+ text: string;
52
+ }
45
53
  declare module 'jodit/esm/types/jodit' {
46
54
  interface IJodit {
47
55
  /**
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IJodit } from "jodit/esm/types/index";
7
+ import type { ITranslateProvider, ITranslateResponse, ITranslateSupportedLanguages } from "../../interface";
8
+ export declare class CloudTranslateProvider implements ITranslateProvider {
9
+ readonly jodit: IJodit;
10
+ constructor(jodit: IJodit);
11
+ private __fetch;
12
+ translate(text: string, source: string, target: string): Promise<ITranslateResponse>;
13
+ supportedLanguages(): Promise<ITranslateSupportedLanguages>;
14
+ }
@@ -0,0 +1 @@
1
+ var h=Object.defineProperty;var n=(c,t)=>h(c,"name",{value:t,configurable:!0});import{IS_PROD as g}from"jodit/esm/core/constants.js";import{assert as p}from"jodit/esm/core/helpers/utils/assert.js";import{languages as u}from"../languages.js";const a=class a{constructor(t){this.jodit=t}__fetch(t,r={}){const o=this.jodit.o.translate.cloudProviderOptions;return p(o,"Set cloudProviderOptions"),this.jodit.fetch(o.url+t+"?key="+o.key,{method:"POST",data:r,contentType:"application/json; charset=utf-8",withCredentials:!1}).then(e=>e.json()).catch(e=>{try{this.jodit.message.error(e.json().message)}catch(s){g||console.error(s)}})}translate(t,r,o){const e={text:t,targetLanguageCode:o};return r&&(e.sourceLanguageCode=r),this.__fetch("/v1/translate",e).then(s=>({text:s.text}))}supportedLanguages(){return Promise.resolve({langs:u})}};n(a,"CloudTranslateProvider");let i=a;export{i as CloudTranslateProvider};
@@ -1 +1 @@
1
- var c=Object.defineProperty;var a=(i,t)=>c(i,"name",{value:t,configurable:!0});import{IS_PROD as l}from"jodit/esm/core/constants.js";import{assert as m}from"jodit/esm/core/helpers/utils/assert.js";import{languages as d}from"../languages.js";const s=class s{constructor(t){this.jodit=t}__fetch(t,r={}){const e=this.jodit.o.translate.googleProviderOptions;return m(e,"Set googleProviderOptions"),this.jodit.fetch(e.url+"?key="+e.key,{method:"POST",data:{...r,ui:this.jodit.o.language},contentType:"application/json; charset=utf-8",withCredentials:!1}).then(o=>o.json()).catch(o=>{try{this.jodit.message.error(o.json().message)}catch(h){l||console.error(h)}})}translate(t,r,e){return this.__fetch("translate",{q:t,source:r,target:e,format:"html"}).then(o=>({text:o.data.translations[0].translatedText}))}supportedLanguages(){return Promise.resolve({langs:d})}};a(s,"GoogleTranslateProvider");let n=s;export{n as GoogleTranslateProvider};
1
+ var h=Object.defineProperty;var n=(c,t)=>h(c,"name",{value:t,configurable:!0});import{IS_PROD as l}from"jodit/esm/core/constants.js";import{assert as m}from"jodit/esm/core/helpers/utils/assert.js";import{languages as d}from"../languages.js";const a=class a{constructor(t){this.jodit=t}__fetch(t,s={}){const o=this.jodit.o.translate.googleProviderOptions;return m(o,"Set googleProviderOptions"),this.jodit.fetch(o.url+"?key="+o.key,{method:"POST",data:{...s,ui:this.jodit.o.language},contentType:"application/json; charset=utf-8",withCredentials:!1}).then(e=>e.json()).catch(e=>{try{this.jodit.message.error(e.json().message)}catch(r){l||console.error(r)}})}translate(t,s,o){const e={q:t,target:o,format:"html"};return s&&(e.source=s),this.__fetch("translate",e).then(r=>({text:r.data.translations[0].translatedText}))}supportedLanguages(){return Promise.resolve({langs:d})}};n(a,"GoogleTranslateProvider");let i=a;export{i as GoogleTranslateProvider};
@@ -4,6 +4,7 @@
4
4
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
6
  export declare const languages: {
7
+ 'Detect language': string;
7
8
  Afrikaans: string;
8
9
  Albanian: string;
9
10
  Amharic: string;
@@ -1 +1 @@
1
- const a={Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"};export{a as languages};
1
+ const a={"Detect language":"auto",Afrikaans:"af",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy","Assamese*":"as","Aymara*":"ay",Azerbaijani:"az","Bambara*":"bm",Basque:"eu",Belarusian:"be",Bengali:"bn","Bhojpuri*":"bho",Bosnian:"bs",Bulgarian:"bg",Catalan:"ca",Cebuano:"ceb","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da","Dhivehi*":"dv","Dogri*":"doi",Dutch:"nl",English:"en",Esperanto:"eo",Estonian:"et","Ewe*":"ee","Filipino (Tagalog)":"fil",Finnish:"fi",French:"fr",Frisian:"fy",Galician:"gl",Georgian:"ka",German:"de",Greek:"el","Guarani*":"gn",Gujarati:"gu","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"he",Hindi:"hi",Hmong:"hmn",Hungarian:"hu",Icelandic:"is",Igbo:"ig","Ilocano*":"ilo",Indonesian:"id",Irish:"ga",Italian:"it",Japanese:"ja",Kannada:"kn",Kazakh:"kk",Khmer:"km",Kinyarwanda:"rw","Konkani*":"gom",Korean:"ko","Krio*":"kri",Kurdish:"ku","Kurdish (Sorani)*":"ckb",Kyrgyz:"ky",Lao:"lo",Latin:"la",Latvian:"lv","Lingala*":"ln",Lithuanian:"lt","Luganda*":"lg",Luxembourgish:"lb",Macedonian:"mk","Maithili*":"mai",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Meiteilon (Manipuri)*":"mni-Mtei",Mizo:"lus",Mongolian:"mn","Myanmar (Burmese)":"my",Nepali:"ne",Norwegian:"no","Nyanja (Chichewa)":"ny","Odia (Oriya)":"or","Oromo*":"om",Pashto:"ps",Persian:"fa",Polish:"pl",Portuguese:"pt",Punjabi:"pa","Quechua*":"qu",Romanian:"ro",Russian:"ru",Samoan:"sm","Sanskrit*":"sa","Scots Gaelic":"gd","Sepedi*":"nso",Serbian:"sr",Sesotho:"st",Shona:"sn",Sindhi:"sd","Sinhala (Sinhalese)":"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es",Sundanese:"su",Swahili:"sw",Swedish:"sv","Tagalog (Filipino)":"tl",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th","Tigrinya*":"ti","Tsonga*":"ts",Turkish:"tr",Turkmen:"tk","Twi (Akan)*":"ak",Ukrainian:"uk",Urdu:"ur",Uyghur:"ug",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"};export{a as languages};
@@ -1 +1 @@
1
- var w=Object.defineProperty;var u=(g,t)=>w(g,"name",{value:t,configurable:!0});var P=function(g,t,n,i){var a=arguments.length,s=a<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,n):i,e;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(g,t,n,i);else for(var r=g.length-1;r>=0;r--)(e=g[r])&&(s=(a<3?e(s):a>3?e(t,n,s):e(t,n))||s);return a>3&&s&&Object.defineProperty(t,n,s),s};import"./config.js";import{GoogleTranslateProvider as S}from"./providers/google/google.js";import{UITranslateSettings as x}from"./ui/settings/settings.js";import{getSelectionFragments as y}from"./replace-text-fragments.js";import{persistent as b}from"jodit/esm/core/decorators/index.js";import{isFunction as _}from"jodit/esm/core/helpers/checker/is-function.js";import{isString as f}from"jodit/esm/core/helpers/checker/is-string.js";import{assert as O}from"jodit/esm/core/helpers/utils/assert.js";import{defaultLanguage as h}from"jodit/esm/core/helpers/utils/default-language.js";import{Plugin as C}from"jodit/esm/core/plugin/index.js";import{Button as d}from"jodit/esm/core/ui/button/button/button.js";import{JoditPro as L}from"../../jodit-pro.js";const m=class m extends C{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(f(t)){if(t==="google")return new S(this.j);throw new Error("Unknown provider")}return O(_(t),"Provider must be a function"),t(this.jodit)}afterInit(t){const n=h(t.o.language,L.defaultOptions.language),i=h(t.o.language,n),a=this.__getProvider();t.registerCommand("translateOptions",{exec:u(async()=>{let s=this.state;const e=t.dlg();e.setHeader("Translate options");const r=await a.supportedLanguages(),l="source"in r?r.source.langs:r.langs,o="target"in r?r.target.langs:r.langs,p=new x(e,this.state,{sourceList:l,targetList:o,onChange(v){s=v}});e.setContent(p),e.setFooter([d(t,"cancel","Cancel").onAction(()=>e.close()),d(t,"ok","Save","primary").onAction(()=>{this.state=s,e.close()})]),p.bindDestruct(e),e.setSize(500,400).open(!0)},"exec"),hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:u(()=>{const s=y(t).filter(l=>l.text.trim().length>0);if(!s.length){t.message.error("Select text for translate");return}const e=!this.state.sourceLang||this.state.sourceLang==="auto"?i:this.state.sourceLang,r=this.state.targetLang;return Promise.all(s.map(l=>{a.translate(l.text,e,r).then(o=>{l.replace(o.text)}).catch(o=>{t.message.error(f(o)?o:o.message)})})).then(()=>{t.synchronizeValues()})},"exec"),hotkeys:t.o.translate.hotkeys.translateSelection})}beforeDestruct(t){}};u(m,"Translate");let c=m;c.requires=["license"],P([b],c.prototype,"state",void 0),L.plugins.add("translate",c);export{c as Translate};
1
+ var f=Object.defineProperty;var l=(i,t)=>f(i,"name",{value:t,configurable:!0});var d=function(i,t,a,o){var r=arguments.length,e=r<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,a):o,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")e=Reflect.decorate(i,t,a,o);else for(var n=i.length-1;n>=0;n--)(s=i[n])&&(e=(r<3?s(e):r>3?s(t,a,e):s(t,a))||e);return r>3&&e&&Object.defineProperty(t,a,e),e};import"./config.js";import{CloudTranslateProvider as L}from"./providers/cloud/cloud.js";import{GoogleTranslateProvider as v}from"./providers/google/google.js";import{UITranslateSettings as w}from"./ui/settings/settings.js";import{getSelectionFragments as P}from"./replace-text-fragments.js";import{persistent as S}from"jodit/esm/core/decorators/index.js";import{isFunction as x}from"jodit/esm/core/helpers/checker/is-function.js";import{isString as m}from"jodit/esm/core/helpers/checker/is-string.js";import{assert as y}from"jodit/esm/core/helpers/utils/assert.js";import{Plugin as b}from"jodit/esm/core/plugin/index.js";import{Button as p}from"jodit/esm/core/ui/button/button/button.js";import{JoditPro as _}from"../../jodit-pro.js";const g=class g extends b{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(m(t))switch(t){case"google":return new v(this.j);case"cloud":return new L(this.j);default:throw new Error("Unknown provider")}return y(x(t),"Provider must be a function"),t(this.jodit)}afterInit(t){const a=this.__getProvider();t.registerCommand("translateOptions",{exec:l(async()=>{let o=this.state;const r=t.dlg();r.setHeader("Translate options");const e=await a.supportedLanguages(),s="source"in e?e.source.langs:e.langs,n="target"in e?e.target.langs:e.langs,u=new w(r,this.state,{sourceList:s,targetList:n,onChange(h){o=h}});r.setContent(u),r.setFooter([p(t,"cancel","Cancel").onAction(()=>r.close()),p(t,"ok","Save","primary").onAction(()=>{this.state=o,r.close()})]),u.bindDestruct(r),r.setSize(500,400).open(!0)},"exec"),hotkeys:t.o.translate.hotkeys.translateOptions}).registerCommand("translate",{exec:l(()=>{const o=P(t).filter(s=>s.text.trim().length>0);if(!o.length){t.message.error("Select text for translate");return}const r=!this.state.sourceLang||this.state.sourceLang==="auto"?"":this.state.sourceLang,e=this.state.targetLang;return Promise.all(o.map(s=>{a.translate(s.text,r,e).then(n=>{s.replace(n.text)}).catch(n=>{t.message.error(m(n)?n:n.message)})})).then(()=>{t.synchronizeValues()})},"exec"),hotkeys:t.o.translate.hotkeys.translateSelection})}beforeDestruct(t){}};l(g,"Translate");let c=g;c.requires=["license"],d([S],c.prototype,"state",void 0),_.plugins.add("translate",c);export{c as Translate};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit-pro",
3
- "version": "4.11.24",
3
+ "version": "4.11.26",
4
4
  "author": "Chupurnov Valerii <chupurnov@gmail.com>",
5
5
  "homepage": "https://xdsoft.net/jodit/pro/",
6
6
  "bugs": {
package/types/config.d.ts CHANGED
@@ -23,6 +23,7 @@ import type { IStyleDefinition } from "./plugins/style/interface";
23
23
  import type { ITemplateDefinition } from "./plugins/templates/interface";
24
24
  import type { ITranslateProviderFactory } from "./plugins/translate/interface";
25
25
  import type { IGoogleTranslateProviderOptions } from "./plugins/translate/interface";
26
+ import type { ICloudTranslateProviderOptions } from "./plugins/translate/interface";
26
27
  import type { IControlType } from "jodit/esm/types/index";
27
28
  declare module 'jodit/esm/config' {
28
29
  interface Config {
@@ -239,8 +240,9 @@ interface Config {
239
240
  translateSelection: string[];
240
241
  translateOptions: string[];
241
242
  };
242
- provider: 'google' | ITranslateProviderFactory;
243
+ provider: 'google' | 'cloud' | ITranslateProviderFactory;
243
244
  googleProviderOptions: IGoogleTranslateProviderOptions;
245
+ cloudProviderOptions: ICloudTranslateProviderOptions;
244
246
  defaultSourceLang: string;
245
247
  defaultTargetLang: string;
246
248
  };
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license information.
4
4
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
- import type { IGoogleTranslateProviderOptions, ITranslateProviderFactory } from "./interface";
6
+ import type { ICloudTranslateProviderOptions, IGoogleTranslateProviderOptions, ITranslateProviderFactory } from "./interface";
7
7
  declare module 'jodit/esm/config' {
8
8
  interface Config {
9
9
  translate: {
@@ -11,8 +11,9 @@ declare module 'jodit/esm/config' {
11
11
  translateSelection: string[];
12
12
  translateOptions: string[];
13
13
  };
14
- provider: 'google' | ITranslateProviderFactory;
14
+ provider: 'google' | 'cloud' | ITranslateProviderFactory;
15
15
  googleProviderOptions: IGoogleTranslateProviderOptions;
16
+ cloudProviderOptions: ICloudTranslateProviderOptions;
16
17
  defaultSourceLang: string;
17
18
  defaultTargetLang: string;
18
19
  };
@@ -42,6 +42,14 @@ export interface IGoogleTranslateResponse {
42
42
  ];
43
43
  };
44
44
  }
45
+ export interface ICloudTranslateProviderOptions {
46
+ url: string;
47
+ key: string;
48
+ }
49
+ export interface ICloudTranslateResponse {
50
+ success: boolean;
51
+ text: string;
52
+ }
45
53
  declare module 'jodit/esm/types/jodit' {
46
54
  interface IJodit {
47
55
  /**
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { IJodit } from "jodit/esm/types/index";
7
+ import type { ITranslateProvider, ITranslateResponse, ITranslateSupportedLanguages } from "../../interface";
8
+ export declare class CloudTranslateProvider implements ITranslateProvider {
9
+ readonly jodit: IJodit;
10
+ constructor(jodit: IJodit);
11
+ private __fetch;
12
+ translate(text: string, source: string, target: string): Promise<ITranslateResponse>;
13
+ supportedLanguages(): Promise<ITranslateSupportedLanguages>;
14
+ }
@@ -4,6 +4,7 @@
4
4
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
5
  */
6
6
  export declare const languages: {
7
+ 'Detect language': string;
7
8
  Afrikaans: string;
8
9
  Albanian: string;
9
10
  Amharic: string;