jodit-pro 4.11.19 → 4.11.22
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 +2 -2
- package/es2015/jodit.fat.min.css +1 -1
- package/es2015/jodit.fat.min.js +17 -14
- package/es2015/jodit.js +45 -13
- package/es2015/jodit.min.css +1 -1
- package/es2015/jodit.min.js +6 -6
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +356 -75
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +42 -39
- 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 +1 -1
- package/es2015/plugins/finder/finder.js +10 -4
- package/es2015/plugins/finder/finder.min.js +2 -2
- 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/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 +17 -14
- package/es2018/jodit.min.css +1 -1
- package/es2018/jodit.min.js +6 -6
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +49 -46
- 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.js +2 -2
- 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/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 +2 -2
- package/es2021/jodit.fat.min.css +1 -1
- package/es2021/jodit.fat.min.js +18 -15
- package/es2021/jodit.js +45 -13
- package/es2021/jodit.min.css +1 -1
- package/es2021/jodit.min.js +6 -6
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +350 -73
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +24 -21
- 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 +1 -1
- package/es2021/plugins/finder/finder.js +9 -4
- package/es2021/plugins/finder/finder.min.js +2 -2
- 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/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 +2 -2
- package/es2021.en/jodit.fat.min.css +1 -1
- package/es2021.en/jodit.fat.min.js +18 -15
- package/es2021.en/jodit.js +45 -13
- package/es2021.en/jodit.min.css +1 -1
- package/es2021.en/jodit.min.js +6 -6
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +350 -73
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +24 -21
- 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 +1 -1
- package/es2021.en/plugins/finder/finder.js +9 -4
- package/es2021.en/plugins/finder/finder.min.js +2 -2
- 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/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 +3 -3
- package/es5/jodit.fat.min.css +1 -1
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +45 -13
- package/es5/jodit.min.css +3 -3
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +526 -111
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +2 -2
- 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 +1 -1
- package/es5/plugins/finder/finder.js +10 -5
- 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/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/ai-assistant-pro/ai-assistant-pro.d.ts +10 -0
- package/esm/plugins/ai-assistant-pro/ai-assistant-pro.js +2 -2
- package/esm/plugins/ai-assistant-pro/config.js +1 -1
- package/esm/plugins/ai-assistant-pro/core/conversation.d.ts +10 -1
- package/esm/plugins/ai-assistant-pro/core/conversation.js +1 -1
- package/esm/plugins/ai-assistant-pro/icons/chevron-right.svg.js +1 -0
- package/esm/plugins/ai-assistant-pro/icons/shield.svg.js +1 -0
- package/esm/plugins/ai-assistant-pro/icons/tool-bolt.svg.js +1 -0
- package/esm/plugins/ai-assistant-pro/ui/conversation-list/conversation-list-item.d.ts +6 -1
- package/esm/plugins/ai-assistant-pro/ui/conversation-list/conversation-list-item.js +1 -1
- package/esm/plugins/ai-assistant-pro/ui/input-area/input-area.js +1 -1
- package/esm/plugins/ai-assistant-pro/ui/main-panel/main-panel.d.ts +6 -0
- package/esm/plugins/ai-assistant-pro/ui/main-panel/main-panel.js +2 -2
- package/esm/plugins/ai-assistant-pro/ui/message-list/item/message-list-item.js +1 -1
- package/esm/plugins/ai-assistant-pro/ui/permission-request/permission-request.js +7 -4
- package/esm/plugins/finder/helpers/loading-manager.js +1 -1
- package/package.json +1 -1
- package/types/plugins/ai-assistant-pro/ai-assistant-pro.d.ts +10 -0
- package/types/plugins/ai-assistant-pro/core/conversation.d.ts +10 -1
- package/types/plugins/ai-assistant-pro/ui/conversation-list/conversation-list-item.d.ts +6 -1
- package/types/plugins/ai-assistant-pro/ui/main-panel/main-panel.d.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
var p=Object.defineProperty;var
|
|
1
|
+
var p=Object.defineProperty;var l=(r,t)=>p(r,"name",{value:t,configurable:!0});var c,h=function(r,t,n,i){var o=arguments.length,e=o<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,n):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")e=Reflect.decorate(r,t,n,i);else for(var u=r.length-1;u>=0;u--)(s=r[u])&&(e=(o<3?s(e):o>3?s(t,n,e):s(t,n))||e);return o>3&&e&&Object.defineProperty(t,n,e),e};import{autobind as d,component as m,watch as v}from"jodit/esm/core/decorators/index.js";import{UIElement as f}from"jodit/esm/core/ui/index.js";import{UIButton as j}from"jodit/esm/core/ui/button/index.js";import{ContextMenu as C}from"jodit/esm/modules/context-menu/context-menu.js";let a=(c=class extends f{className(){return"UIConversationListItem"}constructor(t,n,i=!1,o){super(t),this.opts=o,this.actionsButton=null,this.contextMenu=null,this.titleElement=null,this.isRenaming=!1,this.conversation=n,this.isActive=i,this.contextMenu=new C(this.j),this.updateContent()}render(){return'<div class="jodit-ui-conversation-list__item"></div>'}setActive(t){this.isActive=t,this.updateContent()}updateContent(){const t=this.container;t.innerHTML="",t.setAttribute("data-id",this.conversation.id),this.isActive?t.classList.add("jodit-ui-conversation-list__item_active"):t.classList.remove("jodit-ui-conversation-list__item_active");const n=this.j.c.div("jodit-ui-conversation-list__item-avatar");n.textContent="AI",t.appendChild(n);const i=this.j.c.div("jodit-ui-conversation-list__item-wrapper"),o=this.j.c.div("jodit-ui-conversation-list__item-content"),e=this.j.c.div("jodit-ui-conversation-list__item-title");if(e.textContent=this.conversation.title,this.titleElement=e,o.appendChild(e),this.opts.showTimestamps){const s=this.j.c.div("jodit-ui-conversation-list__item-meta");s.textContent=this.opts.formatTimestamp(this.conversation.updated,this.j.i18n.bind(this.j)),o.appendChild(s)}if(i.appendChild(o),this.conversation.messageCount>0){const s=this.j.c.div("jodit-ui-conversation-list__item-badge");s.textContent=String(this.conversation.messageCount),i.appendChild(s)}t.appendChild(i),this.actionsButton||(this.actionsButton=new j(this.j,{icon:{name:"dots"},tooltip:"Actions",name:"conversationActions",size:"tiny"}),this.actionsButton.container.classList.add("jodit-ui-conversation-list__item-actions"),this.actionsButton.onAction(s=>{s.stopPropagation(),this.showActionsMenu(s)})),t.appendChild(this.actionsButton.container)}onClick(){this.isRenaming||this.j.e.fire("selectConversation.ai-assistant-pro",this.conversation.id)}showActionsMenu(t){if(!this.contextMenu||!this.actionsButton)return;const n=[{title:"Rename",icon:"pencil",exec:l(()=>{this.startInlineRename()},"exec")},{title:"Delete",icon:"bin",exec:l(()=>{this.onDelete()},"exec")}],i=this.actionsButton.container.getBoundingClientRect();this.contextMenu.show(i.left,i.bottom,n),t.stopPropagation()}startInlineRename(){if(this.isRenaming||!this.titleElement)return;this.isRenaming=!0;const t=this.titleElement,n=this.conversation.title,i=this.j.c.element("input");i.type="text",i.value=n,i.className="jodit-ui-conversation-list__item-title-input",t.textContent="",t.appendChild(i),i.focus(),i.select();const o=l(()=>{if(!this.isRenaming)return;const e=i.value.trim();this.isRenaming=!1,e&&e!==n?(t.textContent=e,this.j.e.fire("renameConversation.ai-assistant-pro",this.conversation.id,e)):t.textContent=n},"commit");this.j.e.on(i,"blur",o),this.j.e.on(i,"keydown",e=>{e.key==="Enter"&&(e.preventDefault(),i.blur()),e.key==="Escape"&&(this.isRenaming=!1,t.textContent=n)}),this.j.e.on(i,"click",e=>{e.stopPropagation()})}onDelete(){this.j.e.fire("deleteConversation.ai-assistant-pro",this.conversation.id)}destruct(){var t,n;(t=this.actionsButton)===null||t===void 0||t.destruct(),(n=this.contextMenu)===null||n===void 0||n.destruct(),super.destruct()}},l(c,"UIConversationListItem"),c);h([v("container:click")],a.prototype,"onClick",null),h([d],a.prototype,"showActionsMenu",null),h([d],a.prototype,"startInlineRename",null),h([d],a.prototype,"onDelete",null),a=h([m],a);export{a as UIConversationListItem};
|
|
@@ -9,4 +9,4 @@ var v=Object.defineProperty;var h=(d,t)=>v(d,"name",{value:t,configurable:!0});v
|
|
|
9
9
|
<div class="&__textarea-wrapper"></div>
|
|
10
10
|
<div class="&__buttons"></div>
|
|
11
11
|
</div>
|
|
12
|
-
</div>`}onInputRowClick(){var t;this.textarea!==this.j.od.activeElement&&((t=this.textarea)===null||t===void 0||t.focus())}afterRender(){this.contextBadges=this.getElm("context-badges"),this.createControls(),this.attachHandlers()}createControls(){const t=this.getElm("textarea-wrapper"),e=this.getElm("buttons");this.textarea=new B(this.j,{name:"message",placeholder:this.options.placeholderText,resizable:!1}),t.appendChild(this.textarea.container),this.sendButton=new u(this.j,{name:"send-message",icon:{name:"send"},variant:"
|
|
12
|
+
</div>`}onInputRowClick(){var t;this.textarea!==this.j.od.activeElement&&((t=this.textarea)===null||t===void 0||t.focus())}afterRender(){this.contextBadges=this.getElm("context-badges"),this.createControls(),this.attachHandlers()}createControls(){const t=this.getElm("textarea-wrapper"),e=this.getElm("buttons");this.textarea=new B(this.j,{name:"message",placeholder:this.options.placeholderText,resizable:!1}),t.appendChild(this.textarea.container),this.sendButton=new u(this.j,{name:"send-message",icon:{name:"send"},variant:"initial",size:"middle"}),this.stopButton=new u(this.j,{name:"abort-message",icon:{name:"cancel"},variant:"default",size:"middle"}),this.stopButton.container.style.display="none",e.appendChild(this.sendButton.container),e.appendChild(this.stopButton.container)}attachHandlers(){this.j.e.on(this.sendButton,"click",this.onSend),this.j.e.on(this.stopButton,"click",this.onStop),this.j.e.on(this.textarea.nativeInput,"keydown",t=>{const{sendShortcut:e,sendOnEnter:s}=this.options;if(e==="Ctrl+Enter"&&t.ctrlKey&&t.key==="Enter"){t.preventDefault(),this.onSend();return}if(t.key==="Escape"){this.j.e.fire("cancelEditMessage.ai-assistant-pro");return}t.key==="Enter"&&(s?t.shiftKey||(t.preventDefault(),this.onSend()):t.shiftKey&&(t.preventDefault(),this.onSend()))})}onSend(){var t;const e=(t=this.textarea)===null||t===void 0?void 0:t.value.trim();!e||this.isLoading||(this.j.e.fire("sendMessage.ai-assistant-pro",e),this.textarea&&(this.textarea.value="",this.textarea.nativeInput.focus()))}onStop(){this.j.e.fire("abortRequest.ai-assistant-pro")}setContexts(t){this.contexts=t,this.updateContextBadges()}updateContextBadges(){if(this.contextBadges.innerHTML="",this.contexts.length===0){this.contextBadges.style.display="none";return}this.contextBadges.style.display="",this.contexts.forEach((t,e)=>{const s=this.createContextBadge(t,e);this.contextBadges.appendChild(s)})}createContextBadge(t,e){const s=this.j.c.div(this.getFullElName("context-badge")),n=this.j.c.span(),i=t.html.replace(/<[^>]*>/g,"").substring(0,20);n.textContent=t.blockIndex!==void 0?`Block ${t.blockIndex}: ${i}...`:`${i}...`;const a=this.j.c.span(this.getFullElName("context-remove"));return a.textContent="\xD7",a.setAttribute("data-index",String(e)),this.j.e.on(a,"click",()=>{this.j.e.fire("removeContext.ai-assistant-pro",e)}),s.appendChild(n),s.appendChild(a),s}setLoading(t){this.isLoading=t;const{sendButton:e,stopButton:s,textarea:n}=this;g(e&&s&&n,"Buttons must be initialized"),n.setMod("disabled",t),e.setMod("disabled",t),this.setMod("loading",t),t?(e.container.style.display="none",s.container.style.display=""):(e.container.style.display="",s.container.style.display="none")}focus(){var t;(t=this.textarea)===null||t===void 0||t.nativeInput.focus()}setValue(t){this.textarea&&(this.textarea.value=t)}getValue(){var t;return((t=this.textarea)===null||t===void 0?void 0:t.value.trim())||""}destruct(){var t,e,s;(t=this.textarea)===null||t===void 0||t.destruct(),(e=this.sendButton)===null||e===void 0||e.destruct(),(s=this.stopButton)===null||s===void 0||s.destruct(),super.destruct()}},h(r,"UIInputArea"),r);l([m("input-row:click")],o.prototype,"onInputRowClick",null),l([x("ready")],o.prototype,"afterRender",null),l([p],o.prototype,"onSend",null),l([p],o.prototype,"onStop",null),o=l([f],o);export{o as UIInputArea};
|
|
@@ -26,10 +26,16 @@ export declare class UIMainPanel extends UIElement<IViewBased> {
|
|
|
26
26
|
setParentView(view: IViewBased): this;
|
|
27
27
|
protected render(): string;
|
|
28
28
|
addResize(): void;
|
|
29
|
+
private isEditingTitle;
|
|
30
|
+
private conversationActionsButton;
|
|
31
|
+
private headerContextMenu;
|
|
29
32
|
protected afterRender(): void;
|
|
30
33
|
protected __onChangeView(): Promise<void>;
|
|
31
34
|
private createComponents;
|
|
32
35
|
private createHeaderButtons;
|
|
36
|
+
private setupConversationRenameHandler;
|
|
37
|
+
private showConversationActionsMenu;
|
|
38
|
+
private showRenamePrompt;
|
|
33
39
|
/**
|
|
34
40
|
* Check if current display mode is flight
|
|
35
41
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var C=Object.defineProperty;var p=(u,t)=>C(u,"name",{value:t,configurable:!0});var d,l=function(u,t,e,s){var i=arguments.length,o=i<3?t:s===null?s=Object.getOwnPropertyDescriptor(t,e):s,n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(u,t,e,s);else for(var r=u.length-1;r>=0;r--)(n=u[r])&&(o=(i<3?n(o):i>3?n(t,e,o):n(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o};import{UIConversationList as f}from"../conversation-list/conversation-list.js";import{UIInputArea as w}from"../input-area/input-area.js";import{UIMessageList as _}from"../message-list/message-list.js";import{UIPermissionRequest as R}from"../permission-request/permission-request.js";import{UISettingsButton as L}from"../settings-button/index.js";import{UIWelcomeScreen as j}from"../welcome-screen/welcome-screen.js";import{autobind as g,component as A,hook as P,watch as h}from"jodit/esm/core/decorators/index.js";import{Dom as c}from"jodit/esm/core/dom/dom.js";import{UIElement as E}from"jodit/esm/core/ui/index.js";import{UIButton as m}from"jodit/esm/core/ui/button/index.js";import{ContextMenu as b}from"jodit/esm/modules/context-menu/context-menu.js";let a=(d=class extends E{className(){return"UIMainPanel"}constructor(t,e,s,i){super(t),this.state=e,this.options=s,this.updateConversation=i,this.permissionRequest=null,this.settingsButton=null,this.isEditingTitle=!1,this.conversationActionsButton=null,this.headerContextMenu=null}setParentView(t){var e,s,i,o,n,r;return(e=this.welcomeScreen)===null||e===void 0||e.setParentView(t),(s=this.conversationList)===null||s===void 0||s.setParentView(t),(i=this.messageList)===null||i===void 0||i.setParentView(t),(o=this.inputArea)===null||o===void 0||o.setParentView(t),(n=this.permissionRequest)===null||n===void 0||n.setParentView(t),(r=this.settingsButton)===null||r===void 0||r.setParentView(t),super.setParentView(t)}render(){return`<div class="&__container">
|
|
2
2
|
<div class="&__header">
|
|
3
3
|
<div class="&__header-left"></div>
|
|
4
4
|
<div class="&__header-title"></div>
|
|
@@ -9,4 +9,4 @@ var v=Object.defineProperty;var m=(u,t)=>v(u,"name",{value:t,configurable:!0});v
|
|
|
9
9
|
<div class="&__loading-spinner"></div>
|
|
10
10
|
</div>
|
|
11
11
|
<div class="&__footer"></div>
|
|
12
|
-
</div>`}addResize(){}afterRender(){this.content=this.getElm("content"),this.createComponents(),this.createHeaderButtons(),this.__updateView("welcome")}async __onChangeView(){this.__updateView(this.state.currentView,this.state.currentConversation)}createComponents(){this.welcomeScreen=new
|
|
12
|
+
</div>`}addResize(){}afterRender(){this.content=this.getElm("content"),this.headerContextMenu=new b(this.j),this.createComponents(),this.createHeaderButtons(),this.setupConversationRenameHandler(),this.__updateView("welcome")}async __onChangeView(){this.__updateView(this.state.currentView,this.state.currentConversation)}createComponents(){this.welcomeScreen=new j(this.j),this.conversationList=new f(this.j,this.options),this.messageList=new _(this.j,this.options),this.inputArea=new w(this.j,this.options),this.getElm("footer").appendChild(this.inputArea.container)}createHeaderButtons(){const t=this.getElm("header-left"),e=this.getElm("header-right"),s=new m(this.j,{icon:{name:"angle-left"},size:"small",variant:"initial"});s.container.classList.add(this.getFullElName("back-button")),this.j.e.on(s,"click",()=>{this.j.e.fire("backToList.ai-assistant-pro")}),t.appendChild(s.container),this.conversationActionsButton=new m(this.j,{icon:{name:"dots"},size:"small",tooltip:"Conversation actions",variant:"initial"}),this.conversationActionsButton.container.classList.add(this.getFullElName("conversation-actions-button")),this.conversationActionsButton.onAction(this.showConversationActionsMenu),e.appendChild(this.conversationActionsButton.container);const i=new m(this.j,{icon:{name:"plus"},size:"small",tooltip:"New chat",variant:"initial"});if(i.container.classList.add(this.getFullElName("new-button")),this.j.e.on(i,"click",()=>{this.j.e.fire("newConversation.ai-assistant-pro")}),e.appendChild(i.container),this.shouldShowSettings()&&(this.settingsButton=new L(this.j,this.state,this.options,()=>this.state.currentConversation,this.updateConversation),this.settingsButton.container.classList.add(this.getFullElName("settings-button")),e.appendChild(this.settingsButton.container)),this.mods.displayMode==="dialog"||!(this.mods.allowClose!==!1))return;const n=new m(this.j,{icon:{name:"cancel"},size:"small",tooltip:"Close",variant:"initial"});n.container.classList.add(this.getFullElName("close-button")),this.j.e.on(n,"click",()=>{this.j.e.fire("closeAIAssistantPro.ai-assistant-pro")}),e.appendChild(n.container)}setupConversationRenameHandler(){}showConversationActionsMenu(t){if(!this.headerContextMenu||!this.state.currentConversation)return;const e=this.state.currentConversation,s=[{title:"Rename",icon:"pencil",exec:p(()=>{this.showRenamePrompt(e.id,e.title||this.j.i18n("Conversation"))},"exec")},{title:"Delete",icon:"bin",exec:p(()=>{this.j.e.fire("deleteConversation.ai-assistant-pro",e.id)},"exec")}],i=this.conversationActionsButton.container.getBoundingClientRect();this.headerContextMenu.show(i.left,i.bottom,s),t.stopPropagation()}showRenamePrompt(t,e){if(this.isEditingTitle)return;this.isEditingTitle=!0;const s=this.getElm("header-title"),i=this.j.c.element("input");i.type="text",i.value=e,i.className=this.getFullElName("header-title-input"),s.textContent="",s.appendChild(i),i.focus(),i.select();const o=p(()=>{const n=i.value.trim();this.isEditingTitle=!1,n&&n!==e?(this.j.e.fire("renameConversation.ai-assistant-pro",t,n),s.textContent=n):s.textContent=e},"commit");this.j.e.on(i,"blur",o),this.j.e.on(i,"keydown",n=>{n.key==="Enter"&&(n.preventDefault(),i.blur()),n.key==="Escape"&&(this.isEditingTitle=!1,s.textContent=e)})}isFlightMode(){return this.mods.displayMode==="flight"}shouldShowSettings(){const t=this.options,e=t.allowEditDisplayMode||t.allowEditPanelWidth,s=t.allowEditDialogSettings;return e||s}__updateView(t,e=null){var s;(s=this.settingsButton)===null||s===void 0||s.update();const i=this.getElm("header-title");this.setMod("view",t);const o=this.isFlightMode();switch(t){case"welcome":i.textContent=this.j.i18n("AI Assistant"),c.safeRemove(this.conversationList.container),c.safeRemove(this.messageList.container),this.content.appendChild(this.welcomeScreen.container),this.inputArea.focus();break;case"conversationList":i.textContent=this.j.i18n("AI Assistant"),c.safeRemove(this.welcomeScreen.container),c.safeRemove(this.messageList.container),this.conversationList.container.isConnected||this.content.appendChild(this.conversationList.container);break;case"conversation":i.textContent=o?this.j.i18n("AI Assistant"):e?.title||this.j.i18n("Conversation"),c.safeRemove(this.welcomeScreen.container),c.safeRemove(this.conversationList.container),this.messageList.container.isConnected||this.content.appendChild(this.messageList.container),e&&this.messageList.setMessages(e.messages),this.inputArea.focus();break}}onChangeCurrentConversation(){const{currentConversation:t}=this.state;t&&(this.conversationList.setActiveConversation(t.id),this.messageList.setMessages(t.messages))}onChangeConversations(){this.conversationList.setConversations(this.state.conversations)}onChangeSelectionContexts(){this.inputArea.setContexts(this.state.selectionContexts)}onChangeLoading(){this.inputArea.setLoading(this.state.isLoading)}onChangePendingToolCalls(){this.state.pendingToolCalls&&this.state.pendingToolCalls.length>0?this.showPermissionRequest(this.state.pendingToolCalls[0]):this.hidePermissionRequest()}showPermissionRequest(t){this.permissionRequest||(this.permissionRequest=new R(this.j,this.options)),this.permissionRequest.setToolCall(t);const e=this.getElm("footer");e.contains(this.permissionRequest.container)||e.insertBefore(this.permissionRequest.container,this.inputArea.container)}hidePermissionRequest(){this.permissionRequest&&this.permissionRequest.container.parentNode&&this.permissionRequest.container.parentNode.removeChild(this.permissionRequest.container)}destruct(){var t,e,s,i,o,n,r,v;(t=this.welcomeScreen)===null||t===void 0||t.destruct(),(e=this.conversationList)===null||e===void 0||e.destruct(),(s=this.messageList)===null||s===void 0||s.destruct(),(i=this.inputArea)===null||i===void 0||i.destruct(),(o=this.permissionRequest)===null||o===void 0||o.destruct(),(n=this.settingsButton)===null||n===void 0||n.destruct(),(r=this.conversationActionsButton)===null||r===void 0||r.destruct(),(v=this.headerContextMenu)===null||v===void 0||v.destruct(),super.destruct()}},p(d,"UIMainPanel"),d);l([P("ready")],a.prototype,"afterRender",null),l([h(["state.currentView","state.currentConversation"])],a.prototype,"__onChangeView",null),l([g],a.prototype,"showConversationActionsMenu",null),l([g],a.prototype,"showRenamePrompt",null),l([h("state.currentConversation")],a.prototype,"onChangeCurrentConversation",null),l([h("state.conversations")],a.prototype,"onChangeConversations",null),l([h("state.selectionContexts")],a.prototype,"onChangeSelectionContexts",null),l([h("state.isLoading")],a.prototype,"onChangeLoading",null),l([h("state.pendingToolCalls")],a.prototype,"onChangePendingToolCalls",null),a=l([A],a);export{a as UIMainPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var g=Object.defineProperty;var r=(c,t)=>g(c,"name",{value:t,configurable:!0});var l,p=function(c,t,e,s){var i=arguments.length,n=i<3?t:s===null?s=Object.getOwnPropertyDescriptor(t,e):s,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(c,t,e,s);else for(var a=c.length-1;a>=0;a--)(o=c[a])&&(n=(i<3?o(n):i>3?o(t,e,n):o(t,e))||n);return i>3&&n&&Object.defineProperty(t,e,n),n};import{UIArtifact as f}from"../artifact.js";import{component as C,hook as j}from"jodit/esm/core/decorators/index.js";import{UIElement as E}from"jodit/esm/core/ui/index.js";import{UIButton as b}from"jodit/esm/core/ui/button/index.js";import{UIGroup as M}from"jodit/esm/core/ui/group/group.js";import{Icon as u}from"jodit/esm/core/ui/icon.js";import{ContextMenu as x}from"jodit/esm/modules/context-menu/context-menu.js";let d=(l=class extends E{className(){return"UIMessageListItem"}constructor(t,e,s){super(t),this.message=e,this.opts=s,this.artifactGroup=null,this.actionsButton=null,this.contextMenu=null}render(){return`<div class="${this.getFullElName("message")}"></div>`}onReady(){this.updateContent(),this.contextMenu=new x(this.j)}updateContent(){const t=this.container;t.innerHTML="",t.setAttribute("data-message-id",this.message.id),t.setAttribute("data-role",this.message.role);const e=this.j.c.div(this.getFullElName("message-bubble"));e.classList.add(this.getFullElName("message-bubble",this.message.role,!0));const s=this.j.c.div(this.getFullElName("message-content"));if(s.innerHTML=this.formatMessageContent(this.message.content),e.appendChild(s),this.opts.showTimestamps){const n=this.j.c.div(this.getFullElName("message-timestamp"));n.textContent=this.formatTimestamp(this.message.timestamp),e.appendChild(n)}const i=this.j.c.div(this.getFullElName("message-actions"));if(this.renderActionsButton(i),e.appendChild(i),t.appendChild(e),this.message.toolCalls&&this.message.toolCalls.length>0){const n=this.j.c.div(this.getFullElName("tool-calls"));t.appendChild(n),this.message.toolCalls.forEach(o=>{const a=this.createToolCallElement(o);n.appendChild(a)})}this.message.artifacts&&this.message.artifacts.length>0&&this.renderArtifacts()}renderActionsButton(t){const e=this.opts;(e.showCopyMessageAction||e.showRestartMessageAction||e.showEditMessageAction||e.showDeleteMessageAction)&&(this.actionsButton=new b(this.j,{icon:{name:"dots"},tooltip:"Message actions",name:"messageActions",size:"tiny"}),this.actionsButton.onAction(i=>{this.showActionsMenu(i)}),t.appendChild(this.actionsButton.container))}showActionsMenu(t){if(!this.contextMenu||!this.actionsButton)return;const e=this.j,s=e.o.aiAssistantPro,i=[];s.showCopyMessageAction&&i.push({title:"Copy message",icon:"copy",exec:r(()=>{this.j.e.fire("copyMessage.ai-assistant-pro",this.message.id)},"exec")}),this.message.role==="user"&&(s.showRestartMessageAction&&i.push({title:"Restart from here",icon:"update",exec:r(()=>{this.j.e.fire("restartFromMessage.ai-assistant-pro",this.message.id)},"exec")}),s.showEditMessageAction&&i.push({title:"Edit message",icon:"pencil",exec:r(()=>{this.j.e.fire("editMessage.ai-assistant-pro",this.message.id)},"exec")})),s.showDeleteMessageAction&&i.push({title:"Delete message",icon:"bin",exec:r(()=>{e.confirm("Are you sure you want to delete this message?","Delete message",o=>{o&&this.j.e.fire("deleteMessage.ai-assistant-pro",this.message.id)})},"exec")});const n=this.actionsButton.container.getBoundingClientRect();this.contextMenu.show(n.left,n.bottom,i),t.stopPropagation()}renderArtifacts(){if(!this.message.artifacts||this.message.artifacts.length===0)return;const t=this.j.c.div(this.getFullElName("artifacts"));this.container.appendChild(t),this.artifactGroup||(this.artifactGroup=new M(this.j),this.artifactGroup.container.className="jodit-ui-artifact-group"),this.artifactGroup.clear(),this.message.artifacts.forEach(e=>{const s=new f(this.j,e);this.artifactGroup.append(s)}),t.appendChild(this.artifactGroup.container)}createToolCallElement(t){const e=this.j.c.div(this.getFullElName("tool-call"));e.setAttribute("data-tool-id",t.id),e.setAttribute("data-status",t.status);const s=this.j.c.div(this.getFullElName("tool-header")),i=this.j.c.div(this.getFullElName("tool-icon"));i.classList.add(this.getFullElName("tool-icon",t.status,!0)),i.innerHTML=u.get("tool-bolt")||"";const n=this.j.c.div(this.getFullElName("tool-name"));n.textContent=this.j.i18n(t.name);const o=this.j.c.div(this.getFullElName("tool-status"));o.textContent=this.getToolStatusText(t.status||"unknown"),s.appendChild(i),s.appendChild(n),s.appendChild(o),e.appendChild(s);const a=this.createExpandableSection("Arguments",JSON.stringify(t.arguments||{},null,2));if(e.appendChild(a),t.result){const h=t.result.error?`Error: ${t.result.error}`:t.result.result||"",m=this.createExpandableSection("Result",typeof h=="string"?h:JSON.stringify(h,null,2));e.appendChild(m)}return e}createExpandableSection(t,e){const s=this.j.c.div(this.getFullElName("tool-expandable")),i=this.j.c.element("button",{type:"button",class:this.getFullElName("tool-expandable-toggle")}),n=this.j.c.span(this.getFullElName("tool-expandable-chevron"));n.innerHTML=u.get("chevron-right")||"";const o=this.j.c.span();o.textContent=this.j.i18n(t),i.appendChild(n),i.appendChild(o);const a=this.j.c.element("pre",{class:this.getFullElName("tool-expandable-content")});return a.textContent=e,a.style.display="none",this.j.e.on(i,"click",()=>{a.style.display!=="none"?(a.style.display="none",i.classList.remove("expanded")):(a.style.display="block",i.classList.add("expanded"))}),s.appendChild(i),s.appendChild(a),s}getToolStatusText(t){return{pending:"pending",approved:"approved",denied:"denied",executing:"running",executed:"done",error:"error"}[t]||t}formatMessageContent(t){const e=this.opts.formatMessageContent,s=this.message.role;return e(t,s,this.j.i18n.bind(this.j))}formatTimestamp(t){const e=this.opts.formatTimestamp;return e(t,this.j.i18n.bind(this.j))}updateMessage(t){this.message=t,this.updateContent()}destruct(){var t,e,s;(t=this.actionsButton)===null||t===void 0||t.destruct(),(e=this.contextMenu)===null||e===void 0||e.destruct(),(s=this.artifactGroup)===null||s===void 0||s.destruct(),super.destruct()}},r(l,"UIMessageListItem"),l);p([j("ready")],d.prototype,"onReady",null),d=p([C],d);export{d as UIMessageListItem};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
var v=Object.defineProperty;var
|
|
1
|
+
var v=Object.defineProperty;var d=(r,t)=>v(r,"name",{value:t,configurable:!0});var l,c=function(r,t,e,i){var o=arguments.length,n=o<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,e):i,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(r,t,e,i);else for(var p=r.length-1;p>=0;p--)(a=r[p])&&(n=(o<3?a(n):o>3?a(t,e,n):a(t,e))||n);return o>3&&n&&Object.defineProperty(t,e,n),n};import{autobind as u,component as m,hook as f}from"jodit/esm/core/decorators/index.js";import{UIElement as _}from"jodit/esm/core/ui/index.js";import{UIButton as h}from"jodit/esm/core/ui/button/index.js";import{UISelect as C}from"jodit/esm/core/ui/form/inputs/select/select.js";import{Icon as y}from"jodit/esm/core/ui/icon.js";let s=(l=class extends _{className(){return"UIPermissionRequest"}constructor(t,e){super(t),this.state=e,this.scopeSelect=null,this.approveButton=null,this.denyButton=null}setToolCall(t){this.toolCall=t,this.updateContent()}setParentView(t){var e,i,o;return(e=this.scopeSelect)===null||e===void 0||e.setParentView(t),(i=this.approveButton)===null||i===void 0||i.setParentView(t),(o=this.denyButton)===null||o===void 0||o.setParentView(t),super.setParentView(t)}render(){return`<div class="&__container">
|
|
2
2
|
<div class="&__header">
|
|
3
3
|
<div class="&__icon"></div>
|
|
4
4
|
<div class="&__title">~Permission Required~</div>
|
|
5
5
|
</div>
|
|
6
6
|
<div class="&__tool-info"></div>
|
|
7
|
-
<div class="&__actions"
|
|
8
|
-
|
|
7
|
+
<div class="&__actions">
|
|
8
|
+
<div class="&__actions-buttons"></div>
|
|
9
|
+
<div class="&__actions-scope"></div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>`}afterRender(){const t=this.getElm("icon");t&&(t.innerHTML=y.get("shield")||""),this.createControls(),this.updateContent()}createControls(){const t=this.getElm("actions-buttons"),e=this.getElm("actions-scope");this.denyButton=new h(this.j,{text:this.j.i18n("Deny"),variant:"initial",size:"small",name:"deny-permission"}),this.j.e.on(this.denyButton,"click",this.onDeny),this.approveButton=new h(this.j,{text:this.j.i18n("Allow"),variant:"initial",size:"small",name:"approve-permission"}),this.j.e.on(this.approveButton,"click",this.onApprove),this.scopeSelect=new C(this.j,{name:"permission-scope",options:[{value:"once",text:this.j.i18n("Once")},{value:"conversation",text:this.j.i18n("This conversation")},{value:"forever",text:this.j.i18n("Always")}]}),this.scopeSelect.value=this.state.defaultPermissionScope,t.appendChild(this.denyButton.container),t.appendChild(this.approveButton.container),e.appendChild(this.scopeSelect.container)}updateContent(){if(!this.toolCall)return;const t=this.getElm("tool-info");t.innerHTML=`
|
|
9
12
|
<div class="${this.getFullElName("tool-name")}">${this.j.i18n(this.toolCall.name)}</div>
|
|
10
13
|
<div class="${this.getFullElName("tool-args")}">${this.formatArguments(this.toolCall.arguments)}</div>
|
|
11
|
-
`}formatArguments(t){return Object.entries(t).map(([e,
|
|
14
|
+
`}formatArguments(t){return Object.entries(t).map(([e,i])=>`${e}: ${JSON.stringify(i)}`).join(", ")}onApprove(){var t;const e=(t=this.scopeSelect)===null||t===void 0?void 0:t.value;this.j.e.fire("approveToolCall.ai-assistant-pro",this.toolCall.id,e)}onDeny(){this.j.e.fire("denyToolCall.ai-assistant-pro",this.toolCall.id)}destruct(){var t,e,i;(t=this.scopeSelect)===null||t===void 0||t.destruct(),(e=this.approveButton)===null||e===void 0||e.destruct(),(i=this.denyButton)===null||i===void 0||i.destruct(),super.destruct()}},d(l,"UIPermissionRequest"),l);c([f("ready")],s.prototype,"afterRender",null),c([u],s.prototype,"onApprove",null),c([u],s.prototype,"onDeny",null),s=c([m],s);export{s as UIPermissionRequest};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var g=Object.defineProperty;var c=(i,t)=>g(i,"name",{value:t,configurable:!0});var
|
|
1
|
+
var g=Object.defineProperty;var c=(i,t)=>g(i,"name",{value:t,configurable:!0});var l,h=function(i,t,e,o){var n=arguments.length,s=n<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,e):o,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(i,t,e,o);else for(var u=i.length-1;u>=0;u--)(a=i[u])&&(s=(n<3?a(s):n>3?a(t,e,s):a(t,e))||s);return n>3&&s&&Object.defineProperty(t,e,s),s};import{ViewComponent as I}from"jodit/esm/core/component/index.js";import{component as y,debounce as d,watch as f}from"jodit/esm/core/decorators/index.js";let r=(l=class extends I{className(){return"LoadingManager"}constructor(t,e){super(t),this.state=e,this.__tick=0,this.offset=0,this.countInOneChunk=20,this.stopLoadingParts=!1,this.__isLoadingPart=!1,this.__callQueueCount=0}async onUpdateFileBrowser(){this.state.activeElements=[],this.j.panel.setMod("loading",!0),await Promise.all([this.loadFolders(),this.loadItems()]),this.j.panel.setMod("loading",!1)}async loadFolders(){var t;if(!this.j.isOpened)return;const{currentPath:e,currentSource:o,onlyImages:n}=this.state;try{const s=this.j.dataProvider;!((t=s.o)===null||t===void 0)&&t.folder&&(s.o.folder.data.onlyImages=n);const a=await s.tree(e,o);this.j.stateManager.fillTreeForPath(a,e),this.state.sources=a}catch(s){this.j.status(s)}}async loadItems(){if(this.j.isOpened)try{this.__tick+=1;const{__tick:t}=this;this.offset=0,this.stopLoadingParts=!1,this.__callQueueCount=0;const{items:e,loadedTotal:o}=await m(this.state,this.j.dataProvider,this.offset,this.countInOneChunk);if(this.state.elements=e,this.stopLoadingParts=o<this.countInOneChunk,await this.loadItemsChunk(t),await this.async.requestIdlePromise(),this.__tick!==t)return;for(;!this.stopLoadingParts&&this.j.panel.countInColumn*this.j.panel.countInRow>=this.state.elements.length;)if(await this.loadItemsChunk(t),this.__tick!==t)return}catch(t){this.j.status(t)}}async __loadItemsChunk(t){if(this.__isLoadingPart){this.__callQueueCount+=1;return}if(this.stopLoadingParts){this.__callQueueCount=0;return}this.__isLoadingPart=!0,this.j.panel.items.setMod("chunk-loading",!0);try{this.offset+=this.countInOneChunk;const{items:e,loadedTotal:o}=await m(this.state,this.j.dataProvider,this.offset,this.countInOneChunk);if(this.__tick!==t)return;this.stopLoadingParts=o<this.countInOneChunk,e.length&&(this.state.elements=this.state.elements.concat(e))}catch(e){this.j.status(e)}if(this.j.panel.items.setMod("chunk-loading",!1),this.__isLoadingPart=!1,this.__callQueueCount>0)return this.__callQueueCount-=1,this.__loadItemsChunk(t)}loadItemsChunk(t=this.__tick){return t!==this.__tick?Promise.resolve():this.__loadItemsChunk(t)}},c(l,"LoadingManager"),l);h([f(":update.filebrowser")],r.prototype,"onUpdateFileBrowser",null),h([f(["state.currentPath","state.currentSource","state.onlyImages"]),d(i=>({timeout:i.defaultTimeout,promisify:!0}))],r.prototype,"loadFolders",null),h([f(["state.currentPath","state.currentSource","state.sortBy","state.onlyImages","state.foldersPosition","state.filterWord"]),d(i=>({timeout:i.defaultTimeout,promisify:!0}))],r.prototype,"loadItems",null),h([d(i=>({timeout:i.defaultTimeout,promisify:!0}))],r.prototype,"loadItemsChunk",null),r=h([y],r);function m(i,t,e,o){const{currentPath:n,currentSource:s,sortBy:a,withFolders:u,foldersPosition:_,onlyImages:p,filterWord:P}=i;return t.itemsEx(n,s,{offset:e,limit:o,sortBy:a,withFolders:u,foldersPosition:_,onlyImages:p,filterWord:P})}c(m,"loadPartItems");export{r as LoadingManager};
|
package/package.json
CHANGED
|
@@ -25,6 +25,12 @@ export declare class aiAssistantPro extends Plugin {
|
|
|
25
25
|
* Load initial data (conversations list)
|
|
26
26
|
*/
|
|
27
27
|
private loadInitialData;
|
|
28
|
+
/**
|
|
29
|
+
* Restore pending tool calls after loading a conversation from storage.
|
|
30
|
+
* Scans messages for tool calls with non-terminal status and
|
|
31
|
+
* re-runs handleToolCalls to show the permission dialog.
|
|
32
|
+
*/
|
|
33
|
+
private restorePendingToolCalls;
|
|
28
34
|
/**
|
|
29
35
|
* Setup event listeners
|
|
30
36
|
*/
|
|
@@ -80,6 +86,10 @@ export declare class aiAssistantPro extends Plugin {
|
|
|
80
86
|
* Delete conversation
|
|
81
87
|
*/
|
|
82
88
|
deleteConversation(conversationId: string): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Rename conversation
|
|
91
|
+
*/
|
|
92
|
+
renameConversation(conversationId: string, newTitle: string): Promise<void>;
|
|
83
93
|
/**
|
|
84
94
|
* Search conversations
|
|
85
95
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
|
|
5
5
|
*/
|
|
6
6
|
import type { IJodit } from "jodit/esm/types/index";
|
|
7
|
-
import type { IConversation } from "../interface/index";
|
|
7
|
+
import type { IAIMessage, IConversation, ToolCallStatus } from "../interface/index";
|
|
8
8
|
/**
|
|
9
9
|
* Create new conversation
|
|
10
10
|
*/
|
|
@@ -13,7 +13,16 @@ export declare function createNewConversation(jodit: IJodit, defaultModel: strin
|
|
|
13
13
|
* Find last non-error assistant message for parentMessageId
|
|
14
14
|
*/
|
|
15
15
|
export declare function findParentMessageId(conversation: IConversation): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Check if a tool call status is terminal (no further action needed)
|
|
18
|
+
*/
|
|
19
|
+
export declare function isTerminalToolCallStatus(status: ToolCallStatus): boolean;
|
|
16
20
|
/**
|
|
17
21
|
* Check if all tool calls have been executed
|
|
18
22
|
*/
|
|
19
23
|
export declare function areAllToolCallsExecuted(conversation: IConversation): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Find messages that have tool calls with non-terminal status
|
|
26
|
+
* Used to restore pending tool call state after page refresh
|
|
27
|
+
*/
|
|
28
|
+
export declare function findMessagesWithPendingToolCalls(conversation: IConversation): IAIMessage[];
|
|
@@ -11,7 +11,10 @@ export declare class UIConversationListItem extends UIElement<IViewBased> {
|
|
|
11
11
|
className(): string;
|
|
12
12
|
readonly conversation: IConversationMeta;
|
|
13
13
|
private isActive;
|
|
14
|
-
private
|
|
14
|
+
private actionsButton;
|
|
15
|
+
private contextMenu;
|
|
16
|
+
private titleElement;
|
|
17
|
+
private isRenaming;
|
|
15
18
|
constructor(view: IViewBased, conversation: IConversationMeta, isActive: boolean | undefined, opts: {
|
|
16
19
|
formatTimestamp: IAIAssistantProOptions['formatTimestamp'];
|
|
17
20
|
showTimestamps: boolean;
|
|
@@ -20,6 +23,8 @@ export declare class UIConversationListItem extends UIElement<IViewBased> {
|
|
|
20
23
|
setActive(active: boolean): void;
|
|
21
24
|
private updateContent;
|
|
22
25
|
protected onClick(): void;
|
|
26
|
+
private showActionsMenu;
|
|
27
|
+
private startInlineRename;
|
|
23
28
|
private onDelete;
|
|
24
29
|
destruct(): void;
|
|
25
30
|
}
|
|
@@ -26,10 +26,16 @@ export declare class UIMainPanel extends UIElement<IViewBased> {
|
|
|
26
26
|
setParentView(view: IViewBased): this;
|
|
27
27
|
protected render(): string;
|
|
28
28
|
addResize(): void;
|
|
29
|
+
private isEditingTitle;
|
|
30
|
+
private conversationActionsButton;
|
|
31
|
+
private headerContextMenu;
|
|
29
32
|
protected afterRender(): void;
|
|
30
33
|
protected __onChangeView(): Promise<void>;
|
|
31
34
|
private createComponents;
|
|
32
35
|
private createHeaderButtons;
|
|
36
|
+
private setupConversationRenameHandler;
|
|
37
|
+
private showConversationActionsMenu;
|
|
38
|
+
private showRenamePrompt;
|
|
33
39
|
/**
|
|
34
40
|
* Check if current display mode is flight
|
|
35
41
|
*/
|