UNPKG

jodit-pro

Version:

PRO Version of Jodit Editor

2 lines (1 loc) 3.64 kB
var l=Object.defineProperty;var a=(r,t)=>l(r,"name",{value:t,configurable:!0});const o=class o{constructor(t){this.jodit=t,this.state=this.createInitialState()}createInitialState(){return{isOpen:!1,currentView:"welcome",currentConversation:null,conversations:[],isLoading:!1,error:null,pendingToolCalls:[],selectionContexts:[],abortController:null,editingMessageId:null,theme:this.jodit.o.aiAssistantPro.theme||"parent",displayMode:this.jodit.o.aiAssistantPro.displayMode,panelWidth:this.jodit.o.aiAssistantPro.panelWidth,panelHeight:this.jodit.o.aiAssistantPro.panelHeight,defaultModel:this.jodit.o.aiAssistantPro.defaultModel,defaultTemperature:this.jodit.o.aiAssistantPro.defaultTemperature}}open(){this.state.isOpen=!0,this.jodit.e.fire("open.ai-assistant-pro",this.state.currentConversation)}close(){this.state.isOpen=!1,this.jodit.e.fire("close.ai-assistant-pro")}isOpen(){return this.state.isOpen}setView(t){this.state.currentView=t,this.jodit.e.fire("viewChanged.ai-assistant-pro",t)}getView(){return this.state.currentView}setConversations(t){this.state.conversations=t}setSavedState(t){t.theme&&(this.state.theme=t.theme),t.displayMode&&(this.state.displayMode=t.displayMode),t.panelWidth&&(this.state.panelWidth=t.panelWidth),t.panelHeight&&(this.state.panelHeight=t.panelHeight),t.defaultModel&&(this.state.defaultModel=t.defaultModel),t.defaultTemperature&&(this.state.defaultTemperature=t.defaultTemperature)}getConversations(){return this.state.conversations}setCurrentConversation(t){if(this.state.currentConversation===t)throw new Error("Conversation is already current");this.state.currentConversation=t||null,t&&(this.setView("conversation"),this.jodit.e.fire("conversationSwitched.ai-assistant-pro",t))}getCurrentConversation(){return this.state.currentConversation}removeConversation(t){const e=this.state.conversations.filter(s=>s.id!==t);this.setConversations(e)}setLoading(t){this.state.isLoading=t}isLoading(){return this.state.isLoading}setError(t){this.state.error=t,t&&this.jodit.e.fire("error.ai-assistant-pro",new Error(t))}getError(){return this.state.error}clearError(){this.setError(null)}setPendingToolCalls(t){this.state.pendingToolCalls=t}getPendingToolCalls(){return this.state.pendingToolCalls}addPendingToolCall(t){const e=[...this.state.pendingToolCalls,t];this.setPendingToolCalls(e)}removePendingToolCall(t){const e=this.state.pendingToolCalls.filter(s=>s.id!==t);this.setPendingToolCalls(e)}updateToolCallStatus(t,e){const s=this.state.pendingToolCalls.map(i=>i.id===t?{...i,status:e}:i);this.setPendingToolCalls(s)}setSelectionContexts(t){this.state.selectionContexts=t}getSelectionContexts(){return this.state.selectionContexts}addSelectionContext(t){const{maxContextRanges:e}=this.jodit.o.aiAssistantPro;let s=[...this.state.selectionContexts,t];s.length>e&&(s=s.slice(-e)),this.setSelectionContexts(s),this.jodit.e.fire("contextAdded.ai-assistant-pro",t)}removeSelectionContext(t){const e=this.state.selectionContexts.filter((s,i)=>i!==t);this.setSelectionContexts(e),this.jodit.e.fire("contextRemoved.ai-assistant-pro",t)}clearSelectionContexts(){this.setSelectionContexts([])}setAbortController(t){this.state.abortController=t}getAbortController(){return this.state.abortController}setEditingMessageId(t){this.state.editingMessageId=t}getEditingMessageId(){return this.state.editingMessageId}isEditingMessage(){return this.state.editingMessageId!=null}clearEditingMessage(){this.setEditingMessageId(null)}reset(){this.state=this.createInitialState()}destruct(){this.state.abortController&&this.state.abortController.abort(),this.reset()}};a(o,"StateManager");let n=o;export{n as StateManager};