Files
openclaw-config/cache/control-ui-assets/d08fd045b9cb86d13f0b4aa403c8a06ddcd32e533058ae463245169e5cff5e85/assets/question-page-registration-zhqoLjJ5.js
T

18 lines
4.9 KiB
JavaScript

import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{er as t,wn as n}from"./control-ui-foundation-CeFMP1Ly.js";import{fl as r,ml as i}from"./control-ui-core-pH6nakZ-.js";import{G as a,J as o,W as s,Z as c,at as l,rt as u}from"./lit-runtime-BEtFSUCp.js";import{m as d,p as f}from"./control-ui-core-DGVkFhVB.js";import{Ht as p,qt as m}from"./control-ui-core-Br5DB0Zj.js";import{In as h,Ln as g}from"./control-ui-boot-wpHCbPL9.js";import{_s as _,cs as v,ds as y,fs as b,gs as x,hs as S,ls as C,ps as w,us as T,vs as E}from"./control-ui-boot-Cdpgu1Gm.js";import{Cn as D,Tn as O,wn as k}from"./control-ui-boot-B1lcIXow.js";import"./approval-Dpr9VMH2.js";var A;function j(){return(j=e((()=>{g(),s(),c(),d(),_(),b(),p(),i(),k(),A=class extends r{constructor(...e){super(...e),this.questionId=``,this.loading=!0,this.requestError=null,this.questionState=C(()=>this.requestUpdate()),this.client=null,this.operationGeneration=0}connectedCallback(){super.connectedCallback(),this.boundQuestionId=this.questionId,this.stopGateway=this.context.gateway.subscribe(e=>this.applyGatewaySnapshot(e)),this.stopGatewayEvents=this.context.gateway.subscribeEvents(e=>{n(e.payload)&&e.payload.id===this.questionId&&y(this.questionState,e)}),this.applyGatewaySnapshot(this.context.gateway.snapshot)}disconnectedCallback(){this.stopGateway?.(),this.stopGateway=void 0,this.stopGatewayEvents?.(),this.stopGatewayEvents=void 0,this.operationGeneration+=1,this.client=null,T(this.questionState),super.disconnectedCallback()}updated(e){e.has(`questionId`)&&this.boundQuestionId!==this.questionId&&(this.boundQuestionId=this.questionId,this.operationGeneration+=1,this.requestError=this.questionId?null:`unavailable`,this.loading=!!this.questionId,this.questionId&&this.client&&this.loadQuestion(this.client))}applyGatewaySnapshot(e){let t=e.phase===`connected`?e.client:null;if(this.client===t){!t&&(e.lastError||e.phase===`offline`||e.phase===`reload-required`||e.phase===`stopped`)&&(this.loading=!1,this.requestError=`connection`);return}if(this.operationGeneration+=1,this.client=t,S(this.questionState,t),!t){w(this.questionState).some(e=>e.id===this.questionId)&&(this.loading=!1,this.requestError=`connection`);return}if(!this.questionId){this.loading=!1,this.requestError=`unavailable`;return}this.loadQuestion(t)}async loadQuestion(e){let t=this.questionId,r=++this.operationGeneration;this.loading=!0,this.requestError=null;try{let i=await E(e,`question.get`,{id:t});if(this.client!==e||this.operationGeneration!==r||this.questionId!==t)return;if(!n(i)||!n(i.question)||i.question.id!==t){this.requestError=`unavailable`;return}let a=i.question;if(a.id!==t||a.status!==`pending`&&a.status!==`answered`&&a.status!==`cancelled`&&a.status!==`expired`||!y(this.questionState,{event:`question.requested`,payload:{...a,status:`pending`}})){this.requestError=`unavailable`;return}a.status===`answered`?y(this.questionState,{event:`question.resolved`,payload:{id:t,status:`answered`,answers:a.answers}})||(this.requestError=`unavailable`):(a.status===`cancelled`||a.status===`expired`)&&y(this.questionState,{event:`question.resolved`,payload:{id:t,status:a.status}})}catch{this.client===e&&this.operationGeneration===r&&(this.requestError=`unavailable`)}finally{this.client===e&&this.operationGeneration===r&&(this.loading=!1)}}renderQuestion(e){if(e.status!==`pending`)return o`
<div class="approval-page__state" data-question-status=${e.status}>
<h1>${this.questionStatusLabel(e)}</h1>
${O(e)}
</div>
`;let t=D(e,{onChange:()=>this.requestUpdate(),onSubmit:t=>x(this.questionState,e.id,t),onSkip:()=>v(this.questionState,e.id)});return o`<openclaw-chat-question-panel .props=${t}></openclaw-chat-question-panel>`}questionStatusLabel(e){return e.status===`answered`?m(`chat.questions.answered`):e.status===`cancelled`?m(`chat.questions.skipped`):e.status===`expired`?m(`chat.questions.expired`):m(`chat.questions.unavailable`)}render(){let e=w(this.questionState).find(e=>e.id===this.questionId),t=this.loading?o`<div class="approval-page__state" role="status">${m(`common.loading`)}</div>`:this.requestError?o`<div class="approval-page__state" role="status">
${this.requestError===`connection`?m(`chat.questions.disconnected`):m(`chat.questions.unavailable`)}
</div>`:e?this.renderQuestion(e):a;return o`
<main
class="approval-page question-page"
data-state=${e?.status??this.requestError??`loading`}
>
<div class="approval-page__card approval-page__card--severity-info">
<div class="approval-page__content">${t}</div>
</div>
</main>
`}},t([h({context:f,subscribe:!1})],A.prototype,`context`,void 0),t([l({attribute:`question-id`})],A.prototype,`questionId`,void 0),t([u()],A.prototype,`loading`,void 0),t([u()],A.prototype,`requestError`,void 0)})))()}function M(){return(M=e((()=>{j(),customElements.get(`openclaw-question-page`)||customElements.define(`openclaw-question-page`,A)})))()}M();
//# sourceMappingURL=question-page-registration-zhqoLjJ5.js.map