407 lines
62 KiB
JavaScript
407 lines
62 KiB
JavaScript
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{Ei as t,an as n,er as r,un as i,wn as a}from"./control-ui-foundation-CeFMP1Ly.js";import{C as o,as as s,cs as c,es as l,fl as u,is as d,ls as f,ml as p,ns as m,os as h,rs as g,ss as _,ts as v,w as y}from"./control-ui-core-pH6nakZ-.js";import{G as b,J as x,W as S,Z as C,_ as w,at as T,b as ee,rt as E}from"./lit-runtime-BEtFSUCp.js";import{B as D,Ft as O,Gt as k,H as A,Ht as j,Lt as M,R as N,Rt as P,U as te,V as F,qt as I,z as L}from"./control-ui-core-Br5DB0Zj.js";import{Nt as R,Pt as ne,fn as re,pn as ie}from"./control-ui-boot-wpHCbPL9.js";import{Sn as ae,cn as oe,fn as se,mn as ce,on as le,un as ue,xn as de,yn as fe}from"./control-ui-boot-Cdpgu1Gm.js";import{a as pe,i as me,n as he,o as ge,r as _e,t as ve}from"./config-runtime-C4gfjhZc.js";import{t as ye}from"./web-awesome-popover-DTDr8XNA.js";import{a as be,c as xe,d as Se,f as z,g as Ce,h as we,i as Te,l as B,m as Ee,n as De,o as Oe,p as ke,r as Ae,s as je,t as Me,u as Ne}from"./config-form.tiers-DLXolKGz.js";function Pe(e,t,n,r){let i=t[n];if(i===void 0)return{ok:!1,value:Ie};let a=n===t.length-1;if(typeof i==`number`){if(e!=null&&!Array.isArray(e))return{ok:!1,value:Ie};let o=Array.isArray(e)?[...e]:[];if(a)return r===void 0?o.splice(i,1):o[i]=r,{ok:!0,value:o};let s=Pe(o[i],t,n+1,r);return s.ok?(o[i]=s.value,{ok:!0,value:o}):s}if(e!=null&&(typeof e!=`object`||Array.isArray(e)))return{ok:!1,value:Ie};let o=e?{...e}:{};if(a)return r===void 0?delete o[i]:Object.defineProperty(o,i,{value:r,enumerable:!0,configurable:!0,writable:!0}),{ok:!0,value:o};let s=Pe(Object.hasOwn(o,i)?o[i]:void 0,t,n+1,r);return s.ok?(Object.defineProperty(o,i,{value:s.value,enumerable:!0,configurable:!0,writable:!0}),{ok:!0,value:o}):s}function Fe(e,t,n){return t.length===0?{ok:!0,value:n}:Pe(e,t,0,n)}var Ie;function Le(){return(Le=e((()=>{Ie=Symbol(`invalid-path-patch`)})))()}function Re(e){return a(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Ge(t)])):e}function ze(e){try{return new RegExp(e,`u`),!0}catch{return!1}}function Be(e){if(ze(e))return e;let t=e.replace(/\\([^\\])/g,(e,t)=>t===`:`||t===`/`?t:e);return ze(t)?t:e}function Ve(e){return a(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Ke(t)?t:Ge(t)])):e}function He(e){let t=new Map;for(let[n,r]of Object.entries(e)){let e=Be(n),i=Ge(r),a=t.get(e);t.set(e,a===void 0?i:{allOf:[a,i]})}return Object.fromEntries(t)}function Ue(e){let{nullable:t,type:n,...r}=e,i=Array.isArray(n)?[...n]:typeof n==`string`?[n]:null;if(!i||(t===!0&&!i.includes(`null`)&&i.push(`null`),i.length===1&&!Array.isArray(n)))return e;let a=Object.entries(r).filter(([e])=>et.has(e)),o=Object.entries(r).filter(([e])=>!et.has(e));return{...Object.fromEntries(a),anyOf:i.map(e=>Object.assign({},Object.fromEntries(o),{type:e}))}}function We(e){if(!a(e.additionalProperties)||a(e.properties)||a(e.patternProperties))return e;let{additionalProperties:t,...n}=e;return{...n,patternProperties:{".*":t},additionalProperties:!1}}function Ge(e){if(Array.isArray(e))return e.map(e=>Ge(e));if(!a(e))return e;let t=We(Ue(e.nullable===!0&&e.enumIncludesNull===!0&&Array.isArray(e.enum)&&!e.enum.some(e=>e===null)?{...e,enum:[...e.enum,null]}:e));return Object.fromEntries(Object.entries(t).map(([e,n])=>e===`$dynamicRef`&&t.$ref===void 0?[`$ref`,n]:e===`pattern`&&typeof n==`string`?[e,Be(n)]:e===`patternProperties`&&a(n)?[e,He(n)]:Ze.has(e)?[e,Re(n)]:e===`dependencies`?[e,Ve(n)]:Qe.has(e)||$e.has(e)?[e,Ge(n)]:[e,n]))}function Ke(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function qe(e,t=new WeakSet,n=new WeakSet){if(e===null||typeof e==`string`||typeof e==`boolean`)return!0;if(typeof e==`number`)return Number.isFinite(e);if(typeof e!=`object`)return!1;let r;try{if(Array.isArray(e)){let t=Reflect.ownKeys(e);if(t.length!==e.length+1||t.some(t=>{if(t===`length`)return!1;if(typeof t!=`string`)return!0;let n=Number(t);return!Number.isSafeInteger(n)||n<0||n>=e.length||String(n)!==t}))return!1;r=e}else{let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null||Reflect.ownKeys(e).some(t=>typeof t!=`string`||!Object.prototype.propertyIsEnumerable.call(e,t)))return!1;r=Object.values(e)}}catch{return!1}if(n.has(e))return!0;if(t.has(e))return!1;t.add(e);let i=r.every(e=>qe(e,t,n));return t.delete(e),i&&n.add(e),i}function Je(e){return Ge(e)}function Ye(e,t){if(!qe(e)||!qe(t))return!1;try{return ie(e,t)}catch{return!1}}function Xe(e,t){if(!qe(t))return!1;try{return ne(Je(e),t)}catch{return!1}}var Ze,Qe,$e,et;function tt(){return(tt=e((()=>{re(),R(),Ze=new Set([`$defs`,`definitions`,`dependentSchemas`,`patternProperties`,`properties`]),Qe=new Set([`additionalItems`,`additionalProperties`,`contains`,`else`,`if`,`items`,`not`,`propertyNames`,`then`,`unevaluatedItems`,`unevaluatedProperties`]),$e=new Set([`allOf`,`anyOf`,`oneOf`,`prefixItems`]),et=new Set([`$anchor`,`$defs`,`$dynamicAnchor`,`$id`,`$recursiveAnchor`,`$schema`,`$vocabulary`,`definitions`])})))()}function nt(e){let n=t(e);return ot.some(e=>n.endsWith(e))}function rt(e){return st.some(t=>t.test(e))}function it(e){return t(e).includes(`localservice.env.`)}function at(e){return it(e)||!nt(e)&&rt(e)}var ot,st;function ct(){return(ct=e((()=>{ot=[`maxtokens`,`maxoutputtokens`,`maxinputtokens`,`maxcompletiontokens`,`contexttokens`,`totaltokens`,`tokencount`,`tokenlimit`,`tokenbudget`,`passwordFile`].map(e=>t(e)),st=[/token$/i,/password/i,/secret/i,/api.?key/i,/encrypt.?key/i,/private.?key/i,/serviceaccount(?:ref)?$/i]})))()}function V(e,t){return`config-field-${e.length===0?`root`:e.map(e=>{let t=String(e),n=``;for(let e=0;e<t.length;e+=1)n+=t.charCodeAt(e).toString(16).padStart(4,`0`);return`${typeof e==`number`?`n`:`s`}${t.length}-${n}`}).join(`_`)}-${t}`}function lt(){return I(`configForm.redactedPlaceholder`)}function ut(){return{visited:0}}function dt(e,t){return!(t>bt||(e.visited+=1,e.visited>xt))}function ft(e){return yt.test(e.trim())}function pt(e){return typeof e==`string`?e.trim().length>0&&!ft(e):e!=null}function mt(e){return e?.sensitive??!1}function ht(e,t,n){return gt(e,t,n,ut(),0)}function gt(e,t,n,r,i){if(!dt(r,i))return!0;let a=s(t);return(mt(m(t,n))||at(a))&&pt(e)?!0:Array.isArray(e)?e.some((e,a)=>gt(e,[...t,a],n,r,i+1)):e&&typeof e==`object`?Object.entries(e).some(([e,a])=>gt(a,[...t,e],n,r,i+1)):!1}function _t(e,t,n){return vt(e,t,n,ut(),0)}function vt(e,t,n,r,i){if(!dt(r,i))return 1;if(e==null)return 0;let a=s(t);return(mt(m(t,n))||at(a))&&pt(e)?1:Array.isArray(e)?e.reduce((e,a,o)=>e+vt(a,[...t,o],n,r,i+1),0):e&&typeof e==`object`?Object.entries(e).reduce((e,[a,o])=>e+vt(o,[...t,a],n,r,i+1),0):0}var yt,bt,xt;function H(){return(H=e((()=>{ct(),j(),d(),yt=/^\$\{[^}]*\}$/,bt=64,xt=2e4})))()}function U(e,t){return Xe(e,t)}function St(e,t){let n=e.properties;return n&&Object.hasOwn(n,t)?n[t]:void 0}function Ct(e){let[t=``,n]=String(e).toLowerCase().split(`e`),r=t.split(`.`)[1]?.length??0,i=Number(n??0);return Math.max(0,r-i)}function wt(e,t){if(!t)return e;let n=Ct(t);return n<=100?Number(e.toFixed(n)):e}function Tt(e,t){let n=e<0n?-e:e,r=t<0n?-t:t;for(;r!==0n;){let e=n%r;n=r,r=e}return n}function Et(e,t){return e/Tt(e,t)*t}function Dt(e){let[t=``,n]=String(e).toLowerCase().split(`e`),[r=`0`,i=``]=t.split(`.`),a=Number(n??0),o=BigInt(`${r}${i}`),s=i.length-a,c=s<0?o*10n**BigInt(-s):o,l=Tt(c,s>0?10n**BigInt(s):1n),u=Number(c/l);return!Number.isFinite(u)||u<=0?1:u}function Ot(e,t,n){let r=L(e),i=L(t);if(!r||!i||i.numerator===0n)return e;let a=r.numerator*i.denominator,o=r.denominator*i.numerator,s=a/o,c=a%o,l=c<0n?s-1n:s,u=n===`floor`?l:n===`ceil`?c===0n?s:c>0n?s+1n:s:(a-l*o)*2n<o?l:l+1n;return wt(Number(u)*t,t)}function kt(e,t){let r,i=!1;for(let a of e){let e=n(t===`lower`?a.minimum:a.maximum),o=n(t===`lower`?a.exclusiveMinimum:a.exclusiveMaximum);for(let[n,a]of[[e,!1],[o,!0]])n!==void 0&&(r===void 0||(t===`lower`?n>r:n<r)||n===r&&a&&!i)&&(r=n,i=a)}return{value:r,exclusive:i}}function At(e){let t,r;for(let i of e){let e=n(i.multipleOf);if(e===void 0||e<=0)continue;let a=L(e);if(!a)continue;let o=Tt(a.numerator,a.denominator),s=a.numerator/o,c=a.denominator/o;t=t===void 0?s:Et(t,s),r=r===void 0?c:Tt(r,c)}if(t===void 0||r===void 0)return;let i=Number(t)/Number(r);return Number.isFinite(i)&&i>0?i:void 0}function jt(e){let t=z(e),n=0,r,i=!1;for(let e of t)Number.isSafeInteger(e.minItems)&&e.minItems!==void 0&&e.minItems>=0&&(n=Math.max(n,e.minItems)),Number.isSafeInteger(e.maxItems)&&e.maxItems!==void 0&&e.maxItems>=0&&(r=r===void 0?e.maxItems:Math.min(r,e.maxItems)),Array.isArray(e.items)&&e.additionalItems===!1&&(r=Math.min(r??1/0,e.items.length)),i||=e.uniqueItems===!0;return{minItems:n,maxItems:r,uniqueItems:i}}function Mt(e){return new Set(z(e).flatMap(e=>e.required??[]))}function Nt(e){let t=z(e),n=new Set;for(let e of t)for(let t of Object.keys(e.properties??{}))n.add(t);return[...n].filter(e=>t.every(t=>St(t,e)!==void 0||t.additionalProperties!==!1))}function Pt(e){let t=z(e).map(e=>e.additionalProperties).filter(e=>e!==void 0);if(t.some(e=>e===!1))return!1;let n=t.filter(e=>!!e&&typeof e==`object`);return n.length>0?ke(n):t.some(e=>e===!0)?{}:void 0}function Ft(e,t){let n=+!U(e,t),r=new Set(Nt(e));for(let r of Mt(e))Object.hasOwn(t,r)||(n+=1);let i=Pt(e);for(let[a,o]of Object.entries(t)){let t=Rt(e,a);if(t){U(t,o)||(n+=1);continue}!r.has(a)&&(i===!1||i===void 0||!U(i,o))&&(n+=1)}return n}function It(e,t){return z(e).every(({propertyNames:e})=>e===void 0||e===!0||e!==!1&&U(e,t))}function Lt(e,t,n){return Object.keys(n).some(n=>!Object.hasOwn(t,n)&&!It(e,n))?!1:U(e,n)?!0:!U(e,t)&&Ft(e,n)<=Ft(e,t)}function Rt(e,t){if(Nt(e).includes(t))return ke(z(e).map(e=>St(e,t)).filter(e=>e!==void 0))}function zt(e,t=new Set){if(t.has(e))return[];t.add(e);let n=[];Array.isArray(e.const)&&n.push(e.const);for(let t of e.enum??[])Array.isArray(t)&&n.push(t);for(let r of[...e.allOf??[],...e.anyOf??[],...e.oneOf??[]])n.push(...zt(r,t));return t.delete(e),n}function Bt(e,t){let n=Math.abs(e.length-t.length),r=Math.min(e.length,t.length);for(let i=0;i<r;i+=1)G(e[i],t[i])||(n+=1);return n}function Vt(e,t,n){let{minItems:r,maxItems:i}=jt(e),a=Math.max(0,r-t.length),o=zt(e).filter(t=>U(e,t)).map(e=>Bt(t,e));o.length>0&&(a+=Math.min(...o)),i!==void 0&&(a+=Math.max(0,t.length-i));for(let r=0;r<t.length;r+=1){let i=Ne(e,r);i&&!U(i,t[r])&&(a+=1),n&&t.slice(r+1).some(e=>G(t[r],e))&&(a+=1)}return a}function Ht(e,t,n,r,i){if(U(e,n))return!0;if(U(e,t))return!1;let a=Vt(e,t,r),o=Vt(e,n,r);return i?o<=a:o<a}function Ut(e){let t=z(e),n=new Set(t.flatMap(e=>{let t=Array.isArray(e.type)?e.type:e.type?[e.type]:[];return t.includes(`number`)?[`number`]:t.includes(`integer`)?[`integer`]:[]})),r=n.has(`integer`)?`integer`:n.has(`number`)?`number`:c(e),i=At(t),a=r===`integer`?i&&i>0?Dt(i):1:i&&i>0?i:void 0,o=kt(t,`lower`),s=kt(t,`upper`),l=o.exclusive?void 0:o.value,u=s.exclusive?void 0:s.value,d=o.exclusive?o.value:void 0,f=s.exclusive?s.value:void 0,p=l??d,m=u??f;if(a){if(p!==void 0&&(p=Ot(p,a,`ceil`)),m!==void 0&&(m=Ot(m,a,`floor`)),d!==void 0){let e=Ot(d,a,`ceil`),t=e<=d?wt(e+a,a):e;p=p===void 0?t:Math.max(p,t)}if(f!==void 0){let e=Ot(f,a,`floor`),t=e>=f?wt(e-a,a):e;m=m===void 0?t:Math.min(m,t)}}return{min:p,max:m,exclusiveMin:d,exclusiveMax:f,step:a??`any`}}function Wt(e,t){if(!Number.isFinite(e))return e;if(e===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let n=new DataView(new ArrayBuffer(8));n.setFloat64(0,e);let r=n.getBigUint64(0),i=e>0==t>0?r+1n:r-1n;return n.setBigUint64(0,i),n.getFloat64(0)}function Gt(e,t,n){if(n!==void 0&&Number.isFinite(n)){let r=e+(n-e)/2;if(t>0&&r>e||t<0&&r<e)return r}let r=e+t*Math.max(1,Math.abs(e));return Number.isFinite(r)&&r!==e?r:Wt(e,t)}function Kt(e,t){let n=Ut(t),r=e;return typeof n.step==`number`&&(r=Ot(r,n.step,`round`)),n.min!==void 0&&(r=Math.max(n.min,r)),n.max!==void 0&&(r=Math.min(n.max,r)),n.exclusiveMin!==void 0&&r<=n.exclusiveMin&&(r=(n.step,Wt(n.exclusiveMin,1))),n.exclusiveMax!==void 0&&r>=n.exclusiveMax&&(r=(n.step,Wt(n.exclusiveMax,-1))),wt(r,typeof n.step==`number`?n.step:void 0)}function qt(e){let t=Ut(e);if(t.step===`any`){if(t.exclusiveMin!==void 0&&t.exclusiveMin>=0)return Gt(t.exclusiveMin,1,t.max);if(t.exclusiveMax!==void 0&&t.exclusiveMax<=0)return Gt(t.exclusiveMax,-1,t.min)}return Kt(0,e)}function Jt(e){let t=Math.max(0,e.minLength??0),n=e.maxLength??Math.max(t,0);if(!Number.isSafeInteger(t)||t>Xt||n<t)return K;if(e.pattern)try{return t===0&&new RegExp(e.pattern,`u`).test(``)?``:K}catch{return K}return t===0?``:`x`.repeat(t).slice(0,n)}function W(e,t){if(t===K||!U(e,t))return K;if(!t||typeof t!=`object`)return t;try{return structuredClone(t)}catch{return K}}function Yt(e,t=0){if(!e)return``;if(e.default!==void 0)return W(e,e.default);if(e.const!==void 0)return W(e,e.const);if(e.enum&&e.enum.length>0){for(let t of e.enum){let n=W(e,t);if(n!==K)return n}return K}if(t>=32)return K;for(let n of e.allOf??[]){let r=W(e,Yt(n,t+1));if(r!==K)return r}switch(c(e)){case`object`:{let n={};for(let r of e.required??[]){let i=St(e,r);if(!i)return K;let a=Yt(i,t+1);if(a===K)return K;n[r]=a}return W(e,n)}case`array`:{let n=Math.max(0,e.minItems??0);if(!Number.isSafeInteger(n)||n>100)return K;if(n===0)return W(e,[]);if(Array.isArray(e.items)){let r=[];for(let i=0;i<n;i+=1){let n=e.items[i]??(e.additionalItems&&typeof e.additionalItems==`object`?e.additionalItems:void 0);if(!n)return K;let a=Yt(n,t+1);if(a===K)return K;r.push(a)}return W(e,r)}let r=e.items;if(!r)return K;let i=[];for(let e=0;e<n;e+=1){let e=Yt(r,t+1);if(e===K)return K;i.push(e)}return W(e,i)}case`boolean`:return W(e,!1);case`number`:case`integer`:return W(e,qt(e));case`string`:return W(e,Jt(e));case`null`:return W(e,null);default:return W(e,``)}}var G,K,Xt;function q(){return(q=e((()=>{tt(),i(),Ee(),F(),H(),G=Ye,K=Symbol(`no-safe-config-default`),Xt=4096})))()}function Zt(e){return structuredClone(e)}function Qt(e){let t=c(e.schema);if(t!==`object`&&t!==`array`)return;let n=e.schema.default;return t===`object`&&n&&typeof n==`object`&&!Array.isArray(n)||t===`array`&&Array.isArray(n)?Zt(n):t===`object`?{}:[]}function $t(e,t){return t!==void 0&&e.value===void 0&&e.isRequired!==!0&&e.structuredDraftOwner!==!0&&!U(e.schema,t)}var en;function tn(){return(tn=e((()=>{S(),C(),j(),p(),Le(),q(),H(),en=class extends u{constructor(...e){super(...e),this.error=``}willUpdate(e){if(!e.has(`props`))return;let t=e.get(`props`),n=this.props;n&&(!t||t.identity!==n.identity||!Object.is(t.sourceIdentity,n.sourceIdentity))&&(this.draftValue=Zt(n.initialValue),this.error=``)}patchDraft(e,t){let n=this.props,r=this.draftValue;if(!n||!r)return!1;let i=n.params.path;if(e.length<i.length||!i.every((t,n)=>t===e[n]))return!1;let a=e.slice(i.length),o=a.length===0?{ok:!0,value:t}:Fe(r,a,t);if(!o.ok)return!1;let s=o.value,l=c(n.params.schema);return l===`object`&&(!s||typeof s!=`object`||Array.isArray(s))||l===`array`&&!Array.isArray(s)?!1:(this.draftValue=s,this.error=``,!U(n.params.schema,s)||n.params.onPatch(i,s)!==!1||(this.error=I(`configForm.draftRejected`),!1))}render(){let e=this.props,t=this.draftValue;if(!e||!t)return b;let n=V(e.params.path,`structured-draft-error`);return x`
|
||
${e.renderNode({...e.params,value:t,sourceIdentity:t,controlIdentity:t,structuredDraftOwner:!0,onPatch:(e,t)=>this.patchDraft(e,t),onRemove:e=>this.patchDraft(e,void 0)})}
|
||
${this.error?x`
|
||
<div class="settings-row settings-row--stacked cfg-structured-draft__error">
|
||
<div class="settings-row__control">
|
||
<span id=${n} class="cfg-field__error" role="alert">${this.error}</span>
|
||
</div>
|
||
</div>
|
||
`:b}
|
||
`}},r([T({attribute:!1})],en.prototype,`props`,void 0),r([E()],en.prototype,`draftValue`,void 0),r([E()],en.prototype,`error`,void 0),customElements.get(`openclaw-config-form-structured-draft`)||customElements.define(`openclaw-config-form-structured-draft`,en)})))()}function nn(e,t){return t.length>e.length&&e.every((e,n)=>G(e,t[n]))}function rn(e){let{schema:t,value:n,minimumItems:r,maximumItems:i,uniqueItems:a,isUnset:o,isRequired:s,itemSchemaAt:c}=e,l=Math.max(1,r-n.length),u=l>100?1:l,d=[];for(let e=0;e<u;e+=1){let t=Yt(c(n.length+e));if(t===K){d.length=0;break}d.push(t)}let f=d.length===u?[...n,...d]:void 0,p=f!==void 0&&!a&&(i===void 0||f.length<=i)&&(f.length<r||U(t,f))?f:void 0,m=U(t,n),h=zt(t).find(e=>U(t,e)&&(o||!m||nn(n,e)))??(o&&s&&i===0&&U(t,[])?[]:void 0);return{atomicCandidate:Array.isArray(h)?structuredClone(h):void 0,autoCandidate:p}}function an(){return(an=e((()=>{q()})))()}function on(e,t){return`${typeof e}:${typeof e==`number`&&Object.is(e,-0)?`-0`:typeof e==`number`&&Number.isNaN(e)?`NaN`:String(e)}:${t}`}function sn(e){let t=dn.get(e);if(t?.length===e.length)return t;let n=new Map,r=e.map(e=>{if(e&&typeof e==`object`)return e;let t=on(e,0),r=n.get(t)??0;return n.set(t,r+1),on(e,r)});return dn.set(e,r),r}function cn(e,t){dn.set(e,t)}function ln(e){dn.delete(e)}function un(e,t,n){let r=Array.from({length:n},()=>Symbol(`array-row`));cn(e,[...t,...r])}var dn;function fn(){return(fn=e((()=>{dn=new WeakMap})))()}var J;function pn(){return(pn=e((()=>{S(),C(),j(),p(),q(),F(),H(),J=class extends u{constructor(...e){super(...e),this.draftOpen=!1,this.draftKey=``,this.draftValue=``,this.draftIsNull=!1,this.error=``,this.invalidTarget=null}willUpdate(e){let t=e.get(`props`),n=this.props;t&&(!n||t.identity!==n.identity||!Object.is(t.sourceIdentity,n.sourceIdentity)&&!G(t.sourceIdentity,n.sourceIdentity))&&this.closeDraft()}openDraft(){this.props?.disabled||(this.draftOpen=!0,this.updateComplete.then(()=>{this.querySelector(`[data-collection-draft-value]`)?.focus()}))}clearError(){this.error=``,this.invalidTarget=null}closeDraft(){this.draftOpen=!1,this.draftKey=``,this.draftValue=``,this.draftIsNull=!1,this.clearError()}fail(e,t){this.invalidTarget=e,this.error=t,this.updateComplete.then(()=>{this.querySelector(e===`key`?`[data-collection-draft-key]`:`[data-collection-draft-value]`)?.focus()})}parseValue(e){if(this.draftIsNull)return{ok:!0,value:null};let t=c(e),n=e.anyOf??e.oneOf??[],r=n.some(_)&&n.some(e=>[`number`,`integer`].includes(c(e)??``));if(t===`string`)return{ok:!0,value:this.draftValue};if(t===`number`||t===`integer`){let e=N(this.draftValue,t===`integer`);return typeof e==`number`?{ok:!0,value:e}:{ok:!1,message:I(`configForm.invalidNumber`)}}try{let t=JSON.parse(this.draftValue);if(typeof t==`number`){let t=N(this.draftValue,!1);return typeof t==`number`?{ok:!0,value:t}:r&&U(e,this.draftValue)?{ok:!0,value:this.draftValue}:{ok:!1,message:I(`configForm.invalidNumber`)}}return{ok:!0,value:t}}catch{return r&&U(e,this.draftValue)?{ok:!0,value:this.draftValue}:{ok:!1,message:I(`configForm.invalidJson`)}}}commit(){let e=this.props;if(!e||e.disabled)return;let t=this.parseValue(e.schema);if(!t.ok){this.fail(`value`,t.message);return}if(!U(e.schema,t.value)){this.fail(`value`,[`number`,`integer`].includes(c(e.schema)??``)?I(`configForm.invalidNumber`):I(`configForm.invalidString`));return}if(e.existingValues?.some(e=>G(e,t.value))){this.fail(`value`,I(`configForm.invalidString`));return}if(e.validateValue&&!e.validateValue(t.value)){this.fail(`value`,I(`configForm.invalidString`));return}let n=this.draftKey.trim();if(e.existingKeys&&(!n||e.existingKeys.includes(n)||e.validateKey?.(n)===!1)){this.fail(`key`,I(`configForm.invalidString`));return}this.dispatchEvent(new CustomEvent(`config-collection-draft-commit`,{bubbles:!0,composed:!0,cancelable:!0,detail:{...e.existingKeys?{key:n}:{},value:t.value}}))?this.closeDraft():this.fail(`value`,I(`configForm.invalidString`))}updated(){let e=this.querySelector(`[data-collection-draft-key]`),t=this.querySelector(`[data-collection-draft-value]`);e?.setCustomValidity(this.invalidTarget===`key`?this.error:``),t?.setCustomValidity(this.invalidTarget===`value`?this.error:``)}render(){let e=this.props;if(!e||!this.draftOpen||e.disabled)return b;let t=c(e.schema),n=U(e.schema,null),r=t===`string`||t===`number`||t===`integer`,i=`${this.id}-error`,a=`${I(`configForm.add`)}: ${e.label}`,o=r?x`
|
||
<input
|
||
data-collection-draft-value
|
||
type=${t===`string`?`text`:`number`}
|
||
class="settings-input"
|
||
aria-label=${a}
|
||
aria-describedby=${i}
|
||
aria-invalid=${this.invalidTarget===`value`?`true`:`false`}
|
||
.value=${this.draftValue}
|
||
?disabled=${this.draftIsNull}
|
||
@input=${e=>{this.draftValue=e.currentTarget.value,this.clearError()}}
|
||
/>
|
||
`:x`
|
||
<textarea
|
||
data-collection-draft-value
|
||
class="settings-input"
|
||
aria-label=${a}
|
||
aria-describedby=${i}
|
||
aria-invalid=${this.invalidTarget===`value`?`true`:`false`}
|
||
placeholder=${I(`configForm.jsonValue`)}
|
||
rows="2"
|
||
.value=${this.draftValue}
|
||
?disabled=${this.draftIsNull}
|
||
@input=${e=>{this.draftValue=e.currentTarget.value,this.clearError()}}
|
||
></textarea>
|
||
`;return x`
|
||
<div class="settings-row settings-row--stacked cfg-collection-draft">
|
||
<div class="settings-row__control">
|
||
<div class="cfg-collection-draft__controls">
|
||
${e.existingKeys?x`
|
||
<input
|
||
data-collection-draft-key
|
||
type="text"
|
||
class="settings-input"
|
||
aria-label=${I(`configForm.key`)}
|
||
aria-describedby=${i}
|
||
aria-invalid=${this.invalidTarget===`key`?`true`:`false`}
|
||
placeholder=${I(`configForm.key`)}
|
||
.value=${this.draftKey}
|
||
@input=${e=>{this.draftKey=e.currentTarget.value,this.clearError()}}
|
||
/>
|
||
`:b}
|
||
${n?x`
|
||
<label class="field checkbox">
|
||
<input
|
||
data-collection-draft-null
|
||
type="checkbox"
|
||
.checked=${this.draftIsNull}
|
||
@change=${e=>{this.draftIsNull=e.currentTarget.checked,this.clearError()}}
|
||
/>
|
||
<span>${I(`configForm.nullValue`)}</span>
|
||
</label>
|
||
`:b}
|
||
${o}
|
||
<span id=${i} class="cfg-field__error" role="alert" ?hidden=${!this.error}
|
||
>${this.error}</span
|
||
>
|
||
<div class="cfg-collection-draft__actions">
|
||
<button type="button" class="btn btn--sm" @click=${()=>this.commit()}>
|
||
${e.existingKeys?I(`configForm.addEntry`):I(`configForm.add`)}
|
||
</button>
|
||
<button type="button" class="btn btn--sm" @click=${()=>this.closeDraft()}>
|
||
${I(`common.cancel`)}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
`}},r([T({attribute:!1})],J.prototype,`props`,void 0),r([E()],J.prototype,`draftOpen`,void 0),r([E()],J.prototype,`draftKey`,void 0),r([E()],J.prototype,`draftValue`,void 0),r([E()],J.prototype,`draftIsNull`,void 0),r([E()],J.prototype,`error`,void 0),r([E()],J.prototype,`invalidTarget`,void 0),customElements.get(`openclaw-config-form-collection-draft`)||customElements.define(`openclaw-config-form-collection-draft`,J)})))()}function mn(e){return Object.keys(e??{}).filter(e=>!kn.has(e)).length===0}function hn(e){if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return``}}function Y(e){return typeof e==`number`?D(e):o(e)}function gn(e,t){return{...e,default:t}}function _n(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?String(e):null}function vn(e,t){if(Object.is(e,t))return!0;let n=_n(e),r=_n(t);return n!==null&&n===r}function yn(e){if(!a(e))return!1;let t=e;return typeof t.source!=`string`||typeof t.id!=`string`?!1:t.provider===void 0||typeof t.provider==`string`}function bn(e){let t=ht(e.value,e.path,e.hints),n=e.value===l,r=t&&!n&&(e.revealSensitive||(e.isSensitivePathRevealed?.(e.path)??!1));return{isSensitive:t,isRedacted:t&&!r,isRevealed:r,canReveal:t&&!n,sentinelRedacted:n}}function xn(e){let{state:t}=e;if(!t.isSensitive||!e.onToggleSensitivePath)return b;let n=t.canReveal?t.isRevealed?I(`configForm.hideValue`):I(`configForm.revealValue`):t.sentinelRedacted?I(`configForm.storedSecretNotRevealable`):I(`configForm.disableStreamToReveal`);return x`
|
||
<openclaw-tooltip .content=${n}>
|
||
<button
|
||
type="button"
|
||
class="settings-secret__toggle"
|
||
aria-label=${n}
|
||
aria-pressed=${t.isRevealed}
|
||
?disabled=${e.disabled||!t.canReveal}
|
||
@click=${()=>e.onToggleSensitivePath?.(e.path)}
|
||
>
|
||
${t.isRevealed?M.eye:M.eyeOff}
|
||
</button>
|
||
</openclaw-tooltip>
|
||
`}function Sn(e,t){return t===b?e:x`<span class="settings-secret">${e}${t}</span>`}function Cn(e){let t=e.filter(e=>e!==`advanced`);return t.length===0?b:x`
|
||
<div class="cfg-tags">
|
||
${t.map(e=>x`<span class="cfg-tag">${e}</span>`)}
|
||
</div>
|
||
`}function X(e){let t=e.showLabel?e.help:void 0,n=e.showLabel?e.defaultDescription:void 0,r=e.showLabel||!!t||!!n||e.tags.length>0||!!e.error,i=e.stacked||!r?`settings-row settings-row--stacked`:`settings-row`;return x`
|
||
<div class=${i}>
|
||
${r?x`
|
||
<div class="settings-row__text">
|
||
${e.showLabel?x`<span class="settings-row__title">${e.label}</span>`:b}
|
||
${t?x`<span class="settings-row__desc" id=${e.helpId??b}
|
||
>${t}</span
|
||
>`:b}
|
||
${n?x`<span class="settings-row__desc">${n}</span>`:b}
|
||
${Cn(e.tags)}
|
||
${e.error?x`<span class="cfg-field__error" role="alert">${e.error}</span>`:b}
|
||
</div>
|
||
`:b}
|
||
${e.control===b?b:x`<div class="settings-row__control">${e.control}</div>`}
|
||
</div>
|
||
`}function wn(e){return e===b?b:x`
|
||
<div class="settings-row">
|
||
<div class="settings-row__text">
|
||
<span class="settings-row__desc">${e}</span>
|
||
</div>
|
||
</div>
|
||
`}function Tn(e,t){return bn({path:e.path,value:t,hints:e.hints,revealSensitive:e.revealSensitive??!1,isSensitivePathRevealed:e.isSensitivePathRevealed}).isRedacted?b:Z(e.schema,e.value)}function Z(e,t){return e.default===void 0?b:x`${I(t===void 0?`configForm.usingDefault`:`configForm.defaultValue`,{value:Y(e.default)})}`}function En(e){let t=e.options.findIndex(t=>vn(t,e.resolvedValue));return fe({value:t<0?``:String(t),options:e.options.map((t,n)=>({value:String(n),label:Dn(t,e.options)})),disabled:e.disabled,ariaLabel:e.ariaLabel,onChange:t=>{let n=e.options[Number(t)];n!==void 0&&e.onSelect(n)}})}function Dn(e,t){return t.includes(!0)&&t.includes(!1)?e===!0?I(`configForm.enumOn`):e===!1?I(`configForm.enumOff`):e===`auto`?I(`configForm.enumAuto`):Y(e):Y(e)}function On(e){let{path:t,fallback:n,sensitiveState:r,disabled:i,onPatch:a}=e,o=V(t,`json-error`),s=[e.descriptionId,o].filter(Boolean).join(` `),c=(e,t)=>{let n=e.closest(`.cfg-json-editor`)?.querySelector(`.cfg-field__error`);e.setCustomValidity(t),e.setAttribute(`aria-invalid`,String(!!t)),n&&(n.hidden=!t,n.textContent=t)},l=t=>{let n=``,r=t.value.trim();if(!r&&e.isRequired)n=I(`configForm.invalidJson`);else if(r)try{U(e.schema,JSON.parse(r))||(n=I(`configForm.invalidJson`))}catch{n=I(`configForm.invalidJson`)}return c(t,n),!n},u=r.isRedacted?``:n,d=JSON.stringify(t),f=(e,n)=>a(t,n)!==!1||(e.value=u,l(e),!1),p=x`
|
||
<textarea
|
||
${ee(t=>{if(!(t instanceof HTMLTextAreaElement))return;let n=An.get(t);n&&(!Object.is(n.sourceValue,e.sourceValue)&&!G(n.sourceValue,e.sourceValue)||!Object.is(n.rowIdentity,e.rowIdentity)||n.fallback!==u||n.pathKey!==d)&&(t.value=u,c(t,``)),An.set(t,{sourceValue:e.sourceValue,rowIdentity:e.rowIdentity,fallback:u,pathKey:d})})}
|
||
class="settings-input${r.isRedacted?` cfg-redacted`:``}"
|
||
aria-label=${e.ariaLabel}
|
||
aria-describedby=${s||b}
|
||
aria-invalid="false"
|
||
placeholder=${r.isRedacted?lt():I(`configForm.jsonValue`)}
|
||
rows=${e.rows}
|
||
.value=${u}
|
||
?disabled=${i}
|
||
?readonly=${r.isRedacted}
|
||
@click=${()=>{r.isRedacted&&e.onToggleSensitivePath&&e.onToggleSensitivePath(t)}}
|
||
@input=${e=>{r.isRedacted||l(e.target)}}
|
||
@change=${e=>{if(r.isRedacted)return;let t=e.target;if(!l(t))return;let n=t.value.trim();if(!n){f(t,void 0);return}try{f(t,JSON.parse(n))}catch{}}}
|
||
></textarea>
|
||
`;return x`
|
||
<span class="cfg-json-editor">
|
||
${Sn(p,xn({path:t,state:r,disabled:i,onToggleSensitivePath:e.onToggleSensitivePath}))}
|
||
<span id=${o} class="cfg-field__error" role="alert" hidden></span>
|
||
</span>
|
||
`}var kn,An;function jn(){return(jn=e((()=>{S(),w(),P(),j(),O(),d(),y(),q(),F(),H(),le(),kn=new Set([`title`,`description`,`default`,`nullable`,`enumIncludesNull`,`tags`,`x-tags`]),An=new WeakMap})))()}function Mn(e,t){let n=e.currentTarget.closest(`.cfg-block`),r=Array.from(n?.children??[]).find(e=>e.id===t);r?.openDraft?.call(r)}function Nn(e,t){let{schema:n,value:r,path:i,hints:a,unsupported:o,disabled:s,onPatch:c,searchCriteria:l,rawAvailable:u,revealSensitive:d,isSensitivePathRevealed:p,onToggleSensitivePath:g,onRemove:_}=e,{label:v,help:y,tags:S}=B(i,n,a),C=l&&Ae(l)&&je({schema:n,path:i,hints:a,criteria:l})?void 0:l,w=r===void 0&&n.default!==void 0,T=w?n.default:r,ee=T===void 0?Ln:T,E=T&&typeof T==`object`&&!Array.isArray(T)?T:{},D=Tn(e,T),O=Nt(n).map(e=>[e,Rt(n,e)]).filter(e=>!!e[1]),k=Mt(n),A=O.toSorted((e,t)=>{let n=m([...i,e[0]],a)?.order??0,r=m([...i,t[0]],a)?.order??0;return n===r?e[0].localeCompare(t[0]):n-r}),j=new Set(O.map(([e])=>e)),N=Pt(n),P=!!N&&typeof N==`object`,te=(e,t)=>{if(e.length<i.length||!i.every((t,n)=>t===e[n]))return!1;let r,a=e.slice(i.length);if(a.length===0){if(!t||typeof t!=`object`||Array.isArray(t))return!1;r=t}else{try{r=structuredClone(E)}catch{return!1}t===void 0?h(r,a):f(r,a,t)}return Lt(n,E,r)?w?c(i,r)!==!1:(t===void 0&&_?_(e):c(e,t))!==!1:!1},F=x`
|
||
${A.map(([n,r])=>t({schema:w&&Object.hasOwn(E,n)?gn(r,E[n]):r,value:w?void 0:E[n],path:[...i,n],hints:a,rawAvailable:u,unsupported:o,disabled:s,isRequired:k.has(n),sourceIdentity:w?void 0:E[n],controlIdentity:e.controlIdentity??E,rowIdentity:e.rowIdentity,searchCriteria:C,revealSensitive:d,isSensitivePathRevealed:p,onToggleSensitivePath:g,onPatch:te}))}
|
||
${P?Fn({...e,schema:N,value:E,sourceIdentity:ee,reservedKeys:j,validateKey:e=>It(n,e),searchCriteria:C,onPatch:te},t):b}
|
||
`;return i.length===1||e.showLabel===!1?x`${i.length===1?wn(D):b}${F}`:x`
|
||
<details class="cfg-object cfg-block" ?open=${i.length<=2}>
|
||
<summary class="settings-row cfg-object__summary">
|
||
<div class="settings-row__text">
|
||
<span class="settings-row__title">${v}</span>
|
||
${y?x`<span class="settings-row__desc">${y}</span>`:b}
|
||
${n.default===void 0?b:x`<span class="settings-row__desc">${D}</span>`}
|
||
${Cn(S)}
|
||
</div>
|
||
<div class="settings-row__control">
|
||
<span class="settings-row__chevron cfg-object__chevron">${M.chevronDown}</span>
|
||
</div>
|
||
</summary>
|
||
<div class="settings-subrows">${F}</div>
|
||
</details>
|
||
`}function Pn(e,t){let{schema:n,value:r,path:i,hints:a,unsupported:o,disabled:s,onPatch:c,searchCriteria:l,rawAvailable:u,revealSensitive:d,isSensitivePathRevealed:f,onToggleSensitivePath:p}=e,m=e.showLabel??!0,h=e.showHeaderMeta??m,{label:g,help:_,tags:v}=B(i,n,a),y=l&&Ae(l)&&je({schema:n,path:i,hints:a,criteria:l})?void 0:l,S=Array.isArray(n.items)?n.items:void 0,C=Array.isArray(n.items)?n.items[0]??{}:n.items;if(!C)return X({label:g,tags:[],showLabel:!0,control:b,error:I(`configForm.unsupportedArray`)});let w=r===void 0&&Array.isArray(n.default),T=Array.isArray(r)?r:Array.isArray(n.default)?n.default:[],ee=Array.isArray(r)?r:Array.isArray(n.default)?n.default:In,E=Tn(e,T),D=sn(T),{minItems:O,maxItems:k,uniqueItems:A}=jt(n),j=e=>Ne(n,e)??(S?{}:C),{atomicCandidate:N,autoCandidate:P}=rn({schema:n,value:T,minimumItems:O,maximumItems:k,uniqueItems:A,isUnset:r===void 0,isRequired:e.isRequired??!1,itemSchemaAt:j}),te=k===void 0||T.length<k,F=N===void 0&&P===void 0,L=j(T.length),R=V(i,`array-draft`),ne={schema:L,label:g,disabled:s||!te,identity:R,sourceIdentity:ee,existingValues:A?T:void 0,validateValue:e=>{let t=[...T,e];return(k===void 0||t.length<=k)&&(t.length<O||U(n,t))}},re=(e,t)=>{if(e.length<=i.length||!i.every((t,n)=>t===e[n]))return!1;let r=e.slice(i.length),a=r[0];if(typeof a!=`number`||a<0||a>=T.length)return!1;let o=[...T],s=r.slice(1);if(s.length===0){if(t===void 0)return!1;o[a]=t}else{let e=Fe(T[a],s,t);if(!e.ok)return!1;o[a]=e.value}if(Ht(n,T,o,A,!0)){cn(o,D);let e=c(i,o)!==!1;return e||ln(o),e}return!1};return x`
|
||
<div class="cfg-block cfg-array">
|
||
<div class="settings-row">
|
||
<div class="settings-row__text">
|
||
${m?x`<span class="settings-row__title">${g}</span>`:b}
|
||
${h&&_?x`<span class="settings-row__desc">${_}</span>`:b}
|
||
${h&&n.default!==void 0?x`<span class="settings-row__desc">${E}</span>`:b}
|
||
${Cn(v)}
|
||
</div>
|
||
<div class="settings-row__control">
|
||
<span class="settings-row__value"
|
||
>${I(T.length===1?`configForm.itemCountOne`:`configForm.itemCount`,{count:String(T.length)})}</span
|
||
>
|
||
<button
|
||
type="button"
|
||
class="btn btn--sm"
|
||
aria-controls=${R}
|
||
?disabled=${s||!te&&N===void 0}
|
||
@click=${e=>{N?c(i,N)===!1&&Mn(e,R):F?Mn(e,R):P&&(un(P,D,P.length-T.length),c(i,P)===!1&&(ln(P),Mn(e,R)))}}
|
||
>
|
||
${I(`configForm.add`)}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<openclaw-config-form-collection-draft
|
||
id=${R}
|
||
.props=${ne}
|
||
@config-collection-draft-commit=${e=>{let t=[...T,e.detail.value],r=!(A&&T.some(t=>G(t,e.detail.value)))&&(k===void 0||T.length<k)&&U(L,e.detail.value)&&(t.length<O||U(n,t)),a=!1;r&&(un(t,D,1),a=c(i,t)!==!1,a||ln(t)),a||e.preventDefault()}}
|
||
></openclaw-config-form-collection-draft>
|
||
${T.length===0?ue(I(`configForm.noItems`)):x`
|
||
<div class="settings-subrows">
|
||
${T.map((e,r)=>{let l=j(r);return x`
|
||
<div class="settings-row">
|
||
<div class="settings-row__text">
|
||
<span class="settings-row__title">#${r+1}</span>
|
||
</div>
|
||
<div class="settings-row__control">
|
||
<openclaw-tooltip .content=${I(`configForm.removeItem`)}>
|
||
<button
|
||
type="button"
|
||
class="btn btn--icon"
|
||
style="width:28px;height:28px;padding:0;"
|
||
aria-label=${I(`configForm.removeItem`)}
|
||
?disabled=${s||T.length<=O||!Ht(n,T,T.toSpliced(r,1),A,!1)}
|
||
@click=${()=>{let e=T.toSpliced(r,1);Ht(n,T,e,A,!1)&&(cn(e,D.toSpliced(r,1)),c(i,e)===!1&&ln(e))}}
|
||
>
|
||
${M.trash}
|
||
</button>
|
||
</openclaw-tooltip>
|
||
</div>
|
||
</div>
|
||
${t({schema:w?gn(l,e):l,value:w?void 0:e,path:[...i,r],hints:a,rawAvailable:u,unsupported:o,disabled:s,isRequired:!0,sourceIdentity:w?void 0:e,controlIdentity:T,rowIdentity:D[r],searchCriteria:y,showLabel:!1,revealSensitive:d,isSensitivePathRevealed:f,onToggleSensitivePath:p,onPatch:re})}
|
||
`})}
|
||
</div>
|
||
`}
|
||
</div>
|
||
`}function Fn(e,t){let{schema:n,value:r,path:i,hints:a,rawAvailable:o,unsupported:s,disabled:c,reservedKeys:l,validateKey:u,onPatch:d,searchCriteria:f,revealSensitive:p,isSensitivePathRevealed:m,onToggleSensitivePath:h}=e,g=mn(n),_=g?{}:Yt(n),y=V(i,`map-draft`),b={schema:n,label:I(`configForm.customEntries`),disabled:c,identity:y,sourceIdentity:e.sourceIdentity??r,existingKeys:[...new Set([...Object.keys(r),...l])],validateKey:u},S=Object.entries(r??{}).filter(([e])=>!l.has(e)),C=f&&Ae(f)?S.filter(([e,t])=>Oe({schema:n,value:t,path:[...i,e],hints:a,criteria:f})):S;return x`
|
||
<div class="cfg-block cfg-map">
|
||
<div class="settings-row">
|
||
<div class="settings-row__text">
|
||
<span class="settings-row__title">${I(`configForm.customEntries`)}</span>
|
||
</div>
|
||
<div class="settings-row__control">
|
||
<button
|
||
type="button"
|
||
class="btn btn--sm"
|
||
aria-controls=${y}
|
||
?disabled=${c}
|
||
@click=${e=>{if(_===K){Mn(e,y);return}let t={...r},n=1,a=`custom-${n}`;for(;a in t;)n+=1,a=`custom-${n}`;t[a]=_,d(i,t)===!1&&Mn(e,y)}}
|
||
>
|
||
${I(`configForm.addEntry`)}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<openclaw-config-form-collection-draft
|
||
id=${y}
|
||
.props=${b}
|
||
@config-collection-draft-commit=${e=>{let t=e.detail.key;(!t||Object.hasOwn(r,t)||l.has(t)||d(i,{...r,[t]:e.detail.value})===!1)&&e.preventDefault()}}
|
||
></openclaw-config-form-collection-draft>
|
||
${C.length===0?ue(I(`configForm.noCustomEntries`)):x`
|
||
<div class="settings-subrows">
|
||
${C.map(([l,_])=>{let y=[...i,l],b=bn({path:y,value:_,hints:a,revealSensitive:p??!1,isSensitivePathRevealed:m});return x`
|
||
<div class="settings-row">
|
||
<div class="settings-row__text">
|
||
<input
|
||
type="text"
|
||
class="settings-input"
|
||
placeholder=${I(`configForm.key`)}
|
||
aria-label=${`${I(`configForm.key`)}: ${l}`}
|
||
.value=${l}
|
||
?disabled=${c}
|
||
@change=${e=>{let t=e.target,n=t.value.trim();if(!n||n===l){t.value=l;return}let a=u(n)?v(r[l])?I(`configForm.renameRedactedBlocked`):``:I(`configForm.invalidString`);if(n in r||a){t.value=l,a&&(t.setCustomValidity(a),t.reportValidity(),t.setCustomValidity(``));return}let o={...r,[n]:r[l]};delete o[l],d(i,o)===!1&&(t.value=l)}}
|
||
/>
|
||
</div>
|
||
<div class="settings-row__control">
|
||
<openclaw-tooltip .content=${I(`configForm.removeEntry`)}>
|
||
<button
|
||
type="button"
|
||
class="btn btn--icon"
|
||
style="width:28px;height:28px;padding:0;"
|
||
aria-label=${I(`configForm.removeEntry`)}
|
||
?disabled=${c}
|
||
@click=${()=>{let e={...r};delete e[l],d(i,e)}}
|
||
>
|
||
${M.trash}
|
||
</button>
|
||
</openclaw-tooltip>
|
||
</div>
|
||
</div>
|
||
${g?X({label:l,tags:[],showLabel:!1,stacked:!0,control:On({schema:n,path:y,ariaLabel:`${l}: ${I(`configForm.jsonValue`)}`,sourceValue:_,rowIdentity:e.rowIdentity,fallback:hn(_),rows:2,sensitiveState:b,disabled:c,isRequired:!0,onToggleSensitivePath:h,onPatch:d})}):t({schema:n,value:_,path:y,hints:a,rawAvailable:o,unsupported:s,disabled:c,isRequired:!0,sourceIdentity:_,controlIdentity:r,rowIdentity:e.rowIdentity,searchCriteria:f,showLabel:!1,revealSensitive:p,isSensitivePathRevealed:m,onToggleSensitivePath:h,onPatch:d})}
|
||
`})}
|
||
</div>
|
||
`}
|
||
</div>
|
||
`}var In,Ln;function Rn(){return(Rn=e((()=>{S(),P(),j(),d(),an(),fn(),pn(),Le(),Ee(),q(),jn(),Te(),H(),le(),In=Symbol(`unset-array-source`),Ln=Symbol(`unset-map-source`)})))()}function zn(e){let{schema:t,value:n,path:r,hints:i,disabled:a,onPatch:o}=e,s=e.showLabel??!0,{label:c,help:l,tags:u}=B(r,t,i),d=s&&l?V(r,`description`):void 0,f=hn(n===void 0?t.default:n),p=bn({path:r,value:n,hints:i,revealSensitive:e.revealSensitive??!1,isSensitivePathRevealed:e.isSensitivePathRevealed}),m=On({schema:t,path:r,ariaLabel:c,descriptionId:d,sourceValue:e.sourceIdentity??n,rowIdentity:e.rowIdentity,fallback:f,rows:3,sensitiveState:p,disabled:a,isRequired:e.isRequired,onToggleSensitivePath:e.onToggleSensitivePath,onPatch:o});return X({label:c,help:l,helpId:d,defaultDescription:p.isRedacted?b:Z(t,n),tags:u,showLabel:s,stacked:!0,control:m})}function Bn(){return(Bn=e((()=>{S(),jn(),Te(),H()})))()}function Vn(e,t){let n=e.trim();if(n.startsWith(`+`))try{let e=ge(n,{extract:!1});if(!e?.isPossible())return;let r=e.formatInternational();return!e.country||Hn.has(e.countryCallingCode)?r:`${new Intl.DisplayNames(t?[t]:void 0,{type:`region`}).of(e.country)||e.country} · ${r}`}catch{return}}var Hn;function Un(){return(Un=e((()=>{me(),he(),pe(),Hn=(()=>{let e=new Map;for(let t of _e()){let n=ve(t);e.set(n,(e.get(n)??0)+1)}return new Set([...e.entries()].filter(([,e])=>e>1).map(([e])=>e))})()})))()}function Wn(e){if(typeof e==`string`)return`string`;if(typeof e==`number`)return`number`;if(typeof e==`boolean`)return`boolean`}function Gn(e,t,n,r){if(!(e instanceof HTMLInputElement))return;let i=Xn.get(e),a=i?.edit!==void 0&&e.ownerDocument.activeElement===e&&Object.is(i.rowIdentity,t)&&i.pathKey===n&&i.presentationIdentity===r;Xn.set(e,{edit:a?i.edit:void 0,pathKey:n,presentationIdentity:r,rowIdentity:t})}function Kn(e,t){let n=Xn.get(e);return n?(n.edit??={branch:t},n.edit):{branch:t}}function qn(e,t){return Xn.get(e)?.edit??{branch:t}}function Jn(e){let t=Xn.get(e);t&&(t.edit=void 0)}function Yn(e){e.currentTarget instanceof HTMLInputElement&&Jn(e.currentTarget)}var Xn;function Zn(){return(Zn=e((()=>{Xn=new WeakMap})))()}function Q(e,t){return e.setCustomValidity(t),e.setAttribute(`aria-invalid`,String(!!t)),!t}function Qn(e,t,n,r,i,a,o,s){if(!(e instanceof HTMLInputElement))return;let c=ur.get(e);c&&(!Object.is(c.sourceIdentity,n)||!Object.is(c.rowIdentity,r)||c.pathKey!==i||c.presentationIdentity!==a||c.renderedValue!==o?e.matches(`:focus`)&&e.value!==c.renderedValue?s(e):(e.value=o,Q(e,``)):Object.is(c.controlIdentity,t)||s(e)),ur.set(e,{controlIdentity:t,sourceIdentity:n,rowIdentity:r,pathKey:i,presentationIdentity:a,renderedValue:o})}function $n(e,t,n,r){let i=e.trim(),a=t.anyOf??t.oneOf??[],o=U(t,e),s=r?r.branch:Wn(n),l=i===`true`||i!==`false`&&void 0;if(l!==void 0&&U(t,l)){let e=!1,t=!1;for(let n of a)!(c(n)===`boolean`||typeof n.const==`boolean`||n.enum?.some(e=>typeof e==`boolean`))||!U(n,l)||(e=!0,t||=Object.is(n.const,l)||!!n.enum?.some(e=>Object.is(e,l)));if(e&&(s!==`string`||t||!o))return l}let u;for(let n of a){let r=c(n);if(r!==`number`&&r!==`integer`)continue;let i=N(e,r===`integer`);if(typeof i==`number`&&U(t,i)){u=i;break}}if(s===`number`){if(u!==void 0)return u;if(A(e))return o&&te(i)?e:void 0}return s===`string`&&o||u===void 0?e:u}function er(e,t,n,r){return U(t,$n(e,t,n,r))?``:I(`configForm.invalidString`)}function tr(e,t,n,r,i){return e===``&&!n&&!!er(e,t,r,i)}function nr(e,t){return U(t,e)?``:I(`configForm.invalidNumber`)}function rr(e,t){let n=e.value;if(n.trim()===``)return e.validity.badInput?{kind:`badInput`}:{kind:`empty`};let r=N(n,c(t)===`integer`);return typeof r==`number`?{kind:`value`,parsed:r,message:nr(r,t)}:{kind:`invalid`}}function ir(e,t){return e.kind===`value`?e.message:e.kind===`invalid`||e.kind===`badInput`||t?I(`configForm.invalidNumber`):``}function ar(e,t,n,r){Q(e,ir(t,n.isRequired===!0))&&(t.kind===`empty`?r(void 0):t.kind===`value`&&r(t.parsed))}function or(e,t,n){return ir(rr(e,t),n)}function sr(e){let{schema:t,value:n,path:r,hints:i,disabled:a,onPatch:o,inputType:s}=e,c=e.showLabel??!0,l=m(r,i),{label:u,help:d,tags:f}=B(r,t,i),p=c&&d?V(r,`description`):void 0,h=bn({path:r,value:n,hints:i,revealSensitive:e.revealSensitive??!1,isSensitivePathRevealed:e.isSensitivePathRevealed}),g=typeof n==`object`&&!!n&&!Array.isArray(n),_=yn(n),v=e.rawAvailable??!0,y=h.isRedacted||_,S=y?_?I(v?`configForm.structuredSecretRaw`:`configForm.structuredSecretFile`):lt():l?.placeholder??(t.default===void 0?``:I(`configForm.defaultValue`,{value:Y(t.default)})),C=y?``:g?hn(n):n??``,w=n===void 0?t.default:n,T=Wn(w),E=h.isSensitive&&!y?`text`:s,D=l?.presentation===`phone-number`,O=D&&!y&&typeof n==`string`?Vn(n,k.getLocale()):void 0,A=e.controlIdentity??e.sourceIdentity??n,j=e.sourceIdentity??n,M=V(r,`scalar-identity`),N=Y(C),P=[y?`redacted`:`visible`,E,D?`phone`:`plain`,_?v?`secret-raw`:`secret-file`:`scalar`].join(`:`),te=n=>{if(y){Q(n,``);return}if(s===`number`){Q(n,or(n,t,e.isRequired===!0));return}let r=n.value,i=qn(n,T);Q(n,tr(r,t,e.isRequired===!0,w,i)?``:er(r,t,w,i))},F=(e,t)=>o(r,t)!==!1||(e.value=N,te(e),!1),L=Sn(x`
|
||
<input
|
||
${ee(t=>{Gn(t,e.rowIdentity,M,P),Qn(t,A,j,e.rowIdentity,M,P,N,te)})}
|
||
type=${E}
|
||
class="settings-input${y?` cfg-redacted`:``}"
|
||
aria-label=${u}
|
||
aria-describedby=${p??b}
|
||
aria-invalid="false"
|
||
placeholder=${S}
|
||
.value=${N}
|
||
?disabled=${a}
|
||
?readonly=${y}
|
||
@click=${()=>{h.isRedacted&&!_&&e.onToggleSensitivePath&&e.onToggleSensitivePath(r)}}
|
||
@input=${n=>{if(y)return;let r=n.target,i=r.value;if(s===`number`){ar(r,rr(r,t),e,e=>F(r,e));return}let a=Kn(r,T);tr(i,t,e.isRequired===!0,w,a)?(Q(r,``),F(r,void 0)):Q(r,er(i,t,w,a))&&F(r,$n(i,t,w,a))}}
|
||
@change=${n=>{if(s===`number`||y)return;let r=n.target,i=Kn(r,T),a=r.value,o=er(a,t,w,i);if(!o&&!D){Q(r,``),F(r,$n(a,t,w,i)),Jn(r);return}let c=a.trim();if(tr(c,t,e.isRequired===!0,w,i)){r.value=c,Q(r,``),F(r,void 0),Jn(r);return}if(er(c,t,w,i)){Q(r,o),Jn(r);return}r.value=c,Q(r,``),F(r,$n(c,t,w,i)),Jn(r)}}
|
||
@blur=${Yn}
|
||
/>
|
||
`,_?b:xn({path:r,state:h,disabled:a,onToggleSensitivePath:e.onToggleSensitivePath})),R=D?x`
|
||
<span class="settings-phone-presentation">
|
||
${L}
|
||
${O?x`<span class="settings-phone-presentation__value">${O}</span>`:b}
|
||
</span>
|
||
`:L;return X({label:u,help:d,helpId:p,defaultDescription:y?b:Z(t,n),tags:f,showLabel:c,control:R})}function cr(e){let{schema:t,value:n,path:r,hints:i,disabled:a,onPatch:o}=e,s=e.showLabel??!0,{label:c,help:l,tags:u}=B(r,t,i),d=s&&l?V(r,`description`):void 0,f=n??``,p=n===void 0?t.default:n,m=Ut(t),h=typeof m.step==`number`?m.step:1,g=e.controlIdentity??e.sourceIdentity??n,_=e.sourceIdentity??n,v=V(r,`scalar-identity`),y=Y(f),S=n=>{Q(n,or(n,t,e.isRequired===!0))},C=(e,t)=>o(r,t)!==!1||(e.value=y,S(e),!1),w=e=>{if(a)return;let n=Number(p),i=Kt((Number.isFinite(n)?n:Kt(0,t))+e*h,t);U(t,i)&&o(r,i)},T=x`
|
||
<button
|
||
type="button"
|
||
class="btn btn--sm btn--icon"
|
||
aria-label=${`${c}: -${h}`}
|
||
?disabled=${a}
|
||
@click=${()=>w(-1)}
|
||
>
|
||
−
|
||
</button>
|
||
<input
|
||
${ee(t=>Qn(t,g,_,e.rowIdentity,v,`number`,y,S))}
|
||
type="number"
|
||
class="settings-input"
|
||
aria-label=${c}
|
||
aria-describedby=${d??b}
|
||
aria-invalid="false"
|
||
placeholder=${t.default===void 0?b:I(`configForm.defaultValue`,{value:Y(t.default)})}
|
||
min=${m.min??b}
|
||
max=${m.max??b}
|
||
step=${m.step}
|
||
.value=${y}
|
||
?disabled=${a}
|
||
@keydown=${e=>{n===void 0&&p!==void 0&&(e.key===`ArrowUp`||e.key===`ArrowDown`)&&(e.preventDefault(),w(e.key===`ArrowUp`?1:-1))}}
|
||
@input=${n=>{let r=n.target;ar(r,rr(r,t),e,e=>C(r,e))}}
|
||
@change=${n=>{let r=n.target,i=rr(r,t);if(i.kind!==`value`){Q(r,ir(i,e.isRequired===!0));return}let a=Kt(i.parsed,t);r.value=Y(a),Q(r,nr(a,t))&&C(r,a)}}
|
||
/>
|
||
<button
|
||
type="button"
|
||
class="btn btn--sm btn--icon"
|
||
aria-label=${`${c}: +${h}`}
|
||
?disabled=${a}
|
||
@click=${()=>w(1)}
|
||
>
|
||
+
|
||
</button>
|
||
`;return X({label:c,help:l,helpId:d,defaultDescription:Z(t,n),tags:u,showLabel:s,control:T})}function lr(e){let{schema:t,value:n,path:r,hints:i,disabled:a,options:o,onPatch:s}=e,c=e.showLabel??!0,{label:l,help:u,tags:d}=B(r,t,i),f=c&&u?V(r,`description`):void 0,p=n===void 0&&t.default!==void 0,h=p?t.default:n,g=o.findIndex(e=>e===h||String(e)===String(h)),_=`__unset__`,v=`__null__`,y=t.nullable&&t.enumIncludesNull,S=p?_:h===null&&y?v:g>=0?String(g):_,C=x`
|
||
<select
|
||
class="settings-select"
|
||
aria-label=${l}
|
||
aria-describedby=${f??b}
|
||
?disabled=${a}
|
||
.value=${S}
|
||
@change=${n=>{let i=n.target,a=i.value;if(a===_&&e.isRequired&&t.default===void 0){i.value=S;return}if(a===_){(e.isRequired&&t.default!==void 0?s(r,structuredClone(t.default)):e.onRemove?e.onRemove(r):s(r,void 0))===!1&&(i.value=S);return}let c=a===v?null:o[Number(a)];s(r,c)===!1&&(i.value=S)}}
|
||
>
|
||
<option
|
||
value=${_}
|
||
?selected=${S===_}
|
||
?disabled=${e.isRequired&&t.default===void 0}
|
||
>
|
||
${t.default===void 0?m(r,i)?.placeholder??I(`configForm.select`):I(`configForm.defaultValue`,{value:Y(t.default)})}
|
||
</option>
|
||
${y?x`
|
||
<option value=${v} ?selected=${S===v}>
|
||
${I(`configForm.nullValue`)}
|
||
</option>
|
||
`:b}
|
||
${o.map((e,t)=>x`
|
||
<option value=${String(t)} ?selected=${S===String(t)}>
|
||
${Dn(e,o)}
|
||
</option>
|
||
`)}
|
||
</select>
|
||
`;return X({label:l,help:u,helpId:f,defaultDescription:Z(t,n),tags:d,showLabel:c,control:C})}var ur;function dr(){return(dr=e((()=>{Un(),S(),w(),j(),q(),jn(),F(),Zn(),Te(),H(),ur=new WeakMap})))()}function fr(e){let{schema:t,value:n,path:r,hints:i,unsupported:a,disabled:o,onPatch:l}=e,u=e.showLabel??!0,d=c(t),{label:f,help:p,tags:h}=B(r,t,i),g=s(r),_=e.searchCriteria;if(a.has(g)||[...a].some(e=>{if(!e.includes(`*`))return!1;let t=e.split(`.`);return t.length===r.length&&t.every((e,t)=>e===`*`||e===String(r[t]))}))return X({label:f,tags:[],showLabel:!0,control:b,error:I(`configForm.unsupportedNode`)});if(_&&Ae(_)&&!Oe({schema:t,value:n,path:r,hints:i,criteria:_}))return b;let v=Qt(e);if($t(e,v)){let t={identity:V(r,`structured-draft`),sourceIdentity:e.sourceIdentity??n,initialValue:v,params:e,renderNode:fr};return x`
|
||
<openclaw-config-form-structured-draft
|
||
class="cfg-structured-draft"
|
||
.props=${t}
|
||
></openclaw-config-form-structured-draft>
|
||
`}if(t.anyOf||t.oneOf){let i=(t.anyOf??t.oneOf??[]).filter(e=>!(e.type===`null`||Array.isArray(e.type)&&e.type.includes(`null`)));if(i.length===1){let t=i[0];return t?fr({...e,schema:t}):b}let a=i.map(e=>{if(e.const!==void 0)return e.const;if(e.enum&&e.enum.length===1)return e.enum[0]}),s=a.every(e=>e!==void 0);if(s&&a.length>0&&a.length<=5){let e=n===void 0?t.default:n;return X({label:f,help:p,defaultDescription:Z(t,n),tags:h,showLabel:u,control:En({options:a,resolvedValue:e,disabled:o,ariaLabel:f,onSelect:e=>l(r,e)})})}if(s&&a.length>5)return lr({...e,options:a});let d=new Set(i.map(e=>c(e)).filter(Boolean)),m=new Set([...d].map(e=>e===`integer`?`number`:e));if([...m].every(e=>[`string`,`number`,`boolean`].includes(e))){let n=m.has(`string`),r=m.has(`number`);if(m.has(`boolean`)&&m.size===1)return fr({...e,schema:{...t,type:`boolean`,anyOf:void 0,oneOf:void 0}});if(n||r)return sr({...e,inputType:r&&!n?`number`:`text`})}return zn(e)}if(t.enum){let i=t.enum;if(i.length<=5){let e=n===void 0?t.default:n;return X({label:f,help:p,defaultDescription:Z(t,n),tags:h,showLabel:u,control:En({options:i,resolvedValue:e,disabled:o,ariaLabel:f,onSelect:e=>l(r,e)})})}return lr({...e,options:i})}if(d===`object`)return Nn(e,fr);if(d===`array`)return Pn(e,fr);if(d===`boolean`){if(!e.isRequired&&m(r,i)?.placeholder)return lr({...e,options:[!0,!1]});let a=typeof n==`boolean`?n:typeof t.default==`boolean`&&t.default,s=e=>l(r,e);if(!u)return X({label:f,help:p,tags:h,showLabel:u,control:de({checked:a,disabled:o,ariaLabel:f,onChange:s})});let c=p||h.length>0||t.default!==void 0?x`
|
||
${p??b} ${p&&t.default!==void 0?x`<br />`:b}
|
||
${Z(t,n)}${Cn(h)}
|
||
`:void 0;return ae({title:f,description:c,checked:a,disabled:o,onChange:s})}return d===`number`||d===`integer`?cr(e):d===`string`?sr({...e,inputType:`text`}):mn(t)?zn(e):X({label:f,tags:[],showLabel:!0,control:b,error:I(`configForm.unsupportedType`,{type:String(d)})})}function pr(){return(pr=e((()=>{S(),j(),tn(),Rn(),Bn(),dr(),jn(),Te(),H(),le()})))()}function mr(e){let t=De({schema:e.schema,path:e.path.map(String),hints:e.hints});return x`
|
||
<div class="config-tier-groups">
|
||
${t.common||e.commonPrelude?x`<div class="settings-group">
|
||
${e.commonPrelude??b}${t.common?e.renderTier(t.common):b}
|
||
</div>`:b}
|
||
${t.advanced&&t.advancedLeafCount>0?x`<details
|
||
class="config-advanced-disclosure"
|
||
?open=${e.revealAdvanced}
|
||
@toggle=${t=>{let n=t.currentTarget;n instanceof HTMLDetailsElement&&n.open!==e.revealAdvanced&&(n.open?e.onShowAdvanced():e.onHideAdvanced?e.onHideAdvanced():n.open=!0)}}
|
||
>
|
||
<summary class="settings-section__heading config-advanced-disclosure__summary">
|
||
${I(`configForm.advancedSettings`)}
|
||
</summary>
|
||
${e.revealAdvanced?x`<div class="settings-group">${e.renderTier(t.advanced)}</div>`:b}
|
||
</details>`:b}
|
||
</div>
|
||
`}function hr(e){let t=we[e.key];return be({key:e.key,schema:e.schema,value:e.sectionValue,hints:e.uiHints,query:e.query,label:t?.label,description:t?.description})}function gr(e){if(!e.schema)return x` <div class="muted">${I(`configForm.schemaUnavailable`)}</div> `;let t=e.schema,n=e.value??{};if(c(t)!==`object`||!t.properties)return x` <div class="callout danger">${I(`configForm.unsupportedSchema`)}</div> `;let r=new Set(e.unsupportedPaths??[]),i=t.properties,a=e.searchQuery??``,o=xe(a),s=e.activeSection,l=e.activeSubsection??null,u=Object.entries(i).toSorted((t,n)=>{let r=m([t[0]],e.uiHints)?.order??50,i=m([n[0]],e.uiHints)?.order??50;return r===i?t[0].localeCompare(n[0]):r-i}).filter(([t,r])=>!(s&&t!==s||a&&!hr({key:t,schema:r,sectionValue:n[t],uiHints:e.uiHints,query:a}))),d=null;if(s&&l&&u.length===1){let e=u[0]?.[1];e&&c(e)===`object`&&e.properties&&e.properties[l]&&(d={sectionKey:s,subsectionKey:l,schema:e.properties[l]})}if(u.length===0)return e.embedded&&!a?b:ce(ue(a?I(`configForm.noSettingsMatch`,{query:a}):I(`configForm.noSettingsInSection`)));let f=t=>{let n=m(t.path.slice(0,1),e.uiHints),i=e.showSectionDocs===!1?void 0:n?.docsUrl,s=`settings-section-help-${t.id}`,c=e.showAdvanced===!0||e.forceAdvancedSection===t.path[0]||!!a;return x`
|
||
<section class="settings-section" id=${t.id}>
|
||
<div class="settings-section__header">
|
||
<h2 class="settings-section__heading">${t.label}</h2>
|
||
${e.sectionActions||i?x`<div class="settings-section__actions">
|
||
${e.sectionActions??b}
|
||
${i?x`
|
||
<span class="settings-section__docs">
|
||
${se({id:s,label:I(`configForm.sectionHelp`,{section:t.label}),tooltip:I(`configForm.sectionHelp`,{section:t.label}),icon:`question`,popoverId:`settings-section-help-popover-${t.id}`})}
|
||
<wa-popover
|
||
id=${`settings-section-help-popover-${t.id}`}
|
||
class="settings-section__help-popover"
|
||
for=${s}
|
||
placement="bottom-end"
|
||
>
|
||
<div class="settings-section__help-panel">
|
||
${t.description?x`<p>${t.description}</p>`:b}
|
||
${oe(i)}
|
||
</div>
|
||
</wa-popover>
|
||
</span>
|
||
`:b}
|
||
</div>`:b}
|
||
</div>
|
||
${t.description?x`<p class="settings-section__desc">${t.description}</p>`:b}
|
||
${mr({schema:t.node,path:t.path,hints:e.uiHints,revealAdvanced:c,onShowAdvanced:e.onShowAdvanced,onHideAdvanced:e.showAdvanced===!0&&e.forceAdvancedSection!==t.path[0]&&!a?e.onHideAdvanced:void 0,renderTier:n=>fr({schema:n,value:t.nodeValue,path:t.path,hints:e.uiHints,rawAvailable:e.rawAvailable??!0,unsupported:r,disabled:e.disabled??!1,showLabel:!1,showHeaderMeta:!0,searchCriteria:o,revealSensitive:e.revealSensitive??!1,isSensitivePathRevealed:e.isSensitivePathRevealed,onToggleSensitivePath:e.onToggleSensitivePath,onPatch:e.onPatch,onRemove:e.onRemove}),commonPrelude:e.sectionPrelude})}
|
||
</section>
|
||
`};return ce(d?(()=>{let{sectionKey:t,subsectionKey:r,schema:i}=d,a=m([t,r],e.uiHints),o=a?.label??i.title??g(r),s=a?.help??i.description??``,c=n[t],l=c&&typeof c==`object`?c[r]:void 0;return f({id:`config-section-${t}-${r}`,label:o,description:s,node:i,nodeValue:l,path:[t,r]})})():u.map(([e,t])=>{let r=we[e]??{label:e.charAt(0).toUpperCase()+e.slice(1),description:t.description??``};return f({id:`config-section-${e}`,label:r.label,description:r.description,node:t,nodeValue:n[e],path:[e]})}))}function _r(){return(_r=e((()=>{S(),j(),ye(),Ce(),pr(),Te(),H(),Me(),le()})))()}function vr(e){return Object.keys(e??{}).filter(e=>!Ir.has(e)).length===0}function yr(e){let t=e.filter(e=>e!=null),n=t.length!==e.length;return{enumValues:br(t),nullable:n}}function br(e){let t=[];for(let n of e)t.some(e=>Object.is(e,n))||t.push(n);return t}function xr(e,t=new Set){if(t.has(e))return new Set;t.add(e);let n=new Set,r=Array.isArray(e.type)?e.type:e.type?[e.type]:[];for(let e of r)e!==`null`&&n.add(e);n.size===0&&(e.properties||e.additionalProperties)&&n.add(`object`);for(let r of e.allOf??[])for(let e of xr(r,t))n.add(e);return t.delete(e),n}function Sr(e){if(e.size===1)return e.values().next().value;if(e.size>1&&[...e].every(e=>e===`number`||e===`integer`))return e.has(`integer`)?`integer`:`number`}function Cr(e){return e.size>1&&Sr(e)===void 0}function wr(e){return Sr(xr(e))}function Tr(e){return!!(wr(e)||e.items||e.enum||e.anyOf||e.oneOf||e.allOf)}function Er(e){return Or(e,Lr)}function Dr(e){return Or(e,Rr)}function Or(e,t){return Object.keys(e).every(n=>t.has(n)||n===`propertyNames`&&typeof e.propertyNames==`object`&&e.propertyNames!==null&&!Array.isArray(e.propertyNames)&&_(e.propertyNames)&&$({type:`string`,...e.propertyNames},[]).unsupportedPaths.length===0)}function kr(e,t=new Set){if(t.has(e))return!1;t.add(e);let n=Array.isArray(e.type)?e.type:e.type?[e.type]:[],r=e.nullable===!0||n.length===0||n.includes(`null`);return e.const!==void 0&&(r&&=e.const===null),e.enum&&(r&&=e.enum.some(e=>e===null)),e.allOf&&(r&&=e.allOf.every(e=>kr(e,t))),e.anyOf&&(r&&=e.anyOf.some(e=>kr(e,t))),e.oneOf&&(r&&=e.oneOf.filter(e=>kr(e,t)).length===1),t.delete(e),r}function Ar(e){let t=[],n=[e],r=new Set;for(;n.length>0;){let e=n.pop();!e||r.has(e)||(r.add(e),t.push(e),n.push(...e.allOf??[]))}if(t.length<=1)return!1;let i=new Set(t.flatMap(e=>Object.keys(e.properties??{})));return t.some(e=>{let t=e.additionalProperties;return!!t&&typeof t==`object`&&Object.keys(t).length>0&&[...i].some(t=>!Object.hasOwn(e.properties??{},t))})}function jr(e){return!e||typeof e!=`object`?{schema:null,unsupportedPaths:[`<root>`]}:$(e,[])}function $(e,t,n=!1,r,i){let a=new Set,o={...e},c=s(t)||`<root>`;if(Dr(e)||a.add(c),e.anyOf||e.oneOf){let n=Fr(e,t);return n?{schema:n.schema,unsupportedPaths:Array.from(new Set([...a,...n.unsupportedPaths]))}:{schema:e,unsupportedPaths:[c]}}let l=Array.isArray(e.type)?e.type.filter(e=>e!==`null`):[],u=xr(e),d=n&&!!r&&e.type===void 0&&u.size===0;d&&r&&u.add(r),n&&r&&u.size>0&&Cr(new Set([...u,r]))&&a.add(c),(new Set(l).size>1||Cr(u))&&a.add(c);let f=Sr(u),p=kr(e)&&(i===void 0||i);if(e.allOf){let n=[];for(let r of e.allOf){if(!r||typeof r!=`object`){a.add(c);continue}if(!Tr(r)){n.push(r),Er(r)||a.add(c);continue}let e=$(r,t,!0,f,p);n.push(e.schema??r);for(let t of e.unsupportedPaths)a.add(t)}o.allOf=n}o.type=f??e.type,o.nullable=p;let m=e.properties!==void 0||e.additionalProperties!==void 0,h=e.items!==void 0||e.additionalItems!==void 0;if(o.enum){let{enumValues:e,nullable:t}=yr(o.enum);o.enum=e,o.enumIncludesNull=t&&p,e.length===0&&a.add(c)}if(e.allOf&&p&&!o.enumIncludesNull&&a.add(c),f===`object`&&(!d||m)){let r=e.properties??{},i=new Set(Nt(e)),l=Pt(e);[...Mt(e)].some(e=>!i.has(e))&&!l&&a.add(c),Ar(e)&&a.add(c);let u={};for(let[e,i]of Object.entries(r)){if(n&&!Tr(i)){u[e]=i,Er(i)||a.add(s([...t,e])||`<root>`);continue}let r=$(i,[...t,e],n);r.schema&&(u[e]=r.schema);for(let e of r.unsupportedPaths)a.add(e)}if(o.properties=u,e.allOf)for(let n of Nt(e)){let r=Rt(e,n);if(!r)continue;let i=$(r,[...t,n]);for(let e of i.unsupportedPaths)a.add(e)}if(e.additionalProperties===!0)o.additionalProperties={};else if(e.additionalProperties===!1)o.additionalProperties=!1;else if(e.additionalProperties&&typeof e.additionalProperties==`object`&&!vr(e.additionalProperties)){let r=$(e.additionalProperties,[...t,`*`],n);o.additionalProperties=r.schema??e.additionalProperties;for(let e of r.unsupportedPaths)a.add(e)}}else if(f===`array`&&(!d||h)){if(Array.isArray(e.items)){let r=[];for(let i=0;i<e.items.length;i+=1){let o=e.items[i];if(!o){a.add(c);continue}if(n&&!Tr(o)){r.push(o),Er(o)||a.add(c);continue}let s=$(o,[...t,i],n);r.push(s.schema??o);for(let e of s.unsupportedPaths)a.add(e)}if(o.items=r,e.additionalItems&&typeof e.additionalItems==`object`){if(n&&!Tr(e.additionalItems))o.additionalItems=e.additionalItems,Er(e.additionalItems)||a.add(c);else{let r=$(e.additionalItems,[...t,`*`],n);o.additionalItems=r.schema??e.additionalItems;for(let e of r.unsupportedPaths)a.add(e)}}else o.additionalItems=e.additionalItems}else if(!e.items)a.add(c);else if(n&&!Tr(e.items))o.items=e.items,Er(e.items)||a.add(c);else{let r=$(e.items,[...t,`*`],n);o.items=r.schema??e.items;for(let e of r.unsupportedPaths)a.add(e)}if(e.allOf)for(let n of Se(e)){let r=Ne(e,n);if(!r)continue;let i=$(r,[...t,n]);for(let e of i.unsupportedPaths)a.add(e)}}else!(d&&(f===`object`||f===`array`))&&f!==`string`&&f!==`number`&&f!==`integer`&&f!==`boolean`&&!o.enum&&!(n&&e.allOf)&&a.add(c);return{schema:o,unsupportedPaths:Array.from(a)}}function Mr(e){if(c(e)!==`object`)return!1;let t=e.properties?.source,n=e.properties?.provider,r=e.properties?.id;return!t||!n||!r?!1:typeof t.const==`string`&&c(n)===`string`&&c(r)===`string`}function Nr(e){let t=e.oneOf??e.anyOf;return!t||t.length===0?!1:t.every(e=>Mr(e))}function Pr(e,t,n,r){let i=n.findIndex(e=>c(e)===`string`);if(i<0)return null;let a=n.filter((e,t)=>t!==i),o=a[0],s=n[i];return a.length!==1||!o||!s||!Nr(o)?null:$({...e,...s,nullable:r||s.nullable,anyOf:void 0,oneOf:void 0,allOf:void 0},t)}function Fr(e,t){if(e.allOf)return null;let n=e.anyOf??e.oneOf;if(!n)return null;let r=[],i=[],a=!1;for(let e of n){if(!e||typeof e!=`object`)return null;if(Array.isArray(e.enum)){let{enumValues:t,nullable:n}=yr(e.enum);r.push(...t),n&&(a=!0);continue}if(`const`in e){if(e.const==null){a=!0;continue}r.push(e.const);continue}if(c(e)===`null`){a=!0;continue}i.push(e)}a&&=kr(e);let o=Pr(e,t,i,a);if(o)return o;if(r.length>0&&i.length>0){let t=i.length===1?i[0]:void 0;if(t?.type!==`boolean`||Object.keys(t).length!==1||r.includes(`true`)||r.includes(`false`)||e.anyOf===void 0&&r.some(e=>typeof e==`boolean`))return null;i.pop(),r.unshift(!0,!1)}if(r.length>0&&i.length===0)return{schema:{...e,enum:br(r),nullable:a,enumIncludesNull:a,anyOf:void 0,oneOf:void 0,allOf:void 0},unsupportedPaths:[]};if(i.length===1){let n=i[0];return n?$({...e,...n,nullable:a||n.nullable,anyOf:void 0,oneOf:void 0,allOf:void 0},t):null}return i.length>0&&r.length===0&&i.every(e=>{let t=c(e);return!!t&&zr.has(String(t))})?{schema:{...e,nullable:a},unsupportedPaths:[]}:null}var Ir,Lr,Rr,zr;function Br(){return(Br=e((()=>{Ee(),q(),H(),Ir=new Set([`$id`,`$schema`,`title`,`description`,`default`,`deprecated`,`nullable`,`enumIncludesNull`,`examples`,`readOnly`,`tags`,`writeOnly`,`x-tags`]),Lr=new Set([...Ir,`const`,`required`,`additionalProperties`,`minimum`,`maximum`,`exclusiveMinimum`,`exclusiveMaximum`,`multipleOf`,`minLength`,`maxLength`,`pattern`,`minItems`,`maxItems`,`uniqueItems`]),Rr=new Set([...Lr,`type`,`properties`,`items`,`additionalItems`,`enum`,`anyOf`,`oneOf`,`allOf`]),zr=new Set([`string`,`number`,`integer`,`boolean`,`object`,`array`])})))()}function Vr(){return(Vr=e((()=>{_r(),Br(),pr(),H()})))()}export{gr as a,fr as c,_t as d,H as f,at as h,_r as i,Vn as l,ct as m,jr as n,mr as o,lt as p,Br as r,pr as s,Vr as t,Un as u};
|
||
//# sourceMappingURL=config-form-Bcjgoeiw.js.map
|