openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
57 lines • 4.4 kB
JavaScript
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{Cn as t,R as n,wr as r,z as i}from"./control-ui-foundation-Cydpkyqa.js";import{Sc as a,bc as o}from"./control-ui-core-Rwzhj6nO.js";import{$ as s,K as c,X as l,_ as u,at as d,q as f,st as p,v as m}from"./lit-runtime-CV_MH99K.js";import{_ as h,g}from"./control-ui-core-YphAl4aM.js";import{Gt as _,Wt as v,Yt as y,en as b}from"./control-ui-core-vvcQQV2m.js";import"./control-ui-boot-shared-CXVvK2AW.js";import{b as x,r as S,x as C}from"./control-ui-boot-chat-Bia0O-uD.js";import{n as w}from"./control-ui-boot-chat-BhPddYSI.js";var T;function E(){return(E=e((()=>{i(),c(),s(),u(),h(),y(),a(),C(),S(),w(),_(),T=class extends o{constructor(...e){super(...e),this.sessionKey=``,this.agentId=``,this.workContext={page:`chat`},this.includeContext=!0,this.selection=``,this.selectionAvailable=!1,this.selectionScope=``,this.updateSelectionAvailability=()=>{let e=window.getSelection();this.selectionAvailable=!!(e&&!e.isCollapsed&&e.anchorNode&&!this.contains(e.anchorNode))},this.attachSelection=e=>{e.preventDefault();let n=window.getSelection();!n||n.isCollapsed||n.anchorNode&&this.contains(n.anchorNode)||(this.selection=t(n.toString(),640),this.includeContext=!0)}}connectedCallback(){super.connectedCallback(),document.addEventListener(`selectionchange`,this.updateSelectionAvailability),this.updateSelectionAvailability()}disconnectedCallback(){document.removeEventListener(`selectionchange`,this.updateSelectionAvailability),super.disconnectedCallback()}willUpdate(){let e=this.workContext,t=JSON.stringify([this.context.gateway.connection.gatewayUrl,e.page,e.sessionKey,e.sessionId,e.agentId,e.file]);this.selectionScope&&this.selectionScope!==t&&(this.selection=``),this.selectionScope=t}render(){let e={...this.workContext,selection:this.selection||void 0},t=x(e),n=JSON.stringify([this.context.gateway.connection.gatewayUrl,this.agentId,this.sessionKey]);return l`
<div class="assistant-panel-context">
${this.includeContext?l`
<details>
<summary>
${b(`assistantPanel.context`,{context:e.title||e.page})}
</summary>
<pre>${t}</pre>
</details>
<button
type="button"
class="rail-header__action"
aria-label=${b(`assistantPanel.removeContext`)}
@click=${()=>{this.includeContext=!1}}
>
${v.x}
</button>
`:l`<button
type="button"
class="btn btn--sm"
@click=${()=>{this.includeContext=!0}}
>
${b(`assistantPanel.includeContext`)}
</button>`}
<button
type="button"
class="rail-header__action"
aria-label=${b(`assistantPanel.attachSelection`)}
?disabled=${!this.selectionAvailable}
title=${b(`assistantPanel.attachSelection`)}
@mousedown=${this.attachSelection}
@click=${e=>{e.detail===0&&this.attachSelection(e)}}
>
${v.messageSquare}
</button>
${this.selection?l`<button
type="button"
class="btn btn--sm"
aria-label=${b(`assistantPanel.removeSelection`)}
@click=${()=>{this.selection=``}}
>
${b(`assistantPanel.selection`)} ${v.x}
</button>`:f}
</div>
${m(n,l`<openclaw-chat-pane
.paneId=${`home-dock:${n}`}
.presentationId=${`home-dock:${n}`}
.sessionKey=${this.sessionKey}
.agentId=${this.agentId}
.inputRegion=${`dock`}
.active=${!0}
.compact=${!0}
.narrow=${!0}
.workContext=${this.includeContext?t:void 0}
></openclaw-chat-pane>`)}
`}},r([n({context:g,subscribe:!0})],T.prototype,`context`,void 0),r([p({attribute:!1})],T.prototype,`sessionKey`,void 0),r([p({attribute:!1})],T.prototype,`agentId`,void 0),r([p({attribute:!1})],T.prototype,`workContext`,void 0),r([d()],T.prototype,`includeContext`,void 0),r([d()],T.prototype,`selection`,void 0),r([d()],T.prototype,`selectionAvailable`,void 0),customElements.define(`openclaw-home-session`,T)})))()}E();export{T as OpenClawHomeSession};
//# sourceMappingURL=home-session.runtime-DbtjHZUv.js.map