Files
openclaw-config/cache/control-ui-assets/d08fd045b9cb86d13f0b4aa403c8a06ddcd32e533058ae463245169e5cff5e85/assets/wizard-step-controls-D3s65of1.js
T

179 lines
8.5 KiB
JavaScript

import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{ms as t,ps as n}from"./control-ui-core-pH6nakZ-.js";import{G as r,J as i,W as a}from"./lit-runtime-BEtFSUCp.js";import{Ft as o,Ht as s,Lt as c,Q as l,Rt as u,Z as d,qt as f}from"./control-ui-core-Br5DB0Zj.js";import{n as p,t as m}from"./channel-picker-DBMoQAsl.js";import{n as h,t as g}from"./select-picker-BINM0f88.js";function _(e){return`*`.repeat(Array.from(b.segment(e)).length)}function v(e){let t=e.closest(`[data-sensitive-input]`)?.querySelector(`[data-sensitive-mask-text]`);t&&(t.textContent=_(e.value),t.style.transform=`translateX(${-e.scrollLeft}px)`)}function y(e){let t=e.revealed?e.hideLabel:e.revealLabel,n=e.className?`oc-sensitive-input ${e.className}`:`oc-sensitive-input`,a=t=>{let n=t.currentTarget;v(n),e.onInput(n.value)},o=e=>{v(e.currentTarget)};return i`
<span
class=${n}
data-sensitive-input
data-sensitive-mask-ready="true"
data-revealed=${String(e.revealed)}
>
<span
class="oc-sensitive-mask"
aria-hidden="true"
data-sensitive-mask
?hidden=${e.revealed}
>
<span
data-sensitive-mask-text
.textContent=${e.revealed?``:_(e.value)}
></span>
</span>
<input
id=${e.id}
class=${e.inputClassName??r}
name=${e.name??r}
type=${e.revealed?`text`:`password`}
autocomplete="off"
spellcheck="false"
placeholder=${e.placeholder??``}
.value=${e.value}
?disabled=${e.disabled}
data-sensitive-value
@input=${a}
@change=${o}
@focus=${o}
@scroll=${o}
/>
<openclaw-tooltip .content=${t}>
<button
type="button"
class="oc-sensitive-toggle"
aria-label=${t}
aria-controls=${e.id}
aria-pressed=${String(e.revealed)}
data-sensitive-icon=${e.revealed?`eye-off`:`eye`}
?disabled=${e.disabled}
@click=${e.onToggle}
>
${e.revealed?c.eyeOff:c.eye}
</button>
</openclaw-tooltip>
</span>
`}var b;function x(){return(x=e((()=>{a(),u(),o(),b=new Intl.Segmenter(void 0,{granularity:`grapheme`})})))()}function S(e,t=f(`modelSetup.wizard.continue`)){return i`
<button type="button" class="btn primary" disabled aria-busy="true" aria-label=${t}>
<span class="btn__label">${t}</span>
<span class="btn__spinner" aria-hidden="true"></span>
<span class="sr-only" role="status" aria-live="polite">${e}</span>
</button>
`}function C(e,t){return`${e.presentation===`channels`?`channels-wizard`:`wizard-step`}__${t}`}function w(e){return e.step.message?i`<div class=${C(e,`message`)}>
${n(e.step.message)}
</div>`:r}function T(e,t,n){return t===`channels`?i`
<span class="channels-wizard__option-label">
${n===void 0?r:n?`☑ `:`☐ `}${e.label}
</span>
${e.hint?i`<span class="channels-wizard__option-hint">${e.hint}</span>`:r}
`:i`
<span>
<strong>${e.label}</strong>
${e.hint?i`<small>${e.hint}</small>`:r}
</span>
`}function E(e){let t=e.deviceCode;if(!t)return r;let a=f(`modelSetup.wizard.copy`);return i`
<div class="wizard-step__device-code">
${t.message?i`<div class="muted">${n(t.message)}</div>`:r}
<code>${t.code}</code>
<button
type="button"
class="btn btn--sm"
@click=${e=>void d(e,t.code,a)}
>
<span data-copy-label>${a}</span>
</button>
${t.expiresInMinutes?i`<div class="muted">
${f(`modelSetup.wizard.expires`,{count:String(t.expiresInMinutes)})}
</div>`:r}
</div>
`}function D(e,t,n,r=e.busy){let a=e.answerLabel??t;if(e.presentation===`channels`&&e.busy)return i`<div class="channels-wizard__footer">
${S(e.busyLabel??a)}
</div>`;let o=i`
<button
type=${n?`button`:`submit`}
class="btn primary"
?disabled=${r}
@click=${n}
>
${a}
</button>
`;return e.presentation===`channels`?i`<div class="channels-wizard__footer">${o}</div>`:e.leadingAction?i`<div class="wizard-step__actions wizard-step__actions--split">
${e.leadingAction}${o}
</div>`:o}function O(e,t,n){let a=n.some(e=>Object.is(e,t.value));return e.presentation===`channels`?i`<button
type="button"
class="channels-wizard__option"
aria-pressed=${a?`true`:`false`}
?disabled=${e.busy}
@click=${()=>e.onValueChange(t.value)}
>
${T(t,e.presentation,a)}
</button>`:i`<label class="wizard-step__option">
<input
type=${e.step.type===`select`?`radio`:`checkbox`}
name=${e.step.type===`select`?`${e.inputId}-option`:r}
.checked=${a}
?disabled=${e.busy}
@change=${r=>{let i=e.step.type===`select`?t.value:r.currentTarget.checked?[...n,t.value]:n.filter(e=>!Object.is(e,t.value));e.onValueChange(i)}}
/>
${T(t)}
</label>`}function k(e){let t=e.step;return i`
${w(e)}
${t.externalUrl?i`<a
class="btn btn--sm wizard-step__external-link"
href=${t.externalUrl}
target="_blank"
rel="noreferrer"
>
${f(`modelSetup.wizard.openSignIn`)}
</a>`:r}
${E(t)}
${D(e,f(`modelSetup.wizard.continue`),()=>e.onAnswer(void 0))}
`}function A(e){return i`
<div class="wizard-step__progress" role="status" aria-live="polite">
<span class="wizard-step__spinner" aria-hidden="true"></span>
${w(e)}
</div>
${e.leadingAction?i`<div class="wizard-step__actions wizard-step__actions--split">
${e.leadingAction}
</div>`:r}
`}function j(e){let t=e.step,a=typeof e.value==`string`?e.value:``,o=t.sensitive&&e.onToggleSensitiveVisibility?y({id:e.inputId,name:`wizard-text`,value:a,revealed:e.sensitiveRevealed===!0,revealLabel:f(`configForm.revealValue`),hideLabel:f(`configForm.hideValue`),inputClassName:`input`,placeholder:t.placeholder,disabled:e.busy,onInput:e.onValueChange,onToggle:e.onToggleSensitiveVisibility}):i`<input
id=${e.inputId}
class="input"
name="wizard-text"
type=${t.sensitive?`password`:`text`}
autocomplete=${t.sensitive?`off`:`on`}
placeholder=${t.placeholder??``}
.value=${a}
?disabled=${e.busy}
@input=${t=>e.presentation!==`channels`&&e.onValueChange(t.currentTarget.value)}
/>`;return i`
<form
class="wizard-step__form"
@submit=${t=>{t.preventDefault();let n=t.currentTarget.elements.namedItem(`wizard-text`);e.onAnswer(e.presentation===`channels`?n?.value??``:a)}}
>
${t.message?i`<div class=${C(e,`message`)}>
<label for=${e.inputId}>${n(t.message)}</label>
</div>`:r}
${o} ${D(e,f(`modelSetup.wizard.submit`))}
</form>
`}function M(e){let t=e.step.options??[],n=e.step.type===`multiselect`,a=n?Array.isArray(e.value)?e.value:[]:[e.value];if(e.presentation===`channels`&&!n){let n=t.findIndex(t=>Object.is(t.value,e.value)),a=e.channelSelect&&t.every(e=>typeof e.value==`string`),o=a?p:h;return i`
${w(e)}
${o({label:e.step.message??``,value:n<0?null:String(a?t[n]?.value:n),options:t.map((e,t)=>({value:String(a?e.value:t),label:e.label,description:e.hint,kind:a?`channel`:`neutral`})),disabled:e.busy,onChange:n=>e.onAnswer(a?n:t[Number(n)]?.value)})}
${e.busy?D(e,f(`modelSetup.wizard.continue`),void 0,!0):r}
`}let o=n?e.presentation===`channels`?[...a]:a:e.value;return i`
${w(e)}
<div class=${C(e,`options`)} role=${n?r:`radiogroup`}>
${t.map(t=>O(e,t,a))}
</div>
${D(e,f(`modelSetup.wizard.continue`),()=>e.onAnswer(o),e.busy||!n&&e.value===void 0)}
`}function N(e){let t=C(e,e.presentation===`channels`?`footer`:`actions`);return i`
${w(e)}
<div
class=${e.presentation!==`channels`&&e.leadingAction?`${t} wizard-step__actions--split`:t}
>
${e.presentation===`channels`?r:e.leadingAction??r}
${e.presentation===`channels`&&e.busy?S(e.busyLabel??f(`common.loading`)):[!1,!0].map(t=>i`<button
type="button"
class=${t?`btn primary`:`btn`}
?disabled=${e.busy}
@click=${()=>e.onAnswer(t)}
>
${t?e.confirmAffirmativeLabel??f(`common.yes`):f(`common.no`)}
</button>`)}
</div>
`}function P(e){switch(e.step.type){case`text`:return j(e);case`select`:case`multiselect`:return M(e);case`confirm`:return N(e);case`progress`:return e.step.executor===`gateway`?A(e):k(e);case`note`:case`action`:return k(e)}return r}function F(){return(F=e((()=>{a(),s(),t(),m(),l(),g(),x()})))()}export{S as n,P as r,F as t};
//# sourceMappingURL=wizard-step-controls-D3s65of1.js.map