jodit-pro 4.12.38 → 4.12.40

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 (306) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.js +4 -4
  3. package/es2015/jodit.js +11 -4
  4. package/es2015/jodit.min.js +3 -3
  5. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  8. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  11. package/es2015/plugins/backup/backup.css +1 -1
  12. package/es2015/plugins/backup/backup.js +1 -1
  13. package/es2015/plugins/backup/backup.min.js +1 -1
  14. package/es2015/plugins/button-generator/button-generator.css +1 -1
  15. package/es2015/plugins/button-generator/button-generator.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  17. package/es2015/plugins/change-case/change-case.js +1 -1
  18. package/es2015/plugins/change-case/change-case.min.js +1 -1
  19. package/es2015/plugins/color-picker/color-picker.css +1 -1
  20. package/es2015/plugins/color-picker/color-picker.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  22. package/es2015/plugins/emoji/emoji.css +1 -1
  23. package/es2015/plugins/emoji/emoji.js +1 -1
  24. package/es2015/plugins/emoji/emoji.min.js +1 -1
  25. package/es2015/plugins/export-docs/export-docs.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  27. package/es2015/plugins/finder/finder.css +1 -1
  28. package/es2015/plugins/finder/finder.js +19 -3
  29. package/es2015/plugins/finder/finder.min.js +2 -2
  30. package/es2015/plugins/google-maps/google-maps.css +1 -1
  31. package/es2015/plugins/google-maps/google-maps.js +1 -1
  32. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  33. package/es2015/plugins/google-search/google-search.js +1 -1
  34. package/es2015/plugins/google-search/google-search.min.js +1 -1
  35. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  36. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  37. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  38. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  40. package/es2015/plugins/keyboard/keyboard.css +1 -1
  41. package/es2015/plugins/keyboard/keyboard.js +1 -1
  42. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  43. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  44. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  45. package/es2015/plugins/page-break/page-break.js +1 -1
  46. package/es2015/plugins/page-break/page-break.min.js +1 -1
  47. package/es2015/plugins/paste-code/paste-code.css +1 -1
  48. package/es2015/plugins/paste-code/paste-code.js +1 -1
  49. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  50. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  51. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  52. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  53. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  54. package/es2015/plugins/style/style.css +1 -1
  55. package/es2015/plugins/style/style.js +1 -1
  56. package/es2015/plugins/style/style.min.js +1 -1
  57. package/es2015/plugins/templates/templates.css +1 -1
  58. package/es2015/plugins/templates/templates.js +1 -1
  59. package/es2015/plugins/templates/templates.min.js +1 -1
  60. package/es2015/plugins/todo-list/todo-list.css +1 -1
  61. package/es2015/plugins/todo-list/todo-list.js +1 -1
  62. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  63. package/es2015/plugins/translate/translate.css +1 -1
  64. package/es2015/plugins/translate/translate.js +1 -1
  65. package/es2015/plugins/translate/translate.min.js +1 -1
  66. package/es2015/plugins/tune-block/tune-block.css +1 -1
  67. package/es2015/plugins/tune-block/tune-block.js +1 -1
  68. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  69. package/es2018/jodit.fat.min.js +4 -4
  70. package/es2018/jodit.min.js +3 -3
  71. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  72. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  73. package/es2018/plugins/backup/backup.min.js +1 -1
  74. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  75. package/es2018/plugins/change-case/change-case.min.js +1 -1
  76. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  77. package/es2018/plugins/emoji/emoji.min.js +1 -1
  78. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  79. package/es2018/plugins/finder/finder.min.js +2 -2
  80. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  81. package/es2018/plugins/google-search/google-search.min.js +1 -1
  82. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  83. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  84. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  85. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  86. package/es2018/plugins/page-break/page-break.min.js +1 -1
  87. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  88. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  89. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  90. package/es2018/plugins/style/style.min.js +1 -1
  91. package/es2018/plugins/templates/templates.min.js +1 -1
  92. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  93. package/es2018/plugins/translate/translate.min.js +1 -1
  94. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  95. package/es2021/jodit.css +1 -1
  96. package/es2021/jodit.fat.min.js +4 -4
  97. package/es2021/jodit.js +11 -4
  98. package/es2021/jodit.min.js +3 -3
  99. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  100. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  101. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  102. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  103. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  104. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  105. package/es2021/plugins/backup/backup.css +1 -1
  106. package/es2021/plugins/backup/backup.js +1 -1
  107. package/es2021/plugins/backup/backup.min.js +1 -1
  108. package/es2021/plugins/button-generator/button-generator.css +1 -1
  109. package/es2021/plugins/button-generator/button-generator.js +1 -1
  110. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  111. package/es2021/plugins/change-case/change-case.js +1 -1
  112. package/es2021/plugins/change-case/change-case.min.js +1 -1
  113. package/es2021/plugins/color-picker/color-picker.css +1 -1
  114. package/es2021/plugins/color-picker/color-picker.js +1 -1
  115. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  116. package/es2021/plugins/emoji/emoji.css +1 -1
  117. package/es2021/plugins/emoji/emoji.js +1 -1
  118. package/es2021/plugins/emoji/emoji.min.js +1 -1
  119. package/es2021/plugins/export-docs/export-docs.js +1 -1
  120. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  121. package/es2021/plugins/finder/finder.css +1 -1
  122. package/es2021/plugins/finder/finder.js +19 -3
  123. package/es2021/plugins/finder/finder.min.js +2 -2
  124. package/es2021/plugins/google-maps/google-maps.css +1 -1
  125. package/es2021/plugins/google-maps/google-maps.js +1 -1
  126. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  127. package/es2021/plugins/google-search/google-search.js +1 -1
  128. package/es2021/plugins/google-search/google-search.min.js +1 -1
  129. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  130. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  131. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  132. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  133. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  134. package/es2021/plugins/keyboard/keyboard.css +1 -1
  135. package/es2021/plugins/keyboard/keyboard.js +1 -1
  136. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  137. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  138. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  139. package/es2021/plugins/page-break/page-break.js +1 -1
  140. package/es2021/plugins/page-break/page-break.min.js +1 -1
  141. package/es2021/plugins/paste-code/paste-code.css +1 -1
  142. package/es2021/plugins/paste-code/paste-code.js +1 -1
  143. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  144. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  145. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  146. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  147. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  148. package/es2021/plugins/style/style.css +1 -1
  149. package/es2021/plugins/style/style.js +1 -1
  150. package/es2021/plugins/style/style.min.js +1 -1
  151. package/es2021/plugins/templates/templates.css +1 -1
  152. package/es2021/plugins/templates/templates.js +1 -1
  153. package/es2021/plugins/templates/templates.min.js +1 -1
  154. package/es2021/plugins/todo-list/todo-list.css +1 -1
  155. package/es2021/plugins/todo-list/todo-list.js +1 -1
  156. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  157. package/es2021/plugins/translate/translate.css +1 -1
  158. package/es2021/plugins/translate/translate.js +1 -1
  159. package/es2021/plugins/translate/translate.min.js +1 -1
  160. package/es2021/plugins/tune-block/tune-block.css +1 -1
  161. package/es2021/plugins/tune-block/tune-block.js +1 -1
  162. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  163. package/es2021.en/jodit.css +1 -1
  164. package/es2021.en/jodit.fat.min.js +4 -4
  165. package/es2021.en/jodit.js +11 -4
  166. package/es2021.en/jodit.min.js +3 -3
  167. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  168. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  169. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  170. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  171. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  172. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  173. package/es2021.en/plugins/backup/backup.css +1 -1
  174. package/es2021.en/plugins/backup/backup.js +1 -1
  175. package/es2021.en/plugins/backup/backup.min.js +1 -1
  176. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  177. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  178. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  179. package/es2021.en/plugins/change-case/change-case.js +1 -1
  180. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  181. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  182. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  183. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  184. package/es2021.en/plugins/emoji/emoji.css +1 -1
  185. package/es2021.en/plugins/emoji/emoji.js +1 -1
  186. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  187. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  188. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  189. package/es2021.en/plugins/finder/finder.css +1 -1
  190. package/es2021.en/plugins/finder/finder.js +19 -3
  191. package/es2021.en/plugins/finder/finder.min.js +2 -2
  192. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  193. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  194. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  195. package/es2021.en/plugins/google-search/google-search.js +1 -1
  196. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  197. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  198. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  199. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  200. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  201. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  202. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  203. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  204. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  205. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  206. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  207. package/es2021.en/plugins/page-break/page-break.js +1 -1
  208. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  209. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  210. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  211. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  212. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  213. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  214. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  215. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  216. package/es2021.en/plugins/style/style.css +1 -1
  217. package/es2021.en/plugins/style/style.js +1 -1
  218. package/es2021.en/plugins/style/style.min.js +1 -1
  219. package/es2021.en/plugins/templates/templates.css +1 -1
  220. package/es2021.en/plugins/templates/templates.js +1 -1
  221. package/es2021.en/plugins/templates/templates.min.js +1 -1
  222. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  223. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  224. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  225. package/es2021.en/plugins/translate/translate.css +1 -1
  226. package/es2021.en/plugins/translate/translate.js +1 -1
  227. package/es2021.en/plugins/translate/translate.min.js +1 -1
  228. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  229. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  230. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  231. package/es5/jodit.css +2 -2
  232. package/es5/jodit.fat.min.js +2 -2
  233. package/es5/jodit.js +11 -4
  234. package/es5/jodit.min.css +2 -2
  235. package/es5/jodit.min.js +2 -2
  236. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  237. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  238. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  239. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  240. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  241. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  242. package/es5/plugins/backup/backup.css +1 -1
  243. package/es5/plugins/backup/backup.js +1 -1
  244. package/es5/plugins/backup/backup.min.js +1 -1
  245. package/es5/plugins/button-generator/button-generator.css +1 -1
  246. package/es5/plugins/button-generator/button-generator.js +1 -1
  247. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  248. package/es5/plugins/change-case/change-case.js +1 -1
  249. package/es5/plugins/change-case/change-case.min.js +1 -1
  250. package/es5/plugins/color-picker/color-picker.css +1 -1
  251. package/es5/plugins/color-picker/color-picker.js +1 -1
  252. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  253. package/es5/plugins/emoji/emoji.css +1 -1
  254. package/es5/plugins/emoji/emoji.js +1 -1
  255. package/es5/plugins/emoji/emoji.min.js +1 -1
  256. package/es5/plugins/export-docs/export-docs.js +1 -1
  257. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  258. package/es5/plugins/finder/finder.css +1 -1
  259. package/es5/plugins/finder/finder.js +22 -3
  260. package/es5/plugins/finder/finder.min.js +2 -2
  261. package/es5/plugins/google-maps/google-maps.css +1 -1
  262. package/es5/plugins/google-maps/google-maps.js +1 -1
  263. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  264. package/es5/plugins/google-search/google-search.js +1 -1
  265. package/es5/plugins/google-search/google-search.min.js +1 -1
  266. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  267. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  268. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  269. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  270. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  271. package/es5/plugins/keyboard/keyboard.css +1 -1
  272. package/es5/plugins/keyboard/keyboard.js +1 -1
  273. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  274. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  275. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  276. package/es5/plugins/page-break/page-break.js +1 -1
  277. package/es5/plugins/page-break/page-break.min.js +1 -1
  278. package/es5/plugins/paste-code/paste-code.css +1 -1
  279. package/es5/plugins/paste-code/paste-code.js +1 -1
  280. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  281. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  282. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  283. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  284. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  285. package/es5/plugins/style/style.css +1 -1
  286. package/es5/plugins/style/style.js +1 -1
  287. package/es5/plugins/style/style.min.js +1 -1
  288. package/es5/plugins/templates/templates.css +1 -1
  289. package/es5/plugins/templates/templates.js +1 -1
  290. package/es5/plugins/templates/templates.min.js +1 -1
  291. package/es5/plugins/todo-list/todo-list.css +1 -1
  292. package/es5/plugins/todo-list/todo-list.js +1 -1
  293. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  294. package/es5/plugins/translate/translate.css +1 -1
  295. package/es5/plugins/translate/translate.js +1 -1
  296. package/es5/plugins/translate/translate.min.js +1 -1
  297. package/es5/plugins/tune-block/tune-block.css +1 -1
  298. package/es5/plugins/tune-block/tune-block.js +1 -1
  299. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  300. package/es5/polyfills.fat.min.js +1 -1
  301. package/es5/polyfills.js +1 -1
  302. package/es5/polyfills.min.js +1 -1
  303. package/esm/plugins/finder/browser.d.ts +10 -1
  304. package/esm/plugins/finder/browser.js +1 -1
  305. package/package.json +1 -1
  306. package/types/plugins/finder/browser.d.ts +10 -1
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
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.12.38
4
+ * Version: v4.12.40
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -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 { CanUndef, IFileBrowserCallBackData, IFileBrowserDataProvider, IFileBrowserItemWrapper, IProgressBar, IUIGroup } from "jodit/esm/types/index";
6
+ import type { CanUndef, IFileBrowserAnswer, IFileBrowserCallBackData, IFileBrowserDataProvider, IFileBrowserItemWrapper, IProgressBar, IUIGroup } from "jodit/esm/types/index";
7
7
  import "./ui/assets/icons/index";
8
8
  import { ContextMenuManager } from "./helpers/context-menu";
9
9
  import { LoadingManager } from "./helpers/loading-manager";
@@ -30,6 +30,15 @@ export declare class FileBrowserPro extends Dialog implements IFileBrowserPro {
30
30
  lock(name?: string): boolean;
31
31
  unlock(): boolean;
32
32
  status(message: string | Error, success?: boolean): void;
33
+ /**
34
+ * Upload error handler bound to the uploader. The uploader calls it with
35
+ * either an `Error` or the raw connector answer. `status` alone only
36
+ * understands string/Error, so a raw answer — whose text lives in
37
+ * `data.messages`, not `.message` — was silently dropped and the user saw
38
+ * no error. Mirror the core file-browser: pull the message out of the
39
+ * answer via the data provider and show it as an error.
40
+ */
41
+ errorHandler(resp: Error | IFileBrowserAnswer): void;
33
42
  private header;
34
43
  panel: UIBrowserPanel;
35
44
  files: IUIGroup;
@@ -1 +1 @@
1
- var E=Object.defineProperty;var d=(m,e)=>E(m,"name",{value:e,configurable:!0});var u,o=function(m,e,t,s){var i=arguments.length,n=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(m,e,t,s);else for(var l=m.length-1;l>=0;l--)(h=m[l])&&(n=(i<3?h(n):i>3?h(e,t,n):h(e,t))||n);return i>3&&n&&Object.defineProperty(e,t,n),n};import"./ui/assets/icons/index.js";import{ContextMenuManager as M}from"./helpers/context-menu.js";import{parentPath as c}from"./helpers/helpers.js";import{HistoryManager as S}from"./helpers/history-manager.js";import{LoadingManager as F}from"./helpers/loading-manager.js";import{PersistentStore as _}from"./helpers/persistent-store.js";import{StateManager as C}from"./helpers/state-manager.js";import{UIBrowserHeader as I}from"./ui/header/header.js";import{UILightBox as B}from"./ui/lightboox/lightbox.js";import{UIBrowserPanel as O}from"./ui/panel/panel.js";import{UIProgress as L}from"./ui/progress/progress.js";import{Config as p}from"jodit/esm/config.js";import{IS_PROD as x,KEY_DELETE as D,KEY_DOWN as b,KEY_ENTER as k,KEY_LEFT as y,KEY_RIGHT as f,KEY_UP as U}from"jodit/esm/core/constants.js";import{autobind as g,cache as K,component as N,derive as z,watch as a}from"jodit/esm/core/decorators/index.js";import{ConfigProto as v,css as T,isAbortError as j,isString as P,isValidName as R}from"jodit/esm/core/helpers/index.js";import{Dlgs as H}from"jodit/esm/core/traits/dlgs.js";import{Dom as W,observable as G}from"jodit/esm/modules/index.js";import{Dialog as Y}from"jodit/esm/modules/dialog/index.js";import{makeDataProvider as A}from"jodit/esm/modules/file-browser/factories.js";import{openImageEditor as J}from"jodit/esm/modules/image-editor/image-editor.js";import{JoditPro as w}from"../../jodit-pro.js";import{license as V}from"../license/license.js";let r=(u=class extends Y{className(){return"FileBrowserPro"}lock(e="any"){return this.container.classList.add("jodit_disabled"),super.lock(e)}unlock(){return this.container.classList.remove("jodit_disabled"),super.unlock()}status(e,t=!(e instanceof Error)){j(e)||(!x&&!P(e)&&console.error(e),this.message.message(P(e)?e:e.message,t?"success":"error",this.options.howLongShowMsg))}get progressbar(){return new L(this,this.stateManager.state)}constructor(e){super(v(Object.assign(e||{},{resizable:!0,draggable:!0,toolbarButtons:e?.toolbarButtons||p.defaultOptions.filebrowser.buttons,buttons:w.atom(["filebrowser.settings","fullsize","dialog.close"])}),p.defaultOptions.filebrowser)),this.dataProvider=A(this,this.options),this.state=G({onSelectCallBack:null,theme:"default",showSideBar:!0,showFavorites:!0,showSettings:!1,showPreview:!1,withFolders:!0,foldersPosition:"bottom",info:"",metaInfo:null,currentPath:"",currentSource:"",currentBaseUrl:"",tree:[],activeElements:[],favorites:[],progress:0,lastSelectedIndex:0,elements:[],messages:[],sources:[],view:"tiles",tileSize:"default",sortBy:"name-asc",filterWord:"",onlyImages:!1}),this.persistent=new _(this,this.state),this.loadingManager=new F(this,this.state),this.stateManager=new C(this.state),this.historyManager=new S(this,this.state),this.contextMenuManager=new M(this),this.header=new I(this,this.options,this.stateManager),this.panel=new O(this,this.stateManager),this.files=this.panel,this.tree=this.panel,V.make(this),!this.persistent.theme&&this.options.theme&&(this.persistent.theme=this.options.theme),this.panel.append(this.progressbar),this.toolbar.setMod("mode","header"),this.setSize(Math.min(this.options.width,screen.width),Math.min(this.options.height,screen.height)).setHeader(this.header),this.onResizeWindow(),this.initUploader(),this.onChangeTheme(),this.fullFillOptions(),this.dataProvider.onProgress(t=>{t===0&&(t=30),this.state.progress=t}),this.e.on("beforeClose",this.removeGlobalListeners),this.e.fire("afterInit"),w.prototype.afterInitHook.call(this)}addDisclaimer(e){this.dialog.appendChild(e)}async open(e=this.o.defaultCallback,t){return this.state.onlyImages=!!t,this.prepareOpening(e),super.open(this.panel.container),this.e.fire("update.filebrowser")}onResizeWindow(){T(this.dialog,{maxWidth:screen.width,minHeight:Math.min(this.options.height,screen.height),minWidth:Math.min(this.options.width,screen.width)})}onChangePath(){const{currentPath:e,currentSource:t}=this.state;this.uploader.setPath(e),this.uploader.setSource(t)}onChangeTheme(){this.setMod("theme",this.state.theme),this.header.setMod("theme",this.state.theme),this.panel.setMod("theme",this.state.theme),this.options.theme=this.state.theme}onToggleSettings(){this.state.showSettings=!this.state.showSettings}prepareOpening(e){this.registerGlobalListeners(),e&&(this.state.onSelectCallBack=t=>{this.close(),e(t)}),this.persistent.syncWithState()}registerGlobalListeners(){this.e.on(this.ow,"keydown",this.onKeyPress)}onKeyPress(e){const{activeElement:t}=this.od;if(!this.state.activeElements.length||!t||!W.isOrContains(this.panel.items.container,t))return;const s=this.state.elements;switch(e.key){case k:return this.onChooseItems();case D:return this.onFileRemove();case f:case y:case b:case U:{const i=e.key===f||e.key===b,n=this.state.lastSelectedIndex;let h;if([f,y].includes(e.key))i?h=s[n+1]?n+1:0:h=s[n-1]?n-1:s.length-1;else{const{countInRow:l}=this.panel;h=Math.round(((n+1)/l+(i?1:-1))*l-1)}return s[h]&&this.stateManager.addActive(s[h],e.shiftKey),!1}}}removeGlobalListeners(){this.e.off(this.ow,"keydown",this.onKeyPress)}onFileRemove(){this.state.activeElements.length&&this.confirm("Are you sure?","Delete",e=>{e&&this.__itemsRemove(this.state.activeElements)}).bindDestruct(this)}__itemsRemove(e){if(!e.length)return Promise.resolve();const t=[];return e.forEach(s=>{var i;t.push(s.type==="folder"?this.__folderRemove(c(s.path),(i=s.name)!==null&&i!==void 0?i:"",s.sourceName):this.__removeFile(s.file||s.name||"",s.sourceName))}),this.state.activeElements.forEach(s=>{this.stateManager.isFavorite(s)&&this.stateManager.toggleFavorite(s)}),this.state.activeElements=[],Promise.allSettled(t).then(()=>Promise.allSettled([this.loadingManager.loadItems(),this.loadingManager.loadFolders()]))}__removeFile(e,t){return this.dataProvider.fileRemove(this.state.currentPath,e,t).then(s=>{this.status(s||this.i18n('File "%s" was deleted',e),!0)}).catch(this.status)}__folderRemove(e,t,s){return this.dataProvider.folderRemove(e,t,s).then(i=>{this.status(i||this.i18n('Folder "%s" was deleted',t),!0),this.state.currentPath===e&&(this.state.currentPath=c(e),this.state.currentSource=s)}).catch(this.status)}onFileEdit(){if(this.state.activeElements.length===1){const[e]=this.state.activeElements;J.call(this,e.fileURL,e.file||"",e.path,e.sourceName,void 0,this.status)}}onFolderRename(e){this.prompt("Enter new name","Rename",t=>{if(!R(t)||t===e.name)return this.status(this.i18n("Enter new name")),!1;this.dataProvider.folderRename(c(e.path),e.name,t,e.sourceName).then(s=>{this.state.activeElements=[],this.status(s,!0),this.state.currentPath=c(e.path)+"/"+t,this.state.currentSource=e.sourceName,this.historyManager.updateCurrent(),this.loadingManager.loadFolders()}).catch(this.status)},this.i18n("type name"),e.name).bindDestruct(this)}onFolderRemove(e){this.confirm("Are you sure?","Delete",t=>{t&&this.__itemsRemove([{type:"folder",name:e.name,path:e.path,sourceName:e.sourceName}])}).bindDestruct(this)}onFolderCreate(e){this.prompt("Enter Directory name","Create directory",t=>{const s=e.path||"/";this.dataProvider.createFolder(t,e.path||"/",e.sourceName).then(()=>{this.state.currentSource===e.sourceName&&this.state.currentPath===s?this.e.fire("update.filebrowser"):(this.state.currentSource=e.sourceName,this.state.currentPath=s),this.historyManager.updateCurrent()},this.status)},this.i18n("type name")).bindDestruct(this)}onFileRename(e){const t=e.file||e.name||"";this.state.activeElements.length===1&&t&&this.prompt("Enter new name","Rename",s=>{if(!R(s))return this.status(this.i18n("Enter new name")),!1;this.dataProvider.fileRename(this.state.currentPath,t,s,this.state.currentSource).then(i=>{this.state.activeElements=[],this.status(i,!0),this.loadingManager.loadItems()}).catch(this.status)},this.i18n("type name"),t).bindDestruct(this)}onChooseItems(){const e=this.stateManager.state.activeElements;if(e.length){if(e[0].type==="folder"){this.state.currentPath=this.state.currentPath+"/"+e[0].name,this.state.currentSource=e[0].sourceName,this.e.fire("afterOpenFolder.filebrowser");return}this.state.onSelectCallBack?this.stateManager.callSelectHandler():this.onOpenLightBox(e[0])}}onOpenLightBox(e){B.open(this,e,this.state.elements)}initUploader(){const e=this,t=v(e.o.uploader||{},p.defaultOptions.uploader),s=d(()=>this.loadingManager.loadItems(),"uploadHandler");e.uploader=e.getInstance("Uploader",t),e.uploader.bind(e.panel.container,s,e.status),e.e.on("bindUploader.filebrowser",i=>{e.uploader.bind(i,s,e.status)})}destruct(){this.removeGlobalListeners(),this.header.destruct(),this.panel.destruct(),super.destruct()}fullFillOptions(){["getLocalFileByUrl","crop","resize","create","fileMove","folderMove","fileRename","folderRename","fileRemove","folderRemove","folder","items","permissions"].forEach(t=>{this.options[t]!=null&&(this.options[t]=v(this.options[t],this.o.ajax))})}},d(u,"FileBrowserPro"),u);o([g],r.prototype,"status",null),o([K],r.prototype,"progressbar",null),o([a(":resize",{context:window})],r.prototype,"onResizeWindow",null),o([a(["state.currentPath","state.currentSource"])],r.prototype,"onChangePath",null),o([a("state.theme")],r.prototype,"onChangeTheme",null),o([a(":toggleSettings.filebrowser")],r.prototype,"onToggleSettings",null),o([g],r.prototype,"onKeyPress",null),o([g],r.prototype,"removeGlobalListeners",null),o([a(":fileRemove.filebrowser")],r.prototype,"onFileRemove",null),o([a(":edit.filebrowser")],r.prototype,"onFileEdit",null),o([a(":folderRename.filebrowser")],r.prototype,"onFolderRename",null),o([a(":folderRemove.filebrowser")],r.prototype,"onFolderRemove",null),o([a(":folderCreate.filebrowser")],r.prototype,"onFolderCreate",null),o([a(":fileRename.filebrowser")],r.prototype,"onFileRename",null),o([a(":select.filebrowser")],r.prototype,"onChooseItems",null),o([a(":openLightBox.filebrowser")],r.prototype,"onOpenLightBox",null),r=o([N,z(H)],r);Object.defineProperty(w.modules,"FileBrowserPro",{value:r,writable:!1,enumerable:!0,configurable:!0});export{r as FileBrowserPro};
1
+ var M=Object.defineProperty;var p=(m,e)=>M(m,"name",{value:e,configurable:!0});var u,i=function(m,e,t,s){var o=arguments.length,n=o<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(m,e,t,s);else for(var l=m.length-1;l>=0;l--)(h=m[l])&&(n=(o<3?h(n):o>3?h(e,t,n):h(e,t))||n);return o>3&&n&&Object.defineProperty(e,t,n),n};import"./ui/assets/icons/index.js";import{ContextMenuManager as S}from"./helpers/context-menu.js";import{parentPath as c}from"./helpers/helpers.js";import{HistoryManager as F}from"./helpers/history-manager.js";import{LoadingManager as _}from"./helpers/loading-manager.js";import{PersistentStore as C}from"./helpers/persistent-store.js";import{StateManager as I}from"./helpers/state-manager.js";import{UIBrowserHeader as B}from"./ui/header/header.js";import{UILightBox as O}from"./ui/lightboox/lightbox.js";import{UIBrowserPanel as L}from"./ui/panel/panel.js";import{UIProgress as x}from"./ui/progress/progress.js";import{Config as f}from"jodit/esm/config.js";import{IS_PROD as D,KEY_DELETE as k,KEY_DOWN as b,KEY_ENTER as H,KEY_LEFT as y,KEY_RIGHT as g,KEY_UP as U}from"jodit/esm/core/constants.js";import{autobind as d,cache as K,component as N,derive as z,watch as a}from"jodit/esm/core/decorators/index.js";import{ConfigProto as v,css as T,isAbortError as P,isString as E,isValidName as R}from"jodit/esm/core/helpers/index.js";import{Dlgs as j}from"jodit/esm/core/traits/dlgs.js";import{Dom as W,observable as G}from"jodit/esm/modules/index.js";import{Dialog as Y}from"jodit/esm/modules/dialog/index.js";import{makeDataProvider as A}from"jodit/esm/modules/file-browser/factories.js";import{openImageEditor as J}from"jodit/esm/modules/image-editor/image-editor.js";import{JoditPro as w}from"../../jodit-pro.js";import{license as V}from"../license/license.js";let r=(u=class extends Y{className(){return"FileBrowserPro"}lock(e="any"){return this.container.classList.add("jodit_disabled"),super.lock(e)}unlock(){return this.container.classList.remove("jodit_disabled"),super.unlock()}status(e,t=!(e instanceof Error)){P(e)||(!D&&!E(e)&&console.error(e),this.message.message(E(e)?e:e.message,t?"success":"error",this.options.howLongShowMsg))}errorHandler(e){P(e)||this.status(e instanceof Error?this.i18n(e.message):this.dataProvider.getMessage(e),!1)}get progressbar(){return new x(this,this.stateManager.state)}constructor(e){super(v(Object.assign(e||{},{resizable:!0,draggable:!0,toolbarButtons:e?.toolbarButtons||f.defaultOptions.filebrowser.buttons,buttons:w.atom(["filebrowser.settings","fullsize","dialog.close"])}),f.defaultOptions.filebrowser)),this.dataProvider=A(this,this.options),this.state=G({onSelectCallBack:null,theme:"default",showSideBar:!0,showFavorites:!0,showSettings:!1,showPreview:!1,withFolders:!0,foldersPosition:"bottom",info:"",metaInfo:null,currentPath:"",currentSource:"",currentBaseUrl:"",tree:[],activeElements:[],favorites:[],progress:0,lastSelectedIndex:0,elements:[],messages:[],sources:[],view:"tiles",tileSize:"default",sortBy:"name-asc",filterWord:"",onlyImages:!1}),this.persistent=new C(this,this.state),this.loadingManager=new _(this,this.state),this.stateManager=new I(this.state),this.historyManager=new F(this,this.state),this.contextMenuManager=new S(this),this.header=new B(this,this.options,this.stateManager),this.panel=new L(this,this.stateManager),this.files=this.panel,this.tree=this.panel,V.make(this),!this.persistent.theme&&this.options.theme&&(this.persistent.theme=this.options.theme),this.panel.append(this.progressbar),this.toolbar.setMod("mode","header"),this.setSize(Math.min(this.options.width,screen.width),Math.min(this.options.height,screen.height)).setHeader(this.header),this.onResizeWindow(),this.initUploader(),this.onChangeTheme(),this.fullFillOptions(),this.dataProvider.onProgress(t=>{t===0&&(t=30),this.state.progress=t}),this.e.on("beforeClose",this.removeGlobalListeners),this.e.fire("afterInit"),w.prototype.afterInitHook.call(this)}addDisclaimer(e){this.dialog.appendChild(e)}async open(e=this.o.defaultCallback,t){return this.state.onlyImages=!!t,this.prepareOpening(e),super.open(this.panel.container),this.e.fire("update.filebrowser")}onResizeWindow(){T(this.dialog,{maxWidth:screen.width,minHeight:Math.min(this.options.height,screen.height),minWidth:Math.min(this.options.width,screen.width)})}onChangePath(){const{currentPath:e,currentSource:t}=this.state;this.uploader.setPath(e),this.uploader.setSource(t)}onChangeTheme(){this.setMod("theme",this.state.theme),this.header.setMod("theme",this.state.theme),this.panel.setMod("theme",this.state.theme),this.options.theme=this.state.theme}onToggleSettings(){this.state.showSettings=!this.state.showSettings}prepareOpening(e){this.registerGlobalListeners(),e&&(this.state.onSelectCallBack=t=>{this.close(),e(t)}),this.persistent.syncWithState()}registerGlobalListeners(){this.e.on(this.ow,"keydown",this.onKeyPress)}onKeyPress(e){const{activeElement:t}=this.od;if(!this.state.activeElements.length||!t||!W.isOrContains(this.panel.items.container,t))return;const s=this.state.elements;switch(e.key){case H:return this.onChooseItems();case k:return this.onFileRemove();case g:case y:case b:case U:{const o=e.key===g||e.key===b,n=this.state.lastSelectedIndex;let h;if([g,y].includes(e.key))o?h=s[n+1]?n+1:0:h=s[n-1]?n-1:s.length-1;else{const{countInRow:l}=this.panel;h=Math.round(((n+1)/l+(o?1:-1))*l-1)}return s[h]&&this.stateManager.addActive(s[h],e.shiftKey),!1}}}removeGlobalListeners(){this.e.off(this.ow,"keydown",this.onKeyPress)}onFileRemove(){this.state.activeElements.length&&this.confirm("Are you sure?","Delete",e=>{e&&this.__itemsRemove(this.state.activeElements)}).bindDestruct(this)}__itemsRemove(e){if(!e.length)return Promise.resolve();const t=[];return e.forEach(s=>{var o;t.push(s.type==="folder"?this.__folderRemove(c(s.path),(o=s.name)!==null&&o!==void 0?o:"",s.sourceName):this.__removeFile(s.file||s.name||"",s.sourceName))}),this.state.activeElements.forEach(s=>{this.stateManager.isFavorite(s)&&this.stateManager.toggleFavorite(s)}),this.state.activeElements=[],Promise.allSettled(t).then(()=>Promise.allSettled([this.loadingManager.loadItems(),this.loadingManager.loadFolders()]))}__removeFile(e,t){return this.dataProvider.fileRemove(this.state.currentPath,e,t).then(s=>{this.status(s||this.i18n('File "%s" was deleted',e),!0)}).catch(this.status)}__folderRemove(e,t,s){return this.dataProvider.folderRemove(e,t,s).then(o=>{this.status(o||this.i18n('Folder "%s" was deleted',t),!0),this.state.currentPath===e&&(this.state.currentPath=c(e),this.state.currentSource=s)}).catch(this.status)}onFileEdit(){if(this.state.activeElements.length===1){const[e]=this.state.activeElements;J.call(this,e.fileURL,e.file||"",e.path,e.sourceName,void 0,this.status)}}onFolderRename(e){this.prompt("Enter new name","Rename",t=>{if(!R(t)||t===e.name)return this.status(this.i18n("Enter new name")),!1;this.dataProvider.folderRename(c(e.path),e.name,t,e.sourceName).then(s=>{this.state.activeElements=[],this.status(s,!0),this.state.currentPath=c(e.path)+"/"+t,this.state.currentSource=e.sourceName,this.historyManager.updateCurrent(),this.loadingManager.loadFolders()}).catch(this.status)},this.i18n("type name"),e.name).bindDestruct(this)}onFolderRemove(e){this.confirm("Are you sure?","Delete",t=>{t&&this.__itemsRemove([{type:"folder",name:e.name,path:e.path,sourceName:e.sourceName}])}).bindDestruct(this)}onFolderCreate(e){this.prompt("Enter Directory name","Create directory",t=>{const s=e.path||"/";this.dataProvider.createFolder(t,e.path||"/",e.sourceName).then(()=>{this.state.currentSource===e.sourceName&&this.state.currentPath===s?this.e.fire("update.filebrowser"):(this.state.currentSource=e.sourceName,this.state.currentPath=s),this.historyManager.updateCurrent()},this.status)},this.i18n("type name")).bindDestruct(this)}onFileRename(e){const t=e.file||e.name||"";this.state.activeElements.length===1&&t&&this.prompt("Enter new name","Rename",s=>{if(!R(s))return this.status(this.i18n("Enter new name")),!1;this.dataProvider.fileRename(this.state.currentPath,t,s,this.state.currentSource).then(o=>{this.state.activeElements=[],this.status(o,!0),this.loadingManager.loadItems()}).catch(this.status)},this.i18n("type name"),t).bindDestruct(this)}onChooseItems(){const e=this.stateManager.state.activeElements;if(e.length){if(e[0].type==="folder"){this.state.currentPath=this.state.currentPath+"/"+e[0].name,this.state.currentSource=e[0].sourceName,this.e.fire("afterOpenFolder.filebrowser");return}this.state.onSelectCallBack?this.stateManager.callSelectHandler():this.onOpenLightBox(e[0])}}onOpenLightBox(e){O.open(this,e,this.state.elements)}initUploader(){const e=this,t=v(e.o.uploader||{},f.defaultOptions.uploader),s=p(()=>this.loadingManager.loadItems(),"uploadHandler");e.uploader=e.getInstance("Uploader",t),e.uploader.bind(e.panel.container,s,e.errorHandler),e.e.on("bindUploader.filebrowser",o=>{e.uploader.bind(o,s,e.errorHandler)})}destruct(){this.removeGlobalListeners(),this.header.destruct(),this.panel.destruct(),super.destruct()}fullFillOptions(){["getLocalFileByUrl","crop","resize","create","fileMove","folderMove","fileRename","folderRename","fileRemove","folderRemove","folder","items","permissions"].forEach(t=>{this.options[t]!=null&&(this.options[t]=v(this.options[t],this.o.ajax))})}},p(u,"FileBrowserPro"),u);i([d],r.prototype,"status",null),i([d],r.prototype,"errorHandler",null),i([K],r.prototype,"progressbar",null),i([a(":resize",{context:window})],r.prototype,"onResizeWindow",null),i([a(["state.currentPath","state.currentSource"])],r.prototype,"onChangePath",null),i([a("state.theme")],r.prototype,"onChangeTheme",null),i([a(":toggleSettings.filebrowser")],r.prototype,"onToggleSettings",null),i([d],r.prototype,"onKeyPress",null),i([d],r.prototype,"removeGlobalListeners",null),i([a(":fileRemove.filebrowser")],r.prototype,"onFileRemove",null),i([a(":edit.filebrowser")],r.prototype,"onFileEdit",null),i([a(":folderRename.filebrowser")],r.prototype,"onFolderRename",null),i([a(":folderRemove.filebrowser")],r.prototype,"onFolderRemove",null),i([a(":folderCreate.filebrowser")],r.prototype,"onFolderCreate",null),i([a(":fileRename.filebrowser")],r.prototype,"onFileRename",null),i([a(":select.filebrowser")],r.prototype,"onChooseItems",null),i([a(":openLightBox.filebrowser")],r.prototype,"onOpenLightBox",null),r=i([N,z(j)],r);Object.defineProperty(w.modules,"FileBrowserPro",{value:r,writable:!1,enumerable:!0,configurable:!0});export{r as FileBrowserPro};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit-pro",
3
- "version": "4.12.38",
3
+ "version": "4.12.40",
4
4
  "author": "Chupurnov Valerii <chupurnov@gmail.com>",
5
5
  "homepage": "https://xdsoft.net/jodit/pro/",
6
6
  "bugs": {
@@ -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 { CanUndef, IFileBrowserCallBackData, IFileBrowserDataProvider, IFileBrowserItemWrapper, IProgressBar, IUIGroup } from "jodit/esm/types/index";
6
+ import type { CanUndef, IFileBrowserAnswer, IFileBrowserCallBackData, IFileBrowserDataProvider, IFileBrowserItemWrapper, IProgressBar, IUIGroup } from "jodit/esm/types/index";
7
7
  import "./ui/assets/icons/index";
8
8
  import { ContextMenuManager } from "./helpers/context-menu";
9
9
  import { LoadingManager } from "./helpers/loading-manager";
@@ -30,6 +30,15 @@ export declare class FileBrowserPro extends Dialog implements IFileBrowserPro {
30
30
  lock(name?: string): boolean;
31
31
  unlock(): boolean;
32
32
  status(message: string | Error, success?: boolean): void;
33
+ /**
34
+ * Upload error handler bound to the uploader. The uploader calls it with
35
+ * either an `Error` or the raw connector answer. `status` alone only
36
+ * understands string/Error, so a raw answer — whose text lives in
37
+ * `data.messages`, not `.message` — was silently dropped and the user saw
38
+ * no error. Mirror the core file-browser: pull the message out of the
39
+ * answer via the data provider and show it as an error.
40
+ */
41
+ errorHandler(resp: Error | IFileBrowserAnswer): void;
33
42
  private header;
34
43
  panel: UIBrowserPanel;
35
44
  files: IUIGroup;