UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

175 lines 12.2 kB
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{vt as t,xt as n}from"./control-ui-foundation-Cydpkyqa.js";import{Eo as r,Oo as i}from"./control-ui-core-Rwzhj6nO.js";import{C as a,J as o,K as s,X as c,b as l,q as u}from"./lit-runtime-CV_MH99K.js";import{Gt as d,Q as f,Rt as p,Wt as m,Yt as h,Z as g,en as _}from"./control-ui-core-vvcQQV2m.js";import{mn as v,un as y}from"./control-ui-boot-shared-CXVvK2AW.js";import{C as b,_ as x,b as S,x as C,y as w}from"./control-ui-boot-new-Bj2SAUyl.js";function T(e){if(E)return Promise.resolve();E=!0;let t=document.createElement(`div`);return document.body.append(t),new Promise(i=>{let s=e.defaults.cwd,l=!1,d=`checking`,p=0,h=!1,g=null,y=!1,x=!1,w=null,T=null,D=``,O=0,k=()=>{O+=1,p+=1,o(u,t),t.remove(),E=!1,i()},A=async t=>{if(t.preventDefault(),!(h||d===`checking`||d===`unavailable`)){h=!0,g=null,V();try{g=await e.submit({cwd:s.trim(),worktree:d===`git`&&l})}catch(e){g=r(e)}if(!g){k();return}h=!1,V()}},j=()=>{let e=t.querySelector(`wa-popover.session-group-defaults__folder-popover`);e&&(e.open=!1)},M=()=>{O+=1,y=!1,x=!1,w=null,T=null,D=``,V()},N=e=>{s=e.trim(),M(),j(),P(!1)},P=async t=>{let n=++p;d=`checking`,l=!1,g=null,V();try{let r=await e.inspectRepository(s.trim()||void 0);if(n!==p)return;d=r,l=r===`git`&&t&&e.defaults.worktree}catch{if(n!==p)return;d=`unavailable`,l=!1}V()},F=e=>{l=e,g=null,V()},I=e=>{let t=e.detail.item.getAttribute(`value`);(t===`local`||t===`worktree`)&&F(t===`worktree`)},L=e=>{if(!(e.currentTarget instanceof HTMLElement))return;let t=Array.from(e.currentTarget.querySelectorAll(`wa-dropdown-item[data-environment-mode]`)),n=t.find(e=>e.hasAttribute(`data-selected`))??t[0];if(n){for(let e of t)e.active=e===n;n.focus({preventScroll:!0})}},R=e=>{if(!(e.currentTarget instanceof HTMLElement))return;let t=e.currentTarget;e.key!==`Escape`||!t.open||(e.preventDefault(),e.stopPropagation(),t.open=!1,t.querySelector(`#session-group-defaults-mode-trigger`)?.focus({preventScroll:!0}))},z=async t=>{let i=++O,a=t?.trim()||void 0;x=!0,w=null,T=null,D=a??``,V();try{let t=await e.listDirectory(a);if(i!==O)return;T=t,t.path&&D===(a??``)&&(D=t.path)}catch(e){if(i!==O)return;w=n(e)?.missingScope?_(`newSession.browseRequiresAdmin`):r(e,_(`newSession.browserLoadFailed`))}finally{i===O&&(x=!1,V())}},B=()=>{y=!0,z(s||void 0)};function V(){let n=s.trim(),r=n?C(n):_(`sessionsView.groupDefaultsCwdPlaceholder`),i=b(D.trim())?D.trim():null,p=d===`checking`?`checking`:d===`git`?`git`:`local`,E=[{value:`local`,label:_(`sessionsView.groupDefaultsLocal`),description:_(`newSession.checkoutCurrentNote`),icon:m.monitor},{value:`worktree`,label:_(`sessionsView.groupDefaultsWorktree`),description:_(`sessionsView.groupDefaultsWorktreeHint`),icon:m.gitBranch}],O=E[+!!l];o(c` <openclaw-modal-dialog label=${_(`sessionsView.groupDefaultsTitle`,{group:e.group})} @modal-cancel=${e=>{if(h){e.preventDefault();return}k()}} > <form class="exec-approval-card session-group-defaults" @submit=${A}> <div class="exec-approval-header"> <div> <div class="exec-approval-title"> ${_(`sessionsView.groupDefaultsTitle`,{group:e.group})} </div> <div class="exec-approval-sub">${_(`sessionsView.groupDefaultsDescription`)}</div> </div> </div> <div class="session-group-defaults__fields"> <div class="field"> <span>${_(`sessionsView.groupDefaultsCwd`)}</span> <button id="session-group-defaults-folder-trigger" type="button" class="new-session-page__trigger session-group-defaults__folder" aria-label="${_(`sessionsView.groupDefaultsCwd`)}: ${r}" aria-haspopup="dialog" ?disabled=${h} > <span class="new-session-page__target-icon" aria-hidden="true" >${m.folder}</span > <span class="session-group-defaults__folder-copy"> <strong>${r}</strong> <small title=${n||u} >${n||_(`sessionsView.groupDefaultsCwdHint`)}</small > </span> <span class="new-session-page__trigger-chevron" aria-hidden="true" >${m.chevronDown}</span > </button> <wa-popover class="new-session-page__select new-session-page__project-popover new-session-page__picker-popover session-group-defaults__folder-popover" for="session-group-defaults-folder-trigger" placement="bottom-start" without-arrow @wa-hide=${M} > ${y?S({listing:T,label:_(`newSession.gateway`),loading:x,error:w,pathDraft:D,usablePath:i,registerProjectPath:null,registeringProject:!1,onPathDraftChange:e=>{D=e,V()},onNavigate:e=>void z(e),onBack:M,onRegisterProject:()=>void 0,onClose:M,onApplyFolder:N}):c` <div class="new-session-page__picker-root"> ${v({value:`agent-workspace`,label:_(`sessionsView.groupDefaultsCwdPlaceholder`),icon:m.folder,checked:!n,onSelect:()=>N(``)},h)} <button type="button" class="session-menu__item" data-value="browse" aria-pressed="false" ?disabled=${h} @click=${B} > <span class="session-menu__check" aria-hidden="true"></span> <span class="session-menu__text">${_(`newSession.browse`)}</span> <span class="new-session-page__menu-chevron" aria-hidden="true" >${m.chevronRight}</span > </button> </div> `} </wa-popover> </div> <div class="field"> <span>${_(`sessionsView.groupDefaultsMode`)}</span> <div class="session-group-defaults__environment" data-session-group-environment=${p} aria-live="polite" > ${d===`git`?c` <wa-dropdown class="session-group-defaults__mode-dropdown" placement="bottom-start" aria-label=${_(`sessionsView.groupDefaultsMode`)} @wa-select=${I} @wa-after-show=${L} @keydown=${R} > <button id="session-group-defaults-mode-trigger" slot="trigger" type="button" class="session-group-defaults__resolved-mode session-group-defaults__mode-trigger" data-value=${O.value} aria-label=${`${_(`sessionsView.groupDefaultsMode`)}: ${O.label}`} ?disabled=${h} > <span class="new-session-page__target-icon" aria-hidden="true" >${O.icon}</span > <span class="session-group-defaults__resolved-copy"> <strong>${O.label}</strong> <small>${O.description}</small> </span> <span class="new-session-page__trigger-chevron" aria-hidden="true" >${m.chevronDown}</span > </button> ${E.map(e=>{let t=e===O;return c` <wa-dropdown-item class="session-group-defaults__mode-option" data-environment-mode=${e.value} ?data-selected=${t} aria-label=${`${e.label}, ${e.description}`} value=${e.value} type="checkbox" .checked=${t} ?disabled=${h} ${a(e=>f(e,t))} > <span slot="icon" class="new-session-page__target-icon session-group-defaults__mode-option-icon" aria-hidden="true" >${e.icon}</span > <span class="session-group-defaults__resolved-copy"> <strong>${e.label}</strong> <small>${e.description}</small> </span> </wa-dropdown-item> `})} </wa-dropdown> `:c` <div class="session-group-defaults__resolved-mode" role=${d===`checking`?`status`:u} > <span class="new-session-page__target-icon" aria-hidden="true" >${d===`checking`?m.gitBranch:m.monitor}</span > <span class="session-group-defaults__resolved-copy"> <strong >${_(d===`checking`?`newSession.checkingGit`:`sessionsView.groupDefaultsLocal`)}</strong > ${d===`checking`?u:c`<small >${_(d===`unavailable`?`newSession.gitCheckUnavailable`:`newSession.checkoutCurrentNote`)}</small >`} </span> </div> `} </div> </div> </div> ${g?c`<div class="exec-approval-error" role="alert">${g}</div>`:u} <div class="exec-approval-actions"> <button type="submit" class="btn primary" ?disabled=${h||d===`checking`||d===`unavailable`} > ${_(`common.save`)} </button> ${d===`unavailable`?c` <button type="button" class="btn" ?disabled=${h} @click=${()=>void P(s.trim()===e.defaults.cwd.trim())} > ${_(`common.retry`)} </button> `:u} <button type="button" class="btn" ?disabled=${h} @click=${k}> ${_(`common.cancel`)} </button> </div> </form> </openclaw-modal-dialog> `,t)}P(!0)})}var E;function D(){return(D=e((()=>{t(),s(),l(),h(),i(),y(),w(),d(),p(),g(),x(),E=!1})))()}D();export{T as showSessionGroupDefaultsDialog}; //# sourceMappingURL=session-group-defaults-dialog-XW0LKW4M.js.map