openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
45 lines • 6.45 kB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./board-view-BDFO4Vkf.js","./control-ui-core-vvcQQV2m.js","./rolldown-runtime-DkW27tQK.js","./control-ui-foundation-Cydpkyqa.js","./control-ui-core-Rwzhj6nO.js","./lit-runtime-CV_MH99K.js","./control-ui-core-YphAl4aM.js","./gateway-runtime-Bqqcp9-I.js","./control-ui-core-ClxHIvNM.css","./control-ui-boot-chat-_QSl8fbH.js","./control-ui-boot-shared-BYq7Cchl.js","./control-ui-boot-shared-Deak_Sjt.js","./control-ui-boot-shared-gfE6fZcA.js","./markdown-runtime-Bn6OdBVq.js","./control-ui-boot-shared-DfZ39Yj9.js","./control-ui-boot-shared-CXVvK2AW.js","./control-ui-boot-shared-3juXI2I2.js","./control-ui-boot-shared-BVNXvWX-.js","./control-ui-boot-shared-KspYIvAF.css","./control-ui-boot-chat-Cgwe4GEM.js","./config-runtime-D-5ybyEi.js","./board-view-MrEmUNnS.js","./control-ui-boot-chat-CazDfK3O.js","./control-ui-disabled-2SNbmzuV.js","./near-viewport-observer-BfnpDHlZ.js","./widget-sandbox-host-BBp_TNUu.js","./board-view-Dy3yHmZ7.css"])))=>i.map(i=>d[i]);
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{ii as t,ri as n,wr as r}from"./control-ui-foundation-Cydpkyqa.js";import{Sc as i,bc as a}from"./control-ui-core-Rwzhj6nO.js";import{$ as o,K as s,X as c,at as l,q as u,st as d}from"./lit-runtime-CV_MH99K.js";import{Rt as f,zt as p}from"./control-ui-core-YphAl4aM.js";import{Gt as m,Wt as h,Yt as g,en as _}from"./control-ui-core-vvcQQV2m.js";import{Cn as v,bn as y,wn as b,xn as x,yn as S}from"./control-ui-boot-chat-_QSl8fbH.js";function C(){return f(`openclaw-board-view`,()=>n(()=>import(`./board-view-BDFO4Vkf.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]),import.meta.url))}var w;function T(){return(T=e((()=>{s(),o(),p(),m(),g(),b(),i(),t(),w=class extends a{constructor(...e){super(...e),this.session=null,this.client=null,this.connected=!1,this.canMutate=!1,this.canGrant=!1,this.presented=!0,this.provider=null,this.expanded=!1,this.activeTabId=``,this.viewError=null,this.viewLoad=null,this.lease=null,this.unsubscribeSnapshot=null,this.expansionInitialized=!1}connectedCallback(){super.connectedCallback(),this.requestUpdate()}updated(){this.viewLoad??=C().catch(e=>{this.viewError=e instanceof Error?e.message:String(e)}),this.synchronizeProvider()}disconnectedCallback(){this.releaseProvider(),super.disconnectedCallback()}synchronizeProvider(){let e=this.session,t=this.client;if(!this.isConnected||!e?.sessionKey.trim()||!t){this.releaseProvider();return}let n=x(e);if(this.lease?.client===t&&this.lease.cacheKey===n){(this.lease.session.sessionKey!==e.sessionKey||this.lease.session.agentId!==e.agentId)&&(this.lease.session={...e},this.requestUpdate()),this.lease.update(t,this.connected,{canPinWidgets:!1,canPinMcpApps:!1,canMutate:this.canMutate,canGrant:this.canGrant});return}this.releaseProvider(),this.expansionInitialized=!1,this.activeTabId=``;let r=S(e,t,this.connected,!1,!1,this.canMutate,this.canGrant);this.lease={...r,client:t,cacheKey:n,session:{...e}},this.provider=r.provider,this.unsubscribeSnapshot=r.provider.snapshot$.subscribe(()=>{this.reconcileSnapshot(r.provider),this.requestUpdate()}),this.reconcileSnapshot(r.provider),this.requestUpdate()}releaseProvider(){this.unsubscribeSnapshot?.(),this.unsubscribeSnapshot=null,this.lease?.release(),this.lease=null,this.provider=null}reconcileSnapshot(e){let t=e.snapshot$.value,n=t.tabs[0]?.tabId??``;t.tabs.some(e=>e.tabId===this.activeTabId)||(this.activeTabId=n),!this.expansionInitialized&&v(e)&&(this.expansionInitialized=!0,this.expanded=y(t))}render(){let e=this.provider,t=e?.snapshot$.value,n=this.lease?.session,r=!!(t&&y(t)),i=e?{appViewGeneration:e.appViewGeneration,applyOps:t=>e.applyOps(t),grant:(t,n)=>e.grant(t,n),selectTab:e=>{this.activeTabId=e},frameLoadFailed:t=>e.refreshWidgetFrame(t),widgetAppView:(t,n)=>e.widgetAppView(t,n),refreshWidgetAppView:(t,n)=>e.refreshWidgetAppView(t,n)}:null;return c`
<section class="plugin-session-dashboard">
<button
type="button"
class="plugin-session-dashboard__toggle"
aria-expanded=${this.expanded?`true`:`false`}
=${()=>{this.expansionInitialized=!0,this.expanded=!this.expanded}}
>
<span class="plugin-session-dashboard__title">
${h.kanban}<span>${_(`pluginUi.dashboardTitle`)}</span>
</span>
<span class="plugin-session-dashboard__chevron" aria-hidden="true"
>${h.arrowDown}</span
>
</button>
<div class="plugin-session-dashboard__body" ?hidden=${!this.expanded}>
${this.viewError?c`<p role="alert">${this.viewError}</p>
<button
type="button"
=${()=>{this.viewLoad=null,this.viewError=null}}
>
${_(`common.retry`)}
</button>`:r&&e&&t&&n&&i?c`
<openclaw-board-view
.active=${this.expanded&&this.presented}
.session=${n}
.snapshot=${t}
.activeTabId=${this.activeTabId}
.widgetFrameUrl=${(t,n)=>e.widgetFrameUrl(t,n)}
.callbacks=${i}
.sessions=${[]}
.canMutate=${this.canMutate}
.canGrant=${this.canGrant}
></openclaw-board-view>
`:c`<p class="plugin-session-dashboard__empty">
${_(`pluginUi.dashboardEmpty`)}
</p>`}
</div>
${!this.expanded&&this.expansionInitialized&&!r?c`<p class="plugin-session-dashboard__collapsed-empty">
${_(`pluginUi.dashboardEmpty`)}
</p>`:u}
</section>
`}},r([d({attribute:!1})],w.prototype,`session`,void 0),r([d({attribute:!1})],w.prototype,`client`,void 0),r([d({attribute:!1})],w.prototype,`connected`,void 0),r([d({attribute:!1})],w.prototype,`canMutate`,void 0),r([d({attribute:!1})],w.prototype,`canGrant`,void 0),r([d({attribute:!1})],w.prototype,`presented`,void 0),r([l()],w.prototype,`provider`,void 0),r([l()],w.prototype,`expanded`,void 0),r([l()],w.prototype,`activeTabId`,void 0),r([l()],w.prototype,`viewError`,void 0),customElements.get(`openclaw-plugin-session-dashboard`)||customElements.define(`openclaw-plugin-session-dashboard`,w)})))()}T();
//# sourceMappingURL=control-ui-dashboard-G7sXFRgq.js.map