jodit-pro 4.13.5 → 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.
- package/es2015/jodit.css +1 -1
- package/es2015/jodit.fat.min.css +1 -1
- package/es2015/jodit.fat.min.js +9 -9
- package/es2015/jodit.js +2 -2
- package/es2015/jodit.min.js +2 -2
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.css +1 -1
- package/es2015/plugins/autocomplete/autocomplete.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2015/plugins/backup/backup.css +1 -1
- package/es2015/plugins/backup/backup.js +1 -1
- package/es2015/plugins/backup/backup.min.js +1 -1
- package/es2015/plugins/button-generator/button-generator.css +1 -1
- package/es2015/plugins/button-generator/button-generator.js +1 -1
- package/es2015/plugins/button-generator/button-generator.min.js +1 -1
- package/es2015/plugins/change-case/change-case.js +1 -1
- package/es2015/plugins/change-case/change-case.min.js +1 -1
- package/es2015/plugins/color-picker/color-picker.css +1 -1
- package/es2015/plugins/color-picker/color-picker.js +1 -1
- package/es2015/plugins/color-picker/color-picker.min.js +1 -1
- package/es2015/plugins/emoji/emoji.css +1 -1
- package/es2015/plugins/emoji/emoji.js +1 -1
- package/es2015/plugins/emoji/emoji.min.js +1 -1
- package/es2015/plugins/export-docs/export-docs.js +1 -1
- package/es2015/plugins/export-docs/export-docs.min.js +1 -1
- package/es2015/plugins/finder/finder.css +4 -1
- package/es2015/plugins/finder/finder.js +503 -112
- package/es2015/plugins/finder/finder.min.css +1 -1
- package/es2015/plugins/finder/finder.min.js +7 -7
- package/es2015/plugins/google-maps/google-maps.css +1 -1
- package/es2015/plugins/google-maps/google-maps.js +1 -1
- package/es2015/plugins/google-maps/google-maps.min.js +1 -1
- package/es2015/plugins/google-search/google-search.js +1 -1
- package/es2015/plugins/google-search/google-search.min.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.js +29 -11
- package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
- package/es2015/plugins/keyboard/keyboard.css +1 -1
- package/es2015/plugins/keyboard/keyboard.js +1 -1
- package/es2015/plugins/keyboard/keyboard.min.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2015/plugins/page-break/page-break.js +1 -1
- package/es2015/plugins/page-break/page-break.min.js +1 -1
- package/es2015/plugins/paste-code/paste-code.css +1 -1
- package/es2015/plugins/paste-code/paste-code.js +1 -1
- package/es2015/plugins/paste-code/paste-code.min.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2015/plugins/style/style.css +1 -1
- package/es2015/plugins/style/style.js +1 -1
- package/es2015/plugins/style/style.min.js +1 -1
- package/es2015/plugins/templates/templates.css +1 -1
- package/es2015/plugins/templates/templates.js +1 -1
- package/es2015/plugins/templates/templates.min.js +1 -1
- package/es2015/plugins/todo-list/todo-list.css +1 -1
- package/es2015/plugins/todo-list/todo-list.js +1 -1
- package/es2015/plugins/todo-list/todo-list.min.js +1 -1
- package/es2015/plugins/translate/translate.css +1 -1
- package/es2015/plugins/translate/translate.js +1 -1
- package/es2015/plugins/translate/translate.min.js +1 -1
- package/es2015/plugins/tune-block/tune-block.css +1 -1
- package/es2015/plugins/tune-block/tune-block.js +1 -1
- package/es2015/plugins/tune-block/tune-block.min.js +1 -1
- package/es2018/jodit.fat.min.css +1 -1
- package/es2018/jodit.fat.min.js +20 -20
- package/es2018/jodit.min.js +2 -2
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.min.js +1 -1
- package/es2018/plugins/button-generator/button-generator.min.js +1 -1
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/color-picker/color-picker.min.js +1 -1
- package/es2018/plugins/emoji/emoji.min.js +1 -1
- package/es2018/plugins/export-docs/export-docs.min.js +1 -1
- package/es2018/plugins/finder/finder.min.css +1 -1
- package/es2018/plugins/finder/finder.min.js +13 -13
- package/es2018/plugins/google-maps/google-maps.min.js +1 -1
- package/es2018/plugins/google-search/google-search.min.js +1 -1
- package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
- package/es2018/plugins/keyboard/keyboard.min.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2018/plugins/page-break/page-break.min.js +1 -1
- package/es2018/plugins/paste-code/paste-code.min.js +1 -1
- package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2018/plugins/style/style.min.js +1 -1
- package/es2018/plugins/templates/templates.min.js +1 -1
- package/es2018/plugins/todo-list/todo-list.min.js +1 -1
- package/es2018/plugins/translate/translate.min.js +1 -1
- package/es2018/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021/jodit.css +1 -1
- package/es2021/jodit.fat.min.css +1 -1
- package/es2021/jodit.fat.min.js +19 -19
- package/es2021/jodit.js +2 -2
- package/es2021/jodit.min.js +2 -2
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021/plugins/backup/backup.css +1 -1
- package/es2021/plugins/backup/backup.js +1 -1
- package/es2021/plugins/backup/backup.min.js +1 -1
- package/es2021/plugins/button-generator/button-generator.css +1 -1
- package/es2021/plugins/button-generator/button-generator.js +1 -1
- package/es2021/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021/plugins/change-case/change-case.js +1 -1
- package/es2021/plugins/change-case/change-case.min.js +1 -1
- package/es2021/plugins/color-picker/color-picker.css +1 -1
- package/es2021/plugins/color-picker/color-picker.js +1 -1
- package/es2021/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021/plugins/emoji/emoji.css +1 -1
- package/es2021/plugins/emoji/emoji.js +1 -1
- package/es2021/plugins/emoji/emoji.min.js +1 -1
- package/es2021/plugins/export-docs/export-docs.js +1 -1
- package/es2021/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021/plugins/finder/finder.css +4 -1
- package/es2021/plugins/finder/finder.js +501 -112
- package/es2021/plugins/finder/finder.min.css +1 -1
- package/es2021/plugins/finder/finder.min.js +13 -13
- package/es2021/plugins/google-maps/google-maps.css +1 -1
- package/es2021/plugins/google-maps/google-maps.js +1 -1
- package/es2021/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021/plugins/google-search/google-search.js +1 -1
- package/es2021/plugins/google-search/google-search.min.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.js +29 -11
- package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +4 -4
- package/es2021/plugins/keyboard/keyboard.css +1 -1
- package/es2021/plugins/keyboard/keyboard.js +1 -1
- package/es2021/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021/plugins/page-break/page-break.js +1 -1
- package/es2021/plugins/page-break/page-break.min.js +1 -1
- package/es2021/plugins/paste-code/paste-code.css +1 -1
- package/es2021/plugins/paste-code/paste-code.js +1 -1
- package/es2021/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021/plugins/style/style.css +1 -1
- package/es2021/plugins/style/style.js +1 -1
- package/es2021/plugins/style/style.min.js +1 -1
- package/es2021/plugins/templates/templates.css +1 -1
- package/es2021/plugins/templates/templates.js +1 -1
- package/es2021/plugins/templates/templates.min.js +1 -1
- package/es2021/plugins/todo-list/todo-list.css +1 -1
- package/es2021/plugins/todo-list/todo-list.js +1 -1
- package/es2021/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021/plugins/translate/translate.css +1 -1
- package/es2021/plugins/translate/translate.js +1 -1
- package/es2021/plugins/translate/translate.min.js +1 -1
- package/es2021/plugins/tune-block/tune-block.css +1 -1
- package/es2021/plugins/tune-block/tune-block.js +1 -1
- package/es2021/plugins/tune-block/tune-block.min.js +1 -1
- package/es2021.en/jodit.css +1 -1
- package/es2021.en/jodit.fat.min.css +1 -1
- package/es2021.en/jodit.fat.min.js +9 -9
- package/es2021.en/jodit.js +2 -2
- package/es2021.en/jodit.min.js +2 -2
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021.en/plugins/backup/backup.css +1 -1
- package/es2021.en/plugins/backup/backup.js +1 -1
- package/es2021.en/plugins/backup/backup.min.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.css +1 -1
- package/es2021.en/plugins/button-generator/button-generator.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021.en/plugins/change-case/change-case.js +1 -1
- package/es2021.en/plugins/change-case/change-case.min.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.css +1 -1
- package/es2021.en/plugins/color-picker/color-picker.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021.en/plugins/emoji/emoji.css +1 -1
- package/es2021.en/plugins/emoji/emoji.js +1 -1
- package/es2021.en/plugins/emoji/emoji.min.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021.en/plugins/finder/finder.css +4 -1
- package/es2021.en/plugins/finder/finder.js +491 -110
- package/es2021.en/plugins/finder/finder.min.css +1 -1
- package/es2021.en/plugins/finder/finder.min.js +13 -13
- package/es2021.en/plugins/google-maps/google-maps.css +1 -1
- package/es2021.en/plugins/google-maps/google-maps.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021.en/plugins/google-search/google-search.js +1 -1
- package/es2021.en/plugins/google-search/google-search.min.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +29 -11
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +4 -4
- package/es2021.en/plugins/keyboard/keyboard.css +1 -1
- package/es2021.en/plugins/keyboard/keyboard.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021.en/plugins/page-break/page-break.js +1 -1
- package/es2021.en/plugins/page-break/page-break.min.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.css +1 -1
- package/es2021.en/plugins/paste-code/paste-code.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021.en/plugins/style/style.css +1 -1
- package/es2021.en/plugins/style/style.js +1 -1
- package/es2021.en/plugins/style/style.min.js +1 -1
- package/es2021.en/plugins/templates/templates.css +1 -1
- package/es2021.en/plugins/templates/templates.js +1 -1
- package/es2021.en/plugins/templates/templates.min.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.css +1 -1
- package/es2021.en/plugins/todo-list/todo-list.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021.en/plugins/translate/translate.css +1 -1
- package/es2021.en/plugins/translate/translate.js +1 -1
- package/es2021.en/plugins/translate/translate.min.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.css +1 -1
- package/es2021.en/plugins/tune-block/tune-block.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/jodit.css +2 -2
- package/es5/jodit.fat.min.css +1 -1
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +2 -2
- package/es5/jodit.min.css +2 -2
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.css +1 -1
- package/es5/plugins/autocomplete/autocomplete.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es5/plugins/backup/backup.css +1 -1
- package/es5/plugins/backup/backup.js +1 -1
- package/es5/plugins/backup/backup.min.js +1 -1
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +1 -1
- package/es5/plugins/button-generator/button-generator.min.js +1 -1
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/color-picker/color-picker.css +1 -1
- package/es5/plugins/color-picker/color-picker.js +1 -1
- package/es5/plugins/color-picker/color-picker.min.js +1 -1
- package/es5/plugins/emoji/emoji.css +1 -1
- package/es5/plugins/emoji/emoji.js +1 -1
- package/es5/plugins/emoji/emoji.min.js +1 -1
- package/es5/plugins/export-docs/export-docs.js +1 -1
- package/es5/plugins/export-docs/export-docs.min.js +1 -1
- package/es5/plugins/finder/finder.css +4 -1
- package/es5/plugins/finder/finder.js +691 -116
- package/es5/plugins/finder/finder.min.css +1 -1
- package/es5/plugins/finder/finder.min.js +2 -2
- package/es5/plugins/google-maps/google-maps.css +1 -1
- package/es5/plugins/google-maps/google-maps.js +1 -1
- package/es5/plugins/google-maps/google-maps.min.js +1 -1
- package/es5/plugins/google-search/google-search.js +1 -1
- package/es5/plugins/google-search/google-search.min.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.js +30 -12
- package/es5/plugins/image-editor-pro/image-editor-pro.min.js +2 -2
- package/es5/plugins/keyboard/keyboard.css +1 -1
- package/es5/plugins/keyboard/keyboard.js +1 -1
- package/es5/plugins/keyboard/keyboard.min.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es5/plugins/page-break/page-break.js +1 -1
- package/es5/plugins/page-break/page-break.min.js +1 -1
- package/es5/plugins/paste-code/paste-code.css +1 -1
- package/es5/plugins/paste-code/paste-code.js +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es5/plugins/style/style.css +1 -1
- package/es5/plugins/style/style.js +1 -1
- package/es5/plugins/style/style.min.js +1 -1
- package/es5/plugins/templates/templates.css +1 -1
- package/es5/plugins/templates/templates.js +1 -1
- package/es5/plugins/templates/templates.min.js +1 -1
- package/es5/plugins/todo-list/todo-list.css +1 -1
- package/es5/plugins/todo-list/todo-list.js +1 -1
- package/es5/plugins/todo-list/todo-list.min.js +1 -1
- package/es5/plugins/translate/translate.css +1 -1
- package/es5/plugins/translate/translate.js +1 -1
- package/es5/plugins/translate/translate.min.js +1 -1
- package/es5/plugins/tune-block/tune-block.css +1 -1
- package/es5/plugins/tune-block/tune-block.js +1 -1
- package/es5/plugins/tune-block/tune-block.min.js +1 -1
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/esm/plugins/finder/browser.d.ts +21 -3
- package/esm/plugins/finder/browser.js +1 -1
- package/esm/plugins/finder/config.js +1 -1
- package/esm/plugins/finder/helpers/context-menu.d.ts +6 -0
- package/esm/plugins/finder/helpers/context-menu.js +1 -1
- package/esm/plugins/finder/helpers/data-provider.d.ts +26 -0
- package/esm/plugins/finder/helpers/data-provider.js +1 -0
- package/esm/plugins/finder/helpers/helpers.d.ts +27 -0
- package/esm/plugins/finder/helpers/helpers.js +1 -1
- package/esm/plugins/finder/helpers/persistent-store.d.ts +13 -8
- package/esm/plugins/finder/helpers/persistent-store.js +1 -1
- package/esm/plugins/finder/interface.d.ts +24 -1
- package/esm/plugins/finder/langs/de.d.ts +4 -0
- package/esm/plugins/finder/langs/de.js +1 -1
- package/esm/plugins/finder/langs/ru.d.ts +4 -0
- package/esm/plugins/finder/langs/ru.js +1 -1
- package/esm/plugins/finder/ui/header/header.d.ts +7 -1
- package/esm/plugins/finder/ui/header/header.js +1 -1
- package/esm/plugins/finder/ui/panel/panel.d.ts +5 -0
- package/esm/plugins/finder/ui/panel/panel.js +2 -2
- package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +5 -0
- package/esm/plugins/finder/ui/virtual-scroll/virtual-scroll.js +2 -2
- package/esm/plugins/image-editor-pro/adapter.js +1 -1
- package/esm/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/package.json +1 -1
- package/types/plugins/finder/browser.d.ts +21 -3
- package/types/plugins/finder/helpers/context-menu.d.ts +6 -0
- package/types/plugins/finder/helpers/data-provider.d.ts +26 -0
- package/types/plugins/finder/helpers/helpers.d.ts +27 -0
- package/types/plugins/finder/helpers/persistent-store.d.ts +13 -8
- package/types/plugins/finder/interface.d.ts +24 -1
- package/types/plugins/finder/langs/de.d.ts +4 -0
- package/types/plugins/finder/langs/ru.d.ts +4 -0
- package/types/plugins/finder/ui/header/header.d.ts +7 -1
- package/types/plugins/finder/ui/panel/panel.d.ts +5 -0
- package/types/plugins/finder/ui/virtual-scroll/virtual-scroll.d.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var p=Object.defineProperty;var c=(a,t)=>p(a,"name",{value:t,configurable:!0});var s,d=function(a,t,r,e){var i=arguments.length,o=i<3?t:e===null?e=Object.getOwnPropertyDescriptor(t,r):e,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(a,t,r,e);else for(var h=a.length-1;h>=0;h--)(n=a[h])&&(o=(i<3?n(o):i>3?n(t,r,o):n(t,r))||o);return i>3&&o&&Object.defineProperty(t,r,o),o};import{component as u,watch as f}from"jodit/esm/core/decorators/index.js";import{isString as b}from"jodit/esm/core/helpers/checker/is-string.js";import{UIGroup as m,UIInput as v}from"jodit/esm/core/ui/index.js";import{makeCollection as w}from"jodit/esm/modules/toolbar/factory.js";let l=(s=class extends m{className(){return"UIBrowserHeader"}constructor(t,r,e){super(t),this.options=r,this.stateManager=e,this.syncMod=!0,this.toolbar=w(this.j),this.filter=new v(this.j,{icon:"search",placeholder:"Filter",clearButton:!0,onChange:c(i=>{this.stateManager.setFilter(i)},"onChange")}),this.state=e.state,this.append(this.toolbar).append(this.filter),this.filter.container.classList.add(this.getFullElName("filter")),this.toolbar.setMod("mode","header").build(this.__getButtons())}onChangeClipboard(){this.toolbar.build(this.__getButtons())}__getButtons(){var t;return((t=this.options.toolbarButtons)!==null&&t!==void 0?t:[]).filter(e=>{if(!b(e))return!0;switch(e){case"filebrowser.edit":return this.j.dataProvider.canI("ImageResize")||this.j.dataProvider.canI("ImageCrop");case"filebrowser.new-folder":return this.j.dataProvider.canI("FolderCreate");case"filebrowser.upload":return this.j.dataProvider.canI("FileUpload");case"filebrowser.remove":return this.j.dataProvider.canI("FileRemove");case"filebrowser.paste":return this.state.clipboard.length>0}return!0})}},c(s,"UIBrowserHeader"),s);d([f("state.clipboard")],l.prototype,"onChangeClipboard",null),l=d([u],l);export{l as UIBrowserHeader};
|
|
@@ -39,6 +39,11 @@ export declare class UIBrowserPanel extends UIGroup<IFileBrowserPro> {
|
|
|
39
39
|
constructor(jodit: IFileBrowserPro, stateManager: StateManager);
|
|
40
40
|
private onChangeTheme;
|
|
41
41
|
private onChangeElements;
|
|
42
|
+
protected onChangeClipboard(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Cut items are shown dimmed until they are pasted
|
|
45
|
+
*/
|
|
46
|
+
private __applyCutMods;
|
|
42
47
|
private onChangeActiveElements;
|
|
43
48
|
private onChangeFavorites;
|
|
44
49
|
private onChangeSources;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var d=Object.defineProperty;var
|
|
1
|
+
var d=Object.defineProperty;var p=(r,t)=>d(r,"name",{value:t,configurable:!0});var a,o=function(r,t,e,h){var l=arguments.length,n=l<3?t:h===null?h=Object.getOwnPropertyDescriptor(t,e):h,g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(r,t,e,h);else for(var c=r.length-1;c>=0;c--)(g=r[c])&&(n=(l<3?g(n):l>3?g(t,e,n):g(t,e))||n);return l>3&&n&&Object.defineProperty(t,e,n),n};import{component as f,watch as i}from"jodit/esm/core/decorators/index.js";import{css as m,isNumber as u,scrollIntoViewIfNeeded as w}from"jodit/esm/core/helpers/index.js";import{UIGroup as v}from"jodit/esm/core/ui/index.js";import{isCutItem as C}from"../../helpers/helpers.js";import{UIPreview as S}from"../preview/preview.js";import{UIBrowserSettings as M}from"../settings/settings.js";import{UISidebar as I}from"../sidebar/sidebar.js";import{UIBrowserSources as b}from"../sources/sources.js";import{UIBrowserStatusBar as y}from"../statusbar/statusbar.js";import{UIVirtualScroll as P}from"../virtual-scroll/virtual-scroll.js";let s=(a=class extends v{className(){return"UIBrowserPanel"}get countInRow(){if(this.state.view==="list"||!this.items.elements.length)return 1;const{container:t}=this.items.elements[0],e=m(t,"marginLeft");return Math.floor(this.items.container.offsetWidth/(t.offsetWidth+(u(e)?e:0)))}get countInColumn(){if(!this.items.elements.length)return 1;const{container:t}=this.items.elements[0],e=m(t,"marginTop");return Math.floor(this.items.container.offsetHeight/(t.offsetHeight+(u(e)?e:0)))}render(){return`<div>
|
|
2
2
|
<div class='&__content'></div>
|
|
3
3
|
<div class='&__footer'></div>
|
|
4
|
-
</div>`}constructor(e
|
|
4
|
+
</div>`}constructor(t,e){super(t),this.stateManager=e,this.syncMod=!0,this.sources=new b(this.j),this.sidebar=new I(this.jodit,[this.sources],this.stateManager.state),this.preview=new S(this.jodit,this.stateManager.state),this.statusbar=new y(this.j),this.items=new P(this.j,this.stateManager),this.settings=new M(this.jodit,this.stateManager.state),this.state=e.state,this.append(this.sidebar,"content"),this.append(this.items,"content"),this.append(this.settings,"content"),this.append(this.preview,"content"),this.append(this.statusbar,"footer"),this.onChangeElements(),this.onChangeSources(),this.onChangeView(),this.onChangeTileSize(),this.onChangeShowFavorites(),this.onChangeActiveElements(),this.onChangeFavorites(),this.onChangeShowSideBar(),this.onChangeShowSettings(),this.onChangeShowPreview(),this.onChangeTheme()}onChangeTheme(){this.setMod("theme",this.stateManager.state.theme)}onChangeElements(){this.items.build(this.stateManager.state.elements),this.__applyCutMods()}onChangeClipboard(){this.__applyCutMods()}__applyCutMods(){const{clipboard:t}=this.state;this.items.elements.forEach(e=>{e.setMod("cut",C(t,e.item))})}onChangeActiveElements(){this.state.activeElements.length||(this.state.info="",this.state.metaInfo=null),this.items.elements.forEach(t=>{t.setMod("active",!!this.stateManager.isActive(t.item))}),this.j.e.fire("changeSelection")}onChangeFavorites(){this.items.elements.forEach(t=>{t.setMod("favorite",!!this.stateManager.isFavorite(t.item))})}onChangeSources(){this.sources.build(this.stateManager.state.tree)}onChangeLastSelectedIndex(){var t;const e=(t=this.items.elements[this.stateManager.state.lastSelectedIndex])===null||t===void 0?void 0:t.container;e&&(w(e,this.items.container,this.j.od),e.focus())}onChangeInfo(){this.statusbar.value(this.state.info,"center")}onChangePathOrSource(){this.statusbar.value(this.state.currentPath?`${this.state.currentPath} (${this.state.currentSource})`:this.i18n("Home"),"left")}onChangeShowSettings(){this.settings.setMod("hidden",!this.stateManager.state.showSettings)}onChangeShowPreview(){this.preview.setMod("hidden",!this.stateManager.state.showPreview)}onChangeShowSideBar(){this.sidebar.setMod("hidden",!this.stateManager.state.showSideBar)}onChangeView(){this.items.setMod("view",this.stateManager.state.view)}onChangeTileSize(){this.items.setMod("size",this.stateManager.state.tileSize)}onChangeShowFavorites(){this.sidebar.setMod("show-favorites",this.stateManager.state.showFavorites),this.items.setMod("show-favorites",this.stateManager.state.showFavorites)}onItemDblClick(){return this.j.e.fire("select.filebrowser"),!1}onItemClick(t,e){this.stateManager.addActive(t,e)}onTogglePreview(){return this.state.showPreview=!this.state.showPreview,!1}onToggleFavoriteItem(t){this.stateManager.toggleFavorite(t)}onFolderClick(t){this.stateManager.state.currentSource=t.sourceName,this.stateManager.state.currentPath=t.path||"/",this.j.e.fire("afterOpenFolder.filebrowser")}},p(a,"UIBrowserPanel"),a);o([i("state.theme")],s.prototype,"onChangeTheme",null),o([i("state.elements")],s.prototype,"onChangeElements",null),o([i("state.clipboard")],s.prototype,"onChangeClipboard",null),o([i("state.activeElements")],s.prototype,"onChangeActiveElements",null),o([i(["state.favorites","state.elements"])],s.prototype,"onChangeFavorites",null),o([i("state.sources")],s.prototype,"onChangeSources",null),o([i("state.lastSelectedIndex")],s.prototype,"onChangeLastSelectedIndex",null),o([i("state.info")],s.prototype,"onChangeInfo",null),o([i(["state.currentPath","state.currentSource"])],s.prototype,"onChangePathOrSource",null),o([i("state.showSettings")],s.prototype,"onChangeShowSettings",null),o([i("state.showPreview")],s.prototype,"onChangeShowPreview",null),o([i("state.showSideBar")],s.prototype,"onChangeShowSideBar",null),o([i("state.view")],s.prototype,"onChangeView",null),o([i("state.tileSize")],s.prototype,"onChangeTileSize",null),o([i("state.showFavorites")],s.prototype,"onChangeShowFavorites",null),o([i(":dblclickItem.filebrowser")],s.prototype,"onItemDblClick",null),o([i(":clickItem.filebrowser")],s.prototype,"onItemClick",null),o([i(":togglePreview.filebrowser")],s.prototype,"onTogglePreview",null),o([i(":toggleFavoriteItem")],s.prototype,"onToggleFavoriteItem",null),o([i(":openFolder")],s.prototype,"onFolderClick",null),s=o([f],s);export{s as UIBrowserPanel};
|
|
@@ -33,6 +33,11 @@ export declare class UIVirtualScroll extends UIGroup<IFileBrowserPro> implements
|
|
|
33
33
|
private clearSkeletons;
|
|
34
34
|
build(items: IFileBrowserItemElement[]): void;
|
|
35
35
|
protected onScrollLoadChunk(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Context menu of an empty spot of the list (clicks on items are handled
|
|
38
|
+
* by the items themselves)
|
|
39
|
+
*/
|
|
40
|
+
protected onAreaContextMenu(e: MouseEvent): void | false;
|
|
36
41
|
protected onDragOver(e: DragEvent): void;
|
|
37
42
|
protected onDragLeave(e: DragEvent): void;
|
|
38
43
|
addItemsSelector(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var m=Object.defineProperty;var u=(
|
|
1
|
+
var m=Object.defineProperty;var u=(a,e)=>m(a,"name",{value:e,configurable:!0});var l,c=function(a,e,t,o){var s=arguments.length,i=s<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,t):o,h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(a,e,t,o);else for(var d=a.length-1;d>=0;d--)(h=a[d])&&(i=(s<3?h(i):s>3?h(e,t,i):h(e,t))||i);return s>3&&i&&Object.defineProperty(e,t,i),i},f;import{component as p,throttle as v,watch as n}from"jodit/esm/core/decorators/index.js";import{Dom as g}from"jodit/esm/core/dom/dom.js";import{position as _}from"jodit/esm/core/helpers/size/position.js";import{UIGroup as I}from"jodit/esm/core/ui/group/group.js";import{FileBrowserItem as w}from"jodit/esm/modules/file-browser/builders/item.js";import{UIBrowserItem as S}from"../item/item.js";import{UISelectItems as j}from"../../../../traits/select-items/select-items.js";let r=f=(l=class extends I{className(){return"UIVirtualScroll"}render(){return`<div>
|
|
2
2
|
<div class="&__empty-message">~There are no files~</div>
|
|
3
3
|
<div class='&__loader'></div>
|
|
4
4
|
<div class='&__drag-area'>~Drop image~</div>
|
|
5
|
-
</div>`}constructor(e,t){super(e),this.stateManager=t,this.syncMod=!0,this.skeletons=[],this.addItemsSelector()}reconcile(e){const t=this.elements.findIndex((s
|
|
5
|
+
</div>`}constructor(e,t){super(e),this.stateManager=t,this.syncMod=!0,this.skeletons=[],this.addItemsSelector()}reconcile(e){const t=this.elements.findIndex((o,s)=>!e[s]||o.item.uniqueHashKey!==w.create(e[s]).uniqueHashKey);if(t>-1){for(let o=t;o<this.elements.length;o+=1)this.elements[o].destruct();this.elements.length=t}return t}afterSetMod(e,t){super.afterSetMod(e,t),e==="loading"&&(t?this.buildSkeletons():this.clearSkeletons())}buildSkeletons(e=24){if(!this.skeletons.length)for(let t=0;t<e;t+=1){const o=this.j.create.fromHTML('<div class="jodit-ui-browser-item jodit-ui-browser-item_skeleton_true"><div class="jodit-ui-browser-item__image"></div><div class="jodit-ui-browser-item__info"></div></div>');["view","size"].forEach(s=>{const i=this.mods[s];i&&o.classList.add(`jodit-ui-browser-item_${s}_${i}`)}),this.container.appendChild(o),this.skeletons.push(o)}}clearSkeletons(){this.skeletons.forEach(e=>e.remove()),this.skeletons.length=0}build(e){const t=this.reconcile(e);e.slice(t>-1?t:this.elements.length).forEach(o=>{const s=new S(this.jodit,o);Object.keys(this.mods).forEach(i=>{s.setMod(i,this.mods[i])}),this.append(s)}),this.setMod("empty",!this.elements.length)}onScrollLoadChunk(){!this.stateManager.isFavoriteItems&&this.container.scrollHeight-(this.container.scrollTop+this.container.offsetHeight)<this.j.o.pixelOffsetLoadNewChunk&&this.j.loadingManager.loadItemsChunk()}onAreaContextMenu(e){const{target:t}=e;if(!(g.isNode(t)&&this.elements.some(o=>o.container.contains(t))))return this.j.e.fire("contextmenuArea.filebrowser",e),!1}onDragOver(e){e.preventDefault(),this.setMod("dragover",!0)}onDragLeave(e){e.preventDefault(),this.setMod("dragover",!1)}addItemsSelector(){j.install(this)}static intersectRect(e,t){return!(t.left>e.left+e.width||t.left+t.width<e.left||t.top>e.top+e.height||t.top+t.height<e.top)}onSelectItems(e){const t=[];this.elements.forEach(o=>{const s=_(o.container);f.intersectRect(s,e)&&t.push(o.item)}),this.stateManager.state.activeElements=t}},u(l,"UIVirtualScroll"),l);c([n(":afterResize"),n(":resize"),n("container:scroll"),v()],r.prototype,"onScrollLoadChunk",null),c([n("container:contextmenu")],r.prototype,"onAreaContextMenu",null),c([n("container:dragover")],r.prototype,"onDragOver",null),c([n(["container:dragleave","container:drop"])],r.prototype,"onDragLeave",null),r=f=c([p],r);export{r as UIVirtualScroll};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var T=Object.defineProperty;var h=(P,n)=>T(P,"name",{value:n,configurable:!0});import{ICONS as
|
|
1
|
+
var T=Object.defineProperty;var h=(P,n)=>T(P,"name",{value:n,configurable:!0});import{ICONS as I,ImageEditor as D,selectors as w}from"@jodit/image-editor";import{Config as F}from"jodit/esm/config.js";import{ViewComponent as O}from"jodit/esm/core/component/index.js";import{Button as v}from"jodit/esm/core/ui/button/button/button.js";import{Dialog as B}from"jodit/esm/modules/dialog/dialog.js";const j=class j extends O{constructor(){super(...arguments),this.isProImageEditor=!0}className(){return"ImageEditorPro"}async open(n,o){const t=this.j,s=F.defaultOptions.imageEditorPro,i=t.c.div("jodit-image-editor-pro");i.style.width="100%",i.style.height="100%";const r=new B({language:t.o.language});r.setSize(s.dialog.width,s.dialog.height),r.setContent(i),r.open();let e=null,c=null;const l=h(()=>{c?.(),c=null,e?.destroy(),e=null,r.close()},"cleanup");r.e.on("beforeClose",()=>{c?.(),c=null,e?.destroy(),e=null}),e=new D({container:i,state:{showToolbar:!1,status:"loading"},onSave:h(a=>{this.persist(e,n,void 0,a,o,l)},"onSave"),onSaveAs:h(a=>{this.saveAs(e,n,a,o,l)},"onSaveAs")}),c=this.mountToolbar(r,e);try{const a=await this.loadImage(n);await e.fromBlob(a),t.e.fire("afterImageEditor")}catch(a){e?.update({status:"error",error:a instanceof Error?a.message:String(a)}),this.error(a)}}mountToolbar(n,o){const t=this.j,s=v(t,{icon:{name:"save"},text:t.i18n("Save")},"primary"),i=v(t,{icon:{name:"save"},name:"save-as",text:t.i18n("Save as")}),r=t.c.span("jodit-image-editor-pro__size"),e=v(t,I.minus),c=t.c.span("jodit-image-editor-pro__zoom"),l=v(t,I.plus),a=v(t,"update",t.i18n("Reset")),p=v(t,"undo",t.i18n("Undo")),f=v(t,"redo",t.i18n("Redo"));e.setState({tooltip:"Zoom out"}),l.setState({tooltip:"Zoom in"});let y=null;s.onAction(()=>{y=s,o.save()}),i.onAction(()=>{y=i,o.saveAs()}),e.onAction(()=>o.update({zoom:o.state.zoom/1.2})),l.onAction(()=>o.update({zoom:o.state.zoom*1.2})),a.onAction(()=>o.reset()),p.onAction(()=>o.update({history:{step:-1}})),f.onAction(()=>o.update({history:{step:1}}));const g=h((...d)=>{const u=t.c.div("jodit-image-editor-pro__group");return u.style.display="flex",u.style.alignItems="center",u.style.gap="4px",d.forEach(b=>u.appendChild(b)),u},"group"),m=t.c.div("jodit-image-editor-pro__toolbar");m.style.display="flex",m.style.alignItems="center",m.style.gap="12px",m.style.width="100%",r.style.opacity="0.75",c.style.minWidth="3.5em",c.style.textAlign="center",m.appendChild(g(s.container,i.container)),m.appendChild(g(r,e.container,c,l.container));const z=g(a.container,p.container,f.container);z.style.marginLeft="auto",m.appendChild(z),n.setHeader(m);const x="jodit-image-editor-pro__button_busy",_=h(d=>{const u=w.selectOutputSize(d),b=d.status==="exporting",C=b||d.status==="loading",S=d.busyVisible,E=b&&(S??!0);b||(y=null),s.setState({disabled:!d.source||C}),i.setState({disabled:!d.source||C}),s.container.classList.toggle(x,E&&y!==i),i.container.classList.toggle(x,E&&y===i),a.setState({disabled:!w.selectIsDirty(d)}),p.setState({disabled:!w.selectCanUndo(d)}),f.setState({disabled:!w.selectCanRedo(d)}),r.textContent=u?`${u.width} \xD7 ${u.height}`:"";const A=w.selectViewportFit(d),V=Math.round(A?A.scale*100:d.zoom*100);c.textContent=`${V}%`},"sync");_(o.state);const U=o.store.subscribe(_);return()=>{U(),[s,i,e,l,a,p,f].forEach(d=>d.destruct())}}saveAs(n,o,t,s,i){this.j.prompt("Enter new name","Save in new file",r=>{const e=(r||"").trim();if(!e)return this.j.alert("The name should not be empty"),!1;this.persist(n,o,e,t,s,i)})}async persist(n,o,t,s,i,r){n?.update({status:"exporting"});try{const e=await this.blobSize(s),c={action:this.coreSupportsSaved()?"saved":"resize",box:e};t!==void 0?this.j.e.fire("afterImageEditorSave",c,t):this.j.e.fire("afterImageEditorSave",c);const l=await this.uploadEdited(o,s,t),a=h(()=>{r(),this.j.e.fire("update.filebrowser")},"done");i(t,this.coreSupportsSaved()?{action:"saved",box:e,newPath:l||void 0}:{action:"resize",box:e},a,p=>{r(),this.error(p)})}catch(e){r(),this.error(e)}}async uploadEdited(n,o,t){var s,i;const{source:r,path:e,name:c}=await this.j.dataProvider.getPathByUrl(n),l=this.connectorUrl();if(!l)throw new Error("No connector configured for imageSave");const a=String(t||c||"image.png"),p=new FormData;p.append("action","imageSave"),p.append("source",String(r??"")),p.append("path",String(e??"")),p.append("name",a),p.append("files[0]",o,a);const f=l.includes("?")?"&":"?",g=await(await fetch(`${l}${f}action=imageSave`,{method:"POST",body:p,credentials:"include"})).json();if(!g.success)throw new Error(g.message||"Failed to save the edited image");return(i=(s=g.data)===null||s===void 0?void 0:s.newPath)!==null&&i!==void 0?i:""}coreSupportsSaved(){const n=this.j.getVersion?this.j.getVersion():"",[o=0,t=0,s=0]=n.split(".").map(i=>parseInt(i,10)||0);return o>4||o===4&&(t>12||t===12&&s>=34)}connectorUrl(){var n,o;const t=(n=this.j.o.ajax)===null||n===void 0?void 0:n.url,s=(o=this.j.o.uploader)===null||o===void 0?void 0:o.url;return typeof t=="string"&&t?t:typeof s=="string"&&s?s:""}async loadImage(n){const o=this.connectorUrl();if(o)try{return await this.loadViaConnector(o,n)}catch{}const t=n.includes("?")?"&":"?",s=await fetch(`${n}${t}_tst=${Date.now()}`,{credentials:"include"});if(!s.ok)throw new Error(`Failed to load image (${s.status})`);return s.blob()}async loadViaConnector(n,o){var t;const{source:s,path:i,name:r}=await this.j.dataProvider.getPathByUrl(o),e=new FormData;e.append("action","imageLoad"),e.append("source",String(s??"")),e.append("path",String(i??"")),e.append("name",String(r??""));const c=n.includes("?")?"&":"?",a=await(await fetch(`${n}${c}action=imageLoad`,{method:"POST",body:e,credentials:"include"})).json();if(!a.success||!(!((t=a.data)===null||t===void 0)&&t.content))throw new Error(a.message||"Failed to load the image");return(await fetch(a.data.content)).blob()}async blobSize(n){const o=await createImageBitmap(n),t={w:o.width,h:o.height};return o.close(),t}error(n){this.j.e.fire("errorMessage",n.message)}};h(j,"ProImageEditor");let $=j;export{$ as ProImageEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var a=Object.defineProperty;var m=(s,r)=>a(s,"name",{value:r,configurable:!0});import"./config.js";import{ProImageEditor as n}from"./adapter.js";import{Plugin as g}from"jodit/esm/core/plugin/index.js";import{JoditPro as d}from"../../jodit-pro.js";const t=class t extends g{afterInit(r){const i=n,o=d.modules;!o.ImageEditorCore&&o.ImageEditor!==i&&(o.ImageEditorCore=o.ImageEditor),o.ImageEditor=i}beforeDestruct(r){}};m(t,"imageEditorPro");let e=t;e.requires=["license"],d.plugins.add("imageEditorPro",e);export{e as imageEditorPro};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
-
import type { CanUndef, IFileBrowserAnswer, IFileBrowserCallBackData,
|
|
6
|
+
import type { CanUndef, IFileBrowserAnswer, IFileBrowserCallBackData, IFileBrowserItemWrapper, IMessages, IProgressBar, IUIGroup } from "jodit/esm/types/index";
|
|
7
7
|
import "./ui/assets/icons/index";
|
|
8
8
|
import { ContextMenuManager } from "./helpers/context-menu";
|
|
9
9
|
import { LoadingManager } from "./helpers/loading-manager";
|
|
@@ -12,11 +12,11 @@ import { StateManager } from "./helpers/state-manager";
|
|
|
12
12
|
import { UIBrowserPanel } from "./ui/panel/panel";
|
|
13
13
|
import { Dlgs } from "jodit/esm/core/traits/dlgs";
|
|
14
14
|
import { Dialog } from "jodit/esm/modules/dialog/index";
|
|
15
|
-
import type { IFileBrowserOptionsPro, IFileBrowserPro, IFileBrowserStatePro, IFileBrowserTreeItemPro, IHistoryManager } from "./interface";
|
|
15
|
+
import type { IFileBrowserDataProviderPro, IFileBrowserOptionsPro, IFileBrowserPro, IFileBrowserStatePro, IFileBrowserTreeItemPro, IFinderPasteTarget, IHistoryManager } from "./interface";
|
|
16
16
|
export interface FileBrowserPro extends Dlgs {
|
|
17
17
|
}
|
|
18
18
|
export declare class FileBrowserPro extends Dialog implements IFileBrowserPro {
|
|
19
|
-
readonly dataProvider:
|
|
19
|
+
readonly dataProvider: IFileBrowserDataProviderPro;
|
|
20
20
|
readonly state: IFileBrowserStatePro & import("jodit/esm/types/index").IObservable;
|
|
21
21
|
readonly persistent: PersistentStore;
|
|
22
22
|
loadingManager: LoadingManager;
|
|
@@ -47,6 +47,14 @@ export declare class FileBrowserPro extends Dialog implements IFileBrowserPro {
|
|
|
47
47
|
constructor(options?: IFileBrowserOptionsPro);
|
|
48
48
|
/** @override */
|
|
49
49
|
protected addDisclaimer(elm: HTMLElement): void;
|
|
50
|
+
/**
|
|
51
|
+
* Show status toasts in the lower right corner of the finder window.
|
|
52
|
+
* The default view container of a dialog is a zero-size anchor
|
|
53
|
+
* (`.jodit-dialog`), so messages attached to it appear in a random
|
|
54
|
+
* place of the page instead of inside the finder.
|
|
55
|
+
* @override
|
|
56
|
+
*/
|
|
57
|
+
protected getMessageModule(): IMessages;
|
|
50
58
|
open(callback?: CanUndef<(_: IFileBrowserCallBackData) => void>, onlyImages?: boolean): Promise<void>;
|
|
51
59
|
/**
|
|
52
60
|
* Resize handler
|
|
@@ -59,6 +67,16 @@ export declare class FileBrowserPro extends Dialog implements IFileBrowserPro {
|
|
|
59
67
|
private registerGlobalListeners;
|
|
60
68
|
private onKeyPress;
|
|
61
69
|
private removeGlobalListeners;
|
|
70
|
+
protected onCut(folder?: IFileBrowserTreeItemPro): void;
|
|
71
|
+
protected onCopy(folder?: IFileBrowserTreeItemPro): void;
|
|
72
|
+
private __fillClipboard;
|
|
73
|
+
/**
|
|
74
|
+
* The current folder as a paste target (used by the toolbar button and
|
|
75
|
+
* the empty-area context menu)
|
|
76
|
+
*/
|
|
77
|
+
getPasteTarget(): IFinderPasteTarget;
|
|
78
|
+
canPaste(target: IFinderPasteTarget): boolean;
|
|
79
|
+
protected onPaste(target: IFinderPasteTarget): void;
|
|
62
80
|
protected onFileRemove(): void;
|
|
63
81
|
private __itemsRemove;
|
|
64
82
|
private __removeFile;
|
|
@@ -12,8 +12,14 @@ export declare class ContextMenuManager extends ViewComponent<IFileBrowserPro> {
|
|
|
12
12
|
protected onFolderContext(item: IFileBrowserTreeItemPro, e: MouseEvent): void | false;
|
|
13
13
|
protected onItemContext(item: IFileBrowserItemWrapper, _: unknown, e: MouseEvent): void | false;
|
|
14
14
|
protected onSourceContext(item: IFileBrowserTreeItemPro, e: MouseEvent): void | false;
|
|
15
|
+
protected onAreaContext(e: MouseEvent): void | false;
|
|
15
16
|
private buildContextItemMenu;
|
|
16
17
|
private getItemContextActions;
|
|
17
18
|
private getFolderContextActions;
|
|
18
19
|
private getSourceContextActions;
|
|
20
|
+
/**
|
|
21
|
+
* Context menu of an empty spot of the file list — actions apply to the
|
|
22
|
+
* currently opened folder
|
|
23
|
+
*/
|
|
24
|
+
private getAreaContextActions;
|
|
19
25
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Jodit Editor PRO (https://xdsoft.net/jodit/)
|
|
3
|
+
* See LICENSE.md in the project root for license information.
|
|
4
|
+
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
|
+
*/
|
|
6
|
+
import DataProvider from "jodit/esm/modules/file-browser/data-provider";
|
|
7
|
+
import type { IFileBrowserDataProviderPro } from "../interface";
|
|
8
|
+
/**
|
|
9
|
+
* Extends the core data provider with copy operations
|
|
10
|
+
* (`fileCopy`/`folderCopy` connector actions).
|
|
11
|
+
*/
|
|
12
|
+
export declare class DataProviderPro extends DataProvider implements IFileBrowserDataProviderPro {
|
|
13
|
+
/**
|
|
14
|
+
* Copy a file / directory on the server
|
|
15
|
+
*
|
|
16
|
+
* @param filepath - The relative path to the file / folder source
|
|
17
|
+
* @param path - Relative to the directory where you want to copy the file / folder
|
|
18
|
+
*/
|
|
19
|
+
copy(filepath: string, path: string, source: string, isFile: boolean): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the connector allows copying. The core `canI` throws on rules
|
|
22
|
+
* it does not know (`allowFileCopy`/`allowFolderCopy` are PRO-only), so
|
|
23
|
+
* the same permission logic is replicated here.
|
|
24
|
+
*/
|
|
25
|
+
canCopy(isFile: boolean): boolean;
|
|
26
|
+
}
|
|
@@ -3,4 +3,31 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
+
import type { IFinderClipboardItem } from "../interface";
|
|
6
7
|
export declare const parentPath: (path: string) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Removes duplicated/leading/trailing slashes: `'/test//a/' -> 'test/a'`,
|
|
10
|
+
* `'/' -> '/'`. Unlike the core `normalizeRelativePath` it never keeps a
|
|
11
|
+
* trailing slash, so paths are always comparable with `parentPath` output.
|
|
12
|
+
*/
|
|
13
|
+
export declare const normalizeItemPath: (path: string) => string;
|
|
14
|
+
/**
|
|
15
|
+
* Full path of a folder item. Tree items already keep the folder name inside
|
|
16
|
+
* `path`, items converted from a tile keep only the parent directory there
|
|
17
|
+
* (with a trailing slash) and the name separately.
|
|
18
|
+
*/
|
|
19
|
+
export declare const folderFullPath: (item: {
|
|
20
|
+
path: string;
|
|
21
|
+
name: string;
|
|
22
|
+
}) => string;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the list item is cut and waits to be moved (such items are shown
|
|
25
|
+
* dimmed). Copied items are intentionally not matched — copying does not
|
|
26
|
+
* remove the original.
|
|
27
|
+
*/
|
|
28
|
+
export declare const isCutItem: (clipboard: IFinderClipboardItem[], item: {
|
|
29
|
+
path: string;
|
|
30
|
+
file?: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
sourceName: string;
|
|
33
|
+
}) => boolean;
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Jodit Editor PRO (https://xdsoft.net/jodit/)
|
|
3
|
-
* See LICENSE.md in the project root for license information.
|
|
4
|
-
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
|
-
*/
|
|
6
1
|
import { ViewComponent } from "jodit/esm/core/component/index";
|
|
7
|
-
import type { IFileBrowserStatePro } from "../interface";
|
|
8
|
-
export declare class PersistentStore extends ViewComponent {
|
|
2
|
+
import type { IFileBrowserPro, IFileBrowserStatePro } from "../interface";
|
|
3
|
+
export declare class PersistentStore extends ViewComponent<IFileBrowserPro> {
|
|
9
4
|
readonly state: IFileBrowserStatePro;
|
|
10
5
|
/** @override */
|
|
11
6
|
className(): string;
|
|
12
|
-
constructor(jodit:
|
|
7
|
+
constructor(jodit: IFileBrowserPro, state: IFileBrowserStatePro);
|
|
13
8
|
theme: string;
|
|
14
9
|
protected sortBy: string;
|
|
15
10
|
protected view: IFileBrowserStatePro['view'];
|
|
@@ -29,4 +24,14 @@ export declare class PersistentStore extends ViewComponent {
|
|
|
29
24
|
protected onChangeShowFavorites(): void;
|
|
30
25
|
protected onChangeFoldersPosition(): void;
|
|
31
26
|
syncWithState(): void;
|
|
27
|
+
/**
|
|
28
|
+
* The `filebrowser.view` option is the default view. The view stored from
|
|
29
|
+
* the user's last choice wins over it only when view persistence is
|
|
30
|
+
* enabled (`saveStateInStorage.storeView !== false`) and the user has
|
|
31
|
+
* actually chosen a view before.
|
|
32
|
+
*/
|
|
33
|
+
private __resolveView;
|
|
34
|
+
private __configView;
|
|
35
|
+
private __viewPersistenceEnabled;
|
|
36
|
+
private __hasStoredView;
|
|
32
37
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license information.
|
|
4
4
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
|
-
import type { IDialogOptions, IDictionary, IFileBrowser, IFileBrowserCallBackData, IFileBrowserOptions, IFileBrowserState, IObservable, Nullable } from "jodit/esm/types/index";
|
|
6
|
+
import type { IDialogOptions, IDictionary, IFileBrowser, IFileBrowserAjaxOptions, IFileBrowserCallBackData, IFileBrowserDataProvider, IFileBrowserOptions, IFileBrowserState, IObservable, Nullable } from "jodit/esm/types/index";
|
|
7
7
|
import type { ContextMenuManager } from "./helpers/context-menu";
|
|
8
8
|
import type { LoadingManager } from "./helpers/loading-manager";
|
|
9
9
|
import type { PersistentStore } from "./helpers/persistent-store";
|
|
@@ -26,6 +26,8 @@ export interface IFileBrowserStatePro extends IFileBrowserState {
|
|
|
26
26
|
tileSize: 'xsmall' | 'small' | 'default' | 'large' | 'xlarge';
|
|
27
27
|
favorites: IFileBrowserState['activeElements'];
|
|
28
28
|
tree: IFileBrowserTreeItemPro[];
|
|
29
|
+
/** Items cut/copied in the context menu and waiting for Paste */
|
|
30
|
+
clipboard: IFinderClipboardItem[];
|
|
29
31
|
}
|
|
30
32
|
// @ts-ignore
|
|
31
33
|
export interface IFileBrowserOptionsPro extends IFileBrowserOptions, IDialogOptions, IViewOptionsPro {
|
|
@@ -33,6 +35,8 @@ export interface IFileBrowserOptionsPro extends IFileBrowserOptions, IDialogOpti
|
|
|
33
35
|
maxWidth: number;
|
|
34
36
|
previewOfficeURL: string;
|
|
35
37
|
license: string;
|
|
38
|
+
fileCopy?: IFileBrowserAjaxOptions;
|
|
39
|
+
folderCopy?: IFileBrowserAjaxOptions;
|
|
36
40
|
}
|
|
37
41
|
export interface IFileBrowserTreeItemPro {
|
|
38
42
|
type: 'file' | 'directory' | 'source';
|
|
@@ -44,14 +48,33 @@ export interface IFileBrowserTreeItemPro {
|
|
|
44
48
|
sourceName: string;
|
|
45
49
|
children: IFileBrowserTreeItemPro[];
|
|
46
50
|
}
|
|
51
|
+
export interface IFinderClipboardItem {
|
|
52
|
+
mode: 'cut' | 'copy';
|
|
53
|
+
type: 'file' | 'folder';
|
|
54
|
+
/** Full relative path (including the item name) inside the source */
|
|
55
|
+
from: string;
|
|
56
|
+
name: string;
|
|
57
|
+
sourceName: string;
|
|
58
|
+
}
|
|
59
|
+
export interface IFinderPasteTarget {
|
|
60
|
+
path: string;
|
|
61
|
+
sourceName: string;
|
|
62
|
+
}
|
|
63
|
+
export interface IFileBrowserDataProviderPro extends IFileBrowserDataProvider {
|
|
64
|
+
copy(filepath: string, path: string, source: string, isFile: boolean): Promise<boolean>;
|
|
65
|
+
canCopy(isFile: boolean): boolean;
|
|
66
|
+
}
|
|
47
67
|
export interface IFileBrowserPro extends IFileBrowser<IFileBrowserOptionsPro> {
|
|
48
68
|
readonly state: IFileBrowserStatePro & IObservable;
|
|
69
|
+
readonly dataProvider: IFileBrowserDataProviderPro;
|
|
49
70
|
readonly persistent: PersistentStore;
|
|
50
71
|
readonly loadingManager: LoadingManager;
|
|
51
72
|
readonly stateManager: StateManager;
|
|
52
73
|
readonly historyManager: IHistoryManager;
|
|
53
74
|
readonly contextMenuManager: ContextMenuManager;
|
|
54
75
|
readonly panel: UIBrowserPanel;
|
|
76
|
+
canPaste(target: IFinderPasteTarget): boolean;
|
|
77
|
+
getPasteTarget(): IFinderPasteTarget;
|
|
55
78
|
}
|
|
56
79
|
export interface IHistoryManager {
|
|
57
80
|
canNext(): boolean;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { UIGroup } from "jodit/esm/core/ui/index";
|
|
7
7
|
import type { StateManager } from "../../helpers/state-manager";
|
|
8
|
-
import type { IFileBrowserOptionsPro, IFileBrowserPro } from "../../interface";
|
|
8
|
+
import type { IFileBrowserOptionsPro, IFileBrowserPro, IFileBrowserStatePro } from "../../interface";
|
|
9
9
|
export declare class UIBrowserHeader extends UIGroup<IFileBrowserPro> {
|
|
10
10
|
readonly options: IFileBrowserOptionsPro;
|
|
11
11
|
readonly stateManager: StateManager;
|
|
@@ -15,6 +15,12 @@ export declare class UIBrowserHeader extends UIGroup<IFileBrowserPro> {
|
|
|
15
15
|
private filter;
|
|
16
16
|
/** @override */
|
|
17
17
|
className(): string;
|
|
18
|
+
readonly state: IFileBrowserStatePro;
|
|
18
19
|
constructor(jodit: IFileBrowserPro, options: IFileBrowserOptionsPro, stateManager: StateManager);
|
|
20
|
+
/**
|
|
21
|
+
* The Paste button appears in the toolbar only when the clipboard is not
|
|
22
|
+
* empty — rebuild the toolbar when it changes
|
|
23
|
+
*/
|
|
24
|
+
protected onChangeClipboard(): void;
|
|
19
25
|
private __getButtons;
|
|
20
26
|
}
|
|
@@ -39,6 +39,11 @@ export declare class UIBrowserPanel extends UIGroup<IFileBrowserPro> {
|
|
|
39
39
|
constructor(jodit: IFileBrowserPro, stateManager: StateManager);
|
|
40
40
|
private onChangeTheme;
|
|
41
41
|
private onChangeElements;
|
|
42
|
+
protected onChangeClipboard(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Cut items are shown dimmed until they are pasted
|
|
45
|
+
*/
|
|
46
|
+
private __applyCutMods;
|
|
42
47
|
private onChangeActiveElements;
|
|
43
48
|
private onChangeFavorites;
|
|
44
49
|
private onChangeSources;
|
|
@@ -33,6 +33,11 @@ export declare class UIVirtualScroll extends UIGroup<IFileBrowserPro> implements
|
|
|
33
33
|
private clearSkeletons;
|
|
34
34
|
build(items: IFileBrowserItemElement[]): void;
|
|
35
35
|
protected onScrollLoadChunk(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Context menu of an empty spot of the list (clicks on items are handled
|
|
38
|
+
* by the items themselves)
|
|
39
|
+
*/
|
|
40
|
+
protected onAreaContextMenu(e: MouseEvent): void | false;
|
|
36
41
|
protected onDragOver(e: DragEvent): void;
|
|
37
42
|
protected onDragLeave(e: DragEvent): void;
|
|
38
43
|
addItemsSelector(): void;
|