text: (function(e){function t(t){for(var s,r,a=t[0],c=t[1],l=t[2],d=0,m=[];d<a.length;d++)r=a[d],Object.prototype.hasOwnProperty.call(i,r)&&i[r]&&m.push(i[r][0]),i[r]=0;for(s in c)Object.prototype.hasOwnProperty.call(c,s)&&(e[s]=c[s]);u&&u(t);while(m.length)m.shift()();return n.push.apply(n,l||[]),o()}function o(){for(var e,t=0;t<n.length;t++){for(var o=n[t],s=!0,r=1;r<o.length;r++){var c=o[r];0!==i[c]&&(s=!1)}s&&(n.splice(t--,1),e=a(a.s=o[0]))}return e}var s={},i={1:0},n=[];function r(e){return a.p+"js/"+({}[e]||e)+"."+{2:"1afa1de2",3:"fc2e58ed",4:"77982caa"}[e]+".js"}function a(t){if(s[t])return s[t].exports;var o=s[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,a),o.l=!0,o.exports}a.e=function(e){var t=[],o=i[e];if(0!==o)if(o)t.push(o[2]);else{var s=new Promise((function(t,s){o=i[e]=[t,s]}));t.push(o[2]=s);var n,c=document.createElement("script");c.charset="utf-8",c.timeout=120,a.nc&&c.setAttribute("nonce",a.nc),c.src=r(e);var l=new Error;n=function(t){c.onerror=c.onload=null,clearTimeout(d);var o=i[e];if(0!==o){if(o){var s=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+s+": "+n+")",l.name="ChunkLoadError",l.type=s,l.request=n,o[1](l)}i[e]=void 0}};var d=setTimeout((function(){n({type:"timeout",target:c})}),12e4);c.onerror=c.onload=n,document.head.appendChild(c)}return Promise.all(t)},a.m=e,a.c=s,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)a.d(o,s,function(t){return e[t]}.bind(null,s));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a.oe=function(e){throw console.error(e),e};var c=window["webpackJsonp"]=window["webpackJsonp"]||[],l=c.push.bind(c);c.push=t,c=c.slice();for(var d=0;d<c.length;d++)t(c[d]);var u=l;n.push([0,0]),o()})({0:function(e,t,o){e.exports=o("2f39")},"0047":function(e,t,o){var s=o("d35b");"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var i=o("499e").default;i("d8ef322a",s,!0,{sourceMap:!1})},"18b5":function(e,t){e.exports={"Listen on all IPs":"Écoutez sur toutes les IP","load configuration from file":"charger la configuration à partir du fichier","save and close":"sauver et fermer","save configuration to file":"enregistrer la configuration dans un fichier",appForm:{activeApp:"Activez l'application milight-smart-light",debounceTime:"Temps anti-rebond (ms)",serverPort:"Port de serveur",socketPort:"Port de prise"},bridgeForm:{"4zones":"4 zones","8zones":"8 zones",changeMessage:"Lors du changement, toutes les zones sont supprimées.",commandRepeat:"Répétitions de commandes",controllerIp:"IP",controllerPort:"Port",delayBetweenCommands:"Délai entre deux commandes",ibox1:"iBox1",ibox2:"iBox2",legacy:"Héritage",noBridgeFound:"Aucun pont n'a été trouvé. ",startInstance:"L'instance doit d'abord être démarrée.",type:"Typ",v6:"Version 6"},cancel:"Annuler",close:"proche",otherConfig:"La configuration sélectionnée appartient à l'adaptateur: {msg}",ra_filter_customs:"Réglages",ra_filter_func:"Fonction",ra_filter_id:"ID",ra_filter_name:"Nom",ra_filter_role:"Rôle",ra_filter_room:"Chambre",ra_filter_type:"Type",ra_tooltip_ack:"Drapeau accusé de réception",ra_tooltip_copyState:"Copiez la valeur de l'état",ra_tooltip_customConfig:"Paramètres personnalisés",ra_tooltip_deleteObject:"Supprimer l'objet",ra_tooltip_editObject:"Modifier l'objet",ra_tooltip_editState:"Modifier la valeur de l'état",ra_tooltip_from:"De",ra_tooltip_lc:"Dernière modification",ra_tooltip_quality:"Qualité",ra_tooltip_ts:"Horodatage",ra_tooltip_user:"Utilisateur",ra_tooltip_value:"Valeur",readme:"Lisez-moi",save:"enregistrer",tabs:{app:"Application MSL",bridge:"pont",zones:"zones"},validateMsg:{between:"{field} doit être compris entre {min} et {max}.",ip:"{field} n'est pas une adresse IP valide.",isAllowedZoneNumber:"Un type de zone valide doit être sélectionné pour {field} {value}.",isAllowedZoneType:"Une zone valide doit être sélectionnée pour {field} {value}.",isunique:"Chaque {field} ne peut apparaître qu'une seule fois.",max:"Seul un maximum de {length} chiffres est autorisé pour {field}.",minValue:"La valeur de {field} doit être d'au moins {min}.",numeric:"Seuls les nombres entiers sont autorisés pour {field}.",regexColorOffset:"{field} {value} n'a pas le bon format. ",regexGroupAndName:'{field}: "{value}" contient des caractères non valides.',required:"{field} doit être spécifié."},zonesForm:{bridge:"Pont (iBox1)",fullColor8Zone:"RVB (8) + CCT",fullColor:"RVB + CCT",nodata:"Veuillez créer une ou plusieurs zones!",rgbw:"RVB (W)",thactive:"actif",thcoloroffset:"décalage de couleur",thfunction:"Groupes)",thgroupname:"Groupe (zone)",throom:"chambre",thzonename:"Nom (zone)",thzonenumber:"Zone",thzonetype:"Type (zone)",white:"blanc",zone1:"un",zone2:"deux",zone3:"Trois",zone4:"quatre",zone5:"cinq",zone6:"six",zone7:"Sept",zone8:"huit",zone9:"neuf"}}},"25e8":function(e,t,o){var s=o("e3bd");"string"===typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);var i=o("499e").default;i("a9e4e9b2",s,!0,{sourceMap:!1})},"2f39":function(e,t,o){"use strict";o.r(t);var s={};o.r(s),o.d(s,"getField",(function(){return x["a"]}));var i={};o.r(i),o.d(i,"updateField",(function(){return x["d"]}));var n={};o.r(n),o.d(n,"getField",(function(){return x["a"]})),o.d(n,"isValidAll",(function(){return L}));var r={};o.r(r),o.d(r,"updateField",(function(){return x["d"]})),o.d(r,"addZone",(function(){return N})),o.d(r,"deleteZone",(function(){return R})),o.d(r,"deleteAllZones",(function(){return $}));var a={};o.r(a),o.d(a,"addZone",(function(){return H})),o.d(a,"deleteZone",(function(){return Z})),o.d(a,"deleteAllZones",(function(){return V}));o("e6cf"),o("5319"),o("7d6e"),o("e54f"),o("985d"),o("0047");var c=o("2b0e"),l=o("1f91"),d=o("42d2"),u=o("b05d"),m=o("2a19"),h=o("436b");c["a"].use(u["a"],{config:{},lang:l["a"],iconSet:d["a"],plugins:{Notify:m["a"],Dialog:h["a"]}});var p=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[e.loaded?s("div",{attrs:{id:"q-app"}},[s("router-view")],1):s("div",{staticClass:"fixed-center"},[s("q-circular-progress",{staticClass:"q-ma-md",attrs:{indeterminate:"","show-value":"","font-size":"10px",size:"300px",thickness:.15,color:"light-blue-7","track-color":"grey-3"}},[s("q-avatar",{attrs:{size:"200px"}},[s("img",{attrs:{src:o("9d7a")}})])],1)],1)])},f=[],g=o("ded3"),b=o.n(g),_=o("2f62"),v=o("3452"),w=o("9446"),y={name:"App",mixins:[v["a"],w["a"]],methods:b()({},Object(_["d"])("app",["updateField"])),watch:{native:{handler(){setTimeout((()=>{const e=this.$connection.getIsChanged()&&this.isValidAll;this.updateField({path:"changed",value:e})}),50)},deep:!0},errorText(e){if(e){const t=b()({message:e},{type:"negative",timeout:3e3,position:"top",classes:"glossy"});this.$q.notify(t),this.updateField({path:"errorText",value:""})}}},beforeCreate(){this.$q.dark.set("auto"),window.addEventListener("onhashchange",this.$connection.onHashChangedBound)},beforeDestroy(){window.removeEventListener("onhashchange",this.$connection.onHashChangedBound)}},C=y,j=(o("cf25"),o("2877")),P=o("58ea"),S=o("cb32"),k=o("eebe"),z=o.n(k),O=Object(j["a"])(C,p,f,!1,null,null,null),T=O.exports;z()(O,"components",{QCircularProgress:P["a"],QAvatar:S["a"]});var E=function(){return{changed:!1,connected:!1,loaded:!1,isConfigurationError:"",errorText:""}},x=o("5935"),F=o("e048"),A={namespaced:!0,state:E,getters:s,mutations:i,actions:F},I=function(){return{native:{},validForms:{bridge:!0,zones:!0,app:!0},roomOptions:null,funcOptions:null}};const L=e=>e.validForms.bridge&&e.validForms.zones&&e.validForms.app;o("a434");var B=o("e1bd");const N=(e,t)=>{e.native.zones.push({id:Object(B["a"])(9),mslZoneActive:!1,mslZoneNumber:null,mslGroupName:null,mslZoneType:null,mslColorOffset:null,mslZoneName:null,mslRoom:null,mslFunc:[]}),t()},R=(e,t)=>{const o=e.native.zones.findIndex((e=>e.id===t));e.native.zones.splice(o,1)},$=e=>{e.native.zones.length=0},H=({commit:e},t)=>{e("addZone",t)},Z=({commit:e},t)=>{e("deleteZone",t)},V=({commit:e})=>{e("deleteAllZones")};var D={namespaced:!0,state:I,getters:n,mutations:r,actions:a};c["a"].use(_["a"]);var G=function(){const e=new _["a"].Store({modules:{app:A,template:D},strict:!1});return e},q=o("8c4f");const M=[{path:"/",component:()=>Promise.all([o.e(0),o.e(3)]).then(o.bind(null,"713b")),children:[{path:"",component:()=>Promise.all([o.e(0),o.e(2)]).then(o.bind(null,"bc13"))}]},{path:"*",component:()=>o.e(4).then(o.bind(null,"e51e"))}];var J=M;c["a"].use(q["a"]);var W=function(){const e=new q["a"]({scrollBehavior:()=>({x:0,y:0}),routes:J,mode:"hash",base:""});return e},Y=async function(){const e="function"===typeof G?await G({Vue:c["a"]}):G,t="function"===typeof W?await W({Vue:c["a"],store:e}):W;e.$router=t;const o={router:t,store:e,render:e=>e(T),el:"#q-app"};return{app:o,store:e,router:t}},K=o("a925"),U=o("811a"),Q=o.n(U),X=o("d921"),ee=o.n(X),te=o("c071"),oe=o.n(te),se=o("774a"),ie=o.n(se),ne=o("479e"),re=o.n(ne),ae=o("18b5"),ce=o.n(ae),le={en:Q.a,de:ee.a,nl:oe.a,pt:ie.a,ru:re.a,fr:ce.a};c["a"].use(K["a"]);const de=new K["a"]({locale:u["a"].lang.getLocale(),fallbackLocale:"en",messages:le});var ue=({app:e})=>{e.i18n=de},me=o("1dce"),he=o.n(me),pe=({Vue:e})=>{e.use(he.a)};o("fb6a"),o("4e82"),o("498a"),o("ddb0"),o("c975"),o("13d5"),o("ace4"),o("5cc6");const fe={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,READY:3},ge="permissionError",be="notConnectedError";class _e{constructor(e){e=e||{},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog,this.props.protocol=this.props.protocol||window.location.protocol,this.props.host=this.props.host||window.location.hostname,this.props.port=this.props.port||("8080"===window.location.port?8081:window.location.port),this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.doNotLoadAllObjects=void 0===this.props.doNotLoadAllObjects||this.props.doNotLoadAllObjects,this.states={},this.objects=null,this.acl=null,this.firstConnect=!0,this.waitForRestart=!1,this.systemLang="en",this.connected=!1,this.statesSubscribes={},this.objectsSubscribes={},this.onProgress=this.props.onProgress||function(){},this.onError=this.props.onError||function(e){console.error(e)},this.loaded=!1,this.loadTimer=null,this.loadCounter=0,this.certPromise=null,this.onConnectionHandlers=[],this.onLogHandlers=[],this._promises={},this.startSocket()}startSocket(){if("undefined"!==typeof window.io)this._socket||(this._socket=window.io.connect(`${this.props.protocol.replace(":","")}://${this.props.host}:${this.props.port}`,{query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout}),this._socket.on("connect",(e=>{!0!==e?setTimeout((()=>this.getAdminVersion().then((e=>{const[t,o,s]=e.split("."),i=1e4*parseInt(t,10)+100*parseInt(o,10)+parseInt(s,10);i<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",((e,t)=>this.onPreConnect(e,t)))}))),500):this._socket.emit("authenticate",((e,t)=>this.onPreConnect(e,t)))})),this._socket.on("reconnect",(()=>{this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach((e=>e(!0))))})),this._socket.on("disconnect",(()=>{this.connected=!1,this.subscribed=!1,this.onProgress(fe.CONNECTING),this.onConnectionHandlers.forEach((e=>e(!1)))})),this._socket.on("reconnect",(()=>{this.onProgress(fe.READY),this.waitForRestart&&window.location.reload()})),this._socket.on("reauthenticate",(()=>this.authenticate())),this._socket.on("log",(e=>{this.props.onLog&&this.props.onLog(e),this.onLogHandlers.forEach((t=>t(e)))})),this._socket.on("error",(e=>{let t=e||"";"function"!==typeof t.toString&&(t=JSON.stringify(t),console.error(`Received strange error: ${t}`)),t=t.toString(),-1!==t.indexOf("User not authorized")?this.authenticate():window.alert(`Socket Error: ${e}`)})),this._socket.on("connect_error",(e=>console.error(`Connect error: ${e}`))),this._socket.on("permissionError",(e=>this.onError({message:"no permission",operation:e.operation,type:e.type,id:e.id||""}))),this._socket.on("objectChange",((e,t)=>setTimeout((()=>this.objectChange(e,t)),0))),this._socket.on("stateChange",((e,t)=>setTimeout((()=>this.stateChange(e,t)),0))),this._socket.on("cmdStdout",((e,t)=>this.onCmdStdoutHandler&&this.onCmdStdoutHandler(e,t))),this._socket.on("cmdStderr",((e,t)=>this.onCmdStderrHandler&&this.onCmdStderrHandler(e,t))),this._socket.on("cmdExit",((e,t)=>this.onCmdExitHandler&&this.onCmdExitHandler(e,t))));else if("function"!==typeof window.registerSocketOnLoad){if(this.scriptLoadCounter=this.scriptLoadCounter||0,this.scriptLoadCounter++,this.scriptLoadCounter<30)return setTimeout((()=>this.startSocket()),100);window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad((()=>this.startSocket()))}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout((()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect()}),1e3),this.loaded||this.onConnect()):this.onProgress(fe.READY),this._subscribe(!0),this.onConnectionHandlers.forEach((e=>e(!0))))}isConnected(){return this.connected}onConnect(){this._socket.emit("getUserPermissions",((e,t)=>{this.loaded||(this.loaded=!0,clearTimeout(this.loadTimer),this.loadTimer=null,this.onProgress(fe.CONNECTED),this.firstConnect=!1,this.acl=t,this._socket.emit("getObject","system.config",((e,t)=>{this.systemConfig=t,!e&&this.systemConfig&&this.systemConfig.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,"en"!==this.systemLang&&"de"!==this.systemLang&&"ru"!==this.systemLang&&(this.systemConfig.common.language="en",this.systemLang="en")),this.props.onLanguage&&this.props.onLanguage(this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(fe.READY),this.props.onReady&&this.props.onReady(this.objects)):this.getObjects().then((()=>{this.onProgress(fe.READY),this.props.onReady&&this.props.onReady(this.objects)}))})))}))}authenticate(){window.location=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}subscribeState(e,t,o){if("function"===typeof t&&(o=t,t=!1),this.statesSubscribes[e])-1===this.statesSubscribes[e].cbs.indexOf(o)&&this.statesSubscribes[e].cbs.push(o);else{let t=e.replace(/\./g,"\\.").replace(/\*/g,".*").replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/\+/g,"\\+").replace(/\[/g,"\\[");-1===t.indexOf("*")&&(t+="$"),this.statesSubscribes[e]={reg:new RegExp(t),cbs:[]},this.statesSubscribes[e].cbs.push(o),this.connected&&this._socket.emit("subscribe",e)}"function"===typeof o&&this.connected&&(t?this.getBinaryState(e).then((t=>setTimeout((()=>o(e,t))))).catch((t=>console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(t)}`))):this._socket.emit("getForeignStates",e,((t,s)=>{t&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(t)}`),s&&Object.keys(s).forEach((e=>setTimeout((()=>o(e,s[e])))))})))}unsubscribeState(e,t){if(this.statesSubscribes[e]){if(t){const o=this.statesSubscribes[e].cbs.indexOf(t);-1!==o&&this.statesSubscribes[e].cbs.splice(o,1)}else this.statesSubscribes[e].cbs=null;this.statesSubscribes[e].cbs&&this.statesSubscribes[e].cbs.length||(delete this.statesSubscribes[e],this.connected&&this._socket.emit("unsubscribe",e))}}subscribeObject(e,t){if(this.objectsSubscribes[e])!this.objectsSubscribes[e].cbs.includes(t)&&this.objectsSubscribes[e].cbs.push(t);else{let o=e.replace(/\./g,"\\.").replace(/\*/g,".*");-1===o.indexOf("*")&&(o+="$"),this.objectsSubscribes[e]={reg:new RegExp(o),cbs:[]},this.objectsSubscribes[e].cbs.push(t),this.connected&&this._socket.emit("subscribeObjects",e)}return Promise.resolve()}unsubscribeObject(e,t){if(this.objectsSubscribes[e]){if(t){const o=this.objectsSubscribes[e].cbs.indexOf(t);-1!==o&&this.objectsSubscribes[e].cbs.splice(o,1)}else this.objectsSubscribes[e].cbs=null;!this.connected||this.objectsSubscribes[e].cbs&&this.objectsSubscribes[e].cbs.length||(delete this.objectsSubscribes[e],this.connected&&this._socket.emit("unsubscribeObjects",e))}return Promise.resolve()}objectChange(e,t){if(!this.objects)return;let o,s=!1;t?(t._rev&&this.objects[e]&&(this.objects[e]._rev=t._rev),this.objects[e]&&(o={_id:e,type:this.objects[e].type}),this.objects[e]&&JSON.stringify(this.objects[e])===JSON.stringify(t)||(this.objects[e]=t,s=!0)):this.objects[e]&&(o={_id:e,type:this.objects[e].type},delete this.objects[e],s=!0),Object.keys(this.objectsSubscribes).forEach((s=>{(s===e||this.objectsSubscribes[s].reg.test(e))&&this.objectsSubscribes[s].cbs.forEach((s=>s(e,t,o)))})),this.props.onBlocklyChanges&&e.match(/^system\.adapter\.[-\w\d]+\$/)&&t[e].common&&t[e].common.blockly&&this.props.onBlocklyChanges(e),s&&this.props.onObjectChange&&this.props.onObjectChange(this.objects)}stateChange(e,t){for(const o in this.statesSubscribes)this.statesSubscribes.hasOwnProperty(o)&&this.statesSubscribes[o].reg.test(e)&&this.statesSubscribes[o].cbs.forEach((o=>o(e,t)))}getStates(e){return this.connected?new Promise(((t,o)=>this._socket.emit("getStates",((s,i)=>(this.states=i,!e&&this.onProgress(fe.STATES_LOADED),s?o(s):t(this.states)))))):Promise.reject(be)}getState(e){return this.connected?new Promise(((t,o)=>this._socket.emit("getState",e,((e,s)=>e?o(e):t(s))))):Promise.reject(be)}getBinaryState(e){return this.connected?new Promise(((t,o)=>this._socket.emit("getBinaryState",e,((e,s)=>e?o(e):t(s))))):Promise.reject(be)}setBinaryState(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("setBinaryState",e,t,(e=>e?s(e):o())))):Promise.reject(be)}setState(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("setState",e,t,(e=>e?s(e):o())))):Promise.reject(be)}getObjects(e,t){if("function"!==typeof e)return this.connected?new Promise(((o,s)=>{if(!e&&this.objects)return o(this.objects);this._socket.emit("getAllObjects",((e,i)=>{this.objects=i,t&&this.onProgress(fe.OBJECTS_LOADED),e?s(e):o(this.objects)}))})):Promise.reject(be);{const o=e;this.connected?this.objects&&Object.keys(this.objects).length>2?setTimeout((()=>o(this.objects)),100):this._socket.emit("getAllObjects",((e,s)=>{this.objects=s||{},t&&this.onProgress(fe.OBJECTS_LOADED),o(this.objects)})):(console.error(be),o())}}_subscribe(e){e&&!this.subscribed?(this.subscribed=!0,this.autoSubscribes.forEach((e=>this._socket.emit("subscribeObjects",e))),Object.keys(this.objectsSubscribes).forEach((e=>this._socket.emit("subscribeObjects",e))),this.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach((e=>this._socket.emit("subscribe",e)))):!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach((e=>this._socket.emit("unsubscribeObjects",e))),Object.keys(this.objectsSubscribes).forEach((e=>this._socket.emit("unsubscribeObjects",e))),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach((e=>this._socket.emit("unsubscribe",e))))}requireLog(e){return this.connected?new Promise(((t,o)=>this._socket.emit("requireLog",e,(e=>e?o(e):t())))):Promise.reject(be)}delObject(e){return this.connected?new Promise(((t,o)=>this._socket.emit("delObject",e,(e=>{e?o(e):t()})))):Promise.reject(be)}setObject(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("setObject",e,t,(e=>{e?s(e):o()})))):Promise.reject(be)}getObject(e){return this.connected?new Promise(((t,o)=>this._socket.emit("getObject",e,((e,s)=>e?o(e):t(s))))):Promise.reject(be)}getAdapterInstances(e,t){return"boolean"===typeof e&&(t=e,e=""),e=e||"",!t&&this._promises[`instances${e}`]?this._promises[`instances${e}`]:this.connected?(this._promises[`instances${e}`]=this._promises[`instances${e}`]||new Promise(((t,o)=>{this._socket.emit("getObjectView","system","instance",{startkey:`system.adapter.${e||""}`,endkey:`system.adapter.${e?`${e}.`:""}香`},((e,s)=>{e?o(e):t(s.rows.map((e=>e.value)))}))})),this._promises[`instances${e}`]):Promise.reject(be)}_renameGroups(e,t){if(e&&e.length){const o=e.pop();this.delObject(o._id).then((()=>(o._id=o.newId,delete o.newId,this.setObject(o._id,o)))).then((()=>setTimeout((()=>this._renameGroups(e,t)),0))).catch((e=>t&&t(e)))}else t&&t()}renameGroup(e,t,o){return this.getGroups(!0).then((s=>{if(s.length){const i=s.filter((t=>t._id.startsWith(`${e}.`))).forEach((o=>o.newId=t+o._id.substring(e.length)));return new Promise(((e,t)=>this._renameGroups(i,(o=>o?t(o):e())))).then((()=>{const i=s.find((t=>t._id===e));if(i)return i._id=t,void 0!==o&&(i.common=i.common||{},i.common.name=o),this.setObject(i._id,i)}))}}))}sendTo(e,t,o){return this.connected?new Promise((s=>this._socket.emit("sendTo",e,t,o,(e=>s(e))))):Promise.reject(be)}extendObject(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("extendObject",e,t,(e=>e?s(e):o())))):Promise.reject(be)}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);-1!==t&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);-1!==t&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(e){this.onCmdStdoutHandler=null}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(e){this.onCmdStderrHandler=null}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(e){this.onCmdExitHandler=null}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise(((t,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},((s,i)=>{if(!s&&i){const o={};for(let t=0;t<i.rows.length;t++)e&&i.rows[t].id===`enum.${e}`||(o[i.rows[t].id]=i.rows[t].value);t(o)}else o(s)}))})),this._promises[`enums_${e||"all"}`]):Promise.reject(be)}getObjectView(e,t,o){return this.connected?new Promise(((s,i)=>{this._socket.emit("getObjectView","system",o,{startkey:e,endkey:t},((e,t)=>{if(e)i(e);else{const e={};if(t&&t.rows)for(let o=0;o<t.rows.length;o++)e[t.rows[o].id]=t.rows[o].value;s(e)}}))})):Promise.reject(be)}getCertificates(e){return this._promises.cert&&!e?this._promises.cert:this.connected?(this._promises.cert=this.getObject("system.certificates").then((e=>{const t=[];return e&&e.native&&e.native.certificates&&Object.keys(e.native.certificates).forEach((o=>{const s=e.native.certificates[o];if(!s)return;const i={name:o,type:""};if(s.length<700&&(-1!==s.indexOf("/")||-1!==s.indexOf("\\")))o.toLowerCase().includes("private")||s.toLowerCase().includes("private")?i.type="private":(o.toLowerCase().includes("public")||s.toLowerCase().includes("public"))&&(i.type="public"),t.push(i);else{if(i.type="-----BEGIN RSA PRIVATE KEY"===s.substring(0,"-----BEGIN RSA PRIVATE KEY".length)||"-----BEGIN PRIVATE KEY"===s.substring(0,"-----BEGIN PRIVATE KEY".length)?"private":"public","public"===i.type){const e=s.split("-----END CERTIFICATE-----");e.filter((e=>e.replace(/\r\n|\r|\n/,"").trim())).length>1&&(i.type="chained")}t.push(i)}})),t})),this._promises.cert):Promise.reject(be)}getLogs(e,t){return this.connected?new Promise((o=>this._socket.emit("sendToHost",e,"getLogs",t||200,(e=>o(e))))):Promise.reject(be)}getLogsFiles(){return this.connected?new Promise(((e,t)=>this._socket.emit("readLogs",((o,s)=>o?t(o):e(s))))):Promise.reject(be)}delLogs(e){return this.connected?new Promise(((t,o)=>this._socket.emit("sendToHost",e,"delLogs",null,(e=>e?o(e):t())))):Promise.reject(be)}readMetaItems(){return this.connected?new Promise(((e,t)=>this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},((o,s)=>o?t(o):e(s.rows&&s.rows.map((e=>e.value))))))):Promise.reject(be)}readDir(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("readDir",e,t,((e,t)=>e?s(e):o(t))))):Promise.reject(be)}writeFile64(e,t,o){return this.connected?new Promise(((s,i)=>{if("string"===typeof o)this._socket.emit("writeFile",e,t,o,(e=>e?i(e):s()));else{const n=btoa(new Uint8Array(o).reduce(((e,t)=>e+String.fromCharCode(t)),""));this._socket.emit("writeFile64",e,t,n,(e=>e?i(e):s()))}})):Promise.reject(be)}deleteFile(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("deleteFile",e,t,(e=>e?s(e):o())))):Promise.reject(be)}getHosts(e){return!e&&this._promises.hosts?this._promises.hosts:this.connected?(this._promises.hosts=new Promise(((e,t)=>this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},((o,s)=>{o?t(o):e(s.rows.map((e=>e.value)))})))),this._promises.hosts):Promise.reject(be)}getUsers(e){return!e&&this._promises.users?this._promises.users:this.connected?(this._promises.users=new Promise(((e,t)=>this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},((o,s)=>{o?t(o):e(s.rows.map((e=>e.value)))})))),this._promises.users):Promise.reject(be)}getGroups(e){return!e&&this._promises.groups?this._promises.groups:this.connected?(this._promises.groups=new Promise(((e,t)=>this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},((o,s)=>{o?t(o):e(s.rows.map((e=>e.value)))})))),this._promises.groups):Promise.reject(be)}getHostInfo(e,t){return e.startsWith(e)||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo${e}`]?this._promises[`hostInfo${e}`]:this.connected?(this._promises[`hostInfo${e}`]=new Promise(((t,o)=>{let s=setTimeout((()=>{s&&(s=null,o("timeout"))}),5e3);this._socket.emit("sendToHost",e,"getHostInfo",null,(e=>{s&&(clearTimeout(s),s=null,e===ge?o('May not read "getHostInfo"'):e?t(e):o('Cannot read "getHostInfo"'))}))})),this._promises[`hostInfo${e}`]):Promise.reject(be)}getRepository(e,t,o){return!o&&this._promises.repo?this._promises.repo:this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),this._promises.repo=new Promise(((o,s)=>{let i=setTimeout((()=>{i&&(i=null,s("timeout"))}),5e3);this._socket.emit("sendToHost",e,"getRepository",t,(e=>{i&&(clearTimeout(i),i=null,e===ge?s('May not read "getRepository"'):e?o(e):s('Cannot read "getRepository"'))}))})),this._promises.repo):Promise.reject(be)}getInstalled(e,t){return!t&&this._promises.installed?this._promises.installed:this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),this._promises.installed=new Promise(((t,o)=>{let s=setTimeout((()=>{s&&(s=null,o("timeout"))}),5e3);this._socket.emit("sendToHost",e,"getInstalled",null,(e=>{s&&(clearTimeout(s),s=null,e===ge?o('May not read "getInstalled"'):e?t(e):o('Cannot read "getInstalled"'))}))})),this._promises.installed):Promise.reject(be)}cmdExec(e,t,o){return this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise(((s,i)=>{let n=setTimeout((()=>{n&&(n=null,i("timeout"))}),5e3);this._socket.emit("cmdExec",e,o,t,null,(e=>{n&&(clearTimeout(n),n=null,e?i(e):s())}))}))):Promise.reject(be)}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise(((t,o)=>this._socket.emit("checkFeatureSupported",e,((e,s)=>{console.log(s),e?o(e):t(s)})))),this._promises[`supportedFeatures_${e}`]):Promise.reject(be)}readBaseSettings(e){return this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then((t=>t?this.connected?new Promise(((t,o)=>{let s=setTimeout((()=>{s&&(s=null,o("timeout"))}),5e3);this._socket.emit("sendToHost",e,"readBaseSettings",null,(e=>{s&&(clearTimeout(s),s=null,e===ge?o('May not read "BaseSettings"'):e?t(e):o('Cannot read "BaseSettings"'))}))})):Promise.reject(be):Promise.reject("Not supported")))}writeBaseSettings(e,t){return this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then((o=>o?this.connected?new Promise(((o,s)=>{let i=setTimeout((()=>{i&&(i=null,s("timeout"))}),5e3);this._socket.emit("sendToHost",e,"writeBaseSettings",t,(e=>{i&&(clearTimeout(i),i=null,e===ge?s('May not write "BaseSettings"'):e?o(e):s('Cannot write "BaseSettings"'))}))})):Promise.reject(be):Promise.reject("Not supported")))}getForeignStates(e){return this.connected?new Promise(((t,o)=>this._socket.emit("getForeignStates",e||"*",((e,s)=>e?o(e):t(s))))):Promise.reject(be)}getForeignObjects(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("getForeignObjects",e||"*",t,((e,t)=>e?s(e):o(t))))):Promise.reject(be)}getSystemConfig(e){return e&&(this._promises.systemConfig=null),this._promises.systemConfig||this.connected?(this._promises.systemConfig=this._promises.systemConfig||this.getObject("system.config").then((e=>(e=e||{},e.common=e.common||{},e.native=e.native||{},e))),this._promises.systemConfig):Promise.reject(be)}setSystemConfig(e){return this.setObject("system.config",e).then((()=>this._promises.systemConfig=Promise.resolve(e)))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise(((o,s)=>this._socket.emit("getHistory",e,t,((e,t)=>e?s(e):o(t))))):Promise.reject(be)}changePassword(e,t){return new Promise(((o,s)=>this._socket.emit("changePassword",e,t,(e=>e?s(e):o()))))}getIpAddresses(e,t){return e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]||(this._promises[`IPs_${e}`]=this.getObject(e).then((e=>e&&e.common&&e.common.address||[]))),this._promises[`IPs_${e}`]}decryptPhrase(e){return new Promise(((t,o)=>this._socket.emit("decryptPhrase",e,((e,s)=>e?o(e):t(s)))))}encryptPhrase(e){return new Promise(((t,o)=>this._socket.emit("encryptPhrase",e,((e,s)=>e?o(e):t(s)))))}encrypt(e){return new Promise(((t,o)=>this._socket.emit("encrypt",e,((e,s)=>e?o(e):t(s)))))}decrypt(e){return new Promise(((t,o)=>this._socket.emit("decrypt",e,((e,s)=>e?o(e):t(s)))))}getAdminVersion(){return this._promises.version=this._promises.version||new Promise(((e,t)=>this._socket.emit("getVersion",((o,s)=>o?t(o):e(s))))),this._promises.version}}var ve=_e;class we{constructor(e,t){var o=this;this.store=e.store,this.state=e.store.state.template;const s=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),i={};s.trim().split("&").filter((e=>e)).forEach((e=>{const t=e.split("=");i[t[0]]=2!==t.length||t[1]})),this.instance=void 0!==i.instance?parseInt(i.instance,10)||0:parseInt(window.location.search.slice(1),10)||0;const n=window.location.pathname.split("/");this.adapterName=t&&t.adapterName||e.adapterName||window.adapterName||n[n.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.selectedTab=window.localStorage[`${this.adapterName}-adapter`]||"",this.selectedTabNum=-1;try{this.isIFrame=window.self!==window.top}catch(r){this.isIFrame=!0}this.savedNative={},this.encryptedFields=e.encryptedFields||t&&t.encryptedFields||[],this.socket=new ve(b()(b()({},e&&e.socket||t&&t.socket),{},{name:this.adapterName,doNotLoadAllObjects:t&&t.doNotLoadAllObjects,onProgress:e=>{e===fe.CONNECTING?this.store.commit("app/updateField",{path:"connected",value:!1}):(fe.READY,this.store.commit("app/updateField",{path:"connected",value:!0}))},onReady:async function(e,t){de.locale=o.socket.systemLang,await o.getSystemConfig().then((e=>(o._secret="undefined"!==typeof e&&e.native&&e.native.secret||"Zgfr56gFe87jJOM",o.socket.getObject(o.instanceId)))).then((e=>{e?(o.common=e&&e.common,o.onPrepareLoad(e.native),o.native=JSON.parse(JSON.stringify(e.native)),o.savedNative=JSON.parse(JSON.stringify(e.native)),o.store.commit("template/updateField",{path:"native",value:e.native}),o.store.commit("app/updateField",{path:"loaded",value:!0}),o.onConnectionReady&&o.onConnectionReady()):(console.warn("Cannot load instance settings"),o.store.commit("template/updateField",{path:"native",value:{}}),o.store.commit("app/updateField",{path:"loaded",value:!0}),o.onConnectionReady&&o.onConnectionReady())})),await o.socket.getEnums("rooms").then((e=>{const t=[],s=o.getMslRooms(e);for(const[o,i]of Object.entries(s))t.push({label:i,value:o});o.store.commit("template/updateField",{path:"roomOptions",value:t})})),await o.socket.getEnums("functions").then((e=>{const t=[],s=o.getMslFunctions(e);for(const[o,i]of Object.entries(s))t.push({label:i,value:o});o.store.commit("template/updateField",{path:"funcOptions",value:t})}))},onError:e=>{this.showError(e)}}))}getSystemConfig(){return this.socket.objects&&this.socket.objects["system.config"]?Promise.resolve(this.socket.objects["system.config"]):this.socket.getObject("system.config")}onPrepareLoad(e){this.encryptedFields&&this.encryptedFields.forEach((t=>{e[t]&&(e[t]=this.decrypt(e[t]))}))}onPrepareSave(e){this.encryptedFields&&this.encryptedFields.forEach((t=>{e[t]&&(e[t]=this.encrypt(e[t]))}))}getExtendableInstances(){return new Promise((e=>{this.socket.socket.emit("getObjectView","system","instance",null,((t,o)=>{e(t?[]:o.rows.filter((e=>e.value.common.webExtendable)).map((e=>e.value)))}))}))}getIpAddresses(e){return new Promise(((t,o)=>{this.socket.socket.emit("getHostByIp",e||this.common.host,((o,s)=>{const i=[{name:`[IPv4] 0.0.0.0 - ${de.t("Listen on all IPs")}`,address:"0.0.0.0",family:"ipv4"}],n=[{name:"[IPv6] ::",address:"::",family:"ipv6"}];s&&(e=s,e.native.hardware&&e.native.hardware.networkInterfaces&&Object.keys(e.native.hardware.networkInterfaces).forEach((t=>e.native.hardware.networkInterfaces[t].forEach((e=>{"IPv6"!==e.family?i.push({name:`[${e.family}] ${e.address} - ${t}`,address:e.address,family:"ipv4"}):n.push({name:`[${e.family}] ${e.address} - ${t}`,address:e.address,family:"ipv6"})})))),n.forEach((e=>i.push(e)))),t(i)}))}))}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return window.changed=!!t,t}decrypt(e){let t="";for(let o=0;o<e.length;o++)t+=String.fromCharCode(this._secret[o%this._secret.length].charCodeAt(0)^e.charCodeAt(o));return t}encrypt(e){let t="";for(let o=0;o<e.length;o++)t+=String.fromCharCode(this._secret[o%this._secret.length].charCodeAt(0)^e.charCodeAt(o));return t}selectTab(e,t){window.localStorage[`${this.adapterName}-adapter`]=e,this.selectedTab=e,this.selectedTabNum=t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&(this.store.commit("template/updateField",{path:"native",value:e}),this.store.commit("app/updateField",{path:"changed",value:this.getIsChanged(e)}))}onSave(e){let t;this.state.isConfigurationError?this.store.commit("app/updateField",{path:"errorText",value:this.state.isConfigurationError}):this.socket.getObject(this.instanceId).then((e=>{t=e||{};for(const o in this.state.native)this.state.native.hasOwnProperty(o)&&(t.native[o]=this.state.native[o]);if(this.state.common)for(const o in this.state.common)this.state.common.hasOwnProperty(o)&&(t.common[o]=this.state.common[o]);return this.onPrepareSave(t.native),this.socket.setObject(this.instanceId,t)})).then((()=>{this.savedNative=JSON.parse(JSON.stringify(t.native)),this.store.commit("app/updateField",{path:"changed",value:!1}),window.changed=!1,e&&we.onClose()}))}static onClose(){if("undefined"!==typeof window.parent&&window.parent)try{window.parent.$iframeDialog&&"function"===typeof window.parent.$iframeDialog.close?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch(e){window.parent.postMessage("close","*")}}showError(e){this.store.commit("app/updateField",{path:"errorText",value:e})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.store.commit("app/updateField",{path:"isConfigurationError",value:e})}static generateFile(e,t){const o=window.document.createElement("a");o.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),o.setAttribute("download",e),o.style.display="none",window.document.body.appendChild(o),o.click(),window.document.body.removeChild(o)}handleFileSelect(e){const t=e.target.files[0];if(t){const e=new window.FileReader;e.onload=e=>{const t=e.target.result;try{const e=JSON.parse(t);e.native&&e.common?e.common.name!==this.common.name?this.showError(de.t("otherConfig",{msg:e.common.name})):this.onLoadConfig(e.native):this.showError(de.t("invalidConfig"))}catch(e){this.showError(e.toString())}},e.readAsText(t)}else this.showError("Failed to open JSON File")}download(){const e={_id:`system.adapter.${this.common.name}.${this.instance}`,common:JSON.parse(JSON.stringify(this.common)),native:this.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,we.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity",0),e.addEventListener("change",(e=>this.handleFileSelect(e,(()=>{}))),!1),e.click()}getMslRooms(e){const t={},o=[];for(const s in e)e.hasOwnProperty(s)&&o.push(s);o.sort(((e,t)=>(e=e.toLowerCase(),t=t.toLowerCase(),e>t?1:e<t?-1:0)));for(let s=0;s<o.length;s++)t[o[s]]=e[o[s]].common.name||s,"object"===typeof t[o[s]]&&(t[o[s]]=t[o[s]][this.socket.systemLang]||t[o[s]].en);return t}getMslFunctions(e){const t={},o=[];for(const s in e)e.hasOwnProperty(s)&&o.push(s);o.sort(((e,t)=>(e=e.toLowerCase(),t=t.toLowerCase(),e>t?1:e<t?-1:0)));for(let s=0;s<o.length;s++)t[o[s]]=e[o[s]].common.name||s,"object"===typeof t[o[s]]&&(t[o[s]]=t[o[s]][this.socket.systemLang]||t[o[s]].en);return t}}var ye=we,Ce=({Vue:e,store:t})=>{const o={adapterName:"milight-smart-light",encryptedFields:["pass"],socket:{port:parseInt(window.location.port,10)},store:t};8080===o.socket.port&&(o.socket.port=8081),e.prototype.$connection=new ye(o),e.prototype.$onClose=ye.onClose};const je="";async function Pe(){const{app:e,store:t,router:o}=await Y();let s=!1;const i=e=>{s=!0;const t=Object(e)===e?o.resolve(e).route.fullPath:e;window.location.href=t},n=window.location.href.replace(window.location.origin,""),r=[ue,pe,Ce];for(let l=0;!1===s&&l<r.length;l++)if("function"===typeof r[l])try{await r[l]({app:e,router:o,store:t,Vue:c["a"],ssrContext:null,redirect:i,urlPath:n,publicPath:je})}catch(a){return a&&a.url?void(window.location.href=a.url):void console.error("[Quasar] boot error:",a)}!0!==s&&new c["a"](e)}Pe()},3452:function(e,t,o){"use strict";o.d(t,"a",(function(){return r}));var s=o("ded3"),i=o.n(s),n=o("5935");const r={computed:i()({},Object(n["b"])("app",["changed","connected","loaded","isConfigurationError","errorText"]))}},"479e":function(e,t){e.exports={"Listen on all IPs":"Слушайте все IP","load configuration from file":"загрузить конфигурацию из файла","save and close":"сохрани и закрой","save configuration to file":"сохранить конфигурацию в файл",appForm:{activeApp:"Активируйте приложение milight-smart-light",debounceTime:"Время задержки (мс)",serverPort:"Порт сервера",socketPort:"Разъем порт"},bridgeForm:{"4zones":"4 зоны","8zones":"8 зон",changeMessage:"При изменении удаляются все зоны.",commandRepeat:"Команда повторяется",controllerIp:"IP",controllerPort:"порт",delayBetweenCommands:"Задержка между двумя командами",ibox1:"iBox1",ibox2:"iBox2",legacy:"Наследие",noBridgeFound:"Моста не найдено. ",startInstance:"Сначала необходимо запустить экземпляр.",type:"Тип",v6:"Версия 6"},cancel:"Отмена",close:"близко",otherConfig:"Выбранная конфигурация принадлежит адаптеру: {msg}",ra_filter_customs:"Настройки",ra_filter_func:"Функция",ra_filter_id:"МНЕ БЫ",ra_filter_name:"название",ra_filter_role:"Роль",ra_filter_room:"Комната",ra_filter_type:"Тип",ra_tooltip_ack:"Подтвержденный флаг",ra_tooltip_copyState:"Скопируйте значение состояния",ra_tooltip_customConfig:"Пользовательские настройки",ra_tooltip_deleteObject:"Удалить объект",ra_tooltip_editObject:"Редактировать объект",ra_tooltip_editState:"Изменить значение состояния",ra_tooltip_from:"Из",ra_tooltip_lc:"Последнее изменение",ra_tooltip_quality:"Качество",ra_tooltip_ts:"Отметка времени",ra_tooltip_user:"Пользователь",ra_tooltip_value:"Значение",readme:"Прочти меня",save:"спасти",tabs:{app:"Приложение MSL",bridge:"мост",zones:"зоны"},validateMsg:{between:"{field} должно быть между {min} и {max}.",ip:"{field} не является действительным IP-адресом.",isAllowedZoneNumber:"Для {field} {value} необходимо выбрать допустимый тип зоны.",isAllowedZoneType:"Для {field} {value} необходимо выбрать допустимую зону.",isunique:"Каждое {field} может появиться только один раз.",max:"Для поля {field} можно использовать не более {length} цифр.",minValue:"Значение для {field} должно быть не менее {min}.",numeric:"Для {field} разрешены только целые числа.",regexColorOffset:"{field} {value} имеет неправильный формат. ",regexGroupAndName:'{field}: "{value}" содержит недопустимые символы.',required:"{field} необходимо указать."},zonesForm:{bridge:"Мост (iBox1)",fullColor8Zone:"RGB (8) + CCT",fullColor:"RGB + CCT",nodata:"Пожалуйста, создайте зону (и)!",rgbw:"RGB (Вт)",thactive:"активный",thcoloroffset:"смещение цвета",thfunction:"Группы)",thgroupname:"Группа (зона)",throom:"комната",thzonename:"Имя (зона)",thzonenumber:"Зона",thzonetype:"Тип (зона)",white:"Белый",zone1:"один",zone2:"два",zone3:"три",zone4:"четыре",zone5:"пять",zone6:"шесть",zone7:"Семь",zone8:"8",zone9:"девять"}}},"774a":function(e,t){e.exports={"Listen on all IPs":"Ouça em todos os IPs","load configuration from file":"carregar configuração do arquivo","save and close":"salvar e fechar","save configuration to file":"salvar configuração em arquivo",appForm:{activeApp:"Ative o aplicativo milight-smart-light",debounceTime:"Tempo de debounce (ms)",serverPort:"Porta do servidor",socketPort:"Porta de soquete"},bridgeForm:{"4zones":"4 zonas","8zones":"8 zonas",changeMessage:"Ao alterar, todas as zonas são excluídas.",commandRepeat:"Comando se repete",controllerIp:"IP",controllerPort:"porta",delayBetweenCommands:"Atraso entre dois comandos",ibox1:"iBox1",ibox2:"iBox2",legacy:"Legado",noBridgeFound:"Nenhuma ponte foi encontrada. ",startInstance:"A instância deve ser iniciada primeiro.",type:"Typ",v6:"Versão 6"},cancel:"cancelar",close:"fechar",otherConfig:"A configuração selecionada pertence ao adaptador: {msg}",ra_filter_customs:"Definições",ra_filter_func:"Função",ra_filter_id:"EU IRIA",ra_filter_name:"Nome",ra_filter_role:"Função",ra_filter_room:"Quarto",ra_filter_type:"Tipo",ra_tooltip_ack:"Bandeira reconhecida",ra_tooltip_copyState:"Copie o valor do estado",ra_tooltip_customConfig:"Configurações personalizadas",ra_tooltip_deleteObject:"Excluir objeto",ra_tooltip_editObject:"Editar objeto",ra_tooltip_editState:"Edite o valor do estado",ra_tooltip_from:"De",ra_tooltip_lc:"Última alteração",ra_tooltip_quality:"Qualidade",ra_tooltip_ts:"Carimbo de tempo",ra_tooltip_user:"Do utilizador",ra_tooltip_value:"Valor",readme:"Leia-me",save:"Salve ",tabs:{app:"MSL App",bridge:"ponte",zones:"zonas"},validateMsg:{between:"{field} deve estar entre {min} e {max}.",ip:"{field} não é um endereço IP válido.",isAllowedZoneNumber:"Um tipo de zona válido deve ser selecionado para {field} {value}.",isAllowedZoneType:"Uma zona válida deve ser selecionada para {field} {value}.",isunique:"Cada {field} só pode aparecer uma vez.",max:"Apenas um máximo de {length} dígitos são permitidos para {field}.",minValue:"O valor para {field} deve ser pelo menos {min}.",numeric:"Apenas números inteiros são permitidos para {field}.",regexColorOffset:"{field} {value} tem o formato errado. ",regexGroupAndName:'{field}: "{value}" contém caracteres inválidos.',required:"{field} deve ser especificado."},zonesForm:{bridge:"Bridge (iBox1)",fullColor8Zone:"RGB (8) + CCT",fullColor:"RGB + CCT",nodata:"Por favor, crie zona (s)!",rgbw:"RGB (W)",thactive:"ativo",thcoloroffset:"deslocamento de cor",thfunction:"Grupos)",thgroupname:"Grupo (zona)",throom:"quarto",thzonename:"Nome (zona)",thzonenumber:"Zona",thzonetype:"Tipo (zona)",white:"Branco",zone1:"1",zone2:"dois",zone3:"três",zone4:"quatro",zone5:"cinco",zone6:"seis",zone7:"Sete",zone8:"oito",zone9:"nove"}}},"811a":function(e,t){e.exports={"Listen on all IPs":"Listen on all IPs","load configuration from file":"load configuration from file","save and close":"save and close","save configuration to file":"save configuration to file",appForm:{activeApp:"Activate the milight-smart-light app",debounceTime:"Debounce time (ms)",serverPort:"Server port",socketPort:"Socket port"},bridgeForm:{"4zones":"4 zones","8zones":"8 zones",changeMessage:"When changing, all zones are deleted.",commandRepeat:"Command repeats",controllerIp:"IP",controllerPort:"port",delayBetweenCommands:"Delay between two commands",ibox1:"iBox1",ibox2:"iBox2",legacy:"Legacy",noBridgeFound:"No bridge was found. Please try again.",startInstance:"The instance has to be started first.",type:"Typ",v6:"Version 6"},cancel:"cancel",close:"close",otherConfig:"The selected configuration belongs to the adapter: {msg}",ra_filter_customs:"Settings",ra_filter_func:"Function",ra_filter_id:"ID",ra_filter_name:"Name",ra_filter_role:"Role",ra_filter_room:"Room",ra_filter_type:"Type",ra_tooltip_ack:"Acknowledged flag",ra_tooltip_copyState:"Copy the state value",ra_tooltip_customConfig:"Custom settings",ra_tooltip_deleteObject:"Delete object",ra_tooltip_editObject:"Edit object",ra_tooltip_editState:"Edit the state value",ra_tooltip_from:"From",ra_tooltip_lc:"Last changed",ra_tooltip_quality:"Quality",ra_tooltip_ts:"Time stamp",ra_tooltip_user:"User",ra_tooltip_value:"Value",readme:"readme",save:"save",tabs:{app:"MSL App",bridge:"bridge",zones:"zones"},validateMsg:{between:"{field} must be between {min} and {max}.",ip:"{field} is not a valid ip address.",isAllowedZoneNumber:"A valid zone type must be selected for {field} {value}.",isAllowedZoneType:"A valid zone must be selected for {field} {value}.",isunique:"Each {field} can only appear once.",max:"Only a maximum of {length} digits are allowed for {field}.",minValue:"The value for {field} must be at least {min}.",numeric:"Only whole numbers are allowed for {field}.",regexColorOffset:"{field} {value} has the wrong format. Allowed: 0xYY, Y = [0..9a..f]",regexGroupAndName:'{field}: "{value}" contains invalid characters.',required:"{field} must be specified."},zonesForm:{bridge:"Bridge (iBox1)",fullColor8Zone:"RGB(8) + CCT",fullColor:"RGB + CCT",nodata:"Please create zone(s)!",rgbw:"RGB(W)",thactive:"active",thcoloroffset:"color offset",thfunction:"Groups)",thgroupname:"Group (zone)",throom:"room",thzonename:"Name (zone)",thzonenumber:"Zone",thzonetype:"Type (zone)",white:"White",zone1:"one",zone2:"two",zone3:"three",zone4:"four",zone5:"five",zone6:"six",zone7:"seven",zone8:"eight",zone9:"nine"}}},9446:function(e,t,o){"use strict";o.d(t,"a",(function(){return a}));var s=o("ded3"),i=o.n(s),n=o("2f62"),r=o("5935");const a={computed:i()(i()(i()(i()(i()({},Object(n["e"])("template",["native"])),Object(r["c"])("template",{zones:"native.zones"})),Object(r["b"])("template",{activeApp:"native.activeApp",serverPort:"native.serverPort",socketPort:"native.socketPort",controllerType:"native.controllerType",controllerIp:"native.controllerIp",controllerPortLegacy:"native.controllerPortLegacy",controllerPortV6:"native.controllerPortV6",controllerPort:"native.controllerPort",commandRepeat:"native.commandRepeat",delayBetweenCommands:"native.delayBetweenCommands",iBox:"native.iBox",maxZones:"native.maxZones",debounceTime:"native.debounceTime",roomOptions:"roomOptions",funcOptions:"funcOptions"})),Object(r["b"])("template",{isValidBridge:"validForms.bridge",isValidZones:"validForms.zones",isValidApp:"validForms.app"})),Object(n["c"])("template",{isValidAll:"isValidAll"}))}},"9d7a":function(e,t,o){e.exports=o.p+"img/iobroker-progress.ac036256.png"},c071:function(e,t){e.exports={"Listen on all IPs":"Luister op alle IP-adressen","load configuration from file":"laad configuratie uit bestand","save and close":"opslaan en sluiten","save configuration to file":"sla de configuratie op in een bestand",appForm:{activeApp:"Activeer de milight-smart-light app",debounceTime:"Debouncetijd (ms)",serverPort:"Server poort",socketPort:"Socket-poort"},bridgeForm:{"4zones":"4 zones","8zones":"8 zones",changeMessage:"Bij het wijzigen worden alle zones verwijderd.",commandRepeat:"Commando herhaalt zich",controllerIp:"IK P",controllerPort:"haven",delayBetweenCommands:"Vertraging tussen twee opdrachten",ibox1:"iBox1",ibox2:"iBox2",legacy:"Legacy",noBridgeFound:"Er is geen brug gevonden. ",startInstance:"De instantie moet eerst worden gestart.",type:"Typ",v6:"Versie 6"},cancel:"annuleren",close:"dichtbij",otherConfig:"De geselecteerde configuratie hoort bij de adapter: {msg}",ra_filter_customs:"Instellingen",ra_filter_func:"Functie",ra_filter_id:"ID kaart",ra_filter_name:"Naam",ra_filter_role:"Rol",ra_filter_room:"Kamer",ra_filter_type:"Type",ra_tooltip_ack:"Erkende vlag",ra_tooltip_copyState:"Kopieer de statuswaarde",ra_tooltip_customConfig:"Aangepaste instellingen",ra_tooltip_deleteObject:"Verwijder object",ra_tooltip_editObject:"Bewerk object",ra_tooltip_editState:"Bewerk de statuswaarde",ra_tooltip_from:"Van",ra_tooltip_lc:"Laatst gewijzigd",ra_tooltip_quality:"Kwaliteit",ra_tooltip_ts:"Tijdstempel",ra_tooltip_user:"Gebruiker",ra_tooltip_value:"Waarde",readme:"Leesmij",save:"opslaan",tabs:{app:"MSL-app",bridge:"brug",zones:"zones"},validateMsg:{between:"{field} moet tussen {min} en {max} zijn.",ip:"{field} is geen geldig IP-adres.",isAllowedZoneNumber:"Er moet een geldig zonetype worden geselecteerd voor {field} {value}.",isAllowedZoneType:"Er moet een geldige zone worden geselecteerd voor {field} {value}.",isunique:"Elk {field} kan maar één keer voorkomen.",max:"Er zijn maximaal {length} cijfers toegestaan voor {field}.",minValue:"De waarde voor {field} moet minimaal {min} zijn.",numeric:"Alleen hele getallen zijn toegestaan voor {field}.",regexColorOffset:"{field} {value} heeft de verkeerde indeling. ",regexGroupAndName:'{field}: "{value}" bevat ongeldige tekens.',required:"{field} moet worden opgegeven."},zonesForm:{bridge:"Bridge (iBox1)",fullColor8Zone:"RGB (8) + CCT",fullColor:"RGB + CCT",nodata:"Creëer zone (s)!",rgbw:"RGB (W)",thactive:"actief",thcoloroffset:"kleur offset",thfunction:"Groepen)",thgroupname:"Groep (zone)",throom:"kamer",thzonename:"Naam (zone)",thzonenumber:"Zone",thzonetype:"Type (zone)",white:"Wit",zone1:"een",zone2:"twee",zone3:"drie",zone4:"vier",zone5:"vijf",zone6:"zes",zone7:"zeven",zone8:"acht",zone9:"negen"}}},cf25:function(e,t,o){"use strict";o("25e8")},d35b:function(e,t,o){var s=o("24fb");t=s(!1),t.push([e.i,"",""]),e.exports=t},d921:function(e,t){e.exports={"Listen on all IPs":"Hören Sie auf alle IPs","load configuration from file":"Laden Sie die Konfiguration aus der Datei","save and close":"speichern und schließen","save configuration to file":"Speichern Sie die Konfiguration in der Datei",appForm:{activeApp:"Aktivieren der milight-smart-light App",debounceTime:"Entprellzeit (ms)",serverPort:"Server Port",socketPort:"Socket Port"},bridgeForm:{"4zones":"4 Zonen","8zones":"8 Zonen",changeMessage:"Bei Änderung werden alle Zonen gelöscht.",commandRepeat:"Befehlswiederholungen",controllerIp:"IP",controllerPort:"Port",delayBetweenCommands:"Pause zwischen zwei Befehlen",ibox1:"iBox1",ibox2:"iBox2",legacy:"Legacy",noBridgeFound:"Es wurde keine Bridge gefunden. Bitte erneut versuchen.",startInstance:"Die Instanz muss erst gestartet werden.",type:"Typ",v6:"Version 6"},cancel:"abbrechen",close:"schließen",otherConfig:"Die gewählte Konfiguration gehört zu dem Adapter: {msg}",ra_filter_customs:"Einstellungen",ra_filter_func:"Funktion",ra_filter_id:"ID",ra_filter_name:"Name",ra_filter_role:"Rolle",ra_filter_room:"Zimmer",ra_filter_type:"Typ",ra_tooltip_ack:"Bestätigte Flagge",ra_tooltip_copyState:"Kopieren Sie den Statuswert",ra_tooltip_customConfig:"Benutzerdefinierte Einstellungen",ra_tooltip_deleteObject:"Objekt löschen",ra_tooltip_editObject:"Objekt bearbeiten",ra_tooltip_editState:"Bearbeiten Sie den Statuswert",ra_tooltip_from:"Von",ra_tooltip_lc:"Zuletzt geändert",ra_tooltip_quality:"Qualität",ra_tooltip_ts:"Zeitstempel",ra_tooltip_user:"Nutzer",ra_tooltip_value:"Wert",readme:"readme",save:"speichern",tabs:{app:"MSL App",bridge:"Bridge",zones:"Zonen"},validateMsg:{between:"{field} mus zwischen {min} und {max} liegen.",ip:"{field} ist keine gültige IP-Adresse.",isAllowedZoneNumber:"Für {field} {value} muss ein gültiger Zonentyp gewählt werden.",isAllowedZoneType:"Für {field} {value} muss eine gültige Zone gewählt werden.",isunique:"Jede {field} darf nur einmal vorkommen.",max:"Für {field} sind nur maximal {length} Stellen erlaubt.",minValue:"Der Wert für {field} muss mindestens {min} betragen.",numeric:"Für {field} sind nur ganze Zahlen erlaubt.",regexColorOffset:"{field} {value} hat falsches Format. Erlaubt: 0xYY, Y=[0..9a..f]",regexGroupAndName:'{field}: "{value}" enthält ungültige Zeichen.',required:"{field} muss angegeben werden."},zonesForm:{bridge:"Bridge (iBox1)",fullColor8Zone:"RGB(8) + CCT",fullColor:"RGB + CCT",nodata:"Bitte Zone(n) anlegen!",rgbw:"RGB(W)",thactive:"aktiv",thcoloroffset:"Farboffset",thfunction:"Gruppe(n)",thgroupname:"Gruppe (Zone)",throom:"Raum",thzonename:"Name (Zone)",thzonenumber:"Zone",thzonetype:"Typ (Zone)",white:"Weiß",zone1:"eins",zone2:"zwei",zone3:"drei",zone4:"vier",zone5:"fünf",zone6:"sechs",zone7:"sieben",zone8:"acht",zone9:"neun"}}},e048:function(e,t){},e3bd:function(e,t,o){var s=o("24fb");t=s(!1),t.push([e.i,".body--light{background:#efefef}",""]),e.exports=t}});