jodit-pro 4.13.5 → 4.13.8

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 (365) hide show
  1. package/es2015/jodit.css +2 -2
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +22 -22
  4. package/es2015/jodit.js +9 -6
  5. package/es2015/jodit.min.css +1 -1
  6. package/es2015/jodit.min.js +3 -3
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  11. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  12. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  13. package/es2015/plugins/backup/backup.css +1 -1
  14. package/es2015/plugins/backup/backup.js +1 -1
  15. package/es2015/plugins/backup/backup.min.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.css +1 -1
  17. package/es2015/plugins/button-generator/button-generator.js +1 -1
  18. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  19. package/es2015/plugins/change-case/change-case.js +1 -1
  20. package/es2015/plugins/change-case/change-case.min.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.css +1 -1
  22. package/es2015/plugins/color-picker/color-picker.js +1 -1
  23. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  24. package/es2015/plugins/emoji/emoji.css +1 -1
  25. package/es2015/plugins/emoji/emoji.js +1 -1
  26. package/es2015/plugins/emoji/emoji.min.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  29. package/es2015/plugins/finder/finder.css +4 -1
  30. package/es2015/plugins/finder/finder.js +513 -112
  31. package/es2015/plugins/finder/finder.min.css +1 -1
  32. package/es2015/plugins/finder/finder.min.js +7 -7
  33. package/es2015/plugins/google-maps/google-maps.css +1 -1
  34. package/es2015/plugins/google-maps/google-maps.js +1 -1
  35. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  36. package/es2015/plugins/google-search/google-search.js +1 -1
  37. package/es2015/plugins/google-search/google-search.min.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  39. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  42. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.js +29 -11
  45. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
  46. package/es2015/plugins/keyboard/keyboard.css +1 -1
  47. package/es2015/plugins/keyboard/keyboard.js +1 -1
  48. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  49. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  50. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  51. package/es2015/plugins/page-break/page-break.js +1 -1
  52. package/es2015/plugins/page-break/page-break.min.js +1 -1
  53. package/es2015/plugins/paste-code/paste-code.css +1 -1
  54. package/es2015/plugins/paste-code/paste-code.js +1 -1
  55. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  56. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  57. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  58. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  59. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  60. package/es2015/plugins/style/style.css +1 -1
  61. package/es2015/plugins/style/style.js +1 -1
  62. package/es2015/plugins/style/style.min.js +1 -1
  63. package/es2015/plugins/templates/templates.css +1 -1
  64. package/es2015/plugins/templates/templates.js +1 -1
  65. package/es2015/plugins/templates/templates.min.js +1 -1
  66. package/es2015/plugins/todo-list/todo-list.css +1 -1
  67. package/es2015/plugins/todo-list/todo-list.js +1 -1
  68. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  69. package/es2015/plugins/translate/translate.css +1 -1
  70. package/es2015/plugins/translate/translate.js +1 -1
  71. package/es2015/plugins/translate/translate.min.js +1 -1
  72. package/es2015/plugins/tune-block/tune-block.css +1 -1
  73. package/es2015/plugins/tune-block/tune-block.js +1 -1
  74. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  75. package/es2018/jodit.fat.min.css +1 -1
  76. package/es2018/jodit.fat.min.js +16 -16
  77. package/es2018/jodit.min.css +1 -1
  78. package/es2018/jodit.min.js +3 -3
  79. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  80. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  81. package/es2018/plugins/backup/backup.min.js +1 -1
  82. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  83. package/es2018/plugins/change-case/change-case.min.js +1 -1
  84. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  85. package/es2018/plugins/emoji/emoji.min.js +1 -1
  86. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  87. package/es2018/plugins/finder/finder.min.css +1 -1
  88. package/es2018/plugins/finder/finder.min.js +13 -13
  89. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  90. package/es2018/plugins/google-search/google-search.min.js +1 -1
  91. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  92. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  93. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
  94. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  95. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  96. package/es2018/plugins/page-break/page-break.min.js +1 -1
  97. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  98. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  99. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  100. package/es2018/plugins/style/style.min.js +1 -1
  101. package/es2018/plugins/templates/templates.min.js +1 -1
  102. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  103. package/es2018/plugins/translate/translate.min.js +1 -1
  104. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  105. package/es2021/jodit.css +2 -2
  106. package/es2021/jodit.fat.min.css +1 -1
  107. package/es2021/jodit.fat.min.js +19 -19
  108. package/es2021/jodit.js +9 -6
  109. package/es2021/jodit.min.css +1 -1
  110. package/es2021/jodit.min.js +3 -3
  111. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  112. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  113. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  114. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  115. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  116. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  117. package/es2021/plugins/backup/backup.css +1 -1
  118. package/es2021/plugins/backup/backup.js +1 -1
  119. package/es2021/plugins/backup/backup.min.js +1 -1
  120. package/es2021/plugins/button-generator/button-generator.css +1 -1
  121. package/es2021/plugins/button-generator/button-generator.js +1 -1
  122. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  123. package/es2021/plugins/change-case/change-case.js +1 -1
  124. package/es2021/plugins/change-case/change-case.min.js +1 -1
  125. package/es2021/plugins/color-picker/color-picker.css +1 -1
  126. package/es2021/plugins/color-picker/color-picker.js +1 -1
  127. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  128. package/es2021/plugins/emoji/emoji.css +1 -1
  129. package/es2021/plugins/emoji/emoji.js +1 -1
  130. package/es2021/plugins/emoji/emoji.min.js +1 -1
  131. package/es2021/plugins/export-docs/export-docs.js +1 -1
  132. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  133. package/es2021/plugins/finder/finder.css +4 -1
  134. package/es2021/plugins/finder/finder.js +511 -112
  135. package/es2021/plugins/finder/finder.min.css +1 -1
  136. package/es2021/plugins/finder/finder.min.js +13 -13
  137. package/es2021/plugins/google-maps/google-maps.css +1 -1
  138. package/es2021/plugins/google-maps/google-maps.js +1 -1
  139. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  140. package/es2021/plugins/google-search/google-search.js +1 -1
  141. package/es2021/plugins/google-search/google-search.min.js +1 -1
  142. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  143. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  144. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  145. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  146. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  147. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  148. package/es2021/plugins/image-editor-pro/image-editor-pro.js +29 -11
  149. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +4 -4
  150. package/es2021/plugins/keyboard/keyboard.css +1 -1
  151. package/es2021/plugins/keyboard/keyboard.js +1 -1
  152. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  153. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  154. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  155. package/es2021/plugins/page-break/page-break.js +1 -1
  156. package/es2021/plugins/page-break/page-break.min.js +1 -1
  157. package/es2021/plugins/paste-code/paste-code.css +1 -1
  158. package/es2021/plugins/paste-code/paste-code.js +1 -1
  159. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  160. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  161. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  162. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  163. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  164. package/es2021/plugins/style/style.css +1 -1
  165. package/es2021/plugins/style/style.js +1 -1
  166. package/es2021/plugins/style/style.min.js +1 -1
  167. package/es2021/plugins/templates/templates.css +1 -1
  168. package/es2021/plugins/templates/templates.js +1 -1
  169. package/es2021/plugins/templates/templates.min.js +1 -1
  170. package/es2021/plugins/todo-list/todo-list.css +1 -1
  171. package/es2021/plugins/todo-list/todo-list.js +1 -1
  172. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  173. package/es2021/plugins/translate/translate.css +1 -1
  174. package/es2021/plugins/translate/translate.js +1 -1
  175. package/es2021/plugins/translate/translate.min.js +1 -1
  176. package/es2021/plugins/tune-block/tune-block.css +1 -1
  177. package/es2021/plugins/tune-block/tune-block.js +1 -1
  178. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  179. package/es2021.en/jodit.css +2 -2
  180. package/es2021.en/jodit.fat.min.css +1 -1
  181. package/es2021.en/jodit.fat.min.js +10 -10
  182. package/es2021.en/jodit.js +9 -6
  183. package/es2021.en/jodit.min.css +1 -1
  184. package/es2021.en/jodit.min.js +3 -3
  185. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  186. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  187. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  188. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  189. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  190. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  191. package/es2021.en/plugins/backup/backup.css +1 -1
  192. package/es2021.en/plugins/backup/backup.js +1 -1
  193. package/es2021.en/plugins/backup/backup.min.js +1 -1
  194. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  195. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  196. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  197. package/es2021.en/plugins/change-case/change-case.js +1 -1
  198. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  199. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  200. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  201. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  202. package/es2021.en/plugins/emoji/emoji.css +1 -1
  203. package/es2021.en/plugins/emoji/emoji.js +1 -1
  204. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  205. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  206. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  207. package/es2021.en/plugins/finder/finder.css +4 -1
  208. package/es2021.en/plugins/finder/finder.js +491 -110
  209. package/es2021.en/plugins/finder/finder.min.css +1 -1
  210. package/es2021.en/plugins/finder/finder.min.js +13 -13
  211. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  212. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  213. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  214. package/es2021.en/plugins/google-search/google-search.js +1 -1
  215. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  216. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  217. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  218. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  219. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  220. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  221. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  222. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +29 -11
  223. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +4 -4
  224. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  225. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  226. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  227. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  228. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  229. package/es2021.en/plugins/page-break/page-break.js +1 -1
  230. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  231. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  232. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  233. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  234. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  235. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  236. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  237. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  238. package/es2021.en/plugins/style/style.css +1 -1
  239. package/es2021.en/plugins/style/style.js +1 -1
  240. package/es2021.en/plugins/style/style.min.js +1 -1
  241. package/es2021.en/plugins/templates/templates.css +1 -1
  242. package/es2021.en/plugins/templates/templates.js +1 -1
  243. package/es2021.en/plugins/templates/templates.min.js +1 -1
  244. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  245. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  246. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  247. package/es2021.en/plugins/translate/translate.css +1 -1
  248. package/es2021.en/plugins/translate/translate.js +1 -1
  249. package/es2021.en/plugins/translate/translate.min.js +1 -1
  250. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  251. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  252. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  253. package/es5/jodit.css +3 -3
  254. package/es5/jodit.fat.min.css +1 -1
  255. package/es5/jodit.fat.min.js +2 -2
  256. package/es5/jodit.js +9 -7
  257. package/es5/jodit.min.css +3 -3
  258. package/es5/jodit.min.js +2 -2
  259. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  260. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  261. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  262. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  263. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  264. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  265. package/es5/plugins/backup/backup.css +1 -1
  266. package/es5/plugins/backup/backup.js +1 -1
  267. package/es5/plugins/backup/backup.min.js +1 -1
  268. package/es5/plugins/button-generator/button-generator.css +1 -1
  269. package/es5/plugins/button-generator/button-generator.js +1 -1
  270. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  271. package/es5/plugins/change-case/change-case.js +1 -1
  272. package/es5/plugins/change-case/change-case.min.js +1 -1
  273. package/es5/plugins/color-picker/color-picker.css +1 -1
  274. package/es5/plugins/color-picker/color-picker.js +1 -1
  275. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  276. package/es5/plugins/emoji/emoji.css +1 -1
  277. package/es5/plugins/emoji/emoji.js +1 -1
  278. package/es5/plugins/emoji/emoji.min.js +1 -1
  279. package/es5/plugins/export-docs/export-docs.js +1 -1
  280. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  281. package/es5/plugins/finder/finder.css +4 -1
  282. package/es5/plugins/finder/finder.js +701 -116
  283. package/es5/plugins/finder/finder.min.css +1 -1
  284. package/es5/plugins/finder/finder.min.js +2 -2
  285. package/es5/plugins/google-maps/google-maps.css +1 -1
  286. package/es5/plugins/google-maps/google-maps.js +1 -1
  287. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  288. package/es5/plugins/google-search/google-search.js +1 -1
  289. package/es5/plugins/google-search/google-search.min.js +1 -1
  290. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  291. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  292. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  293. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  294. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  295. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  296. package/es5/plugins/image-editor-pro/image-editor-pro.js +30 -12
  297. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
  298. package/es5/plugins/keyboard/keyboard.css +1 -1
  299. package/es5/plugins/keyboard/keyboard.js +1 -1
  300. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  301. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  302. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  303. package/es5/plugins/page-break/page-break.js +1 -1
  304. package/es5/plugins/page-break/page-break.min.js +1 -1
  305. package/es5/plugins/paste-code/paste-code.css +1 -1
  306. package/es5/plugins/paste-code/paste-code.js +1 -1
  307. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  308. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  309. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  310. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  311. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  312. package/es5/plugins/style/style.css +1 -1
  313. package/es5/plugins/style/style.js +1 -1
  314. package/es5/plugins/style/style.min.js +1 -1
  315. package/es5/plugins/templates/templates.css +1 -1
  316. package/es5/plugins/templates/templates.js +1 -1
  317. package/es5/plugins/templates/templates.min.js +1 -1
  318. package/es5/plugins/todo-list/todo-list.css +1 -1
  319. package/es5/plugins/todo-list/todo-list.js +1 -1
  320. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  321. package/es5/plugins/translate/translate.css +1 -1
  322. package/es5/plugins/translate/translate.js +1 -1
  323. package/es5/plugins/translate/translate.min.js +1 -1
  324. package/es5/plugins/tune-block/tune-block.css +1 -1
  325. package/es5/plugins/tune-block/tune-block.js +1 -1
  326. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  327. package/es5/polyfills.fat.min.js +1 -1
  328. package/es5/polyfills.js +1 -1
  329. package/es5/polyfills.min.js +1 -1
  330. package/esm/plugins/finder/browser.d.ts +21 -3
  331. package/esm/plugins/finder/browser.js +1 -1
  332. package/esm/plugins/finder/config.js +1 -1
  333. package/esm/plugins/finder/helpers/context-menu.d.ts +6 -0
  334. package/esm/plugins/finder/helpers/context-menu.js +1 -1
  335. package/esm/plugins/finder/helpers/data-provider.d.ts +26 -0
  336. package/esm/plugins/finder/helpers/data-provider.js +1 -0
  337. package/esm/plugins/finder/helpers/helpers.d.ts +27 -0
  338. package/esm/plugins/finder/helpers/helpers.js +1 -1
  339. package/esm/plugins/finder/helpers/persistent-store.d.ts +13 -8
  340. package/esm/plugins/finder/helpers/persistent-store.js +1 -1
  341. package/esm/plugins/finder/interface.d.ts +24 -1
  342. package/esm/plugins/finder/langs/de.d.ts +9 -0
  343. package/esm/plugins/finder/langs/de.js +1 -1
  344. package/esm/plugins/finder/langs/ru.d.ts +9 -0
  345. package/esm/plugins/finder/langs/ru.js +1 -1
  346. package/esm/plugins/finder/ui/header/header.d.ts +7 -1
  347. package/esm/plugins/finder/ui/header/header.js +1 -1
  348. package/esm/plugins/finder/ui/panel/panel.d.ts +5 -0
  349. package/esm/plugins/finder/ui/panel/panel.js +2 -2
  350. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +5 -0
  351. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.js +2 -2
  352. package/esm/plugins/image-editor-pro/adapter.js +1 -1
  353. package/esm/plugins/image-editor-pro/image-editor-pro.js +1 -1
  354. package/package.json +1 -1
  355. package/types/plugins/finder/browser.d.ts +21 -3
  356. package/types/plugins/finder/helpers/context-menu.d.ts +6 -0
  357. package/types/plugins/finder/helpers/data-provider.d.ts +26 -0
  358. package/types/plugins/finder/helpers/helpers.d.ts +27 -0
  359. package/types/plugins/finder/helpers/persistent-store.d.ts +13 -8
  360. package/types/plugins/finder/interface.d.ts +24 -1
  361. package/types/plugins/finder/langs/de.d.ts +9 -0
  362. package/types/plugins/finder/langs/ru.d.ts +9 -0
  363. package/types/plugins/finder/ui/header/header.d.ts +7 -1
  364. package/types/plugins/finder/ui/panel/panel.d.ts +5 -0
  365. package/types/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +5 -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.13.5
4
+ * Version: v4.13.8
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -50,26 +50,27 @@ module.exports = "<svg viewBox=\"0 0 252 252\" xmlns=\"http://www.w3.org/2000/sv
50
50
  /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
51
51
  /* harmony import */ var _ui_assets_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34042);
52
52
  /* harmony import */ var _helpers_context_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8087);
53
- /* harmony import */ var _helpers_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77841);
54
- /* harmony import */ var _helpers_history_manager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17578);
55
- /* harmony import */ var _helpers_loading_manager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(97770);
56
- /* harmony import */ var _helpers_persistent_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42663);
57
- /* harmony import */ var _helpers_state_manager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(55535);
58
- /* harmony import */ var _ui_header_header__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18250);
59
- /* harmony import */ var _ui_lightboox_lightbox__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(69277);
60
- /* harmony import */ var _ui_panel_panel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(4278);
61
- /* harmony import */ var _ui_progress_progress__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(95002);
62
- /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(6441);
63
- /* harmony import */ var jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(82758);
64
- /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(65478);
65
- /* harmony import */ var jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(21537);
66
- /* harmony import */ var jodit_esm_core_traits_dlgs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(70231);
67
- /* harmony import */ var jodit_esm_modules__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(41409);
68
- /* harmony import */ var jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(638);
69
- /* harmony import */ var jodit_esm_modules_file_browser_factories__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(63399);
70
- /* harmony import */ var jodit_esm_modules_image_editor_image_editor__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(50050);
71
- /* harmony import */ var jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(2692);
72
- /* harmony import */ var jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(21246);
53
+ /* harmony import */ var _helpers_data_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34698);
54
+ /* harmony import */ var _helpers_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77841);
55
+ /* harmony import */ var _helpers_history_manager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17578);
56
+ /* harmony import */ var _helpers_loading_manager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(97770);
57
+ /* harmony import */ var _helpers_persistent_store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(42663);
58
+ /* harmony import */ var _helpers_state_manager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(55535);
59
+ /* harmony import */ var _ui_header_header__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18250);
60
+ /* harmony import */ var _ui_lightboox_lightbox__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(69277);
61
+ /* harmony import */ var _ui_panel_panel__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(4278);
62
+ /* harmony import */ var _ui_progress_progress__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(95002);
63
+ /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(6441);
64
+ /* harmony import */ var jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(82758);
65
+ /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(65478);
66
+ /* harmony import */ var jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(21537);
67
+ /* harmony import */ var jodit_esm_core_traits_dlgs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(70231);
68
+ /* harmony import */ var jodit_esm_modules__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(41409);
69
+ /* harmony import */ var jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(638);
70
+ /* harmony import */ var jodit_esm_modules_file_browser_data_provider__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(11787);
71
+ /* harmony import */ var jodit_esm_modules_image_editor_image_editor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(50050);
72
+ /* harmony import */ var jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(2692);
73
+ /* harmony import */ var jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(21246);
73
74
  /*!
74
75
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
75
76
  * See LICENSE.md in the project root for license information.
@@ -99,7 +100,8 @@ module.exports = "<svg viewBox=\"0 0 252 252\" xmlns=\"http://www.w3.org/2000/sv
99
100
 
100
101
 
101
102
 
102
- class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_19__.Dialog {
103
+
104
+ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_20__.Dialog {
103
105
  /** @override */ className() {
104
106
  return 'FileBrowserPro';
105
107
  }
@@ -112,13 +114,13 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
112
114
  return super.unlock();
113
115
  }
114
116
  status(message, success = !(message instanceof Error)) {
115
- if ((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.isAbortError)(message)) {
117
+ if ((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.isAbortError)(message)) {
116
118
  return;
117
119
  }
118
- if (!jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.IS_PROD && !(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.isString)(message)) {
120
+ if (!jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.IS_PROD && !(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.isString)(message)) {
119
121
  console.error(message);
120
122
  }
121
- this.message.message((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.isString)(message) ? message : message.message, success ? 'success' : 'error', this.options.howLongShowMsg);
123
+ this.message.message((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.isString)(message) ? message : message.message, success ? 'success' : 'error', this.options.howLongShowMsg);
122
124
  }
123
125
  /**
124
126
  * Upload error handler bound to the uploader. The uploader calls it with
@@ -128,17 +130,26 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
128
130
  * no error. Mirror the core file-browser: pull the message out of the
129
131
  * answer via the data provider and show it as an error.
130
132
  */ errorHandler(resp) {
131
- if ((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.isAbortError)(resp)) {
133
+ if ((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.isAbortError)(resp)) {
132
134
  return;
133
135
  }
134
136
  this.status(resp instanceof Error ? this.i18n(resp.message) : this.dataProvider.getMessage(resp), false);
135
137
  }
136
138
  get progressbar() {
137
- return new _ui_progress_progress__WEBPACK_IMPORTED_MODULE_12__.UIProgress(this, this.stateManager.state);
139
+ return new _ui_progress_progress__WEBPACK_IMPORTED_MODULE_13__.UIProgress(this, this.stateManager.state);
138
140
  }
139
141
  /** @override */ addDisclaimer(elm) {
140
142
  this.dialog.appendChild(elm);
141
143
  }
144
+ /**
145
+ * Show status toasts in the lower right corner of the finder window.
146
+ * The default view container of a dialog is a zero-size anchor
147
+ * (`.jodit-dialog`), so messages attached to it appear in a random
148
+ * place of the page instead of inside the finder.
149
+ * @override
150
+ */ getMessageModule() {
151
+ return super.getMessageModule(this.dialog);
152
+ }
142
153
  // @ts-ignore
143
154
  async open(callback = this.o.defaultCallback, onlyImages) {
144
155
  this.state.onlyImages = Boolean(onlyImages);
@@ -149,7 +160,7 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
149
160
  /**
150
161
  * Resize handler
151
162
  */ onResizeWindow() {
152
- (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.css)(this.dialog, {
163
+ (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.css)(this.dialog, {
153
164
  maxWidth: screen.width,
154
165
  minHeight: Math.min(this.options.height, screen.height),
155
166
  minWidth: Math.min(this.options.width, screen.width)
@@ -184,29 +195,29 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
184
195
  }
185
196
  onKeyPress(e) {
186
197
  const { activeElement } = this.od;
187
- if (!this.state.activeElements.length || !activeElement || !jodit_esm_modules__WEBPACK_IMPORTED_MODULE_18__.Dom.isOrContains(this.panel.items.container, activeElement)) {
198
+ if (!this.state.activeElements.length || !activeElement || !jodit_esm_modules__WEBPACK_IMPORTED_MODULE_19__.Dom.isOrContains(this.panel.items.container, activeElement)) {
188
199
  return;
189
200
  }
190
201
  const elms = this.state.elements;
191
202
  switch(e.key){
192
- case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_ENTER:
203
+ case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_ENTER:
193
204
  {
194
205
  return this.onChooseItems();
195
206
  }
196
- case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_DELETE:
207
+ case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_DELETE:
197
208
  {
198
209
  return this.onFileRemove();
199
210
  }
200
- case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_RIGHT:
201
- case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_LEFT:
202
- case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_DOWN:
203
- case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_UP:
211
+ case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_RIGHT:
212
+ case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_LEFT:
213
+ case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_DOWN:
214
+ case jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_UP:
204
215
  {
205
- const next = e.key === jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_RIGHT || e.key === jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_DOWN, index = this.state.lastSelectedIndex;
216
+ const next = e.key === jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_RIGHT || e.key === jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_DOWN, index = this.state.lastSelectedIndex;
206
217
  let nextIndex;
207
218
  if ([
208
- jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_RIGHT,
209
- jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_14__.KEY_LEFT
219
+ jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_RIGHT,
220
+ jodit_esm_core_constants__WEBPACK_IMPORTED_MODULE_15__.KEY_LEFT
210
221
  ].includes(e.key)) {
211
222
  if (next) {
212
223
  nextIndex = !elms[index + 1] ? 0 : index + 1;
@@ -225,6 +236,95 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
225
236
  removeGlobalListeners() {
226
237
  this.e.off(this.ow, 'keydown', this.onKeyPress);
227
238
  }
239
+ onCut(folder) {
240
+ this.__fillClipboard('cut', folder);
241
+ }
242
+ onCopy(folder) {
243
+ this.__fillClipboard('copy', folder);
244
+ }
245
+ __fillClipboard(mode, folder) {
246
+ this.state.clipboard = folder ? [
247
+ {
248
+ mode,
249
+ type: 'folder',
250
+ from: (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.folderFullPath)(folder),
251
+ name: folder.name,
252
+ sourceName: folder.sourceName
253
+ }
254
+ ] : this.state.activeElements.filter((item)=>item.file || item.name).map((item)=>({
255
+ mode,
256
+ type: item.type === 'folder' ? 'folder' : 'file',
257
+ from: (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.normalizeItemPath)(item.path + (item.file || item.name || '')),
258
+ name: item.file || item.name || '',
259
+ sourceName: item.sourceName
260
+ }));
261
+ }
262
+ /**
263
+ * The current folder as a paste target (used by the toolbar button and
264
+ * the empty-area context menu)
265
+ */ getPasteTarget() {
266
+ const { currentPath, currentSource, sources } = this.state;
267
+ return {
268
+ path: currentPath || '/',
269
+ sourceName: currentSource || sources[0]?.name || jodit_esm_modules_file_browser_data_provider__WEBPACK_IMPORTED_MODULE_21__.DEFAULT_SOURCE_NAME
270
+ };
271
+ }
272
+ canPaste(target) {
273
+ const items = this.state.clipboard;
274
+ if (!items.length || items.some((item)=>item.sourceName !== target.sourceName)) {
275
+ return false;
276
+ }
277
+ const dp = this.dataProvider;
278
+ const allowed = (item)=>item.mode === 'copy' ? dp.canCopy(item.type === 'file') : dp.canI(item.type === 'file' ? 'FileMove' : 'FolderMove');
279
+ if (!items.every(allowed)) {
280
+ return false;
281
+ }
282
+ const targetPath = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.normalizeItemPath)(target.path);
283
+ // A folder can not be moved/copied into itself or its own subtree
284
+ return !items.some((item)=>item.type === 'folder' && (targetPath === item.from || targetPath.startsWith(item.from + '/')));
285
+ }
286
+ onPaste(target) {
287
+ if (!this.canPaste(target)) {
288
+ return;
289
+ }
290
+ const items = this.state.clipboard;
291
+ // Cut works once, a copied clipboard can be pasted repeatedly
292
+ if (items.some((item)=>item.mode === 'cut')) {
293
+ this.state.clipboard = [];
294
+ }
295
+ const targetPath = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.normalizeItemPath)(target.path);
296
+ // The data provider writes its arguments into shared ajax options —
297
+ // requests must not run in parallel
298
+ const pasteSequentially = async ()=>{
299
+ let done = 0;
300
+ for (const item of items){
301
+ const isFile = item.type === 'file';
302
+ if (item.mode === 'cut') {
303
+ // Moving into the folder the item is already in is a no-op
304
+ if ((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.parentPath)(item.from) === targetPath) {
305
+ continue;
306
+ }
307
+ await this.dataProvider.move(item.from, targetPath, target.sourceName, isFile);
308
+ } else {
309
+ await this.dataProvider.copy(item.from, targetPath, target.sourceName, isFile);
310
+ }
311
+ done += 1;
312
+ }
313
+ return done;
314
+ };
315
+ const isCopy = items.every((item)=>item.mode === 'copy');
316
+ pasteSequentially().then((done)=>{
317
+ if (done > 0) {
318
+ this.status(this.i18n(isCopy ? '%s item(s) were copied' : '%s item(s) were moved', String(done)), true);
319
+ }
320
+ }).catch(this.status).finally(()=>{
321
+ this.state.activeElements = [];
322
+ return Promise.allSettled([
323
+ this.loadingManager.loadItems(),
324
+ this.loadingManager.loadFolders()
325
+ ]);
326
+ });
327
+ }
228
328
  onFileRemove() {
229
329
  if (this.state.activeElements.length) {
230
330
  this.confirm('Are you sure?', 'Delete', (yes)=>{
@@ -238,7 +338,7 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
238
338
  }
239
339
  const promises = [];
240
340
  items.forEach((item)=>{
241
- promises.push(item.type === 'folder' ? this.__folderRemove((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_4__.parentPath)(item.path), item.name ?? '', item.sourceName) : this.__removeFile(item.file || item.name || '', item.sourceName));
341
+ promises.push(item.type === 'folder' ? this.__folderRemove((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.parentPath)(item.path), item.name ?? '', item.sourceName) : this.__removeFile(item.file || item.name || '', item.sourceName));
242
342
  });
243
343
  this.state.activeElements.forEach((el)=>{
244
344
  this.stateManager.isFavorite(el) && this.stateManager.toggleFavorite(el);
@@ -258,7 +358,7 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
258
358
  return this.dataProvider.folderRemove(path, name, sourceName).then((message)=>{
259
359
  this.status(message || this.i18n('Folder "%s" was deleted', name), true);
260
360
  if (this.state.currentPath === path) {
261
- this.state.currentPath = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_4__.parentPath)(path);
361
+ this.state.currentPath = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.parentPath)(path);
262
362
  this.state.currentSource = sourceName;
263
363
  }
264
364
  }).catch(this.status);
@@ -266,19 +366,19 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
266
366
  onFileEdit() {
267
367
  if (this.state.activeElements.length === 1) {
268
368
  const [file] = this.state.activeElements;
269
- jodit_esm_modules_image_editor_image_editor__WEBPACK_IMPORTED_MODULE_21__.openImageEditor.call(this, file.fileURL, file.file || '', file.path, file.sourceName, undefined, this.status);
369
+ jodit_esm_modules_image_editor_image_editor__WEBPACK_IMPORTED_MODULE_22__.openImageEditor.call(this, file.fileURL, file.file || '', file.path, file.sourceName, undefined, this.status);
270
370
  }
271
371
  }
272
372
  onFolderRename(data) {
273
373
  this.prompt('Enter new name', 'Rename', (newName)=>{
274
- if (!(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.isValidName)(newName) || newName === data.name) {
374
+ if (!(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.isValidName)(newName) || newName === data.name) {
275
375
  this.status(this.i18n('Enter new name'));
276
376
  return false;
277
377
  }
278
- this.dataProvider.folderRename((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_4__.parentPath)(data.path), data.name, newName, data.sourceName).then((message)=>{
378
+ this.dataProvider.folderRename((0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.parentPath)(data.path), data.name, newName, data.sourceName).then((message)=>{
279
379
  this.state.activeElements = [];
280
380
  this.status(message, true);
281
- this.state.currentPath = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_4__.parentPath)(data.path) + '/' + newName;
381
+ this.state.currentPath = (0,_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.parentPath)(data.path) + '/' + newName;
282
382
  this.state.currentSource = data.sourceName;
283
383
  this.historyManager.updateCurrent();
284
384
  this.loadingManager.loadFolders();
@@ -316,7 +416,7 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
316
416
  const name = item.file || item.name || '';
317
417
  if (this.state.activeElements.length === 1 && name) {
318
418
  this.prompt('Enter new name', 'Rename', (newName)=>{
319
- if (!(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.isValidName)(newName)) {
419
+ if (!(0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.isValidName)(newName)) {
320
420
  this.status(this.i18n('Enter new name'));
321
421
  return false;
322
422
  }
@@ -346,10 +446,10 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
346
446
  }
347
447
  }
348
448
  onOpenLightBox(item) {
349
- _ui_lightboox_lightbox__WEBPACK_IMPORTED_MODULE_10__.UILightBox.open(this, item, this.state.elements);
449
+ _ui_lightboox_lightbox__WEBPACK_IMPORTED_MODULE_11__.UILightBox.open(this, item, this.state.elements);
350
450
  }
351
451
  initUploader() {
352
- const self = this, uploaderOptions = (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.ConfigProto)(self.o.uploader || {}, jodit_esm_config__WEBPACK_IMPORTED_MODULE_13__.Config.defaultOptions.uploader);
452
+ const self = this, uploaderOptions = (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.ConfigProto)(self.o.uploader || {}, jodit_esm_config__WEBPACK_IMPORTED_MODULE_14__.Config.defaultOptions.uploader);
353
453
  const uploadHandler = ()=>this.loadingManager.loadItems();
354
454
  self.uploader = self.getInstance('Uploader', uploaderOptions);
355
455
  self.uploader.bind(self.panel.container, uploadHandler, self.errorHandler);
@@ -371,6 +471,8 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
371
471
  'create',
372
472
  'fileMove',
373
473
  'folderMove',
474
+ 'fileCopy',
475
+ 'folderCopy',
374
476
  'fileRename',
375
477
  'folderRename',
376
478
  'fileRemove',
@@ -381,21 +483,21 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
381
483
  ];
382
484
  keys.forEach((key)=>{
383
485
  if (this.options[key] != null) {
384
- this.options[key] = (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.ConfigProto)(this.options[key], this.o.ajax);
486
+ this.options[key] = (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.ConfigProto)(this.options[key], this.o.ajax);
385
487
  }
386
488
  });
387
489
  }
388
490
  constructor(options){
389
- super((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_16__.ConfigProto)(Object.assign(options || {}, {
491
+ super((0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_17__.ConfigProto)(Object.assign(options || {}, {
390
492
  resizable: true,
391
493
  draggable: true,
392
- toolbarButtons: options?.toolbarButtons || jodit_esm_config__WEBPACK_IMPORTED_MODULE_13__.Config.defaultOptions.filebrowser.buttons,
393
- buttons: jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_22__.JoditPro.atom([
494
+ toolbarButtons: options?.toolbarButtons || jodit_esm_config__WEBPACK_IMPORTED_MODULE_14__.Config.defaultOptions.filebrowser.buttons,
495
+ buttons: jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_23__.JoditPro.atom([
394
496
  'filebrowser.settings',
395
497
  'fullsize',
396
498
  'dialog.close'
397
499
  ])
398
- }), jodit_esm_config__WEBPACK_IMPORTED_MODULE_13__.Config.defaultOptions.filebrowser)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "dataProvider", (0,jodit_esm_modules_file_browser_factories__WEBPACK_IMPORTED_MODULE_20__.makeDataProvider)(this, this.options)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", (0,jodit_esm_modules__WEBPACK_IMPORTED_MODULE_18__.observable)({
500
+ }), jodit_esm_config__WEBPACK_IMPORTED_MODULE_14__.Config.defaultOptions.filebrowser)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "dataProvider", new _helpers_data_provider__WEBPACK_IMPORTED_MODULE_4__.DataProviderPro(this, this.options)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", (0,jodit_esm_modules__WEBPACK_IMPORTED_MODULE_19__.observable)({
399
501
  onSelectCallBack: null,
400
502
  theme: 'default',
401
503
  showSideBar: true,
@@ -412,6 +514,7 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
412
514
  tree: [],
413
515
  activeElements: [],
414
516
  favorites: [],
517
+ clipboard: [],
415
518
  progress: 0,
416
519
  lastSelectedIndex: 0,
417
520
  elements: [],
@@ -422,8 +525,8 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
422
525
  sortBy: 'name-asc',
423
526
  filterWord: '',
424
527
  onlyImages: false
425
- })), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "persistent", new _helpers_persistent_store__WEBPACK_IMPORTED_MODULE_7__.PersistentStore(this, this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "loadingManager", new _helpers_loading_manager__WEBPACK_IMPORTED_MODULE_6__.LoadingManager(this, this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "stateManager", new _helpers_state_manager__WEBPACK_IMPORTED_MODULE_8__.StateManager(this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "historyManager", new _helpers_history_manager__WEBPACK_IMPORTED_MODULE_5__.HistoryManager(this, this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "contextMenuManager", new _helpers_context_menu__WEBPACK_IMPORTED_MODULE_3__.ContextMenuManager(this)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "header", new _ui_header_header__WEBPACK_IMPORTED_MODULE_9__.UIBrowserHeader(this, this.options, this.stateManager)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "panel", new _ui_panel_panel__WEBPACK_IMPORTED_MODULE_11__.UIBrowserPanel(this, this.stateManager)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "files", this.panel), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "tree", this.panel), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "uploader", void 0);
426
- jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_23__.license.make(this);
528
+ })), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "persistent", new _helpers_persistent_store__WEBPACK_IMPORTED_MODULE_8__.PersistentStore(this, this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "loadingManager", new _helpers_loading_manager__WEBPACK_IMPORTED_MODULE_7__.LoadingManager(this, this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "stateManager", new _helpers_state_manager__WEBPACK_IMPORTED_MODULE_9__.StateManager(this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "historyManager", new _helpers_history_manager__WEBPACK_IMPORTED_MODULE_6__.HistoryManager(this, this.state)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "contextMenuManager", new _helpers_context_menu__WEBPACK_IMPORTED_MODULE_3__.ContextMenuManager(this)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "header", new _ui_header_header__WEBPACK_IMPORTED_MODULE_10__.UIBrowserHeader(this, this.options, this.stateManager)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "panel", new _ui_panel_panel__WEBPACK_IMPORTED_MODULE_12__.UIBrowserPanel(this, this.stateManager)), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "files", this.panel), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "tree", this.panel), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "uploader", void 0);
529
+ jodit_pro_plugins_license_license__WEBPACK_IMPORTED_MODULE_24__.license.make(this);
427
530
  if (!this.persistent.theme && this.options.theme) {
428
531
  this.persistent.theme = this.options.theme;
429
532
  }
@@ -442,70 +545,79 @@ class FileBrowserPro extends jodit_esm_modules_dialog__WEBPACK_IMPORTED_MODULE_1
442
545
  });
443
546
  this.e.on('beforeClose', this.removeGlobalListeners);
444
547
  this.e.fire('afterInit');
445
- jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_22__.JoditPro.prototype.afterInitHook.call(this);
548
+ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_23__.JoditPro.prototype.afterInitHook.call(this);
446
549
  }
447
550
  }
448
551
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
449
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.autobind
552
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.autobind
450
553
  ], FileBrowserPro.prototype, "status", null);
451
554
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
452
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.autobind
555
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.autobind
453
556
  ], FileBrowserPro.prototype, "errorHandler", null);
454
557
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
455
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.cache
558
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.cache
456
559
  ], FileBrowserPro.prototype, "progressbar", null);
457
560
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
458
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':resize', {
561
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':resize', {
459
562
  context: window
460
563
  })
461
564
  ], FileBrowserPro.prototype, "onResizeWindow", null);
462
565
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
463
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)([
566
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)([
464
567
  'state.currentPath',
465
568
  'state.currentSource'
466
569
  ])
467
570
  ], FileBrowserPro.prototype, "onChangePath", null);
468
571
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
469
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)('state.theme')
572
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)('state.theme')
470
573
  ], FileBrowserPro.prototype, "onChangeTheme", null);
471
574
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
472
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':toggleSettings.filebrowser')
575
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':toggleSettings.filebrowser')
473
576
  ], FileBrowserPro.prototype, "onToggleSettings", null);
474
577
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
475
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.autobind
578
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.autobind
476
579
  ], FileBrowserPro.prototype, "onKeyPress", null);
477
580
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
478
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.autobind
581
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.autobind
479
582
  ], FileBrowserPro.prototype, "removeGlobalListeners", null);
480
583
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
481
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':fileRemove.filebrowser')
584
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':cut.filebrowser')
585
+ ], FileBrowserPro.prototype, "onCut", null);
586
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
587
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':copy.filebrowser')
588
+ ], FileBrowserPro.prototype, "onCopy", null);
589
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
590
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':paste.filebrowser')
591
+ ], FileBrowserPro.prototype, "onPaste", null);
592
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
593
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':fileRemove.filebrowser')
482
594
  ], FileBrowserPro.prototype, "onFileRemove", null);
483
595
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
484
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':edit.filebrowser')
596
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':edit.filebrowser')
485
597
  ], FileBrowserPro.prototype, "onFileEdit", null);
486
598
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
487
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':folderRename.filebrowser')
599
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':folderRename.filebrowser')
488
600
  ], FileBrowserPro.prototype, "onFolderRename", null);
489
601
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
490
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':folderRemove.filebrowser')
602
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':folderRemove.filebrowser')
491
603
  ], FileBrowserPro.prototype, "onFolderRemove", null);
492
604
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
493
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':folderCreate.filebrowser')
605
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':folderCreate.filebrowser')
494
606
  ], FileBrowserPro.prototype, "onFolderCreate", null);
495
607
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
496
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':fileRename.filebrowser')
608
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':fileRename.filebrowser')
497
609
  ], FileBrowserPro.prototype, "onFileRename", null);
498
610
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
499
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':select.filebrowser')
611
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':select.filebrowser')
500
612
  ], FileBrowserPro.prototype, "onChooseItems", null);
501
613
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
502
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.watch)(':openLightBox.filebrowser')
614
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.watch)(':openLightBox.filebrowser')
503
615
  ], FileBrowserPro.prototype, "onOpenLightBox", null);
504
616
  FileBrowserPro = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
505
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.component,
506
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_15__.derive)(jodit_esm_core_traits_dlgs__WEBPACK_IMPORTED_MODULE_17__.Dlgs)
617
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.component,
618
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_16__.derive)(jodit_esm_core_traits_dlgs__WEBPACK_IMPORTED_MODULE_18__.Dlgs)
507
619
  ], FileBrowserPro);
508
- Object.defineProperty(jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_22__.JoditPro.modules, 'FileBrowserPro', {
620
+ Object.defineProperty(jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_23__.JoditPro.modules, 'FileBrowserPro', {
509
621
  value: FileBrowserPro,
510
622
  writable: false,
511
623
  enumerable: true,
@@ -581,6 +693,16 @@ fb['new-folder'] = {
581
693
  },
582
694
  tooltip: 'New folder'
583
695
  };
696
+ fb.paste = {
697
+ icon: 'paste',
698
+ tooltip: 'Paste',
699
+ isDisabled (fb) {
700
+ return !fb.canPaste(fb.getPasteTarget());
701
+ },
702
+ exec: (editor)=>{
703
+ editor.e.fire('paste.filebrowser', editor.getPasteTarget());
704
+ }
705
+ };
584
706
  Object.assign(jodit_esm_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.filebrowser, {
585
707
  buttons: [
586
708
  'filebrowser.home',
@@ -589,6 +711,7 @@ Object.assign(jodit_esm_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.fil
589
711
  '|',
590
712
  'filebrowser.upload',
591
713
  'filebrowser.new-folder',
714
+ 'filebrowser.paste',
592
715
  'filebrowser.remove',
593
716
  'filebrowser.update',
594
717
  'filebrowser.select',
@@ -599,9 +722,19 @@ Object.assign(jodit_esm_config__WEBPACK_IMPORTED_MODULE_1__.Config.prototype.fil
599
722
  ],
600
723
  sort: false,
601
724
  pixelOffsetLoadNewChunk: 300,
602
- width: 800,
725
+ width: 900,
603
726
  height: 400,
604
- previewOfficeURL: 'https://view.officeapps.live.com/op/view.aspx?src='
727
+ previewOfficeURL: 'https://view.officeapps.live.com/op/view.aspx?src=',
728
+ fileCopy: {
729
+ data: {
730
+ action: 'fileCopy'
731
+ }
732
+ },
733
+ folderCopy: {
734
+ data: {
735
+ action: 'folderCopy'
736
+ }
737
+ }
605
738
  });
606
739
  (0,jodit_esm_core_global__WEBPACK_IMPORTED_MODULE_2__.extendLang)(_langs__WEBPACK_IMPORTED_MODULE_0__);
607
740
 
@@ -663,9 +796,10 @@ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_4__.JoditPro.plugins.add('finder',
663
796
  /* harmony export */ ContextMenuManager: function() { return /* binding */ ContextMenuManager; }
664
797
  /* harmony export */ });
665
798
  /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31635);
666
- /* harmony import */ var jodit_esm_core_component_view_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80480);
667
- /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65478);
668
- /* harmony import */ var jodit_esm_modules_file_browser_factories__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63399);
799
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77841);
800
+ /* harmony import */ var jodit_esm_core_component_view_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80480);
801
+ /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65478);
802
+ /* harmony import */ var jodit_esm_modules_file_browser_factories__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(63399);
669
803
  /*!
670
804
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
671
805
  * See LICENSE.md in the project root for license information.
@@ -674,7 +808,8 @@ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_4__.JoditPro.plugins.add('finder',
674
808
 
675
809
 
676
810
 
677
- class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPACK_IMPORTED_MODULE_1__.ViewComponent {
811
+
812
+ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPACK_IMPORTED_MODULE_2__.ViewComponent {
678
813
  /** @override */ className() {
679
814
  return 'ContextMenuManager';
680
815
  }
@@ -690,11 +825,15 @@ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPAC
690
825
  this.buildContextItemMenu(this.getSourceContextActions(item), e);
691
826
  return false;
692
827
  }
828
+ onAreaContext(e) {
829
+ this.buildContextItemMenu(this.getAreaContextActions(), e);
830
+ return false;
831
+ }
693
832
  buildContextItemMenu(actions, e) {
694
833
  if (!this.j.o.contextMenu) {
695
834
  return;
696
835
  }
697
- const context = (0,jodit_esm_modules_file_browser_factories__WEBPACK_IMPORTED_MODULE_3__.makeContextMenu)(this.j).setMod('theme', this.j.state.theme);
836
+ const context = (0,jodit_esm_modules_file_browser_factories__WEBPACK_IMPORTED_MODULE_4__.makeContextMenu)(this.j).setMod('theme', this.j.state.theme);
698
837
  context.show(e.clientX, e.clientY, actions.filter((a)=>a && a.enabled !== false));
699
838
  this.j.e.on(this.j, 'afterClose', ()=>{
700
839
  if (context.isOpened) {
@@ -731,6 +870,18 @@ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPAC
731
870
  enabled: dp.canI('FileRename') && single,
732
871
  exec: ()=>this.j.e.fire('fileRename.filebrowser', item)
733
872
  },
873
+ {
874
+ icon: 'cut',
875
+ title: 'Cut',
876
+ enabled: dp.canI('FileMove'),
877
+ exec: ()=>this.j.e.fire('cut.filebrowser')
878
+ },
879
+ {
880
+ icon: 'copy',
881
+ title: 'Copy',
882
+ enabled: dp.canCopy(true),
883
+ exec: ()=>this.j.e.fire('copy.filebrowser')
884
+ },
734
885
  {
735
886
  icon: 'bin',
736
887
  title: 'Delete',
@@ -756,7 +907,10 @@ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPAC
756
907
  ];
757
908
  }
758
909
  getFolderContextActions(item) {
759
- const dp = this.j.dataProvider;
910
+ const dp = this.j.dataProvider, pasteTarget = {
911
+ path: (0,_helpers__WEBPACK_IMPORTED_MODULE_1__.folderFullPath)(item),
912
+ sourceName: item.sourceName
913
+ };
760
914
  return [
761
915
  {
762
916
  icon: 'pencil',
@@ -766,6 +920,30 @@ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPAC
766
920
  },
767
921
  enabled: dp.canI('FolderRename')
768
922
  },
923
+ {
924
+ icon: 'cut',
925
+ title: 'Cut',
926
+ enabled: dp.canI('FolderMove'),
927
+ exec: ()=>{
928
+ this.j.e.fire('cut.filebrowser', item);
929
+ }
930
+ },
931
+ {
932
+ icon: 'copy',
933
+ title: 'Copy',
934
+ enabled: dp.canCopy(false),
935
+ exec: ()=>{
936
+ this.j.e.fire('copy.filebrowser', item);
937
+ }
938
+ },
939
+ {
940
+ icon: 'paste',
941
+ title: 'Paste',
942
+ enabled: this.j.canPaste(pasteTarget),
943
+ exec: ()=>{
944
+ this.j.e.fire('paste.filebrowser', pasteTarget);
945
+ }
946
+ },
769
947
  {
770
948
  icon: 'bin',
771
949
  title: 'Delete',
@@ -785,6 +963,10 @@ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPAC
785
963
  ];
786
964
  }
787
965
  getSourceContextActions(item) {
966
+ const pasteTarget = {
967
+ path: '/',
968
+ sourceName: item.sourceName
969
+ };
788
970
  return [
789
971
  {
790
972
  icon: 'plus',
@@ -792,24 +974,123 @@ class ContextMenuManager extends jodit_esm_core_component_view_component__WEBPAC
792
974
  exec: ()=>{
793
975
  this.j.e.fire('folderCreate.filebrowser', item);
794
976
  }
977
+ },
978
+ {
979
+ icon: 'paste',
980
+ title: 'Paste',
981
+ enabled: this.j.canPaste(pasteTarget),
982
+ exec: ()=>{
983
+ this.j.e.fire('paste.filebrowser', pasteTarget);
984
+ }
985
+ }
986
+ ];
987
+ }
988
+ /**
989
+ * Context menu of an empty spot of the file list — actions apply to the
990
+ * currently opened folder
991
+ */ getAreaContextActions() {
992
+ const target = this.j.getPasteTarget();
993
+ return [
994
+ {
995
+ icon: 'paste',
996
+ title: 'Paste',
997
+ enabled: this.j.canPaste(target),
998
+ exec: ()=>{
999
+ this.j.e.fire('paste.filebrowser', target);
1000
+ }
1001
+ },
1002
+ {
1003
+ icon: 'plus',
1004
+ title: 'Add folder',
1005
+ enabled: this.j.dataProvider.canI('FolderCreate'),
1006
+ exec: ()=>{
1007
+ this.j.e.fire('folderCreate.filebrowser', {
1008
+ path: target.path,
1009
+ sourceName: target.sourceName
1010
+ });
1011
+ }
795
1012
  }
796
1013
  ];
797
1014
  }
798
1015
  }
799
1016
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
800
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':contextmenuFolder.filebrowser')
1017
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__.watch)(':contextmenuFolder.filebrowser')
801
1018
  ], ContextMenuManager.prototype, "onFolderContext", null);
802
1019
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
803
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':contextmenuItem.filebrowser')
1020
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__.watch)(':contextmenuItem.filebrowser')
804
1021
  ], ContextMenuManager.prototype, "onItemContext", null);
805
1022
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
806
- (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)(':contextmenuSource.filebrowser')
1023
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__.watch)(':contextmenuSource.filebrowser')
807
1024
  ], ContextMenuManager.prototype, "onSourceContext", null);
1025
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
1026
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__.watch)(':contextmenuArea.filebrowser')
1027
+ ], ContextMenuManager.prototype, "onAreaContext", null);
808
1028
  ContextMenuManager = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
809
- jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.component
1029
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__.component
810
1030
  ], ContextMenuManager);
811
1031
 
812
1032
 
1033
+ /***/ }),
1034
+
1035
+ /***/ 34698:
1036
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1037
+
1038
+ "use strict";
1039
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1040
+ /* harmony export */ DataProviderPro: function() { return /* binding */ DataProviderPro; }
1041
+ /* harmony export */ });
1042
+ /* harmony import */ var jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21537);
1043
+ /* harmony import */ var jodit_esm_modules_file_browser_data_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11787);
1044
+ /*!
1045
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
1046
+ * See LICENSE.md in the project root for license information.
1047
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
1048
+ */
1049
+
1050
+ /**
1051
+ * Extends the core data provider with copy operations
1052
+ * (`fileCopy`/`folderCopy` connector actions).
1053
+ */ class DataProviderPro extends jodit_esm_modules_file_browser_data_provider__WEBPACK_IMPORTED_MODULE_1__["default"] {
1054
+ /**
1055
+ * Copy a file / directory on the server
1056
+ *
1057
+ * @param filepath - The relative path to the file / folder source
1058
+ * @param path - Relative to the directory where you want to copy the file / folder
1059
+ */ copy(filepath, path, source, isFile) {
1060
+ const mode = isFile ? 'fileCopy' : 'folderCopy';
1061
+ const option = this.o[mode];
1062
+ if (!option) {
1063
+ throw (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_0__.error)('Set Copy api options');
1064
+ }
1065
+ option.data.from = filepath;
1066
+ option.data.path = path;
1067
+ option.data.source = source;
1068
+ return this.get(mode).then((resp)=>{
1069
+ if (this.isSuccess(resp)) {
1070
+ return true;
1071
+ }
1072
+ throw (0,jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_0__.error)(this.getMessage(resp));
1073
+ });
1074
+ }
1075
+ /**
1076
+ * Whether the connector allows copying. The core `canI` throws on rules
1077
+ * it does not know (`allowFileCopy`/`allowFolderCopy` are PRO-only), so
1078
+ * the same permission logic is replicated here.
1079
+ */ canCopy(isFile) {
1080
+ const rule = isFile ? 'allowFileCopy' : 'allowFolderCopy';
1081
+ const preset = this.o.permissionsPresets[rule];
1082
+ if (preset !== undefined) {
1083
+ return preset;
1084
+ }
1085
+ // The core keeps loaded permissions in a private field — read it
1086
+ // structurally (same default as `canI`: allowed until the connector
1087
+ // says otherwise)
1088
+ const { __currentPermissions: permissions } = this;
1089
+ return permissions == null || permissions[rule] === undefined || Boolean(permissions[rule]);
1090
+ }
1091
+ }
1092
+
1093
+
813
1094
  /***/ }),
814
1095
 
815
1096
  /***/ 77841:
@@ -817,6 +1098,9 @@ ContextMenuManager = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__
817
1098
 
818
1099
  "use strict";
819
1100
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1101
+ /* harmony export */ folderFullPath: function() { return /* binding */ folderFullPath; },
1102
+ /* harmony export */ isCutItem: function() { return /* binding */ isCutItem; },
1103
+ /* harmony export */ normalizeItemPath: function() { return /* binding */ normalizeItemPath; },
820
1104
  /* harmony export */ parentPath: function() { return /* binding */ parentPath; }
821
1105
  /* harmony export */ });
822
1106
  /*!
@@ -828,6 +1112,30 @@ ContextMenuManager = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_0__.__
828
1112
  parts.pop();
829
1113
  return parts.join('/') || '/';
830
1114
  };
1115
+ /**
1116
+ * Removes duplicated/leading/trailing slashes: `'/test//a/' -> 'test/a'`,
1117
+ * `'/' -> '/'`. Unlike the core `normalizeRelativePath` it never keeps a
1118
+ * trailing slash, so paths are always comparable with `parentPath` output.
1119
+ */ const normalizeItemPath = (path)=>{
1120
+ const parts = path.split('/').filter((p)=>p.length);
1121
+ return parts.join('/') || '/';
1122
+ };
1123
+ /**
1124
+ * Full path of a folder item. Tree items already keep the folder name inside
1125
+ * `path`, items converted from a tile keep only the parent directory there
1126
+ * (with a trailing slash) and the name separately.
1127
+ */ const folderFullPath = (item)=>item.path.endsWith('/') ? normalizeItemPath(item.path + item.name) : item.path;
1128
+ /**
1129
+ * Whether the list item is cut and waits to be moved (such items are shown
1130
+ * dimmed). Copied items are intentionally not matched — copying does not
1131
+ * remove the original.
1132
+ */ const isCutItem = (clipboard, item)=>{
1133
+ if (!clipboard.length) {
1134
+ return false;
1135
+ }
1136
+ const from = normalizeItemPath(item.path + (item.file || item.name || ''));
1137
+ return clipboard.some((clip)=>clip.mode === 'cut' && clip.from === from && clip.sourceName === item.sourceName);
1138
+ };
831
1139
 
832
1140
 
833
1141
  /***/ }),
@@ -1137,8 +1445,6 @@ function loadPartItems(state, dataProvider, offset, limit) {
1137
1445
  /* harmony import */ var jodit_esm_core_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91907);
1138
1446
  /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65478);
1139
1447
  /* harmony import */ var jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(159);
1140
-
1141
-
1142
1448
  /*!
1143
1449
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
1144
1450
  * See LICENSE.md in the project root for license information.
@@ -1146,6 +1452,8 @@ function loadPartItems(state, dataProvider, offset, limit) {
1146
1452
  */
1147
1453
 
1148
1454
 
1455
+
1456
+
1149
1457
  class PersistentStore extends jodit_esm_core_component__WEBPACK_IMPORTED_MODULE_2__.ViewComponent {
1150
1458
  /** @override */ className() {
1151
1459
  return 'PersistentStore';
@@ -1154,7 +1462,9 @@ class PersistentStore extends jodit_esm_core_component__WEBPACK_IMPORTED_MODULE_
1154
1462
  this.theme = this.state.theme;
1155
1463
  }
1156
1464
  onChangeView() {
1157
- this.view = this.state.view;
1465
+ if (this.__viewPersistenceEnabled()) {
1466
+ this.view = this.state.view;
1467
+ }
1158
1468
  }
1159
1469
  onChangeSortBy() {
1160
1470
  this.sortBy = this.state.sortBy;
@@ -1185,7 +1495,7 @@ class PersistentStore extends jodit_esm_core_component__WEBPACK_IMPORTED_MODULE_
1185
1495
  }
1186
1496
  return jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_4__.FileBrowserItem.create(item);
1187
1497
  });
1188
- this.state.view = this.view;
1498
+ this.state.view = this.__resolveView();
1189
1499
  this.state.theme = this.theme;
1190
1500
  this.state.showSideBar = this.showSideBar;
1191
1501
  this.state.showPreview = this.showPreview;
@@ -1193,6 +1503,32 @@ class PersistentStore extends jodit_esm_core_component__WEBPACK_IMPORTED_MODULE_
1193
1503
  this.state.sortBy = this.sortBy;
1194
1504
  this.state.foldersPosition = this.foldersPosition;
1195
1505
  }
1506
+ /**
1507
+ * The `filebrowser.view` option is the default view. The view stored from
1508
+ * the user's last choice wins over it only when view persistence is
1509
+ * enabled (`saveStateInStorage.storeView !== false`) and the user has
1510
+ * actually chosen a view before.
1511
+ */ __resolveView() {
1512
+ if (this.__viewPersistenceEnabled() && this.__hasStoredView()) {
1513
+ return this.view;
1514
+ }
1515
+ return this.__configView() ?? 'tiles';
1516
+ }
1517
+ __configView() {
1518
+ const { view } = this.j.o;
1519
+ return view === 'tiles' || view === 'list' || view === 'compact' ? view : null;
1520
+ }
1521
+ __viewPersistenceEnabled() {
1522
+ const { saveStateInStorage } = this.j.o;
1523
+ if (saveStateInStorage === false) {
1524
+ return false;
1525
+ }
1526
+ return !saveStateInStorage || saveStateInStorage.storeView !== false;
1527
+ }
1528
+ __hasStoredView() {
1529
+ // Mirrors the storage key of the `@persistent` decorator
1530
+ return this.j.storage.get(`${this.j.o.namespace}${this.componentName}_prop_view`) != null;
1531
+ }
1196
1532
  constructor(jodit, state){
1197
1533
  super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "theme", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sortBy", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "view", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "foldersPosition", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "tileSize", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "favorites", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "showSideBar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "showPreview", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "showFavorites", void 0), this.state = state, this.sortBy = 'changed-desc', this.view = 'tiles', this.foldersPosition = 'top', this.tileSize = 'default', this.favorites = [], this.showSideBar = true, this.showPreview = false, this.showFavorites = true;
1198
1534
  }
@@ -1425,7 +1761,16 @@ function folderToTreeItem(name, path, sourceName) {
1425
1761
  Small: 'Klein',
1426
1762
  Large: 'Groß',
1427
1763
  'Extra large': 'Sehr groß',
1428
- 'Tile size': 'Kachelgröße'
1764
+ 'Tile size': 'Kachelgröße',
1765
+ Cut: 'Ausschneiden',
1766
+ Copy: 'Kopieren',
1767
+ Preview: 'Vorschau',
1768
+ Download: 'Herunterladen',
1769
+ 'Create folder': 'Ordner erstellen',
1770
+ Home: 'Start',
1771
+ 'Select image': 'Bild auswählen',
1772
+ '%s item(s) were moved': '%s Element(e) wurden verschoben',
1773
+ '%s item(s) were copied': '%s Element(e) wurden kopiert'
1429
1774
  };
1430
1775
 
1431
1776
 
@@ -1481,7 +1826,16 @@ __webpack_require__.r(__webpack_exports__);
1481
1826
  Small: 'Маленькие',
1482
1827
  Large: 'Большие',
1483
1828
  'Extra large': 'Очень большие',
1484
- 'Tile size': 'Размер плитки'
1829
+ 'Tile size': 'Размер плитки',
1830
+ Cut: 'Вырезать',
1831
+ Copy: 'Копировать',
1832
+ Preview: 'Просмотр',
1833
+ Download: 'Скачать',
1834
+ 'Create folder': 'Создать папку',
1835
+ Home: 'Главная',
1836
+ 'Select image': 'Выберите изображение',
1837
+ '%s item(s) were moved': 'Перемещено элементов: %s',
1838
+ '%s item(s) were copied': 'Скопировано элементов: %s'
1485
1839
  };
1486
1840
 
1487
1841
 
@@ -1601,6 +1955,12 @@ class UIBrowserHeader extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIG
1601
1955
  /** @override */ className() {
1602
1956
  return 'UIBrowserHeader';
1603
1957
  }
1958
+ /**
1959
+ * The Paste button appears in the toolbar only when the clipboard is not
1960
+ * empty — rebuild the toolbar when it changes
1961
+ */ onChangeClipboard() {
1962
+ this.toolbar.build(this.__getButtons());
1963
+ }
1604
1964
  __getButtons() {
1605
1965
  const options = this.options.toolbarButtons ?? [];
1606
1966
  return options.filter((btn)=>{
@@ -1616,12 +1976,14 @@ class UIBrowserHeader extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIG
1616
1976
  return this.j.dataProvider.canI('FileUpload');
1617
1977
  case 'filebrowser.remove':
1618
1978
  return this.j.dataProvider.canI('FileRemove');
1979
+ case 'filebrowser.paste':
1980
+ return this.state.clipboard.length > 0;
1619
1981
  }
1620
1982
  return true;
1621
1983
  });
1622
1984
  }
1623
1985
  constructor(jodit, options, stateManager){
1624
- super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "stateManager", void 0), /** @override */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "syncMod", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "toolbar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "filter", void 0), this.options = options, this.stateManager = stateManager, this.syncMod = true, this.toolbar = (0,jodit_esm_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_5__.makeCollection)(this.j), this.filter = new jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIInput(this.j, {
1986
+ super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "stateManager", void 0), /** @override */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "syncMod", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "toolbar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "filter", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), this.options = options, this.stateManager = stateManager, this.syncMod = true, this.toolbar = (0,jodit_esm_modules_toolbar_factory__WEBPACK_IMPORTED_MODULE_5__.makeCollection)(this.j), this.filter = new jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIInput(this.j, {
1625
1987
  icon: 'search',
1626
1988
  placeholder: 'Filter',
1627
1989
  clearButton: true,
@@ -1629,11 +1991,15 @@ class UIBrowserHeader extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIG
1629
1991
  this.stateManager.setFilter(value);
1630
1992
  }
1631
1993
  });
1994
+ this.state = stateManager.state;
1632
1995
  this.append(this.toolbar).append(this.filter);
1633
1996
  this.filter.container.classList.add(this.getFullElName('filter'));
1634
1997
  this.toolbar.setMod('mode', 'header').build(this.__getButtons());
1635
1998
  }
1636
1999
  }
2000
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2001
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.clipboard')
2002
+ ], UIBrowserHeader.prototype, "onChangeClipboard", null);
1637
2003
  UIBrowserHeader = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1638
2004
  jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.component
1639
2005
  ], UIBrowserHeader);
@@ -1914,12 +2280,13 @@ UILightBox = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
1914
2280
  /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65478);
1915
2281
  /* harmony import */ var jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
1916
2282
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67510);
1917
- /* harmony import */ var jodit_pro_plugins_finder_ui_preview_preview__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8358);
1918
- /* harmony import */ var jodit_pro_plugins_finder_ui_settings_settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60062);
1919
- /* harmony import */ var jodit_pro_plugins_finder_ui_sidebar_sidebar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(70950);
1920
- /* harmony import */ var jodit_pro_plugins_finder_ui_sources_sources__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59198);
1921
- /* harmony import */ var jodit_pro_plugins_finder_ui_statusbar_statusbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17234);
1922
- /* harmony import */ var jodit_pro_plugins_finder_ui_virtual_scroll_virtual_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(43778);
2283
+ /* harmony import */ var jodit_pro_plugins_finder_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77841);
2284
+ /* harmony import */ var jodit_pro_plugins_finder_ui_preview_preview__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8358);
2285
+ /* harmony import */ var jodit_pro_plugins_finder_ui_settings_settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(60062);
2286
+ /* harmony import */ var jodit_pro_plugins_finder_ui_sidebar_sidebar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(70950);
2287
+ /* harmony import */ var jodit_pro_plugins_finder_ui_sources_sources__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59198);
2288
+ /* harmony import */ var jodit_pro_plugins_finder_ui_statusbar_statusbar__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(17234);
2289
+ /* harmony import */ var jodit_pro_plugins_finder_ui_virtual_scroll_virtual_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(43778);
1923
2290
  /*!
1924
2291
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
1925
2292
  * See LICENSE.md in the project root for license information.
@@ -1936,6 +2303,7 @@ UILightBox = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
1936
2303
 
1937
2304
 
1938
2305
 
2306
+
1939
2307
  class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGroup {
1940
2308
  /** @override */ className() {
1941
2309
  return 'UIBrowserPanel';
@@ -1972,6 +2340,18 @@ class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGr
1972
2340
  }
1973
2341
  onChangeElements() {
1974
2342
  this.items.build(this.stateManager.state.elements);
2343
+ this.__applyCutMods();
2344
+ }
2345
+ onChangeClipboard() {
2346
+ this.__applyCutMods();
2347
+ }
2348
+ /**
2349
+ * Cut items are shown dimmed until they are pasted
2350
+ */ __applyCutMods() {
2351
+ const { clipboard } = this.state;
2352
+ this.items.elements.forEach((elm)=>{
2353
+ elm.setMod('cut', (0,jodit_pro_plugins_finder_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.isCutItem)(clipboard, elm.item));
2354
+ });
1975
2355
  }
1976
2356
  onChangeActiveElements() {
1977
2357
  if (!this.state.activeElements.length) {
@@ -2043,9 +2423,9 @@ class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGr
2043
2423
  this.j.e.fire('afterOpenFolder.filebrowser');
2044
2424
  }
2045
2425
  constructor(jodit, stateManager){
2046
- super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "stateManager", void 0), /** @override */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "syncMod", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sources", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sidebar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "preview", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "statusbar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "items", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "settings", void 0), this.stateManager = stateManager, this.syncMod = true, this.sources = new jodit_pro_plugins_finder_ui_sources_sources__WEBPACK_IMPORTED_MODULE_8__.UIBrowserSources(this.j), this.sidebar = new jodit_pro_plugins_finder_ui_sidebar_sidebar__WEBPACK_IMPORTED_MODULE_7__.UISidebar(this.jodit, [
2426
+ super(jodit), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "stateManager", void 0), /** @override */ (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "syncMod", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sources", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "sidebar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "preview", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "statusbar", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "items", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "settings", void 0), this.stateManager = stateManager, this.syncMod = true, this.sources = new jodit_pro_plugins_finder_ui_sources_sources__WEBPACK_IMPORTED_MODULE_9__.UIBrowserSources(this.j), this.sidebar = new jodit_pro_plugins_finder_ui_sidebar_sidebar__WEBPACK_IMPORTED_MODULE_8__.UISidebar(this.jodit, [
2047
2427
  this.sources
2048
- ], this.stateManager.state), this.preview = new jodit_pro_plugins_finder_ui_preview_preview__WEBPACK_IMPORTED_MODULE_5__.UIPreview(this.jodit, this.stateManager.state), this.statusbar = new jodit_pro_plugins_finder_ui_statusbar_statusbar__WEBPACK_IMPORTED_MODULE_9__.UIBrowserStatusBar(this.j), this.items = new jodit_pro_plugins_finder_ui_virtual_scroll_virtual_scroll__WEBPACK_IMPORTED_MODULE_10__.UIVirtualScroll(this.j, this.stateManager), this.settings = new jodit_pro_plugins_finder_ui_settings_settings__WEBPACK_IMPORTED_MODULE_6__.UIBrowserSettings(this.jodit, this.stateManager.state);
2428
+ ], this.stateManager.state), this.preview = new jodit_pro_plugins_finder_ui_preview_preview__WEBPACK_IMPORTED_MODULE_6__.UIPreview(this.jodit, this.stateManager.state), this.statusbar = new jodit_pro_plugins_finder_ui_statusbar_statusbar__WEBPACK_IMPORTED_MODULE_10__.UIBrowserStatusBar(this.j), this.items = new jodit_pro_plugins_finder_ui_virtual_scroll_virtual_scroll__WEBPACK_IMPORTED_MODULE_11__.UIVirtualScroll(this.j, this.stateManager), this.settings = new jodit_pro_plugins_finder_ui_settings_settings__WEBPACK_IMPORTED_MODULE_7__.UIBrowserSettings(this.jodit, this.stateManager.state);
2049
2429
  this.state = stateManager.state;
2050
2430
  this.append(this.sidebar, 'content');
2051
2431
  this.append(this.items, 'content');
@@ -2071,6 +2451,9 @@ class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGr
2071
2451
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2072
2452
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.elements')
2073
2453
  ], UIBrowserPanel.prototype, "onChangeElements", null);
2454
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2455
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.clipboard')
2456
+ ], UIBrowserPanel.prototype, "onChangeClipboard", null);
2074
2457
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2075
2458
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.activeElements')
2076
2459
  ], UIBrowserPanel.prototype, "onChangeActiveElements", null);
@@ -2840,11 +3223,12 @@ UITree = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2840
3223
  /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82749);
2841
3224
  /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
2842
3225
  /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65478);
2843
- /* harmony import */ var jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5700);
2844
- /* harmony import */ var jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62405);
2845
- /* harmony import */ var jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(159);
2846
- /* harmony import */ var jodit_pro_plugins_finder_ui_item_item__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21130);
2847
- /* harmony import */ var jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(36469);
3226
+ /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2748);
3227
+ /* harmony import */ var jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5700);
3228
+ /* harmony import */ var jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62405);
3229
+ /* harmony import */ var jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(159);
3230
+ /* harmony import */ var jodit_pro_plugins_finder_ui_item_item__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21130);
3231
+ /* harmony import */ var jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(36469);
2848
3232
  /*!
2849
3233
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
2850
3234
  * See LICENSE.md in the project root for license information.
@@ -2858,7 +3242,8 @@ UITree = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2858
3242
 
2859
3243
 
2860
3244
 
2861
- class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_4__.UIGroup {
3245
+
3246
+ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_5__.UIGroup {
2862
3247
  /** @override */ className() {
2863
3248
  return 'UIVirtualScroll';
2864
3249
  }
@@ -2871,7 +3256,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2871
3256
  }
2872
3257
  reconcile(items) {
2873
3258
  const clearIndex = this.elements.findIndex((elm, index)=>{
2874
- return !items[index] || elm.item.uniqueHashKey !== jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_5__.FileBrowserItem.create(items[index]).uniqueHashKey;
3259
+ return !items[index] || elm.item.uniqueHashKey !== jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_6__.FileBrowserItem.create(items[index]).uniqueHashKey;
2875
3260
  });
2876
3261
  if (clearIndex > -1) {
2877
3262
  for(let i = clearIndex; i < this.elements.length; i += 1){
@@ -2923,7 +3308,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2923
3308
  build(items) {
2924
3309
  const clearIndex = this.reconcile(items);
2925
3310
  items.slice(clearIndex > -1 ? clearIndex : this.elements.length).forEach((item)=>{
2926
- const elm = new jodit_pro_plugins_finder_ui_item_item__WEBPACK_IMPORTED_MODULE_6__.UIBrowserItem(this.jodit, item);
3311
+ const elm = new jodit_pro_plugins_finder_ui_item_item__WEBPACK_IMPORTED_MODULE_7__.UIBrowserItem(this.jodit, item);
2927
3312
  Object.keys(this.mods).forEach((mod)=>{
2928
3313
  elm.setMod(mod, this.mods[mod]);
2929
3314
  });
@@ -2936,6 +3321,17 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2936
3321
  void this.j.loadingManager.loadItemsChunk();
2937
3322
  }
2938
3323
  }
3324
+ /**
3325
+ * Context menu of an empty spot of the list (clicks on items are handled
3326
+ * by the items themselves)
3327
+ */ onAreaContextMenu(e) {
3328
+ const { target } = e;
3329
+ if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isNode(target) && this.elements.some((elm)=>elm.container.contains(target))) {
3330
+ return;
3331
+ }
3332
+ this.j.e.fire('contextmenuArea.filebrowser', e);
3333
+ return false;
3334
+ }
2939
3335
  onDragOver(e) {
2940
3336
  e.preventDefault();
2941
3337
  this.setMod('dragover', true);
@@ -2945,7 +3341,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2945
3341
  this.setMod('dragover', false);
2946
3342
  }
2947
3343
  addItemsSelector() {
2948
- jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_7__.UISelectItems.install(this);
3344
+ jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_8__.UISelectItems.install(this);
2949
3345
  }
2950
3346
  static intersectRect(r1, r2) {
2951
3347
  return !(r2.left > r1.left + r1.width || r2.left + r2.width < r1.left || r2.top > r1.top + r1.height || r2.top + r2.height < r1.top);
@@ -2953,7 +3349,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2953
3349
  onSelectItems(bound) {
2954
3350
  const selected = [];
2955
3351
  this.elements.forEach((elm)=>{
2956
- const pos = (0,jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_3__.position)(elm.container);
3352
+ const pos = (0,jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_4__.position)(elm.container);
2957
3353
  if (UIVirtualScroll.intersectRect(pos, bound)) {
2958
3354
  selected.push(elm.item);
2959
3355
  }
@@ -2971,6 +3367,9 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2971
3367
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:scroll'),
2972
3368
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.throttle)()
2973
3369
  ], UIVirtualScroll.prototype, "onScrollLoadChunk", null);
3370
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
3371
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:contextmenu')
3372
+ ], UIVirtualScroll.prototype, "onAreaContextMenu", null);
2974
3373
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2975
3374
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:dragover')
2976
3375
  ], UIVirtualScroll.prototype, "onDragOver", null);