Deployed build diff

File-by-file comparison of the deployed custom build and the archived upstream/source-reference build.

← Back to all files

assets/js/EditRemoteView-KV9P33Fl.js

modified

Upstream/source reference62,746fccc8e0f63b9928e9978829d7f3127abed554b4db804735ee41ef930bd7249aa

Open source-reference file

Deployed build62,694f42b9cda4310422ac8e437b6bc25d8acbb69c0b64f91dcf8550114e9319cfba9

File changes

Raw mode compares the exact textual file layout. Minified bundles may therefore appear as a single very long changed line.

upstream-2.1.0/assets/js/EditRemoteView-KV9P33Fl.jsdeployed-2.1.0-unfoldedtools.1/assets/js/EditRemoteView-KV9P33Fl.jsraw
@@ -1,3 +1,2 @@
11 import{k as bt,r as s,c as W,w as Ne,y as Gt,Q as J,B as o,ak as qt,E as P,u as r,am as pa,H as X,K as k,A as d,L as v,M as H,D as e,C as ae,O as ce,I as me,P as Ba,T as Ee,J as ge,N as ht,i as Oa,al as ca,ap as La,R as Ma,ar as Ua}from"./vue-select-CSzUJrFr.js";import{aq as Ht,h as Tt,u as Dt,r as Vt,ar as ga,S as Na,N as ha,as as fe,at as va,o as G,au as ya,U as Rt,_ as nt,ai as We,Q as ma,x as Zt,A as At,av as Et,$ as za,aw as Fe,ag as Yt,V as ut,W as rt,X as qa,Y as Ha,v as xt,ax as Ga,a0 as ba,a1 as ea,R as Nt,ay as Fa,i as $a,a2 as _a,a3 as fa,a4 as zt,j as Wa,a5 as Ja,a6 as ja,B as Ka,q as yt,az as Xa,T as Qa,G as Ya,b as Za,aj as xa,c as el,aA as tl,z as wa,aB as al,aC as ll,aD as ol,an as il,l as sl}from"./index-C1Y9Q2v_.js";import{u as nl}from"./downloadFile-BZwlOo1d.js";import{_ as ul}from"./add-page-8VHq_I3u.js";import{u as rl,_ as dl,g as cl,a as vl,b as ml,c as _l,v as fl,d as pl,e as gl}from"./ButtonList.vue_vue_type_script_setup_true_lang-Canw95fQ.js";import"./ColorPicker.vue_vue_type_script_setup_true_lang-Clr8ZC9V.js";import"./UCColorTemp.vue_vue_type_script_setup_true_lang-BwXTO9iw.js";function hl(C){const Y=/^\d{1,3};0x[a-fA-F0-9]{1,16};\d{1,2};\d{1,2}(?:\s*\+\s*\d{1,3};0x[a-fA-F0-9]{1,16};\d{1,2};\d{1,2})*$/,se=/^0{4}(?: [a-fA-F0-9]{4}){5,}(?:(?:\s*\+\s*0{4}(?: [a-fA-F0-9]{1,4}){5,})*|\s*\|\s*0{4}(?: [a-fA-F0-9]{4}){5,})$/;return Y.test(C)?Ht.HEX:se.test(C)?Ht.PRONTO:null}const yl={class:"edit-ir-code__label edit-ir-code__label--selector"},bl={class:"edit-ir-code__selector"},$l={class:"edit-ir-code__selector__item__title"},wl={class:"edit-ir-code__selector__item__title"},kl={key:1,class:"edit-ir-code__learning"},Cl={class:"edit-ir-code__learning__header"},Sl={class:"edit-ir-code__label"},Il={class:"edit-ir-code__instruction"},Pl={key:1,class:"edit-ir-code__learning__header__progress"},El={class:"edit-ir-code__learning__header__progress__title"},Rl={class:"edit-ir-code__learning__header__progress__description"},Al={class:"edit-ir-code__illustration"},Tl={class:"modal__body__col modal__body__col-50 modal__body__col--form"},Dl={class:"edit-ir-code__label"},Vl={class:"ir-code-area"},Bl={class:"ir-code-area__options"},Ol={class:"edit-ir-code__buttons"},Ll=["disabled"],Ml={class:"modal__body__col--test modal__body__col modal__body__col-50"},Ul={class:"select-extra"},Nl={class:"select-extra__text"},zl={class:"select-extra__label"},ql={class:"select-extra__text"},Hl={class:"select-extra__label"},Gl={class:"edit-ir-code__illustration"},Fl={class:"modal__body__col--test__footer"},Wl=["disabled"],Jl=["disabled"],jl="^[a-zA-Z0-9-_.:+#*°@%/()?]{1,50}$",Kl=bt({__name:"AddIrCode",props:{remoteId:{type:String,required:!0},irDataset:{type:Object,required:!0},irEmitters:{type:Array,required:!0},emitterOptions:{type:Array,required:!0},learnEmitterOptions:{type:Array,required:!0}},emits:["close"],setup(C,{expose:Y,emit:se}){const p=C,F=se,{t:A}=Tt();Dt();const{sleep:b}=Zt(),U=[{value:Ht.HEX,label:A("remote.ir_code.format.hex","Hex")},{value:Ht.PRONTO,label:A("remote.ir_code.format.pronto","PRONTO")}],le=Vt(),x=ga(),O=Na(),{docks:Z}=ha(O),ne=s(!1),h=s(fe.START),c=s(p.irDataset),$=s(null),L=s(!1),j=s(""),R=s(""),B=s(U[0]),N=s({label:"",value:""}),oe=s({label:"",value:""}),z=s({label:"",value:""}),ee=s(!1),m=s(!1),g=s(""),D=s({code:"",message:"",type:""}),u=s([]),f=s(!1),E=s(!1),re={cmd_id:j.value,custom:!0,modified:!1};Y({open:ct,closeModal:Be});const be=W(()=>{if(!N.value)return[];const i=(p.irEmitters||[]).find(_=>N.value&&N.value.value===_.device_id);return i?i.ports.map(_=>({label:_.name,value:_.port_id}))||[]:[]});Ne(p,()=>{c.value=p.irDataset}),Ne(h,i=>{if((i===fe.LEARN||i===fe.PASTE)&&p.emitterOptions&&p.learnEmitterOptions&&p.irEmitters.length>0){N.value=p.emitterOptions[0],z.value=p.emitterOptions[0],i===fe.LEARN&&(N.value=p.learnEmitterOptions[0],z.value=p.learnEmitterOptions[0],E.value=!0);const M=(p.irEmitters||[]).find(te=>N.value&&N.value.value===te.device_id);if(M&&M.ports&&M.ports.length>0){const te=M.ports[M.ports.length-1];oe.value={label:te.name,value:te.port_id}}}const _=document.querySelector(".modal--edit-ir-code");_&&za(_,!0)}),Ne(R,i=>{const _=hl(i);_!=null?(B.value=U.find(M=>M.value===_)||U[0],m.value=!1):m.value=!0,i.length<1&&(m.value=!1)}),x.$onAction(({name:i,args:_})=>{if(i!=="irLearningEvent"||_.length<1)return;const{event_type:M,code:te,device_id:K}=_[0];M===va.CODE&&te?(x.stopLearning(K),R.value=te.value||"",L.value=!1,h.value=fe.PASTE,g.value=A("remote.ir_code.add.successful_learning")):M===va.STOP&&K===z.value.value&&L.value==!0&&qe()});function _e(i){if(!(typeof i>"u"))return Z.value.find(_=>_.dock_id==i.value)}async function dt(){return!j.value||!j.value.match(new RegExp(jl))?!0:$e(j.value)}async function Je(){if($.value&&$.value.cmd_id)try{const i=await le.getCustomCode(p.remoteId,$.value.cmd_id);i.code&&(i.code.format&&(B.value=U.find(_=>{var M;return _.value===((M=i==null?void 0:i.code)==null?void 0:M.format)})||U[0]),i.code.value&&(R.value=i.code.value))}catch(i){G(i)}}function $e(i){return!!(c.value.codes||[]).find(M=>M.cmd_id===i)}async function ze(){var _,M;if(!$.value||!B.value||!R.value)return;const i=$e($.value.cmd_id);try{await x.saveIrCode(i,p.remoteId,$.value.cmd_id,{value:R.value,format:B.value.value}),c.value=await le.getRemoteIrCodes(p.remoteId),R.value="",B.value=U[0],Be(),await b(1e3)}catch(te){At.rest().isConnectionError(te)&&((M=(_=te.response)==null?void 0:_.data)!=null&&M.message)?we(te,Et.SUBMIT):we(te,Et.SUBMIT)}}function de(){R.value="",B.value=U[0],E.value=!1,m.value=!1,ee.value=!1,ke()}function ct(i=re,_=!1){de(),f.value=!1,$.value=i,j.value=$.value.cmd_id,_===!0&&(f.value=!0,Je(),h.value=fe.PASTE),ne.value=!0}function Be(){ne.value=!1,h.value=fe.START,$.value=null,de(),F("close")}function je(){if(!z.value)return!1;const i=(p.irEmitters||[]).find(_=>z.value.value===_.device_id);return!i||typeof(i==null?void 0:i.capabilities)>"u"||!("learning"in i.capabilities)?!1:i.active}async function Ke(){if(ke(),!!z.value){L.value=!0,await b(1e3);try{await x.startLearning(z.value.value)}catch(i){L.value=!1,we(i,Et.TEST)}}}function qe(){z.value&&(L.value=!1,x.stopLearning(z.value.value))}async function $t(){if(ke(),!(!N.value||!oe.value||!B.value||!R.value))try{await x.testCode(N.value.value,oe.value.value,B.value.value,R.value),g.value=A("remote.ir_code.add.test_ok")}catch(i){At.rest().isConnectionError(i)&&i.message&&we(i,Et.TEST)}}function we(i,_=Et.SUBMIT){var M,te,K,Xe,Ae,Qe,Ye,ie,Ze,_t,Le,he,xe;(te=(M=i.response)==null?void 0:M.data)!=null&&te.code?(D.value.code=(Xe=(K=i.response)==null?void 0:K.data)==null?void 0:Xe.code,D.value.type=_):i.code?(D.value.code=i.code,D.value.type=_):i.message&&(D.value.message=i.message,D.value.type=_),(Ae=i.response)!=null&&Ae.data&&((Ye=(Qe=i.response)==null?void 0:Qe.data)!=null&&Ye.errors)&&((Ze=(ie=i.response)==null?void 0:ie.data)==null?void 0:Ze.errors.length)>0&&((Le=(_t=i.response)==null?void 0:_t.data)!=null&&Le.errors[0].field_errors)&&(u.value=(xe=(he=i.response)==null?void 0:he.data)==null?void 0:xe.errors[0].field_errors,D.value.type=_)}function vt(i){B.value=i}function Re(i){N.value=i;const _=(p.irEmitters||[]).find(M=>i.value===M.device_id);if(_&&_.ports&&_.ports.length>0){const M=_.ports[_.ports.length-1];oe.value={label:M.name,value:M.port_id}}}function Se(i){oe.value=i}function Oe(i){z.value=i}async function mt(i){if(!f.value)try{ee.value=await dt()}catch(_){G(_)}if(ee.value)return!1;$.value={cmd_id:j.value,custom:!0,modified:!1},h.value=i}function pe(){de(),h.value=fe.LEARN}function ke(){(D.value.code.length>0||D.value.message.length>0)&&(D.value.code="",D.value.message=""),D.value.type="",u.value.length>0&&(u.value=[]),g.value=""}return Gt(async()=>{if(Z.value.length<1)try{await O.getDockList(!1)}catch(i){G(i)}}),(i,_)=>(o(),J(qt,{to:"body"},[P(ya,{show:ne.value,height:"100%",cols:h.value===r(fe).PASTE,width:h.value===r(fe).PASTE?"100%":"32.5rem",onClose:Be,name:"edit-ir-code",class:"modal--edit-ir-code edit-ir-code"},pa({header:X(()=>[f.value?(o(),d(H,{key:0},[ce(v(r(A)("remote.ir_code.add.edit_ir_code")),1)],64)):(o(),d(H,{key:1},[ce(v(r(A)("remote.ir_code.add.add_ir_code")),1)],64))]),default:X(()=>{var M,te;return[h.value===r(fe).START?(o(),d(H,{key:0},[e("span",yl,v((M=c.value)==null?void 0:M.name),1),P(nt,{modelValue:j.value,"onUpdate:modelValue":_[0]||(_[0]=K=>j.value=K),onClick:_[1]||(_[1]=K=>ee.value=!1),disabled:f.value,"full-w":!0,label:i.$t("remote.ir_code.add.new_button_name.label"),description:i.$t("remote.ir_code.add.new_button_name.description"),"error-message":ee.value?i.$t("remote.ir_code.add.error.invalid_cmd_name"):"",focus:!0},null,8,["modelValue","disabled","label","description","error-message"]),e("div",bl,[e("button",{onClick:_[2]||(_[2]=K=>mt(r(fe).PASTE)),class:"edit-ir-code__selector__item"},[_[10]||(_[10]=e("i",{class:"fa-thin fa-paste"},null,-1)),e("span",$l,v(r(A)("remote.ir_code.add.selector.paste_ir_code")),1)]),e("button",{onClick:_[3]||(_[3]=K=>mt(r(fe).LEARN)),class:"edit-ir-code__selector__item"},[_[11]||(_[11]=e("i",{class:"fa-thin fa-wave-square"},null,-1)),e("span",wl,v(r(A)("remote.ir_code.add.selector.learn_ir_code")),1)])])],64)):k("",!0),h.value===r(fe).LEARN?(o(),d("div",kl,[e("div",Cl,[L.value?L.value?(o(),d("div",Pl,[e("span",El,v(i.$t("remote.ir_code.add.infrared_learning.title")),1),e("span",Rl,v(i.$t("remote.ir_code.add.infrared_learning.description")),1)])):k("",!0):(o(),d(H,{key:0},[e("span",Sl,v(i.$t("remote.ir_code.add.infrared_device")),1),e("p",Il,v(i.$t("remote.ir_code.add.select_device")),1),C.learnEmitterOptions&&C.learnEmitterOptions.length>0?(o(),J(We,{key:0,modelValue:z.value,"onUpdate:modelValue":_[4]||(_[4]=K=>z.value=K),onSelect:Oe,options:C.learnEmitterOptions,light:!0,"dynamic-width":!0},null,8,["modelValue","options"])):(o(),J(Rt,{key:1,message:i.$t("remote.no_output_device"),"width-flex":!0,"margin-top":!0},null,8,["message"]))],64))]),e("div",Al,[_e(z.value)?(o(),J(ma,{key:0,dock:_e(z.value)},null,8,["dock"])):k("",!0)])])):h.value===r(fe).PASTE?(o(),d(H,{key:2},[e("div",Tl,[e("span",Dl,v((te=c.value)==null?void 0:te.name),1),P(nt,{modelValue:j.value,"onUpdate:modelValue":_[5]||(_[5]=K=>j.value=K),"full-w":!0,label:i.$t("remote.ir_code.add.button"),disabled:!0,"error-message":ee.value?i.$t("remote.ir_code.add.error.invalid_cmd_name"):""},null,8,["modelValue","label","error-message"]),e("div",Vl,[P(nt,{modelValue:R.value,"onUpdate:modelValue":_[6]||(_[6]=K=>R.value=K),onClick:ke,type:"textarea",label:i.$t("remote.ir_code.add.ir_code"),"full-w":!0,"error-message":D.value.type.length>0?" ":"",focus:!0,class:"form-item--ir-code"},null,8,["modelValue","label","error-message"]),e("div",Bl,[P(We,{modelValue:B.value,"onUpdate:modelValue":_[7]||(_[7]=K=>B.value=K),onSelect:vt,options:U,position:"right",compact:!0},null,8,["modelValue","options"])]),e("p",{class:ae(["edit-ir-code__response",{"edit-ir-code__response--error":m.value||D.value.code.length>0||D.value.message.length>0,"edit-ir-code__response--success":g.value.length>0}])},[m.value?(o(),d(H,{key:0},[ce(v(i.$t("remote.ir_code.add.error.invalid_code_format")),1)],64)):D.value.message.length>0?(o(),d(H,{key:1},[ce(v(D.value.message),1)],64)):D.value.code.length>0?(o(),d(H,{key:2},[ce(v(r(A)(`error.${D.value.code}`)),1)],64)):g.value?(o(),d(H,{key:3},[_[12]||(_[12]=e("i",{class:"fa-light fa-circle-check"},null,-1)),ce(" "+v(g.value),1)],64)):(o(),d(H,{key:4},[ce(v(i.$t("remote.ir_code.add.paste_code_placeholder")),1)],64))],2)]),e("div",Ol,[e("button",{onClick:ze,disabled:!R.value||!B.value||m.value,class:"button button--primary"},v(i.$t("ui.save")),9,Ll),e("button",{onClick:pe,class:"button button--secondary"},v(i.$t("remote.ir_code.add.start_learning")),1)])]),e("div",Ml,[e("div",Ul,[e("div",Nl,[e("span",zl,v(i.$t("remote.label.infrared_output_device")),1)]),C.emitterOptions&&C.emitterOptions.length>0?(o(),J(We,{key:0,modelValue:N.value,"onUpdate:modelValue":_[8]||(_[8]=K=>N.value=K),onSelect:Re,options:C.emitterOptions,"dynamic-width":!0,"dynamic-position":!0,light:!0},null,8,["modelValue","options"])):(o(),J(Rt,{key:1,message:i.$t("remote.no_output_device"),"width-flex":!0},null,8,["message"]))]),e("div",{class:ae(["select-extra",{"select-extra--disabled":!C.emitterOptions||C.emitterOptions.length<1}])},[e("div",ql,[e("span",Hl,v(i.$t("remote.label.infrared_output_port")),1)]),P(We,{modelValue:oe.value,"onUpdate:modelValue":_[9]||(_[9]=K=>oe.value=K),onSelect:Se,options:be.value,"dynamic-width":!0,"dynamic-position":!0,light:!0},null,8,["modelValue","options"])],2),e("div",Gl,[_e(N.value)?(o(),J(ma,{key:0,dock:_e(N.value)},null,8,["dock"])):k("",!0)]),e("div",Fl,[e("button",{onClick:$t,disabled:!R.value||R.value.length<1||!N.value||N.value.value.length<1||!oe.value||oe.value.value.length<1,class:"button button--secondary button--min-w"},v(i.$t("remote.ir_code.add.test_code")),9,Wl)])])],64)):k("",!0)]}),_:2},[h.value===r(fe).LEARN?{name:"footer",fn:X(()=>[D.value.type=="TEST"&&z.value&&(D.value.code.length>0||D.value.message.length>0)?(o(),J(Rt,{key:0,message:i.$t("remote.ir_code.add.not_support_learning"),"margin-bottom":!0},null,8,["message"])):z.value&&!je()?(o(),J(Rt,{key:1,message:i.$t("remote.ir_code.add.not_support_learning"),"margin-bottom":!0},null,8,["message"])):k("",!0),L.value?L.value?(o(),d("button",{key:3,onClick:qe,class:"button button--primary button--min-w"},v(i.$t("remote.ir_code.add.stop_learning")),1)):k("",!0):(o(),d("button",{key:2,onClick:Ke,disabled:!je(),class:"button button--primary button--min-w"},v(i.$t("remote.ir_code.add.start_learning")),9,Jl))]),key:"0"}:void 0]),1032,["show","cols","width"])]))}}),Xl={key:0,class:"import-ir-code__state"},Ql={class:"import-ir-code__intro"},Yl={class:"form-item--file"},Zl={for:"import-ir",class:"form-item--file__label"},xl={class:"form-item--file__label__main"},eo={class:"form-item--file__label__description"},to={key:0,class:"form-item--file__name"},ao={for:"import-ir",class:"button button--secondary"},lo={href:"https://support.unfoldedcircle.com/hc/en-us/article_attachments/14292536923420",target:"_blank",class:"button button--blank button--hybrid"},oo={class:"import-ir-code__setting"},io={class:"import-ir-code__setting"},so={key:1,class:"import-ir-code__state import-ir-code__state--success"},no={class:"import-ir-code__state__result"},uo={key:2,class:"import-ir-code__state import-ir-code__state--error"},ro={class:"import-ir-code__state__result"},co={key:3,class:"import-ir-code__actions"},vo=["disabled"],mo=bt({__name:"ImportIrCode",props:{irDataset:{type:Object,required:!0}},emits:["close","reloadIrDataset"],setup(C,{expose:Y,emit:se}){const p=C,F=s("UPLOAD"),{t:A}=Tt();Dt();const b=At.ir,U=s(!1),le=s(""),x=s(""),O=s(!1),Z=s(null),ne=s(),h=s(!1),c=s(""),$=s(""),L=se;Y({open:N,closeModal:oe});const j=W(()=>F.value===Fe.UPLOAD),R=W(()=>F.value===Fe.ERROR),B=W(()=>F.value===Fe.SUCCESS);function N(){F.value=Fe.UPLOAD,U.value=!0}function oe(){F.value=Fe.UPLOAD,ee(),U.value=!1,L("close")}function z(){Z.value=null,F.value=Fe.UPLOAD}function ee(){Z.value=null,le.value="",x.value="",O.value=!1,c.value="",$.value=""}function m(u){return!u.processed.toString()||!u.added.toString()||!u.updated.toString()?"":`${u.processed} records have been processed: ${u.added} have been added and ${u.updated} records have been updated.`}function g(u){const E=u.target.files;Z.value=E[0]||null}async function D(){var u;h.value=!0,ut(rt.SAVING,A("ui.uploading"));try{const f=await b.uploadCustomCodeSet(p.irDataset.id,Z.value,O.value,x.value,le.value);c.value=m(f),F.value=Fe.SUCCESS,L("reloadIrDataset")}catch(f){$.value=(u=qa(f,"remote.ir_code.import"))==null?void 0:u.message,F.value=Fe.ERROR}Ha(),h.value=!1}return(u,f)=>U.value?(o(),J(qt,{key:0,to:"body"},[P(ya,{show:U.value,onClose:f[5]||(f[5]=E=>U.value=!1),name:"import-ir-code",class:ae(["modal--import-ir-code import-ir-code",{"import-ir-code--error":R.value}]),width:"32.5rem"},pa({header:X(()=>[ce(v(u.$t("remote.ir_code.import.title"))+" ",1),e("span",{class:"icon icon-close",onClick:f[0]||(f[0]=E=>U.value=!1)})]),default:X(()=>[j.value?(o(),d("div",Xl,[e("p",Ql,v(u.$t("remote.ir_code.import.description")),1),e("div",null,[e("div",Yl,[f[6]||(f[6]=e("div",{class:"form-item--file__icon"},[e("i",{class:"fa-thin fa-table"})],-1)),e("label",Zl,[e("span",xl,v(u.$t("ui.select_file_to_upload")),1),e("span",eo,v(u.$t("remote.ir_code.import.file_size")),1)]),Z.value?(o(),d("span",to,[e("span",null,v(Z.value.name),1)])):k("",!0),e("label",ao,v(u.$t("ui.browse")),1),e("input",{type:"file",id:"import-ir",ref_key:"fileInput",ref:ne,onChange:f[1]||(f[1]=E=>g(E)),accept:".csv"},null,544)]),e("a",lo,[f[7]||(f[7]=e("i",{class:"fa-light fa-file-arrow-down"},null,-1)),ce(" "+v(u.$t("remote.ir_code.import.csv_template")),1)])]),e("div",oo,[P(nt,{modelValue:le.value,"onUpdate:modelValue":f[2]||(f[2]=E=>le.value=E),label:u.$t("remote.ir_code.import.delimiter_label"),description:u.$t("remote.ir_code.import.delimiter_info")},null,8,["modelValue","label","description"])]),e("div",io,[P(nt,{modelValue:x.value,"onUpdate:modelValue":f[3]||(f[3]=E=>x.value=E),label:u.$t("remote.ir_code.import.comment_label"),description:u.$t("remote.ir_code.import.comment_info")},null,8,["modelValue","label","description"])]),P(Yt,{modelValue:O.value,"onUpdate:modelValue":f[4]||(f[4]=E=>O.value=E),label:u.$t("remote.ir_code.import.overwrite_label"),description:u.$t("remote.ir_code.import.overwrite_description"),"full-w":!0},null,8,["modelValue","label","description"])])):B.value?(o(),d("div",so,[e("p",null,[f[8]||(f[8]=e("i",{class:"fa-light fa-circle-check"},null,-1)),e("span",null,v(u.$t("remote.ir_code.import.state.success")),1)]),e("div",no,v(c.value),1)])):R.value?(o(),d("div",uo,[e("p",null,[f[9]||(f[9]=e("i",{class:"fa-light fa-warning"},null,-1)),e("span",null,v(u.$t("remote.ir_code.import.state.error")),1)]),e("div",ro,v($.value),1)])):k("",!0),B.value||R.value?(o(),d("div",co,[B.value?(o(),d("button",{key:0,onClick:oe,class:"button button--secondary button--min-w"},v(u.$t("remote.ir_code.import.done")),1)):k("",!0),R.value?(o(),d("button",{key:1,onClick:z,class:"button button--secondary button--min-w"},v(u.$t("ui.try_again")),1)):k("",!0)])):k("",!0)]),_:2},[!B.value&&!R.value?{name:"footer",fn:X(()=>[e("button",{onClick:D,disabled:!Z.value||h.value,class:"button button--primary button--min-w"},v(u.$t("remote.ir_code.import.upload")),9,vo)]),key:"0"}:void 0]),1032,["show","class"])])):k("",!0)}}),_o={class:"ep-settings"},fo={class:"ep-settings__form panel-col panel-col--40"},po={class:"ep-settings__form__header"},go={key:0,class:"ep-settings__form__header__remote-type"},ho={class:"select-extra select-extra--output_device"},yo={class:"select-extra__text"},bo={class:"select-extra__label"},$o={class:"select-extra__text"},wo={class:"select-extra__label"},ko={key:0,class:"ep-settings__form__row"},Co={class:"ep-settings__form__meta"},So={class:"ep-settings__form__meta__label"},Io={class:"ep-settings__form__meta"},Po={class:"ep-settings__form__meta__label"},Eo={key:1,class:"ep-settings__form__row"},Ro={class:"ep-settings__form__meta"},Ao={class:"ep-settings__form__meta__label"},To={key:2,class:"ep-settings__form__row ep-settings__form__row--device-profile"},Do={class:"ep-settings__form__meta"},Vo={class:"ep-settings__form__meta__label"},Bo={class:"ep-settings__form__meta"},Oo={key:3,class:"ep-settings__form__row"},Lo={class:"ep-settings__form__meta"},Mo={class:"ep-settings__form__meta__label"},Uo={class:"ep-settings__form__meta"},No={class:"ep-settings__form__meta__label"},zo={key:4,class:"ep-settings__form__footer"},qo={key:0,class:"ep-settings__form__footer__row"},Ho={class:"ep-settings__form__meta"},Go={class:"ep-settings__form__meta__label"},Fo={class:"ep-settings__form__meta__value"},Wo={class:"ep-settings__form__footer__row"},Jo={class:"ep-settings__form__meta"},jo={class:"ep-settings__form__meta__label"},Ko={class:"ep-settings__form__meta__value"},Xo={key:0,class:"ep-settings__ir-code-data-set panel-col panel-col--60"},Qo={class:"ir-code-data-set__list__header"},Yo={class:"ir-code-data-set__list__header__top"},Zo={class:"ir-code-data-set__list__header__options"},xo={class:"ir-code-data-set__list__header__search"},ei={class:"ir-code-data-set__list__body"},ti={class:"ir-code-data-set__item"},ai={class:"ir-code-data-set__item__select"},li={key:0,class:"form-item form-item--checkbox-tick"},oi=["id","checked"],ii=["for"],si=["onClick"],ni={class:"ir-code-data-set__item__name"},ui={key:0,class:"ir-code-data-set__item__badge-custom"},ri={class:"ir-code-data-set__item__options"},di=["onClick"],ci=["onClick"],vi=["onClick","disabled"],mi=["onClick"],_i={key:0,class:"fa-light fa-trash"},fi={key:1,class:"fa-light fa-arrow-rotate-left"},pi={key:1,class:"ir-code-data-set__item__spacer"},gi=["title"],hi={key:0},yi={key:1,class:"ep-settings__no-settings panel-col panel-col--60"},bi={key:0,class:"modal-minimal__list"},$i={key:0,class:"fa-light fa-trash"},wi={key:1,class:"fa-light fa-arrow-rotate-left"},ki={class:"change-device-profile__message"},Ci=bt({__name:"EditRemoteSettings",props:{remoteId:{type:String,required:!0}},setup(C){const Y=At.ir,se=At.integrations,{t:p}=Tt();Dt();const{getFile:F}=nl(),{sleep:A}=Zt(),{isSmallScreen:b}=xt(),{updateExistingObjectKeys:U,standardizeLangTexts:le,isNonEmptyObject:x}=ea(),O=Vt(),Z=ga(),ne=Ga(),h=C,c=s(null),$=s({}),L=s(null),j=s(),R=s({label:"",value:""}),B=s({label:"",value:""}),N=s(""),oe=s([]),z=s([]),ee=s(null),m=s(!1),g=s(),D=s(),u=s(),f=s(),E=s(null),re=s(null),be=s({value:"default",label:p("remote.device_profile.default")}),_e=s(),dt=s(),Je=s(!1),$e=s(!0),ze=s(!0),de=s(null),ct=s(-1),Be=s(),je=s(),Ke=s(),qe=s();O.$onAction(({name:t,args:l,after:w})=>{t==="socketUpdate"&&w(async()=>{const{entity_id:ue,event_type:ve}=l[0];if(ue===h.remoteId){if(ve==="DELETE")ba.push({name:"entities"});else if(ue===h.remoteId&&ve==="CHANGE"&&l[0]&&l[0].new_state){const ye=U(JSON.parse(JSON.stringify(c.value)),l[0].new_state,!0);Ae(ye)}}})}),Ne(N,()=>{z.value=[],oe.value=Me()});const $t=W(()=>{if(!R.value)return[];const t=(j.value||[]).find(l=>R.value.value===l.device_id);return t?t.ports.map(l=>({label:l.name,value:l.port_id}))||[]:[]}),we=W(()=>Oe.value&&Oe.value.length>0),vt=W(()=>we.value?Oe.value.some(t=>t.active===!0):!1),Re=W(()=>{var l,w;const t=(w=(l=c.value)==null?void 0:l.options)==null?void 0:w.kind;return!t||t===Nt.IR}),Se=W(()=>{var t,l;return((l=(t=c.value)==null?void 0:t.options)==null?void 0:l.kind)===Nt.BT}),Oe=W(()=>M()),mt=W(()=>M(!0)),pe=W(()=>L.value&&L.value.type===Fa.custom),ke=W(()=>c.value&&c.value.attributes&&typeof c.value.attributes.connected<"u"&&c.value.attributes.connected),i=W(()=>!_e.value||_e.value.length<1?[]:_e.value.map(t=>({value:t.id,label:$a(t.name)}))),_=W(()=>!(c.value==null||_a(c.value)==null));function M(t=!1){if(!j.value)return[];let l=JSON.parse(JSON.stringify(j.value));return t==!0&&(l=l.filter(w=>{var ue,ve;return w.capabilities&&((ue=w.capabilities)==null?void 0:ue.learning)&&Object.keys((ve=w.capabilities)==null?void 0:ve.learning).length>0})),l.map(w=>({label:w.active?w.name:w.name+" - "+p("integration.driver.state_inactive"),value:w.device_id,active:w.active||!1}))}async function te(t=!1){var l,w;try{const ue=await O.getRemote(h.remoteId);if(!ue||!x(ue))return!1;const ve=(l=ue.options)==null?void 0:l.kind;(!ve||ve===Nt.IR)&&(L.value=await O.getRemoteIrCodes(h.remoteId),j.value=await Z.getAll()),((w=ue.options)==null?void 0:w.kind)==Nt.BT&&await Xe(),Ae(ue,t)}catch(ue){G(ue)}}async function K(){try{if(_e.value=await ne.getProfiles(),E.value&&E.value!=null&&E.value.dev_profile_id){const t=i.value.find(l=>{var w;return l.value==((w=E.value)==null?void 0:w.dev_profile_id)});t&&(be.value=t)}}catch(t){G(t)}}async function Xe(){try{E.value=await ne.getBtInfo(h.remoteId),re.value=await ne.getBtPairing(h.remoteId),await K()}catch(t){G(t)}}function Ae(t,l=!1){var gt,De,Mt;if(!t||!x(t))return!1;const w=t,ue=((gt=$.value.name)==null?void 0:gt.langCode)??fa(),ve=((De=$.value.description)==null?void 0:De.langCode)??fa();c.value=w;const ye=zt(w.name,ue,!l),ot=zt(w.description,ve,!l);if($.value={icon:w.icon||Wa(w),name:{value:ye.value,langCode:ye.lang},description:{value:ot.value,langCode:ot.lang}},typeof j.value>"u")return;const S=j.value.find(Ve=>{var Ge,it,st;return((st=(it=(Ge=w.options)==null?void 0:Ge.ir)==null?void 0:it.output)==null?void 0:st.device_id)===Ve.device_id});if(S){R.value={label:S.name,value:S.device_id};const Ve=(Mt=S.ports)==null?void 0:Mt.find(Ge=>{var it,st,Ut;return((Ut=(st=(it=w.options)==null?void 0:it.ir)==null?void 0:st.output)==null?void 0:Ut.port_id)===Ge.port_id});Ve!=null&&Ve.name&&Ve.port_id&&(B.value={label:Ve.name,value:Ve.port_id})}}function Qe(t){$.value.icon=t.value,!(!c.value||c.value==null)&&he()}function Ye(t){!c.value||c.value==null||he()}function ie(t){!c.value||c.value==null||he()}function Ze(t){R.value=t;const l=(j.value||[]).find(w=>t.value===w.device_id);if(l&&l.ports&&l.ports.length>0){const w=l.ports[l.ports.length-1];B.value={label:w.name,value:w.port_id}}he()}function _t(t){B.value=t,he()}function Le(){if(!c.value)return!1;const t=le({...c.value.name||{},[$.value.name.langCode]:$.value.name.value},$.value.name.langCode),l=le({...c.value.description||{},[$.value.description.langCode]:$.value.description.value},$.value.description.langCode),w={name:t,icon:$.value.icon,description:l,options:{}};return R.value&&R.value.value&&R.value.value.length>0&&B.value&&B.value.value&&B.value.value.length>0&&(w.options.ir={output:{device_id:R.value.value,port_id:B.value.value}}),c.value&&Se.value&&be.value&&(w.options.bt={dev_profile_id:be.value.value}),w}async function he(){if(!c.value)return;const t=Le();if(t)try{const l=await O.update(c.value.entity_id,t);Ae(l)}catch(l){G(l)}}function xe(t){$.value.name.langCode=t,c.value&&($.value.name.value=zt(c.value.name,t,!0).value)}function et(t){$.value.description.langCode=t,c.value&&($.value.description.value=zt(c.value.description,t,!0).value)}function Me(){const t=N.value.toLowerCase();return L.value?(L.value.codes||[]).filter(l=>l.cmd_id.toLowerCase().includes(t)):[]}async function wt(){if(!c.value)return;const t=_a(c.value);if(t!=null)try{await se.executeEntityCommand(c.value.entity_id,t)}catch(l){G(l,null,Ke.value)}}async function Bt(){if(L.value&&L.value.id)try{const t=await Y.downloadCustomCodeSet(L.value.id);if(t&&t.data&&t.headers){const l=t.headers["content-disposition"].split("filename=")[1].split(";")[0].replaceAll('"',"")||"codesets.csv";F(t.data,"text/csv",l)}}catch(t){G(t)}}async function kt(t){b&&lt();try{await Y.sendTestCodeToRemote(h.remoteId,t.cmd_id)}catch(l){G(l)}}function Ct(t){b&&lt(),ee.value=t,u.value.open()}async function tt(t=[]){let l=[];if(t.length>0)l=t;else if(ee.value!=null)l.push(ee.value);else return;try{for(let w of l)await O.removeCustomCodeFromSet(h.remoteId,w.cmd_id);await te(),oe.value=Me(),ee.value=null,t.length>0&&(z.value=[])}catch(w){G(w,null,qe.value)}}function St(){tt(z.value)}function Ie(t){return z.value.findIndex(l=>t.cmd_id===l.cmd_id)>-1}function Ot(t){const l=z.value.findIndex(w=>t.cmd_id===w.cmd_id);l>-1?z.value.splice(l,1):z.value.push(t)}function It(t){be.value=t,$e.value=!0,ze.value=!0,Je.value=!0}function He(){Ft(),Je.value=!1}function Ft(){c.value&&Se.value&&K()}async function Wt(){try{const t=await O.allButtonsReset(h.remoteId);Ae(t)}catch(t){G(t)}}async function Jt(){try{const t=await O.allUiReset(h.remoteId);Ae(t)}catch(t){G(t)}}async function jt(){try{await he(),$e.value&&await Wt(),ze.value&&await Jt()}catch(t){G(t)}Be.value.triggerClose()}function Kt(){je.value.startPairing(c.value)}function Xt(){pt()}function ft(){Xe()}async function at(){try{h.remoteId&&(ut(rt.SAVING),await ne.removeBtPairing(h.remoteId),await A(2e3),re.value=await ne.getBtPairing(h.remoteId),ut(rt.SUCCESS))}catch(t){G(t,null,Ke.value)}}async function pt(t=!1){await te(t),oe.value=Me()}async function Lt(t,l){de.value=t,ct.value=l}function lt(){de.value=null,ct.value=-1}async function Te(t){lt(),await A(100),g.value.open(t,!0)}return Gt(async()=>{try{m.value=!0,await pt(!0)}catch(t){G(t)}m.value=!1}),(t,l)=>{var ue,ve,ye,ot;const w=Ba("overflow-indicator");return o(),d("div",_o,[me((o(),d("div",fo,[e("div",{class:"ep-settings__form__wrapper",ref_key:"formWrapper",ref:Ke},[e("div",po,[(o(),J(Ja,{key:$.value&&$.value.icon?$.value.icon:"fa-light fa-clapperboard",value:$.value&&$.value.icon?$.value.icon:"fa-light fa-clapperboard",fallback:"fa-light fa-clapperboard","change-callback":Qe},null,8,["value"])),c.value&&c.value.options&&(Re.value||Se.value)?(o(),d("div",go,[Re.value?(o(),d(H,{key:0},[l[16]||(l[16]=e("i",{class:"fa-light fa-keyboard-brightness"},null,-1)),e("span",null,v(t.$t("remote.infrared")),1)],64)):Se.value?(o(),d(H,{key:1},[l[17]||(l[17]=e("i",{class:"fa-light fa-bluetooth"},null,-1)),l[18]||(l[18]=e("span",null,"Bluetooth",-1))],64)):k("",!0)])):k("",!0)]),$.value.name?(o(),J(nt,{key:0,modelValue:$.value.name,"onUpdate:modelValue":l[0]||(l[0]=S=>$.value.name=S),onSubmit:Ye,onChangeLang:xe,translations:(ue=c.value)==null?void 0:ue.name,"has-lang":!0,"full-w":!0,label:t.$t("form.name")},null,8,["modelValue","translations","label"])):k("",!0),$.value.description?(o(),J(nt,{key:1,modelValue:$.value.description,"onUpdate:modelValue":l[1]||(l[1]=S=>$.value.description=S),onSubmit:ie,onChangeLang:et,translations:(ve=c.value)==null?void 0:ve.description,type:"textarea","has-lang":!0,"full-w":!0,label:t.$t("form.description")},null,8,["modelValue","translations","label"])):k("",!0),c.value&&c.value.options&&Re.value?(o(),d(H,{key:2},[e("div",ho,[e("div",yo,[e("span",bo,v(t.$t("remote.label.infrared_output_device")),1)]),we.value?(o(),J(We,{key:0,modelValue:R.value,"onUpdate:modelValue":l[2]||(l[2]=S=>R.value=S),onSelect:Ze,options:Oe.value,"dynamic-width":!0,"dynamic-position":!0,light:!0},null,8,["modelValue","options"])):(o(),J(Rt,{key:1,message:t.$t("remote.no_output_device"),"width-flex":!0},null,8,["message"]))]),e("div",{class:ae(["select-extra select-extra--output_port",{"select-extra--disabled":!we.value}])},[e("div",$o,[e("span",wo,v(t.$t("remote.label.infrared_output_port")),1)]),P(We,{modelValue:B.value,"onUpdate:modelValue":l[3]||(l[3]=S=>B.value=S),onSelect:_t,options:$t.value,"dynamic-width":!0,"dynamic-position":!0,light:!0},null,8,["modelValue","options"])],2)],64)):c.value&&c.value.options&&Se.value?(o(),d(H,{key:3},[E.value&&E.value.profile?(o(),d("div",ko,[e("div",Co,[e("span",So,v(t.$t("remote.bluetooth.connection_number")),1)]),e("div",Io,[e("span",Po,v(E.value.profile),1)])])):k("",!0),E.value?(o(),d("div",Eo,[e("div",Ro,[e("span",Ao,[ke.value?(o(),d(H,{key:0},[ce(v(t.$t("remote.bluetooth.connection.connected")),1)],64)):(o(),d(H,{key:1},[ce(v(t.$t("remote.bluetooth.connection.disconnected")),1)],64))])]),e("div",{class:ae(["ep-settings__form__meta ep-settings__form__meta--item-status ep-settings__form__meta--item-status--simple",`ep-settings__form__meta--${ke.value?"green":"red"}`])},[e("i",{class:ae(["fa-light",ke.value?"fa-circle-check":"fa-circle-xmark"])},null,2)],2)])):k("",!0),E.value&&i.value&&i.value.length>0?(o(),d("div",To,[e("div",Do,[e("span",Vo,v(t.$t("remote.bluetooth.device_profile")),1)]),e("div",Bo,[P(We,{modelValue:be.value,"onUpdate:modelValue":l[4]||(l[4]=S=>be.value=S),onSelect:It,options:i.value,"dynamic-width":!0,"dynamic-position":!0,light:!0},null,8,["modelValue","options"])])])):k("",!0),re.value?(o(),d("div",Oo,[e("div",Lo,[e("span",Mo,[re.value&&re.value.paired?(o(),d(H,{key:0},[ce(v(t.$t("remote.bluetooth.pair_state.paired")),1)],64)):(o(),d(H,{key:1},[ce(v(t.$t("remote.bluetooth.pair_state.unpaired")),1)],64))])]),e("div",Uo,[e("div",No,[re.value&&re.value.paired?(o(),d(H,{key:0},[re.value&&re.value.peer&&re.value.peer.address?(o(),d(H,{key:0},[ce(v(re.value.peer.address),1)],64)):k("",!0),e("button",{onClick:l[5]||(l[5]=S=>dt.value.open()),class:"button button--secondary button--icon button--icon--small button-unpair"},l[19]||(l[19]=[e("i",{class:"fa-regular fa-close"},null,-1)]))],64)):(o(),d("button",{key:1,onClick:Kt,class:"button button--secondary button--min-w"},v(t.$t("remote.bluetooth.pair")),1))])])])):k("",!0)],64)):k("",!0),c.value?(o(),d("div",zo,[c.value.options&&Re.value?(o(),d("div",qo,[e("div",Ho,[c.value.attributes&&((ye=c.value.attributes)!=null&&ye.state)?(o(),d(H,{key:0},[e("span",Go,v(t.$t("entity.label.state")),1),e("span",Fo,v(t.$t(`entity.state.${(ot=c.value.attributes)==null?void 0:ot.state.toLowerCase()}`)),1)],64)):k("",!0)]),_.value?(o(),d("button",{key:0,onClick:wt,class:"button button--secondary button-toggle"},v(r(ja)(c.value)),1)):k("",!0)])):k("",!0),e("div",Wo,[e("div",Jo,[e("span",jo,v(t.$t("entity.label.id")),1),e("span",Ko,v(c.value.entity_id),1)])])])):k("",!0)],512)])),[[w]]),c.value&&c.value.options&&Re.value?(o(),d("div",Xo,[e("div",{class:"ep-settings__ir-code-data-set__wrapper",ref_key:"dataSetWrapper",ref:qe},[e("div",Qo,[e("div",Yo,[e("span",null,v(t.$t("remote.ir_code.title")),1),e("div",Zo,[e("button",{onClick:l[6]||(l[6]=S=>g.value.open()),class:"button button--secondary button--icon"},l[20]||(l[20]=[e("i",{class:"fa-light fa-plus"},null,-1)])),pe.value?(o(),d("button",{key:0,onClick:l[7]||(l[7]=S=>D.value.open()),class:"button button--secondary button--icon"},l[21]||(l[21]=[e("i",{class:"fa-light fa-upload"},null,-1)]))):k("",!0),pe.value?(o(),d("button",{key:1,onClick:Bt,class:"button button--secondary button--icon"},l[22]||(l[22]=[e("i",{class:"fa-light fa-download"},null,-1)]))):k("",!0),P(Ee,{name:"opacity-fast"},{default:X(()=>[me(e("button",{onClick:l[8]||(l[8]=S=>f.value.open()),class:"button button--secondary button--icon"},l[23]||(l[23]=[e("i",{class:"fa-light fa-trash"},null,-1)]),512),[[ge,z.value.length>0]])]),_:1})])]),e("div",xo,[P(Ka,{modelValue:N.value,"onUpdate:modelValue":l[9]||(l[9]=S=>N.value=S),small:!0},null,8,["modelValue"])])]),me((o(),d("div",ei,[(o(!0),d(H,null,ht(oe.value,(S,gt)=>(o(),d("div",ti,[e("div",ai,[S.custom||pe.value?(o(),d("div",li,[e("input",{id:`${S.cmd_id}-checkbox-tick`,type:"checkbox",checked:Ie(S)},null,8,oi),e("label",{class:"toggle",for:`${S.cmd_id}-checkbox-tick`},null,8,ii),e("button",{onClick:De=>Ot(S),class:"button--toggle-tick"},null,8,si)])):k("",!0)]),e("span",ni,[ce(v(S.cmd_id)+" ",1),S.custom?(o(),d("span",ui,v(t.$t("ui.custom")),1)):k("",!0)]),e("div",ri,[r(b)?(o(),d("span",{key:0,onClick:De=>Lt(S,gt),class:"entity-item__quick-options"},l[24]||(l[24]=[e("i",{class:"fa-regular fa-ellipsis-vertical"},null,-1)]),8,di)):(o(),d(H,{key:1},[e("button",{onClick:De=>g.value.open(S,!0),class:"button button--blank button--icon"},l[25]||(l[25]=[e("i",{class:"fa-light fa-edit"},null,-1)]),8,ci),e("button",{onClick:De=>kt(S),disabled:!we.value||!vt.value,class:"button button--blank button--blank--focus button--icon"},l[26]||(l[26]=[e("i",{class:"fa-light fa-play"},null,-1)]),8,vi),pe.value||S.custom||S.modified?(o(),d("button",{key:0,onClick:De=>Ct(S),class:"button button--blank button--icon"},[pe.value||S.custom?(o(),d("i",_i)):(o(),d("i",fi))],8,mi)):(o(),d("span",pi))],64))]),e("span",{class:"ir-code-data-set__item__indicator",title:t.$t("ui.modified")},[S.modified?(o(),d("span",hi)):k("",!0)],8,gi)]))),256))])),[[w]])],512)])):(o(),d("div",yi,[e("p",null,v(t.$t("entity.no_other_settings")),1)])),c.value&&c.value.options&&Re.value?(o(),d(H,{key:2},[P(Kl,{ref_key:"addCode",ref:g,onClose:Xt,"remote-id":C.remoteId,"ir-dataset":L.value||{},"ir-emitters":j.value||[],"emitter-options":Oe.value||[],"learn-emitter-options":mt.value||[]},null,8,["remote-id","ir-dataset","ir-emitters","emitter-options","learn-emitter-options"]),P(mo,{ref_key:"importCode",ref:D,"ir-dataset":L.value||{},onReloadIrDataset:pt},null,8,["ir-dataset"]),P(yt,{ref_key:"dialogReset",ref:u,onSubmit:tt,title:ee.value&&(pe.value||ee.value.custom)?t.$t("remote.ir_code.delete.title"):t.$t("remote.ir_code.reset.title"),text:ee.value&&(pe.value||ee.value.custom)?t.$t("remote.ir_code.delete.question"):t.$t("remote.ir_code.reset.question"),"submit-text":ee.value&&(pe.value||ee.value.custom)?t.$t("ui.delete"):t.$t("ui.reset"),"cancel-text":t.$t("ui.cancel")},null,8,["title","text","submit-text","cancel-text"]),P(yt,{ref_key:"dialogDeleteAssigned",ref:f,onSubmit:St,title:z.value.length>1?t.$t("remote.ir_code.delete_codes.title"):t.$t("remote.ir_code.delete.title"),text:z.value.length>1?t.$t("remote.ir_code.delete_codes.question"):t.$t("remote.ir_code.delete.question"),"submit-text":t.$t("ui.delete"),"cancel-text":t.$t("ui.cancel")},null,8,["title","text","submit-text","cancel-text"]),(o(),J(qt,{to:"body"},[P(Xa,{onClose:lt,show:de.value!=null,name:"modal-ir-code-options",class:"modal-minimal--item-options"},{default:X(()=>[de.value!=null?(o(),d("div",bi,[e("button",{onClick:l[10]||(l[10]=S=>Te(de.value))},[l[27]||(l[27]=e("i",{class:"fa-light fa-pencil"},null,-1)),e("span",null,v(t.$t("ui.edit")),1)]),we.value&&vt.value?(o(),d("button",{key:0,onClick:l[11]||(l[11]=S=>kt(de.value))},[l[28]||(l[28]=e("i",{class:"fa-light fa-play"},null,-1)),e("span",null,v(t.$t("ui.send")),1)])):k("",!0),pe.value||de.value.custom||de.value.modified?(o(),d("button",{key:1,onClick:l[12]||(l[12]=S=>Ct(de.value))},[pe.value||de.value.custom?(o(),d("i",$i)):(o(),d("i",wi)),e("span",null,[pe.value||de.value.custom?(o(),d(H,{key:0},[ce(v(t.$t("ui.delete")),1)],64)):(o(),d(H,{key:1},[ce(v(t.$t("ui.reset")),1)],64))])])):k("",!0)])):k("",!0)]),_:1},8,["show"])]))],64)):k("",!0),c.value&&c.value.options&&Se.value?(o(),d(H,{key:3},[(o(),J(qt,{to:"body"},[P(Qa,{ref_key:"modalDeviceProfile",ref:Be,onClose:He,show:Je.value,width:"28.75rem",name:"modal-change-device-profile",class:"change-device-profile"},{header:X(()=>[ce(v(t.$t("remote.change_device_profile.title")),1)]),footer:X(()=>[e("button",{onClick:jt,class:"button button--secondary"},v(t.$t("ui.confirm")),1),e("button",{onClick:l[15]||(l[15]=S=>Be.value.triggerClose()),class:"button button--tertiary"},v(t.$t("ui.cancel")),1)]),default:X(()=>[e("p",ki,v(t.$t("remote.change_device_profile.message")),1),P(Yt,{modelValue:$e.value,"onUpdate:modelValue":l[13]||(l[13]=S=>$e.value=S),label:t.$t("remote.change_device_profile.reset_button_mapping"),"full-w":!0},null,8,["modelValue","label"]),P(Yt,{modelValue:ze.value,"onUpdate:modelValue":l[14]||(l[14]=S=>ze.value=S),label:t.$t("remote.change_device_profile.reset_ui_configuration"),"full-w":!0},null,8,["modelValue","label"])]),_:1},8,["show"])])),P(yt,{ref_key:"dialogBtUnpair",ref:dt,onSubmit:at,title:t.$t("remote.bluetooth.forget_device.title"),text:t.$t("remote.bluetooth.forget_device.question"),"text-center":!0,icon:"fa-thin fa-trash-check","icon-type":"red","submit-text":t.$t("ui.confirm"),"cancel-text":t.$t("ui.cancel")},null,8,["title","text","submit-text","cancel-text"]),P(Ya,{ref_key:"elAddRemoteBt",ref:je,onClose:ft,"only-pairing":!0},null,512)],64)):k("",!0)])}}});function Si(C,Y){let se=!1;for(const p of C){const F=Y-p.size.height;if(p.type==="media_player"&&F>0){p.size.height=p.size.height+F;let A=!1;for(const b of C)if(p!==b&&p.location.x<b.location.x+b.size.width&&b.location.x<p.location.x+p.size.width&&p.location.y<b.location.y+b.size.height&&b.location.y<p.location.y+p.size.height){A=!0;break}if(A)for(const b of C)p!==b&&b.location.y>=p.location.y&&(b.location.y=b.location.y+F);se=!0}}return se}function Ii(C,Y){let se=!1;for(const p of C){const F=Y-p.size.width;if(p.type==="media_player"&&F>0){p.size.width=Y;let A=!1;for(const b of C)if(p!==b&&p.location.x<b.location.x+b.size.width&&b.location.x<p.location.x+p.size.width&&p.location.y<b.location.y+b.size.height&&b.location.y<p.location.y+p.size.height){A=!0;break}if(A)for(const b of C)p!==b&&b.location.x>=p.location.x&&(b.location.x=b.location.x+F);se=!0}else p.type==="media_player"&&F!==0&&(p.size.width=Y,se=!0)}return se}const Pi=["title"],Ei={class:"remote-controller__tools"},Ri=["title"],Ai=["title"],Ti=["title"],Di=["title"],Vi=["title"],Bi={class:"ui-page__head"},Oi={class:"ui-page__name"},Li={class:"ui-page__background"},Mi={class:"ui-page__background__row"},Ui=["onClick"],Ni=["onClick"],zi={class:"form-item form-item--checkbox-tick"},qi=["id","checked"],Hi=["for"],Gi={key:2,class:"ui-page__item__drag"},Fi={class:"ui-page__empty-list"},Wi=["onClick"],Ji={class:"remote-controller__display__no-pages"},ji={class:"remote-controller__display__saving"},Ki=bt({__name:"DeviceRemote",props:{remote:{type:Object,required:!0},editButtonMapping:{type:Boolean,default:!1},highlightedRemoteButton:{type:Object,default:{}}},emits:["addPage","showPageList","update"],setup(C,{expose:Y,emit:se}){const{t:p}=Tt();Dt();const{sleep:F}=Zt(),{isSmallScreen:A,isMobileScreen:b}=xt(),{getDeviceColor:U,getRemotControllerClasses:le}=tl(),{isNonEmptyObject:x}=ea(),O=C,Z={label:p("ui.move"),value:"move"},ne=[{label:p("ui.move"),value:"move"},{label:p("ui.edit"),value:"edit"},{label:p("ui.select"),value:"select"}],h=Za(),c=xa(),$=el(),L=Vt(),j=s(Z),R=s(null),B=s(""),N=s(),oe=s(Lt()),{registerDragArea:z,registerGridItem:ee,pages:m,activePage:g,layouts:D,selectedItems:u,editButton:f,editButtonCoord:E,editPopup:re,newItemLocation:be,mediaPlayerMinHeight:_e,setMediaPlayerMinHeight:dt,startButtonEdit:Je,closeButtonEdit:$e,toggleItemSelect:ze,itemSelected:de,movedGridItem:ct,resizedGridItem:Be,addGridItem:je,testWidgetPlacing:Ke,updateGridItem:qe,deleteGridItem:$t,deleteGridItems:we,pasteGridItems:vt,collectGridItems:Re,buildLayout:Se,getEmptyCells:Oe,isActivePageFull:mt,preventCollision:pe,isGridItemDragging:ke,onGridMove:i,onGridNativeMove:_,getButtonSize:M,getEmptyItemStyle:te,resetNewItemMeta:K,isAddWidgetProgress:Xe}=rl(p,ue,ye,lt),Ae=s([]),Qe=s(1),Ye=s([]),ie=s({width:0,height:0,widgetMeta:{mediaPlayerMinHeight:_e}}),Ze=s([]),_t=s(1),Le=s({label:"",value:""}),he=s(!1),xe=s("d"),et=s(!1),Me=s(!1),wt=s(!1),Bt=s(),kt=s(),Ct=s(),tt=s(!0),St=s(!1),Ie=s(!1),Ot=s($.$state.list.screenLayout.grid.max.height||12),It=s();Y({setActivePageById:pt,isItemDragging:Da,isSaving:Va});const He=se;Ne(()=>O.remote,()=>{wt.value||Te(O.remote)}),Ne(f,async(a,n)=>{if(!n||!f.value||!E.value)return;const I=E.value.page,V=E.value.index;m.value[I].items[V]=f.value,await ye(I)},{deep:!0}),Ne(m,()=>{t(),m.value[g.value]&&(Le.value={label:m.value[g.value].name??"",value:m.value[g.value].page_id??""})}),Ne(g,(a,n)=>{a!=n&&(u.value=[]),m.value[g.value]&&(Le.value={label:m.value[g.value].name??"",value:m.value[g.value].page_id??""})});const Ft=W(()=>{var V,T,y,q;const a=(T=(V=m.value[g.value])==null?void 0:V.grid)==null?void 0:T.width;if(!a)return!1;const n=Math.ceil(_e.value/(ie.value.height/((q=(y=m.value[g.value])==null?void 0:y.grid)==null?void 0:q.height)));return Ke({size:{width:a,height:n},location:{x:1,y:1},type:"media_player"})}),Wt=W(()=>{var n,I;const a=[];for(let V=0;V<m.value.length;V++){const T=Array.from({length:(I=(n=m.value[V])==null?void 0:n.grid)==null?void 0:I.height},(y,q)=>q);a.push(T)}return a}),Jt=W(()=>{var n,I;const a=[];for(let V=0;V<m.value.length;V++){const T=Array.from({length:(I=(n=m.value[V])==null?void 0:n.grid)==null?void 0:I.width},(y,q)=>q);a.push(T)}return a}),jt=W(()=>{let a="";return a+=Me.value?"ui-page__content--selectable ":"",a});async function Kt(){let a="",n=null;try{a=await $.getDeviceModel()}catch(I){G(I)}try{n=await c.getSystemInfo()}catch(I){console.error(I)}(a==null?void 0:a.toLowerCase())=="ucr2"?(he.value=!0,ie.value.width=b.value?217:279,ie.value.height=b.value?349:454):(he.value=!1,ie.value.width=b.value?228:292,ie.value.height=b.value?329:429,n!=null&&n.serial_number&&(xe.value=U(n.serial_number))),ie.value.widgetMeta.mediaPlayerMinHeight=ie.value.height/4,dt(ie.value.widgetMeta.mediaPlayerMinHeight)}const Xt=W(()=>p("user_interface.pages.reset_page.question",{name:g.value!=null&&m.value[g.value]?m.value[g.value].name:""})),ft=W(()=>m.value.map(a=>({label:a.name,value:a.page_id}))),at=W(()=>{let a="";return A.value?a+="button--secondary button--icon":a+="button--tertiary button--hybrid",a});function pt(a){const n=m.value.findIndex(I=>I.page_id===a);n>-1&&(g.value=n)}function Lt(){var a,n;return{name:$a((a=R.value)==null?void 0:a.name),icon:((n=R.value)==null?void 0:n.icon)||"uc:remote"}}async function lt(){var a,n,I;D.value=(((I=(n=(a=R.value)==null?void 0:a.options)==null?void 0:n.user_interface)==null?void 0:I.pages)||[]).map(V=>Se(V.items))}function Te(a){var n,I,V,T,y;if(!a||!x(a))return!1;if(R.value=JSON.parse(JSON.stringify(a)),oe.value=Lt(),m.value=((V=(I=(n=R.value)==null?void 0:n.options)==null?void 0:I.user_interface)==null?void 0:V.pages)||[],lt(),B.value=((T=R.value)==null?void 0:T.icon)||"",Ae.value=((y=$.$state.list.buttonLayout[0])==null?void 0:y.buttons)||[],Qe.value=Qe.value*-1,t(),l(),w(),Xe()==!0){const q=m.value[g.value].items.length-1;N.value.update(m.value[g.value].items[q])}}function t(){for(const a of m.value)a.name||(a.name="New page")}function l(){const a=[];for(let n=0;n<m.value.length;n++){let I=1,V=1;const T=m.value[n].items;for(let y=0;y<T.length;y++){const q=T[y].location.y+(T[y].size&&T[y].size.height?T[y].size.height:1);if(q>V&&(V=q),T[y].type!="media_player"){const Ce=T[y].location.x+(T[y].size&&T[y].size.width?T[y].size.width:1);Ce>I&&(I=Ce)}}a.push({width:I,height:V})}Ze.value=a}function w(){Ye.value=Oe()}async function ue(){if(!R.value)return;const a=m.value.map(V=>V.page_id),n={name:"new page",items:[]};Ie.value=!0;try{const V=await L.addUiPage(R.value,n);Te(V),He("update")}catch(V){Te(O.remote),G(V)}const I=m.value.findIndex(V=>!a.includes(V.page_id));g.value=Math.max(I,0),_t.value++,Ie.value=!1}const ve={};async function ye(a,n=!1){if(Ie.value=!0,!ve[a]){ve[a]=!0,D.value[a]=Se(m.value[a].items);try{const I=await L.updateUiPage(O.remote.entity_id,m.value[a]);n||Te(I),He("update")}catch(I){N.value.isActive()?N.value.closeModal():$e(),Te(O.remote),G(I,"user_interface.pages.update",It.value)}ve[a]=!1,await F(500),Ie.value=!1}}function ot(a){const{page:n,index:I}=E.value;return fl(m.value[n].items,I,a)}function S(a){return ie.value.height/a}async function gt(){wt.value=!0;try{await we(u.value),Ge(),He("update")}catch(a){Te(O.remote),G(a)}wt.value=!1}async function De(){const a=h.$state.clipboard.remote.pageItems||[];if(!a)return;const n=(a??[]).map(q=>{var Ce;return(Ce=q.command)==null?void 0:Ce.cmd_id}).filter(q=>!!q),I=[...new Set(n)],V=(O.remote.options.simple_commands??[]).map(q=>q),T=I.filter(q=>!V.includes(q))||[],y=a.filter(q=>{var Pt;const Ce=(Pt=q.command)==null?void 0:Pt.cmd_id;return Ce&&!T.includes(Ce)});if(y.length>0)try{await vt(y),h.setClipboard([],"remote","pageItems"),a.length>y.length&&G(p("customise_remote.pages.paste.errors.not_fully_completed"))}catch(q){q&&q.message&&typeof q.message=="string"?G(q.message):G(q)}else G(p("customise_remote.pages.paste.errors.no_available_command"));Ge()}function Mt(){if(!f.value)return!1;const a=new Array(f.value);h.setClipboard(a,"remote","pageItems")}function Ve(){const a=Re(u.value);h.setClipboard(a,"remote","pageItems"),Ge()}function Ge(){u.value=[]}function it(){Bt.value.open()}function st(){kt.value.open()}function Ut(){Ct.value.open()}async function ka(){if(g.value==null)return!1;const a=m.value[g.value];if(!a)return!1;ut(rt.SAVING),await F(1e3),Ie.value=!0;try{await L.updateUiPage(O.remote.entity_id,{...a,items:[]}),await L.getRemote(O.remote.entity_id),ut(rt.SUCCESS),He("update")}catch(n){Te(O.remote),G(n,"user_interface.pages.update",It.value)}Ie.value=!1}async function Ca(a){St.value=!0;let n=m.value[g.value].grid.width,I=m.value[g.value].grid.height;a.width<n&&await ta(a.width),m.value[g.value].grid.width=a.width,m.value[g.value].grid.height=a.height,await ye(g.value),a.width>n&&await ta(a.width),a.height>I&&await Sa(a.height),St.value=!1}async function ta(a){const n=m.value[g.value].items;Ii(n,a)&&await ye(g.value)}async function Sa(a){const n=m.value[g.value].items,I=Math.ceil(_e.value/(ie.value.height/a));Si(n,I)&&await ye(g.value)}function Ia(){N.value.open()}async function Pa(a,n){be.value={x:a,y:n},h.$state.clipboard.remote.pageItems.length>0?await De():N.value.open()}function Ea(){He("addPage")}async function Ra(a){try{await je(a,ie.value.height)}catch(n){N.value.closeModal(),n&&n.message&&typeof n.message=="string"?G(n.message):G(n)}}function Aa(){He("showPageList")}function Ta(a){j.value=a,et.value=!1,Me.value=!1,a.value=="edit"?et.value=!0:a.value=="select"&&(Me.value=!0),a.value!="select"&&(u.value=[])}function aa(a="icon",n,I=!1){var V,T,y,q;return I&&a==="media_player"?Math.ceil(_e.value/(ie.value.height/((T=(V=m.value[n])==null?void 0:V.grid)==null?void 0:T.height)))||3:a==="media_player"?((q=(y=m.value[n])==null?void 0:y.grid)==null?void 0:q.width)||4:1}function Da(){return ke.value}function Va(){return Ie.value}return Gt(async()=>{tt.value=!0;try{await Kt(),Te(O.remote)}catch(a){G(a)}tt.value=!1}),(a,n)=>{const I=ca("grid-item"),V=ca("grid-layout");return o(),d(H,null,[e("div",{class:ae(["remote-controller remote-controller--device",tt.value?"":r(le)(he.value,xe.value)])},[e("div",{class:ae(["remote-controller__page-triggers",{"remote-controller__page-triggers--no-pages":ft.value.length<1}])},[ft.value&&ft.value.length>0?(o(),J(We,{key:0,modelValue:Le.value,"onUpdate:modelValue":n[0]||(n[0]=T=>Le.value=T),onSelect:n[1]||(n[1]=T=>{pt(T.value)}),options:ft.value,light:!0},null,8,["modelValue","options"])):k("",!0),e("button",{onClick:Aa,title:a.$t("ui.edit"),class:"button button--secondary button--icon"},n[6]||(n[6]=[e("i",{class:"fa-light fa-edit"},null,-1)]),8,Pi)],2),P(Ee,{name:"opacity"},{default:X(()=>[me(e("div",Ei,[me(e("button",{onClick:Ia,title:a.$t("ui.add"),class:ae(["button",at.value])},[n[7]||(n[7]=e("i",{class:"fa-light fa-plus"},null,-1)),e("span",null,v(a.$t("ui.add")),1)],10,Ri),[[ge,r(m).length>0&&r(mt)()==!1]]),r(m)[r(g)]?(o(),J(dl,{key:0,"actual-dimensions":{width:r(m)[r(g)].grid.width,height:r(m)[r(g)].grid.height},"min-dimensions":Ze.value[r(g)]||{width:1,height:1},onSave:Ca},null,8,["actual-dimensions","min-dimensions"])):k("",!0),e("button",{onClick:Ut,title:a.$t("ui.reset"),class:ae(["button button-reset",at.value])},[n[8]||(n[8]=e("i",{class:"fa-light fa-arrow-rotate-left"},null,-1)),e("span",null,v(a.$t("ui.reset")),1)],10,Ai),me(e("button",{onClick:De,title:a.$t("ui.paste"),class:ae(["button",at.value])},[n[9]||(n[9]=e("i",{class:"fa-light fa-paste"},null,-1)),e("span",null,v(a.$t("ui.paste")),1)],10,Ti),[[ge,r(h).$state.clipboard.remote.pageItems.length>0]]),me(e("button",{onClick:Ve,title:a.$t("ui.copy"),class:ae(["button",at.value])},[n[10]||(n[10]=e("i",{class:"fa-light fa-copy"},null,-1)),e("span",null,v(a.$t("ui.copy")),1)],10,Di),[[ge,r(u).length>0]]),me(e("button",{onClick:st,title:a.$t("ui.delete"),class:ae(["button",at.value])},[n[11]||(n[11]=e("i",{class:"fa-light fa-trash"},null,-1)),e("span",null,v(a.$t("ui.delete")),1)],10,Vi),[[ge,r(u).length>0]])],512),[[ge,C.editButtonMapping==!1&&r(m).length>0]])]),_:1}),P(Ee,{name:"opacity"},{default:X(()=>[me(P(wa,{onItemClick:Ta,"list-data":ne,"active-tab":j.value,responsive:!1,compact:!0},null,8,["active-tab"]),[[ge,C.editButtonMapping==!1&&r(m).length>0]])]),_:1}),e("div",{ref_key:"elRemoteControllerDevice",ref:It,class:ae(["remote-controller__device",{"remote-controller__device--button-mapping":C.editButtonMapping}])},[e("div",{class:ae(["remote-controller__display",{"remote-controller__display--single-page":r(m).length<1,"remote-controller__display--disabled":C.editButtonMapping}])},[P(r(al),{modelValue:r(g),"onUpdate:modelValue":n[4]||(n[4]=T=>Oa(g)?g.value=T:null),"items-to-show":1,"items-to-scroll":1,"wrap-around":!1,"mouse-drag":!1,"touch-drag":!1,"snap-align":"start",class:"remote-controller__carousel"},{addons:X(()=>[P(r(ol))]),default:X(()=>[(o(!0),d(H,null,ht(r(m),(T,y)=>(o(),J(r(ll),{key:y,class:ae(["ui-page",{"ui-page--v2":he.value}])},{default:X(()=>{var q,Ce,Pt,la,oa,ia,sa,na,ua,ra;return[e("div",Bi,[e("span",Oi,v(T.name),1)]),e("div",{class:ae(["ui-page__content",jt.value])},[e("div",Li,[(o(!0),d(H,null,ht(Wt.value[y],Q=>(o(),d("div",Mi,[(o(!0),d(H,null,ht(Jt.value[y],Pe=>(o(),d("span",{key:Q+Pe,class:"ui-page__background__item"}))),128))]))),256))]),e("div",{class:ae(["ui-page__drag-area",r(M)((Ce=(q=r(m)[y])==null?void 0:q.grid)==null?void 0:Ce.width,(la=(Pt=r(m)[y])==null?void 0:Pt.grid)==null?void 0:la.height)])},[Array.isArray(r(D)[y])&&ie.value.width>0?(o(),J(V,{key:0,layout:r(D)[y],"onUpdate:layout":Q=>r(D)[y]=Q,"col-num":(ia=(oa=r(m)[y])==null?void 0:oa.grid)==null?void 0:ia.width,"row-height":S((na=(sa=r(m)[y])==null?void 0:sa.grid)==null?void 0:na.height),"max-rows":(ra=(ua=r(m)[y])==null?void 0:ua.grid)==null?void 0:ra.height,margin:[0,0],"is-draggable":!et.value,"is-resizable":!0,"is-mirrored":!1,"is-bounded":!0,responsive:!1,"auto-size":!1,"vertical-compact":!1,"use-css-transforms":!0,"prevent-collision":r(pe),ref_for:!0,ref:Q=>{Q&&r(z)(T.page_id,Q)}},{default:X(()=>[(o(!0),d(H,null,ht(r(D)[y],(Q,Pe)=>{var Qt,da;return o(),J(I,{x:Q.x,y:Q.y,w:Q.w,h:Q.h,i:Q.i,key:Q.i,minW:aa((Qt=Q.item)==null?void 0:Qt.type,y),minH:aa((da=Q.item)==null?void 0:da.type,y,!0),onMove:r(i),onPointerdown:n[2]||(n[2]=Ue=>ke.value=!0),onPointermove:r(_),onPointerup:n[3]||(n[3]=Ue=>ke.value=!1),onMoved:Ue=>r(ct)(T.page_id,r(D)[y],Ot.value),onResized:Ue=>r(Be)(T.page_id,r(D)[y],Ot.value),ref_for:!0,ref:Ue=>{Ue&&r(ee)(T.page_id,Pe,Ue)},class:ae({"vue-grid-item--media-player":Q.item.type=="media_player"})},{default:X(()=>[e("div",{class:ae(["ui-page__item",{selected:r(de)(y,Pe)}])},[(o(),J(La(r(cl)(Q.item.type)),{key:JSON.stringify(Q),settings:Q.item},null,8,["settings"])),!Me.value&&et.value?(o(),d("span",{key:0,class:"ui-page__item__edit",onClick:Ue=>r(Je)(y,Pe,Q.item,Ue)},n[12]||(n[12]=[e("i",{class:"fa-regular fa-edit"},null,-1)]),8,Ui)):k("",!0),Me.value?(o(),d("div",{key:1,class:"ui-page__item__select",onClick:Ue=>r(ze)(y,Pe)},[e("div",zi,[e("input",{id:`${y}-${Pe}-component-tick`,type:"checkbox",checked:r(de)(y,Pe)},null,8,qi),e("label",{class:"toggle",for:`${y}-${Pe}-component-tick`},null,8,Hi),n[13]||(n[13]=e("button",{class:"button--toggle-tick"},null,-1))])],8,Ni)):et.value?k("",!0):(o(),d("span",Gi,n[14]||(n[14]=[e("i",{class:"fa-regular fa-up-down-left-right"},null,-1)])))],2)]),_:2},1032,["x","y","w","h","i","minW","minH","onMove","onPointermove","onMoved","onResized","class"])}),128))]),_:2},1032,["layout","onUpdate:layout","col-num","row-height","max-rows","is-draggable","prevent-collision"])):k("",!0)],2),e("div",Fi,[(o(!0),d(H,null,ht(Ye.value[y],(Q,Pe)=>(o(),d("button",{key:`empty-cell-${y}-${Pe}`,onClick:Qt=>Pa(Q.x,Q.y),style:Ma(r(te)(ie.value,Q.x,Q.y,y)),class:"ui-page__empty-list__item"},[e("i",{class:ae(["fa-regular",r(h).$state.clipboard.remote.pageItems.length>0?"fa-paste":"fa-plus"])},null,2)],12,Wi))),128))])],2)]}),_:2},1032,["class"]))),128))]),_:1},8,["modelValue"]),P(Ee,{name:"opacity-fast"},{default:X(()=>[me(e("div",Ji,[e("img",{onClick:Ea,alt:"Add page",src:ul}),e("h2",null,v(a.$t("user_interface.no_pages.title")),1)],512),[[ge,r(m).length==0&&tt.value==!1]])]),_:1}),P(Ee,{name:"opacity-fast"},{default:X(()=>[me(e("div",ji,n[15]||(n[15]=[e("img",{src:il,alt:"Loading",class:"list-loader__img img-loading"},null,-1)]),512),[[ge,St.value]])]),_:1})],2),C.editButtonMapping&&!r(A)?(o(),J(vl,{key:0,button:C.highlightedRemoteButton},null,8,["button"])):k("",!0)],2)],2),P(ml,{ref_key:"elAddWidget",ref:N,onAdd:Ra,onChange:r(qe),onClose:r(K),entity:C.remote,"entity-type":"remote",pages:r(m),"active-page":r(g),"enable-media":Ft.value,"grid-dimensions":ie.value,saving:Ie.value},null,8,["onChange","onClose","entity","pages","active-page","enable-media","grid-dimensions","saving"]),P(Ee,{name:"opacity-fast"},{default:X(()=>[me(e("div",{ref_key:"editPopup",ref:re,class:"widget-popup-wrapper"},[e("div",{onClick:n[5]||(n[5]=(...T)=>r($e)&&r($e)(...T)),class:"widget-popup-wrapper__background"}),r(f)&&C.remote?(o(),J(_l,{onChange:r(qe),onCopy:Mt,onDelete:it,onClose:r($e),key:JSON.stringify(r(f)),settings:r(f),entity:C.remote,"entity-type":"remote","active-page":r(m)[r(g)],"validate-size":ot,"grid-dimensions":ie.value,saving:Ie.value},null,8,["onChange","onClose","settings","entity","active-page","grid-dimensions","saving"])):k("",!0)],512),[[ge,r(f)]])]),_:1}),P(yt,{ref_key:"dialogDelete",ref:Bt,onSubmit:r($t),title:a.$t("widget.popup.delete_widget.title",{count:1}),text:a.$t("widget.popup.delete_widget.question",{count:1}),"submit-text":a.$t("ui.delete"),"cancel-text":a.$t("ui.cancel")},null,8,["onSubmit","title","text","submit-text","cancel-text"]),P(yt,{ref_key:"dialogDeleteItems",ref:kt,onSubmit:gt,title:a.$t("widget.popup.delete_widget.title",{count:r(u).length}),text:a.$t("widget.popup.delete_widget.question",{count:r(u).length}),"submit-text":a.$t("ui.delete"),"cancel-text":a.$t("ui.cancel")},null,8,["title","text","submit-text","cancel-text"]),P(yt,{ref_key:"dialogReset",ref:Ct,onSubmit:ka,title:a.$t("user_interface.pages.reset_page.title"),text:Xt.value,"submit-text":a.$t("ui.reset"),"cancel-text":a.$t("ui.cancel")},null,8,["title","text","submit-text","cancel-text"])],64)}}}),Xi={class:"er-interfaces__list panel-col panel-col--40"},Qi={class:"er-interfaces__list__wrapper"},Yi={class:"er-interfaces__list__tab"},Zi={class:"er-interfaces__list__tab"},xi=bt({__name:"EditRemoteInterfaces",props:{remoteId:{type:String,required:!0},activeTab:{type:String,required:!0}},setup(C){Dt();const{isSmallScreen:Y}=xt(),{updateExistingObjectKeys:se,isNonEmptyObject:p}=ea(),F=Vt(),A=C,b=s(null),U=s(),le=s(),x=s({}),O=s(!1),Z=s(!1),ne=s(!0),h=s(!1),c=s();F.$onAction(({name:u,args:f,after:E})=>{u==="socketUpdate"&&E(async()=>{const{entity_id:re,event_type:be}=f[0];if(re===A.remoteId){if(be==="DELETE")ba.push({name:"entities"});else if(re===A.remoteId&&be==="CHANGE"&&f[0]&&f[0].new_state){if(L.value||ne.value==!1)return!1;const _e=se(JSON.parse(JSON.stringify(b.value)),f[0].new_state,!0);B(_e)}}})});const $=W(()=>A.activeTab=="user-interface"||A.activeTab=="button-mapping");Ne($,async u=>{u==!0&&(await D(),O.value||(O.value=!0))});const L=W(()=>h.value||le.value&&le.value.isSaving()||c.value&&c.value.isSaving()||U.value&&U.value.isSaving()),j=W(()=>A.activeTab=="user-interface"?"slide-tab-right":"slide-tab-left"),R=W(()=>!Y.value||A.activeTab=="button-mapping"?"none":Z.value?"slide-tab-right":"slide-tab-left");function B(u){if(!u||!p(u))return!1;const f=u;b.value=JSON.parse(JSON.stringify(f))}function N(u){le.value.setActivePageById(u)}async function oe(u){if(u.cmd==null)throw new Error("Property 'msg.cmd' is required.");if(u.cmd.cmd_id==null)throw new Error("Property 'msg.cmd.cmd_id' is required.");if(u.pressType==null)throw new Error("Property 'msg.pressType' is required.");h.value=!0;try{const f=await F.buttonUpdate(A.remoteId,u.button.button,u.cmd.cmd_id,u.pressType);if(B(f),u.cmd){let E=JSON.parse(JSON.stringify(u));u.pressType&&(E.button[u.pressType]=u.cmd,U.value.changePhysicalButtonEdit(E))}}catch(f){G(f)}h.value=!1}async function z(u){h.value=!0;try{const f=await F.buttonReset(A.remoteId,u.button.button,u.pressType);B(f);let E=JSON.parse(JSON.stringify(u));u.pressType&&(delete E.button[u.pressType],U.value.changePhysicalButtonEdit(E))}catch(f){G(f)}h.value=!1}async function ee(){h.value=!0;try{ut(rt.SAVING);const u=await F.allButtonsReset(A.remoteId);B(u),ut(rt.SUCCESS)}catch(u){G(u)}h.value=!1}function m(){c.value.setAddPage(!0)}async function g(){try{const u=await F.getRemote(A.remoteId,!1);B(u)}catch(u){G(u)}}async function D(){ne.value=!0;try{const u=await F.getRemote(A.remoteId);B(u)}catch(u){G(u)}ne.value=!1}return(u,f)=>(o(),d("div",{class:ae(["er-interfaces",`er-interfaces--${C.activeTab}`])},[O.value?(o(),d("div",{key:0,class:ae([{"er-interfaces__remote--overflow-hidden":le.value&&le.value.isItemDragging()},"er-interfaces__remote panel-col panel-col--60"])},[b.value?(o(),J(Ki,{key:0,remote:b.value||{},"edit-button-mapping":C.activeTab=="button-mapping","highlighted-remote-button":x.value,onAddPage:m,onShowPageList:f[0]||(f[0]=E=>Z.value=!0),onUpdate:g,ref_key:"elDeviceRemote",ref:le},null,8,["remote","edit-button-mapping","highlighted-remote-button"])):k("",!0)],2)):k("",!0),P(Ee,{name:R.value},{default:X(()=>[me(e("div",Xi,[e("div",Qi,[P(Ee,{name:j.value},{default:X(()=>[me(e("div",Yi,[P(pl,{ref_key:"elRemotePageList",ref:c,onEditPage:N,onUpdate:g,onHide:f[1]||(f[1]=E=>Z.value=!1),entity:b.value||{},entityType:"remote",loading:ne.value},null,8,["entity","loading"])],512),[[ge,C.activeTab!="button-mapping"]])]),_:1},8,["name"]),P(Ee,{name:j.value},{default:X(()=>[me(e("div",Zi,[b.value?(o(),J(gl,{key:0,entity:b.value,"entity-type":"remote","text-instruction":u.$t("remote.button_mapping.instruction"),onChangeButton:oe,onResetButton:z,onResetAllButtons:ee,onHighlightButton:f[2]||(f[2]=E=>{x.value=E}),onHideHighlightedButton:f[3]||(f[3]=E=>x.value={}),onUpdate:g,ref_key:"elButtonList",ref:U},null,8,["entity","text-instruction"])):k("",!0)],512),[[ge,C.activeTab!="user-interface"]])]),_:1},8,["name"])])],512),[[ge,!r(Y)||C.activeTab=="button-mapping"||Z.value]])]),_:1},8,["name"])],2))}}),es={class:"page-edit-remote"},ts={class:"page-edit-remote__navbar"},as={class:"page-edit-remote__main"},ls={class:"page-edit-remote__tabs"},os={class:"page-edit-remote__tab"},is={class:"page-edit-remote__tab"},ms=bt({__name:"EditRemoteView",props:{remote_id:{type:String,required:!0}},setup(C){const{t:Y}=Tt(),se=Vt(),p=C,F={icon:"fa-light fa-gear",label:Y("tab.settings"),value:"settings"},{remote:A}=ha(se),b=s(""),U=s(F),le=s(!1),x=W(()=>le.value==!0?"slide-tab-right":"slide-tab-left"),O=W(()=>{var h;return A.value&&A.value.entity_id===p.remote_id?((h=A.value.options)==null?void 0:h.editable)===!1:!1}),Z=W(()=>[{icon:"fa-light fa-gear",label:Y("tab.settings"),value:"settings"},{icon:"fa-light fa-icons",label:Y("tab.user_interface"),value:"user-interface",...O.value&&{disabled:!0}},{icon:`fa-light ${b.value}`,label:Y("tab.button_mapping"),value:"button-mapping",...O.value&&{disabled:!0}}]);function ne(h){const c=Z.value.findIndex(L=>L.value==U.value.value),$=Z.value.findIndex(L=>L.value==h.value);le.value=$<c,U.value=h}return Gt(async()=>{b.value=await sl("fa-grid-2")}),(h,c)=>(o(),J(Ua,null,{default:X(()=>[e("div",es,[e("div",ts,[Z.value?(o(),J(wa,{key:0,onItemClick:ne,"list-data":Z.value,"active-tab":U.value},null,8,["list-data","active-tab"])):k("",!0)]),e("div",as,[e("div",ls,[P(Ee,{name:x.value},{default:X(()=>[me(e("div",os,[P(Ci,{"remote-id":C.remote_id},null,8,["remote-id"])],512),[[ge,U.value.value=="settings"]])]),_:1},8,["name"]),P(Ee,{name:x.value},{default:X(()=>[me(e("div",is,[P(xi,{"remote-id":C.remote_id,"active-tab":U.value.value},null,8,["remote-id","active-tab"])],512),[[ge,U.value.value=="user-interface"||U.value.value=="button-mapping"]])]),_:1},8,["name"])])])])]),_:1}))}});export{ms as default};
2-//# sourceMappingURL=EditRemoteView-KV9P33Fl.js.map
32

This page compares the deployed 2.1.0-unfoldedtools.1 browser build with the archived upstream/source-reference Web Configurator 2.1.0 distribution published in the source tree. Hashes are SHA-256.

Modified44
Deployed only30
Source only39
Identical59
StatusPathSource bytesDeployed bytes
sameassets/css/AddCommand-CbLFbsS9.css102102
sameassets/css/index-DnYA-y8o.css499,065499,065
sameassets/css/UCColorTemp-CXjL72t3.css942942
modifiedassets/js/_plugin-vue_export-helper-DlAUqK2U.js15491
source-onlyassets/js/_plugin-vue_export-helper-DlAUqK2U.js.map118
modifiedassets/js/ActivitiesMacrosView-fgpBUjOs.js28,08828,030
source-onlyassets/js/ActivitiesMacrosView-fgpBUjOs.js.map75,796
modifiedassets/js/add-page-8VHq_I3u.js10681
source-onlyassets/js/add-page-8VHq_I3u.js.map225
modifiedassets/js/AddCommand.vue_vue_type_script_setup_true_lang-Drs9F3BK.js28,87928,795
source-onlyassets/js/AddCommand.vue_vue_type_script_setup_true_lang-Drs9F3BK.js.map66,533
modifiedassets/js/AdminPassword-BShJiGQm.js1,9301,879
source-onlyassets/js/AdminPassword-BShJiGQm.js.map4,002
modifiedassets/js/ApplicationCredentials-B6zGV1aG.js8,0347,974
source-onlyassets/js/ApplicationCredentials-B6zGV1aG.js.map17,519
modifiedassets/js/ButtonList.vue_vue_type_script_setup_true_lang-Canw95fQ.js124,576124,492
source-onlyassets/js/ButtonList.vue_vue_type_script_setup_true_lang-Canw95fQ.js.map338,616
modifiedassets/js/ColorPicker.vue_vue_type_script_setup_true_lang-Clr8ZC9V.js4,2004,115
source-onlyassets/js/ColorPicker.vue_vue_type_script_setup_true_lang-Clr8ZC9V.js.map15,204
modifiedassets/js/Development-Bnpc5txt.js11,75611,707
source-onlyassets/js/Development-Bnpc5txt.js.map25,399
modifiedassets/js/DevicesEntities-CBKp2tcA.js12,15612,103
source-onlyassets/js/DevicesEntities-CBKp2tcA.js.map36,054
modifiedassets/js/DevicesIntegrations-SruI_49o.js14,57813,900
source-onlyassets/js/DevicesIntegrations-SruI_49o.js.map32,821
modifiedassets/js/Display-Rf7oJV7E.js3,6003,555
source-onlyassets/js/Display-Rf7oJV7E.js.map9,835
modifiedassets/js/downloadFile-BZwlOo1d.js314264
source-onlyassets/js/downloadFile-BZwlOo1d.js.map1,010
modifiedassets/js/EditActivityGroupView-BbQJf-Vw.js8,3928,333
source-onlyassets/js/EditActivityGroupView-BbQJf-Vw.js.map23,791
modifiedassets/js/EditActivityView-CJsbOUfl.js52,72552,685
source-onlyassets/js/EditActivityView-CJsbOUfl.js.map135,887
modifiedassets/js/EditDockView-CQaPa6mI.js30,46730,417
source-onlyassets/js/EditDockView-CQaPa6mI.js.map67,875
modifiedassets/js/EditEntityView-DTd7pKSo.js7,5287,476
source-onlyassets/js/EditEntityView-DTd7pKSo.js.map17,210
modifiedassets/js/EditIntegrationView-D54EtPMd.js17,42417,367
source-onlyassets/js/EditIntegrationView-D54EtPMd.js.map46,710
modifiedassets/js/EditMacroView-D6BYPpgI.js14,77914,728
source-onlyassets/js/EditMacroView-D6BYPpgI.js.map40,858
modifiedassets/js/EditRemoteView-KV9P33Fl.js62,74662,694
source-onlyassets/js/EditRemoteView-KV9P33Fl.js.map158,585
modifiedassets/js/FactoryReset-CSy5heR7.js1,7261,676
source-onlyassets/js/FactoryReset-CSy5heR7.js.map4,303
modifiedassets/js/General-B-25fYoQ.js26,75026,696
source-onlyassets/js/General-B-25fYoQ.js.map52,267
modifiedassets/js/gitInfo-D_9Lmuz-.js12596
source-onlyassets/js/gitInfo-D_9Lmuz-.js.map399
modifiedassets/js/index-C1Y9Q2v_.js1,789,2341,790,060
source-onlyassets/js/index-C1Y9Q2v_.js.map4,916,540
modifiedassets/js/InfoPanel.vue_vue_type_script_setup_true_lang-Daj1vCFO.js664581
source-onlyassets/js/InfoPanel.vue_vue_type_script_setup_true_lang-Daj1vCFO.js.map1,105
modifiedassets/js/Localization-CipUmDWZ.js3,6833,633
source-onlyassets/js/Localization-CipUmDWZ.js.map9,586
modifiedassets/js/LoginView-D-5aBttU.js3,5573,531
source-onlyassets/js/LoginView-D-5aBttU.js.map9,693
modifiedassets/js/PowerSaving-B8Zgoof-.js4,0353,986
source-onlyassets/js/PowerSaving-B8Zgoof-.js.map8,857
modifiedassets/js/ProgressBar.vue_vue_type_script_setup_true_lang-Bk1-AFwu.js407322
source-onlyassets/js/ProgressBar.vue_vue_type_script_setup_true_lang-Bk1-AFwu.js.map507
modifiedassets/js/SelectVoiceAssistantProfile.vue_vue_type_script_setup_true_lang-CKqJ88sp.js6,4276,326
source-onlyassets/js/SelectVoiceAssistantProfile.vue_vue_type_script_setup_true_lang-CKqJ88sp.js.map13,160
modifiedassets/js/SettingsOptionButton.vue_vue_type_script_setup_true_lang-Dmfy6i6T.js2,6822,588
source-onlyassets/js/SettingsOptionButton.vue_vue_type_script_setup_true_lang-Dmfy6i6T.js.map4,159
modifiedassets/js/SettingsView-WPft1zzf.js1,7061,936
source-onlyassets/js/SettingsView-WPft1zzf.js.map4,205
modifiedassets/js/SoundHaptic-0xREWoxX.js2,2722,223
source-onlyassets/js/SoundHaptic-0xREWoxX.js.map5,145
modifiedassets/js/UCColorTemp.vue_vue_type_script_setup_true_lang-BwXTO9iw.js15,61615,531
source-onlyassets/js/UCColorTemp.vue_vue_type_script_setup_true_lang-BwXTO9iw.js.map45,865
modifiedassets/js/UCRange.vue_vue_type_script_setup_true_lang-C5_84GVZ.js3,9903,909
source-onlyassets/js/UCRange.vue_vue_type_script_setup_true_lang-C5_84GVZ.js.map10,128
modifiedassets/js/UserInterface-BdUBlw7b.js282231
source-onlyassets/js/UserInterface-BdUBlw7b.js.map310
modifiedassets/js/VoiceControl-C2eahcIK.js3,6473,597
source-onlyassets/js/VoiceControl-C2eahcIK.js.map9,224
modifiedassets/js/vue-select-CSzUJrFr.js135,371135,323
source-onlyassets/js/vue-select-CSzUJrFr.js.map658,931
modifiedassets/js/WifiBluetooth-CxJ7o9Ta.js6,8606,809
source-onlyassets/js/WifiBluetooth-CxJ7o9Ta.js.map15,585
deployed-onlyassets/material-symbols-compat.css212,530
deployed-onlyassets/remote-simulator-background.svg879
deployed-onlyassets/remote-ui/icon-mapping.json102,715
deployed-onlyassets/remote-ui/icons.otf3,293,220
deployed-onlyassets/remote-ui/images/button-layout.png9,652
deployed-onlyassets/remote-ui/images/dock_2.png69,479
deployed-onlyassets/remote-ui/images/dock3_dark_charging.png69,514
deployed-onlyassets/remote-ui/images/dock3_dark_non_charging.png66,171
deployed-onlyassets/remote-ui/images/dock3_silver_charging.png74,560
deployed-onlyassets/remote-ui/images/dock3_silver_non_charging.png71,334
deployed-onlyassets/remote-ui/images/help-overlay/Main1.png37,627
deployed-onlyassets/remote-ui/images/help-overlay/Main2.png18,881
deployed-onlyassets/remote-ui/images/help-overlay/Main3.png52,118
deployed-onlyassets/remote-ui/images/loader_small.png652
deployed-onlyassets/remote-ui/images/quarter_arc.svg466
deployed-onlyassets/remote-ui/LICENSE35,149
deployed-onlyassets/remote-ui/QML_SOURCE_MAP.md1,948
deployed-onlyassets/remote-ui/README.md2,628
deployed-onlyassets/remote-ui/remote-ui_licenses.md193,261
deployed-onlyassets/remote-ui/remote-ui-web.css52,902
deployed-onlyassets/remote-ui/remote-ui-web.js79,638
deployed-onlyassets/ucvr-enhancements.js13,642
deployed-onlyassets/ucvr-simulator.js152,812
deployed-onlyassets/unfolded-simulator-bootstrap.js3,032
deployed-onlyassets/unfolded-simulator-source-integration.css2,396
samefavicon/android-chrome-192x192.png1,6081,608
samefavicon/android-chrome-512x512.png4,7194,719
samefavicon/apple-touch-icon.png1,6091,609
samefavicon/browserconfig.xml254254
samefavicon/favicon-16x16.png490490
samefavicon/favicon-32x32.png588588
samefavicon/favicon.ico7,4067,406
samefavicon/mstile-150x150.png1,4791,479
samefavicon/safari-pinned-tab.svg979979
samefavicon/site.webmanifest462462
deployed-onlyfonts/material-symbols/LICENSE.txt11,358
deployed-onlyfonts/material-symbols/material-symbols-sharp.woff23,196,892
deployed-onlyfonts/material-symbols/NOTICE.md421
samefonts/poppins/poppins-latin-ext_latin-extralight.woff73,46473,464
samefonts/poppins/poppins-latin-ext_latin-extralight.woff250,78850,788
samefonts/poppins/poppins-latin-ext_latin-medium.woff72,76472,764
samefonts/poppins/poppins-latin-ext_latin-medium.woff250,48850,488
samefonts/poppins/poppins-v20-latin-ext_latin-300.woff14,44814,448
samefonts/poppins/poppins-v20-latin-ext_latin-300.woff210,77610,776
samefonts/poppins/poppins-v20-latin-ext_latin-regular.woff14,51614,516
samefonts/poppins/poppins-v20-latin-ext_latin-regular.woff210,83210,832
samefonts/space-mono/space-mono-v11-latin-ext_latin-700.woff30,15630,156
samefonts/space-mono/space-mono-v11-latin-ext_latin-700.woff224,10024,100
samefonts/space-mono/space-mono-v11-latin-ext_latin-regular.woff29,11229,112
samefonts/space-mono/space-mono-v11-latin-ext_latin-regular.woff223,32423,324
sameicons/icon-fallback-mapping.json307307
sameicons/icon-list.json48,89848,898
sameicons/old-new-icon-mapping-free.json3,1003,100
sameicons/old-new-icon-mapping.json3,2173,217
sameimages/add-page.svg3,4673,467
sameimages/background/login-bg-1280.jpg77,75577,755
sameimages/background/login-bg-1920.jpg77,75577,755
sameimages/background/login-bg-2500.jpg73,18773,187
sameimages/background/login-bg-phone.jpg46,07846,078
sameimages/background/login-bg-v2-1280.jpg60,16260,162
sameimages/background/login-bg-v2-1920.jpg84,92284,922
sameimages/background/login-bg-v2-2500.jpg127,751127,751
sameimages/background/login-bg-v2-phone.jpg96,07196,071
sameimages/background/login-bg-v2.jpg203,803203,803
sameimages/background/login-bg.jpg77,75577,755
sameimages/cropper-corner.svg237237
sameimages/customise-remote/add-entities.png2,5062,506
sameimages/customise-remote/add-groups.png2,8782,878
sameimages/customise-remote/configure-buttons.png3,1913,191
sameimages/dock/dock-2.webp178,380178,380
sameimages/dock/dock-d-c.webp281,806281,806
sameimages/dock/dock-d-n.webp270,838270,838
sameimages/dock/dock-s-c.webp298,122298,122
sameimages/dock/dock-s-n.webp288,210288,210
sameimages/loading-indicator-dark.png2,0742,074
sameimages/loading-indicator.png3,3203,320
sameimages/quick-tips/icon-contextual.svg1,4031,403
sameimages/remote-2-front-min.webp63,45663,456
sameimages/remote-2-front.webp397,556397,556
sameimages/remote-3-dark-front-min.webp3,0383,038
modifiedimages/remote-3-dark-front.webp84,73049,270
sameimages/remote-3-silver-front-min.webp3,1063,106
sameimages/remote-3-silver-front.webp92,86492,864
modifiedindex.html1,3792,191
deployed-onlyLICENSE35,149
modifiedlicenses.md2,028,4202,028,556
samelogo-dark.svg847847
samelogo.svg597597
deployed-onlyMODIFICATIONS.md7,343
modifiedrelease.json433487
modifiedversion.txt622