jodit-pro 4.13.4 → 4.13.7

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 (361) hide show
  1. package/es2015/jodit.css +1 -1
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +10 -10
  4. package/es2015/jodit.js +19 -5
  5. package/es2015/jodit.min.js +3 -3
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  11. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  12. package/es2015/plugins/backup/backup.css +1 -1
  13. package/es2015/plugins/backup/backup.js +1 -1
  14. package/es2015/plugins/backup/backup.min.js +1 -1
  15. package/es2015/plugins/button-generator/button-generator.css +1 -1
  16. package/es2015/plugins/button-generator/button-generator.js +1 -1
  17. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  18. package/es2015/plugins/change-case/change-case.js +1 -1
  19. package/es2015/plugins/change-case/change-case.min.js +1 -1
  20. package/es2015/plugins/color-picker/color-picker.css +1 -1
  21. package/es2015/plugins/color-picker/color-picker.js +1 -1
  22. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  23. package/es2015/plugins/emoji/emoji.css +1 -1
  24. package/es2015/plugins/emoji/emoji.js +1 -1
  25. package/es2015/plugins/emoji/emoji.min.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  28. package/es2015/plugins/finder/finder.css +4 -1
  29. package/es2015/plugins/finder/finder.js +503 -112
  30. package/es2015/plugins/finder/finder.min.css +1 -1
  31. package/es2015/plugins/finder/finder.min.js +7 -7
  32. package/es2015/plugins/google-maps/google-maps.css +1 -1
  33. package/es2015/plugins/google-maps/google-maps.js +1 -1
  34. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  35. package/es2015/plugins/google-search/google-search.js +1 -1
  36. package/es2015/plugins/google-search/google-search.min.js +1 -1
  37. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.js +29 -11
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
  45. package/es2015/plugins/keyboard/keyboard.css +1 -1
  46. package/es2015/plugins/keyboard/keyboard.js +1 -1
  47. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  48. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  49. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  50. package/es2015/plugins/page-break/page-break.js +1 -1
  51. package/es2015/plugins/page-break/page-break.min.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.css +1 -1
  53. package/es2015/plugins/paste-code/paste-code.js +1 -1
  54. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  55. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  56. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  57. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  58. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  59. package/es2015/plugins/style/style.css +1 -1
  60. package/es2015/plugins/style/style.js +1 -1
  61. package/es2015/plugins/style/style.min.js +1 -1
  62. package/es2015/plugins/templates/templates.css +1 -1
  63. package/es2015/plugins/templates/templates.js +1 -1
  64. package/es2015/plugins/templates/templates.min.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.css +1 -1
  66. package/es2015/plugins/todo-list/todo-list.js +1 -1
  67. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  68. package/es2015/plugins/translate/translate.css +1 -1
  69. package/es2015/plugins/translate/translate.js +1 -1
  70. package/es2015/plugins/translate/translate.min.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.css +1 -1
  72. package/es2015/plugins/tune-block/tune-block.js +1 -1
  73. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  74. package/es2018/jodit.fat.min.css +1 -1
  75. package/es2018/jodit.fat.min.js +21 -21
  76. package/es2018/jodit.min.js +3 -3
  77. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  78. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  79. package/es2018/plugins/backup/backup.min.js +1 -1
  80. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  81. package/es2018/plugins/change-case/change-case.min.js +1 -1
  82. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  83. package/es2018/plugins/emoji/emoji.min.js +1 -1
  84. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  85. package/es2018/plugins/finder/finder.min.css +1 -1
  86. package/es2018/plugins/finder/finder.min.js +13 -13
  87. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  88. package/es2018/plugins/google-search/google-search.min.js +1 -1
  89. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  90. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  91. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
  92. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  93. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  94. package/es2018/plugins/page-break/page-break.min.js +1 -1
  95. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  96. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  97. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  98. package/es2018/plugins/style/style.min.js +1 -1
  99. package/es2018/plugins/templates/templates.min.js +1 -1
  100. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  101. package/es2018/plugins/translate/translate.min.js +1 -1
  102. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  103. package/es2021/jodit.css +1 -1
  104. package/es2021/jodit.fat.min.css +1 -1
  105. package/es2021/jodit.fat.min.js +20 -20
  106. package/es2021/jodit.js +19 -5
  107. package/es2021/jodit.min.js +4 -4
  108. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  109. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  110. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  111. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  112. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  113. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  114. package/es2021/plugins/backup/backup.css +1 -1
  115. package/es2021/plugins/backup/backup.js +1 -1
  116. package/es2021/plugins/backup/backup.min.js +1 -1
  117. package/es2021/plugins/button-generator/button-generator.css +1 -1
  118. package/es2021/plugins/button-generator/button-generator.js +1 -1
  119. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  120. package/es2021/plugins/change-case/change-case.js +1 -1
  121. package/es2021/plugins/change-case/change-case.min.js +1 -1
  122. package/es2021/plugins/color-picker/color-picker.css +1 -1
  123. package/es2021/plugins/color-picker/color-picker.js +1 -1
  124. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  125. package/es2021/plugins/emoji/emoji.css +1 -1
  126. package/es2021/plugins/emoji/emoji.js +1 -1
  127. package/es2021/plugins/emoji/emoji.min.js +1 -1
  128. package/es2021/plugins/export-docs/export-docs.js +1 -1
  129. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  130. package/es2021/plugins/finder/finder.css +4 -1
  131. package/es2021/plugins/finder/finder.js +501 -112
  132. package/es2021/plugins/finder/finder.min.css +1 -1
  133. package/es2021/plugins/finder/finder.min.js +13 -13
  134. package/es2021/plugins/google-maps/google-maps.css +1 -1
  135. package/es2021/plugins/google-maps/google-maps.js +1 -1
  136. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  137. package/es2021/plugins/google-search/google-search.js +1 -1
  138. package/es2021/plugins/google-search/google-search.min.js +1 -1
  139. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  140. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  141. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  142. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  143. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  144. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  145. package/es2021/plugins/image-editor-pro/image-editor-pro.js +29 -11
  146. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +4 -4
  147. package/es2021/plugins/keyboard/keyboard.css +1 -1
  148. package/es2021/plugins/keyboard/keyboard.js +1 -1
  149. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  150. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  151. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  152. package/es2021/plugins/page-break/page-break.js +1 -1
  153. package/es2021/plugins/page-break/page-break.min.js +1 -1
  154. package/es2021/plugins/paste-code/paste-code.css +1 -1
  155. package/es2021/plugins/paste-code/paste-code.js +1 -1
  156. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  157. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  158. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  159. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  160. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  161. package/es2021/plugins/style/style.css +1 -1
  162. package/es2021/plugins/style/style.js +1 -1
  163. package/es2021/plugins/style/style.min.js +1 -1
  164. package/es2021/plugins/templates/templates.css +1 -1
  165. package/es2021/plugins/templates/templates.js +1 -1
  166. package/es2021/plugins/templates/templates.min.js +1 -1
  167. package/es2021/plugins/todo-list/todo-list.css +1 -1
  168. package/es2021/plugins/todo-list/todo-list.js +1 -1
  169. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  170. package/es2021/plugins/translate/translate.css +1 -1
  171. package/es2021/plugins/translate/translate.js +1 -1
  172. package/es2021/plugins/translate/translate.min.js +1 -1
  173. package/es2021/plugins/tune-block/tune-block.css +1 -1
  174. package/es2021/plugins/tune-block/tune-block.js +1 -1
  175. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  176. package/es2021.en/jodit.css +1 -1
  177. package/es2021.en/jodit.fat.min.css +1 -1
  178. package/es2021.en/jodit.fat.min.js +11 -11
  179. package/es2021.en/jodit.js +19 -5
  180. package/es2021.en/jodit.min.js +4 -4
  181. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  182. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  183. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  184. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  185. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  186. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  187. package/es2021.en/plugins/backup/backup.css +1 -1
  188. package/es2021.en/plugins/backup/backup.js +1 -1
  189. package/es2021.en/plugins/backup/backup.min.js +1 -1
  190. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  191. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  192. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  193. package/es2021.en/plugins/change-case/change-case.js +1 -1
  194. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  195. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  196. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  197. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  198. package/es2021.en/plugins/emoji/emoji.css +1 -1
  199. package/es2021.en/plugins/emoji/emoji.js +1 -1
  200. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  201. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  202. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  203. package/es2021.en/plugins/finder/finder.css +4 -1
  204. package/es2021.en/plugins/finder/finder.js +491 -110
  205. package/es2021.en/plugins/finder/finder.min.css +1 -1
  206. package/es2021.en/plugins/finder/finder.min.js +13 -13
  207. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  208. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  209. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  210. package/es2021.en/plugins/google-search/google-search.js +1 -1
  211. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  212. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  213. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  214. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  215. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  216. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  217. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  218. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +29 -11
  219. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +4 -4
  220. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  221. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  222. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  223. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  224. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  225. package/es2021.en/plugins/page-break/page-break.js +1 -1
  226. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  227. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  228. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  229. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  230. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  231. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  232. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  233. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  234. package/es2021.en/plugins/style/style.css +1 -1
  235. package/es2021.en/plugins/style/style.js +1 -1
  236. package/es2021.en/plugins/style/style.min.js +1 -1
  237. package/es2021.en/plugins/templates/templates.css +1 -1
  238. package/es2021.en/plugins/templates/templates.js +1 -1
  239. package/es2021.en/plugins/templates/templates.min.js +1 -1
  240. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  241. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  242. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  243. package/es2021.en/plugins/translate/translate.css +1 -1
  244. package/es2021.en/plugins/translate/translate.js +1 -1
  245. package/es2021.en/plugins/translate/translate.min.js +1 -1
  246. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  247. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  248. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  249. package/es5/jodit.css +2 -2
  250. package/es5/jodit.fat.min.css +1 -1
  251. package/es5/jodit.fat.min.js +2 -2
  252. package/es5/jodit.js +19 -5
  253. package/es5/jodit.min.css +2 -2
  254. package/es5/jodit.min.js +2 -2
  255. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  256. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  257. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  258. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  259. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  260. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  261. package/es5/plugins/backup/backup.css +1 -1
  262. package/es5/plugins/backup/backup.js +1 -1
  263. package/es5/plugins/backup/backup.min.js +1 -1
  264. package/es5/plugins/button-generator/button-generator.css +1 -1
  265. package/es5/plugins/button-generator/button-generator.js +1 -1
  266. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  267. package/es5/plugins/change-case/change-case.js +1 -1
  268. package/es5/plugins/change-case/change-case.min.js +1 -1
  269. package/es5/plugins/color-picker/color-picker.css +1 -1
  270. package/es5/plugins/color-picker/color-picker.js +1 -1
  271. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  272. package/es5/plugins/emoji/emoji.css +1 -1
  273. package/es5/plugins/emoji/emoji.js +1 -1
  274. package/es5/plugins/emoji/emoji.min.js +1 -1
  275. package/es5/plugins/export-docs/export-docs.js +1 -1
  276. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  277. package/es5/plugins/finder/finder.css +4 -1
  278. package/es5/plugins/finder/finder.js +691 -116
  279. package/es5/plugins/finder/finder.min.css +1 -1
  280. package/es5/plugins/finder/finder.min.js +2 -2
  281. package/es5/plugins/google-maps/google-maps.css +1 -1
  282. package/es5/plugins/google-maps/google-maps.js +1 -1
  283. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  284. package/es5/plugins/google-search/google-search.js +1 -1
  285. package/es5/plugins/google-search/google-search.min.js +1 -1
  286. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  287. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  288. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  289. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  290. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  291. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  292. package/es5/plugins/image-editor-pro/image-editor-pro.js +30 -12
  293. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
  294. package/es5/plugins/keyboard/keyboard.css +1 -1
  295. package/es5/plugins/keyboard/keyboard.js +1 -1
  296. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  297. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  298. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  299. package/es5/plugins/page-break/page-break.js +1 -1
  300. package/es5/plugins/page-break/page-break.min.js +1 -1
  301. package/es5/plugins/paste-code/paste-code.css +1 -1
  302. package/es5/plugins/paste-code/paste-code.js +1 -1
  303. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  304. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  305. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  306. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  307. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  308. package/es5/plugins/style/style.css +1 -1
  309. package/es5/plugins/style/style.js +1 -1
  310. package/es5/plugins/style/style.min.js +1 -1
  311. package/es5/plugins/templates/templates.css +1 -1
  312. package/es5/plugins/templates/templates.js +1 -1
  313. package/es5/plugins/templates/templates.min.js +1 -1
  314. package/es5/plugins/todo-list/todo-list.css +1 -1
  315. package/es5/plugins/todo-list/todo-list.js +1 -1
  316. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  317. package/es5/plugins/translate/translate.css +1 -1
  318. package/es5/plugins/translate/translate.js +1 -1
  319. package/es5/plugins/translate/translate.min.js +1 -1
  320. package/es5/plugins/tune-block/tune-block.css +1 -1
  321. package/es5/plugins/tune-block/tune-block.js +1 -1
  322. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  323. package/es5/polyfills.fat.min.js +1 -1
  324. package/es5/polyfills.js +1 -1
  325. package/es5/polyfills.min.js +1 -1
  326. package/esm/plugins/finder/browser.d.ts +21 -3
  327. package/esm/plugins/finder/browser.js +1 -1
  328. package/esm/plugins/finder/config.js +1 -1
  329. package/esm/plugins/finder/helpers/context-menu.d.ts +6 -0
  330. package/esm/plugins/finder/helpers/context-menu.js +1 -1
  331. package/esm/plugins/finder/helpers/data-provider.d.ts +26 -0
  332. package/esm/plugins/finder/helpers/data-provider.js +1 -0
  333. package/esm/plugins/finder/helpers/helpers.d.ts +27 -0
  334. package/esm/plugins/finder/helpers/helpers.js +1 -1
  335. package/esm/plugins/finder/helpers/persistent-store.d.ts +13 -8
  336. package/esm/plugins/finder/helpers/persistent-store.js +1 -1
  337. package/esm/plugins/finder/interface.d.ts +24 -1
  338. package/esm/plugins/finder/langs/de.d.ts +4 -0
  339. package/esm/plugins/finder/langs/de.js +1 -1
  340. package/esm/plugins/finder/langs/ru.d.ts +4 -0
  341. package/esm/plugins/finder/langs/ru.js +1 -1
  342. package/esm/plugins/finder/ui/header/header.d.ts +7 -1
  343. package/esm/plugins/finder/ui/header/header.js +1 -1
  344. package/esm/plugins/finder/ui/panel/panel.d.ts +5 -0
  345. package/esm/plugins/finder/ui/panel/panel.js +2 -2
  346. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +5 -0
  347. package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.js +2 -2
  348. package/esm/plugins/image-editor-pro/adapter.js +1 -1
  349. package/esm/plugins/image-editor-pro/image-editor-pro.js +1 -1
  350. package/package.json +1 -1
  351. package/types/plugins/finder/browser.d.ts +21 -3
  352. package/types/plugins/finder/helpers/context-menu.d.ts +6 -0
  353. package/types/plugins/finder/helpers/data-provider.d.ts +26 -0
  354. package/types/plugins/finder/helpers/helpers.d.ts +27 -0
  355. package/types/plugins/finder/helpers/persistent-store.d.ts +13 -8
  356. package/types/plugins/finder/interface.d.ts +24 -1
  357. package/types/plugins/finder/langs/de.d.ts +4 -0
  358. package/types/plugins/finder/langs/ru.d.ts +4 -0
  359. package/types/plugins/finder/ui/header/header.d.ts +7 -1
  360. package/types/plugins/finder/ui/panel/panel.d.ts +5 -0
  361. 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.4
4
+ * Version: v4.13.7
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,11 @@ 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
+ '%s item(s) were moved': '%s Element(e) wurden verschoben',
1768
+ '%s item(s) were copied': '%s Element(e) wurden kopiert'
1429
1769
  };
1430
1770
 
1431
1771
 
@@ -1481,7 +1821,11 @@ __webpack_require__.r(__webpack_exports__);
1481
1821
  Small: 'Маленькие',
1482
1822
  Large: 'Большие',
1483
1823
  'Extra large': 'Очень большие',
1484
- 'Tile size': 'Размер плитки'
1824
+ 'Tile size': 'Размер плитки',
1825
+ Cut: 'Вырезать',
1826
+ Copy: 'Копировать',
1827
+ '%s item(s) were moved': 'Перемещено элементов: %s',
1828
+ '%s item(s) were copied': 'Скопировано элементов: %s'
1485
1829
  };
1486
1830
 
1487
1831
 
@@ -1601,6 +1945,12 @@ class UIBrowserHeader extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIG
1601
1945
  /** @override */ className() {
1602
1946
  return 'UIBrowserHeader';
1603
1947
  }
1948
+ /**
1949
+ * The Paste button appears in the toolbar only when the clipboard is not
1950
+ * empty — rebuild the toolbar when it changes
1951
+ */ onChangeClipboard() {
1952
+ this.toolbar.build(this.__getButtons());
1953
+ }
1604
1954
  __getButtons() {
1605
1955
  const options = this.options.toolbarButtons ?? [];
1606
1956
  return options.filter((btn)=>{
@@ -1616,12 +1966,14 @@ class UIBrowserHeader extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIG
1616
1966
  return this.j.dataProvider.canI('FileUpload');
1617
1967
  case 'filebrowser.remove':
1618
1968
  return this.j.dataProvider.canI('FileRemove');
1969
+ case 'filebrowser.paste':
1970
+ return this.state.clipboard.length > 0;
1619
1971
  }
1620
1972
  return true;
1621
1973
  });
1622
1974
  }
1623
1975
  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, {
1976
+ 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
1977
  icon: 'search',
1626
1978
  placeholder: 'Filter',
1627
1979
  clearButton: true,
@@ -1629,11 +1981,15 @@ class UIBrowserHeader extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIG
1629
1981
  this.stateManager.setFilter(value);
1630
1982
  }
1631
1983
  });
1984
+ this.state = stateManager.state;
1632
1985
  this.append(this.toolbar).append(this.filter);
1633
1986
  this.filter.container.classList.add(this.getFullElName('filter'));
1634
1987
  this.toolbar.setMod('mode', 'header').build(this.__getButtons());
1635
1988
  }
1636
1989
  }
1990
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1991
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.clipboard')
1992
+ ], UIBrowserHeader.prototype, "onChangeClipboard", null);
1637
1993
  UIBrowserHeader = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
1638
1994
  jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.component
1639
1995
  ], UIBrowserHeader);
@@ -1914,12 +2270,13 @@ UILightBox = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
1914
2270
  /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65478);
1915
2271
  /* harmony import */ var jodit_esm_core_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21537);
1916
2272
  /* 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);
2273
+ /* harmony import */ var jodit_pro_plugins_finder_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77841);
2274
+ /* harmony import */ var jodit_pro_plugins_finder_ui_preview_preview__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8358);
2275
+ /* harmony import */ var jodit_pro_plugins_finder_ui_settings_settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(60062);
2276
+ /* harmony import */ var jodit_pro_plugins_finder_ui_sidebar_sidebar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(70950);
2277
+ /* harmony import */ var jodit_pro_plugins_finder_ui_sources_sources__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59198);
2278
+ /* harmony import */ var jodit_pro_plugins_finder_ui_statusbar_statusbar__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(17234);
2279
+ /* harmony import */ var jodit_pro_plugins_finder_ui_virtual_scroll_virtual_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(43778);
1923
2280
  /*!
1924
2281
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
1925
2282
  * See LICENSE.md in the project root for license information.
@@ -1936,6 +2293,7 @@ UILightBox = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
1936
2293
 
1937
2294
 
1938
2295
 
2296
+
1939
2297
  class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGroup {
1940
2298
  /** @override */ className() {
1941
2299
  return 'UIBrowserPanel';
@@ -1972,6 +2330,18 @@ class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGr
1972
2330
  }
1973
2331
  onChangeElements() {
1974
2332
  this.items.build(this.stateManager.state.elements);
2333
+ this.__applyCutMods();
2334
+ }
2335
+ onChangeClipboard() {
2336
+ this.__applyCutMods();
2337
+ }
2338
+ /**
2339
+ * Cut items are shown dimmed until they are pasted
2340
+ */ __applyCutMods() {
2341
+ const { clipboard } = this.state;
2342
+ this.items.elements.forEach((elm)=>{
2343
+ elm.setMod('cut', (0,jodit_pro_plugins_finder_helpers_helpers__WEBPACK_IMPORTED_MODULE_5__.isCutItem)(clipboard, elm.item));
2344
+ });
1975
2345
  }
1976
2346
  onChangeActiveElements() {
1977
2347
  if (!this.state.activeElements.length) {
@@ -2043,9 +2413,9 @@ class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGr
2043
2413
  this.j.e.fire('afterOpenFolder.filebrowser');
2044
2414
  }
2045
2415
  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, [
2416
+ 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
2417
  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);
2418
+ ], 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
2419
  this.state = stateManager.state;
2050
2420
  this.append(this.sidebar, 'content');
2051
2421
  this.append(this.items, 'content');
@@ -2071,6 +2441,9 @@ class UIBrowserPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIGr
2071
2441
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2072
2442
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.elements')
2073
2443
  ], UIBrowserPanel.prototype, "onChangeElements", null);
2444
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2445
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.clipboard')
2446
+ ], UIBrowserPanel.prototype, "onChangeClipboard", null);
2074
2447
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2075
2448
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('state.activeElements')
2076
2449
  ], UIBrowserPanel.prototype, "onChangeActiveElements", null);
@@ -2840,11 +3213,12 @@ UITree = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2840
3213
  /* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82749);
2841
3214
  /* harmony import */ var _swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31635);
2842
3215
  /* 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);
3216
+ /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2748);
3217
+ /* harmony import */ var jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5700);
3218
+ /* harmony import */ var jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62405);
3219
+ /* harmony import */ var jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(159);
3220
+ /* harmony import */ var jodit_pro_plugins_finder_ui_item_item__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21130);
3221
+ /* harmony import */ var jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(36469);
2848
3222
  /*!
2849
3223
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
2850
3224
  * See LICENSE.md in the project root for license information.
@@ -2858,7 +3232,8 @@ UITree = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2858
3232
 
2859
3233
 
2860
3234
 
2861
- class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_4__.UIGroup {
3235
+
3236
+ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_5__.UIGroup {
2862
3237
  /** @override */ className() {
2863
3238
  return 'UIVirtualScroll';
2864
3239
  }
@@ -2871,7 +3246,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2871
3246
  }
2872
3247
  reconcile(items) {
2873
3248
  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;
3249
+ return !items[index] || elm.item.uniqueHashKey !== jodit_esm_modules_file_browser_builders_item__WEBPACK_IMPORTED_MODULE_6__.FileBrowserItem.create(items[index]).uniqueHashKey;
2875
3250
  });
2876
3251
  if (clearIndex > -1) {
2877
3252
  for(let i = clearIndex; i < this.elements.length; i += 1){
@@ -2923,7 +3298,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2923
3298
  build(items) {
2924
3299
  const clearIndex = this.reconcile(items);
2925
3300
  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);
3301
+ const elm = new jodit_pro_plugins_finder_ui_item_item__WEBPACK_IMPORTED_MODULE_7__.UIBrowserItem(this.jodit, item);
2927
3302
  Object.keys(this.mods).forEach((mod)=>{
2928
3303
  elm.setMod(mod, this.mods[mod]);
2929
3304
  });
@@ -2936,6 +3311,17 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2936
3311
  void this.j.loadingManager.loadItemsChunk();
2937
3312
  }
2938
3313
  }
3314
+ /**
3315
+ * Context menu of an empty spot of the list (clicks on items are handled
3316
+ * by the items themselves)
3317
+ */ onAreaContextMenu(e) {
3318
+ const { target } = e;
3319
+ if (jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_3__.Dom.isNode(target) && this.elements.some((elm)=>elm.container.contains(target))) {
3320
+ return;
3321
+ }
3322
+ this.j.e.fire('contextmenuArea.filebrowser', e);
3323
+ return false;
3324
+ }
2939
3325
  onDragOver(e) {
2940
3326
  e.preventDefault();
2941
3327
  this.setMod('dragover', true);
@@ -2945,7 +3331,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2945
3331
  this.setMod('dragover', false);
2946
3332
  }
2947
3333
  addItemsSelector() {
2948
- jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_7__.UISelectItems.install(this);
3334
+ jodit_pro_traits_select_items_select_items__WEBPACK_IMPORTED_MODULE_8__.UISelectItems.install(this);
2949
3335
  }
2950
3336
  static intersectRect(r1, r2) {
2951
3337
  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 +3339,7 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2953
3339
  onSelectItems(bound) {
2954
3340
  const selected = [];
2955
3341
  this.elements.forEach((elm)=>{
2956
- const pos = (0,jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_3__.position)(elm.container);
3342
+ const pos = (0,jodit_esm_core_helpers_size_position__WEBPACK_IMPORTED_MODULE_4__.position)(elm.container);
2957
3343
  if (UIVirtualScroll.intersectRect(pos, bound)) {
2958
3344
  selected.push(elm.item);
2959
3345
  }
@@ -2971,6 +3357,9 @@ class UIVirtualScroll extends jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MO
2971
3357
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:scroll'),
2972
3358
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.throttle)()
2973
3359
  ], UIVirtualScroll.prototype, "onScrollLoadChunk", null);
3360
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
3361
+ (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:contextmenu')
3362
+ ], UIVirtualScroll.prototype, "onAreaContextMenu", null);
2974
3363
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
2975
3364
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:dragover')
2976
3365
  ], UIVirtualScroll.prototype, "onDragOver", null);