UNPKG

jodit-pro

Version:

PRO Version of Jodit Editor

13 lines (12 loc) 6.97 kB
var v=Object.defineProperty;var m=(u,t)=>v(u,"name",{value:t,configurable:!0});var d,r=function(u,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(u,t,e,s);else for(var l=u.length-1;l>=0;l--)(o=u[l])&&(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{UIConversationList as g}from"../conversation-list/conversation-list.js";import{UIInputArea as C}from"../input-area/input-area.js";import{UIMessageList as f}from"../message-list/message-list.js";import{UIPermissionRequest as _}from"../permission-request/permission-request.js";import{UISettingsButton as w}from"../settings-button/index.js";import{UIWelcomeScreen as L}from"../welcome-screen/welcome-screen.js";import{component as R,hook as j,watch as h}from"jodit/esm/core/decorators/index.js";import{Dom as c}from"jodit/esm/core/dom/dom.js";import{UIElement as P}from"jodit/esm/core/ui/index.js";import{UIButton as p}from"jodit/esm/core/ui/button/index.js";let a=(d=class extends P{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}setParentView(t){var e,s,i,n,o,l;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),(n=this.inputArea)===null||n===void 0||n.setParentView(t),(o=this.permissionRequest)===null||o===void 0||o.setParentView(t),(l=this.settingsButton)===null||l===void 0||l.setParentView(t),super.setParentView(t)}render(){return`<div class="&__container"> <div class="&__header"> <div class="&__header-left"></div> <div class="&__header-title"></div> <div class="&__header-right"></div> </div> <div class="&__content"></div> <div class="&__loading-overlay"> <div class="&__loading-spinner"></div> </div> <div class="&__footer"></div> </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 L(this.j),this.conversationList=new g(this.j,this.options),this.messageList=new f(this.j,this.options),this.inputArea=new C(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 p(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);const i=new p(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 w(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 o=new p(this.j,{icon:{name:"cancel"},size:"small",tooltip:"Close",variant:"initial"});o.container.classList.add(this.getFullElName("close-button")),this.j.e.on(o,"click",()=>{this.j.e.fire("closeAIAssistantPro.ai-assistant-pro")}),e.appendChild(o.container)}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 n=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=n?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 _(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,n,o;(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(),(n=this.permissionRequest)===null||n===void 0||n.destruct(),(o=this.settingsButton)===null||o===void 0||o.destruct(),super.destruct()}},m(d,"UIMainPanel"),d);r([j("ready")],a.prototype,"afterRender",null),r([h(["state.currentView","state.currentConversation"])],a.prototype,"__onChangeView",null),r([h("state.currentConversation")],a.prototype,"onChangeCurrentConversation",null),r([h("state.conversations")],a.prototype,"onChangeConversations",null),r([h("state.selectionContexts")],a.prototype,"onChangeSelectionContexts",null),r([h("state.isLoading")],a.prototype,"onChangeLoading",null),r([h("state.pendingToolCalls")],a.prototype,"onChangePendingToolCalls",null),a=r([R],a);export{a as UIMainPanel};