zwave-js-ui
Version:
Z-Wave Control Panel and MQTT Gateway
2 lines (1 loc) • 37.3 kB
JavaScript
import{dL as fe,a4 as j,bI as ve,bF as ue,bl as v,d7 as ae,cU as D,bJ as rl,d5 as ge,dm as dl,a6 as X,H as s,W as B,n as I,dM as cl,bs as de,dN as ml,dO as Qe,dP as vl,dQ as Ie,dR as Se,dS as Me,dT as ke,cK as Ze,b as m,i as te,ad as fl,ae as hl,dU as Oe,dH as Vl,cL as xe,bn as W,cN as bl,cz as yl,cx as kl,a9 as gl,cA as wl,a3 as Pe,cp as Ae,cm as $e,cv as pl,dV as Cl,cq as pe,cS as Sl,q as Ce,v as xl,dW as Pl,cw as _l,a5 as Ee,dk as Nl,dq as He,dX as Rl,P as el,T as ne,df as Ll,dt as Tl,dY as Il,ct as Ml,dZ as El,d_ as Ue,d$ as ll,e0 as ze,e1 as Bl,d6 as Dl,e2 as zl,l as we,e3 as Fl,r as Ke,e4 as Ol,bH as Al,e5 as Hl,cD as Ul,cF as Kl,_ as jl,c as U,z as b,h as A,k as J,t as K,w,ac as ql,e as L,R as je,ab as qe,am as Ge,bk as We,D as me,K as Xe,F as Gl,G as Wl,J as Xl,g as Yl,bx as Jl,af as Ql,aT as Re,aU as Le,x as Te}from"./index-DwzE-W2i.js";import{c as Zl}from"./colors-DoZdCu1D.js";const $l=j({color:{type:Object},disabled:Boolean,dotSize:{type:[Number,String],default:10},height:{type:[Number,String],default:150},width:{type:[Number,String],default:300},...de()},"VColorPickerCanvas"),et=fe({name:"VColorPickerCanvas",props:$l(),emits:{"update:color":e=>!0,"update:position":e=>!0},setup(e,l){let{emit:t}=l;const u=ve(!1),o=ue(),a=ve(parseFloat(e.width)),n=ve(parseFloat(e.height)),i=ue({x:0,y:0}),d=v({get:()=>i.value,set(c){if(!o.value)return;const{x:h,y}=c;i.value=c,t("update:color",{h:e.color?.h??0,s:ae(h,0,a.value)/a.value,v:1-ae(y,0,n.value)/n.value,a:e.color?.a??1})}}),p=v(()=>{const{x:c,y:h}=d.value,y=parseInt(e.dotSize,10)/2;return{width:D(e.dotSize),height:D(e.dotSize),transform:`translate(${D(c-y)}, ${D(h-y)})`}}),{resizeRef:f}=rl(c=>{if(!f.el?.offsetParent)return;const{width:h,height:y}=c[0].contentRect;a.value=h,n.value=y});function C(c,h,y){const{left:P,top:F,width:E,height:O}=y;d.value={x:ae(c-P,0,E),y:ae(h-F,0,O)}}function k(c){c.type==="mousedown"&&c.preventDefault(),!e.disabled&&(S(c),window.addEventListener("mousemove",S),window.addEventListener("mouseup",x),window.addEventListener("touchmove",S),window.addEventListener("touchend",x))}function S(c){if(e.disabled||!o.value)return;u.value=!0;const h=cl(c);C(h.clientX,h.clientY,o.value.getBoundingClientRect())}function x(){window.removeEventListener("mousemove",S),window.removeEventListener("mouseup",x),window.removeEventListener("touchmove",S),window.removeEventListener("touchend",x)}function z(){if(!o.value)return;const c=o.value,h=c.getContext("2d");if(!h)return;const y=h.createLinearGradient(0,0,c.width,0);y.addColorStop(0,"hsla(0, 0%, 100%, 1)"),y.addColorStop(1,`hsla(${e.color?.h??0}, 100%, 50%, 1)`),h.fillStyle=y,h.fillRect(0,0,c.width,c.height);const P=h.createLinearGradient(0,0,0,c.height);P.addColorStop(0,"hsla(0, 0%, 0%, 0)"),P.addColorStop(1,"hsla(0, 0%, 0%, 1)"),h.fillStyle=P,h.fillRect(0,0,c.width,c.height)}return ge(()=>e.color?.h,z,{immediate:!0}),ge(()=>[a.value,n.value],(c,h)=>{z(),i.value={x:d.value.x*c[0]/h[0],y:d.value.y*c[1]/h[1]}},{flush:"post"}),ge(()=>e.color,()=>{if(u.value){u.value=!1;return}i.value=e.color?{x:e.color.s*a.value,y:(1-e.color.v)*n.value}:{x:0,y:0}},{deep:!0,immediate:!0}),dl(()=>z()),X(()=>s("div",{ref:f,class:I(["v-color-picker-canvas",e.class]),style:B(e.style),onMousedown:k,onTouchstartPassive:k},[s("canvas",{ref:o,width:a.value,height:n.value},null),e.color&&s("div",{class:I(["v-color-picker-canvas__dot",{"v-color-picker-canvas__dot--disabled":e.disabled}]),style:B(p.value)},null)])),{}}});function lt(e,l){if(l){const{a:t,...u}=e;return u}return e}function tt(e,l){if(l==null||typeof l=="string"){const t=e.a!==1;if(l?.startsWith("rgb(")){const{r:o,g:a,b:n,a:i}=Me(e);return`rgb(${o} ${a} ${n}`+(t?` / ${i})`:")")}else if(l?.startsWith("hsl(")){const{h:o,s:a,l:n,a:i}=Ie(e);return`hsl(${o} ${Math.round(a*100)} ${Math.round(n*100)}`+(t?` / ${i})`:")")}const u=Qe(e);return e.a===1?u.slice(0,7):u}if(typeof l=="object"){let t;return ke(l,["r","g","b"])?t=Me(e):ke(l,["h","s","l"])?t=Ie(e):ke(l,["h","s","v"])&&(t=e),lt(t,!ke(l,["a"])&&e.a===1)}return e}const re={h:0,s:0,v:0,a:1},Be={inputProps:{type:"number",min:0},inputs:[{label:"R",max:255,step:1,getValue:e=>Math.round(e.r),getColor:(e,l)=>({...e,r:Number(l)}),localeKey:"redInput"},{label:"G",max:255,step:1,getValue:e=>Math.round(e.g),getColor:(e,l)=>({...e,g:Number(l)}),localeKey:"greenInput"},{label:"B",max:255,step:1,getValue:e=>Math.round(e.b),getColor:(e,l)=>({...e,b:Number(l)}),localeKey:"blueInput"},{label:"A",max:1,step:.01,getValue:e=>{let{a:l}=e;return l!=null?Math.round(l*100)/100:1},getColor:(e,l)=>({...e,a:Number(l)}),localeKey:"alphaInput"}],to:Me,from:Se},at={...Be,inputs:Be.inputs?.slice(0,3)},De={inputProps:{type:"number",min:0},inputs:[{label:"H",max:360,step:1,getValue:e=>Math.round(e.h),getColor:(e,l)=>({...e,h:Number(l)}),localeKey:"hueInput"},{label:"S",max:1,step:.01,getValue:e=>Math.round(e.s*100)/100,getColor:(e,l)=>({...e,s:Number(l)}),localeKey:"saturationInput"},{label:"L",max:1,step:.01,getValue:e=>Math.round(e.l*100)/100,getColor:(e,l)=>({...e,l:Number(l)}),localeKey:"lightnessInput"},{label:"A",max:1,step:.01,getValue:e=>{let{a:l}=e;return l!=null?Math.round(l*100)/100:1},getColor:(e,l)=>({...e,a:Number(l)}),localeKey:"alphaInput"}],to:Ie,from:vl},nt={...De,inputs:De.inputs.slice(0,3)},tl={inputProps:{type:"text"},inputs:[{label:"HEXA",getValue:e=>e,getColor:(e,l)=>l,localeKey:"hexaInput"}],to:Qe,from:ml},ot={...tl,inputs:[{label:"HEX",getValue:e=>e.slice(0,7),getColor:(e,l)=>l,localeKey:"hexInput"}]},oe={rgb:at,rgba:Be,hsl:nt,hsla:De,hex:ot,hexa:tl},ut=e=>{let{label:l,...t}=e;return s("div",{class:"v-color-picker-edit__input"},[s("input",fl(hl(t)),null),s("span",null,[l])])},it=j({color:Object,disabled:Boolean,mode:{type:String,default:"rgba",validator:e=>Object.keys(oe).includes(e)},modes:{type:Array,default:()=>Object.keys(oe),validator:e=>Array.isArray(e)&&e.every(l=>Object.keys(oe).includes(l))},...de()},"VColorPickerEdit"),st=fe({name:"VColorPickerEdit",props:it(),emits:{"update:color":e=>!0,"update:mode":e=>!0},setup(e,l){let{emit:t}=l;const{t:u}=Ze(),o=v(()=>e.modes.map(n=>({...oe[n],name:n}))),a=v(()=>{const n=o.value.find(d=>d.name===e.mode);if(!n)return[];const i=e.color?n.to(e.color):null;return n.inputs?.map(d=>{let{getValue:p,getColor:f,localeKey:C,...k}=d;return{...n.inputProps,...k,ariaLabel:u(`$vuetify.colorPicker.ariaLabel.${C}`),disabled:e.disabled,value:i&&p(i),onChange:S=>{const x=S.target;x&&t("update:color",n.from(f(i??n.to(re),x.value)))}}})});return X(()=>s("div",{class:I(["v-color-picker-edit",e.class]),style:B(e.style)},[a.value?.map(n=>m(ut,n,null)),o.value.length>1&&m(te,{icon:"$unfold",size:"x-small",variant:"plain","aria-label":u("$vuetify.colorPicker.ariaLabel.changeFormat"),onClick:()=>{const n=o.value.findIndex(i=>i.name===e.mode);t("update:mode",o.value[(n+1)%o.value.length].name)}},null)])),{}}}),Fe=Symbol.for("vuetify:v-slider");function rt(e,l,t){const u=t==="vertical",o=l.getBoundingClientRect(),a="touches"in e?e.touches[0]:e;return u?a.clientY-(o.top+o.height/2):a.clientX-(o.left+o.width/2)}function dt(e,l){return"touches"in e&&e.touches.length?e.touches[0][l]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][l]:e[l]}const ct=j({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,noKeyboard:Boolean,...kl(),...yl({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),mt=e=>{const l=v(()=>parseFloat(e.min)),t=v(()=>parseFloat(e.max)),u=v(()=>Number(e.step)>0?parseFloat(e.step):0),o=v(()=>Math.max(Oe(u.value),Oe(l.value)));function a(n){if(n=parseFloat(n),u.value<=0)return n;const i=ae(n,l.value,t.value),d=l.value%u.value;let p=Math.round((i-d)/u.value)*u.value+d;return i>p&&p+u.value>t.value&&(p=t.value),parseFloat(Math.min(p,t.value).toFixed(o.value))}return{min:l,max:t,step:u,decimals:o,roundValue:a}},vt=e=>{let{props:l,steps:t,onSliderStart:u,onSliderMove:o,onSliderEnd:a,getActiveThumb:n}=e;const i=Vl(l),{isRtl:d}=xe(),p=W(()=>l.reverse),f=v(()=>l.direction==="vertical"),C=v(()=>f.value!==p.value),{min:k,max:S,step:x,decimals:z,roundValue:c}=t,h=v(()=>parseInt(l.thumbSize,10)),y=v(()=>parseInt(l.tickSize,10)),P=v(()=>parseInt(l.trackSize,10)),F=v(()=>(S.value-k.value)/x.value),E=v(()=>l.error||i.isDisabled.value?void 0:l.thumbColor??l.color),O=v(()=>l.error||i.isDisabled.value?void 0:l.thumbColor),Q=v(()=>l.error||i.isDisabled.value?void 0:l.trackColor??l.color),Y=v(()=>l.error||i.isDisabled.value?void 0:l.trackFillColor??l.color),_=ve(!1),N=ve(0),M=ue(),g=ue();function H(r){const V=M.value?.$el;if(!V)return;const le=l.direction==="vertical",be=le?"top":"left",ye=le?"height":"width",ol=le?"clientY":"clientX",{[be]:ul,[ye]:il}=V.getBoundingClientRect(),sl=dt(r,ol);let Ne=ae((sl-ul-N.value)/il)||0;return(le?C.value:C.value!==d.value)&&(Ne=1-Ne),c(k.value+Ne*(S.value-k.value))}const q=r=>{const V=H(r);V!=null&&a({value:V}),_.value=!1,N.value=0},ce=r=>{const V=H(r);g.value=n(r),g.value&&(_.value=!0,g.value.contains(r.target)?N.value=rt(r,g.value,l.direction):(N.value=0,V!=null&&o({value:V})),V!=null&&u({value:V}),gl(()=>g.value?.focus()))},Z={passive:!0,capture:!0};function G(r){const V=H(r);V!=null&&o({value:V})}function $(r){r.stopPropagation(),r.preventDefault(),q(r),window.removeEventListener("mousemove",G,Z),window.removeEventListener("mouseup",$)}function ie(r){q(r),window.removeEventListener("touchmove",G,Z),r.target?.removeEventListener("touchend",ie)}function ee(r){ce(r),window.addEventListener("touchmove",G,Z),r.target?.addEventListener("touchend",ie,{passive:!1})}function _e(r){r.button===0&&(r.preventDefault(),ce(r),window.addEventListener("mousemove",G,Z),window.addEventListener("mouseup",$,{passive:!1}))}const se=r=>{const V=(r-k.value)/(S.value-k.value)*100;return ae(isNaN(V)?0:V,0,100)},he=W(()=>l.showTicks),Ve=v(()=>he.value?l.ticks?Array.isArray(l.ticks)?l.ticks.map(r=>({value:r,position:se(r),label:r.toString()})):Object.keys(l.ticks).map(r=>({value:parseFloat(r),position:se(parseFloat(r)),label:l.ticks[r]})):F.value!==1/0?bl(F.value+1).map(r=>{const V=k.value+r*x.value;return{value:V,position:se(V)}}):[]:[]),T=v(()=>Ve.value.some(r=>{let{label:V}=r;return!!V})),R={activeThumbRef:g,color:W(()=>l.color),decimals:z,disabled:i.isDisabled,direction:W(()=>l.direction),elevation:W(()=>l.elevation),hasLabels:T,isReversed:p,indexFromEnd:C,min:k,max:S,mousePressed:_,noKeyboard:W(()=>l.noKeyboard),numTicks:F,onSliderMousedown:_e,onSliderTouchstart:ee,parsedTicks:Ve,parseMouseMove:H,position:se,readonly:i.isReadonly,rounded:W(()=>l.rounded),roundValue:c,showTicks:he,startOffset:N,step:x,thumbSize:h,thumbColor:E,thumbLabelColor:O,thumbLabel:W(()=>l.thumbLabel),ticks:W(()=>l.ticks),tickSize:y,trackColor:Q,trackContainerRef:M,trackFillColor:Y,trackSize:P,vertical:f};return wl(Fe,R),R},ft=j({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,noKeyboard:Boolean,...de()},"VSliderThumb"),ht=Pe()({name:"VSliderThumb",directives:{vRipple:Ae},props:ft(),emits:{"update:modelValue":e=>!0},setup(e,l){let{slots:t,emit:u}=l;const o=$e(Fe),{isRtl:a,rtlClasses:n}=xe();if(!o)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{min:i,max:d,thumbColor:p,thumbLabelColor:f,step:C,disabled:k,thumbSize:S,thumbLabel:x,direction:z,isReversed:c,vertical:h,readonly:y,elevation:P,mousePressed:F,decimals:E,indexFromEnd:O}=o,Q=v(()=>k.value?void 0:P.value),{elevationClasses:Y}=pl(Q),{textColorClasses:_,textColorStyles:N}=Cl(p),{backgroundColorClasses:M,backgroundColorStyles:g}=pe(f),{pageup:H,pagedown:q,end:ce,home:Z,left:G,right:$,down:ie,up:ee}=Sl,_e=[H,q,ce,Z,G,$,ie,ee],se=v(()=>C.value?[1,2,3]:[1,5,10]);function he(T,R){if(e.noKeyboard||k.value||!_e.includes(T.key))return;T.preventDefault();const r=C.value||.1,V=(d.value-i.value)/r;if([G,$,ie,ee].includes(T.key)){const be=(h.value?[a.value?G:$,c.value?ie:ee]:O.value!==a.value?[G,ee]:[$,ee]).includes(T.key)?1:-1,ye=T.shiftKey?2:T.ctrlKey?1:0;be===-1&&R===d.value&&!ye&&!Number.isInteger(V)?R=R-V%1*r:R=R+be*r*se.value[ye]}else if(T.key===Z)R=i.value;else if(T.key===ce)R=d.value;else{const le=T.key===q?1:-1;R=R-le*r*(V>100?V/10:10)}return Math.max(e.min,Math.min(e.max,R))}function Ve(T){const R=he(T,e.modelValue);R!=null&&u("update:modelValue",R)}return X(()=>{const T=D(O.value?100-e.position:e.position,"%");return s("div",{class:I(["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&F.value},e.class,n.value]),style:B([{"--v-slider-thumb-position":T,"--v-slider-thumb-size":D(S.value)},e.style]),role:"slider",tabindex:k.value?-1:0,"aria-label":e.name,"aria-valuemin":i.value,"aria-valuemax":d.value,"aria-valuenow":e.modelValue,"aria-readonly":!!y.value,"aria-orientation":z.value,onKeydown:y.value?void 0:Ve},[s("div",{class:I(["v-slider-thumb__surface",_.value,Y.value]),style:B(N.value)},null),Ce(s("div",{class:I(["v-slider-thumb__ripple",_.value]),style:B(N.value)},null),[[Ae,e.ripple,null,{circle:!0,center:!0}]]),m(Pl,{origin:"bottom center"},{default:()=>[Ce(s("div",{class:"v-slider-thumb__label-container"},[s("div",{class:I(["v-slider-thumb__label",M.value]),style:B(g.value)},[s("div",null,[t["thumb-label"]?.({modelValue:e.modelValue})??e.modelValue.toFixed(C.value?E.value:1)]),s("div",{class:"v-slider-thumb__label-wedge"},null)])]),[[xl,x.value&&e.focused||x.value==="always"]])]})])}),{}}}),Vt=j({start:{type:Number,required:!0},stop:{type:Number,required:!0},...de()},"VSliderTrack"),bt=Pe()({name:"VSliderTrack",props:Vt(),emits:{},setup(e,l){let{slots:t}=l;const u=$e(Fe);if(!u)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:o,parsedTicks:a,rounded:n,showTicks:i,tickSize:d,trackColor:p,trackFillColor:f,trackSize:C,vertical:k,min:S,max:x,indexFromEnd:z}=u,{roundedClasses:c}=_l(n),{backgroundColorClasses:h,backgroundColorStyles:y}=pe(f),{backgroundColorClasses:P,backgroundColorStyles:F}=pe(p),E=v(()=>`inset-${k.value?"block":"inline"}-${z.value?"end":"start"}`),O=v(()=>k.value?"height":"width"),Q=v(()=>({[E.value]:"0%",[O.value]:"100%"})),Y=v(()=>e.stop-e.start),_=v(()=>({[E.value]:D(e.start,"%"),[O.value]:D(Y.value,"%")})),N=v(()=>i.value?(k.value?a.value.slice().reverse():a.value).map((g,H)=>{const q=g.value!==S.value&&g.value!==x.value?D(g.position,"%"):void 0;return s("div",{key:g.value,class:I(["v-slider-track__tick",{"v-slider-track__tick--filled":g.position>=e.start&&g.position<=e.stop,"v-slider-track__tick--first":g.value===S.value,"v-slider-track__tick--last":g.value===x.value}]),style:{[E.value]:q}},[(g.label||t["tick-label"])&&s("div",{class:"v-slider-track__tick-label"},[t["tick-label"]?.({tick:g,index:H})??g.label])])}):[]);return X(()=>s("div",{class:I(["v-slider-track",c.value,e.class]),style:B([{"--v-slider-track-size":D(C.value),"--v-slider-tick-size":D(d.value)},e.style])},[s("div",{class:I(["v-slider-track__background",P.value,{"v-slider-track__background--opacity":!!o.value||!f.value}]),style:{...Q.value,...F.value}},null),s("div",{class:I(["v-slider-track__fill",h.value]),style:{..._.value,...y.value}},null),i.value&&s("div",{class:I(["v-slider-track__ticks",{"v-slider-track__ticks--always-show":i.value==="always"}])},[N.value])])),{}}}),yt=j({...Il(),...ct(),...Tl(),modelValue:{type:[Number,String],default:0}},"VSlider"),Ye=Pe()({name:"VSlider",props:yt(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,l){let{slots:t,emit:u}=l;const o=ue(),a=ue(),{rtlClasses:n}=xe(),i=mt(e),d=Ee(e,"modelValue",void 0,_=>i.roundValue(_??i.min.value)),{min:p,max:f,mousePressed:C,roundValue:k,onSliderMousedown:S,onSliderTouchstart:x,trackContainerRef:z,position:c,hasLabels:h,disabled:y,readonly:P,noKeyboard:F}=vt({props:e,steps:i,onSliderStart:()=>{!y.value&&!P.value&&u("start",d.value)},onSliderEnd:_=>{let{value:N}=_;const M=k(N);!y.value&&!P.value&&(d.value=M),u("end",M)},onSliderMove:_=>{let{value:N}=_;!y.value&&!P.value&&(d.value=k(N))},getActiveThumb:()=>o.value?.$el}),{isFocused:E,focus:O,blur:Q}=Nl(e),Y=v(()=>c(d.value));return X(()=>{const _=He.filterProps(e),N=!!(e.label||t.label||t.prepend);return m(He,ne({ref:a,class:["v-slider",{"v-slider--has-labels":!!t["tick-label"]||h.value,"v-slider--focused":E.value,"v-slider--pressed":C.value,"v-slider--disabled":y.value},n.value,e.class],style:e.style},_,{focused:E.value}),{...t,prepend:N?M=>s(el,null,[t.label?.(M)??(e.label?m(Rl,{id:M.id.value,class:"v-slider__label",text:e.label},null):void 0),t.prepend?.(M)]):void 0,default:M=>{let{id:g,messagesId:H}=M;return s("div",{class:"v-slider__container",onMousedown:P.value?void 0:S,onTouchstartPassive:P.value?void 0:x},[s("input",{id:g.value,name:e.name||g.value,disabled:y.value,readonly:P.value,tabindex:"-1",value:d.value},null),m(bt,{ref:z,start:0,stop:Y.value},{"tick-label":t["tick-label"]}),m(ht,{ref:o,"aria-describedby":H.value,focused:E.value,noKeyboard:F.value,min:p.value,max:f.value,modelValue:d.value,"onUpdate:modelValue":q=>d.value=q,position:Y.value,elevation:e.elevation,onFocus:O,onBlur:Q,ripple:e.ripple,name:e.name},{"thumb-label":t["thumb-label"]})])}})}),Ll({focus:()=>o.value?.$el.focus()},a)}}),al=j({color:{type:Object},disabled:Boolean,hideAlpha:Boolean,hideEyeDropper:Boolean,eyeDropperIcon:{type:Ml,default:"$eyeDropper"},...de()},"VColorPickerPreview"),kt=fe({name:"VColorPickerPreview",props:al(),emits:{"update:color":e=>!0},setup(e,l){let{emit:t}=l;const{t:u}=Ze(),o=new AbortController;El(()=>o.abort());async function a(){if(!Ue||e.disabled)return;const n=new window.EyeDropper;try{const i=await n.open({signal:o.signal}),d=Se(ze(i.sRGBHex));t("update:color",{...e.color??re,...d})}catch{}}return X(()=>s("div",{class:I(["v-color-picker-preview",{"v-color-picker-preview--hide-alpha":e.hideAlpha},e.class]),style:B(e.style)},[Ue&&!e.hideEyeDropper&&s("div",{class:"v-color-picker-preview__eye-dropper",key:"eyeDropper"},[m(te,{"aria-label":u("$vuetify.colorPicker.ariaLabel.eyedropper"),density:"comfortable",disabled:e.disabled,icon:e.eyeDropperIcon,variant:"plain",onClick:a},null)]),s("div",{class:"v-color-picker-preview__dot"},[s("div",{style:{background:ll(e.color??re)}},null)]),s("div",{class:"v-color-picker-preview__sliders"},[m(Ye,{class:"v-color-picker-preview__track v-color-picker-preview__hue",name:u("$vuetify.colorPicker.ariaLabel.hueSlider"),modelValue:e.color?.h,"onUpdate:modelValue":n=>t("update:color",{...e.color??re,h:n}),step:1,min:0,max:360,disabled:e.disabled,thumbSize:14,trackSize:8,trackFillColor:"white",hideDetails:!0},null),!e.hideAlpha&&m(Ye,{class:"v-color-picker-preview__track v-color-picker-preview__alpha",name:u("$vuetify.colorPicker.ariaLabel.alphaSlider"),modelValue:e.color?.a??1,"onUpdate:modelValue":n=>t("update:color",{...e.color??re,a:n}),step:.01,min:0,max:1,disabled:e.disabled,thumbSize:14,trackSize:8,trackFillColor:"white",hideDetails:!0},null)])])),{}}}),gt=j({swatches:{type:Array,default:()=>wt(Zl)},disabled:Boolean,color:Object,maxHeight:[Number,String],...de()},"VColorPickerSwatches");function wt(e){return Object.keys(e).map(l=>{const t=e[l];return t.base?[t.base,t.darken4,t.darken3,t.darken2,t.darken1,t.lighten1,t.lighten2,t.lighten3,t.lighten4,t.lighten5]:[t.black,t.white,t.transparent]})}const pt=fe({name:"VColorPickerSwatches",props:gt(),emits:{"update:color":e=>!0},setup(e,l){let{emit:t}=l;return X(()=>s("div",{class:I(["v-color-picker-swatches",e.class]),style:B([{maxHeight:D(e.maxHeight)},e.style])},[s("div",null,[e.swatches.map(u=>s("div",{class:"v-color-picker-swatches__swatch"},[u.map(o=>{const a=ze(o),n=Se(a),i=Bl(a);return s("div",{class:"v-color-picker-swatches__color",onClick:()=>n&&t("update:color",n)},[s("div",{style:{background:i}},[e.color&&Dl(e.color,n)?m(we,{size:"x-small",icon:"$success",color:zl(o,"#FFFFFF")>2?"white":"black"},null):void 0])])})]))])])),{}}}),Ct=Fl("v-picker-title"),nl=j({bgColor:String,divided:Boolean,landscape:Boolean,title:String,hideHeader:Boolean,hideTitle:Boolean,...Ol()},"VPicker"),Je=Pe()({name:"VPicker",props:nl(),setup(e,l){let{slots:t}=l;const{backgroundColorClasses:u,backgroundColorStyles:o}=pe(()=>e.color);return X(()=>{const a=Ke.filterProps(e),n=!e.hideTitle&&!!(e.title||t.title);return m(Ke,ne(a,{color:e.bgColor,class:["v-picker",{"v-picker--divided":e.divided,"v-picker--landscape":e.landscape,"v-picker--with-actions":!!t.actions},e.class],style:e.style}),{default:()=>[!e.hideHeader&&s("div",{key:"header",class:I([u.value]),style:B([o.value])},[n&&m(Ct,{key:"picker-title"},{default:()=>[t.title?.()??e.title]}),t.header&&s("div",{class:"v-picker__header"},[t.header()])]),s("div",{class:"v-picker__body"},[t.default?.()]),t.actions&&m(Al,{defaults:{VBtn:{slim:!0,variant:"text"}}},{default:()=>[s("div",{class:"v-picker__actions"},[t.actions()])]})]})}),{}}}),St=j({canvasHeight:{type:[String,Number],default:150},disabled:Boolean,dotSize:{type:[Number,String],default:10},hideCanvas:Boolean,hideSliders:Boolean,hideInputs:Boolean,mode:{type:String,default:"rgba",validator:e=>Object.keys(oe).includes(e)},modes:{type:Array,default:()=>Object.keys(oe),validator:e=>Array.isArray(e)&&e.every(l=>Object.keys(oe).includes(l))},showSwatches:Boolean,swatches:Array,swatchesMaxHeight:{type:[Number,String],default:150},modelValue:{type:[Object,String]},...nl({hideHeader:!0}),...Kl(al(),["hideEyeDropper","eyeDropperIcon"])},"VColorPicker"),xt=fe({name:"VColorPicker",props:St(),emits:{"update:modelValue":e=>!0,"update:mode":e=>!0},setup(e,l){let{slots:t}=l;const u=Ee(e,"mode"),o=ue(null),a=Ee(e,"modelValue",void 0,f=>{if(f==null||f==="")return null;let C;try{C=Se(ze(f))}catch{return null}return C},f=>f?tt(f,e.modelValue):null),n=v(()=>a.value?{...a.value,h:o.value??a.value.h}:null),{rtlClasses:i}=xe();let d=!0;ge(a,f=>{if(!d){d=!0;return}f&&(o.value=f.h)},{immediate:!0});const p=f=>{d=!1,o.value=f.h,a.value=f};return Hl(()=>{e.modes.includes(u.value)||(u.value=e.modes[0])}),Ul({VSlider:{color:void 0,trackColor:void 0,trackFillColor:void 0}}),X(()=>{const f=Je.filterProps(e);return m(Je,ne(f,{class:["v-color-picker",i.value,e.class],style:[{"--v-color-picker-color-hsv":ll({...n.value??re,a:1})},e.style]}),{...t,default:()=>s(el,null,[!e.hideCanvas&&m(et,{key:"canvas",color:n.value,"onUpdate:color":p,disabled:e.disabled,dotSize:e.dotSize,width:e.width,height:e.canvasHeight},null),(!e.hideSliders||!e.hideInputs)&&s("div",{key:"controls",class:"v-color-picker__controls"},[!e.hideSliders&&m(kt,{key:"preview",color:n.value,"onUpdate:color":p,hideAlpha:!u.value.endsWith("a"),disabled:e.disabled,hideEyeDropper:e.hideEyeDropper,eyeDropperIcon:e.eyeDropperIcon},null),!e.hideInputs&&m(st,{key:"edit",modes:e.modes,mode:u.value,"onUpdate:mode":C=>u.value=C,color:n.value,"onUpdate:color":p,disabled:e.disabled},null)]),e.showSwatches&&m(pt,{key:"swatches",color:n.value,"onUpdate:color":p,maxHeight:e.swatchesMaxHeight,swatches:e.swatches,disabled:e.disabled},null)])})}),{}}}),Pt={props:{modelValue:{type:Object},disable_send:{type:Boolean},node:{type:Object},hideLabel:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},data(){return{durations:["seconds","minutes"],showMenu:!1,error:null,polling:!1}},computed:{trueLabel(){return this.modelValue.type==="boolean"&&this.modelValue.states?.length>0?this.modelValue.states.find(e=>e.value===!0)?.text:null},isDefault(){return this.modelValue.default!==void 0&&this.modelValue.default===this.modelValue.newValue},numberOutOfRange(){if(this.modelValue.type!=="number")return!1;const e=Number(this.modelValue.newValue);if(Number.isNaN(e))return!0;if(this.modelValue.allowed&&Array.isArray(this.modelValue.allowed))return!this.isValueAllowed(e);const l=this.modelValue.min??-1/0,t=this.modelValue.max??1/0;return e<l||e>t},numberErrorMessage(){return this.numberOutOfRange?this.modelValue.allowed&&Array.isArray(this.modelValue.allowed)?`Value must be one of: ${this.modelValue.allowed.map(l=>this.formatAllowedValue(l)).join(", ")}`:`Value must be between ${this.modelValue.min} and ${this.modelValue.max}`:""},falseLabel(){return this.modelValue.type==="boolean"&&this.modelValue.states?.length>0?this.modelValue.states.find(e=>e.value===!1)?.text:null},selectedItem(){const e=this.modelValue.type==="number"?Number(this.modelValue.newValue):this.modelValue.newValue;return this.modelValue.states?this.modelValue.states.find(l=>l.value===e):null},canIdleNotification(){return!this.modelValue||this.disable_send?!1:this.modelValue.commandClassName==="Notification"&&this.modelValue.states?.find(e=>e.value===0)},canResetConfiguration(){return!this.modelValue||this.disable_send?!1:this.modelValue.writeable&&this.modelValue.commandClass===112&&this.modelValue.commandClassVersion>3},canPollValue(){return!this.modelValue||this.disable_send?!1:this.modelValue.readable},items(){return this.selectedItem?this.modelValue.states:[{value:this.modelValue.newValue,text:"Custom"},...this.modelValue.states]},label(){return"["+this.modelValue.id+"] "+this.modelValue.label},help(){return`${this.modelValue.description?`${this.modelValue.description} `:""}${this.modelValue.default!==void 0&&!this.modelValue.list?`(Default: ${this.modelValue.default}${this.modelValue.max!==void 0?`, max: ${this.modelValue.max}`:""}${this.modelValue.min!==void 0?`, min: ${this.modelValue.min}`:""})`:""}`},color:{get:function(){return"#"+(this.modelValue.newValue||"ffffff").toUpperCase()},set:function(e){this.modelValue.newValue=e?e.substr(1,7):null}},parsedValue:{get:function(){return this.modelValue.newValue===null?null:typeof this.modelValue.newValue=="object"?JSON.stringify(this.modelValue.newValue):this.modelValue.states&&this.modelValue.newValue!==void 0?this.itemText(this.selectedItem||this.modelValue.newValue):this.modelValue===null?"(unknown)":this.modelValue===void 0?"(missing)":this.modelValue.newValue},set:function(e){try{this.modelValue.type==="any"?this.modelValue.newValue=JSON.parse(e):typeof e=="string"&&this.modelValue.type==="number"&&(this.modelValue.newValue=Number(e)),this.error=null}catch{this.error="Value not valid"}}},pickerStyle(){return this.modelValue.type!=="color"?null:{backgroundColor:this.color,cursor:"pointer",border:"1px solid "+(this.$vuetify.theme.current.dark?"white":"black"),height:"30px",width:"30px",borderRadius:this.showMenu?"50%":"4px",transition:"border-radius 200ms ease-in-out"}}},methods:{formatAllowedValue(e){if("value"in e)return e.value;if("from"in e&&"to"in e){const l=e.step?` (step: ${e.step})`:"";return`${e.from}-${e.to}${l}`}return""},isValueAllowed(e){if(!this.modelValue.allowed||!Array.isArray(this.modelValue.allowed))return!0;const l=Number(e);if(Number.isNaN(l))return!1;for(const t of this.modelValue.allowed)if("value"in t){if(l===t.value)return!0}else if("from"in t&&"to"in t){const u=t.step||1;if(l>=t.from&&l<=t.to&&(l-t.from)%u===0)return!0}return!1},async pollValue(){const e=Re.getInstance(Le.APP);this.polling=!0;try{(await e.apiRequest("pollValue",[this.modelValue],{infoSnack:!1,errorSnack:!0})).success&&Te().showSnackbar("Value refreshed","success")}finally{this.polling=!1}},async resetConfig(){(await Re.getInstance(Le.APP).apiRequest("sendCommand",[{nodeId:this.node.id,commandClass:112},"reset",[this.modelValue.property]])).success&&Te().showSnackbar("Configuration reset","success")},async idleNotification(){(await Re.getInstance(Le.APP).apiRequest("manuallyIdleNotificationValue",[this.modelValue],{infoSnack:!1,errorSnack:!0})).success&&Te().showSnackbar("Notification manually idled","success")},itemText(e){if(typeof e=="object"){const l=e.text!==void 0?` ${e.text}`:"";return`[${e.value}]${l}${this.modelValue.default===e.value?" (Default)":""}`}else return e},updateValue(e,l){l!==void 0&&(e.newValue=l),e.type==="boolean"&&e.states?.length===1&&(l=e.states[0].value,e.newValue=l),this.$emit("updateValue",e,l)}}},_t={class:"valueid-slot"},Nt={key:0,class:"valueid-label text-subtitle-2"},Rt={key:1},Lt={class:"readonly mt-5"},Tt={key:0,class:"text-caption mt-1 help"},It={key:2,class:"d-flex align-center"},Mt={key:3,style:{display:"flex"}},Et={key:7},Bt={key:0},Dt={key:0},zt={key:0,class:"text-caption mt-2 help"},Ft={class:"help"};function Ot(e,l,t,u,o,a){return b(),U("div",_t,[t.hideLabel?A("",!0):(b(),U("div",Nt,[J(K(a.label)+" ",1),m(qe,{location:"bottom"},{activator:w(({props:n})=>[!t.compact&&(a.canPollValue||a.canResetConfiguration)?(b(),L(te,ne({key:0},n,{class:"ml-1 mb-1",size:"x-small",variant:"text",icon:"",loading:o.polling}),{default:w(()=>[m(we,null,{default:w(()=>[...l[20]||(l[20]=[J("more_vert",-1)])]),_:1})]),_:1},16,["loading"])):A("",!0)]),default:w(()=>[m(ql,{density:"compact",class:"py-0"},{default:w(()=>[a.canPollValue?(b(),L(je,{key:0,"prepend-icon":"refresh",title:"Refresh","base-color":"primary",onClick:a.pollValue},null,8,["onClick"])):A("",!0),a.canResetConfiguration?(b(),L(je,{key:1,"prepend-icon":"restart_alt",title:"Reset",density:"compact",onClick:a.resetConfig,"base-color":"error"},null,8,["onClick"])):A("",!0)]),_:1})]),_:1}),!t.compact&&a.isDefault?Ce((b(),L(We,{key:0,class:"ml-2 mb-1",size:"x-small",variant:"outlined",color:"primary"},{default:w(()=>[...l[21]||(l[21]=[J("Default",-1)])]),_:1})),[[Ge,"This value is set to its default","bottom"]]):A("",!0)])),t.modelValue.writeable?(b(),U("div",It,[!t.modelValue.list&&(t.modelValue.type==="string"||t.modelValue.type==="buffer")?(b(),L(me,{key:0,"append-icon":t.disable_send?null:"send",suffix:t.modelValue.unit,"persistent-hint":"",hint:a.help,modelValue:t.modelValue.newValue,"onUpdate:modelValue":l[0]||(l[0]=n=>t.modelValue.newValue=n),"onClick:append":l[1]||(l[1]=n=>a.updateValue(t.modelValue))},null,8,["append-icon","suffix","hint","modelValue"])):!t.modelValue.list&&t.modelValue.type==="number"?(b(),L(me,{key:1,type:"number","append-icon":!t.disable_send&&!a.numberOutOfRange?"send":null,suffix:t.modelValue.unit,min:t.modelValue.min!=t.modelValue.max?t.modelValue.min:null,step:t.modelValue.step||1,"persistent-hint":"",max:t.modelValue.min!=t.modelValue.max?t.modelValue.max:null,hint:a.help,error:a.numberOutOfRange,"error-messages":a.numberErrorMessage,modelValue:t.modelValue.newValue,"onUpdate:modelValue":l[2]||(l[2]=n=>t.modelValue.newValue=n),modelModifiers:{number:!0},"onClick:append":l[3]||(l[3]=n=>!a.numberOutOfRange&&a.updateValue(t.modelValue))},null,8,["append-icon","suffix","min","step","max","hint","error","error-messages","modelValue"])):!t.modelValue.list&&t.modelValue.type==="any"?(b(),L(me,{key:2,"append-icon":t.disable_send?null:"send",suffix:t.modelValue.unit,"persistent-hint":"",error:!!o.error,"error-messages":o.error,hint:a.help,modelValue:a.parsedValue,"onUpdate:modelValue":l[4]||(l[4]=n=>a.parsedValue=n),"onClick:append":l[5]||(l[5]=n=>a.updateValue(t.modelValue))},null,8,["append-icon","suffix","error","error-messages","hint","modelValue"])):t.modelValue.type==="duration"?(b(),U("div",Mt,[m(me,{type:t.modelValue.type==="number"?"number":"text",min:t.modelValue.min!=t.modelValue.max?t.modelValue.min:null,step:t.modelValue.step||1,"persistent-hint":"",readonly:t.disable_send,max:t.modelValue.min!=t.modelValue.max?t.modelValue.max:null,hint:a.help,modelValue:t.modelValue.newValue.value,"onUpdate:modelValue":l[6]||(l[6]=n=>t.modelValue.newValue.value=n),modelModifiers:{number:!0}},null,8,["type","min","step","readonly","max","hint","modelValue"]),m(Xe,{style:{"margin-left":"10px","min-width":"105px",width:"135px"},items:o.durations,modelValue:t.modelValue.newValue.unit,"onUpdate:modelValue":l[7]||(l[7]=n=>t.modelValue.newValue.unit=n),readonly:t.disable_send,"persistent-hint":"","append-icon":t.disable_send?null:"send","onClick:append":l[8]||(l[8]=n=>a.updateValue(t.modelValue))},null,8,["items","modelValue","readonly","append-icon"])])):t.modelValue.type==="color"?(b(),L(me,{key:4,style:{"max-width":"250px","margin-top":"10px"},flat:"",variant:"solo",modelValue:a.color,"onUpdate:modelValue":l[11]||(l[11]=n=>a.color=n),"persistent-hint":"","append-icon":t.disable_send?null:"send",hint:a.help,"onClick:append":l[12]||(l[12]=n=>a.updateValue(t.modelValue))},{append:w(()=>[m(qe,{modelValue:o.showMenu,"onUpdate:modelValue":l[10]||(l[10]=n=>o.showMenu=n),location:"top",offset:[16,105],"close-on-content-click":!1},{activator:w(({props:n})=>[s("div",ne({class:"ml-2",style:a.pickerStyle},n),null,16)]),default:w(()=>[m(Gl,null,{default:w(()=>[m(Wl,{class:"pa-0"},{default:w(()=>[o.showMenu?(b(),L(xt,{key:0,modelValue:a.color,"onUpdate:modelValue":l[9]||(l[9]=n=>a.color=n)},null,8,["modelValue"])):A("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue","append-icon","hint"])):t.modelValue.list&&!t.modelValue.allowManualEntry&&t.modelValue.type!=="boolean"?(b(),L(Xe,{key:5,items:a.items,style:B({"max-width":e.$vuetify.display.smAndDown?"280px":e.$vuetify.display.sm?"400px":"auto"}),hint:a.help,"persistent-hint":"","return-object":!1,"item-title":a.itemText,"item-value":"value",suffix:t.modelValue.unit,"append-icon":t.disable_send?null:"send",modelValue:t.modelValue.newValue,"onUpdate:modelValue":l[13]||(l[13]=n=>t.modelValue.newValue=n),"onClick:append":l[14]||(l[14]=n=>a.updateValue(t.modelValue))},{selection:w(({item:n})=>[s("span",null,K(a.itemText(a.selectedItem||n)),1)]),_:1},8,["items","style","hint","item-title","suffix","append-icon","modelValue"])):t.modelValue.list&&t.modelValue.allowManualEntry&&t.modelValue.type!=="boolean"?(b(),L(Xl,{key:6,items:a.items,style:B({"max-width":e.$vuetify.display.smAndDown?"280px":e.$vuetify.display.sm?"400px":"auto"}),hint:a.help,"persistent-hint":"",chips:"",suffix:t.modelValue.unit,"item-title":a.itemText,"item-value":"value",type:t.modelValue.type==="number"?"number":"text","return-object":!1,"append-icon":!t.disable_send&&!a.numberOutOfRange?"send":null,error:a.numberOutOfRange,"error-messages":a.numberErrorMessage,modelValue:t.modelValue.newValue,"onUpdate:modelValue":l[15]||(l[15]=n=>t.modelValue.newValue=n),ref:"myCombo","onClick:append":l[16]||(l[16]=n=>!a.numberOutOfRange&&a.updateValue(t.modelValue))},{chip:w(({attrs:n,item:i,selected:d})=>[m(We,ne(n,{"model-value":d}),{default:w(()=>[s("span",null,K(a.itemText(a.selectedItem||i)),1)]),_:2},1040,["model-value"])]),_:1},8,["items","style","hint","suffix","item-title","type","append-icon","error","error-messages","modelValue"])):t.modelValue.type==="boolean"&&(t.modelValue.writeable&&t.modelValue.readable||t.modelValue.states&&t.modelValue.states.length===2)?(b(),U("div",Et,[m(Yl,{class:"mt-4 my-2",rounded:"xl"},{default:w(()=>[m(te,{variant:t.modelValue.newValue===!0?"flat":"outlined",modelValue:!0,color:"success",onClick:l[17]||(l[17]=n=>a.updateValue(t.modelValue,!0))},{default:w(()=>[a.trueLabel?(b(),U("span",Bt,K(a.trueLabel),1)):(b(),L(we,{key:1,size:"large",color:t.modelValue.newValue===!0&&!t.modelValue.list?"white":"success",style:{rotate:"90deg"}},{default:w(()=>[...l[23]||(l[23]=[J(" horizontal_rule ",-1)])]),_:1},8,["color"]))]),_:1},8,["variant"]),m(te,{variant:t.modelValue.newValue===!1?"flat":"outlined",modelValue:!1,color:"error",onClick:l[18]||(l[18]=n=>a.updateValue(t.modelValue,!1))},{default:w(()=>[a.falseLabel?(b(),U("span",Dt,K(a.falseLabel),1)):(b(),L(we,{key:1,size:"large",color:t.modelValue.newValue===!1&&!t.modelValue.list?"white":"error"},{default:w(()=>[...l[24]||(l[24]=[J("radio_button_unchecked",-1)])]),_:1},8,["color"]))]),_:1},8,["variant"])]),_:1}),a.help?(b(),U("div",zt,K(a.help),1)):A("",!0)])):t.modelValue.type==="boolean"&&!t.modelValue.readable?(b(),L(Jl,{key:8,location:"right"},{activator:w(({props:n})=>[m(te,ne({"max-width":"100%",size:"small",variant:"flat"},n,{color:"primary",onClick:l[19]||(l[19]=i=>a.updateValue(t.modelValue)),class:"mb-2 mt-4"}),{default:w(()=>[J(K(a.trueLabel||a.falseLabel||t.modelValue.label),1)]),_:1},16)]),default:w(()=>[s("span",Ft,K("["+t.modelValue.id+"] "+a.help),1)]),_:1})):A("",!0),!t.compact&&t.modelValue.toUpdate?Ce((b(),L(Ql,{key:9,indeterminate:"",class:"ml-2",size:"20",color:t.node?.status==="Asleep"?"warning":"primary"},null,8,["color"])),[[Ge,t.node?.status==="Asleep"?"Wake up your device in order to send commands":"Set value in progress...","bottom"]]):A("",!0)])):(b(),U("div",Rt,[s("div",Lt,[J(K(a.parsedValue==null?"unknown":a.parsedValue+(t.modelValue.unit?" "+t.modelValue.unit:""))+" ",1),a.canIdleNotification?(b(),L(te,{key:0,onClick:a.idleNotification,size:"small",color:"primary"},{default:w(()=>[...l[22]||(l[22]=[J("Idle",-1)])]),_:1},8,["onClick"])):A("",!0)]),a.help?(b(),U("div",Tt,K(a.help),1)):A("",!0)]))])}const Ut=jl(Pt,[["render",Ot],["__scopeId","data-v-5e6a0aff"]]);export{Ut as default};