HTTP/1.1 200 OK
Content-Type: text/javascript

 
// DOM Selectors shorthands

/**
 * Get element by query selector
 * @param {String} q    - element query selector
 * @return {Object}     - HTMLObject
 */
var $get = function (q) {
    return document.querySelector(q);
};

/**
 * Get elements by query selector and convert to array
 * 
 * @param {String} q    - elements query selector
 * @return {Array}      - array of elements
 */
var $$get = function (q) {
    return [].slice.call(document.querySelectorAll(q));
};

/**
 * 
 * DOM elements extending methods.
 * 
 * Some methods looks like original methods duplications but it using for full browsers integrity keeping.
 * It will be used also in future visualisation scripts.
 */

/**
 * Check if element has class
 * @param {String} c - className to check
 */
HTMLElement.prototype.hasClass = function (c) {
    return this.className.indexOf(c) > -1;
}

/**
 * Add class to element classes
 * @param {String} c    - adding className
 */
HTMLElement.prototype.addClass = function (c) {
    if (this.classList && this.classList.add) {
        this.classList.add(c);
    } else {
        this.setAttribute('class', this.getAttribute('class') + ' ' + c);
    }
    return this;
}

/**
 * Remove class from element classes
 * @param {String} c    - removing className
 */
HTMLElement.prototype.removeClass = function (c) {
    if (this.classList && this.classList.remove) {
        this.classList.remove(c);
    } else {
        this.setAttribute('class', this.getAttribute('class').replace(c, ''));
    }
    return this;
}

/**
 * Replace class a to b
 * @param {String} a    - replacing class
 * @param {String} b    - class to replace
 * 
 */
HTMLElement.prototype.replaceClass = function(a,b){
    if( this.hasClass(a) ){
        this.removeClass(a);
        this.addClass(b);
    }
    return this;
}

HTMLElement.prototype.setStyle = function(style){
    for(var attr in style){
        if( style.hasOwnProperty(attr) ){
            this.style[attr] = style[attr];
        }
    }
    return this;
};


/**
 * Add event to element
 * Older IE browser doesn't support standard addEventListener methods
 * 
 * @param {String}     - event name
 * @param {Function}   - event handler method
 */
HTMLElement.prototype.addEvent = function (name, handler, state) {
    if (this.addEventListener) {
        this.addEventListener(name, handler, state);
    } else {
        this.attachEvent('on' + name, handler, state);
    }
    return this;
}


HTMLElement.prototype.show = function () {
    this.style.display = 'block';
}
HTMLElement.prototype.hide = function () {
    this.style.display = 'none';
}

/**
 * Convert HTMLCollection to array
 */
Object.prototype.toArray = function () {
    return [].slice.call(this);
};

var getValueColor = (v = 0, o = {}) => {
    var colors = ['00bce4', 'ffc168', 'ff9900', 'ff6c5f', 'ff0000'], min = o.min || 0, max = o.max || 100;
    return ((v) => '#' + colors[v < 0 ? 0 : v > colors.length - 1 ? colors.length - 1 : v])(Math.round((v - min) / ((max - min) / colors.length)));
}; 
!function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,u,l){for(var i,o,s,f=0,c=[];r.length>f;f++)o=r[f],n[o]&&c.push(n[o][0]),n[o]=0;for(i in u)Object.prototype.hasOwnProperty.call(u,i)&&(e[i]=u[i]);for(a&&a(r,u,l);c.length;)c.shift()();if(l)for(f=0;l.length>f;f++)s=t(t.s=l[f]);return s};var r={},n={1:0};t.e=function(e){function a(){i.onerror=i.onload=null,clearTimeout(o);var t=n[e];0!==t&&(t&&t[1](Error("Loading chunk "+e+" failed.")),n[e]=void 0)}var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var u=new Promise(function(t,a){r=n[e]=[t,a]});r[2]=u;var l=document.getElementsByTagName("head")[0],i=document.createElement("script");i.type="text/javascript",i.charset="utf-8",i.async=!0,i.timeout=12e4,t.nc&&i.setAttribute("nonce",t.nc),i.src=t.p+""+e+".js";var o=setTimeout(a,12e4);return i.onerror=i.onload=a,l.appendChild(i),u},t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t.oe=function(e){throw console.error(e),e},t(t.s=9)}([function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var _PL=__webpack_require__(64),_PL2=_interopRequireDefault(_PL),_EN=__webpack_require__(63),_EN2=_interopRequireDefault(_EN),_DE=__webpack_require__(62),_DE2=_interopRequireDefault(_DE),_RU=__webpack_require__(65),_RU2=_interopRequireDefault(_RU),_CZ=__webpack_require__(61),_CZ2=_interopRequireDefault(_CZ),_LANG={current:"PL",showError:!1,languages:{PL:_PL2.default,EN:_EN2.default,DE:_DE2.default,RU:_RU2.default,CZ:_CZ2.default},get:function get(phrasePath){try{return eval("_LANG.languages['"+(window.__LANG__||_LANG.current)+"']."+phrasePath)}catch(e){if(_LANG.showError)throw Error(e);return}}};exports.default=_LANG},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(59),l=r(u),i=a(0),o=r(i),s=a(60),f=r(s),c={type:l.default.analog},d={type:l.default.binary},m={type:l.default.multi},p={value:f.default.percentage},h={type:l.default.hum};t.default={analogPercentage:n({},c,p),binarySimple:n({},d,{states:{0:function(e){return o.default.get("params.stop")},1:function(e){return o.default.get("params.start")}}}),binaryActive:n({},d,{states:{0:function(e){return o.default.get("params.active")},1:function(e){return o.default.get("params.noactive")}}}),defaultAlarm:{type:l.default.defaultAlarm,states:{0:function(e){return o.default.get("alarms.off")},1:function(e){return o.default.get("alarms.on")}}},dampers:{binary:n({},d,{states:{0:function(e){return o.default.get("dampers.off")},1:function(e){return o.default.get("dampers.on")}}})},filter:n({},d,{states:{0:function(e){return o.default.get("filters.ok")},1:function(e){return o.default.get("filters.dirty")}}}),recuperators:{cross:n({},c,p),rotary:n({},c,p),rotaryStatus:n({},d,{states:{0:function(e){return o.default.get("recuperators.rotaryStatus.off")},1:function(e){return o.default.get("recuperators.rotaryStatus.on")}}}),glycol:n({},c,p)},fanStatus:n({},d,{states:{0:function(e){return o.default.get("fan.states.off")},1:function(e){return o.default.get("fan.states.on")}}}),co2:n({},c,{value:f.default.co2}),amperage:n({},c,{value:f.default.amperage}),voltage:n({},c,{value:f.default.voltage}),pressure:n({},c,{value:f.default.pressure}),flow:n({},c,{value:f.default.flow}),pressureBar:n({},c,{value:f.default.pressureBar}),frequency:n({},c,{value:f.default.frequency}),rpm:n({},c,{value:f.default.rpm}),humidityBy:n({},h,{value:f.default.hum}),faultFC:{type:l.default.actual,value:f.default.none},serviceMode:n({},d,{states:{0:function(e){return o.default.get("params.serviceModeOff")},1:function(e){return o.default.get("params.serviceModeOff")},2:function(e){return o.default.get("params.serviceModeOff")},4:function(e){return o.default.get("params.serviceModeOff")},8:function(e){return o.default.get("params.serviceModeOff")},16:function(e){return o.default.get("params.serviceModeOff")},32:function(e){return o.default.get("params.serviceModeOff")},64:function(e){return o.default.get("params.serviceModeOff")},128:function(e){return o.default.get("params.serviceModeOn")}}}),coolingDemand:n({},d,{states:{0:function(e){return o.default.get("cooler.coolingDemandStates.stop")},1:function(e){return o.default.get("cooler.coolingDemandStates.start")}}}),coolerFreon:n({},m,{states:{0:function(e){return o.default.get("cooler.freonStates.stop")},1:function(e){return o.default.get("cooler.freonStates.state1")},2:function(e){return o.default.get("cooler.freonStates.state1")},3:function(e){return o.default.get("cooler.freonStates.state12")}}}),coolerReverse:n({},m,{states:{0:function(e){return o.default.get("cooler.reverseStates.stop")},1:function(e){return o.default.get("cooler.reverseStates.start")},2:function(e){return o.default.get("cooler.reverseStates.defrost")},3:function(e){return o.default.get("cooler.reverseStates.defrost")}}}),coolerReverseHC:n({},d,{states:{0:function(e){return o.default.get("cooler.reverseStates.heating")},1:function(e){return o.default.get("cooler.reverseStates.cooling")}}}),pump:n({},d,{states:{0:function(e){return o.default.get("pump.off")},1:function(e){return o.default.get("pump.on")}}}),temperature:{type:l.default.temperature,value:f.default.temperature},humidity:{type:l.default.hum,value:f.default.humidity},humidityAbsolute:{type:l.default.hum,value:f.default.humidityAbsolute},runstatushum:n({},m,{states:{0:function(e){return o.default.get("humidity.runstatushum.inactive")},1:function(e){return o.default.get("humidity.runstatushum.startvapor")},2:function(e){return o.default.get("humidity.runstatushum.waterfill")},3:function(e){return o.default.get("humidity.runstatushum.vapor")},4:function(e){return o.default.get("humidity.runstatushum.drainasf")},5:function(e){return o.default.get("humidity.runstatushum.drainwater")},6:function(e){return o.default.get("humidity.runstatushum.drainend")},7:function(e){return o.default.get("humidity.runstatushum.drainfull")},8:function(e){return o.default.get("humidity.runstatushum.drainhand")},9:function(e){return o.default.get("humidity.runstatushum.nowater")},10:function(e){return o.default.get("humidity.runstatushum.rinsing")},11:function(e){return o.default.get("humidity.runstatushum.drainperiod")}}}),runstatehum:n({},m,{states:{0:function(e){return o.default.get("humidity.runstatehum.inactive")},1:function(e){return o.default.get("humidity.runstatehum.sofstart")},2:function(e){return o.default.get("humidity.runstatehum.redconststart")},3:function(e){return o.default.get("humidity.runstatehum.const")},4:function(e){return o.default.get("humidity.runstatehum.redconst")},5:function(e){return o.default.get("humidity.runstatehum.sofstart")},6:function(e){return o.default.get("humidity.runstatehum.sofstart")},7:function(e){return o.default.get("humidity.runstatehum.sofstart")}}}),a1bithum:n({},m,{states:{0:function(e){return o.default.get("alarms.off")},1:function(e){return o.default.get("humidity.a1bithum.bit0")},2:function(e){return o.default.get("humidity.a1bithum.bit1")},4:function(e){return o.default.get("humidity.a1bithum.bit2")},8:function(e){return o.default.get("humidity.a1bithum.bit3")},16:function(e){return o.default.get("humidity.a1bithum.bit4")},32:function(e){return o.default.get("humidity.a1bithum.bit5")}}}),a2bithum:n({},m,{states:{0:function(e){return o.default.get("alarms.off")},1:function(e){return o.default.get("humidity.a2bithum.bit0")},2:function(e){return o.default.get("humidity.a2bithum.bit1")},4:function(e){return o.default.get("humidity.a2bithum.bit2")},8:function(e){return o.default.get("humidity.a2bithum.bit3")}}}),a3bithum:n({},m,{states:{0:function(e){return o.default.get("alarms.off")},1:function(e){return o.default.get("humidity.a3bithum.bit0")},2:function(e){return o.default.get("humidity.a3bithum.bit1")},4:function(e){return o.default.get("humidity.a3bithum.bit2")},8:function(e){return o.default.get("humidity.a3bithum.bit3")},16:function(e){return o.default.get("humidity.a3bithum.bit4")}}}),workMode:n({},m,{states:{0:function(e){return o.default.get("params.modes.stop")},1:function(e){return o.default.get("params.modes.gear1")},2:function(e){return o.default.get("params.modes.gear2")},4:function(e){return o.default.get("params.modes.gear3")},8:function(e){return o.default.get("params.modes.standby")},16:function(e){return o.default.get("params.modes.calendar")}}}),hpmcm:{mode:n({},d,{states:{0:function(e){return o.default.get("hpmcm.modes.heat")},1:function(e){return o.default.get("hpmcm.modes.cool")}}}),compressors:n({},m,{states:{0:function(e){return o.default.get("hpmcm.compressorsStates.stop")},1:function(e){return o.default.get("hpmcm.compressorsStates._1st")},2:function(e){return o.default.get("hpmcm.compressorsStates._2nd")},3:function(e){return o.default.get("hpmcm.compressorsStates.both")}}}),alarm:n({},d,{states:{0:function(e){return o.default.get("hpmcm.modes.alarm")},1:function(e){return o.default.get("hpmcm.modes.ok")}}})}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=(r(n),a(1));r(u);t.default={control:!0,handler:function(e,t){var a=e.getElement(),r=e.getTemplate(),n=e.definition,u=e.value,l=n.bar;if(l){var i=0;l.min=l.min?l.min:0,l.max=l.max?l.max:100,i=(u-l.min)/(l.max-l.min)*100+"%",a.querySelector(".bar>div").setStyle({width:i})}a.dataset.title="function"==typeof n.label?n.label(t):n.label,a.querySelector(".suffix").innerHTML=r.value.suffix,a.querySelector(".value").innerHTML="string"!=typeof u?u.toFixed(r.value.decimals||0):u}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={LANG:596,UNIT_STATE:0,SERVICE_MODE:0,SEASON_ACT:1,WORK_MODE:2,TSET:3,TSET_ACT:4,TMAIN:5,B1:6,TSUP:6,B2:7,TEXH:7,B3:8,TOUT:8,B4:9,TREC:9,B8:10,TBACKWATER:10,CO2EXH:11,HSET:12,HMAIN:13,HSUP:14,HREG:15,HEXH:15,HUMIDIFIER:16,E6:16,Y11:17,DEHUM:18,VENT:19,PWRSUP:20,SUPPLY_FAN:20,PASUP:21,FLOWSUP:22,PWREXH:23,EXHAUST_FAN:23,PAEXH:24,FLOWEXH:25,ISUP:26,FSUP:27,RPMSUP:28,USUP:29,FAULTSUP:30,COMSUP:31,ISUP2:32,FSUP2:33,RPMSUP2:34,USUP2:35,FAULTSUP2:36,COMSUP2:37,IEXH:38,FEXH:39,RPMEXH:40,UEXH:41,FAULTEXH:42,COMEXH:43,IEXH2:44,FEXH2:45,RPMEXH2:46,UEXH2:47,FAULTEXH2:48,COMEXH2:49,Y1:50,HEATER_WATER:50,M1:51,HEATER_PUMP:51,Y8:52,SEC_HEATER_WATER:52,M8:53,SEC_HEATER_PUMP:53,HEPWR:54,HEATER_ELECTRIC:54,HESECPWR:55,SEC_HEATER_ELECTRIC:55,GASPWR:56,HEATER_GAS:56,Y2:57,COOLER_WATER:57,E1:58,Y9:59,COOLER_FREON:59,DX_STATE:60,YFX:61,COOLER_REVERSE:61,H_C:62,_2S1F:435,DEF:63,YREC:64,REC_CROSS_ROTARY:64,REC_GLYCOL:64,M7:65,RECSTATE:66,SETMIX:67,THRMCH:68,MIX:68,MIXN:68,THRSUEX:69,DAMPER_EXHAUST_ANALOG:69,DAMPER_SUPPLY_ANALOG:69,THROT:70,DAMPER_SUPPLY:70,DAMPER_EXHAUST:70,RSSUP:147,RSEXH:148,RSSUP2:149,RSEXH2:150,TBACK_ACTIV:198,FHEN:228,TYPE:237,RECOVERY:238,REVERSE:239,COOL:240,HEAT:241,DEH_HUM:242,SEC_HEAT:243,FUNC_DIN5:245,FUNC_DIN6:246,FUNC_DIN12:247,FAN_INVERTERS:248,CONST_PRESS:257,PRES_VENT:258,SUP0_10:259,EXH0_10:260,TINY:263,FROST_ALARM:264,REC_FROST_PROT:265,TEXH_ACT:282,RESET_ALARMS:390,A_CODE:391,A_AF:392,A_STOPS1:393,A_THHW_AIR:394,A_3xTHHW_AIR:395,A_THHW_WATER:396,A_3xTHHW_WATER:397,A_THHE:398,A_3xTHHE:399,A_THHE_SEC:400,A_3xTHHE_SEC:401,A_THGAS:402,A_3xTHGAS:403,A_DX:404,A_FX:405,A_HUM:406,A_RECFC:407,A_COLDREC:408,A_SUPFILTER:409,FILTER_SUPPLY:409,A_SUPFILTER2:410,FILTER_SUPPLY2:410,A_EXHFILTER:411,FILTER_EXHAUST:411,A_SUPFC:412,A_EXHFC:413,A_COMSUPFC:414,A_COMSUPFC2:415,A_COMEXHFC:416,A_COMEXHFC2:417,A_SUPPRES:418,A_EXHPRES:419,A_HIGH_CO:420,A_TSUP:421,A_TEXH:422,A_TOUT:423,A_TREC:424,A_TBACKWATER:425,A_TMAIN:426,A_INEMUL:427,A_OUTFORCE:428,A_INEMULN1_2:429,A_OUTFORCEN1_2:430,A_COMN1_2:431,ALARM:432}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={el:function(e){return $get(".supply "+(e.cooler&&e.dehumidifier&&!e.secHeater?".w2":".w1"))},template:i.default.analogPercentage,label:function(e){return u.default.get("heater."+e.heater)},handler:function(e,t){e.addClass("heater").addClass(t.heater)}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={el:function(e){return $get(".supply "+(e.dehumidifier&&!e.secHeater?".w1":".w2"))},handler:function(e,t){e.addClass("cooler").addClass(t.cooler)},template:i.default.analogPercentage,label:function(e){return u.default.get("cooler."+e.cooler)}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(26),u=r(n),l=a(27),i=r(l),o=a(24),s=r(o),f=a(25),c=r(f),d=a(30),m=r(d),p=a(31),h=r(p),_=a(29),g=r(_),y=a(41),v=r(y),b=a(42),A=r(b),w=a(39),S=r(w),x=a(40),E=r(x),P=a(35),T=r(P),O=a(33),C=r(O),M=a(32),k=r(M),H=a(45),R=r(H),z=a(44),j=r(z),F=a(43),I=r(F),U=a(34),L=r(U),D=a(23),N=r(D),W=a(21),V=r(W),X=a(20),$=r(X),B=a(22),G=r(B),q=a(17),Y=r(q),K=a(18),Z=r(K),J=a(19),Q=r(J),ee=a(46),te=r(ee),ae=a(28),re=r(ae),ne=a(54),ue=r(ne),le=a(53),ie=r(le),oe=a(47),se=r(oe),fe=a(55),ce=r(fe),de=a(56),me=r(de),pe=a(48),he=r(pe),_e=a(51),ge=r(_e),ye=a(52),ve=(r(ye),a(50)),be=r(ve),Ae=a(49),we=r(Ae);t.default={DAMPER_SUPPLY:u.default,DAMPER_SUPPLY_ANALOG:i.default,DAMPER_EXHAUST:s.default,DAMPER_EXHAUST_ANALOG:c.default,MIX:S.default,MIXN:E.default,FILTER_SUPPLY:m.default,FILTER_SUPPLY2:h.default,FILTER_EXHAUST:g.default,REC_CROSS_ROTARY:v.default,REC_GLYCOL:A.default,HEATER_WATER:T.default,HEATER_GAS:C.default,HEATER_ELECTRIC:k.default,HEATER_PUMP:L.default,SEC_HEATER_WATER:R.default,SEC_HEATER_ELECTRIC:I.default,SEC_HEATER_PUMP:j.default,COOLER_WATER:N.default,COOLER_PUMP:V.default,COOLER_FREON:$.default,COOLER_REVERSE:G.default,SUPPLY_FAN:te.default,EXHAUST_FAN:re.default,HUMIDIFIER:r(a(38)).default,HSUP:r(a(37)).default,HEXH:r(a(36)).default,HMAIN:we.default,B1:Y.default,B2:Z.default,B4:Q.default,WORK_MODE:me.default,TSET:ue.default,TMAIN:ie.default,B3:se.default,WORK:ce.default,CO2EXH:he.default,SERVICE_MODE:ge.default,HSET:be.default}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},i=function(){function e(e,t){for(var a=0;t.length>a;a++){var r=t[a];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,a,r){return a&&e(t.prototype,a),r&&e(t,r),t}}(),o=a(13),s=r(o),f=a(6),c=r(f),d=a(11),m=r(d),p=a(3),h=r(p),_=(window,function(){function e(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;u(this,e),g.call(this),this.components=[],this.APP=t,this.init(a),this.preview=null}return i(e,[{key:"createPreviewInstance",value:function(){this.preview=new m.default(this)}},{key:"previewRender",value:function(){this.preview&&this.preview.isActive&&this.preview.dialog.reload()}}]),e}());_.VIEW_REFRESHING_TIME_IN_MS=5e3;var g=function(){var e=this;this.init=function(t){var a=e.worker,r=e;e.initAllComponents(),t&&setInterval(a.bind(e),_.VIEW_REFRESHING_TIME_IN_MS),setTimeout(a.bind(e),1),setTimeout(r.createPreviewInstance.bind(e),100)},this.initAllComponents=function(){for(var t in c.default)if(c.default.hasOwnProperty(t)){var a=c.default[t];e.initComponent(l({},a,{id:t}))}},this.initComponent=function(t){var a=e.APP,r=new s.default(t,a);r.isCurrentlyActive()&&e.addComponent(r)},this.addComponent=function(t,a){e.components=[].concat(n(e.components),[t])},this.worker=function(){e.render()},this.render=function(){e.beforeRender(),e.components.forEach(function(e){return e.render()}),e.afterRender(),e.previewRender()},this.hasSingleDuctActive=function(){var t=e.APP;return(t.supply||t.exhaust)&&!(t.supply&&t.exhaust)},this.hasBothDuctsActive=function(){var t=e.APP;return t.supply&&t.exhaust},this.beforeRender=function(){var t=e.APP;e.hasSingleDuctActive()?t.mix?($get("._1").addClass("exhaust"),$get("._2").addClass("supply"),$get(".separator.a").setStyle({visibility:"hidden"}),$get(".duct.opened.md.v1").setStyle({visibility:"hidden"})):($get("._2").hide(),$get("._1").addClass(t.supply?"supply":"exhaust")):($get("._1").addClass("exhaust"),$get("._2").addClass("supply"))},this.afterRender=function(){var t=e.APP;if(e.hasBothDuctsActive(t)){var a=$get(".supply .fan").offsetLeft-$get(".separator.a").offsetLeft;$get(".separator.a").setStyle({width:a})}if(t){var r=$get(".exhaust .separator.b"),n=$get(".supply .separator.b"),u=$get(".reverse");if(ModbusReg.registersTab[h.default.REVERSE]?ModbusReg.registersTab[h.default.H_C]?u&&(u.removeClass("heating"),u.addClass("cooling")):u&&(u.removeClass("cooling"),u.addClass("heating")):u&&(u.removeClass("cooling"),u.removeClass("heating")),n&&r)if(n&&t.humidifier?n.setAttribute("style","width: 180px !important"):n&&t.drying&&n.setAttribute("style","width: 200px !important"),r.offsetLeft+r.offsetWidth>n.offsetLeft+n.offsetWidth){var l=r.offsetLeft+r.offsetWidth-n.offsetLeft;n.setAttribute("style","width: "+l+"px !important")}else{var i=n.offsetLeft+n.offsetWidth-r.offsetLeft;r.setAttribute("style","width: "+i+"px !important")}}}};t.default=_},function(e,t){},function(e,t,a){"use strict";var r=a(7),n=function(e){return e&&e.__esModule?e:{default:e}}(r);a(8),window.ModbusReg=window.ModbusReg||{registersTab:[]},window.UV=n.default},function(e,t,a){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=function(e){return e&&e.__esModule?e:{default:e}}(n),l=function(){var e=this;this.renderAlarms=function(){return e.component.extras.data.filter(function(e){return e.isAlarm}).map(function(e){return'<div class="alarm '+(e.isActive?"active":"")+'">\n                            <label>\n                            '+("function"==typeof e.label?e.label():e.label)+"\n                            </label>\n                          </div>"}).join("")},this.renderExtras=function(){return e.component.extras.data.filter(function(e){return!e.isAlarm}).map(function(e){return"<div>\n                            <label>\n                                "+("function"==typeof e.label?e.label():e.label)+"\n                            </label>\n                            <span>"+e.prettyValue+"</span>\n                           </div>"}).join("")},this.update=function(){$get("#extras").querySelector("div").innerHTML=e.render()},this.render=function(){var t=e.component,a=e.renderExtras(),r=e.renderAlarms();return'<h3>\n                    <svg fill="#FFFFFF" height="18" viewBox="0 0 24 24" width="18">\n                        <path d="M0 0h24v24H0z" fill="none"/>\n                        <path d="M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z"/>\n                    </svg> \n                    '+("function"==typeof t.definition.label?t.definition.label(t.APP):t.definition.label)+'\n                </h3>\n                <div class="params" style="display:'+(t.extras.hasAnyExtrasParam()?"block":"none")+'">\n                    '+a+"\n                </div>\n                <label>"+u.default.get("alarms.alarmList")+':</label>\n                <div class="alarms">\n                    '+r+"\n                </div>"},this.show=function(t){var a=e.component,r=$get("#extras");r.dataset.target=a.definition.id,r.querySelector("div").innerHTML=e.render(),r.querySelector("div").setStyle({left:t.clientX,top:t.clientY}),r.show(),$get("#extras").addEventListener("click",function(e){"extras"===e.target.id&&$get("#extras").hide()})},this.hide=function(){}};t.default=function e(t){r(this,e),l.call(this),this.component=t}},function(e,t,a){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var u=a(0);t.default=function e(t){var a=this;n(this,e),this.init=function(){setTimeout(a.initActions.bind(a),1)},this.initActions=function(){},this.generateCSVButtonClick=function(e){var t=a.getRenderer().mapAllComponentsToRegisters(),r=a.mapRegistersToCSV(t);new s(r).create("ELP-REGISTERS-DATASHEET.csv")},this.mapRegistersToCSV=function(e){var t=[];return e.forEach(function(e){t.push(e),e.extras.forEach(function(e){return t.push(e)})}),t.map(function(e){return e.label+","+e.value}).join("\n")},this.getRenderer=function(){var e={table:l},t=a.view,r=a.defaultView;return new(t&&e.hasOwnProperty(t)?e[t]:e[r])(a)},this.UV=t,this.view="table",this.defaultView="table",this.dialog=new i(this),this.isActive=!0,this.init()};var l=function e(t){var a=this;n(this,e),this.render=function(){var e=a.registerRenderMapper;return a.mapAllComponentsToRegisters().map(e).join("")},this.mapAllComponentsToRegisters=function(){var e=a.componentToRegisterMapper;return[].concat(r(a.paramsPreview.UV.components)).map(e)},this.componentToRegisterMapper=function(e){var t=a.componentExtrasToRegisterMapper,r=a.componentExtrasSkipDuplicated,n=e.extras,u=[];return n&&(u=n.data.filter(r(e)).map(t)),{label:e.getLabel(),value:e.prettyValue,extras:u}},this.componentExtrasSkipDuplicated=function(e){return function(t){return t.id!==e.definition.id}},this.componentExtrasToRegisterMapper=function(e){return{label:e.label,value:e.prettyValue}},this.registerRenderMapper=function(e){return'<div class="row">\n                    <div class="param">'+e.label+':</div>\n                    <div class="value">'+e.value+"</div>\n                </div> \n                "+e.extras.map(a.registerExtrasRenderMapper).join("")},this.registerExtrasRenderMapper=function(e){return'<div class="row sub">\n                    <div class="param">'+e.label+':</div>\n                    <div class="value">'+e.value+"</div>\n                </div>"},this.paramsPreview=t},i=function e(t){n(this,e),o.call(this),this.el="#params-preview",this.paramsPreview=t,this.init()},o=function(){var e=this;this.init=function(){var t=e.paramsPreview,a=t.getRenderer();$get(e.el).querySelector(".table").innerHTML=a.render()},this.reload=function(){e.init()},this.hide=function(t){var a="#"+t.target.id;a!==e.el&&"#params-preview-close-btn"!==a||$get(e.el).hide()},this.show=function(t){$get(e.el).show()}},s=function e(t){var a=this;n(this,e),this.create=function(e){var t=encodeURI(a.content),r=document.createElement("a");r.setAttribute("href",t),r.setAttribute("download",e),document.body.appendChild(r),r.click(),document.body.removeChild(r)},this.content="data:text/csv;charset=utf-8,"+t}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var u=a(0),l=(r(u),a(3)),i=(r(l),function(){var e=this;this.update=function(){$get("#vis-settable-dialog").querySelector("div").innerHTML=e.render()},this.render=function(){return'<h3><svg fill="#FFFFFF" height="18" viewBox="0 0 24 24" width="18"><path d="M0 0h24v24H0z" fill="none"></path><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"></path></svg> '+("function"==typeof e.component.definition.label?e.component.definition.label(e.component.APP):e.component.definition.label)+"</h3><br>\n                    "+e.renderSetter()+"<br>"},this.renderSetter=function(){var t=e.component.getTemplate().type.name;return e.rendererProvider(t)(e.component)},this.rendererProvider=function(t){var a=e;return{analog:a.renderAnalogSetter,multi:a.renderMultistateSetter,temperature:a.renderAnalogSetter,binary:a.renderBinarySetter,humidity:a.renderAnalogSetter}[t]||null},this.renderMultistateSetter=function(e){var t=e.definition.id+"_INPUT",a=e.getRegisterNumber(),r=e.getTemplate().states,n="",u="";for(var l in r)u=l==e.value?"selected":"",isFinite(l)&&(n+="<option value="+l+" "+u+" >"+r[l]()+"</option>");return'<select id="'+t+'" value='+e.value+' onchange="ModbusReg.setRegistersVal('+a+", parseFloat(document.getElementById('"+t+"').value)); setTimeout(function f() {$get('#vis-settable-dialog').hide() }, 300);\">"+n+"</select>"},this.renderBinarySetter=function(e){return'<input type="radio">ON</input><br><input type="radio">OFF</input> <br> <input type="button" value="Set"></input>'},this.renderAnalogSetter=function(t){e.set=t.definition.settableOptions,e.set.step=Math.floor(10*e.set.step)/10;var a=t.getRegisterNumber(),r=function(){return t.value.toFixed(1)},n=t.definition.id+"_INPUT";return e.newValue=function(){return"Math.floor(((document.getElementById('"+n+"').value).replace(',','.'))*10)/10"},'<button class="dec" onmousedown="document.getElementById(\''+n+"').value = isFinite("+e.newValue()+") ? (("+e.newValue()+"*10 - "+e.set.step+"*10)/10 < "+e.set.min+" ? "+e.set.min+" : ("+e.newValue()+"*10 - "+e.set.step+"*10)/10) : "+r()+'">-</button>\n        <input id="'+n+'" type="text" data-min="'+e.set.min+'" data-max="'+e.set.max+'" data-step="'+e.set.step+'" value="'+r()+'"  onkeypress="event.keyCode==13 ? setAnalogValue('+e.newValue()+","+e.set.max+","+e.set.min+",'"+n+"',"+r()+","+a+') : \'\' " autofocus>\n        <div style="display: inline-block; border-bottom: 1px solid; font-size: 1.4em;">'+t.getTemplate().value.suffix+'</div>\n        <button class="inc" onclick="document.getElementById(\''+n+"').value = isFinite("+e.newValue()+") ? (("+e.newValue()+" + "+e.set.step+") > "+e.set.max+" ? "+e.set.max+" : ("+e.newValue()+"*10 + "+e.set.step+"*10)/10) : "+r()+'">+</button> \n        <button class="confirm_button" value="Set" onclick="setAnalogValue('+e.newValue()+","+e.set.max+","+e.set.min+",'"+n+"',"+r()+","+a+')">Set</button>\n        <br>'},this.show=function(t){var a=e.component,r=$get("#vis-settable-dialog");r.dataset.target=a.definition.id,r.querySelector("div").innerHTML=e.render(),r.querySelector("div").setStyle({left:"50%",top:"50%",transform:"translateX(-50%) translateY(-50%)",position:"absolute"}),r.show(),$get("#vis-settable-dialog").addEventListener("click",function(e){"vis-settable-dialog"===e.target.id&&$get("#vis-settable-dialog").hide()})},this.keyCode=function(e){},this.hide=function(){}});t.default=function e(t){n(this,e),i.call(this),this.component=t,this.options=t.getSettableOptions(),this.label=t.getLabel()}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;t.length>a;a++){var r=t[a];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,a,r){return a&&e(t.prototype,a),r&&e(t,r),t}}(),l=a(15),i=r(l),o=a(10),s=r(o),f=a(12),c=r(f),d=a(3),m=r(d),p=a(0),h=(r(p),window,function(){var e=this;this.isCurrentlyActive=function(){var t=e.APP,a=e.definition;return"function"==typeof a.match&&a.match(t)||!a.hasOwnProperty("match")},this.getTemplate=function(){var t=e.definition,a=e.APP;return"function"==typeof t.template?t.template(a):t.template},this.getLabel=function(){var t=e.definition,a=e.APP;return"function"==typeof t.label?t.label(a):t.label||"undefined"},this.addClass=function(t){return e.getElement().addClass(t),e},this.getElement=function(){var t=e.definition;return"function"==typeof t.el?t.el(e.APP):t.el},this.fill=function(t){return e.getElement().innerHTML=t,e},this.hasHandlerDefinition=function(){var t=e.definition;return t.hasOwnProperty("handler")&&"function"==typeof t.handler},this.isInitialized=function(){return e.getElement().dataset.initialized},this.isSettable=function(){return!0===e.definition.settable},this.getSettableOptions=function(){return e.definition.settableOptions},this.hasActiveExtrasDialog=function(){var t=e.definition;return $get("#extras").dataset.target===t.id&&e.extrasDialog},this.render=function(){var t=e,a=e.definition,r=e.APP,n=e.getElement(),u=e.getTemplate(),l=e.getLabel();n&&(e.isInitialized()||e.init(),n.addClass("default"),n.setStyle({display:"inline-block"}),n.dataset.id=a.id,n.title=l,e.value=ModbusReg.registersTab[m.default[a.id]],e.prettyValue=t.valueRenderer(e.value,u,n),n.dataset.registerValue=e.prettyValue,e.hasHandlerDefinition()&&a.handler(e,r),e.extras&&(e.extras.refresh(),e.extras.hasAnyExtrasParam()&&n.addClass("extras"),e.isInitialized()&&e.hasActiveExtrasDialog()&&t.extrasDialog.update()),e.extras&&e.extras.hasAnyAlarmActive()?n.addClass("alarm"):n.removeClass("alarm"),n.dataset.initialized=!0)},this.valueRenderer=function(t,a,r){return t=a.type.parser(t),e.value=r?t:e.value,r&&a.type.handler&&a.type.handler(t,r),t=a.type.pretty?a.type.pretty(t,a):t},this.showExtrasDialog=function(t){e.extras.hasShowableDialog()&&e.extrasDialog.show(t)},this.showSettableDialog=function(t){e.isSettable()&&e.settableDialog.show(t)}});t.default=function(){function e(t,a){n(this,e),h.call(this),this.definition=t,this.APP=a,this.value=0,this.prettyValue=null,this.extras=null,this.extrasDialog=null,this.settableDialog=null}return u(e,[{key:"init",value:function(){this.initExtras(),this.extras.hasAnyExtrasParamOrAlarm()&&this.initExtrasDialog(),this.isSettable()&&this.initSettableDialog()}},{key:"initExtras",value:function(){this.extras=new i.default(this)}},{key:"initSettableDialog",value:function(){var e=this;this.settableDialog=new c.default(this),e.getElement()&&e.getElement().addEventListener("click",function(t){return e.showSettableDialog(t)})}},{key:"getRegisterNumber",value:function(){return m.default[this.definition.id]}},{key:"initExtrasDialog",value:function(){var e=this;this.extrasDialog=new s.default(this),e.getElement()&&e.getElement().addEventListener("click",function(t){return e.showExtrasDialog(t)})}}]),e}()},function(e,t,a){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=a(3),u=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function e(t,a){var n=this;r(this,e),this.init=function(){n.initValue(),n.initAlarm()},this.initValue=function(){var e=n.extrasDefinition.cloneParent?n.component.definition.id:n.id,t=u.default[e];n.value=ModbusReg.registersTab[t],n.prettyValue=n.component.valueRenderer(n.value,n.extrasDefinition.template)},this.initAlarm=function(){n.isAlarm=!!n.extrasDefinition.template.type.isAlarm,n.isActive=!!n.value},this.extrasDefinition=t,this.component=a,this.id=this.extrasDefinition.id,this.label=this.extrasDefinition.label,this.value=0,this.prettyValue=0,this.isAlarm=!1,this.isActive=!1,this.init()}},function(e,t,a){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var u=a(14),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.default=function e(t){var a=this;n(this,e),this.init=function(){var e=a,t=a.component.definition,n=t.extras,u=void 0===n?[]:n,i=t.alarms,o=void 0===i?[]:i;a.data=[],a.hasAnyExtrasParamOrAlarm()&&[].concat(r(u),r(o)).forEach(function(t){if(a.extrasIsCurrentlyActive(t)){var r=new l.default(t,a.component);e.data=e.add(e.data,r)}})},this.refresh=function(){a.init(!1)},this.add=function(e,t){return[].concat(r(e),[t])},this.hasAnyExtrasParamOrAlarm=function(){var e=a.component.definition,t=e.extras,r=e.alarms;return t instanceof Array&&t.length||r instanceof Array&&r.length},this.extrasIsCurrentlyActive=function(e){return e.match&&e.match(a.APP)||!e.match},this.hasAnyAlarmActive=function(){return a.data.filter(function(e){return e.isAlarm&&e.isActive}).length>0},this.hasAnyExtrasParam=function(){return a.data.filter(function(e){return!e.isAlarm}).length>0},this.hasShowableDialog=function(){return a.hasAnyAlarmActive()||a.hasAnyExtrasParam()||!0===window.TEST_MODE},this.component=t,this.APP=t.APP,this.data=[],this.init()}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={TOP_OFFSET_WITH_CROSS:151,TOP_OFFSET_WITHOUT_CROSS:0}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply},el:function(e){return $get(".supply .sensor.s1")},template:i.default.temperature,label:function(e){return u.default.get("temperatures.b1")},handler:function(e,t){var a=(t.hsupsensor||t.hexhsensor)&&(t.humidifier||t.dehumidifier)?-110:-50;e.getElement().style.left=a+"px",e.fill('<div style="border-color:'+getValueColor(e.value,{min:15,max:35})+'">T</div>')},alarms:[{id:"A_TSUP",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_tsup")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.b2&&e.exhaust||e.b2&&e.mix&&!e.exhaust},el:function(e){return $get(".exhaust .sensor.s1")},template:i.default.temperature,label:function(e){return u.default.get("temperatures.b2")},handler:function(e,t){var a=(t.hsupsensor||t.hexhsensor)&&(t.humidifier||t.dehumidifier)?-110:-50;e.getElement().style.left=a+"px",e.fill('<div style="border-color:'+getValueColor(e.value,{min:15,max:35})+'">T</div>')},alarms:[{id:"A_TEXH",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_texh")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l),o=a(16),s=r(o);t.default={match:function(e){return e.b4&&null!==e.rec},el:function(e){return $get(("cross"===e.rec?".supply":".exhaust")+" .sensor.s3")},template:i.default.temperature,label:function(e){return u.default.get("temperatures.b4")},handler:function(e,t){e.getElement().setStyle({position:"absolute",left:$get(".rec").offsetLeft-60+"px",top:("cross"===t.rec?s.default.TOP_OFFSET_WITH_CROSS:s.default.TOP_OFFSET_WITHOUT_CROSS)+"px"}),e.fill('<div style="border-color:'+getValueColor(e.value,{min:15,max:35})+'">T</div>')},alarms:[{id:"A_TREC",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_texh")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(5)).default,{match:function(e){return"freon"===e.cooler},extras:[{id:"Y9",template:o.default.analogPercentage,label:function(e){return l.default.get("cooler.setpoint")}},{id:"DX_STATE",template:o.default.coolerFreon,label:function(e){return l.default.get("cooler.setpoint")}}],alarms:[{id:"A_DX",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_dx")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return"water"===e.cooler&&e.coolerPump},el:function(e){return $get(".cooler.pump>div")},template:i.default.pump,label:function(e){return u.default.get("cooler.pump")},handler:function(e,t){e.addClass("hideValue")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(5)).default,{match:function(e){return"reverse"===e.cooler},extras:[{id:"YFX",template:o.default.analogPercentage,label:function(e){return l.default.get("cooler.setpoint")}},{id:"H_C",template:o.default.coolerReverseHC,label:function(e){return l.default.get("cooler.status")}},{match:function(e){return e._2s1f},id:"DEF",template:o.default.coolerReverse,label:function(e){return l.default.get("cooler.reverseStates.defrost")}}],alarms:[{id:"A_FX",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_fx")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i),s=a(5),f=r(s);t.default=n({},f.default,{match:function(e){return"water"===e.cooler},handler:function(e,t){f.default.handler(e,t),t.coolerPump&&e.addClass("pump").fill("<div></div>")},extras:[{id:"COOLER_WATER",template:o.default.analogPercentage,label:function(e){return l.default.get("cooler.setpoint")}},{id:"E1",template:o.default.coolingDemand,label:function(e){return l.default.get("cooler.coolingDemand")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.exhaust&&!e.mix},el:function(e){return $get(("cross"===e.rec&&e.supply&&e.exhaust?"._2 ":"._1")+" .damper")},template:i.default.dampers.binary,label:function(e){return u.default.get("dampers.exhaust")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.exhaust&&e.mix},el:function(e){return $get(("cross"===e.rec&&e.supply&&e.exhaust?"._2 ":"._1")+" .damper")},template:i.default.analogPercentage,label:function(e){return u.default.get("dampers.exhaust")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply&&!e.mix},el:function(e){return $get(("cross"===e.rec||!e.exhaust&&!e.mix?"._1 ":"._2")+" .damper")},template:i.default.dampers.binary,label:function(e){return u.default.get("dampers.supply")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply&&e.mix},el:function(e){return $get(("cross"===e.rec||!e.exhaust&&!e.mix?"._1 ":"._2")+" .damper")},template:i.default.analogPercentage,label:function(e){return u.default.get("dampers.supply")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0});var u=a(0),l=r(u),i=a(1),o=r(i),s=a(57),f=(0,s.createMultipleFanExtrasAndAlarms)("EXHAUST");t.default={match:function(e){return e.exhaust},el:function(e){return $get(".exhaust .fan")},template:o.default.analogPercentage,label:function(e){return l.default.get("fan.exhaust")},extras:[{id:"VENT",template:o.default.fanStatus,label:function(e){return l.default.get("fan.status")}},{id:"EXHAUST_FAN",template:o.default.analogPercentage,label:function(e){return l.default.get("fan.setpoint")}},{match:function(e){return e.pressureControl},id:"PAEXH",template:o.default.pressure,label:function(e){return l.default.get("fan.pressure")}},{match:function(e){return e.flowControl},id:"FLOWEXH",template:o.default.flow,label:function(e){return l.default.get("flow.exhaust")}},{match:function(e){return!e.exh0_10&&e.exh1rs&&("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"RPMEXH",template:o.default.rpm,label:function(e){return l.default.get("fan.velocity")}},{match:function(e){return!e.exh0_10&&e.exh1rs},id:"UEXH",template:o.default.voltage,label:function(e){return l.default.get("fan.voltage")}},{match:function(e){return!e.exh0_10&&e.exh1rs},id:"IEXH",template:o.default.amperage,label:function(e){return l.default.get("fan.amperage")}},{match:function(e){return!e.exh0_10&&e.exh1rs&&!("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"FEXH",template:o.default.frequency,label:function(e){return l.default.get("fan.frequency")}},{match:function(e){return!e.exh0_10&&e.exh1rs},id:"FAULTEXH",template:o.default.faultFC,label:function(e){return l.default.get("fan.faultCode")}}].concat(n(f.extras)),alarms:[{id:"A_EXHFC",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_exhfc")}},{id:"A_COMEXHFC",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_com_exhfc")}},{match:function(e){return e.exhPress},id:"A_EXHPRES",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_exhpres")}}].concat(n(f.alarms))}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.exhaustFilter&&e.exhaust},el:function(e){return $get(".filter-exh")},template:i.default.filter,label:function(e){return u.default.get("filters.exhaust")},alarms:[{id:"A_EXHFILTER",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_exhfilter")},cloneParent:!0}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply},el:function(e){return $get(("cross"!==e.rec&&e.exhaust?"._2":e.mix&&!e.exhaust?"._2":"._1 ")+" .filter")},template:i.default.filter,label:function(e){return u.default.get("filters.supply")},alarms:[{id:"A_SUPFILTER",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_supfilter")},cloneParent:!0}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply&&e.supplyFilter2},el:function(e){return $get(".filter.filter2")},template:i.default.filter,label:function(e){return u.default.get("filters.supply2")},alarms:[{id:"A_SUPFILTER2",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_supfilter2")},cloneParent:!0}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(4)).default,{match:function(e){return e.supply&&e.heater&&"electric"===e.heater},extras:[{id:"HEATER_ELECTRIC",template:o.default.analogPercentage,label:function(e){return l.default.get("heater.setpoint")}}],alarms:[{id:"A_THHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_air")}},{id:"A_3xTHHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_air")}},{id:"A_THHE",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhe")}},{id:"A_3xTHHE",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhe")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(4)).default,{match:function(e){return e.supply&&e.heater&&"gas"===e.heater},extras:[{id:"HEATER_GAS",template:o.default.analogPercentage,label:function(e){return l.default.get("heater.setpoint")}}],alarms:[{id:"A_THHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_air")}},{id:"A_3xTHHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_air")}},{id:"A_THGAS",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thgas")}},{id:"A_3xTHGAS",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthgas")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return"water"===e.heater},el:function(e){return $get(".heater.pump>div")},template:i.default.pump,label:function(e){return u.default.get("heater.pump")},handler:function(e,t){e.addClass("hideValue")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i),s=a(4),f=r(s);t.default=n({},f.default,{match:function(e){return e.supply&&e.heater&&"water"===e.heater},handler:function(e,t){f.default.handler(e,t),e.fill("<div></div>").addClass("pump")},extras:[{id:"HEATER_WATER",template:o.default.analogPercentage,label:function(e){return l.default.get("heater.setpoint")}},{id:"HEATER_PUMP",template:o.default.pump,label:function(e){return l.default.get("heater.pump")}},{match:function(e){return e.b8},id:"B8",template:o.default.temperature,label:function(e){return l.default.get("temperatures.b8")}}],alarms:[{id:"A_TBACKWATER",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_tbackwater")}},{id:"A_THHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_air")}},{id:"A_3xTHHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_air")}},{id:"A_THHW_WATER",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_water")}},{id:"A_3xTHHW_WATER",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_water")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.exhaust&&(e.humidifier||e.dehumidifier)},el:function(e){return $get(".exhaust .sensor.s2")},template:function(e){return i.default.humidity},label:function(e){return u.default.get("humidity.exhaust")},handler:function(e,t){e.getElement().style.left="-210px",e.fill('<div class="humidity" style="border-color:'+getValueColor(e.value,{min:0,max:100})+'">H</div>')}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply&&(e.humidifier||e.dehumidifier)},el:function(e){return $get(".supply .sensor.s2")},template:function(e){return i.default.humidity},label:function(e){return u.default.get("humidity.supply")},handler:function(e,t){e.getElement().style.left="-210px",e.fill('<div class="humidity" style="border-color:'+getValueColor(e.value,{min:0,max:100})+'">H</div>')}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.humidifier},el:function(e){return $get(".supply .w4")},template:i.default.binarySimple,label:function(e){return u.default.get("humidity.humidifier")},handler:function(e,t){e.addClass("humidifier")},extras:[{id:"E6",template:i.default.binarySimple,label:function(e){return u.default.get("humidity.e6")}},{id:"Y11",template:i.default.analogPercentage,label:function(e){return u.default.get("humidity.y11")}}],alarms:[{id:"A_HUM",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_hum")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.mix&&e.exhaust},el:function(){return $get(".mix")},template:i.default.analogPercentage,label:function(e){return u.default.get("mix.mix")},extras:[{id:"MIX",template:i.default.analogPercentage,label:function(e){return u.default.get("params.setpoint")}},{match:function(e){return e.fhen},id:"FHEN",template:i.default.binaryActive,label:function(e){return u.default.get("mix.fhen")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.mix&&!e.exhaust},el:function(){return $get(".mix")},handler:function(e,t){e.addClass("n")},template:i.default.analogPercentage,label:function(e){return u.default.get("mix.mix")},extras:[{id:"MIX",template:i.default.analogPercentage,label:function(e){return u.default.get("params.setpoint")}},{id:"FHEN",template:i.default.binaryActive,label:function(e){return u.default.get("mix.fhen")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply&&e.exhaust&&("rotary"===e.rec||"cross"===e.rec)},id:"YREC",el:function(e){return $get(".rec")},handler:function(e,t){e.addClass(t.rec),$get(".rec-distance").setStyle({width:e.getElement().offsetWidth-4})},template:function(e){return i.default.analogPercentage},label:function(e){return u.default.get("recuperators."+e.rec)},extras:[{match:function(e){return e.rec},id:"RECSTATE",template:i.default.coolerReverse,label:function(e){return u.default.get("cooler.status")}}],alarms:[{match:function(e){return"rotary"===e.rec||"cross"===e.rec},id:"A_COLDREC",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_coldrec")}},{match:function(e){return"rotary"===e.rec},id:"A_RECFC",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_rotfc")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return e.supply&&e.exhaust&&"glycol"===e.rec},el:function(e){return $get(".rec")},handler:function(e,t){e.addClass("glycol"),$get(".rec-distance").setStyle({width:e.getElement().offsetWidth-4})},template:function(e){return i.default.analogPercentage},label:function(e){return u.default.get("recuperators."+e.rec)},extras:[{match:function(e){return"glycol"===e.rec},id:"M7",template:i.default.pump,label:function(e){return u.default.get("recuperators.glycolPump")}},{match:function(e){return"glycol"===e.rec},id:"RECSTATE",template:i.default.coolerReverse,label:function(e){return u.default.get("cooler.status")}}],alarms:[{match:function(e){return"glycol"===e.rec},id:"A_COLDREC",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_coldrec")}},{match:function(e){return"glycol"===e.rec},id:"A_RECFC",template:i.default.defaultAlarm,label:function(e){return u.default.get("alarms.a_rotfc")}}]}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(4)).default,{el:function(e){return $get(".supply .w3")},match:function(e){return e.supply&&e.secHeater&&"electric"===e.secHeater},label:function(e){return l.default.get("heater."+e.secHeater)},handler:function(e,t){e.addClass("heater").addClass(t.secHeater)},extras:[{id:"SEC_HEATER_ELECTRIC",template:o.default.analogPercentage,label:function(e){return l.default.get("heater.setpoint")}}],alarms:[{id:"A_THHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_air")}},{id:"A_3xTHHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_air")}},{id:"A_THHE_SEC",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhe_sec")}},{id:"A_3xTHHE_SEC",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhe_sec")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={match:function(e){return"water"===e.secHeater},el:function(e){return $get(".w3.heater.pump>div")},template:i.default.pump,label:function(e){return u.default.get("secHeater.pump")},handler:function(e,t){e.addClass("hideValue")}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(4)).default,{el:function(e){return $get(".supply .w3")},match:function(e){return e.supply&&e.secHeater&&"water"===e.secHeater},label:function(e){return l.default.get("secHeater."+e.secHeater)},handler:function(e,t){e.addClass("heater").addClass(t.secHeater),e.fill("<div></div>").addClass("pump")},extras:[{id:"Y8",template:o.default.analogPercentage,label:function(e){return l.default.get("secHeater.setpoint")}},{id:"M8",template:o.default.pump,label:function(e){return l.default.get("secHeater.pump")}},{match:function(e){return e.b8},id:"B8",template:o.default.temperature,label:function(e){return l.default.get("temperatures.b8")}}],alarms:[{id:"A_TBACKWATER",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_tbackwater")}},{id:"A_THHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_air")}},{id:"A_3xTHHW_AIR",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_air")}},{id:"A_THHW_WATER",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_thhw_water")}},{id:"A_3xTHHW_WATER",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_3xthhw_water")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0});var u=a(0),l=r(u),i=a(1),o=r(i),s=a(58),f=(0,s.createMultipleFanExtrasAndAlarms)("SUPPLY");t.default={match:function(e){return e.supply},el:function(e){return $get(".supply .fan")},template:o.default.analogPercentage,label:function(e){return l.default.get("fan.supply")},extras:[{id:"VENT",template:o.default.fanStatus,label:function(e){return l.default.get("fan.status")}},{id:"SUPPLY_FAN",template:o.default.analogPercentage,label:function(e){return l.default.get("fan.setpoint")}},{match:function(e){return e.pressureControl},id:"PASUP",template:o.default.pressure,label:function(e){return l.default.get("fan.pressure")}},{match:function(e){return e.flowControl},id:"FLOWSUP",template:o.default.flow,label:function(e){return l.default.get("flow.supply")}},{match:function(e){return!e.sup0_10&&e.sup1rs&&("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"RPMSUP",template:o.default.rpm,label:function(e){return l.default.get("fan.velocity")}},{match:function(e){return!e.sup0_10&&e.sup1rs},id:"USUP",template:o.default.voltage,label:function(e){return l.default.get("fan.voltage")}},{match:function(e){return!e.sup0_10&&e.sup1rs},id:"ISUP",template:o.default.amperage,label:function(e){return l.default.get("fan.amperage")}},{match:function(e){return!e.sup0_10&&e.sup1rs&&!("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"FSUP",template:o.default.frequency,label:function(e){return l.default.get("fan.frequency")}},{match:function(e){return!e.sup0_10&&e.sup1rs},id:"FAULTSUP",template:o.default.faultFC,label:function(e){return l.default.get("fan.faultCode")}}].concat(n(f.extras)),alarms:[{id:"A_SUPFC",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_supfc")}},{id:"A_COMSUPFC",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_com_supfc")}},{match:function(e){return e.supPress},id:"A_SUPPRES",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_suppres")}}].concat(n(f.alarms))}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{el:function(e){return $get(".control.temperature-outside")},template:o.default.temperature,label:function(e){return l.default.get("temperatures.outside")},bar:{min:-5,max:30},alarms:[{id:"A_TOUT",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_tout")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{match:function(e){return e.co2detector&&e.exhaust},el:function(e){return $get(".control.co2")},template:function(e){return o.default.co2},label:function(e){return l.default.get("co2.main")},alarms:[{id:"A_HIGH_CO",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_highco")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{match:function(e){return e.humidifier||e.dehumidifier},el:function(e){return $get(".control.humidity-main")},template:function(e){return o.default.humidity},label:function(e){return l.default.get("humidity.main")},bar:{min:0,max:100},extras:[{match:function(e){return e.humidifier},id:"Y11",template:o.default.analogPercentage,label:function(e){return l.default.get("humidity.hum")}},{match:function(e){return e.dehumidifier},id:"DEHUM",template:o.default.analogPercentage,label:function(e){return l.default.get("humidity.dehum")}},{match:function(e){return e.hsupLim&&!e.exhaust},id:"HEXH",template:o.default.analogPercentage,label:function(e){return l.default.get("humidity.limit")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{match:function(e){return e.humidifier||e.dehumidifier},el:function(e){return $get(".control.humidity-setpoint")},template:function(e){return o.default.humidity},label:function(e){return l.default.get("humidity.setpoint")},bar:{min:0,max:100},settable:!0,settableOptions:{min:0,max:100,step:1}})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i),s=a(2),f=r(s),c=a(3),d=r(c);t.default=n({},f.default,{el:function(e){return $get(".serviceMode")},template:function(e){return o.default.serviceMode},label:function(e){return l.default.get("params.state.service")},handler:function(e,t){128==ModbusReg.registersTab[d.default.UNIT_STATE]||ModbusReg.registersTab[d.default.A_CODE]?document.getElementById("_waitForIt").removeClass("legendary"):document.getElementById("_waitForIt").addClass("legendary")},alarms:[{id:"A_CODE",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_code")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{match:function(e){return e.mix||e.nmix},el:function(e){return $get(".control.mix-setpoint")},template:function(e){return o.default.analogPercentage},label:function(e){return l.default.get("mix.setpoint")},bar:{min:0,max:100},settable:!0,settableOptions:{min:0,max:100,step:1}})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{el:function(e){return $get(".control.temperature-main")},template:function(e){return o.default.temperature},label:function(e){return l.default.get("temperatures.main")},bar:{min:20,max:30},alarms:[{id:"A_TMAIN",template:o.default.defaultAlarm,label:function(e){return l.default.get("alarms.a_tmain")}}]})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(1),o=r(i);t.default=n({},r(a(2)).default,{el:function(e){return $get(".control.temperature-setpoint")},template:function(e){return o.default.temperature},label:function(e){return l.default.get("temperatures.actualSetpoint")},bar:{min:5,max:45},settable:!0,settableOptions:{min:5,max:45,step:.1}})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=a(0),u=r(n),l=a(1),i=r(l);t.default={el:function(e){return $get(".control.work")},template:function(e){return i.default.binarySimple},label:function(e){return u.default.get("params.work")},handler:function(e,t){e.getElement().dataset.title=e.definition.label,e.getElement().querySelector(".value").innerHTML=e.prettyValue}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e},u=a(0),l=r(u),i=a(2),o=r(i),s=a(1),f=r(s);t.default=n({},o.default,{el:function(e){return $get(".control.mode")},label:function(e){return l.default.get("params.mode")},template:function(e){return f.default.workMode},handler:function(e,t){e.getElement().dataset.title=e.definition.label(t),e.getElement().querySelector(".value").innerHTML=e.prettyValue},settable:!0})},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMultipleFanExtrasAndAlarms=void 0;var u=a(0),l=r(u),i=a(1),o=r(i);t.createMultipleFanExtrasAndAlarms=function(e){var t=[],a=[];e=e.toUpperCase();for(var r=2;2>=r;r++)!function(e){t.push({id:"A_COMEXHFC"+e,template:o.default.defaultAlarm,label:function(t){return l.default.get("alarms.a_com_exhfc"+e)}},{match:function(e){return!e.exh0_10},id:"FAULTEXH2",template:o.default.defaultAlarm,label:function(t){return l.default.get("fan.faultCode")+" "+e}}),a=[].concat(n(a),[{match:function(e){return!e.exh0_10&&e.exh2rs&&("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"RPMEXH2",template:o.default.rpm,label:function(t){return l.default.get("fan.velocity")+" "+e}},{match:function(e){return!e.exh0_10&&e.exh2rs},id:"UEXH2",template:o.default.voltage,label:function(t){return l.default.get("fan.voltage")+" "+e}},{match:function(e){return!e.exh0_10&&e.exh2rs},id:"IEXH2",template:o.default.amperage,label:function(t){return l.default.get("fan.amperage")+" "+e}},{match:function(e){return!e.exh0_10&&e.exh2rs&&!("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"FEXH2",template:o.default.frequency,label:function(t){return l.default.get("fan.frequency")+" "+e}},{match:function(e){return!e.exh0_10&&e.exh2rs},id:"FAULTEXH2",template:o.default.faultFC,label:function(t){return l.default.get("fan.faultCode")+" "+e}}])}(r);return{alarms:t,extras:a}}},function(e,t,a){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);e.length>t;t++)a[t]=e[t];return a}return Array.from(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMultipleFanExtrasAndAlarms=void 0;var u=a(0),l=r(u),i=a(1),o=r(i);t.createMultipleFanExtrasAndAlarms=function(e){var t=[],a=[];e=e.toUpperCase();for(var r=2;2>=r;r++)!function(e){t.push({id:"A_COMSUPFC"+e,template:o.default.defaultAlarm,label:function(t){return l.default.get("alarms.a_com_supfc"+e)}},{match:function(e){return!e.sup0_10},id:"FAULTSUP2",template:o.default.defaultAlarm,label:function(t){return l.default.get("fan.faultCode")+" "+e}}),a=[].concat(n(a),[{match:function(e){return!e.sup0_10&&e.sup2rs&&("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"RPMSUP2",template:o.default.rpm,label:function(t){return l.default.get("fan.velocity")+" "+e}},{match:function(e){return!e.sup0_10&&e.sup2rs},id:"USUP2",template:o.default.voltage,label:function(t){return l.default.get("fan.voltage")+" "+e}},{match:function(e){return!e.sup0_10&&e.sup2rs},id:"ISUP2",template:o.default.amperage,label:function(t){return l.default.get("fan.amperage")+" "+e}},{match:function(e){return!e.sup0_10&&e.sup2rs&&!("ecBlue"==e.inverterType||"ebm"==e.inverterType)},id:"FSUP2",template:o.default.frequency,label:function(t){return l.default.get("fan.frequency")+" "+e}},{match:function(e){return!e.sup0_10&&e.sup2rs},id:"FAULTSUP2",template:o.default.faultFC,label:function(t){return l.default.get("fan.faultCode")+" "+e}}])}(r);return{alarms:t,extras:a}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={actual:{name:"actual",parser:function(e){return e},handler:function(e,t){e?t.replaceClass("default","active"):t.replaceClass("active","default")},pretty:function(e){var t=e.toString(16);return t=t.toUpperCase(),2>t.length&&(t="0"+t),t="0x"+t}},binary:{name:"binary",parser:function(e){return parseInt(e)},handler:function(e,t){e?t.replaceClass("default","active"):t.replaceClass("active","default")},pretty:function(e,t){var a=(t.states?t.states:{0:function(e){return"Off"},1:function(e){return"On"}})[e];return a instanceof Function?a():a}},analog:{name:"analog",parser:function(e){return parseFloat(e)/256},handler:function(e,t){e>0?t.replaceClass("default","active"):t.replaceClass("active","default")},pretty:function(e,t){return""+e.toFixed(t.value.decimals)+t.value.suffix}},temperature:{name:"temperature",parser:function(e){return e<Math.pow(2,31)?100>parseFloat(e)/256?parseFloat(e)/256:"NS":(e-Math.pow(2,32))/256>-100?(e-Math.pow(2,32))/256:"NS"},pretty:function(e,t){return"NS"!==e&&e>-100&&100>e?e.toFixed(t.value.decimals)+t.value.suffix:"NS"}},multi:{name:"multi",parser:function(e,t){return parseInt(e)},pretty:function(e,t){return t.states[parseInt(e)]instanceof Function?t.states[parseInt(e)]():t.states[parseInt(e)]}},defaultAlarm:{isAlarm:!0,parser:function(e){return!!e},pretty:function(e,t){return(t.states?t.states:{0:"Off",1:"On"})[e?1:0]}},hum:{name:"humidity",parser:function(e){return e<Math.pow(2,31)?101>parseFloat(e)/256?parseFloat(e)/256:"NS":(e-Math.pow(2,32))/256>-1?(e-Math.pow(2,32))/256:"NS"},pretty:function(e,t){return"NS"!==e&&e>-1&&101>e?e.toFixed(t.value.decimals)+t.value.suffix:"NS"}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={temperature:{suffix:" °C",decimals:1},pressure:{suffix:" Pa",decimals:0},flow:{suffix:" m3/h",decimals:0},pressureBar:{suffix:" Bar",decimals:1},humidity:{suffix:" %",decimals:0},humidityAbsolute:{suffix:" g/kg",decimals:1},percentage:{suffix:" %",decimals:0},voltage:{suffix:" V",decimals:0},amperage:{suffix:" A",decimals:1},frequency:{suffix:" Hz",decimals:1},rpm:{suffix:" rpm",decimals:0},hum:{suffix:" kg/h",decimals:1},co2:{suffix:" ppm",decimals:0},none:{suffix:"",decimals:0}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={alarms:{alarm:"Poplach",alarmList:"Seznam alarmů",on:"Poplach",off:"Ok",a_thhw:"Alarm protimrazové ochrany",a_3xthhw:"Alarm protimrazové ochrany (3krát za hodinu)",a_thhw_air:"Alarm proti zamrznutí termostatu",a_3xthhw_air:"Alarm proti zamrznutí termostatu (3krát za hodinu)",a_thhw_water:"Alarm teploty zpátečky nízkého ohřívače",a_3xthhw_water:"Alarm teploty zpátečky nízkého ohřívače (3krát za hodinu)",a_thhe:"Alarm termostatu elektrického ohřívače",a_3xthhe:"Alarm termostatu elektrického ohřívače (3krát za hodinu)",a_thhe_sec:"Alarm sekundárního elektrického ohřívače termostatu",a_3xthhe_sec:"Alarm sekundárního elektrického ohřívače termostatu (3krát za hodinu)",a_thgas:"Alarm ohřívače plynu",a_suppres:"Alarm ventilátoru napájení (testován tlakovým spínačem)",a_exhpres:"Alarm výfukových ventilátorů (testován tlakovým spínačem)",a_3xthgas:"Alarm ohřívače plynu (3krát za hodinu)",a_rotfc:"Alarm střídače výměníku tepla",a_coldrec:"Alarm Ochrana proti výměníku tepla",a_supfc:"Alarm střídače napájení ventilátoru",a_cx:"Freon agregátní poplach",a_dx:"Freon agregátní poplach",a_fx:"Alarm reverzibilního agregátu",a_exhfc:"Alarm střídače poplašného ventilátoru",a_com_supfc:"Komunikační alarm s napájecím měničem střídače",a_com_supfc2:"Komunikační alarm s 2 napájecím měničem střídače",a_com_exhfc:"Komunikacní alarm s výfukovým měničem střídače",a_com_exhfc2:"Komunikacní alarm s 2 výfukovým měničem střídače",a_supfilter:"Alarm špinavého filtru napájecí",a_supfilter2:"Alarm špinavého druhého filtru napájecí",a_exhfilter:"Alarm špinavého filtru výfuku",a_highco:"Koncentrace CO překročila poplach",a_b1:"Alarm snímače teploty",a_tsup:"Alarm snímače teploty",a_b2:"Alarm snímače teploty",a_b4:"Alarm snímače teploty",a_texh:"Alarm snímače teploty",a_tout:"Alarm snímače teploty",a_tmain:"Alarm snímače teploty",a_tbackwater:"Alarm snímače teploty",a_code:"Nesprávný kód APP",a_hum:"Alarm zvlhčovače"},params:{mode:"Stav jednotky",serviceModeOff:"",serviceModeOn:"Servisní režim",modes:{stop:"Stop",gear1:"I Rychlost",gear2:"II Rychlost",gear3:"III Rychlost",standby:"Pohotovostní",calendar:"Kalendář"},state:{stop:"Stop",gear1:"I Rychlost",gear2:"II Rychlost",gear3:"III Rychlost",preheat:"Předehřívání",cooling:"Chlazení",heating:"Topení",blockingAlarm:"Blokování Alarm",service:"Servisní režim"},start:"Start",stop:"Stop",active:"Aktivní",noactive:"Neaktivní",setpoint:"Nastavená hodnota",work:"Potvrzení provozu jednotky"},temperatures:{setpoint:"Nastavená teplota",actualSetpoint:"Nastavená teplota",main:"Hlavní teplota",outside:"Vnější snímač",b1:"Snímač napájení",b2:"Snímač výfuku",b4:"Snímač za výměníkem tepla",b8:"Teplota vratné vody"},dampers:{on:"Otevřeno",off:"Zavřeno",supply:"Klapka napájecu",exhaust:"Klapka výfuku"},filters:{ok:"Ok",dirty:"Špinavý",supply:"Napájecí filtr",exhaust:"Filtr výfuku",supply2:"2 Napájecí filtr"},recuperators:{cross:"Křížový výměník tepla",rotary:"Rotační výměník tepla",rotaryStatus:{status:"Postavení",off:"Stop",on:"Start"},glycol:"Glykolový výměník tepla",glycolValve:"Frost Valve",glycolPump:"Čerpadlo"},heater:{electric:"Elektrický ohřívač",water:"Vodni ohřívač",gas:"Plynový ohřívač",pump:"Čerpadlo vodni ohřívača",preHeat:"Předhřívání vodni ohřívača",setpoint:"Nastavená hodnota"},secHeater:{electric:"Sekundární elektrický ohřívač",water:"Sekundární vodni ohřívač",pump:"Sekundární čerpadlo vodni ohřívača",preHeat:"Předhřívání sekundárního vodni ohřívača",setpoint:"Nastavená hodnota"},cooler:{water:"Vodní chladič",freon:"Freon chladič",reverse:"Reverzibilní jednotka",status:"Postavení",freonStates:{stop:"Stop",state1:"1. stupeň",state2:"2. stupeň",state12:"1 & 2. stupeň"},reverseStates:{stop:"Vypnuto",start:"Zapnuto",defrost:"Odmrazování",heating:"Topení",cooling:"Chlazení"},pump:"Čerpadlo vodní chladiče",cooling:"Chlazení elektrického ohřívače nebo freonového chladiče",coolingDemand:"Požadavek na chlazení",coolingDemandStates:{stop:"Stop",start:"Start"},setpoint:"Nastavená hodnota"},fan:{faultCode:"Chybový kód",setpoint:"Žádaná hodnota",supply:"Napájecí ventilátor",exhaust:"Odsávací ventilátor",velocity:"Rychlost",voltage:"Napětí",amperage:"Proud",frequency:"Frekvence",flow:"Proud vzduchu",pressure:"Tlak",status:"Postavení",states:{off:"Stop",on:"Práce"},rpm:"Otáčky motoru"},mix:{mix:"Směšovací komory",fhen:"Rychlé ohřev se směšovací komorou",setpoint:"Nastavte směšovací poměr"},pump:{on:"Start",off:"Stop"},humidity:{humidifier:"Zvlhčovač",supply:"Dodává vlhkost kanálu",exhaust:"Dodává vlhkost kanálu",setpoint:"Nastavte vlhkost",main:"Nastavte vlhkost",dehumidity:"Dehumidita",dehum:"Signál odvlhčování",hum:"Signál vlhkosti",e6:"Signál zapnutí / vypnutí zvlhčovače",y11:"Žádaná hodnota zvlhčovače",limit:"Limitní senzor"},pressure:{supply:"Napájecí tlak",exhaust:"Výfukový tlak"},flow:{supply:"Napájecí proud",exhaust:"Výfukový proud"},recstate:{state:"Stav obnovení",stop:"Stop",start:"Start",defrost:"Odtávání"},co2:{main:"Snímač CO2"},ui:{exportAsCSV:"Export do formátu CSV",paramsPreview:"Seznam parametrů",close:"Zawrit"}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={alarms:{alarm:"Alarm",alarmList:"Alarmliste",on:"Alarm",off:"Ok",a_thhw:"Alarm - Rücklaufwasser mit niedriger Temperatur.",a_3xthhw:"Alarm - Rücklaufwasser mit niedriger Temperatur. (3 mal innerhalb der Stunde)",a_thhw_air:"Alarm des Thermostats frostsicher",a_3xthhw_air:"Alarm des Thermostats frostsicher (3 mal innerhalb der Stunde)",a_thhw_water:"Niedrigtemperaturalarm des Rücklaufwasserbereiters",a_3xthhw_water:"Niedrigtemperaturalarm des Rücklaufwasserbereiters (3 mal innerhalb der Stunde)",a_thhe:"Heizungsthermostat Alarm",a_3xthhe:"Heizungsthermostat Alarm (3 mal innerhalb der Stunde)",a_thhe_sec:"Heizungsthermostat Alarm",a_3xthhe_sec:"Heizungsthermostat Alarm (3 mal innerhalb der Stunde)",a_thgas:"Gasheizungsalarm",a_suppres:"Zuluftventilalarm (Drucktest)",a_exhpres:"Abluftventilalarm (Drucktest)",a_3xthgas:"Gasheizungsalarm (3 mal innerhalb der Stunde)",a_rotfc:"Wechselrichter-Alarm",a_coldrec:"Alarm zur Frostwiederherstellung",a_supfc:"Zuluft Ventilator Alarm",a_cx:"Freon-Kühler-Alarm",a_dx:"Freon-Kühler-Alarm",a_fx:"Reversible Einheit Alarm",a_exhfc:"Abluft Ventilator Alarm",a_com_supfc:"Kommunikation Alarm mit Versorgungs Wechselrichter",a_com_supfc2:"Kommunikation Alarm mit dem 2. Versorgungs Wechselrichter",a_com_exhfc:"Kommunikation Alarm mit Zufuhr Wechselrichter",a_com_exhfc2:"Kommunikation Alarm mit dem. 2. Zufuhr Wechselrichter",a_supfilter:"Zuluftfilter Alarm",a_supfilter2:"2. Zuluftfilter Alarm",a_exhfilter:"Abluftfilter Alarm",a_highco:"CO hat den Konzentrationsalarm überschritten",a_b1:"Zuluft-Temperatursensor Alarm",a_tsup:"Zuluft-Temperatursensor Alarm",a_b2:"Abluft-Temperatursensor Alarm",a_b4:"Ablufttemperatursensor nach Wärmetauscher Alarm",a_texh:"Abluft-Temperatursensor Alarm",a_tout:"Aussen-Temperatursensor Alarm",a_tmain:"Haupt-Temperatursensor Alarm",a_tbackwater:"Rücklaufwasser-Temperatursensor Alarm",a_code:"Falscher APP-Code",a_hum:"Falscher APP-Code"},params:{mode:"Arbeitsmodus",serviceModeOff:"",serviceModeOn:"Service Modus",modes:{stop:"Halt",gear1:"I Schritt",gear2:"II Schritt",gear3:"III Schritt",standby:"Bereitschaft",calendar:"Timer"},state:{stop:"Halt",gear1:"I Schritt",gear2:"II Schritt",gear3:"III Schritt",preheat:"Vorerhitzer",cooling:"Kuehlung",heating:"Heizen",blockingAlarm:"Alarm Halt",service:"Service Modus"},start:"Start",stop:"Halt",active:"Aktiv",noactive:"Inaktiv",setpoint:"Sollwert",work:"Bestätigung des Systembetriebs"},temperatures:{setpoint:"Temperatureinstellungen",actualSetpoint:"Temperatureinstellungen",main:"Soll Temperatur",outside:"Aussen Temperatur",b1:"Zuluft Temperatur",b2:"Abluft Temperatur",b4:"Abluft Umluft Temperatur",b8:"Temperatursensor nach dem Vorheizer"},dampers:{on:"Geöffnet",off:"Geschlossener",supply:"Zuluft Frischluftanteil",exhaust:"Abluft Frischluftanteil"},filters:{ok:"Ok",dirty:"Schmutzige",supply:"Zuluftfilter",exhaust:"Abluftfilter",supply2:"2 Zuluftfilter"},recuperators:{cross:"Querstromwärmetauscher",rotary:"Rotationswärmetauscher",rotaryStatus:{status:"Modus",off:"Halt",on:"Start"},glycol:"Glykolischer Wärmetauscher",glycolValve:"Frostventil",glycolPump:"Pumpe"},heater:{electric:"Elektrische Heizung",water:"Wasserkocher",gas:"Washeizung",pump:"Wasserpumpe",preHeat:"Vorheizen von Warmwasserbereiter",setpoint:"Sollwert"},secHeater:{electric:"Sekundäre elektrische Heizung",water:"Sekundäre wasserkocher",pump:"Sekundäre wasserpumpe",preHeat:"Vorheizen von Sekundäre warmwasserbereiter",setpoint:"Sollwert"},cooler:{water:"Wasserkühler",freon:"Freonkühler",reverse:"Umkehreinheit",status:"Stand",freonStates:{stop:"Halt",state1:"1 Schritt",state2:"2 Schritt",state12:"1 & 2 Schritt"},reverseStates:{stop:"Aus",start:"Ein",defrost:"Abtauen",heating:"Heizen",cooling:"Küehlung"},pump:"Wasserpumpe",cooling:"Kühlung der Elektroheizung oder des Freonkühlers",coolingDemand:"Kühlbedarf",coolingDemandStates:{stop:"Halt",start:"Start"},setpoint:"Sollwert"},fan:{faultCode:"Fehlercode",setpoint:"Sollwert",supply:"Zuluftventilator",exhaust:"Abluftventilator",velocity:"Sollwert",voltage:"Voltzahl",amperage:"Amperezahl",frequency:"Frequenz",pressure:"Druck",flow:"Luftstrom",status:"Stand",states:{off:"Aus",on:"Ein"},rpm:"Sollwert"},mix:{mix:"Mischkammer",fhen:"Schnelles Erhitzen mit der Mischkammer",setpoint:"Mischungsverhältnis einstellen"},pump:{on:"Start",off:"Halt"},humidity:{humidifier:"Luftbefeuchter",supply:"Zuluftfeuchtigkeit",exhaust:"Abluftfeuchtigkeit",setpoint:"Feuchtigkeitseinstellung",main:"Hauptfeuchtigkeit",dehumidity:"Entfeuchten",dehum:"Feuchtigkeitssignal",hum:"Luftbefeuchtersignal",e6:"Luftbefeuchter Ein / Aus-Signal",y11:"Luftbefeuchter-Sollwert",limit:"Begrenzungssensor"},pressure:{supply:"Versorgungsdruck",exhaust:"Abgasdruck"},flow:{supply:"Zuluftstrom",exhaust:"Abluftstrom"},recstate:{state:"Zustand des Wärmetauschers",stop:"Aus",start:"Ein",defrost:"Auftauen"},co2:{main:"CO2-Sensor"},ui:{exportAsCSV:"In CSV exportieren",paramsPreview:"Parameterliste",close:"Schließen"}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={alarms:{alarm:"Alarm",alarmList:"Alarms list",on:"Alarm",off:"Ok",a_thhw:"Antifrost thermostate alarm",a_3xthhw:"Antifrost thermostate alarm (3 times within an hour)",a_thhw_air:"Alarm of the thermostat frost-resistant",a_3xthhw_air:"Alarm of the thermostat frost-resistant (3 times appearance of the alarm within an hour)",a_thhw_water:"Low temperature alarm of return water water heater",a_3xthhw_water:"Low temperature alarm of return water water heater (3 times appearance of the alarm A_ThHWwater within an hour)",a_thhe:"Electrical heater thermostate alarm",a_3xthhe:"Electrical heater thermostate alarm (3 times within an hour)",a_thhe_sec:"Alarm of the themrostat secondary electric heater",a_3xthhe_sec:"Alarm of the termostat secondary electric heater (3 times appearance of the alarm within an hour)",a_thgas:"Gas heater alarm",a_suppres:"Supply Ventilator Alarm (tested with pressure switch)",a_exhpres:"Exhaust Ventilator Alarm (tested with pressure switch)",a_3xthgas:"Gas heater alarm (3 times within an hour)",a_rotfc:"Recovery inverter alarm",a_coldrec:"Frost recovery alarm",a_supfc:"Supply inverter alarm",a_cx:"Freon cooler alarm",a_dx:"Freon cooler alarm",a_fx:"Reversible unit alarm",a_exhfc:"Exhaust inverter alarm",a_com_supfc:"Communication alarm with supply inverter",a_com_supfc2:"Communication alarm with 2 supply inverter",a_com_exhfc:"Communication alarm with exhaust inverter",a_com_exhfc2:"Communication alarm with 2 exhaust inverter",a_supfilter:"Dirty supply filter alarm",a_supfilter2:"Dirty second supply filter alarm",a_exhfilter:"Dirty exhaust filter alarm",a_highco:"Alarm przekroczenia stężęnia CO",a_b1:"Supply temperature sensor alarm",a_tsup:"Supply temperature sensor alarm",a_b2:"Exhaust temperature sensor alarm",a_b4:"After recovery sensor alarm",a_texh:"Exhaust temperature sensor alarm",a_tout:"Outside temperature sensor alarm",a_tmain:"Main temperature sensor alarm",a_tbackwater:"Returning water temperature sensor alarm",a_code:"Incorect APP code",a_hum:"Humidifier alarm"},params:{mode:"Unit state",serviceModeOff:"",serviceModeOn:"Service Mode",modes:{stop:"Stop",gear1:"I Gear",gear2:"II Gear",gear3:"III Gear",standby:"Standby",calendar:"Timer"},state:{stop:"Stop",gear1:"I Gear",gear2:"II Gear",gear3:"III Gear",preheat:"Preheating",cooling:"Cooling",heating:"Heating",blockingAlarm:"Stop Alarm",service:"Service mode"},start:"Start",stop:"Stop",active:"Active",noactive:"Inactive",setpoint:"Set point",work:"Confirmation of unit operation"},temperatures:{setpoint:"Temp. setted",actualSetpoint:"Temp. setted",main:"Main temperature",outside:"External sensor",b1:"Supply sensor",b2:"Exhaust sensor",b4:"After recovery sensor",b8:"Return water temperature"},dampers:{on:"Open",off:"Closed",supply:"Supply damper",exhaust:"Exhaust damper"},filters:{ok:"Ok",dirty:"Dirty",supply:"Supply Filter",exhaust:"Exhaust Filter",supply2:"2 Supply Filter"},recuperators:{cross:"Cross recovery",rotary:"Rotary recovery",rotaryStatus:{status:"Status",off:"Stop",on:"Start"},glycol:"Glycol recovery",glycolValve:"Frost Valve",glycolPump:"Pump"},heater:{electric:"Electrical heater",water:"Water heater",gas:"Gas heater",pump:"Water heater pump",preHeat:"Preheating of Water heater",setpoint:"Set point"},secHeater:{electric:"Secondary electrical heater",water:"Secondary water heater",pump:"Secondary water heater pump",preHeat:"Preheating of secondary water heater",setpoint:"Setpoint"},cooler:{water:"Water cooler",freon:"Freon cooler",reverse:"Reversible unit",status:"State",freonStates:{stop:"Stop",state1:"1 Gear",state2:"2 Gear",state12:"1 & 2 Gears"},reverseStates:{stop:"Off",start:"On",defrost:"Defrost",heating:"Heating",cooling:"Cooling"},pump:"Water cooler pump",cooling:"Cooling the electric heater or freon cooler",coolingDemand:"Cooling demand",coolingDemandStates:{stop:"Stop",start:"Start"},setpoint:"Set point"},fan:{faultCode:"Fault Code",setpoint:"Setpoint",supply:"Supply fan",exhaust:"Exhaust fan",velocity:"Velocity",voltage:"Voltage",amperage:"Amperage",frequency:"Frequency",flow:"Airflow",pressure:"Pressure",status:"Status",states:{off:"Stop",on:"Work"},rpm:"Engine RPM"},mix:{mix:"Mixing chamber",fhen:"Fast heating with the mixing chamber",setpoint:"Set mixing ratio"},pump:{on:"Start",off:"Stop"},humidity:{humidifier:"Humidifier",supply:"Supply humidity",exhaust:"Exhaust humidity",setpoint:"Set humidity",main:"Main humidity",dehumidity:"Dehumidity",dehum:"Dehumidity signal",hum:"Humidity signal",e6:"Humidifier On/Off signal",y11:"Humidifier setpoint",limit:"Limiting sensor"},pressure:{supply:"Supply pressure",exhaust:"Exhaust pressure"},flow:{supply:"Supply airflow",exhaust:"Exhaust airflow"},recstate:{state:"Recovery state",stop:"Stop",start:"Start",defrost:"Defrosting"},co2:{main:"CO2 sensor"},ui:{exportAsCSV:"Export to CSV",paramsPreview:"Parameter list",close:"Close"}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={alarms:{alarm:"Alarm",alarmList:"Lista alarmów",on:"Alarm",off:"Ok",a_thhw:"Alarm termostatu przeciwzamrożeniowego",a_3xthhw:"Alarm termostatu nagrzewnicy wodnej (3 krotne wystąpienie alarmu w ciągu godziny)",a_thhw_air:"Alarm termostatu przeciwzamrożeniowego",a_3xthhw_air:"Alarm termostatu przeciwzamrożeniowego (3 krotne wystąpienie alarmu w ciągu godziny)",a_thhw_water:"Alarm niskiej temperatury wody powrotnej nagrzewnicy",a_3xthhw_water:"Alarm niskiej temperatury wody powrotnej nagrzewnicy (3 krotne wystąpienie alarmu w ciągu godziny)",a_thhe:"Alarm termostatu nagrzewnicy elektrycznej",a_3xthhe:"Alarm termostatu nagrzewnicy elektrycznej (3 krotne wystąpienie alarmu w ciągu godziny)",a_thhe_sec:"Alarm termostatu wtórnej nagrzewnicy elektrycznej",a_3xthhe_sec:"Alarm termostatu wtórnej nagrzewnicy elektrycznej (3 krotne wystąpienie alarmu w ciągu godziny)",a_thgas:"Alarm nagrzewnicy gazowej",a_suppres:"Alarm wentylatora nawiewu (badany presostatem)",a_exhpres:"Alarm wentylatora wywiewu (badany presostatem)",a_3xthgas:"Alarm nagrzewnicy gazowej (3 krotne wystąpienie alarmu w ciągu godziny)",a_rotfc:"Alarm falownika odzysku obrotowego",a_coldrec:"Alarm oszronienia odzysku",a_supfc:"Alarm falownika nawiewu",a_cx:"Alarm chłodnicy freonowej",a_dx:"Alarm chłodnicy freonowej",a_fx:"Alarm agregatu rewersyjnego",a_exhfc:"Alarm falownika wywiewu",a_com_supfc:"Alarm komunikacji z falownikiem nawiewu",a_com_supfc2:"Alarm komunikacji z falownikiem nawiewu 2",a_com_exhfc:"Alarm komunikacji z falownikiem wywiewu",a_com_exhfc2:"Alarm komunikacji z falownikiem wywiewu 2",a_supfilter:"Alarm brudnego filtra nawiewu",a_supfilter2:"Alarm brudnego wtórnego filtra nawiewu",a_exhfilter:"Alarm brudnego filtra wywiewu",a_highco:"Alarm przekroczenia stężęnia CO",a_b1:"Alarm czujnika temperatury nawiewu",a_tsup:"Alarm czujnika temperatury nawiewu",a_b2:"Alarm czujnika temperatury wywiewu",a_b4:"Alarm czujnika temperatury za odzyskiem",a_texh:"Alarm czujnika temperatury wywiewu",a_tout:"Alarm czujnika temperatury zewnętrznej",a_tmain:"Alarm czujnika temperatury wiodącej",a_tbackwater:"Alarm czujnika temperatury wody powrotu",a_code:"Niepoprawny kod aplikacji",a_hum:"Alarm nawilżacza"},params:{mode:"Tryb pracy",serviceModeOff:"",serviceModeOn:"Tryb Serwisowy",modes:{stop:"Stop",gear1:"I Bieg",gear2:"II Bieg",gear3:"III Bieg",standby:"Czuwanie",calendar:"Timer"},state:{stop:"Stop",gear1:"I Bieg",gear2:"II Bieg",gear3:"III Bieg",preheat:"Wygrzewanie wstępne",cooling:"Schładzanie",heating:"Wygrzewanie",blockingAlarm:"Alarm blokujący",service:"Tryb serwisowy"},start:"Start",stop:"Stop",active:"Aktywny",noactive:"Nieaktywny",setpoint:"Wysterowanie",work:"Potwierdzenie pracy układu"},temperatures:{setpoint:"Temperatura zadana",actualSetpoint:"Temperatura zadana",main:"Temperatura wiodąca",outside:"Temperatura zewnętrzna",b1:"Temperatura nawiewu",b2:"Temperatura wywiewu",b4:"Temperatura za odzyskiem",b8:"Temperatura wody powrotu"},dampers:{on:"Otwarta",off:"Zamknięta",supply:"Przepustnica czerpni",exhaust:"Przepustnica wyrzutni"},filters:{ok:"Ok",dirty:"Brudny",supply:"Filtr nawiewu",exhaust:"Filtr wywiewu",supply2:"Filtr wtórny nawiewu"},recuperators:{cross:"Odzysk krzyżowy",rotary:"Odzysk obrotowy",rotaryStatus:{status:"Sygnał startu",off:"Stop",on:"Start"},glycol:"Wymiennik glikolowy",glycolValve:"Zawór odszronienia",glycolPump:"Pompa"},heater:{electric:"Nagrzewnica elektryczna",water:"Nagrzewnica wodna",gas:"Nagrzewnica gazowa",pump:"Pompa nagrzewnicy wodnej",preHeat:"Wygrzewanie wstępne nagrzewnicy wodnej",setpoint:"Wysterowanie"},secHeater:{electric:"Wtórna nagrzewnica elektryczna",water:"Wtórna nagrzewnica wodna",pump:"Pompa wtórnej nagrzewnicy wodnej",preHeat:"Wygrzewanie wstępne wtórnej nagrzewnicy wodnej",setpoint:"Wysterowanie"},cooler:{water:"Chłodnica wodna",freon:"Chłodnica freonowa",reverse:"Agregat rewersyjny",status:"Stan",freonStates:{stop:"Stop",state1:"1 Stopień",state2:"2 Stopień",state12:"1 i 2 Stopień"},reverseStates:{stop:"Stop",start:"Start",defrost:"Odszranianie",heating:"Grzanie",cooling:"Chłodzenie"},pump:"Pompa chłodnicy wodnej",cooling:"Schładzanie nagrzewnicy elektrycznej lub chłodnicy freonowej",coolingDemand:"Zapotrzebowanie na chłodzenie",coolingDemandStates:{stop:"Stop",start:"Start"},setpoint:"Wysterowanie"},fan:{faultCode:"Kod błędu falownika",setpoint:"Wysterowanie",supply:"Wentylator nawiewu",exhaust:"Wentylator wywiewu",velocity:"Prędkość",voltage:"Napięcie",amperage:"Natężenie",frequency:"Częstotliwość",flow:"Przepływ",pressure:"Ciśnienie",status:"Stan",states:{off:"Stop",on:"Praca"},rpm:"Obroty silnika"},mix:{mix:"Komora mieszania",fhen:"Szybkie grzanie komorą mieszania",setpoint:"Wysterowanie kom. mieszania w trybie ręcznym"},pump:{on:"Start",off:"Stop"},humidity:{humidifier:"Nawilżacz",supply:"Wilgotność nawiewu",exhaust:"Wilgotność wywiewu",setpoint:"Wilgotność zadana",main:"Wilgotność wiodąca",dehumidity:"Osuszanie",dehum:"Sygnał osuszania",hum:"Sygnał nawilżania",e6:"Sygnał Start/Stop nawilżacza",y11:"Wysterowanie nawilżacza",limit:"Czujnik limitujący"},pressure:{supply:"Ciśnienie nawiewu",exhaust:"Ciśnienie wywiewu"},flow:{supply:"Przepływ nawiewu",exhaust:"Przepływ wywiewu"},recstate:{state:"Stan odzysku",stop:"Stop",start:"Start",defrost:"Odszranianie"},co2:{main:"Czujnik CO2"},ui:{exportAsCSV:"Exportuj do CSV",paramsPreview:"Lista parametrów",close:"Zamknij"}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={alarms:{alarm:"Авария",alarmList:"Список аварийных",on:"Авария",off:"Oк",a_thhw:"Сигнал аварии противозамерзающего термостата",a_3xthhw:"Сигнал аварии противозамерзающего термостата (3-х разовое в течени часа)",a_thhw_air:"Тревога противзамораживающего термостата",a_3xthhw_air:"Тревога противзамораживающего термостата (3 кратное выступление тревоги A_ThHWair в течение часа)",a_thhw_water:"Тревога низкой температуры поворотной воды водяного нагревателя",a_3xthhw_water:"Тревога низкой температуры поворотной воды водяного нагревателя (3 кратное выступление тревоги A_ThHWwater в течение часа)",a_thhe:"Сигнал аварии термостата электронагревателя",a_3xthhe:"Сигнал аварии термостата электронагревателя (3-х разовое в течени часа)",a_thhe_sec:"Термостат электронагреватель сигнализация",a_3xthhe_sec:"Сигнализация электронагревателя термостата (3-х кратное срабатывание сигнализации в течение часа)",a_thgas:"Сигнал аварии газового нагревателя",a_suppres:"Сигнал аварии приточного вентилятора (тестирование прессостатом)",a_exhpres:"Сигнал аварии вытяжчного вентилятора (тестирование прессостатом)",a_3xthgas:"Сигнал аварии газового нагревателя (3-х разовое в течени часа)",a_rotfc:"Сигнал аварии преобразователя частоты рекуператора",a_coldrec:"Сигнал противозамерзания рекуператора",a_supfc:"Сигнал аварии преобразователя частоты притока",a_cx:"Сигнал аварии фреонового охладителя",a_dx:"Сигнал аварии фреонового охладителя",a_fx:"Сигнал аварии обратимого агрегата",a_exhfc:"Сигнал аварии преобразователя частоты вытяжки",a_com_supfc:"Нет коммуникации с преобразователем частоты притока",a_com_supfc2:"Нет коммуникации с преобразователем частоты притока 2",a_com_exhfc:"Нет коммуникации с преобразователем частоты вытяжки",a_com_exhfc2:"Нет коммуникации с преобразователем частоты вытяжки 2",a_supfilter:"Сигнал грязного фильтра притока",a_supfilter2:"Сигнал грязного вторичного фильтра притока",a_exhfilter:"Сигнал грязного фильтра вытяжка",a_highco:"Превышен сигнал тревоги",a_b1:"Сигнал аварии датчика температуры притока",a_tsup:"Сигнал аварии датчика температуры притока",a_b2:"Сигнал аварии датчика температуры вытяжки",a_b4:"Сигнал аварии датчика температуры рекуп.",a_texh:"Сигнал аварии датчика температуры вытяжки",a_tout:"Сигнал аварии датчика наружной температуры",a_tmain:"Сигнал основного датчика температурыа",a_tbackwater:"Alarm czujnika temperatury wody powrotnej z nagrzewnicy wodnej",a_code:"Неправильный код APP",a_hum:"Сигнализация увлажнителя"},params:{mode:"Состояние системыe",serviceModeOff:"",serviceModeOn:"Сервисный режим",modes:{stop:"Стоп",gear1:"1 скорость",gear2:"2 скорость",gear3:"3 скорость",standby:"Ожидание",calendar:"таймер"},state:{stop:"Стоп",gear1:"1 скорость",gear2:"2 скорость",gear3:"3 скорость",preheat:"Преднагрев",cooling:"Охлаждение",heating:"Нагрев",blockingAlarm:"Аварийное отк.",service:"Сервисный режим"},start:"Старт",stop:"Стоп",active:"Активен",noactive:"Не активен",setpoint:"Настройки",work:"Подтверждение работы системы"},temperatures:{setpoint:"Заданная температура",actualSetpoint:"Заданная температура",main:"Основная температура",outside:"Наружный датчик",b1:"Температура притока",b2:"Температура вытяжки",b4:"Температура для восстановления",b8:"Температура обратной воды"},dampers:{on:"Oткрытая",off:"Закрытая",supply:"Заслонки на входе",exhaust:"Заслонки на выходе"},filters:{ok:"ОК",dirty:"Грязный",supply:"Фильтр притока",exhaust:"Фильтр вытяжки",supply2:"Вторичный фильтр притока"},recuperators:{cross:"Перекрестная рекуперация",rotary:"Роторная рекуперация",rotaryStatus:{status:"Сигнал старту",off:"Стоп",on:"Старт"},glycol:"Гликолевая рекуперация",glycolValve:"Клапан защиты от замерзания",glycolPump:"Насос"},heater:{electric:"Электронагреватель",water:"Водяной нагреватель",gas:"Газовой нагреватель",pump:"Насос водяного нагревателя",preHeat:"Предподогрев водяного нагревателя",setpoint:"Настройки"},secHeater:{electric:"Электронагреватель",water:"Водяной нагреватель",pump:"Насос водяного нагревателя",preHeat:"Предподогрев водяного нагревателя",setpoint:"Настройки"},cooler:{water:"Воднои Охладитель",freon:"Фреоновый охладитель",reverse:"Реверсивный блок",status:"Статус",freonStates:{stop:"Стоп",state1:"1 ступень",state2:"2 ступень",state12:"1,2 ступени"},reverseStates:{stop:"Стоп",start:"Старт",defrost:"Размораживать",heating:"Обогрев",cooling:"Охлаждение"},pump:"Насос водяного охладителя",cooling:"Охлаждение электронагревателя или фреонового охладителя",coolingDemand:"Охладительная потребность",coolingDemandStates:{stop:"Стоп",start:"Старт"},setpoint:"Настройки"},fan:{faultCode:"Код ошибки",setpoint:"Заданная",supply:"Приточный вентилятор",exhaust:"Вытяжной вентилятор",velocity:"Скорость",voltage:"Напряжение",amperage:"Ток",frequency:"Частота",flow:"Поток",pressure:"Давление",status:"Статус",states:{off:"Стоп",on:"Старт"},rpm:"Обороты двигателя"},mix:{mix:"Камера смешения",fhen:"Быстрый подогрев камерой смешения",setpoint:"Устан.кам.смеш."},pump:{on:"Старт",off:"Стоп"},humidity:{humidifier:"Увлажнитель",supply:"Влажность на притоке",exhaust:"Влажность на вытяжке",setpoint:"уставки влажности",main:"Влажность основная",dehumidity:"Дренаж",dehum:"Сигнал сушки",hum:"Сигнал на увлажнитель",e6:"Сигнал зап. / ост. увлажнителя",y11:"Работа увлажнителя",limit:"Ограничивающий датчик"},pressure:{supply:"Давление притока",exhaust:"Давление вытяжки"},flow:{supply:"Измерение расхода воздуха приточного вентилятора",exhaust:"Измерение потока отработанного воздуха"},recstate:{state:"Рекуперация",stop:"Стоп",start:"Старт",defrost:"Pазмораживание"},co2:{main:"Датчик CO2"},ui:{exportAsCSV:"Экспорт в CSV",paramsPreview:"Cписок параметров",close:"Закрыть"}}}]); 

var lastCode = '';
const clearVis = () => {
    document.getElementById('vis-content').innerHTML = `<div class="_v">
    <div class="ahu">
        <div class="_1">
            <div class="duct opened md v1">
                <div class="damper cont"></div>
                <div class="filter cont"></div>
            </div>
            <div class="rec-distance"></div>
            <div class="duct separator a"></div>
            <div class="w w1 cont"></div>
            <div class="w w2 cont"></div>
            <div class="w w3 cont"></div>
            <div class="fan cont"></div>
            <div class="filter filter-exh cont"></div>
            <div class="w w4 cont"></div>
            <div class="duct separator b md closing"></div>
            <div class="sensor s1 cont"></div>
            <div class="sensor s2 cont"></div>
            <div class="sensor s3 cont"></div>
        </div>
        <div class="_2">
            <div class="duct opened md v2">
                <div class="damper cont"></div>
                <div class="filter cont"></div>
            </div>
            <div class="rec cont"></div>
            <div class="mix cont"></div>
            <div class="w w1 cont"></div>
            <div class="w w2 cont"></div>
            <div class="w w3 cont"></div>
            <div class="fan cont"></div>
            <div class="filter filter2 cont"></div>
            <div class="w w4 cont"></div>
            <div class="duct separator b sm closing"></div>
            <div class="sensor s1 cont"></div>
            <div class="sensor s2 cont"></div>
            <div class="sensor s3 cont"></div>
        </div>
    </div>
    <div class="control-table">
        <div class="row">
            <div class="control mode">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path d="M0 0h24v24H0z" fill="none" />
                        <path
                            d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" />
                    </svg>
                </div>
                <div class="value"></div>
                <div class="suffix"></div>
            </div>
            <div class="control temperature-setpoint">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path d="M0 0h24v24H0z" fill="none" />
                        <path
                            d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

            <div class="control humidity-setpoint">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path d="M0 0h24v24H0z" fill="none" />
                        <path
                            d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

            <div class="control mix-setpoint">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path d="M0 0h24v24H0z" fill="none" />
                        <path
                            d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

            <div class="control temperature-main">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path clip-path="url(#b)"
                            d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C19.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

            <div class="control temperature-outside">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path clip-path="url(#b)"
                            d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C19.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

            <div class="control humidity-main">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path clip-path="url(#b)"
                            d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C19.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

            <div class="control co2">
                <div class="icon">
                    <svg fill="#FFFFFF" height="24" viewBox="0 0 24 24" width="24">
                        <path clip-path="url(#b)"
                            d="M23 8c0 1.1-.9 2-2 2-.18 0-.35-.02-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56C19.02 8.35 19 8.18 19 8c0-1.1.9-2 2-2s2 .9 2 2z" />
                    </svg>
                </div>
                <div class="value num"></div>
                <div class="suffix"></div>
                <div class="bar">
                    <div></div>
                </div>
            </div>

        </div>
    </div>
    <div id="params-preview">
        <div class="container">
            <div class="table-container">
                <div class="table"></div>
            </div>
        </div>
    </div>
</div>`;
}

/**
 * Init app code based on MAX L+ v.6.4 configuration
 */

function initAppCode() {
    const result = {
        language: '',                   // PL, EN, DE, RU, CZ
        supply: false,                  // true, false
        exhaust: false,                 // true, false
        rec: null,                      // null, glycol, cross, rotary
        mix: false,                     // true, false
        fhen: false,
        reverse: false,                 // true, false
        cooler: null,                   // null, freon, water
        heater: null,                   // null, electric, water, gas
        secHeater: null,                // null, electric, water
        humidifier: false,
        dehumidifier: false,
        hsupLim: false,                 // Czujnik limitujący wilgotności
        supplyFilter2: false,           // true, false
        exhaustFilter: false,           // true, false
        co2detector: false,             // true, false
        inverterType: null,             // lg, danfoss51, danfoss101, ecBlue, ebm, eura 
        pressureControl: false,         // true, false
        flowControl: false,             // true, false
        sup0_10: false,	                // true, false 
        exh0_10: false, 		        // true, false
        sup1rs: false,                  // true, false
        sup2rs: false,                  // true, false
        exh1rs: false,                  // true, false
        exh2rs: false,                  // true, false
        b2: false,  				    // true, false
        b4: false,                      // true, false     
        b8: false,                      // true, false
        supengines: 0,			        // 0-2
        exhengines: 0,			        // 0-2
        supPress: false,                // true, false
        exhPress: false,                // true, false
        _2s1f: false,

        actCode: 'c_',
    };

    REGISTERS = {

        LANG: 596,

        ////CONFIGURATION/////

        RSSUP: 147,
        RSEXH: 148,
        RSSUP2: 149,
        RSEXH2: 150,
        TBACK_ACTIV: 198,

        /////SERVICE MENU/////

        TYPE: 237,
        RECOVERY: 238,
        REVERSE: 239,
        COOL: 240,
        HEAT: 241,
        DEH_HUM: 242,
        SEC_HEAT: 243,
        
        HSUP_LIM: 91, 
        FUNC_DIN5: 245,
        FUNC_DIN6: 246,
        // FUNC_DIN12: 247,

        FHEN: 228,

        FAN_INVERTERS: 248,

        CONST_PRESS: 257,
        PRES_VENT: 258,

        SUP0_10: 259,
        EXH0_10: 260,

        FROST_ALARM: 264,
        REC_FROST_PROT: 265,

        TEXH_ACT: 282,

        /////   FOUND   /////

        ACT26: 486,
        ACT27: 487,

        A_CODE: 391,
    };

    result.actCode += ModbusReg.registersTab[REGISTERS.LANG] + '_' + ModbusReg.registersTab[REGISTERS.TYPE] + '_' + ModbusReg.registersTab[REGISTERS.RECOVERY] + '_' + ModbusReg.registersTab[REGISTERS.HEAT]  + '_' + ModbusReg.registersTab[REGISTERS.SEC_HEAT] + '_' + ModbusReg.registersTab[REGISTERS.COOL] + '_' + ModbusReg.registersTab[REGISTERS.FUNC_DIN5] + '_' + ModbusReg.registersTab[REGISTERS.FUNC_DIN6] + '_' + ModbusReg.registersTab[REGISTERS.CONST_PRESS] + '_' + ModbusReg.registersTab[REGISTERS.PRES_VENT] + '_' + ModbusReg.registersTab[REGISTERS.REC_FROST_PROT] + '_' + ModbusReg.registersTab[REGISTERS.TEXH_ACT] + '_' + ModbusReg.registersTab[REGISTERS.TBACK_ACTIV] + '_' + ModbusReg.registersTab[REGISTERS.EXH0_10] + '_' + ModbusReg.registersTab[REGISTERS.SUP0_10] + '_' + ModbusReg.registersTab[REGISTERS.RSEXH] + '_' + ModbusReg.registersTab[REGISTERS.RSEXH2] + '_' + ModbusReg.registersTab[REGISTERS.RSSUP] + '_' + ModbusReg.registersTab[REGISTERS.RSSUP2] + '_' + ModbusReg.registersTab[REGISTERS._RS2F1] + '_' + ModbusReg.registersTab[REGISTERS.DEH_HUM];

    // Określenie wybranego języka
    if (ModbusReg.registersTab[REGISTERS.LANG] === 1) {
        result.language = 'PL';
    }
    else if (ModbusReg.registersTab[REGISTERS.LANG] === 2) {
        result.language = 'EN';
    }
    else if (ModbusReg.registersTab[REGISTERS.LANG] === 4) {
        result.language = 'DE';
    }
    else if (ModbusReg.registersTab[REGISTERS.LANG] === 8) {
        result.language = 'RU';
    }
    else if (ModbusReg.registersTab[REGISTERS.LANG] === 16) {
        result.language = 'CZ';
    }

    // Sprawdzenie poprawności kodu i aktywacja kanału nawiewnego 
    if (ModbusReg.registersTab[REGISTERS.A_CODE] === 0) {
        result.supply = true;
    }

    // Sprawdzenie czy aktywny jest kanał wywiewu
    if (ModbusReg.registersTab[REGISTERS.TYPE] === 2 || ModbusReg.registersTab[REGISTERS.TYPE] === 4) {
        result.supply = true;
        result.exhaust = true;
    }



    // Sprawdzenie czy występuje wymiennik, jeśli tak to który.
    if (ModbusReg.registersTab[REGISTERS.RECOVERY] === 1 || ModbusReg.registersTab[REGISTERS.RECOVERY] === 16) {
        result.rec = 'glycol';
    }
    else if (ModbusReg.registersTab[REGISTERS.RECOVERY] === 2 || ModbusReg.registersTab[REGISTERS.RECOVERY] === 32) {
        result.rec = 'cross';
    }
    else if (ModbusReg.registersTab[REGISTERS.RECOVERY] === 4 || ModbusReg.registersTab[REGISTERS.RECOVERY] === 64) {
        result.rec = 'rotary';
    }

    // Dodatkowo oprócz wymiennika występuje komora mieszania
    if (ModbusReg.registersTab[REGISTERS.RECOVERY] === 1 || ModbusReg.registersTab[REGISTERS.RECOVERY] === 2 || ModbusReg.registersTab[REGISTERS.RECOVERY] === 4 || ModbusReg.registersTab[REGISTERS.RECOVERY] === 8) {
        result.mix = true;
    }

    // Aktywne szybkie grzanie komorą mieszania
    if (ModbusReg.registersTab[REGISTERS.FHEN] === 1){
        result.fhen = true;
    }

    // Sprawdzanie czy występuje i jaki typ chłodnicy
    if (ModbusReg.registersTab[REGISTERS.COOL] === 1) {
        result.cooler = 'freon';
    }
    else if (ModbusReg.registersTab[REGISTERS.COOL] === 2) {
        result.cooler = 'water';
    }

    // Sprawdzenie czy chłodnica freonowa jest agregatem rewersyjnym.
    if (ModbusReg.registersTab[REGISTERS.REVERSE] === 1) {
        result.cooler = 'reverse';
    }

    // Sprawdzanie czy występuje i jaki typ nagrzewnicy
    if (ModbusReg.registersTab[REGISTERS.HEAT] === 1) {
        result.heater = 'electric';
    }
    else if (ModbusReg.registersTab[REGISTERS.HEAT] === 2) {
        result.heater = 'water';
    }
    else if (ModbusReg.registersTab[REGISTERS.HEAT] === 4) {
        result.heater = 'gas';
    }

    // Sprawdzanie czy aktywny nawilżacz
    if ((ModbusReg.registersTab[REGISTERS.DEH_HUM] & 1 ) === 1) {
        result.humidifier = true;
    }

    // Sprawdzanie czy aktywne osuszanie
    if ((ModbusReg.registersTab[REGISTERS.DEH_HUM] & 2 ) === 2) {
        result.dehumidifier = true;
    }

    // Czy aktywny jest Czujnik limitujący
    if (ModbusReg.registersTab[REGISTERS.HSUP_LIM] === 1){
        result.hsupLim = true;
    }

    // Sprawdzanie czy występuje oraz typ nagrzewnicy wtórnej
    if (ModbusReg.registersTab[REGISTERS.SEC_HEAT] === 1) {
        result.secHeater = 'electric';
    }
    else if (ModbusReg.registersTab[REGISTERS.SEC_HEAT] === 2) {
        result.secHeater = 'water';
    }

    // Sprawdzenie czy występuje filtr wtórny nawiewu lub informacja o funkcji defrost agregatu rewersyjnego na podstawie wybranej funkcji wejścia DIN5
    if (ModbusReg.registersTab[REGISTERS.FUNC_DIN5] === 1) {
        result.supplyFilter2 = true;
    }
    else if (ModbusReg.registersTab[REGISTERS.FUNC_DIN5] === 2) {
        result._2s1f = true;
    }
    // Sprawdzenie czy występuje filtr wywiewu lub czujnik co2 na podstawie funkcji wejścia DIN6
    if (ModbusReg.registersTab[REGISTERS.FUNC_DIN6] === 1) {
        result.exhaustFilter = true;
    }
    else if ((ModbusReg.registersTab[REGISTERS.FUNC_DIN6] & 2) === 2) {
        result.co2detector = true;
    }


    // Określenie typu falowników/silników (różne parametry monitorowane dla różnych typów)
    if (ModbusReg.registersTab[REGISTERS.FAN_INVERTERS] === 1) {
        result.inverterType = 'lg';
    }
    else if (ModbusReg.registersTab[REGISTERS.FAN_INVERTERS] === 2) {
        result.inverterType = 'danfoss51';
    }
    else if (ModbusReg.registersTab[REGISTERS.FAN_INVERTERS] === 4) {
        result.inverterType = 'danfoss101';
    }
    else if (ModbusReg.registersTab[REGISTERS.FAN_INVERTERS] === 8) {
        result.inverterType = 'ecBlue';
    }
    else if (ModbusReg.registersTab[REGISTERS.FAN_INVERTERS] === 16) {
        result.inverterType = 'ebm';
    }
    else if (ModbusReg.registersTab[REGISTERS.FAN_INVERTERS] === 32) {
        result.inverterType = 'eura';
    }

    // Sprawdzamy czy badane jest stałe ciśnienie lub wydatek
    if (ModbusReg.registersTab[REGISTERS.CONST_PRESS] === 1) {
        result.pressureControl = true;
    }
    else if (ModbusReg.registersTab[REGISTERS.CONST_PRESS] === 3) {
        result.flowControl = true;
    }

    // Czy Badanie sprężu wentylatorów
    if (ModbusReg.registersTab[REGISTERS.PRES_VENT] === 1) {
        result.supPress = true;
    }
    else if (ModbusReg.registersTab[REGISTERS.PRES_VENT] === 2) {
        result.supPress = true;
        result.exhPress = true;
    }

    // Czy aktywne sterowanie 0-10V wentylatorem nawiewu
    if (ModbusReg.registersTab[REGISTERS.SUP0_10] === 1 || ModbusReg.registersTab[REGISTERS.SUP0_10] === 2 || ModbusReg.registersTab[REGISTERS.SUP0_10] === 4 || ModbusReg.registersTab[REGISTERS.SUP0_10] === 8) {
        result.sup0_10 = true;
    }

    // Czy aktywne sterowanie 0-10V wentylatorem wywiewu
    if (ModbusReg.registersTab[REGISTERS.EXH0_10] === 1 || ModbusReg.registersTab[REGISTERS.EXH0_10] === 2 || ModbusReg.registersTab[REGISTERS.EXH0_10] === 4 || ModbusReg.registersTab[REGISTERS.EXH0_10] === 8) {
        result.exh0_10 = true;
    }

    // Czy aktywny czujnik temperatury wywiewu
    if (ModbusReg.registersTab[REGISTERS.TEXH_ACT] === 1) {
        result.b2 = true;
    }

    // Czy aktywny czujnik temperatury za odzyskiem (RecFrostProt)
    if (ModbusReg.registersTab[REGISTERS.REC_FROST_PROT] === 1) {
        result.b4 = true;
    }

    // Czy aktywny czujnik przylgowy temperatury wody powrotu nagrzewnicy wodnej
    if (ModbusReg.registersTab[REGISTERS.TBACK_ACTIV] === 1) {
        result.b8 = true;
    }

    // Sprawdź ilość aktywnych wentylatorów nawiewu ( sprawdzenie aktywnych RS )
    if (result.sup0_10 === false) { // Sprawdzaj tylko jeśli nieaktywne sterowanie 0-10V
        if (ModbusReg.registersTab[REGISTERS.RSSUP] === 1) {
            result.supengines += 1;
            result.sup1rs = true;
        }
        if (ModbusReg.registersTab[REGISTERS.RSSUP2] === 1 && ModbusReg.registersTab[REGISTERS.TYPE] === 4) {
            result.supengines += 1;
            result.sup2rs = true;
        }
    }

    // Sprawdź ilość aktywnych wentylatorów wywiewu ( sprawdzenie aktywnych RS )
    if (result.exh0_10 === false) { // Sprawdzaj tylko jeśli nieaktywne sterowanie 0-10V
        if (ModbusReg.registersTab[REGISTERS.RSEXH] === 1 && (ModbusReg.registersTab[REGISTERS.TYPE] === 2 || ModbusReg.registersTab[REGISTERS.TYPE] === 4)) {
            result.exhengines += 1;
            result.exh1rs = true;
        }
        if (ModbusReg.registersTab[REGISTERS.RSEXH2] === 1 && ModbusReg.registersTab[REGISTERS.TYPE] === 4 ) {
            result.exhengines += 1;
            result.exh2rs = true;
        }
    }
    // console.log(result);
    return result;
}

VisualizationIsActive = () => {
    return true;
}

VisualizationThread = () => {
    if (ModbusReg.ready && ModbusReg.registersTab[0] !== 128) {
        const APP_CONFIG = initAppCode();
        if (lastCode == APP_CONFIG.actCode) {
            window.__LANG__ = APP_CONFIG.language || 'PL';
            window.uv = window.uv || new UV(APP_CONFIG, false);
            window.uv.APP = APP_CONFIG;
            window.uv.render();
            ModbusReg.ready = true;
        }
        else { // w przypadku gdy zmieni się kod aplikacji
            document.getElementById("_waitForIt").removeClass("legendary"); // div ukrywający wizualizację.
            window.uv = null; //wyczyszczenie aktualnej instancji.
            clearVis(); // wyczyszczenie html z nadanych dodatkowych klas itp.
            lastCode = APP_CONFIG.actCode; // przypisanie nowego kodu aplikacji jako aktywny.
        }
    }
    else {
            document.getElementById("_waitForIt").removeClass("legendary");
            window.uv = null;
            clearVis();
        }
        if (!ModbusReg.autostartVisThread)
            setTimeout("VisualizationThread()", 1000);
        //ModbusReg.autostartVisThread = false; 	//wyłączenie automatycznego odpalania funkcji po uzupełnieniu tablicy
    }

    const setAnalogValue = (newValue, max, min, INPUT_ID, readValue, register) => {

        if (isFinite(newValue) && newValue >= min && newValue <= max) {
            newValue = newValue;
        }
        else if (isFinite(newValue) && newValue > max) {
            document.getElementById(INPUT_ID).style.color = 'red';
            document.getElementById(INPUT_ID).value = max;
            newValue = max;
        }
        else if (isFinite(newValue) && newValue < min) {
            document.getElementById(INPUT_ID).style.color = 'red';
            document.getElementById(INPUT_ID).value = min;
            document.getElementById(INPUT_ID).value = min;
            newValue = min;
        }
        else {
            document.getElementById(INPUT_ID).style.color = 'red';
            document.getElementById(INPUT_ID).value = readValue;
            newValue = readValue;
        }

        ModbusReg.setRegistersVal(register, (newValue * 256));
        setTimeout(function f() { document.getElementById(INPUT_ID).style.color = 'white'; $get('#vis-settable-dialog').hide() }, 300);
    }