175 lines
12 KiB
JavaScript
175 lines
12 KiB
JavaScript
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{Y as t,Z as n}from"./control-ui-foundation-CeFMP1Ly.js";import{fs as r,ms as i}from"./control-ui-core-pH6nakZ-.js";import{G as a,J as o,K as s,W as c,_ as l,b as u}from"./lit-runtime-BEtFSUCp.js";import{Ht as d,Lt as f,N as p,Nt as m,P as h,Rt as g,qt as _}from"./control-ui-core-Br5DB0Zj.js";import{Gn as v,Vn as y}from"./control-ui-boot-D1DWJlBr.js";import{a as b,n as x,r as S,t as C}from"./place-browser-DiRCxEEz.js";import"./new-session-Df5ycn44.js";import{t as w}from"./web-awesome-popover-DTDr8XNA.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 c=e.defaults.cwd,l=!1,d=`checking`,p=0,m=!1,g=null,y=!1,C=!1,w=null,T=null,D=``,O=0,k=()=>{O+=1,p+=1,s(a,t),t.remove(),E=!1,i()},A=async t=>{if(t.preventDefault(),!(m||d===`checking`||d===`unavailable`)){m=!0,g=null,V();try{g=await e.submit({cwd:c.trim(),worktree:d===`git`&&l})}catch(e){g=r(e)}if(!g){k();return}m=!1,V()}},j=()=>{let e=t.querySelector(`wa-popover.session-group-defaults__folder-popover`);e&&(e.open=!1)},M=()=>{O+=1,y=!1,C=!1,w=null,T=null,D=``,V()},N=e=>{c=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(c.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;C=!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&&(C=!1,V())}},B=()=>{y=!0,z(c||void 0)};function V(){let n=c.trim(),r=n?S(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.runsDirectlyNote`),icon:f.monitor},{value:`worktree`,label:_(`sessionsView.groupDefaultsWorktree`),description:_(`sessionsView.groupDefaultsWorktreeHint`),icon:f.gitBranch}],O=E[+!!l];s(o`
|
|
<openclaw-modal-dialog
|
|
label=${_(`sessionsView.groupDefaultsTitle`,{group:e.group})}
|
|
@modal-cancel=${e=>{if(m){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=${m}
|
|
>
|
|
<span class="new-session-page__target-icon" aria-hidden="true"
|
|
>${f.folder}</span
|
|
>
|
|
<span class="session-group-defaults__folder-copy">
|
|
<strong>${r}</strong>
|
|
<small title=${n||a}
|
|
>${n||_(`sessionsView.groupDefaultsCwdHint`)}</small
|
|
>
|
|
</span>
|
|
<span class="new-session-page__trigger-chevron" aria-hidden="true"
|
|
>${f.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?x({listing:T,label:_(`newSession.gateway`),loading:C,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}):o`
|
|
<div class="new-session-page__picker-root">
|
|
${v({value:`agent-workspace`,label:_(`sessionsView.groupDefaultsCwdPlaceholder`),icon:f.folder,checked:!n,onSelect:()=>N(``)},m)}
|
|
<button
|
|
type="button"
|
|
class="session-menu__item"
|
|
data-value="browse"
|
|
aria-pressed="false"
|
|
?disabled=${m}
|
|
@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"
|
|
>${f.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`?o`
|
|
<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=${m}
|
|
>
|
|
<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"
|
|
>${f.chevronDown}</span
|
|
>
|
|
</button>
|
|
${E.map(e=>{let t=e===O;return o`
|
|
<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=${m}
|
|
${u(e=>h(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>
|
|
`:o`
|
|
<div
|
|
class="session-group-defaults__resolved-mode"
|
|
role=${d===`checking`?`status`:a}
|
|
>
|
|
<span class="new-session-page__target-icon" aria-hidden="true"
|
|
>${d===`checking`?f.gitBranch:f.monitor}</span
|
|
>
|
|
<span class="session-group-defaults__resolved-copy">
|
|
<strong
|
|
>${_(d===`checking`?`newSession.checkingGit`:`sessionsView.groupDefaultsLocal`)}</strong
|
|
>
|
|
${d===`checking`?a:o`<small
|
|
>${_(d===`unavailable`?`newSession.gitCheckUnavailable`:`newSession.runsDirectlyNote`)}</small
|
|
>`}
|
|
</span>
|
|
</div>
|
|
`}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
${g?o`<div class="exec-approval-error" role="alert">${g}</div>`:a}
|
|
<div class="exec-approval-actions">
|
|
<button
|
|
type="submit"
|
|
class="btn primary"
|
|
?disabled=${m||d===`checking`||d===`unavailable`}
|
|
>
|
|
${_(`common.save`)}
|
|
</button>
|
|
${d===`unavailable`?o`
|
|
<button
|
|
type="button"
|
|
class="btn"
|
|
?disabled=${m}
|
|
@click=${()=>void P(c.trim()===e.defaults.cwd.trim())}
|
|
>
|
|
${_(`common.retry`)}
|
|
</button>
|
|
`:a}
|
|
<button type="button" class="btn" ?disabled=${m} @click=${k}>
|
|
${_(`common.cancel`)}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</openclaw-modal-dialog>
|
|
`,t)}P(!0)})}var E;function D(){return(D=e((()=>{t(),c(),l(),d(),i(),y(),C(),g(),m(),p(),w(),E=!1})))()}D();export{T as showSessionGroupDefaultsDialog};
|
|
//# sourceMappingURL=session-group-defaults-dialog-Db8Bcufo.js.map
|