zigbee2mqtt-windfront
Version:
[](https://npmjs.org/package/zigbee2mqtt-windfront) [](https://github.com/Nerivec/zigbee2mqtt-windf
2 lines (1 loc) • 5.39 kB
JavaScript
import{r as g,j as s,C as j,F as h,G as v,U as V,bT as w,b as S}from"./index-C9teBVht.js";import{C as A}from"./CheckboxField-ZdCJFDzF.js";import{I as F}from"./InputField-CoouO8KX.js";import{N as k}from"./NumberField-C7vPZa-K.js";import{S as $}from"./SelectField-Cjwi2kGD.js";const E=g.memo(l=>{const{defaultValues:n,label:c,detail:o,type:i,onSubmit:u,...x}=l,[f,m]=g.useState(n||[]);g.useEffect(()=>{m(n||[])},[n]);const e=g.useCallback((r,d)=>{m(b=>{const C=Array.from(b);return C[r]=i==="number"?d.target.value?d.target.valueAsNumber:"":d.target.value,C})},[i]),t=g.useCallback(()=>{m(r=>[...r,""])},[]),a=g.useCallback(r=>{m(d=>{const b=Array.from(d);return b.splice(r,1),b})},[]),p=g.useCallback(()=>u(i==="number"?f.filter(r=>typeof r=="number"):f.filter(r=>!!r)),[i,f,u]);return s.jsxs("fieldset",{className:"fieldset gap-2",children:[c&&s.jsxs("legend",{className:"fieldset-legend",children:[c,l.required?" *":""]}),s.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:f.map((r,d)=>s.jsxs("div",{className:"join min-w-xs",children:[s.jsx("input",{className:"input join-item",onBlur:b=>{e(d,b)},type:i,defaultValue:Number.isNaN(r)?"":r,...x}),s.jsx(j,{className:"btn btn-error btn-outline join-item",onClick:()=>a(d),children:s.jsx(h,{icon:v})})]},`${r}-${d}`))}),s.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center mt-1",children:[s.jsx(j,{onClick:t,className:"btn btn-sm btn-square btn-success ms-2",children:s.jsx(h,{icon:V})}),s.jsx(j,{onClick:p,className:"btn btn-sm btn-square btn-primary",children:s.jsx(h,{icon:w})}),o&&s.jsx("p",{className:"label text-wrap",children:o})]})]})}),T=g.memo(l=>{const{names:n,label:c,detail:o,defaultsChecked:i,onSubmit:u,...x}=l,[f,m]=g.useState(i||[]);g.useEffect(()=>{m(i||[])},[i]);const e=g.useCallback(a=>{m(p=>a.target.checked?[...p,a.target.name]:p.filter(r=>r!==a.target.name))},[]),t=g.useCallback(()=>u(f),[f,u]);return s.jsxs("fieldset",{className:"fieldset gap-2",children:[c&&s.jsxs("legend",{className:"fieldset-legend",children:[c,l.required?" *":""]}),s.jsx("div",{className:"flex flex-row flex-wrap gap-2",children:n.map(a=>s.jsxs("label",{className:"label",children:[s.jsx("input",{name:a,className:"checkbox",type:"checkbox",onChange:e,checked:f.includes(a),...x}),a]},a))}),s.jsxs("div",{className:"flex flex-row flex-wrap gap-2 items-center mt-1",children:[s.jsx(j,{onClick:t,className:"btn btn-sm btn-square btn-primary",children:s.jsx(h,{icon:w})}),o&&s.jsx("p",{className:"label text-wrap",children:o})]})]})}),I=(l,n,c,o,i,u,x)=>{let f=n.type;if(Array.isArray(f))f=f.find(e=>e!=="null");else if(n.oneOf)return;const m=`${i}-${l}-${n.type}-${n.title}`;switch(f){case"boolean":return s.jsx(A,{name:l,label:l,detail:x,onChange:e=>!e.target.validationMessage&&o({[l]:e.target.checked}),required:u,defaultChecked:c??!1},m);case"integer":case"number":return n.enum?s.jsxs($,{name:l,label:l,detail:x,onChange:e=>!e.target.validationMessage&&o({[l]:e.target.value===""?null:Number.parseInt(e.target.value,10)}),required:u,defaultValue:c??"",children:[s.jsx("option",{value:"",disabled:u,children:"-"}),n.enum.map(e=>s.jsx("option",{value:e,children:e},e))]},m):s.jsx(k,{name:l,label:l,detail:x,onSubmit:(e,t)=>t&&o({[l]:e===""?null:e}),min:n.minimum,max:n.maximum,required:u,initialValue:c??""},m);case"string":return n.enum?s.jsxs($,{name:l,label:l,detail:x,onChange:e=>!e.target.validationMessage&&o({[l]:e.target.value===""?null:e.target.value}),required:u,defaultValue:c??"",children:[s.jsx("option",{value:"",disabled:u,children:"-"}),n.enum.map(e=>s.jsx("option",{value:e,children:e},e))]},m):s.jsx(F,{name:l,label:l,detail:x,type:"text",onBlur:e=>!e.target.validationMessage&&o({[l]:e.target.value===""?null:e.target.value}),required:u,defaultValue:c??""},m);case"array":{const e=n.items;if(e&&typeof e=="object"&&"type"in e){if(e.enum)return s.jsx(T,{names:e.enum,label:l,detail:x,onSubmit:t=>o({[l]:t}),defaultsChecked:c??[]});if(e.type==="string"||e.type==="number")return s.jsx(E,{defaultValues:c??[],label:l,detail:x,onSubmit:t=>o({[l]:t}),type:e.type})}}}},N=(l,n,c,o,i,u=[],x=!1,f="")=>{const m=[],e=[];for(const t in n){const a=n[t];if(typeof a=="boolean"||a.readOnly)continue;const p=f?`${f}-${t}`:t;if(a.properties)x||e.push(s.jsxs("div",{className:"list",children:[s.jsx("h3",{className:"list-row p-3 text-lg",children:a.title||t}),N(l,a.properties,c[t]||{},async r=>o({[t]:r}),i+1,a.required,!1,p)]},`${i}-${t}`));else{const r=a.oneOf?.find(d=>typeof d=="object"&&d.properties);if(r)(t!=="log_syslog"||c.log_output.includes("syslog"))&&e.push(s.jsxs("div",{className:"list",children:[s.jsx("h3",{className:"list-row p-3 text-lg",children:r.title||a.title||t}),N(l,r.properties,c[t]||{},async d=>o({[t]:d}),i+1,r.required,!1,p)]},`${i}-${t}`));else{const d=I(t,a,c[t]??a.default,o,i,u.includes(t),a.description?`${l(b=>b[p],{defaultValue:a.description})}${a.default!=null?` (${l(b=>b.default,{ns:"common"})}: ${a.default})`:""}`:a.default!=null?`${l(b=>b.default,{ns:"common"})}: ${a.default}}`:void 0);d&&m.push(s.jsx("div",{className:`list-row p-3 ${i!==0?` ps-${4+i*4}`:""}`,children:d},`${i}-${t}`))}}}return e.length>0?m.concat(e):m};function P({schema:l,data:n,set:c,rootOnly:o,namespace:i}){const{t:u}=S(["settingsSchemaDescriptions","common"]);return s.jsx("div",{className:"list bg-base-100",children:l.properties&&N(u,l.properties,n,c,0,l.required,o,i)})}export{P as S};