From 46daa865699572f1c313ef7e0c682db8cd0dd828 Mon Sep 17 00:00:00 2001 From: zhongjin Date: Sun, 11 Nov 2018 11:26:26 +0800 Subject: [PATCH] www --- www/asset-manifest.json | 6 +-- www/index.html | 2 +- ...ifest.7b2229f165b1fbd4891b4b2afa5945f9.js} | 48 +++++++++---------- www/service-worker.js | 2 +- www/static/js/main.94535c0a.chunk.js | 2 + ...hunk.js.map => main.94535c0a.chunk.js.map} | 2 +- www/static/js/main.e0a2ce78.chunk.js | 2 - 7 files changed, 32 insertions(+), 32 deletions(-) rename www/{precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js => precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js} (95%) create mode 100644 www/static/js/main.94535c0a.chunk.js rename www/static/js/{main.e0a2ce78.chunk.js.map => main.94535c0a.chunk.js.map} (99%) delete mode 100644 www/static/js/main.e0a2ce78.chunk.js diff --git a/www/asset-manifest.json b/www/asset-manifest.json index 406663d..170a379 100644 --- a/www/asset-manifest.json +++ b/www/asset-manifest.json @@ -1,7 +1,7 @@ { "main.css": "./static/css/main.fa92f455.chunk.css", - "main.js": "./static/js/main.e0a2ce78.chunk.js", - "main.js.map": "./static/js/main.e0a2ce78.chunk.js.map", + "main.js": "./static/js/main.94535c0a.chunk.js", + "main.js.map": "./static/js/main.94535c0a.chunk.js.map", "static/css/1.f1df5777.chunk.css": "./static/css/1.f1df5777.chunk.css", "static/js/1.da96f522.chunk.js": "./static/js/1.da96f522.chunk.js", "static/js/1.da96f522.chunk.js.map": "./static/js/1.da96f522.chunk.js.map", @@ -14,6 +14,6 @@ "static/css/main.fa92f455.chunk.css.map": "./static/css/main.fa92f455.chunk.css.map", "static/css/1.f1df5777.chunk.css.map": "./static/css/1.f1df5777.chunk.css.map", "index.html": "./index.html", - "precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js": "./precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js", + "precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js": "./precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js", "service-worker.js": "./service-worker.js" } \ No newline at end of file diff --git a/www/index.html b/www/index.html index cf4e74a..a5ff815 100644 --- a/www/index.html +++ b/www/index.html @@ -1 +1 @@ -Material - yunkong2
\ No newline at end of file +Material - yunkong2
\ No newline at end of file diff --git a/www/precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js b/www/precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js similarity index 95% rename from www/precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js rename to www/precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js index d602ac3..14a1272 100644 --- a/www/precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js +++ b/www/precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js @@ -4,7 +4,7 @@ self.__precacheManifest = [ "url": "./static/media/roboto-latin-400.5d4aeb4e.woff2" }, { - "revision": "e0a2ce78d26df8c53520", + "revision": "94535c0a935b4158b53a", "url": "./static/css/main.fa92f455.chunk.css" }, { @@ -32,8 +32,8 @@ self.__precacheManifest = [ "url": "./static/media/rgb.5d0e5ef3.png" }, { - "revision": "e9dbbe8a693dd275c16d32feb101f1c1", - "url": "./static/media/roboto-latin-100.e9dbbe8a.woff" + "revision": "987b84570ea69ee660455b8d5e91f5f1", + "url": "./static/media/roboto-latin-100.987b8457.woff2" }, { "revision": "6232f43d15b0e7a0bf0fe82e295bdd06", @@ -44,8 +44,8 @@ self.__precacheManifest = [ "url": "./static/media/roboto-latin-100italic.d704bb3d.woff" }, { - "revision": "987b84570ea69ee660455b8d5e91f5f1", - "url": "./static/media/roboto-latin-100.987b8457.woff2" + "revision": "e9dbbe8a693dd275c16d32feb101f1c1", + "url": "./static/media/roboto-latin-100.e9dbbe8a.woff" }, { "revision": "55536c8e9e9a532651e3cf374f290ea3", @@ -64,8 +64,8 @@ self.__precacheManifest = [ "url": "./static/media/roboto-latin-300italic.210a7c78.woff" }, { - "revision": "e0a2ce78d26df8c53520", - "url": "./static/js/main.e0a2ce78.chunk.js" + "revision": "94535c0a935b4158b53a", + "url": "./static/js/main.94535c0a.chunk.js" }, { "revision": "bafb105baeb22d965c70fe52ba6b49d9", @@ -83,52 +83,52 @@ self.__precacheManifest = [ "revision": "285467176f7fe6bb6a9c6873b3dad2cc", "url": "./static/media/roboto-latin-500.28546717.woff2" }, - { - "revision": "510dec37fa69fba39593e01a469ee018", - "url": "./static/media/roboto-latin-500italic.510dec37.woff2" - }, { "revision": "de8b7431b74642e830af4d4f4b513ec9", "url": "./static/media/roboto-latin-500.de8b7431.woff" }, { - "revision": "cf6613d1adf490972c557a8e318e0868", - "url": "./static/media/roboto-latin-700.cf6613d1.woff" + "revision": "510dec37fa69fba39593e01a469ee018", + "url": "./static/media/roboto-latin-500italic.510dec37.woff2" }, { "revision": "037d830416495def72b7881024c14b7b", "url": "./static/media/roboto-latin-700.037d8304.woff2" }, + { + "revision": "cf6613d1adf490972c557a8e318e0868", + "url": "./static/media/roboto-latin-700.cf6613d1.woff" + }, { "revision": "ffcc050b2d92d4b14a4fcb527ee0bcc8", "url": "./static/media/roboto-latin-500italic.ffcc050b.woff" }, - { - "revision": "010c1aeee3c6d1cbb1d5761d80353823", - "url": "./static/media/roboto-latin-700italic.010c1aee.woff2" - }, - { - "revision": "19b7a0adfdd4f808b53af7e2ce2ad4e5", - "url": "./static/media/roboto-latin-900.19b7a0ad.woff2" - }, { "revision": "846d1890aee87fde5d8ced8eba360c3a", "url": "./static/media/roboto-latin-700italic.846d1890.woff" }, { - "revision": "7b770d6c53423deb1a8e49d3c9175184", - "url": "./static/media/roboto-latin-900italic.7b770d6c.woff2" + "revision": "19b7a0adfdd4f808b53af7e2ce2ad4e5", + "url": "./static/media/roboto-latin-900.19b7a0ad.woff2" + }, + { + "revision": "010c1aeee3c6d1cbb1d5761d80353823", + "url": "./static/media/roboto-latin-700italic.010c1aee.woff2" }, { "revision": "8c2ade503b34e31430d6c98aa29a52a3", "url": "./static/media/roboto-latin-900.8c2ade50.woff" }, + { + "revision": "7b770d6c53423deb1a8e49d3c9175184", + "url": "./static/media/roboto-latin-900italic.7b770d6c.woff2" + }, { "revision": "da96f52251b2a5cc20ea", "url": "./static/css/1.f1df5777.chunk.css" }, { - "revision": "a8c36f7822e89de8164ebb4a4717dd59", + "revision": "43250a64ed193fc92e4fce72b0bba6ca", "url": "./index.html" } ]; \ No newline at end of file diff --git a/www/service-worker.js b/www/service-worker.js index a002c36..5b64931 100644 --- a/www/service-worker.js +++ b/www/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); importScripts( - "./precache-manifest.b617eeb1a69ca66fa170a96c50b95af8.js" + "./precache-manifest.7b2229f165b1fbd4891b4b2afa5945f9.js" ); workbox.clientsClaim(); diff --git a/www/static/js/main.94535c0a.chunk.js b/www/static/js/main.94535c0a.chunk.js new file mode 100644 index 0000000..8df04c8 --- /dev/null +++ b/www/static/js/main.94535c0a.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{220:function(t,e,i){t.exports=i.p+"static/media/apartment.28bae16c.jpg"},233:function(t,e,i){t.exports=i.p+"static/media/tempColor.b133cd66.png"},234:function(t,e,i){t.exports=i.p+"static/media/rgb.5d0e5ef3.png"},235:function(t,e,i){"use strict";(function(t){var s=i(25),n=i(242),a=i(6),o=i(7),r=i(8),l=i(5),c=i(9),u=i(15),h=i(1),d=i.n(h),g=i(31),M=i(49),p=i.n(M),m=i(14),y=i.n(m),j=i(16),N=i.n(j),L=i(42),v=i.n(L),w=i(33),b=i(67),f=i.n(b);function T(t,e,i){return(i-e)*t/100+e}function D(e,i,s,n){var a=e.getBoundingClientRect(),o=a.width,r=a.height,l=function(e){var i=t,s=i.pageYOffset,n=i.pageXOffset,a=e.getBoundingClientRect(),o=a.left;return{top:a.top+s,left:o+n}}(e),c=l.top,u=l.left,h=function(t){return t.changedTouches&&t.changedTouches[0]?{x:t.changedTouches[0].pageX,y:t.changedTouches[0].pageY}:{x:t.pageX,y:t.pageY}}(i),d=h.x,g=h.y,M=s?g-c:d-u,p=(s?r:o)/100;return n?100-f()(M/p):f()(M/p)}function S(t){t.preventDefault()}var I=function(t){function e(t){var i;return Object(a.a)(this,e),(i=Object(r.a)(this,Object(l.a)(e).call(this,t))).state={currentState:"initial"},i.jumpAnimationTimeoutId=-1,i.handleKeyDown=function(t){var e,s=i.props,n=s.min,a=s.max,o=s.value,r=Math.abs((a-n)/100),l=i.props.step||r;switch(p()(t)){case"home":e=n;break;case"end":e=a;break;case"page up":e=o+10*r;break;case"page down":e=o-10*r;break;case"right":case"up":e=o+l;break;case"left":case"down":e=o-l;break;default:return}t.preventDefault(),e=f()(e,n,a),i.emitChange(t,e)},i.handleFocus=function(){i.setState({currentState:"focused"})},i.handleBlur=function(){i.setState({currentState:"normal"})},i.handleClick=function(t){var e=i.props,s=e.min,n=e.max,a=e.vertical,o=e.reverse,r=T(D(i.containerRef,t,a,o),s,n);i.emitChange(t,r,function(){i.playJumpAnimation()})},i.handleTouchStart=function(t){return i.handleMouseDown(t,!0)},i.handleMouseDown=function(t,e){t.preventDefault(),i.setState({currentState:"activated"}),i.touch=e,i.moved=!1,document.body.addEventListener("mousemove",i.handleMouseMoveBind),document.body.addEventListener("mouseup",i.handleMouseUpBind),document.body.addEventListener("touchmove",i.handleMouseMoveBind),document.body.addEventListener("touchend",i.handleMouseUpBind),"function"===typeof i.props.onDragStart&&i.props.onDragStart(t)},i.handleMouseUp=function(t){i.setState({currentState:"normal"}),document.body.removeEventListener("mousemove",i.handleMouseMoveBind),document.body.removeEventListener("mouseup",i.handleMouseUpBind),document.body.removeEventListener("touchmove",i.handleMouseMoveBind),document.body.removeEventListener("touchend",i.handleMouseUpBind),"function"===typeof i.props.onDragEnd&&i.props.onDragEnd(t),i.touch&&!i.moved&&i.handleClick(t)},i.handleMouseMove=function(t){var e=i.props,s=e.min,n=e.max,a=e.vertical,o=e.reverse,r=T(D(i.containerRef,t,a,o),s,n);i.moved=!0,i.emitChange(t,r)},i.handleMouseMoveBind=i.handleMouseMove.bind(Object(u.a)(Object(u.a)(i))),i.handleMouseUpBind=i.handleMouseUp.bind(Object(u.a)(Object(u.a)(i))),i}return Object(c.a)(e,t),Object(o.a)(e,[{key:"componentDidMount",value:function(){this.containerRef&&this.containerRef.addEventListener("touchstart",S,{passive:!1})}},{key:"componentWillUnmount",value:function(){this.containerRef.removeEventListener("touchstart",S,{passive:!1}),document.body.removeEventListener("mousemove",this.handleMouseMoveBind),document.body.removeEventListener("mouseup",this.handleMouseUpBind),document.body.removeEventListener("touchmove",this.handleMouseMoveBind),document.body.removeEventListener("touchend",this.handleMouseUpBind),clearTimeout(this.jumpAnimationTimeoutId)}},{key:"emitChange",value:function(t,e,i){var s=this.props,n=s.step,a=s.value,o=s.onChange,r=e;s.disabled||(r=n?function(t,e){return Math.round(t/e)*e}(e,n):Number(e.toFixed(3)),"function"===typeof o&&r!==a&&(o(t,r),"function"===typeof i&&i()))}},{key:"calculateTrackAfterStyles",value:function(t){switch(this.state.currentState){case"activated":return"calc(100% - ".concat(0===t?7:5,"px)");case"disabled":return"calc(".concat(100-t,"% - 6px)");default:return"calc(100% - 5px)"}}},{key:"calculateTrackBeforeStyles",value:function(t){switch(this.state.currentState){case"disabled":return"calc(".concat(t,"% - 6px)");default:return"".concat(t,"%")}}},{key:"playJumpAnimation",value:function(){var t=this;this.setState({currentState:"jumped"},function(){clearTimeout(t.jumpAnimationTimeoutId),t.jumpAnimationTimeoutId=setTimeout(function(){t.setState({currentState:"normal"})},t.props.theme.transitions.duration.complex)})}},{key:"render",value:function(){var t,e,i=this,a=this.state.currentState,o=this.props,r=o.component,l=o.classes,c=o.className,u=o.disabled,h=o.max,M=o.min,p=o.reverse,m=(o.theme,o.value),j=o.vertical,N=Object(n.a)(o,["component","classes","className","disabled","max","min","reverse","theme","value","vertical"]),L=f()(100*(m-M)/(h-M)),w=(t={},Object(s.a)(t,l.disabled,u),Object(s.a)(t,l.jumped,!u&&"jumped"===a),Object(s.a)(t,l.focused,!u&&"focused"===a),Object(s.a)(t,l.activated,!u&&"activated"===a),t),b=y()(l.root,(e={},Object(s.a)(e,l.vertical,j),Object(s.a)(e,l.reverse,p),Object(s.a)(e,l.disabled,u),e),c),T=y()(l.container,Object(s.a)({},l.vertical,j)),D=y()(l.track,l.trackBefore,w,Object(s.a)({},l.vertical,j)),S=y()(l.track,l.trackAfter,w,Object(s.a)({},l.vertical,j)),I=y()(l.thumb,w),C=j?"height":"width",k=j?"top":"left",z=Object(s.a)({},C,this.calculateTrackBeforeStyles(L)),O=Object(s.a)({},C,this.calculateTrackAfterStyles(L)),E=Object(s.a)({},k,"".concat(L,"%"));return d.a.createElement(r,Object.assign({role:"slider",className:b,"aria-valuenow":m,"aria-valuemin":M,"aria-valuemax":h,"aria-orientation":j?"vertical":"horizontal",onClick:this.handleClick,onMouseDown:this.handleMouseDown.bind(this),onTouchStart:this.handleTouchStart.bind(this),ref:function(t){i.containerRef=Object(g.findDOMNode)(t)}},N),d.a.createElement("div",{className:T},d.a.createElement("div",{className:D,style:z}),d.a.createElement(v.a,{className:I,disableRipple:!0,style:E,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onFocusVisible:this.handleFocus}),d.a.createElement("div",{className:S,style:O})))}}],[{key:"getDerivedStateFromProps",value:function(t,e){return t.disabled?{currentState:"disabled"}:t.disabled||"disabled"!==e.currentState?null:{currentState:"normal"}}}]),e}(d.a.Component);I.defaultProps={min:0,max:100,component:"div"},e.a=N()(function(t){var e={duration:t.transitions.duration.short,easing:t.transitions.easing.easeOut},i=t.transitions.create(["width","height","left","top","box-shadow"],e),s=t.transitions.create(["width","height","box-shadow"],e),n={primary:t.palette.primary.main,disabled:t.palette.grey[400]};return{root:{position:"relative",width:"100%",padding:"16px 8px",cursor:"pointer",WebkitTapHighlightColor:"transparent","&$disabled":{cursor:"no-drop"},"&$vertical":{height:"100%",padding:"8px 16px"},"&$reverse":{transform:"scaleX(-1)"},"&$vertical$reverse":{transform:"scaleY(-1)"}},container:{position:"relative","&$vertical":{height:"100%"}},track:{position:"absolute",transform:"translate(0, -50%)",top:"50%",height:2,backgroundColor:n.primary,"&$activated":{transition:"none"},"&$disabled":{backgroundColor:n.disabled},"&$vertical":{transform:"translate(-50%, 0)",left:"50%",top:"initial",width:2}},trackBefore:{zIndex:1,left:0,transition:i},trackAfter:{right:0,opacity:.24,transition:i,"&$vertical":{bottom:0}},thumb:{position:"absolute",zIndex:2,transform:"translate(-50%, -50%)",width:12,height:12,borderRadius:"50%",transition:i,backgroundColor:n.primary,"&$focused":{boxShadow:"0px 0px 0px 9px ".concat(Object(w.fade)(n.primary,.16))},"&$activated":{width:17,height:17,transition:s},"&$disabled":{cursor:"no-drop",width:9,height:9,backgroundColor:n.disabled},"&$jumped":{width:17,height:17}},reverse:{},disabled:{},jumped:{},focused:{},activated:{},vertical:{}}},{name:"MuiSlider",withTheme:!0})(I)}).call(this,i(53))},243:function(t,e,i){t.exports=i(620)},250:function(t,e,i){},252:function(t){t.exports={"-":"-","Add custom URL":"Add custom URL","Adjusting Command":"Adjusting Command","All files will be accepted":"All files will be accepted","All instances":"All instances","All lights off":"All lights off","All lights on":"All lights on","App settings":"App settings",Cancel:"Cancel","Changes are not saved.":"Changes are not saved.","Changes not saved!":"Changes not saved!",Chart:"Chart",Close:"Close","Control ID is empty":"Control ID is empty",Crop:"Crop","Crop image":"Crop image",Current:"Current","Current Type":"Current Type","Custom URL":"Custom URL","Decision Value":"Decision Value",Delete:"Delete","Discard changes":"Discard changes","Drag direction":"Drag direction","Drop some files here or click...":"Drop some files here or click...","Environment values":"Environment values",Error:"Error",Favorites:"Favorites",Functions:"Functions",Humidity:"Humidity","Ignore changes?":"Ignore changes?",Illumination:"Illumination",Instances:"Instances","Listening...":"Listening...",Logout:"Logout","Lock state":"Lock state","Menu instances":"Instances","No Motion":"No Motion","No elements":"No elements","Not saved!":"Not saved!","Nothing here":"Nothing here",Off:"Off",On:"On","On Time":"On interval",Others:"Others",Percent:"Percent","Precip.":"Precip.","Press Cont":"Continuous press",Pressure:"Pressure","Relock Delay":"Relock Delay",Rooms:"Rooms",SABOTAGE:"Sabotage",SET_TEMPERATURE:"Set temperature",Save:"Save","Select action":"Select action","Select action!":"Select action!","Show %s values":"Show %s values","Some files will be rejected":"Some files will be rejected","Speech recognition running...":"Speech recognition running...",State:"State","Stay edit":"Stay edit","Update to":"Update to","Valve State":"Valve State",Voltage:"Voltage",Weather:"Weather",Wind:"Wind","add indicator":"add indicator",alive:"Alive","Color temperature":"Color temperature",HUE:"HUE",background:"Background",backgroundColor:"Background color",close:"close",closed:"closed",color:"Color",colorOff:"OFF color",colorOn:"ON color",connected:"connected",connecting:"connecting",debug:"Debug to console",default:"Default",disabled:"disabled",done:"done",doubleSize:"Double width of tile",dow_Fr:"Fr",dow_Mo:"Mo",dow_Sa:"Sa",dow_Su:"Su",dow_Th:"Th",dow_Tu:"Tu",dow_We:"We",enabled:"enabled",fire:"fire",fullWidth:"Full width dialog",group:"group",hideIcon:"Hide camera icon",icon:"Icon",iconOff:"Icon OFF",ignoreIndicators:"Ignore indicators",instances:"Show instances",isImage:"URL is a picture","km/h":"km/h","loading...":"loading...",loadingBackground:"Loading screen background",mbar:"mbar",menuBackground:"Menu background",menuColor:"Menu background",month_Apr:"Apr",month_Aug:"Aug",month_Dec:"Dec",month_Feb:"Feb",month_Jan:"Jan",month_Jul:"Jul",month_Jun:"Jun",month_Mai:"Mai",month_Mar:"Mar",month_Nov:"Nov",month_Oct:"Oct",month_Sep:"Sep",mute:"mute",name:"Name",newLine:"New group - new line",opened:"opened","read app config":"reading app configuration","read config":"reading configuration","read objects":"reading objects",running:"running",sent:"sent","start instance":"start instance",startEnum:"Start page","stop instance":"stop instance",stopped:"stopped",tilted:"tilted",title:"Title",unknown:"unknown",unmute:"unmute",update:"Update interval (ms)",updateInDialog:"Update interval in dialog (ms)",useDefaultIcon:"Use default icon","Re-sync objects":"Re-sync objects",text2command:"text2command",noCache:"Always load objects",wind_E:"E",wind_ENE:"ENE",wind_ESE:"ESE",wind_N:"N",wind_NE:"NE",wind_NNE:"NNE",wind_NNW:"NNW",wind_NW:"NW",wind_S:"S",wind_SE:"SE",wind_SSE:"SSE",wind_SSW:"SSW",wind_SW:"SW",wind_W:"W",wind_WNW:"WNW",wind_WSW:"WSW"}},253:function(t){t.exports={"-":"-","Add custom URL":"\u6dfb\u52a0\u81ea\u5b9a\u4e49 URL","Adjusting Command":"Adjusting Command","All files will be accepted":"All files will be accepted","All instances":"All instances","All lights off":"All lights off","All lights on":"All lights on","App settings":"App \u8bbe\u7f6e",Cancel:"\u53d6\u6d88","Changes are not saved.":"Changes are not saved.","Changes not saved!":"Changes not saved!",Chart:"\u56fe\u8868",Close:"\u5173\u95ed","Control ID is empty":"Control ID is empty",Crop:"Crop","Crop image":"Crop image",Current:"Current","Current Type":"Current Type","Custom URL":"\u81ea\u5b9a\u4e49 URL","Decision Value":"Decision Value",Delete:"\u5220\u9664","Discard changes":"Discard changes","Drag direction":"Drag direction","Drop some files here or click...":"Drop some files here or click...","Environment values":"Environment values",Error:"Error",Favorites:"\u6536\u85cf",Functions:"\u529f\u80fd",Humidity:"Humidity","Ignore changes?":"Ignore changes?",Illumination:"Illumination",Instances:"\u5b9e\u4f8b","Listening...":"Listening...","Lock state":"Lock state","Menu instances":"Instances","No Motion":"No Motion","No elements":"No elements","Not saved!":"Not saved!","Nothing here":"Nothing here",Off:"Off",On:"On","On Time":"On interval",Others:"\u5176\u4ed6",Percent:"Percent","Precip.":"Precip.","Press Cont":"Continuous press",Pressure:"Pressure","Relock Delay":"Relock Delay",Rooms:"\u573a\u666f",SABOTAGE:"Sabotage",SET_TEMPERATURE:"Set temperature",Save:"\u4fdd\u5b58","Select action":"Select action","Select action!":"Select action!","Show %s values":"Show %s values","Some files will be rejected":"Some files will be rejected","Speech recognition running...":"Speech recognition running...",State:"State","Stay edit":"Stay edit","Update to":"Update to","Valve State":"Valve State",Voltage:"\u7535\u538b",Weather:"\u6c14\u6e29",Wind:"\u98ce\u901f","add indicator":"add indicator",alive:"Alive",background:"Background",backgroundColor:"Background color",close:"\u5173\u95ed",closed:"closed",color:"\u989c\u8272",colorOff:"OFF \u989c\u8272",colorOn:"ON \u989c\u8272",connected:"connected",connecting:"\u6b63\u5728\u8fde\u63a5",debug:"Debug to console",default:"Default",disabled:"disabled",done:"\u7ee7\u7eed",doubleSize:"Double width of tile",dow_Fr:"Fr",dow_Mo:"Mo",dow_Sa:"Sa",dow_Su:"Su",dow_Th:"Th",dow_Tu:"Tu",dow_We:"We",enabled:"enabled",fire:"fire",fullWidth:"Full width dialog",group:"group",hideIcon:"Hide camera icon",icon:"\u56fe\u6807",iconOff:"Icon OFF",ignoreIndicators:"Ignore indicators",instances:"Show instances",isImage:"URL is a picture","km/h":"km/h","loading...":"\u52a0\u8f7d...",loadingBackground:"Loading screen background",mbar:"mbar",menuBackground:"Menu \u80cc\u666f",menuColor:"Menu \u80cc\u666f",month_Apr:"Apr",month_Aug:"Aug",month_Dec:"Dec",month_Feb:"Feb",month_Jan:"Jan",month_Jul:"Jul",month_Jun:"Jun",month_Mai:"Mai",month_Mar:"Mar",month_Nov:"Nov",month_Oct:"Oct",month_Sep:"Sep",mute:"mute",name:"\u540d\u79f0",newLine:"New group - new line",opened:"opened","read app config":"reading app configuration","read config":"reading configuration","read objects":"reading objects",running:"running",sent:"\u53d1\u9001","start instance":"start instance",startEnum:"Start page","stop instance":"stop instance",stopped:"stopped",tilted:"tilted",title:"\u6807\u9898",unknown:"unknown",unmute:"unmute",update:"Update interval (ms)",updateInDialog:"Update interval in dialog (ms)",useDefaultIcon:"Use default icon","Re-sync objects":"Re-sync objects",text2command:"text2command",noCache:"Always load objects",wind_E:"E",wind_ENE:"ENE",wind_ESE:"ESE",wind_N:"N",wind_NE:"NE",wind_NNE:"NNE",wind_NNW:"NNW",wind_NW:"NW",wind_S:"S",wind_SE:"SE",wind_SSE:"SSE",wind_SSW:"SSW",wind_SW:"SW",wind_W:"W",wind_WNW:"WNW",wind_WSW:"WSW"}},614:function(t,e,i){},620:function(t,e,i){"use strict";i.r(e);var s=i(1),n=i.n(s),a=i(31),o=i.n(a),r=i(6),l=i(7),c=i(8),u=i(5),h=i(9),d=i(15),g=i(17),M=(i(248),i(250),i(240)),p=i.n(M),m=i(76),y=i.n(m),j=i(239),N=i.n(j),L=i(34),v=i.n(L),w=i(30),b=i.n(w),f=i(11),T=i.n(f),D=i(37),S=i.n(D),I=i(44),C=i.n(I),k=i(103),z=i.n(k),O=i(36),E=i.n(O),x=i(3),A=i(38),U=i(220),Y={typography:{useNextVariants:!0},classes:{menuBackground:{background:"inherit"},loadingBackground:{position:"absolute",top:0,bottom:0,left:0,right:0},loadingContainer:{position:"absolute",textAlign:"center",top:"calc(50% - 40px)"},loadingText:{color:"rgba(0, 0, 0, .3)",fontSize:24,position:"relative"}},appBar:{height:64},appBarVersionUpdate:{cursor:"pointer",color:"green"},appBarIcon:{height:24,paddingRight:10,overflow:"hidden"},menuIcon:{height:24,overflow:"hidden",marginRight:0,width:24},mainPanel:{backgroundImage:"url("+i.n(U).a+")",backgroundSize:"100% auto",paddingTop:64,minHeight:"calc(100% - 14px)"},menu:{width:250,selected:{color:"#2196f3"}},settings:{label:{fontSize:16,paddingTop:10},dropzone:{marginTop:10,width:"100%",height:65,border:"2px dashed black",textAlign:"center",paddingTop:45,borderRadius:10},dropzoneRejected:{border:"2px dashed red"},dropzoneAccepted:{border:"2px dashed green"}},refreshIndicator:{strokeColor:"#337ab7",loadingStrokeColor:"#337ab7"},dialog:{inner:{height:"calc(100% - 32px)",position:"absolute",top:16,left:"calc(50% - 180px)",maxWidth:360,width:"calc(100% - 16px)",padding:"16px 0 16px 16px",overflow:"hidden",boxSizing:"border-box",background:"rgba(255, 255, 255, 0.8)"},back:{width:"100%",height:"100%",zIndex:2100,userSelect:"none",position:"fixed",top:0,left:0,background:"rgba(238,238,238,0.8)"},list:{height:"calc(100% - 90px)",overflowX:"hidden",overflowY:"auto",paddingBottom:20,width:"calc(100% - 16px)"},divider:{paddingTop:0,paddingBottom:0,height:1,background:"linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 13%,rgba(255,255,255,1) 83%,rgba(255,255,255,0) 100%)"},header:{fontSize:20,textAlign:"center",color:"black",maxWidth:"calc(100% - 80px)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},saveButton:{position:"absolute",top:10,right:20,zIndex:1},closeButton:{position:"absolute",top:5,right:5,width:36,height:24,borderRadius:24,zIndex:2},settingsBack:{background:"rgba(255,255,255,0.5)"},info:{line:{width:"100%"},label:{display:"inline-block",lineHeight:"48px",fontSize:16},lc:{fontSize:12,paddingRight:16,float:"right",lineHeight:"48px"},icon:{height:20,marginRight:10},value:{fontWeight:"bold",fontSize:20},unit:{},valueUnit:{float:"right",lineHeight:"48px"},floatRight:{float:"right"},subTitle:{color:"rgba(0, 0, 0, 0.54)",padding:0,fontSize:12,lineHeight:1,display:"block"}}},buttonAllLight:{height:24,width:24,borderRadius:"50%",marginLeft:10,background:"white",boxShadow:"0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)"},palette:{textColorBright:"white",textColorDark:"black",updateAvailable:"#3fff3f",editActive:"red",lampOn:"#ffcc02",lampOff:"inherit",instanceRunning:"#52af19",instanceStopped:"#7b3d29",browserBar:"#3f51b5"},iconSize:"24px",indicatorSize:"20px",slider:{background:"grey"},list:{title:{fontSize:20,color:"white",margin:8,padding:"0 0 0 16px"},row:{paddingLeft:16,paddingRight:16,display:"inline-block",borderRadius:32,border:"1px dashed #c7c7c7",margin:8}},tile:{tile:{margin:8,borderRadius:16,padding:16,transition:"all 0.2s",width:128,height:128,position:"relative",fontSize:16,fontWeight:"bold",color:"black",background:"white",boxSizing:"border-box",userSelect:"none",display:"inline-block",overflow:"hidden",verticalAlign:"top",boxShadow:"rgba(0, 0, 0, 0.2) 0px 3px 5px -1px, rgba(0, 0, 0, 0.14) 0px 6px 10px 0px, rgba(0, 0, 0, 0.12) 0px 1px 18px 0px"},tileCorner:{position:"absolute",top:0,right:0,borderWidth:"0 16px 16px 0",borderStyle:"solid",borderColor:"rgba(173, 173, 173, 1) rgba(173, 173, 173, 1) rgb(212, 212, 212) rgb(193, 193, 193)",background:"rgba(173, 173, 173, 1)",boxShadow:"0 1px 1px rgba(0,0,0,0.3), -1px 1px 1px rgba(0,0,0,0.2)",borderRadius:"0 0 0 10px",transition:"border-width 0.1s ease-in-out",cursor:"pointer",zIndex:2},tileOn:{background:"white",opacity:1},tileOff:{background:"#b7b6b6",opacity:.7},tileIconSvg:{size:40},tileIcon:{width:40,height:40,position:"absolute",top:14,left:8,color:"#2f3440",pointerEvents:"none"},tileName:{overflow:"hidden",width:"100%",height:37},tileName2:{overflow:"hidden",float:"left"},tileNameSmall:{fontSize:8},tileText:{pointerEvents:"none",bottom:0,left:0,width:"calc(100% - 16px)",position:"absolute",padding:"0 16px",height:67},tileText2:{height:32,bottom:0,left:0,width:"calc(100% - 32px)",padding:"16px 16px 0 16px",pointerEvents:"none",position:"absolute"},tileNumber:{position:"absolute",bottom:30,right:10,borderRadius:20,background:"rgb(45, 116, 249)",opacity:.6,minWidth:20,height:19,paddingTop:1,color:"white",textAlign:"center"},tileState:{position:"absolute",bottom:10,left:16,whiteSpace:"nowrap",width:"calc(100% - 32px)",overflow:"hidden",textOverflow:"ellipsis"},tileState2:{float:"right",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},tileStateOn:{color:"#515151",fontSize:14},tileStateOff:{color:"#515151",fontSize:14},tileIndicators:{position:"absolute",top:16,right:16,whiteSpace:"nowrap"},tileIndicator:{width:16,height:16,float:"right",display:"inline-block"},tileIndicatorsIcons:{working:"#808080",unreach:"orange",lowbat:"red",maintain:"orange",error:"red",direction:"green",connected:"red"},secondary:{icon:{display:"inline-block",width:12,height:12},text:{display:"inline-block",fontSize:14,paddingLeft:3},div:{position:"absolute",top:32,right:16},button:{position:"absolute",top:16,right:8}},editMode:{checkIcon:{position:"absolute",top:0,right:0,width:"50%",height:"100%",background:"rgba(200,200,200,0.8)",color:"white",borderRadius:"0 16 16 0",zIndex:3,cursor:"pointer"},editIcon:{position:"absolute",top:0,right:"50%",width:"50%",height:"100%",background:"rgba(200,200,200,0.8)",color:"white",borderRadius:"16 0 0 16",zIndex:3,cursor:"pointer"},removeIcon:{position:"absolute",top:0,right:0,width:"100%",height:"100%",background:"rgba(80,80,80,0.8)",color:"gray",borderRadius:16,zIndex:3},buttonIcon:{paddingTop:64},buttonIconRemoved:{paddingTop:32},editEnabled:{backgroundColor:"white",opacity:1},editDisabled:{backgroundColor:"white",opacity:.5}}}},Q=function(){function t(){Object(r.a)(this,t)}return Object(l.a)(t,null,[{key:"setLanguage",value:function(e){e&&(t.lang=e)}},{key:"getLanguage",value:function(){return t.lang}},{key:"t",value:function(e,i,s,n){if(t.translations[t.lang]){var a=t.translations[t.lang][e];a?e=a:console.log("Translate: ".concat(e))}return void 0!==i&&(e=e.replace("%s",i),void 0!==s&&(e=e.replace("%s",s),void 0!==n&&(e=e.replace("%s",n)))),e}}]),t}();Q.translations={en:i(252),cn:i(253)},Q.lang=window.sysLang||"en";var W=Q,R=i(52),P=["Su","Mo","Tu","We","Th","Fr","Sa"],V=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B=function(){function t(){Object(r.a)(this,t)}return Object(l.a)(t,null,[{key:"CapitalWords",value:function(t){return(t||"").split(/[\s_]/).filter(function(t){return t}).map(function(t){return t?t[0].toUpperCase()+t.substring(1).toLowerCase():""}).join(" ")}},{key:"getObjectName",value:function(e,i,s,n,a){var o=e[i],r=i,l=a?"desc":"name";if((n=n||{}).language||(n.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),s&&s.name)"object"===typeof(r=s.name)&&(r=r[n.language]||r.en);else if(o&&o.common&&o.common[l])r=o.common[l],"desc"!==l&&!r&&o.common.desc&&(r=o.common.desc),"object"===typeof r&&(r=r[n.language]||r.en),(r=r.replace(/[_.]/g," "))===r.toUpperCase()&&(r=r[0]+r.substring(1).toLowerCase());else{var c=i.lastIndexOf(".");r=i.substring(c+1).replace(/[_.]/g," "),r=t.CapitalWords(r)}return r.trim()}},{key:"getSettingsOrder",value:function(t,e,i){var s;if(t&&t.hasOwnProperty("common")&&(t=t.common),t&&t.custom){s=(t.custom||{}).material;var n=i.user||"admin";if(s&&s[n])if(e){if(s[n].subOrder&&s[n].subOrder[e])return JSON.parse(JSON.stringify(s[n].subOrder[e]))}else if(s[n].order)return JSON.parse(JSON.stringify(s[n].order))}return null}},{key:"getSettingsCustomURLs",value:function(t,e,i){var s;if(t&&t.hasOwnProperty("common")&&(t=t.common),t&&t.custom){s=(t.custom||{}).material;var n=i.user||"admin";if(s&&s[n])if(e){if(s[n].subURLs&&s[n].subURLs[e])return JSON.parse(JSON.stringify(s[n].subURLs[e]))}else if(s[n].URLs)return JSON.parse(JSON.stringify(s[n].URLs))}return null}},{key:"reorder",value:function(t,e,i){var s=Array.from(t),n=s.splice(e,1),a=Object(R.a)(n,1)[0];return s.splice(i,0,a),s}},{key:"getSettings",value:function(e,i,s){var n,a=e&&e._id||i&&i.id;if(e&&e.hasOwnProperty("common")&&(e=e.common),(n=e&&e.custom?(n=e.custom||{}).material&&n.material[i.user||"admin"]?JSON.parse(JSON.stringify(n.material[i.user||"admin"])):{enabled:!0}:{enabled:void 0===s||s,useCustom:!1}).hasOwnProperty("enabled")||(n.enabled=void 0===s||s),i&&(!n.name&&i.name&&(n.name=i.name),!n.icon&&i.icon&&(n.icon=i.icon),!n.color&&i.color&&(n.color=i.color)),e&&(!n.color&&e.color&&(n.color=e.color),!n.icon&&e.icon&&(n.icon=e.icon),!n.name&&e.name&&(n.name=e.name)),"object"===typeof n.name&&(n.name=n.name[i.language]||n.name.en,n.name=(n.name||"").replace(/_/g," "),n.name===n.name.toUpperCase()&&(n.name=n.name[0]+n.name.substring(1).toLowerCase())),!n.name&&a){var o=a.lastIndexOf(".");n.name=a.substring(o+1).replace(/[_.]/g," "),n.name=(n.name||"").replace(/_/g," "),n.name=t.CapitalWords(n.name)}return n}},{key:"setSettings",value:function(t,e,i){if(t){t.common=t.common||{},t.common.custom=t.common.custom||{},t.common.custom.material=t.common.custom.material||{},t.common.custom.material[i.user||"admin"]=e;var s=t.common.custom.material[i.user||"admin"];return s.useCommon&&(void 0!==s.color&&(t.common.color=s.color,delete s.color),void 0!==s.icon&&(t.common.icon=s.icon,delete s.icon),void 0!==s.name&&("object"!==typeof t.common.name?(t.common.name={},t.common.name[i.language]=s.name):t.common.name[i.language]=s.name,delete s.name)),!0}return!1}},{key:"getIcon",value:function(t,e){return t&&t.icon?(t.icon.startsWith("data:image"),n.a.createElement("img",{alt:t.name,src:t.icon,style:e||{}})):null}},{key:"getObjectIcon",value:function(t,e){if(e&&e.common&&e.common.icon){var i=e.common.icon;if(i.startsWith("data:image"))return i;var s=t.split(".");return i="system"===s[0]?"adapter/"+s[2]+i:"adapter/"+s[0]+i,window.location.pathname.match(/material\/[.\d]+/)?i="../../"+i:window.location.pathname.match(/material\//)&&(i="../"+i),i}return null}},{key:"splitCamelCase",value:function(e){return t.CapitalWords(e)}},{key:"isUseBright",value:function(t,e){if(null===t||void 0===t||""===t)return void 0===e||e;var i,s,n;0===(t=t.toString()).indexOf("#")&&(t=t.slice(1));var a=t.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(a&&4===a.length)i=parseInt(a[1],10),s=parseInt(a[2],10),n=parseInt(a[3],10);else{if(3===t.length&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),6!==t.length)return!1;i=parseInt(t.slice(0,2),16),s=parseInt(t.slice(2,4),16),n=parseInt(t.slice(4,6),16)}return.299*i+.587*s+.114*n<=186}},{key:"getTimeString",value:function(t){if(t=parseFloat(t),isNaN(t))return"--:--";var e=Math.floor(t/3600),i=Math.floor(t%3600/60),s=t%60;return e?(i<10&&(i="0"+i),s<10&&(s="0"+s),e+":"+i+":"+s):(s<10&&(s="0"+s),i+":"+s)}},{key:"getWindDirection",value:function(t){return t>=0&&t<11.25?"N":t>=11.25&&t<33.75?"NNE":t>=33.75&&t<56.25?"NE":t>=56.25&&t<78.75?"ENE":t>=78.75&&t<101.25?"E":t>=101.25&&t<123.75?"ESE":t>=123.75&&t<146.25?"SE":t>=146.25&&t<168.75?"SSE":t>=168.75&&t<191.25?"S":t>=191.25&&t<213.75?"SSW":t>=213.75&&t<236.25?"SW":t>=236.25&&t<258.75?"WSW":t>=258.75&&t<281.25?"W":t>=281.25&&t<303.75?"WNW":t>=303.75&&t<326.25?"NW":t>=326.25&&t<348.75?"NNW":t>=348.75?"N":void 0}},{key:"padding",value:function(t){return"string"===typeof t?t.length<2?"0"+t:t:t<10?"0"+t:t}},{key:"setDataFormat",value:function(e){e&&(t.dateFormat=e.toUpperCase().split(/[.-\/]/),t.dateFormat.splice(t.dateFormat.indexOf("YYYY"),1))}},{key:"date2string",value:function(e){if("string"===typeof e){if(!(e=e.trim()))return"";if(e.match(/^[\w\s]+$/))return e;var i=e.match(/(\d{1,4})[-.\/](\d{1,2})[-.\/](\d{1,4})/);if(i){var s=[parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10)],n=s.find(function(t){return t>31});s.splice(s.indexOf(n),1);var a=s.find(function(t){return t>12});a?(s.splice(s.indexOf(a),1),e=new Date(n,s[0]-1,a)):"M"===t.dateFormat[0][0]&&"D"===t.dateFormat[1][0]?(e=new Date(n,s[0]-1,s[1]),Math.abs(e.getTime-Date.now())>864e6&&(e=new Date(n,s[1]-1,s[0]))):"D"===t.dateFormat[0][0]&&"M"===t.dateFormat[1][0]?(e=new Date(n,s[1]-1,s[0]),Math.abs(e.getTime-Date.now())>864e6&&(e=new Date(n,s[0]-1,s[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e);var o=W.t("dow_"+P[e.getDay()]).replace("dow_","");return o+=". "+e.getDate()+" "+W.t("month_"+V[e.getMonth()]).replace("month_","")}}]),t}();B.namespace="material",B.INSTANCES="instances",B.dateFormat=["DD","MM"];var _=B,J=i(50),Z=i.n(J),G=i(56),H=i.n(G),F=i(105),K=i.n(F),X=i(145),q=i.n(X),$=i(221),tt=i.n($),et=i(106),it=i.n(et),st=i(223),nt=i.n(st),at={button:{color:"black"},buttonSmall:{width:20,height:20,borderRadius:20,position:"absolute",top:0,right:0,color:"black"},buttonBig:{width:24,height:24,borderRadius:24}},ot=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).toggleState=function(t){t.stopPropagation(),i.props.onChange&&i.props.onChange(!i.state.visible),i.setState({visible:!i.state.visible})},i.state={visible:i.props.visible},i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"render",value:function(){var t=this;if(this.props.big)return n.a.createElement("div",{onClick:function(e){return t.toggleState(e)},style:Object.assign({},at.button,at.buttonBig,this.props.useBright?{color:"white"}:{color:"black"},this.props.style||{})},this.state.visible?n.a.createElement(x.cb,{style:at.buttonBig,size:"100%"}):n.a.createElement(x.db,{size:"100%"}));var e={marginTop:1,verticalAlign:"top"};return n.a.createElement("div",{style:Object.assign({},at.button,at.buttonSmall,this.props.useBright?{color:"white"}:{color:"black"},this.props.style||{}),onClick:function(e){return t.toggleState(e)},className:"small-visibility-button"},this.state.visible?n.a.createElement(x.cb,{size:16,style:e}):n.a.createElement(x.db,{size:16,style:e}))}}]),e}(n.a.Component),rt={state:{stroke:"currentColor",fill:"none",strokeWidth:12,strokeLinejoin:"round",strokeMiterlimit:10}},lt=function(t){function e(t){return Object(r.a)(this,e),Object(c.a)(this,Object(u.a)(e).call(this,t,!0))}return Object(h.a)(e,t),Object(l.a)(e,[{key:"render",value:function(){return n.a.createElement("svg",{width:"24",height:"24",viewBox:"-20 -20 190 190",xmlns:"http://www.w3.org/2000/svg",version:"1.1"},n.a.createElement("defs",null,n.a.createElement("filter",{id:"glow",x:"-5000%",y:"-5000%",width:"10000%",height:"10000%"},n.a.createElement("feFlood",{result:"flood",floodColor:"#70C5FF",floodOpacity:"1"}),n.a.createElement("feComposite",{in:"flood",result:"mask",in2:"SourceGraphic",operator:"in"}),n.a.createElement("feMorphology",{in:"mask",result:"dilated",operator:"dilate",radius:"2"}),n.a.createElement("feGaussianBlur",{in:"dilated",result:"blurred",stdDeviation:"5"}),n.a.createElement("feMerge",null,n.a.createElement("feMergeNode",{in:"blurred"}),n.a.createElement("feMergeNode",{in:"SourceGraphic"})))),n.a.createElement("path",{style:rt.state,filter:this.props.isOn?"url(#glow)":"",className:"path",d:"M0,109v36.3c0,5.3,3.7,9.7,8.3,9.7h50.1v-23h37v23H153V84H0l28.4-29V13h18.1v24L76.5,0l66.2,69"}))}}]),e}(s.Component),ct={iconsSelected:{backgroundColor:"rgb(204, 204, 204)",color:"white",verticalAlign:"top"},icons:{verticalAlign:"top",color:"gray"},menuSelectedBright:{color:"#1c8fe0 !important"},menuSelectedDark:{color:"#3cc1ff !important"},menuTextBright:{color:"white !important"},menuTextDark:{color:"black !important"}},ut=function(t){function e(t){var i;Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).settings={};var s=i.fillEnums(i.props.objects),n=s.enums,a=s.roots;return i.enums=n,i.state={selectedIndex:i.props.defaultValue,editMode:i.props.editMode,background:i.props.background,instances:i.props.instances,root:i.props.root,roots:a,visibility:{}},i.state.visibility=i.fillVisibility(i.props.root,i.props.objects,i.props.editMode).visibility,i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"fillEnums",value:function(t){t=t||this.props.objects;var e=[],i=new RegExp("^enum\\."),s=Object.keys(t);s.sort();for(var n=0;n"enum.\u9999")break;if(i.test(s[n])){for(var a=s[n].split("."),o=e.length;a.length>2;){a.pop();var r=a.join(".");-1===e.indexOf(r)&&e.splice(o,0,r)}e.push(s[n])}}for(var l={},c=e.length-1;c>=0;c--){var u=e[c].split(".");if(u.pop(),u.length>2){var h=u.join(".");void 0===l[h]&&(l[h]={expanded:"undefined"!==typeof localStorage&&"1"===localStorage.getItem(h),tiles:t[h]&&t[h].common&&t[h].common.members&&t[h].common.members.length},this.props.viewEnum&&this.props.viewEnum.substring(0,h.length)===h&&(l[h].expanded=!0))}}return e.sort(),{enums:e,roots:l}}},{key:"fillVisibility",value:function(t,e,i){e=e||this.props.objects,i=void 0===i?this.props.editMode:i;var s=this.getElementsToShow("enum",e,i),n=!1,a={};return s.forEach(function(t){a[t.id]=!(!1===t.settings.enabled),this.state&&this.state.visibility[t.id]!==a[t.id]&&(n=!0)}.bind(this)),"enum"!==t&&(s=this.getElementsToShow(t,e,i)).forEach(function(t){a[t.id]=!(!1===t.settings.enabled),this.state&&this.state.visibility[t.id]!==a[t.id]&&(n=!0)}.bind(this)),{changed:n,visibility:a}}},{key:"componentWillReceiveProps",value:function(t){var e={},i=!1;if(t.editMode!==this.state.editMode&&(e.editMode=t.editMode,i=!0),t.background!==this.state.background&&(e.background=t.background,i=!0),t.instances!==this.state.instances&&(e.instances=t.instances,i=!0),t.root!==this.state.root&&(e.root=t.root,e.visibility=this.fillVisibility(t.root,t.objects,t.editMode).visibility,i=!0),t.objects){var s=this.fillEnums(this.props.objects),n=s.enums,a=s.roots;this.enums=n;var o=this.fillVisibility(t.root,t.objects,t.editMode),r=o.changed,l=o.visibility;(r||JSON.stringify(a)!==this.state.roots)&&(i=!0,e.roots=a,e.visibility=l)}i&&this.setState(e)}},{key:"getListHeader",value:function(t){var e=this.getElementsToShow("enum");return e&&e.length?n.a.createElement(tt.a,{style:{background:this.state.background||"white",borderBottom:t?"1px solid rgba(255, 255, 255, 0.12)":"1px solid rgba(0, 0, 0, 0.12)"}},e.map(function(e){var i=this,s=this.settings[e.id];if(s&&!this.props.objects||(this.settings[e.id]=_.getSettings(this.props.objects[e.id],{user:this.props.user,language:this.props.language,id:e.id},!0),s=this.settings[e.id]),!1!==s.enabled||this.props.editMode){var a=s.name,o=this.props.editMode?n.a.createElement(ot,{useBright:t,visible:this.state.visibility[e.id],onChange:function(){return i.onToggleEnabled(null,e.id)}}):null,r={};if(this.props.editMode&&!this.state.visibility[e.id]&&(r=Object.assign({},r,{opacity:.5})),"enum.rooms"===e.id)return n.a.createElement(b.a,{key:e.id,className:e.id===this.props.root?this.props.classes.iconsSelected:this.props.classes.icons,style:r,tooltip:a,onClick:function(){return i.onRootChanged("enum.rooms")}},n.a.createElement(lt,{name:"rooms",width:Y.iconSize,height:Y.iconSize,isOn:e.id===this.props.root}),o);if("enum.functions"===e.id)return n.a.createElement(b.a,{key:e.id,className:e.id===this.props.root?this.props.classes.iconsSelected:this.props.classes.icons,style:r,tooltip:a,onClick:function(){return i.onRootChanged("enum.functions")}},n.a.createElement(x.E,{width:Y.iconSize,height:Y.iconSize}),o);if("enum.favorites"===e.id)return n.a.createElement(b.a,{key:e.id,className:e.id===this.props.root?this.props.classes.iconsSelected:this.props.classes.icons,style:r,tooltip:a,onClick:function(){return i.onRootChanged("enum.favorites")}},n.a.createElement(x.z,{width:Y.iconSize,height:Y.iconSize}),o);var l=_.getIcon(e.settings,Y.menuIcon);return n.a.createElement(T.a,{variant:"outlined",className:e.id===this.props.root?this.props.classes.iconsSelected:this.props.classes.icons,style:r,key:e.id,onClick:function(){return i.onRootChanged(e.id)}},l,a,o)}}.bind(this))):""}},{key:"onRootChanged",value:function(t){var e=this,i=this.getElementsToShow(t),s=i.find(function(t){return e.props.objects[t.id]&&e.props.objects[t.id].common&&e.props.objects[t.id].common.members&&e.props.objects[t.id].common.members.length});if(!s){var n=i.map(function(t){return e.getElementsToShow(t.id).find(function(t){return e.props.objects[t.id]&&e.props.objects[t.id].common&&e.props.objects[t.id].common.members&&e.props.objects[t.id].common.members.length})});s=n.find(function(t){return n[0]})}this.props.onRootChanged&&this.props.onRootChanged(t,s&&s.id,!0)}},{key:"getElementsToShow",value:function(t,e,i){var s=this;(t=t||this.props.root)===_.INSTANCES&&(t="enum.rooms"),i=void 0===i?this.props.editMode:i;for(var n=e||this.props.objects,a=[],o=t?new RegExp("^"+t+"\\."):new RegExp("^[^.]$"),r=t.split("."),l=function(t){var l=s.enums[t];if(o.test(l)&&(n[l]&&n[l].common&&n[l].common.members&&n[l].common.members.length||s.state.roots[l])){var c=s.settings[l];if(c&&!e||(s.settings[l]=_.getSettings(n[l],{user:s.props.user,language:s.props.language,id:l},!0),c=s.settings[l]),!1===c.enabled&&!i)return"continue";var u=l.split(".");u.splice(r.length+1),l=u.join("."),a.find(function(t){return t.id===l})||a.push({id:l,settings:c})}},c=0;cthis.cropRef.current.clientHeight?((i=this.cropRef.current.clientHeight)>t.naturalHeight&&(i=t.naturalHeight),s=i*(t.naturalWidth/t.naturalHeight),a=100,(n=t.naturalHeight/t.naturalWidth*100*r)>100&&(a=100/n*100,n=100)):((s=this.cropRef.current.clientWidth)>t.naturalWidth&&(s=t.naturalWidth),i=s*(t.naturalHeight/t.naturalWidth),n=100,(a=t.naturalWidth/t.naturalHeight*100/r)>100&&(n=100/a*100,a=100))),this.setState({cropHeight:i,cropWidth:s,crop:{x:0,y:0,width:n,height:a,aspect:r}})}},{key:"render",value:function(){var t=this,i=Object.assign({},Ut.dropzone,"accepted"===this.state.imageStatus?Ut.dropzoneAccepted:"accepted"===this.state.imageStatus?Ut.dropzoneRejected:{});return n.a.createElement("div",{style:{position:"relative"}},n.a.createElement("div",{key:"image-label",style:Ut.label},this.props.label),this.state.image?[n.a.createElement("img",{key:"image-preview",src:"object"===typeof this.state.image?this.state.image.preview:this.state.image,alt:this.props.label||"",style:{width:this.props.height||"100%",height:"auto"}}),n.a.createElement(T.a,{key:"image-delete",onClick:this.removeImage.bind(this),style:Ut.deleteIcon,variant:"fab",mini:!0,"aria-label":"delete"},n.a.createElement(x.r,null)),n.a.createElement(T.a,{key:"image-open",onClick:function(){return t.setState({opened:!t.state.opened})},style:this.state.opened?Object.assign({},Ut.openIcon,{bottom:120}):Object.assign({},Ut.openIcon,{bottom:-14}),variant:"fab",mini:!0,"aria-label":"delete"},this.state.opened?n.a.createElement(x.o,null):n.a.createElement(x.A,null))]:null,this.state.opened&&[(this.state.images&&this.state.images.length||this.icons)&&n.a.createElement(zt,{key:"image-list",images:this.state.images||this.icons,onSelect:this.handleSelectImage.bind(this)}),e.isMobile()&&!this.props.icons?n.a.createElement(T.a,{key:"image-camera",onClick:function(){return t.onCamera()},style:Object.assign({},Ut.camIcon),variant:"fab",mini:!0,"aria-label":"camera"},n.a.createElement(x.l,null),n.a.createElement("input",{ref:this.inputRef,type:"file",accept:"image/*",onChange:function(e){return t.handleDropImage(e)},capture:!0,style:{display:"none"}})):null,n.a.createElement(St.a,{key:"image-drop",maxSize:this.props.maxSize,onDrop:function(e){return t.handleDropImage(e)},accept:this.props.accept||"image/jpeg, image/png",style:i},function(e){var i=e.isDragActive,s=e.isDragReject;return i?("accepted"!==t.state.imageStatus&&t.setState({imageStatus:"accepted"}),t.props.textAccepted||"All files will be accepted"):s?("rejected"!==t.state.imageStatus&&t.setState({imageStatus:"rejected"}),t.props.textRejected||"Some files will be rejected"):("wait"!==t.state.imageStatus&&t.setState({imageStatus:"wait"}),t.props.textWaiting||"Drop some files here or click...")})],this.state.cropOpened?n.a.createElement(v.a,{key:"crop-dialog",open:!0,classes:{paper:this.props.classes["chart-dialog-paper"]},onClose:function(){return t.setState({cropOpened:!1})},className:this.props.classes["chart-dialog"],"aria-labelledby":"alert-dialog-title"},n.a.createElement(E.a,{id:"alert-dialog-title"},W.t("Crop image")),n.a.createElement(C.a,{className:this.props.classes["chart-dialog-content"]},n.a.createElement("div",{ref:this.cropRef,style:{width:"100%",height:"100%"}},n.a.createElement(Et.a,{style:{width:this.state.cropWidth,height:this.state.cropHeight},onChange:function(e){return t.setState({crop:e})},onComplete:function(e,i){return t.cropPixels=i},crop:this.state.crop,keepSelection:!0,onImageLoaded:function(e){return t.onImageLoaded(e)},aspect:this.props.aspect||1,src:this.state.beforeCrop.data}))),n.a.createElement(S.a,null,n.a.createElement(T.a,{onClick:function(){return t.onCropEnd(!0)},color:"primary",autoFocus:!0},W.t("Crop")),n.a.createElement(T.a,{onClick:function(){return t.setState({cropOpened:!1})},autoFocus:!0},W.t("Cancel")))):null)}}],[{key:"cropImage",value:function(t,e,i,s){var n=document.createElement("canvas");n.width=e.width,n.height=e.height;var a=n.getContext("2d"),o=new Image;o.onload=function(){a.drawImage(o,e.x,e.y,e.width,e.height,0,0,e.width,e.height),s(null,{data:n.toDataURL("image/jpeg"),name:i})},o.src=t}},{key:"readFileDataUrl",value:function(t,e){var i=new FileReader;i.onload=function(){e(null,{data:i.result,name:t.name})},i.onabort=function(){console.error("file reading was aborted"),e("file reading was aborted")},i.onerror=function(t){console.error("file reading has failed"),e("file reading has failed: "+t)},i.readAsDataURL(t)}},{key:"isMobile",value:function(){return/iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent)}}]),e}(n.a.Component),Qt=Object(g.withStyles)(Ut)(Yt),Wt=i(228),Rt=i.n(Wt),Pt=function(t){function e(t){var i;Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).type=i.props.type||("number"===typeof i.props.value?"number":"text");var s=(i.props.value||"").split(/[,;]/).map(function(t){return t.trim()});return i.state={chips:s,add:""},i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"onAdd",value:function(){var t=JSON.parse(JSON.stringify(this.state.chips));t.push(this.state.add),t.sort(),this.setState({chips:t,add:""}),this.props.onChange(t.join(","))}},{key:"onKeyDown",value:function(t){13!==t.keyCode&&9!==t.keyCode||this.onAdd()}},{key:"handleDelete",value:function(t){var e=JSON.parse(JSON.stringify(this.state.chips));e.splice(e.indexOf(t),1),this.setState({chips:e}),this.props.onChange&&this.props.onChange(e.join(","))}},{key:"render",value:function(){var t=this,e=this.props,i=e.classes,s=e.label;return n.a.createElement("div",{className:i.line},n.a.createElement("div",{className:i.label},s),n.a.createElement("div",{className:i.chips},this.state.chips.map(function(e){return n.a.createElement(Rt.a,{key:e,label:e,onDelete:function(){return t.handleDelete(e)},className:i.chip})})),n.a.createElement("div",{className:i.inputLine},n.a.createElement(bt.a,{tabIndex:"0",className:i.input,type:this.type,label:this.props.textAdd||"Add word",value:this.state.add,onKeyDown:this.onKeyDown.bind(this),onChange:function(e){return t.setState({add:e.target.value})},margin:"normal"}),n.a.createElement(T.a,{variant:"fab",mini:!0,disabled:!this.state.add,color:"secondary",onClick:this.onAdd.bind(this),"aria-label":"add",className:i.button},n.a.createElement(x.a,null))))}}]),e}(s.Component),Vt=Object(g.withStyles)(function(t){return{line:{width:"calc(100% - 6px)",display:"flow-root"},inputLine:{width:"calc(100% - 6px)"},label:{fontSize:12,color:"rgba(0, 0, 0, 0.54)"},chips:{width:"calc(100% - 110px)"},input:{width:"calc(100% - 48px)"},button:{marginLeft:8},icon:{height:20,marginRight:10}}})(Pt),Bt=i(229),_t=i.n(Bt),Jt=i(144),Zt=i.n(Jt),Gt=i(75),Ht=i.n(Gt);var Ft=Object(g.withStyles)(function(){return Y.dialog.info})(function(t){var e=t.classes,i=t.label,s=t.value,a=t.onChange,o=t.options;return"object"===typeof s&&void 0!==s.value&&(s=s.value),n.a.createElement("div",{className:e.line},n.a.createElement(Zt.a,{htmlFor:"selection",className:e.subTitle},i),n.a.createElement(_t.a,{className:e.line,value:s,onChange:function(t){return a(t.target.value)},input:n.a.createElement(Ht.a,{value:s,name:"selection",id:"selection"})},function t(e,i,s){i=i||[],s=s||"";var a=e.map(function(e){if("object"===typeof e&&e.hasOwnProperty("children")){var a=t(e.children,i,s+e.label+"-");return a&&a.length&&i.push(n.a.createElement("optgroup",{key:s+e.label,label:e.label},a)),null}return"object"===typeof e?n.a.createElement("option",{key:s+e.value,value:e.value},e.label):n.a.createElement("option",{key:s+e,value:e},e)});return s?a.filter(function(t){return t}):(a.forEach(function(t){return t&&i.push(t)}),i)}(o)))}),Kt=i(43),Xt=i.n(Kt),qt=i(230),$t=i.n(qt),te=i(55),ee=i.n(te),ie=Object(g.withStyles)(function(){return Y.dialog.info})(function(t){var e,i=t.classes,s=t.label,a=t.value,o=t.onChange,r=t.language,l=t.icon;return l&&("object"===typeof l?(e=l,e=n.a.createElement(e,{className:i.icon})):e=n.a.createElement("img",{alt:s,src:l,className:i.icon})),n.a.createElement("div",{className:i.line},n.a.createElement(Xt.a,{className:i.label,style:{lineHeight:"45px"}},e,s),n.a.createElement($t.a,{className:i.floatRight,style:{float:"right"},checked:a&&"object"===typeof a?a.val:!!a,disabled:!o,onChange:function(){return o&&o()}}),a&&a.lc?n.a.createElement(ee.a,{className:i.lc,date:a.lc,interval:15,fromNow:!0,locale:r}):null)}),se=i(231),ne=i.n(se),ae=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).stateRx={toast:""},window.addEventListener("contextmenu",e.onContextMenu,!1),i.refModal=n.a.createRef(),i.dialogStyle={},i.closeOnPaperClick=!1,i.savedParent=null,i.subscribes=null,i.subscribed=!1,i.editMode=i.props.editMode,i.positionTuned=!1,i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentReady",value:function(){this.state=this.stateRx,delete this.stateRx}},{key:"componentDidMount",value:function(){this.refModal&&(this.savedParent=this.refModal.current.parentElement,document.body.appendChild(this.refModal.current)),this.subscribes&&!this.subscribed&&(this.subscribed=!0,this.props.onCollectIds(this,this.subscribes,!0)),this.positionTuned||(Object.assign(this.dialogStyle,{left:"calc(50% - "+this.refModal.current.firstChild.offsetWidth/2+"px)"}),this.forceUpdate())}},{key:"componentWillUnmount",value:function(){this.refModal&&this.savedParent.appendChild(this.refModal.current),this.props.onCollectIds&&this.subscribed&&(this.props.onCollectIds(this,this.subscribes,!1),this.subscribed=null)}},{key:"updateState",value:function(t,e){var i={};i[t]=e?{val:e.val,ts:e.ts,lc:e.lc}:null,this.setState(i)}},{key:"mayClose",value:function(){return!(this.click&&Date.now()-this.click<50)}},{key:"onClose",value:function(t){(t||this.mayClose())&&(window.removeEventListener("contextmenu",e.onContextMenu,!1),this.props.onClose&&this.props.onClose())}},{key:"handleToastClose",value:function(){this.setState({toast:""})}},{key:"generateContent",value:function(){return null}},{key:"onClick",value:function(t){this.closeOnPaperClick||(t&&t.stopPropagation(),this.click=Date.now())}},{key:"showCloseButton",value:function(){var t=this;return this.props.windowWidth<500?n.a.createElement(T.a,{variant:"fab","aria-label":W.t("close"),onClick:function(){return t.onClose(!0)},style:Y.dialog.closeButton},n.a.createElement(x.o,null)):null}},{key:"setDialogStyle",value:function(t){this.dialogStyle=t||{},this.forceUpdate()}},{key:"render",value:function(){var t=this;return n.a.createElement("div",{key:this.props.dialogKey+"-dialog",ref:this.refModal,onClick:function(){return t.onClose()},style:Y.dialog.back},n.a.createElement(gt.a,{onClick:this.onClick.bind(this),style:Object.assign({},Y.dialog.inner,this.dialogStyle)},this.generateContent(),n.a.createElement(ne.a,{key:this.props.dialogKey+"-toast",anchorOrigin:{vertical:"top",horizontal:"right"},open:!!this.state.toast,onClick:this.handleToastClose.bind(this),onClose:this.handleToastClose.bind(this),autoHideDuration:4e3,ContentProps:{"aria-describedby":"message-id"},message:n.a.createElement("span",{id:"message-id"},this.state.toast)}),this.showCloseButton()),this.getAdditionalElements&&this.getAdditionalElements())}}],[{key:"onContextMenu",value:function(t){if(!t.shiftKey&&!t.ctrlKey)return t.preventDefault(),console.log("Ignore context menu"+t),!1}}]),e}(s.Component);ae.COLOR_MODES={RGB:0,HUE:1,R_G_B:2,TEMPERATURE:3};var oe=ae,re={descCopyIcon:{position:"absolute",top:0,right:0,background:"rgba(255,255,255,0.7)"},descDivId:{fontSize:"smaller"},descTitle:{fontWeight:"bold"},descCopied:{position:"absolute",top:3,right:3,background:"white"}},le=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).handleWarningCancel=function(){i.ignoreUnsaved=!1,i.click=Date.now(),i.setState({unsavedDialog:!1})},i.handleWarningIgnore=function(){i.ignoreUnsaved=!0,i.setState({unsavedDialog:!1}),i.click=0,i.onClose()},i.stateRx.changed=!1,i.stateRx.unsavedDialog=!1,i.stateRx.values={},i.stateRx.images=[],i.stateRx.anchorEl=null,i.props.settings.forEach(function(t){i.stateRx.values[t.name]="__default__"===t.value?"":t.value}),i.props.getImages&&i.props.getImages(function(t){this.setState({images:t})}.bind(Object(d.a)(Object(d.a)(i)))),i.dialogStyle=Y.dialog.settingsBack,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"onClose",value:function(){Object(pt.a)(Object(u.a)(e.prototype),"mayClose",this).call(this)&&(!this.ignoreUnsaved&&this.isChanged()?this.setState({unsavedDialog:!0}):Object(pt.a)(Object(u.a)(e.prototype),"onClose",this).call(this,!0))}},{key:"onSave",value:function(){var t=this,e={};this.props.settings.forEach(function(i){e[i.name]=t.state.values[i.name]}),this.props.onSave(e),this.ignoreUnsaved=!0,this.onClose()}},{key:"handleText",value:function(t,e){var i={values:JSON.parse(JSON.stringify(this.state.values))};this.click=Date.now(),i.values[t]=e.target.value,i.changed=this.isChanged(t,i.values[t]),this.setState(i)}},{key:"handleToggle",value:function(t,e){var i={values:JSON.parse(JSON.stringify(this.state.values))};this.click=Date.now(),i.values[t]=e?e.target.checked:!this.state.values[t],i.changed=this.isChanged(t,i.values[t]),this.setState(i)}},{key:"handleValue",value:function(t,e){var i={values:JSON.parse(JSON.stringify(this.state.values))};this.click=Date.now(),i.values[t]=e,i.changed=this.isChanged(t,i.values[t]),this.setState(i)}},{key:"handleUploadImage",value:function(t,e,i){var s={values:JSON.parse(JSON.stringify(this.state.values))};this.click=Date.now(),s.values[t]=i[i.length-1],s.changed=this.isChanged(t,s.values[t]),this.setState(s)}},{key:"handleDropImage",value:function(t,e){var i={values:JSON.parse(JSON.stringify(this.state.values))};this.click=Date.now(),i.values[t]=e,i.changed=this.isChanged(t,i.values[t]),this.setState(i)}},{key:"handleIcon",value:function(t,e){var i={values:JSON.parse(JSON.stringify(this.state.values))};this.click=Date.now(),i.values[t]="object"===typeof e?e.data:e,i.changed=this.isChanged(t,i.values[t]),this.setState(i)}},{key:"onDelete",value:function(){this.props.onSave(!1),this.ignoreUnsaved=!0,this.onClose()}},{key:"isChanged",value:function(t,e){var i=this;return!!this.props.settings.find(function(s){return s.name===t?e!==s.value:s.value!==i.state.values[s.name]})}},{key:"copyId",value:function(t){var e=this;this.setState({anchorEl:t.currentTarget}),setTimeout(function(){e.setState({anchorEl:null})},2e3)}},{key:"generateObjectInfo",value:function(){return this.props.settingsId?n.a.createElement(gt.a,{key:"object-info",style:{margin:5,padding:5,position:"relative"},elevation:1},n.a.createElement(vt.a,{text:this.props.settingsId},n.a.createElement(b.a,{title:W.t("Copy ID to clipboard"),onClick:this.copyId.bind(this),style:re.descCopyIcon},n.a.createElement(x.q,{width:Y.iconSize,height:Y.iconSize}))),this.state.anchorEl?n.a.createElement(T.a,{variant:"outlined",disabled:!0,style:re.descCopied},W.t("Copied")):null,n.a.createElement("div",null,n.a.createElement("span",{style:re.descTitle},W.t("Name"),": "),_.getObjectName(this.props.objects,this.props.settingsId)),n.a.createElement("div",{style:re.descDivId},n.a.createElement("span",{style:re.descTitle},W.t("Description"),": "),_.getObjectName(this.props.objects,this.props.settingsId,null,null,!0)),n.a.createElement("div",{style:re.descDivId},n.a.createElement("span",{style:re.descTitle},"ID: "),this.props.settingsId)):null}},{key:"generateContent",value:function(){var t=this.props.settings.map(function(t,e){var i,s=this;e!==this.props.settings.length-1&&n.a.createElement(H.a,{key:t.id+"_div",style:Y.dialog.divider});return i="delete"===t.type?n.a.createElement(T.a,{color:"secondary",variant:"contained",key:this.props.dialogKey+"-delete",onClick:function(){return s.onDelete()}},W.t("Delete")):"boolean"===t.type?n.a.createElement(ie,{key:this.props.dialogKey+"-"+t.name+"-bool",label:W.t(t.name),onChange:function(){return s.handleToggle(t.name)},icon:t.icon,language:W.getLanguage(),value:this.state.values[t.name]||!1}):"color"===t.type?n.a.createElement(Dt,{key:this.props.dialogKey+"-"+t.name+"-color",name:W.t(t.name),color:this.state.values[t.name]||"",onChange:function(e){return s.handleValue(t.name,e)}}):"chips"===t.type?n.a.createElement(Vt,{label:W.t(t.name),textAdd:W.t("add indicator"),value:this.state.values[t.name]||"",onChange:function(e){return s.handleValue(t.name,e)}}):"select"===t.type?n.a.createElement(Ft,{value:this.state.values[t.name]||"",onChange:function(e){return s.handleValue(t.name,e)},label:W.t(t.name),options:t.options}):"icon"===t.type?n.a.createElement(Qt,{maxSize:15e3,icons:!0,height:64,accept:"image/jpeg, image/png, image/gif, image/svg+xml",key:this.props.dialogKey+"-"+t.name+"-icon",label:t.label?W.t(t.label):W.t(t.name),image:this.state.values[t.name],maxHeight:200,onUpload:function(e){return s.handleIcon(t.name,e)},textAccepted:W.t("All files will be accepted"),textRejected:W.t("Some files will be rejected"),textWaiting:W.t("Drop some files here or click...")}):"image"===t.type?n.a.createElement(Qt,{maxSize:6e6,images:this.state.images,key:this.props.dialogKey+"-"+t.name+"-image",label:t.label?W.t(t.label):W.t(t.name),aspect:this.state.values.hasOwnProperty("doubleSize")?this.state.values.doubleSize?2:1:t.aspect,maxHeight:200,image:this.state.values[t.name],onUpload:function(e){return s.handleDropImage(t.name,e)},textAccepted:W.t("All files will be accepted"),textRejected:W.t("Some files will be rejected"),textWaiting:W.t("Drop some files here or click...")}):"number"===t.type?n.a.createElement(bt.a,{key:this.props.dialogKey+"-"+t.name+"-text",id:t.name,label:W.t(t.name),style:{width:"100%"},type:"number",inputProps:{min:t.min,max:t.max},value:this.state.values[t.name]||"",onChange:function(e){return s.handleText(t.name,e)},margin:"normal"}):n.a.createElement(bt.a,{key:this.props.dialogKey+"-"+t.name+"-text",id:t.name,label:W.t(t.name),style:{width:"100%"},value:this.state.values[t.name]||"",onChange:function(e){return s.handleText(t.name,e)},margin:"normal"}),n.a.createElement(gt.a,{key:this.props.dialogKey+"-"+t.name+"-paper",style:{margin:5,padding:5},elevation:1},i)}.bind(this));return t.push(this.generateObjectInfo()),[n.a.createElement(y.a,{key:this.props.dialogKey+"-toolbar"},n.a.createElement("h4",{key:this.props.dialogKey+"-header",style:Y.dialog.header},this.props.name),n.a.createElement(T.a,{onClick:this.onSave.bind(this),key:this.props.dialogKey+"-ok",style:Y.dialog.saveButton,disabled:!this.state.changed,variant:"extendedFab",color:"primary","aria-label":"save"},n.a.createElement(x.U,null),W.t("Save"))),n.a.createElement(Z.a,{key:this.props.dialogKey+"-list",style:Y.dialog.list},t)]}},{key:"getAdditionalElements",value:function(){return n.a.createElement(v.a,{style:{zIndex:2101},open:this.state.unsavedDialog,"aria-labelledby":W.t("Not saved!"),"aria-describedby":W.t("Changes not saved!")},n.a.createElement(E.a,{id:"alert-dialog-title"},W.t("Ignore changes?")),n.a.createElement(C.a,null,n.a.createElement(z.a,{id:"alert-dialog-description"},W.t("Changes are not saved."))),n.a.createElement(S.a,null,n.a.createElement(T.a,{onClick:this.handleWarningCancel.bind(this),color:"primary",autoFocus:!0},W.t("Stay edit")),n.a.createElement(T.a,{onClick:this.handleWarningIgnore.bind(this),color:"secondary"},W.t("Discard changes"))))}}]),e}(oe);le.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),getImages:Nt.a.func,dialogKey:Nt.a.string,windowWidth:Nt.a.number,settings:Nt.a.array.isRequired,objectInfo:Nt.a.object,onSave:Nt.a.func.isRequired,onClose:Nt.a.func};var ce=le,ue=function(t){function e(t,i){var s;if(Object(r.a)(this,e),(s=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo=s.props.channelInfo,s.subscribes=null,s.subscribed=!1,s.defaultIcon=null,s.width=Y.tile.width,s.height=Y.tile.height,s.doubleState=!1,s.showCorner=!1,s.stateRx={executing:!1,settings:{},showSettings:!1,editMode:null,ignoreIndicators:s.props.ignoreIndicators||[]},s.defaultEnabling=!0,s.editMode=s.props.editMode,s.lastEnabledChange=0,("boolean"!==typeof i||!i)&&s.channelInfo.states){var n=[];s.channelInfo.states.forEach(function(t){if(t.id)if(t.id.startsWith("system.adapter."))n.push(t.id);else if(!t.noSubscribe&&this.props.objects[t.id]&&"state"===this.props.objects[t.id].type&&-1===n.indexOf(t.id)){var e=t.id.lastIndexOf(".");if(-1!==e&&-1!==this.stateRx.ignoreIndicators.indexOf(t.id.substring(e+1)))return;n.push(t.id)}}.bind(Object(d.a)(Object(d.a)(s)))),n.length&&(s.subscribes=n,n.forEach(function(t){return s.stateRx[t]=s.props.states[t]?s.props.states[t].val:null}))}if(s.channelInfo&&s.channelInfo.states){s.indicators={};var a=s.channelInfo.states.find(function(t){return t.id&&"WORKING"===t.name});if(s.indicators.workingId=a&&a.id,a=s.channelInfo.states.find(function(t){return t.id&&"UNREACH"===t.name}),s.indicators.unreachId=a&&a.id,a=s.channelInfo.states.find(function(t){return t.id&&"LOWBAT"===t.name}),s.indicators.lowbatId=a&&a.id,a=s.channelInfo.states.find(function(t){return t.id&&"MAINTAIN"===t.name}),s.indicators.maintainId=a&&a.id,a=s.channelInfo.states.find(function(t){return t.id&&"ERROR"===t.name}),s.indicators.errorId=a&&a.id,a=s.channelInfo.states.find(function(t){return t.id&&"DIRECTION"===t.name}),s.indicators.directionId=a&&a.id,s.indicators.directionId){s.direction={undef:!0,up:"unused",down:"unused"};var o=s.props.objects[s.indicators.directionId];if(o&&o.common&&"number"===o.common.type)if(o.common.states)for(var l in o.common.states)o.common.states.hasOwnProperty(l)&&(o.common.states[l].match(/up/i)?s.direction.up=l.toString():o.common.states[l].match(/down/i)?s.direction.down=l.toString():o.common.states[l].match(/undef/i)&&(s.direction.undef=l.toString()));else s.direction.undef=1}s.indicators.errorId&&(s.errorText="")}return s}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentReady",value:function(){this.id&&this.props.objects[this.id]?this.settingsId=this.id:void 0!==this.instanceId&&(this.settingsId=this.instanceId),void 0!==this.stateRx.showDialog&&(this.showCorner=!0,this.onMouseUpBind=this.onMouseUp.bind(this),this.props.tile.registerHandler("onMouseDown",this.onTileMouseDown.bind(this))),this.settingsId&&(this.props.objects[this.settingsId]&&"instance"===this.props.objects[this.settingsId].type?this.stateRx.settings={enabled:!0,name:this.props.objects[this.settingsId].common.name+"."+this.instanceNumber}:this.stateRx.settings=_.getSettings(this.props.objects[this.settingsId],{user:this.props.user,language:W.getLanguage(),name:this.getObjectNameCh()},this.defaultEnabling),this.stateRx.settings.background&&this.props.tile.setBackgroundImage(this.stateRx.settings.background||"",!0)),this.stateRx.nameStyle={fontSize:e.getNameFontSize(this.stateRx.settings.name)},this.props.tile.setVisibility(this.stateRx.settings.enabled),this.props.tile.setColorOn(this.stateRx.settings.colorOn||Y.tile.tileOn.background),this.props.tile.setColorOff(this.stateRx.settings.colorOff||Y.tile.tileOff.background),this.stateRx.settings&&this.stateRx.settings.doubleSize&&(this.width=2),this.width>1&&this.props.tile.setSize(this.width),this.state=this.stateRx,delete this.stateRx}},{key:"componentDidMount",value:function(){this.state.settings.enabled&&this.subscribes&&!this.subscribed&&(this.subscribed=!0,this.props.onCollectIds(this,this.subscribes,!0))}},{key:"getObjectNameCh",value:function(){var t=e.getParentId(this.id);return!this.props.objects[t]||"channel"!==this.props.objects[t].type&&"device"!==this.props.objects[t].type?e.getObjectName(this.props.objects,this.id,null,null,this.props.enumNames)||" ":e.getObjectName(this.props.objects,t,null,null,this.props.enumNames)||" "}},{key:"updateState",value:function(t,e){var i;if(this.indicators&&t===this.indicators.directionId)i=null!==e.val&&void 0!==e.val?e.val.toString():"";else if(this.indicators&&t===this.indicators.errorId){if("string"===typeof e.val){var s=parseInt(e.val.trim(),10);i=s.toString()===e.val.trim()?s:"true"===e.val||"on"===e.val||"ON"===e.val}else i="number"===typeof e.val?e.val:!0===e.val||"true"===e.val||"on"===e.val||"ON"===e.val;var n=this.props.objects[t];n&&n.common&&(void 0!==n.common.min&&n.common.min===i?(i=!1,this.errorText=""):n.common.states&&void 0!==n.common.states[i]&&(this.errorText=W.t(n.common.states[i]),i=!0))}else i="number"===typeof e.val?!!e.val:!0===e.val||"true"===e.val||"1"===e.val||"on"===e.val||"ON"===e.val;var a={};a[t]=i,this.setState(a)}},{key:"onControl",value:function(t,e){}},{key:"onLongClick",value:function(t){t&&(t.preventDefault(),t.stopPropagation()),this.timer&&(clearTimeout(this.timer),this.timer=null),this.setState({showDialog:!0})}},{key:"onDialogClose",value:function(){this.setState({showDialog:!1})}},{key:"onMouseUp",value:function(){document.removeEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.removeEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0}),this.timer&&(clearTimeout(this.timer),this.timer=null,this.onToggleValue&&this.onToggleValue())}},{key:"onTileMouseDown",value:function(t){this.state.showDialog||(t.stopPropagation(),this.timer=setTimeout(this.onLongClick.bind(this),500),document.addEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.addEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0}))}},{key:"componentWillUnmount",value:function(){this.props.onCollectIds&&this.subscribed&&(this.props.onCollectIds(this,this.subscribes,!1),this.subscribed=null)}},{key:"saveSettings",value:function(t,e){var i=this,s=t||this.state.settings;if(this.props.onSaveSettings&&this.settingsId)this.props.onSaveSettings(this.settingsId,s,{enabled:this.defaultEnabling},function(){i.subscribes&&s.enabled&&!i.subscribed?(i.subscribed=!0,i.props.onCollectIds(i,i.subscribes,!0)):!s.enabled&&i.subscribed&&(i.subscribed=!1,i.props.onCollectIds(i,i.subscribes,!1)),i.props.tile.setColorOn(s.colorOn||Y.tile.tileOn),i.props.tile.setColorOff(s.colorOff||Y.tile.tileOff),i.props.tile.setVisibility(s.enabled),i.width=s.doubleSize?2:1,i.props.tile.setSize(i.width),e&&e(s)});else if(this.customSettings){var n=_.getSettings(this.props.objects[this.customSettings.settingsId],{user:this.props.user}),a=-1;if(n&&n.URLs.forEach(function(t,e){if(t.id===i.id)return a=e,!1}),-1!==a){t?(t=Object.assign({},this.customSettings,t),n.URLs[a]=t):n.URLs.splice(a,1);var o=t&&t.settingsId||this.customSettings.settingsId;this.props.onSaveSettings&&this.props.onSaveSettings(o,n,function(){t||this.props.tile.setDelete(o),e&&e(t)}.bind(this))}}}},{key:"toggleEnabled",value:function(){var t=this,e=JSON.parse(JSON.stringify(this.state.settings));e.enabled=!e.enabled,this.saveSettings(e,function(){return t.setState({settings:e})})}},{key:"componentWillReceiveProps",value:function(t){t.editMode!==this.state.editMode&&this.setState({editMode:t.editMode}),JSON.stringify(t.ignoreIndicators)!==JSON.stringify(this.state.ignoreIndicators)&&this.setState({ignoreIndicators:t.ignoreIndicators})}},{key:"roundValue",value:function(t,e){return void 0!==e||"undefined"!==typeof this.state.settings.decimals?t.toFixed(void 0!==e?e:this.state.settings.decimals):t}},{key:"getIndicators",value:function(){var t=this,e=[],i=this,s=[];return this.channelInfo.states.forEach(function(a){if(a.indicator&&a.id){var o=a.id.lastIndexOf(".");if(-1!==o&&-1!==t.state.ignoreIndicators.indexOf(a.id.substring(o+1)))return;var r=a.icon;if(a.id===i.indicators.directionId){var l=i.state[a.id];if(l===i.direction.up)r=x.c;else if(l===i.direction.down)r=x.b;else{if(l!==i.direction.undef)return;r=x.bb}}else if(!i.state[a.id]&&!a.inverted||i.state[a.id]&&a.inverted)return;s.push(W.t(a.id.split(".").pop())),e.push(n.a.createElement(r,{key:i.key+"indicator-"+a.name.toLowerCase(),className:"indicator-"+a.name.toLowerCase(),style:Object.assign({},Y.tile.tileIndicator,{color:a.color})}))}}),e.length?(this.errorText&&s.push(this.errorText),n.a.createElement("div",{key:this.key+"indicators",style:Y.tile.tileIndicators,title:s.join(", ")},e)):null}},{key:"getDefaultIcon",value:function(){if(null!==this.defaultIcon)return this.defaultIcon;if(this.id){var t=_.getObjectIcon(this.id,this.props.objects[this.id]);if(!t){var i=e.getParentId(this.id);this.props.objects[i]&&"channel"===this.props.objects[i].type&&((t=_.getObjectIcon(i,this.props.objects[i]))||(i=e.getParentId(i),this.props.objects[i]&&"device"===this.props.objects[i].type&&(t=_.getObjectIcon(i,this.props.objects[i]))))}this.defaultIcon=t||""}else this.defaultIcon="";return this.defaultIcon}},{key:"getDialogSettings",value:function(t){if((t=t||[]).unshift({name:"background",value:this.state.settings.background||"",aspect:this.state.settings.doubleSize?2:1,type:"image"}),this.doubleState&&t.unshift({name:"iconOff",value:this.state.settings.iconOff||"",type:"icon"}),t.unshift({name:"icon",value:this.state.settings.icon||"",type:"icon"}),this.doubleState&&t.unshift({name:"colorOff",value:this.state.settings.colorOff||"",type:"color"}),t.unshift({name:"doubleSize",value:this.state.settings.doubleSize||"",type:"boolean"}),t.unshift({name:"colorOn",value:this.state.settings.colorOn||"",type:"color"}),t.unshift({name:"name",value:this.state.settings.name||"",type:"string"}),this.id){var e=this.getDefaultIcon();e&&t.unshift({name:"useDefaultIcon",value:this.state.settings.useDefaultIcon||"",type:"boolean",icon:e})}return t}},{key:"saveDialogSettings",value:function(t,e){var i=this;t&&(t.enabled=this.state.settings.enabled,t.background&&"object"===typeof t.background&&(t.background.name=this.settingsId.replace(/[\s*?.\/\\]/g,"_")+"."+t.background.name.toLowerCase().split(".").pop())),this.saveSettings(t,function(s){t.background?i.props.tile.setBackgroundImage(t.background+"?ts="+Date.now(),!0):i.props.tile.setBackgroundImage("",!1),e&&e(s)})}},{key:"showSettings",value:function(){this.setState({showSettings:!0})}},{key:"onSettingsClose",value:function(){this.setState({showSettings:!1})}},{key:"getAdditionalName",value:function(){return null}},{key:"getStandardContent",value:function(t,e){var i,s,a;return 2===this.width?(a=Object.assign({},Y.tile.tileText2),s=Object.assign({},Y.tile.tileName2,this.state.nameStyle||{}),i=this.getStateText?Object.assign({},Y.tile.tileState2,t?this.state[t]?Y.tile.tileStateOn:Y.tile.tileStateOff:{}):null):(a=Object.assign({},Y.tile.tileText),s=Object.assign({},Y.tile.tileName,this.state.nameStyle||{}),i=this.getStateText?Object.assign({},Y.tile.tileState,t?this.state[t]?Y.tile.tileStateOn:Y.tile.tileStateOff:{}):null,this.state.settings.background&&(s.marginTop=4)),this.state.settings.background&&(a.color="black",a.background="rgba(255,255,255,0.7)"),[this.getIcon?n.a.createElement("div",{key:this.key+"tile-icon",style:e?{pointerEvents:"none"}:{}},this.getIcon()):null,n.a.createElement("div",{key:this.key+"tile-text",style:a},n.a.createElement("div",{style:s},this.getFirstName?this.getFirstName():this.state.settings.name,this.getAdditionalName()),this.getStateText?n.a.createElement("div",{style:i},this.getStateText()):null)]}},{key:"wrapContent",value:function(t){return this.state.editMode?[n.a.createElement("div",{key:this.key+"type",style:{display:"none"}},this.channelInfo.type),n.a.createElement("div",{key:this.key+"wrapper"},this.state.settings.enabled?[n.a.createElement("div",{onClick:this.toggleEnabled.bind(this),key:this.key+"icon-check",style:Y.tile.editMode.checkIcon,className:"edit-buttons"},n.a.createElement(x.cb,{size:"50%",style:Y.tile.editMode.buttonIcon})),n.a.createElement("div",{onClick:this.showSettings.bind(this),key:this.key+"icon-edit",style:Y.tile.editMode.editIcon,className:"edit-buttons"},n.a.createElement(x.t,{size:"50%",style:Object.assign({},Y.tile.editMode.buttonIcon,{width:"80%",marginLeft:"20%"})}))]:n.a.createElement("div",{onClick:this.toggleEnabled.bind(this),key:this.key+".icon-check",style:Y.tile.editMode.removeIcon},n.a.createElement(x.Q,{size:"100%",style:Y.tile.editMode.buttonIconRemoved})),t),this.state.showSettings?n.a.createElement(ce,{key:this.key+"settings",windowWidth:this.props.windowWidth,name:this.state.settings.name,dialogKey:this.key+"settings",settings:this.getDialogSettings(),objects:this.props.objects,settingsId:this.settingsId,onSave:this.saveDialogSettings.bind(this),onClose:this.onSettingsClose.bind(this)}):null]:this.state.settings.enabled?[n.a.createElement("div",{key:this.key+"type",style:{display:"none"}},this.channelInfo.type),n.a.createElement("div",{key:this.key+"wrapper"},this.showCorner?n.a.createElement("div",{key:this.key+"corner",onMouseDown:this.onLongClick.bind(this),className:"corner",style:Y.tile.tileCorner}):null,this.getIndicators(),t)]:null}},{key:"render",value:function(){return this.state.editMode||this.state.settings.enabled?this.wrapContent(this.settings.name||this.getObjectNameCh()):null}}],[{key:"getObjectName",value:function(t,e,i,s,n){var a;if(i)a=i;else if(e){var o=t[e];if(o&&o.common&&o.common.name){if(a=_.getObjectName(t,e,null,{language:W.getLanguage()}),n)if("object"===typeof n)n.forEach(function(t){var e=new RegExp("\\b"+t+"\\b"),i=a.replace(e," ").replace(/\s\s/g,"").trim();i&&(a=i)});else{var r=new RegExp("\\b"+n+"\\b"),l=a.replace(r," ").replace(/\s\s/g,"").trim();l&&(a=l)}if(s){var c=new RegExp(s+"[.: ]?"),u=a.replace(c," ").trim();u&&(a=u)}a&&a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else{var h=e.lastIndexOf(".");if(a=e.substring(h+1).replace(/_/g," "),a=_.CapitalWords(a),n)if("object"===typeof n)n.forEach(function(t){var e=new RegExp("\\b"+t+"\\b");a=a.replace(e," ").replace(/\s\s/g,"").trim()});else{var d=new RegExp("\\b"+n+"\\b");a=a.replace(d," ").replace(/\s\s/g,"").trim()}if(s){var g=new RegExp(s+"[.: ]?");a=W.t(a.replace(g," ").trim())}}}else a="No elements";return a.trim()}},{key:"getParentId",value:function(t){var e=t.lastIndexOf(".");return-1!==e?t.substring(0,e):t}},{key:"getNameFontSize",value:function(t){return t&&t.length>=15?12:t&&t.length>10?14:16}}]),e}(s.Component),he=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 508.16 508.16"},t),n.a.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),n.a.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))},de=i(27),ge=i(33),Me=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).stateRx.value=i.externalValue2localValue(i.props.startValue||0),i.stateRx.toggleValue=i.props.startToggleValue||!1,i.onMouseMoveBind=i.onMouseMove.bind(Object(d.a)(Object(d.a)(i))),i.onMouseUpBind=i.onMouseUp.bind(Object(d.a)(Object(d.a)(i))),i.lastControl=0,i.refSlider=n.a.createRef(),i.type=i.props.type||e.types.dimmer,i.step=i.props.step||20,i.button={time:0,name:"",timer:null,timeUp:0},i.closeOnPaperClick=!0,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentWillReceiveProps",value:function(t){t.startValue!==this.state.value&&!this.mouseDown&&Date.now()-this.lastControl>1e3&&this.setState({value:t.startValue}),void 0!==t.startToggleValue&&t.startToggleValue!==this.state.toggleValue&&this.setState({toggleValue:t.startToggleValue})}},{key:"eventToValue",value:function(t){var i=t.touches?t.touches[t.touches.length-1].clientY:t.clientY,s=100-Math.round((i-this.top)/this.height*100);s>100?s=100:s<0&&(s=0),this.setState({value:s}),Date.now()-this.lastControl>200&&this.type!==e.types.blinds&&(this.lastControl=Date.now(),this.props.onValueChange&&this.props.onValueChange(this.localValue2externalValue(this.state.value)))}},{key:"onMouseMove",value:function(t){t.preventDefault(),t.stopPropagation(),this.eventToValue(t)}},{key:"onMouseDown",value:function(t){if(t.preventDefault(),t.stopPropagation(),this.mouseDown=!0,!this.height){if(!this.refSlider.current)return;this.height=this.refSlider.current.offsetHeight,this.top=this.refSlider.current.offsetTop}this.eventToValue(t),document.addEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.addEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0})}},{key:"localValue2externalValue",value:function(t){return void 0!==this.props.min&&void 0!==this.props.max?t*(this.props.max-this.props.min)/100+this.props.min:t}},{key:"externalValue2localValue",value:function(t){return void 0!==this.props.min&&void 0!==this.props.max?(t-this.props.min)/(this.props.max-this.props.min)*100:t}},{key:"onMouseUp",value:function(t){t.preventDefault(),t.stopPropagation(),this.click=Date.now(),this.mouseDown=!1,console.log("Stopped"),document.removeEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.removeEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0}),this.lastControl=Date.now(),this.props.onValueChange&&this.props.onValueChange(this.localValue2externalValue(this.state.value))}},{key:"getTopButtonName",value:function(){switch(this.props.type){case e.types.blinds:return n.a.createElement(A.b,{style:{color:"black"}});case e.types.dimmer:return n.a.createElement(de.b,{style:{color:Y.palette.lampOn}});default:return void 0!==this.props.max?this.props.max+(this.props.unit||""):W.t("ON")}}},{key:"getBottomButtonName",value:function(){switch(this.props.type){case e.types.blinds:return n.a.createElement(A.a,{style:{color:"black"}});case e.types.dimmer:return n.a.createElement(de.b,{style:{color:"black"}});default:return void 0!==this.props.min?this.props.min+(this.props.unit||""):W.t("OFF")}}},{key:"onButtonDown",value:function(t,e){var i=this;t&&t.stopPropagation(),Date.now()-this.button.time<50||(this.button.timer&&clearTimeout(this.button.timer),this.button.name=e,this.button.time=Date.now(),this.button.timer=setTimeout(function(){var t;switch(i.button.timer=null,i.button.name){case"top":t=100;break;case"bottom":t=0}i.setState({value:t}),i.props.onValueChange&&i.props.onValueChange(i.localValue2externalValue(t))},400))}},{key:"onButtonUp",value:function(t){if(t&&t.stopPropagation(),Date.now()-this.button.timeUp<100)this.button.timer&&(clearTimeout(this.button.timer),this.button.timer=null);else{if(console.log("on Button UP: "+(Date.now()-this.button.timeUp)),this.button.timeUp=Date.now(),this.button.timer){clearTimeout(this.button.timer),this.button.timer=null;var e=this.state.value;switch(this.button.name){case"top":e%this.step===0?e+=this.step:e+=this.step-e%this.step;break;case"bottom":e%this.step===0?e-=this.step:e-=e%this.step}e>100?e=100:e<0&&(e=0),this.setState({value:e}),this.props.onValueChange&&this.props.onValueChange(this.localValue2externalValue(e))}this.click=Date.now()}}},{key:"getSliderColor",value:function(){if(this.props.type!==e.types.blinds){if(this.props.type===e.types.dimmer){var t=this.state.value;return Object(ge.darken)(Y.palette.lampOn,1-(t/70+.3))}return Y.slider.background}}},{key:"onStop",value:function(t){t&&t.preventDefault(),t&&t.stopPropagation(),this.setState({toast:W.t("sent")}),this.props.onStop&&this.props.onStop()}},{key:"onToggle",value:function(t){t&&t.preventDefault(),t&&t.stopPropagation(),this.props.onToggle&&this.props.onToggle()}},{key:"getValueText",value:function(){var t="%";return this.props.type!==e.types.blinds&&this.props.type!==e.types.dimmer&&(t=this.props.unit||""),void 0!==this.props.min&&void 0!==this.props.max?(this.state.value*(this.props.max-this.props.min)/100+this.props.min).toFixed()+t:this.state.value+t}},{key:"getToggleButton",value:function(){if(!this.props.onToggle)return null;var t=Object.assign({},e.buttonStopStyle,this.state.toggleValue?{background:Y.palette.lampOn}:{});return n.a.createElement(T.a,{key:this.props.dialogKey+"-toggle-button",variant:"fab",color:"primary","aria-label":"on off",style:t,onClick:this.onToggle.bind(this),className:"dimmer-button"},n.a.createElement(de.b,null))}},{key:"getStopButton",value:function(){return this.props.onStop?n.a.createElement(T.a,{key:this.props.dialogKey+"-stop-button",variant:"fab",color:"secondary","aria-label":"stop",style:e.buttonStopStyle,onClick:this.onStop.bind(this),className:"dimmer-button"},n.a.createElement(x.ab,null)):null}},{key:"generateContent",value:function(){var t=this,i={position:"absolute",width:"100%",left:0,height:(this.props.type===e.types.blinds?100-this.state.value:this.state.value)+"%",background:this.props.background||this.getSliderColor(),transitionProperty:"height",transitionDuration:"0.3s"},s={position:"absolute",width:"2em",height:"0.3em",left:"calc(50% - 1em)",background:"white",borderRadius:"0.4em"};return this.props.type===e.types.blinds?(i.top=0,s.bottom="0.4em",i.backgroundImage="linear-gradient(0deg, #949494 4.55%, #c9c9c9 4.55%, #c9c9c9 50%, #949494 50%, #949494 54.55%, #c9c9c9 54.55%, #c9c9c9 100%)",i.backgroundSize="44px 44px",i.backgroundPosition="center bottom"):(i.bottom=0,s.top="0.4em"),[n.a.createElement("div",{key:this.props.dialogKey+"-top-button",onTouchStart:function(e){return t.onButtonDown(e,"top")},onMouseDown:function(e){return t.onButtonDown(e,"top")},onTouchEnd:this.onButtonUp.bind(this),onMouseUp:this.onButtonUp.bind(this),onClick:function(t){return t.stopPropagation()},style:Object.assign({},e.buttonStyle,{top:"1.3em"}),className:"dimmer-button"},this.getTopButtonName()),n.a.createElement("div",{key:this.props.dialogKey+"-slider",ref:this.refSlider,onMouseDown:this.onMouseDown.bind(this),onTouchStart:this.onMouseDown.bind(this),onClick:function(t){return t.stopPropagation()},style:e.sliderStyle},n.a.createElement("div",{style:i},n.a.createElement("div",{style:s})),n.a.createElement("div",{style:{position:"absolute",top:"calc(50% - 0.55em)",userSelect:"none",width:"100%",textAlign:"center",fontSize:"2em"}},this.getValueText())),n.a.createElement("div",{key:this.props.dialogKey+"-bottom-button",onTouchStart:function(e){return t.onButtonDown(e,"bottom")},onMouseDown:function(e){return t.onButtonDown(e,"bottom")},onTouchEnd:this.onButtonUp.bind(this),onMouseUp:this.onButtonUp.bind(this),onClick:function(t){return t.stopPropagation()},style:Object.assign({},e.buttonStyle,{bottom:"1.8em"}),className:"dimmer-button"},this.getBottomButtonName()),this.getStopButton(),this.getToggleButton()]}}]),e}(oe);Me.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string,windowWidth:Nt.a.number,onClose:Nt.a.func,onStop:Nt.a.func,onToggle:Nt.a.func,onValueChange:Nt.a.func,startValue:Nt.a.number,startToggleValue:Nt.a.bool,type:Nt.a.number},Me.types={value:0,dimmer:1,blinds:2},Me.buttonStyle={position:"absolute",left:"calc(50% - 2em)",height:"1.3em",width:"4em",borderRadius:"1em",background:"white",border:"1px solid #b5b5b5",paddingTop:"0.1em",fontSize:"2em",textAlign:"center",cursor:"pointer",boxShadow:"0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)"},Me.buttonStopStyle={position:"absolute",left:"calc(50% + 6em)",bottom:"4.5em",height:"2em",width:"2.5em"},Me.sliderStyle={position:"absolute",zIndex:11,width:200,border:"1px solid #b5b5b5",borderRadius:"2em",overflow:"hidden",background:"white",cursor:"pointer",boxShadow:"0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)",height:"calc(100% - 12em - 48px)",top:"calc(4em + 48px)",left:"calc(50% - 100px)"};var pe=Me,me={zIndex:2,position:"absolute",bottom:0,left:0,opacity:.8,background:"#FFF",width:"100%"},ye=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});s&&i.props.objects[s.id]&&i.props.objects[s.id].common?i.id=s.id:i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name}),i.actualId=s?s.id:i.id,s=i.channelInfo.states.find(function(t){return t.id&&"STOP"===t.name}),i.stopId=s&&s.id}return i.id&&(i.max=i.props.objects[i.actualId].common.max,void 0===i.max&&(i.max=100),i.max=parseFloat(i.max),i.min=i.props.objects[i.actualId].common.min,void 0===i.min&&(i.min=0),i.min=parseFloat(i.min)),i.props.tile.setState({state:!0}),i.stateRx.showDialog=!1,i.stateRx.setValue=null,i.key="smart-blinds-"+i.id+"-",i.doubleState=!0,i.componentReady(),i.state.settings.toggleOnClick&&i.props.tile.setState({isPointer:!0}),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"realValueToPercent",value:function(t){return void 0===t&&(t=this.props.states[this.actualId]&&this.props.states[this.actualId].val||0),t=parseFloat(t),t=Math.round((t-this.min)/(this.max-this.min)*100),this.state.settings.inverted&&(t=100-t),t}},{key:"percentToRealValue",value:function(t){return t=parseFloat(t),this.state.settings.inverted&&(t=100-t),Math.round((this.max-this.min)*t/100)}},{key:"updateState",value:function(t,i){var s={},n="number"===typeof i.val?i.val:parseFloat(i.val);this.actualId===t||this.id===t&&this.id===this.actualId&&i.ack?(isNaN(n)?(s[t]=null,this.setState(s)):(s[t]=n,this.setState(s)),this.state.setValue===s[t]&&i.ack&&this.setState({setValue:null}),i.ack&&this.state.executing&&this.setState({executing:!1})):t===this.id?(s[t]=n,this.setState(s)):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"setValue",value:function(t){console.log("Control "+this.id+" = "+this.percentToRealValue(t)),this.setState({executing:!0,setValue:t}),this.props.onControl(this.id,this.percentToRealValue(t))}},{key:"onStop",value:function(){this.setState({executing:!1}),this.stopId&&this.props.onControl&&this.props.onControl(this.stopId,!0)}},{key:"onToggleValue",value:function(){var t;this.state.settings.toggleOnClick&&(t=this.realValueToPercent()?0:100,this.setValue(t))}},{key:"getIcon",value:function(){var t;t=this.state.settings.useDefaultIcon?n.a.createElement("img",{src:this.getDefaultIcon(),alt:"icon",style:{height:"100%",zIndex:1}}):this.state.settings.icon?n.a.createElement("img",{src:this.state.settings.icon,alt:"icon",style:{height:"100%",zIndex:1}}):n.a.createElement(he,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}});var e=Object.assign({},me,{height:this.realValueToPercent(this.state[this.id])+"%"});return this.state.settings.colorOn&&Object.assign(e,{background:this.state.settings.colorOn}),n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,{},{left:"1rem"}),className:"tile-icon"},t,this.state.executing?n.a.createElement(yt.a,{style:{zIndex:3,position:"absolute",top:0,left:0},size:Y.tile.tileIcon.width}):null,n.a.createElement("div",{style:e}))}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.unshift({name:"inverted",value:this.state.settings.inverted||!1,type:"boolean"}),t.unshift({name:"toggleOnClick",value:this.state.settings.toggleOnClick||!1,type:"boolean"}),t}},{key:"saveDialogSettings",value:function(t){this.props.tile.setState({isPointer:t.toggleOnClick}),Object(pt.a)(Object(u.a)(e.prototype),"saveDialogSettings",this).call(this,t)}},{key:"getStateText",value:function(){return null===this.state[this.actualId]||void 0===this.state[this.actualId]?"---":this.workingId&&this.state[this.workingId]&&null!==this.state.setValue&&void 0!==this.state.setValue?this.realValueToPercent()+"% \u2192 "+this.state.setValue+"%":this.realValueToPercent()+"%"}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(this.id,!0),this.state.showDialog?n.a.createElement(pe,{key:this.key+"dialog",startValue:this.realValueToPercent(),onValueChange:this.setValue.bind(this),windowWidth:this.props.windowWidth,inverted:this.state.settings.inverted,onStop:this.stopId?this.onStop.bind(this):null,onClose:this.onDialogClose.bind(this),type:pe.types.blinds}):null])}}]),e}(ue),je=i(232),Ne=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});i.id=s?s.id:""}i.defaultEnabling=!1,i.stateRx.pressed=!1,i.icon=je.a,i.style={};var n=i.props.objects&&i.props.objects[i.id]&&i.props.objects[i.id].common&&i.props.objects[i.id].name;"object"===typeof n&&(n=n.en);var a=n+"_"+i.id.split(".").pop();return a.match(/play/i)?(i.icon=x.N,i.style={color:"green"}):a.match(/stop/i)?(i.icon=x.ab,i.style={color:"red"}):a.match(/pause/i)?(i.icon=x.L,i.style={color:"grey"}):a.match(/unmute/i)?(i.icon=x.gb,i.style={color:"blue"}):a.match(/mute/i)?(i.icon=x.fb,i.style={color:"blue"}):a.match(/forw/i)?(i.icon=x.x,i.style={color:"yellow"}):a.match(/prev/i)?(i.icon=x.y,i.style={color:"yellow"}):a.match(/replay/i)?i.icon=x.T:a.match(/shuff/i)&&(i.icon=x.W),i.key="smart-button-"+i.id+"-",i.props.tile.setState({isPointer:!0}),i.props.tile.registerHandler("onClick",i.onTileClick.bind(Object(d.a)(Object(d.a)(i)))),i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"onTileClick",value:function(){var t=this;this.props.onControl(this.id,!0),this.setState({pressed:!0}),setTimeout(function(){return t.setState({pressed:!1})},500)}},{key:"getIcon",value:function(){var t;if(this.state.settings.useDefaultIcon)t=n.a.createElement("img",{src:this.getDefaultIcon(),alt:"icon",style:{height:"100%"}});else if(this.state.settings.icon)t=n.a.createElement("img",{src:this.state.settings.icon,alt:"icon",style:{height:"100%"}});else{var e=this.icon;t=n.a.createElement(e,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}})}return n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,this.style),className:"tile-icon"},t)}},{key:"getStateText",value:function(){return this.state.pressed?W.t("pressed"):""}},{key:"render",value:function(){return this.wrapContent(this.getStandardContent(null))}}]),e}(ue),Le=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});s&&i.props.objects[s.id]&&i.props.objects[s.id].common?i.id=s.id:i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name}),i.actualId=s?s.id:i.id,s=i.channelInfo.states.find(function(t){return t.id&&"ON_SET"===t.name}),i.onId=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"ON_ACTUAL"===t.name}),i.onActualId=s?s.id:i.onId}return i.id&&(i.max=i.props.objects[i.actualId].common.max,void 0===i.max&&(i.max=100),i.max=parseFloat(i.max),i.min=i.props.objects[i.actualId].common.min,void 0===i.min&&(i.min=0),i.min=parseFloat(i.min),i.props.tile.setState({isPointer:!0})),i.key="smart-dimmer-"+i.id+"-",i.stateRx.showDialog=!1,i.stateRx.setValue=null,i.doubleState=!0,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"realValueToPercent",value:function(t){return void 0===t&&(t=this.props.states[this.actualId]&&this.props.states[this.actualId].val||0),t=parseFloat(t),Math.round((t-this.min)/(this.max-this.min)*100)}},{key:"percentToRealValue",value:function(t){return t=parseFloat(t),Math.round((this.max-this.min)*t/100)}},{key:"updateState",value:function(t,i){var s={};if(this.onActualId===t||this.onId===t&&this.onId===this.onActualId&&i.ack){var n="number"===typeof i.val?!!i.val:!0===i.val||"true"===i.val||"1"===i.val||"on"===i.val||"ON"===i.val||"ein"===i.val||"EIN"===i.val;s[t]=n,this.setState(s),this.props.tile.setState({state:n}),i.ack&&this.state.executing&&this.setState({executing:!1})}else if(this.actualId===t||this.id===t&&this.id===this.actualId&&i.ack){var a="number"===typeof i.val?i.val:parseFloat(i.val);if(isNaN(a))s[t]=null,this.setState(s),this.onActualId||this.props.tile.setState({state:!1});else if(s[t]=this.realValueToPercent(a),this.setState(s),!this.onActualId){var o=a!==this.min;this.props.tile.setState({state:o})}this.state.setValue===s[t]&&i.ack&&this.setState({setValue:null}),i.ack&&this.state.executing&&this.setState({executing:!1})}else t===this.id?(s[t]="number"===typeof i.val?i.val:parseFloat(i.val),this.setState(s)):t===this.onId?(s[t]="number"===typeof i.val?!!i.val:!0===i.val||"true"===i.val||"1"===i.val||"on"===i.val||"ON"===i.val||"ein"===i.val||"EIN"===i.val,this.setState(s)):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"setValue",value:function(t){if(t)this.lastNotNullPercent=t;else{var e=this.realValueToPercent();e&&(this.lastNotNullPercent=e)}console.log("Control "+this.id+" = "+this.percentToRealValue(t)),this.setState({executing:!0,setValue:t}),this.props.onControl(this.id,this.percentToRealValue(t))}},{key:"onToggleValue",value:function(){var t;this.onId?this.props.onControl(this.onId,!this.state[this.onActualId]):(t=this.realValueToPercent()?0:this.lastNotNullPercent||100,this.setValue(t))}},{key:"getIcon",value:function(){var t;return t=this.state.settings.useDefaultIcon?n.a.createElement("img",{src:this.getDefaultIcon(),alt:"icon",style:{height:"100%"}}):this.state.settings.icon?n.a.createElement("img",{src:this.state.settings.icon,alt:"icon",style:{height:"100%"}}):n.a.createElement(de.b,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}}),n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,this.state[this.actualId]!==this.min?{color:Y.palette.lampOn}:{}),className:"tile-icon"},t,this.state.executing?n.a.createElement(yt.a,{style:{position:"absolute",top:0,left:0},size:Y.tile.tileIcon.width}):null)}},{key:"getStateText",value:function(){return this.onActualId&&!1===this.state[this.onActualId]?W.t("Off"):null===this.state[this.actualId]||void 0===this.state[this.actualId]?"---":this.workingId&&this.state[this.workingId]&&null!==this.state.setValue&&void 0!==this.state.setValue?this.realValueToPercent(this.state[this.actualId])+"% \u2192 "+this.state.setValue+"%":this.realValueToPercent(this.state[this.actualId])+"%"}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(this.id,!0),this.state.showDialog?n.a.createElement(pe,{key:this.key+"dialog",windowWidth:this.props.windowWidth,startValue:this.realValueToPercent(),onValueChange:this.setValue.bind(this),startToggleValue:!!this.onActualId&&this.state[this.onActualId],onToggle:this.onId&&this.onToggleValue.bind(this),onClose:this.onDialogClose.bind(this),type:pe.types.dimmer}):null])}}]),e}(ue),ve=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 512 512"},t),n.a.createElement("path",{d:"M341.333 288.593V85.333C341.333 38.205 303.128 0 256 0s-85.333 38.205-85.333 85.333v203.259C144.48 312.03 128 346.091 128 384c0 70.693 57.308 128 128 128s128-57.307 128-128c0-37.909-16.48-71.97-42.667-95.407zM256 469.333c-47.128 0-85.333-38.205-85.333-85.333 0-24.637 10.441-47.492 28.455-63.615l14.212-12.72V85.333c0-23.564 19.103-42.667 42.667-42.667s42.667 19.102 42.667 42.667v222.332l14.212 12.72c18.014 16.123 28.455 38.977 28.455 63.615-.002 47.128-38.207 85.333-85.335 85.333z"}),n.a.createElement("path",{d:"M234.667 170.667h42.667v256h-42.667z"}),n.a.createElement("circle",{cx:256,cy:384,r:64}))},we=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 511.448 511.448"},t),n.a.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),n.a.createElement("g",{fill:"#fafafa"},n.a.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))},be=i(62),fe=i.n(be),Te=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).type=i.props.type||("number"===typeof i.props.value?"number":"text"),i.state={val:i.props.value?i.props.value.val:"?",ts:i.props.value?i.props.value.ts:0,lc:i.props.value?i.props.value.lc:0},i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"onChange",value:function(t){this.setState({val:t})}},{key:"onKeyDown",value:function(t){13===t.keyCode&&this.props.onChange("number"===this.type?parseFloat(this.state.val):this.state.val)}},{key:"render",value:function(){var t,e=this,i=this.props,s=i.classes,a=i.label,o=i.icon,r=i.onChange;return o&&("object"===typeof o?(t=o,t=n.a.createElement(t,{className:s.icon})):t=n.a.createElement("img",{alt:a,src:o,className:s.icon})),n.a.createElement("div",{className:s.line},n.a.createElement(bt.a,{tabIndex:"0",className:s.input,type:this.type,label:a,min:this.props.min,max:this.props.max,value:this.state.val,onKeyDown:this.onKeyDown.bind(this),onChange:function(t){return e.onChange(t.target.value)},margin:"normal"}),n.a.createElement(T.a,{tabIndex:"1",className:s.button,onClick:function(t){return r("number"===e.type?parseFloat(e.state.val):e.state.val)},variant:"contained"},t,a))}}]),e}(s.Component),De=Object(g.withStyles)(function(t){return{line:{width:"calc(100% - 6px)"},input:{width:"calc(60% - 10px)"},button:{width:"40%",marginLeft:10},icon:{height:20,marginRight:10}}})(Te),Se=Object(g.withStyles)(function(){return Y.dialog.info})(function(t){var e,i=t.classes,s=t.label,a=t.value,o=(t.onChange,t.language),r=t.icon,l=t.unit;return r&&("object"===typeof r?(e=r,e=n.a.createElement(e,{className:i.icon})):e=n.a.createElement("img",{alt:s,src:r,className:i.icon})),n.a.createElement("div",{className:i.line},e,n.a.createElement(Xt.a,null,n.a.createElement("span",{className:i.label},s),n.a.createElement("span",{className:i.valueUnit},n.a.createElement("span",{className:i.value},a&&void 0!==a.val&&null!==a.val?a.val.toString():"?"),l&&n.a.createElement("span",{className:i.unit},l)),a&&a.lc&&n.a.createElement(ee.a,{className:i.lc,date:a.lc,interval:15,fromNow:!0,locale:o})))}),Ie=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).props.points.forEach(function(t){var e=i.props.states[t.id];i.stateRx[t.id]=e?{val:e.val,ts:e.ts,lc:e.lc}:null,i.subscribes=i.subscribes||[],i.subscribes.push(t.id)}),i.refDialog=n.a.createRef(),i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"controlValue",value:function(t,e){this.setState({toast:W.t("sent")}),this.props.onValueChange&&this.props.onValueChange(t,e)}},{key:"handleToggle",value:function(t){var e={},i=this.state[t];e[t]={val:!(i&&i.val)},i&&(e[t].lc=i.lc,e[t].ts=i.ts),this.setState(e),this.controlValue(t,e[t].val)}},{key:"handleValue",value:function(t,e){var i={};i[t]={val:e};var s=this.state[t];s&&(i[t].lc=s.lc,i[t].ts=s.ts),this.state[t].val!==i[t].val&&this.setState(i),this.controlValue(t,e)}},{key:"generateContent",value:function(){var t=this,e=this.props.points.map(function(e,i){var s,a=i!==t.props.points.length-1?n.a.createElement(H.a,{key:e.id+"_div",style:Y.dialog.divider}):null;return s=e.common&&e.common.write?"boolean"===e.common.type?!1!==e.common.read?n.a.createElement(ie,{key:t.props.dialogKey+"-"+e.id+"-control",label:e.name,value:t.state[e.id],language:W.getLanguage(),icon:e.icon,onChange:function(){return t.handleToggle(e.id)}}):n.a.createElement("div",{key:t.props.dialogKey+"-"+e.id+"-control",style:{width:"100%",textAlign:"center"}},n.a.createElement(T.a,{variant:"contained",style:{minWidth:"50%"},onClick:function(i){return t.handleButton(i,e.id)}},e.name)):"number"===e.common.type&&void 0!==e.common.min&&void 0!==e.common.max&&e.common.max-e.common.min<5e3?[n.a.createElement(Xt.a,{key:t.props.dialogKey+"-"+e.id+"-title"},e.name," - ",t.state[e.id]?t.state[e.id].val:"?",e.unit),n.a.createElement(fe.a,{key:t.props.dialogKey+"-"+e.id+"-control",min:e.common.min,max:e.common.max,step:(e.common.max-e.common.min)/100,value:t.state[e.id].val,"aria-labelledby":e.name,style:{width:"calc(100% - 20px)",marginLeft:10},onChange:function(i,s){return t.handleValue(e.id,s)}})]:n.a.createElement(De,{key:t.props.dialogKey+"-"+e.id+"-title",type:e.common&&"number"===e.common.type?"number":"text",icon:e.icon,label:e.name+(e.unit?" ("+e.unit.trim()+")":""),min:e.common.min,max:e.common.max,value:t.state[e.id],onChange:function(i){return t.handleValue(e.id,i)}}):e.common&&"boolean"===e.common.type?n.a.createElement(ie,{key:t.props.dialogKey+"-"+e.id+"-control",label:e.name,value:t.state[e.id],language:W.getLanguage()}):n.a.createElement(Se,{key:t.props.dialogKey+"-"+e.id+"-control",label:e.name,unit:e.unit||"",value:t.state[e.id],language:W.getLanguage()}),a?[s,a]:s});return[n.a.createElement("h4",{key:this.props.points[0].id+"_info_header",style:Y.dialog.header},this.props.name),n.a.createElement(Z.a,{key:this.props.points[0].id+"_info_list",style:Y.dialog.list},e)]}}]),e}(oe);Ie.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string.isRequired,windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,objects:Nt.a.object,states:Nt.a.object,onValueChange:Nt.a.func,points:Nt.a.array.isRequired};var Ce=Ie,ke=[/^timer.off$/,/^inhibit$/],ze=function(t){function e(t){var i;Object(r.a)(this,e);var s=!1;if((i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var n=i.channelInfo.states.filter(function(t){return t.id&&"ACTUAL"===t.name}).map(function(t){return t.id});n.length>1&&n.sort(function(t,e){var s=i.props.objects[t],n=i.props.objects[e],a=s&&s.common&&s.common.type,o=n&&n.common&&n.common.type;return a&&!o?1:!a&&o?-1:"number"===a&&"number"!==o?-1:"number"!==a&&"number"===o?1:0}),n[0]?i.id=n[0]:i.id="",n[1]&&(i.secondary={id:n[1]});var a=i.getObjectNameCh();i.infos=n.map(function(t){return e.getObjectAttributes(i.props.objects,t,a)}),s=!!i.infos.find(function(t){return t.common&&t.common.write})}return i.infos.find(function(t){return!ke.find(function(e){return!e.test(t.role)})})||(i.defaultEnabling=!1),i.props.tile.state.state=!0,i.infos&&(i.infos.length>2||s)&&(i.stateRx.showDialog=!1),i.props.tile.setState({isPointer:i.showCorner}),i.key="smart-info-"+i.id+"-",i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){if(this.infos&&this.infos.find(function(e){return e.id===t})){var s={};s[t]=i.val,this.setState(s)}else Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getIcon",value:function(){var t;if(this.state.settings.useDefaultIcon)t=n.a.createElement("img",{src:this.getDefaultIcon(),alt:" ",style:{height:"100%",zIndex:1}});else if(this.state.settings.icon)t=n.a.createElement("img",{src:this.state.settings.icon,alt:" ",style:{height:"100%",zIndex:1}});else{var e=this.infos[0].icon||x.D;t=n.a.createElement(e,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}})}return n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,this.infos[0].iconStyle||{}),className:"tile-icon"},t)}},{key:"getStateText",value:function(){var t=this.state[this.id];return void 0===t||null===t?"?":t+this.infos[0].unit}},{key:"getSecondaryDiv",value:function(){if(!this.infos||!this.infos[1]||!this.infos[1].id||void 0===this.state[this.infos[1].id]||null===this.state[this.infos[1].id])return null;var t,e=this.state[this.infos[1].id],i=this.infos[1].icon;return i&&("object"===typeof i?(t=i,t=n.a.createElement(t,{style:Object.assign({},Y.tile.secondary.icon,this.infos[1].iconStyle||{})})):t=n.a.createElement("img",{alt:" ",src:i,style:Object.assign({},Y.tile.secondary.icon,this.infos[1].iconStyle||{})})),n.a.createElement("div",{key:this.key+"tile-secondary",className:"tile-text-second",style:Y.tile.secondary.div,title:this.infos[1].name},t,n.a.createElement("span",{style:Y.tile.secondary.text},e+this.infos[1].unit))}},{key:"getNumberOfValuesIndicator",value:function(){return this.infos.length<=2?null:n.a.createElement("div",{key:this.key+"tile-number",style:Y.tile.tileNumber,title:W.t("Show %s values",this.infos.length)},this.infos.length)}},{key:"getFirstName",value:function(){return this.firstName=this.firstName||W.t(_.CapitalWords(this.id.split(".").pop())),[n.a.createElement("span",{key:this.key+"tile-name"},this.state.settings.name," "),n.a.createElement("span",{key:this.key+"tile-first-name",style:Y.tile.tileNameSmall},this.firstName)]}},{key:"setValue",value:function(t,e){console.log("Control "+t+" = "+e),this.props.onControl(t,e)}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(this.actualId),this.getSecondaryDiv(),this.getNumberOfValuesIndicator(),this.state.showDialog?n.a.createElement(Ce,{key:this.key+"dialog",dialogKey:this.key+"dialog",windowWidth:this.props.windowWidth,points:this.infos,onCollectIds:this.props.onCollectIds,name:this.state.settings.name,onValueChange:this.setValue.bind(this),onClose:this.onDialogClose.bind(this),objects:this.props.objects,states:this.props.states}):null])}}],[{key:"getObjectAttributes",value:function(t,e,i){if(!e||!t[e]||!t[e].common)return null;var s=t[e].common.role||"",n=t[e].common.unit||"",a=t[e].common.name||e.split(".").pop();return a||(a=e.split(".").pop()),"object"===typeof a&&(a=a[W.getLanguage()]||a.en||e.split(".").pop()),(a=a.replace(/[._]/g," ").trim()).toUpperCase()!==i.toUpperCase()&&(a=a.replace(i,"").trim()),a=_.splitCamelCase(a),s.match(/humidity/i)?{id:e,icon:we,iconStyle:{color:"#0056c3"},unit:n?" "+n:" %",role:s,name:a,common:t[e].common}:s.match(/temperature/i)?{id:e,icon:ve,iconStyle:{color:"#e54100"},unit:n?" "+n:"\xb0",name:a,role:s,common:t[e].common}:{id:e,unit:n?" "+n:"",icon:_.getObjectIcon(e,t[e]),name:a,role:s,common:t[e].common}}}]),e}(ue);ze.propTypes={tile:Nt.a.object.isRequired,objects:Nt.a.object.isRequired,states:Nt.a.object.isRequired,onCollectIds:Nt.a.func,onControl:Nt.a.func};var Oe=ze,Ee=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});s&&i.props.objects[s.id]&&i.props.objects[s.id].common?i.id=s.id:i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name}),i.actualId=s?s.id:i.id}return i.id&&(i.max=i.props.objects[i.actualId].common.max,i.min=i.props.objects[i.actualId].common.min,i.props.tile.setState({isPointer:!0}),i.unit=i.props.objects[i.actualId].common.unit,i.unit=i.unit?" "+i.unit:""),i.stateRx.showDialog=!1,i.stateRx.setValue=null,i.key="smart-slider-"+i.id+"-",i.doubleState=!0,i.icon=de.b,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){var s={},n="number"===typeof i.val?i.val:parseFloat(i.val);if(this.actualId===t||this.id===t&&this.id===this.actualId&&i.ack){if(isNaN(n))s[t]=null,this.setState(s),this.props.tile.setState({state:!1});else{s[t]=n,this.setState(s);var a=n!==this.min;this.props.tile.setState({state:a})}this.state.setValue===s[t]&&i.ack&&this.setState({setValue:null}),i.ack&&this.state.executing&&this.setState({executing:!1})}else t===this.id?(s[t]=n,this.setState(s)):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"setValue",value:function(t){console.log("Control "+this.id+" = "+t),this.actualId!==this.id&&this.setState({executing:!0,setValue:t}),this.props.onControl(this.id,t)}},{key:"getIcon",value:function(){var t;if(this.state.settings.useDefaultIcon)t=n.a.createElement("img",{src:this.getDefaultIcon(),alt:"icon",style:{height:"100%"}});else if(this.state.settings.icon)t=n.a.createElement("img",{src:this.state.settings.icon,alt:"icon",style:{height:"100%"}});else{var e=this.icon;e&&(t=n.a.createElement(e,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}}))}return t?n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,this.state[this.actualId]!==this.min?{color:Y.palette.lampOn}:{}),className:"tile-icon"},t,this.state.executing?n.a.createElement(yt.a,{style:{position:"absolute",top:0,left:0},size:Y.tile.tileIcon.width}):null):null}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.push({name:"decimals",value:this.state.settings.decimals||0,type:"number",min:0,max:6}),t}},{key:"getStateText",value:function(){return null===this.state[this.actualId]||void 0===this.state[this.actualId]?"---":this.workingId&&this.state[this.workingId]&&null!==this.state.setValue&&void 0!==this.state.setValue?this.roundValue(this.state[this.id])+this.unit+" \u2192 "+this.state.setValue+this.unit:this.roundValue(this.state[this.id])+this.unit}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(null,!0),this.state.showDialog?n.a.createElement(pe,{dialogKey:this.key+"dialog",key:this.key+"dialog",startValue:this.state[this.id],windowWidth:this.props.windowWidth,min:this.min,max:this.max,unit:this.unit,onValueChange:this.setValue.bind(this),onClose:this.onDialogClose.bind(this),type:pe.types.value}):null])}}]),e}(ue),xe=function(t){return n.a.createElement("svg",Object.assign({width:361,height:361,viewBox:"0 0 361 361"},t),n.a.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.a.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),n.a.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.a.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))},Ae=function(t){return n.a.createElement("svg",Object.assign({width:361,height:361,viewBox:"0 0 361 361"},t),n.a.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.a.createElement("path",{d:"M258.5 185.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H258.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),n.a.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}))},Ue=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 63.907 63.907",fill:"currentColor"},t),n.a.createElement("circle",{cx:30.515,cy:6.136,r:6.136}),n.a.createElement("path",{d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))},Ye=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 24.986 24.986"},t),n.a.createElement("g",{fill:"currentColor"},n.a.createElement("path",{d:"M17.548 17.961l-.771-.769s-1.225 1.305-1.304 1.305c-.081 0-1.308-1.305-1.308-1.305l-.771.769s1.306 1.198 1.306 1.308c0 .106-1.306 1.308-1.306 1.308l.771.767s1.217-1.305 1.308-1.305c.089 0 1.304 1.305 1.304 1.305l.771-.767s-1.307-1.218-1.307-1.308c.001-.092 1.307-1.308 1.307-1.308z"}),n.a.createElement("path",{d:"M15.472 14.435a4.832 4.832 0 0 0 0 9.661 4.83 4.83 0 0 0 0-9.661zm0 8.913a4.083 4.083 0 0 1-4.081-4.082 4.079 4.079 0 0 1 4.081-4.081 4.083 4.083 0 0 1 0 8.163z"}),n.a.createElement("circle",{cx:10.06,cy:2.207,r:2.207}),n.a.createElement("path",{d:"M10.2 20.476v3.26l.009.009a1.25 1.25 0 0 0 1.251 1.238c.643 0 1.167-.487 1.236-1.11-.083-.052-.173-.093-.253-.146a5.425 5.425 0 0 1-2.243-3.251z"}),n.a.createElement("path",{d:"M12.455 14.724c.08-.057.168-.097.253-.146l-.002-6.687h.606V12.945c0 .516.417.932.932.932a.931.931 0 0 0 .933-.932V7.51c-.206-2.42-3.013-2.385-3.013-2.385H7.74c-3.168.06-3.055 2.385-3.055 2.385l-.001 5.428h.003c-.002.014-.002.025-.002.04a.932.932 0 1 0 1.861 0l-.001-.04h.001V7.914h.584l-.007 15.811c0 .693.562 1.261 1.257 1.261s1.257-.565 1.257-1.261V13.523h.562v4.457a5.414 5.414 0 0 1 2.256-3.256z"})))},Qe=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 512.006 512.006"},t),n.a.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),n.a.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),n.a.createElement("g",{fill:"#fdd834"},n.a.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),n.a.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),n.a.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),n.a.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),n.a.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),n.a.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))},We=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 452.498 452.498"},t),n.a.createElement("path",{d:"M301.317 295.155c-51.157-10.946-87.714-56.144-87.723-108.459a112.981 112.981 0 0 1 2.304-23.381 107.145 107.145 0 0 1 8.533-23.723 8.53 8.53 0 0 0-.427-8.533c-21.845-35.413-48.213-74.752-84.48-103.68a151.775 151.775 0 0 0-13.653-9.899 79.82 79.82 0 0 0-13.653-7.083 8.535 8.535 0 0 0-11.691 9.728l1.024 4.523c1.109 4.864 2.219 9.728 3.072 14.763a151.95 151.95 0 0 1 2.475 22.613v5.973a160.68 160.68 0 0 1-51.2 117.077 187.752 187.752 0 0 0-40.619 49.323 140.292 140.292 0 0 0-6.485 112.555C28.65 398.37 74.79 435.008 129.37 442.696h1.28a8.629 8.629 0 0 0 2.56-17.066 67.41 67.41 0 0 1-43.776-39.339 61.78 61.78 0 0 1 2.731-49.493 91.4 91.4 0 0 1 19.029-22.784 98.216 98.216 0 0 0 31.317-71.851v-3.669-5.12a86.72 86.72 0 0 1 17.067 19.029 80.214 80.214 0 0 1 12.885 42.667v.683a80.558 80.558 0 0 1-14.592 46.336 8.534 8.534 0 0 0 2.816 12.288 29.268 29.268 0 0 0 29.525 1.28 50.175 50.175 0 0 0 21.333-27.477 59.734 59.734 0 0 1 12.715 36.011c-.579 27.882-18.718 52.352-45.227 61.013a8.534 8.534 0 0 0 4.266 16.469c70.656-12.715 121.941-69.717 124.757-137.984a8.53 8.53 0 0 0-6.739-8.534zm-72.022 111.104a79.103 79.103 0 0 0 12.117-41.899 84.48 84.48 0 0 0-28.416-60.245 8.535 8.535 0 0 0-14.507 5.376c-.939 11.435-7.68 26.624-16.213 31.317a11.012 11.012 0 0 1-4.181 1.28 97.453 97.453 0 0 0 11.52-46.08v-1.024a97.279 97.279 0 0 0-15.616-52.053 105.562 105.562 0 0 0-39.509-35.925 8.535 8.535 0 0 0-12.117 10.155 78.449 78.449 0 0 1 3.755 22.016v2.731a81.32 81.32 0 0 1-26.027 59.733 105.478 105.478 0 0 0-22.443 27.477 80.723 80.723 0 0 0-8.533 35.499 79.108 79.108 0 0 0 13.397 43.947 131.416 131.416 0 0 1-57.941-67.669 123.223 123.223 0 0 1 5.717-98.901 170.67 170.67 0 0 1 37.205-44.629 177.58 177.58 0 0 0 56.405-129.451v-6.571a167.053 167.053 0 0 0-2.731-24.917V34.89a100.687 100.687 0 0 1 7.509 5.717c32.939 26.197 57.685 62.72 78.251 95.488a123.351 123.351 0 0 0-7.509 23.211 129.741 129.741 0 0 0-2.901 27.392c-.012 57.557 38.394 108.044 93.867 123.392a129.706 129.706 0 0 1-61.099 96.169z"}),n.a.createElement("path",{d:"M324.527 58.697c-49.399.039-94.366 28.501-115.541 73.131a123.96 123.96 0 0 0-9.557 27.477 129.741 129.741 0 0 0-2.901 27.392 127.147 127.147 0 0 0 48.896 100.608 128.002 128.002 0 0 0 79.104 27.392 126.807 126.807 0 0 0 79.104-27.392 128.001 128.001 0 0 0 48.867-100.579c.015-70.693-57.279-128.013-127.972-128.029zm0 238.933a110.91 110.91 0 0 1-23.211-2.475c-51.157-10.946-87.714-56.144-87.723-108.459a112.938 112.938 0 0 1 2.219-23.723 107.639 107.639 0 0 1 8.533-23.808c18.353-38.703 57.347-63.382 100.181-63.403 61.267 0 110.933 49.667 110.933 110.933S385.794 297.63 324.527 297.63z"}),n.a.createElement("path",{d:"M354.565 106.91a16.212 16.212 0 0 0-11.947-5.205h-36.267a16.216 16.216 0 0 0-11.947 5.205 15.19 15.19 0 0 0-4.011 11.52l6.4 79.616c.837 8.16 7.755 14.338 15.957 14.251h23.552c8.086.105 14.958-5.885 15.957-13.909l6.4-79.957a15.187 15.187 0 0 0-4.094-11.521zm-19.115 88.32h-21.675l-6.315-76.8h34.133l-6.143 76.8zM328.965 229.363h-8.96c-11.621.047-21.031 9.456-21.077 21.077v9.045c.047 11.621 9.456 21.031 21.077 21.077h9.045c11.654-.047 21.077-9.508 21.077-21.163v-8.96c-.047-11.653-9.508-21.076-21.162-21.076zm4.096 30.038a4.097 4.097 0 0 1-4.011 4.011h-8.96a4.097 4.097 0 0 1-4.011-4.011v-8.96a4.097 4.097 0 0 1 4.011-4.011h8.96a4.097 4.097 0 0 1 4.011 4.011v8.96z"}))},Re=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 512.002 512.002"},t),n.a.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),n.a.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),n.a.createElement("g",{fill:"#fdd834"},n.a.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),n.a.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),n.a.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),n.a.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),n.a.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),n.a.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),n.a.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),n.a.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),n.a.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),n.a.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))},Pe=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 512.224 512.224"},t),n.a.createElement("path",{d:"M321.71 427.573c-42.239-16.782-69.968-57.632-69.973-103.083.012-7.976.87-15.928 2.56-23.723a107.066 107.066 0 0 1 10.752-28.757 8.534 8.534 0 0 0-2.304-10.923 98.766 98.766 0 0 1-9.216-7.851 92.567 92.567 0 0 1-20.053-28.843 89.437 89.437 0 0 1-7.339-35.413 87.726 87.726 0 0 1 10.069-40.107c2.219-4.096 4.437-8.107 6.997-12.117a8.536 8.536 0 0 0 0-9.387l-17.835-28.416-17.067-27.392a24.148 24.148 0 0 0-7.906-7.906c-11.358-6.992-26.233-3.452-33.225 7.906l-50.176 80.64c-11.264 18.091-22.869 36.779-34.901 54.784l-3.413 5.035A698.15 698.15 0 0 0 39 275.935a158.81 158.81 0 0 0-17.664 72.96 160.509 160.509 0 0 0 13.056 63.659 165.287 165.287 0 0 0 88.661 86.784 167.511 167.511 0 0 0 64.683 12.885 167.509 167.509 0 0 0 64.683-12.8 164.36 164.36 0 0 0 52.907-34.901 162.072 162.072 0 0 0 20.309-24.149 8.532 8.532 0 0 0-3.925-12.8zm-28.331 24.917a147.644 147.644 0 0 1-47.445 31.147 152.92 152.92 0 0 1-116.395 0 148.222 148.222 0 0 1-79.445-77.824 143.623 143.623 0 0 1-11.691-56.917 141.656 141.656 0 0 1 15.701-65.195 688.246 688.246 0 0 1 38.741-62.293l3.413-5.035c12.203-18.176 23.893-37.035 35.243-55.211l50.176-80.725a6.995 6.995 0 0 1 6.059-3.413 7.082 7.082 0 0 1 6.144 3.84l17.067 27.392 14.933 24.064c-1.621 2.56-3.243 5.461-4.864 8.533a104.964 104.964 0 0 0-11.776 48.299 106.408 106.408 0 0 0 8.533 42.155 109.907 109.907 0 0 0 23.808 34.133 136.402 136.402 0 0 0 5.205 4.693 124.263 124.263 0 0 0-9.216 26.965 129.873 129.873 0 0 0-2.901 27.392c.04 48.518 27.402 92.877 70.741 114.688a143.263 143.263 0 0 1-12.031 13.312z"}),n.a.createElement("path",{d:"M100.014 442.592c-.058 0-.114-.008-.172-.009-.057.001-.113.009-.17.009h.342z"}),n.a.createElement("path",{d:"M105.646 428a112.632 112.632 0 0 1-24.576-35.755 109.311 109.311 0 0 1-8.533-43.349 107.531 107.531 0 0 1 11.861-49.408 8.533 8.533 0 0 0-3.889-12.306 8.533 8.533 0 0 0-11.216 4.455 124.582 124.582 0 0 0-13.824 57.259 126.296 126.296 0 0 0 10.24 50.091 129.715 129.715 0 0 0 28.331 41.131 8.535 8.535 0 0 0 5.802 2.466 8.527 8.527 0 0 0 5.853-2.515 8.534 8.534 0 0 0-.049-12.069zM419.161 140.597a456.86 456.86 0 0 0-26.453-42.155l-1.707-2.475C381.443 82.4 372.91 68.149 364.377 54.41L335.79 8.757a18.69 18.69 0 0 0-5.896-5.896c-8.742-5.486-20.277-2.846-25.763 5.896L275.63 54.41c-8.533 14.08-17.408 27.989-26.453 41.899-6.997 10.155-14.08 20.565-20.395 31.232-2.56 4.096-5.12 8.448-7.68 13.312a104.964 104.964 0 0 0-11.776 48.299 106.408 106.408 0 0 0 8.533 42.155 109.918 109.918 0 0 0 23.808 34.133 115.197 115.197 0 0 0 10.752 9.216 8.533 8.533 0 0 0 5.12 1.707l1.877-.256a8.532 8.532 0 0 0 5.717-4.267 110.25 110.25 0 0 1 42.155-43.435 112.64 112.64 0 0 1 106.581-2.389 8.533 8.533 0 0 0 12.117-4.95 105.041 105.041 0 0 0-6.825-80.469zm-7.083 65.707a129.795 129.795 0 0 0-113.408 7.253 127.305 127.305 0 0 0-43.349 41.387l-1.792-1.707a92.567 92.567 0 0 1-20.053-28.843 89.437 89.437 0 0 1-7.339-35.413 87.734 87.734 0 0 1 9.813-40.363c2.219-3.84 4.523-8.192 7.168-12.373 6.144-10.411 13.141-20.651 20.053-30.72 9.387-13.824 18.432-28.16 26.965-42.069l28.501-45.397a1.536 1.536 0 0 1 1.365-.768 1.535 1.535 0 0 1 1.365.768l27.904 45.312c8.619 13.909 17.579 28.245 26.965 42.069l1.707 2.475a443.768 443.768 0 0 1 25.6 40.533 87.883 87.883 0 0 1 8.535 57.856z"}),n.a.createElement("path",{d:"M277.337 228.746a58.176 58.176 0 0 1-12.629-18.091 54.768 54.768 0 0 1-4.437-21.675 53.425 53.425 0 0 1 5.973-24.576c1.707-3.157 3.499-6.4 5.632-9.728l.512-.853a8.533 8.533 0 0 0-2.894-12.242 8.533 8.533 0 0 0-11.613 3.282l-.512.768c-2.219 3.584-4.352 7.253-6.229 10.837a70.656 70.656 0 0 0-7.936 32.512 71.854 71.854 0 0 0 5.888 28.501 75.615 75.615 0 0 0 16.299 23.467 8.531 8.531 0 0 0 5.973 2.389v.085a8.533 8.533 0 0 0 5.973-14.676z"}),n.a.createElement("path",{d:"M421.721 210.826a129.961 129.961 0 0 0-123.051 2.731 127.233 127.233 0 0 0-48.64 50.176 124.24 124.24 0 0 0-12.459 33.365 129.873 129.873 0 0 0-2.901 27.392c0 70.692 57.308 128 128 128 47.899.071 91.829-26.606 113.855-69.14 32.508-62.775 7.971-140.016-54.804-172.524zM362.67 435.424c-61.267 0-110.933-49.667-110.933-110.933.006-8.004.864-15.985 2.56-23.808a107.209 107.209 0 0 1 10.752-28.843c19.355-35.894 56.842-58.275 97.621-58.283 61.267 0 110.933 49.666 110.933 110.933S423.937 435.424 362.67 435.424z"}),n.a.createElement("path",{d:"M392.707 244.704a16.296 16.296 0 0 0-11.947-5.205h-36.267a16.296 16.296 0 0 0-11.947 5.205 15.274 15.274 0 0 0-4.011 11.52l6.4 79.531c.796 8.194 7.725 14.419 15.957 14.336h23.552c8.086.105 14.958-5.885 15.957-13.909l6.4-79.957a15.26 15.26 0 0 0-4.094-11.521zm-19.114 88.32h-21.675l-6.315-76.8h34.133l-6.143 76.8zM367.107 367.157h-8.96c-11.621.047-21.031 9.456-21.077 21.077v9.045c.047 11.621 9.456 21.031 21.077 21.077h9.045c11.654-.047 21.077-9.508 21.077-21.163v-8.96c-.046-11.653-9.507-21.076-21.162-21.076zm4.096 30.037a4.097 4.097 0 0 1-4.011 4.011h-8.96a4.097 4.097 0 0 1-4.011-4.011v-8.96a4.097 4.097 0 0 1 4.011-4.011h8.96a4.097 4.097 0 0 1 4.011 4.011v8.96z"}))},Ve=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 512 512"},t),n.a.createElement("path",{d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),n.a.createElement("path",{d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))},Be=function(t){return n.a.createElement("svg",Object.assign({viewBox:"0 0 512 512"},t),n.a.createElement("path",{d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667C100.779 0 96 4.779 96 10.667v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h384c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-53.333 0H117.333V21.333h277.333v469.334z"}),n.a.createElement("path",{d:"M341.333 277.333c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32 14.358 32 32 32zm0-42.666c5.888 0 10.667 4.779 10.667 10.667S347.221 256 341.333 256s-10.667-4.779-10.667-10.667 4.779-10.666 10.667-10.666z"}))},_e=[x.e,x.f,x.g,x.h,x.i,x.j,x.k],Je=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name});i.id=s?s.id:"",(s=i.channelInfo.states.find(function(t){return t.id&&"SECOND"===t.name}))&&(i.secondary={id:s.id})}if(i.secondary&&i.props.objects[i.secondary.id]&&i.props.objects[i.secondary.id].common){var n=i.props.objects[i.secondary.id].common;n.role.match(/brightness/i)?(i.secondary.icon=function(t){if(t>i.secondary.max)return _e[_e.length-1];if(t0?"L":"M",t[0]," ",t[1]].join("")}).join(" "),"Z"].join("")}},{key:"rotatePoint",value:function(t,e,i){var s=e*Math.PI/180,n=t[0]-i[0],a=t[1]-i[1];return[n*Math.cos(s)-a*Math.sin(s)+i[0],n*Math.sin(s)+a*Math.cos(s)+i[1]]}},{key:"rotatePoints",value:function(t,e,i){var s=this;return t.map(function(t){return s.rotatePoint(t,e,i)})}},{key:"restrictToRange",value:function(t,e,i){return ti?i:t}},{key:"mapLeafPoint",value:function(t,e){return isNaN(t)?t:t*e}},{key:"render",value:function(){var t,e,i=this,s=400,a=s/2,o=s/30,r=s/8,l=this.props.maxValue-this.props.minValue;this.props.away?e=t=this.props.ambientTemperature:(t=Math.min(this.props.ambientTemperature,this.props.targetTemperature),e=Math.max(this.props.ambientTemperature,this.props.targetTemperature));for(var c=this.restrictToRange(Math.round((t-this.props.minValue)/l*this.props.numTicks),0,this.props.numTicks-1),u=this.restrictToRange(Math.round((e-this.props.minValue)/l*this.props.numTicks),0,this.props.numTicks-1),h=[[a-1,o],[a+1,o],[a+1,r],[a-1,r]],d=[[a-1.5,o],[a+1.5,o],[a+1.5,r+20],[a-1.5,r+20]],g=300/this.props.numTicks,M=[],p=0;p=c&&p<=u,j=n.a.createElement("path",{key:["tick-",p].join(""),d:this.pointsToPath(this.rotatePoints(m?d:h,p*g-150,[a,a])),style:{fill:y?"rgba(255, 255, 255, 0.8)":"rgba(255, 255, 255, 0.3)"}});M.push(j)}var N=a/5/100,L=["M",3,84,"c",24,17,51,18,73,-6,"C",100,52,100,22,100,4,"c",-13,15,-37,9,-70,19,"C",4,32,0,63,0,76,"c",6,-7,18,-17,33,-23,24,-9,34,-9,48,-20,-9,10,-20,16,-43,24,"C",22,63,8,78,3,84,"z"].map(function(t){return i.mapLeafPoint(t,N)}).join(" "),v=[a-100*N*.5,1.5*a],w=[a,o-(o-r)/2],b=this.restrictToRange(this.props.ambientTemperature,this.props.minValue,this.props.maxValue),f=300*(b-this.props.minValue)/l-150;b>this.props.targetTemperature?f+=8:f-=8;var T=this.rotatePoint(w,f,[a,a]),D=this.getStyles();return n.a.createElement("svg",{width:this.props.width,height:this.props.height,style:D.dial,viewBox:["0 0 ",s," ",s].join("")},n.a.createElement("circle",{cx:a,cy:a,r:a,style:D.circle}),n.a.createElement("g",null,M),n.a.createElement("text",{x:a,y:a,style:D.target},Math.round(this.props.targetTemperature)),n.a.createElement("text",{x:T[0],y:T[1],style:D.ambient},Math.round(this.props.ambientTemperature)),n.a.createElement("text",{x:a,y:a,style:D.away},"AWAY"),n.a.createElement("path",{d:L,style:D.leaf,transform:["translate(",v[0],",",v[1],")"].join("")}))}}]),e}(s.Component);Ke.defaultProps={height:"100%",width:"100%",numTicks:100,minValue:50,maxValue:85,away:!1,leaf:!1,ambientTemperature:74,targetTemperature:68,hvacMode:"off"};var Xe=Ke,qe=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).stateRx.value=t.startValue||0,i.stateRx.boostValue=t.boostValue,i.min=t.min,i.min>t.actualValue&&(i.min=t.actualValue),i.min>t.startValue&&(i.min=t.startValue),i.max=t.max,i.maxthis.svgCenterY?this.svgCenterY:this.svgCenterX,this.rect=this.svgControl.getBoundingClientRect(),this.svgControl.addEventListener("mousedown",this.onMouseDownBind,{passive:!1,capture:!0}),this.svgControl.addEventListener("touchstart",this.onMouseDownBind,{passive:!1,capture:!0})}},{key:"posToTemp",value:function(t,i){var s;return s=t<0?180-(s=180*Math.atan2(i,-t)/Math.PI):180*Math.atan2(i,t)/Math.PI,(s*=-1)<0&&(s+=360),(s=360-s)>60&&s<90&&(s=60),s>90&&s<120&&(s=120),s<90&&(s+=360),s-=120,s/=300,e.roundValue((this.max-this.min)*s+this.min)}},{key:"eventToValue",value:function(t,e){var i=t.touches?t.touches[t.touches.length-1].clientY:t.pageY,s=(t.touches?t.touches[t.touches.length-1].clientX:t.pageX)-this.rect.left-this.svgCenterX,n=i-this.rect.top-this.svgCenterY;if(e&&Math.sqrt(s*s+n*n)>1.1*this.svgRadius)return!1;return this.setState({value:this.posToTemp(s,n)}),!0}},{key:"onMouseMove",value:function(t){t.preventDefault(),t.stopPropagation(),this.eventToValue(t)}},{key:"onMouseDown",value:function(t){t.preventDefault(),t.stopPropagation(),this.eventToValue(t,!0)?(document.addEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.addEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0})):this.onClose()}},{key:"onMouseUp",value:function(t){t.preventDefault(),t.stopPropagation(),this.click=Date.now(),document.removeEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.removeEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0}),this.props.onValueChange&&this.props.onValueChange(this.state.value)}},{key:"onBoostMode",value:function(){this.props.onBoostToggle&&this.props.onBoostToggle(!this.state.boostValue),this.setState({boostValue:!this.state.boostValue})}},{key:"generateContent",value:function(){return n.a.createElement("div",{ref:this.refPanel,style:{width:"calc(100% - 1em)",height:"100%"}},null!==this.state.boostValue&&void 0!==this.state.boostValue?n.a.createElement(T.a,{variant:"contained",color:this.state.boostValue?"secondary":"",onClick:this.onBoostMode.bind(this),style:{top:"1.3em"},className:"boost-button"},W.t("Boost")):null,n.a.createElement(Xe,{minValue:this.min,maxValue:this.max,hvacMode:"heating",ambientTemperature:this.props.actualValue,targetTemperature:this.state.value}))}}],[{key:"roundValue",value:function(t,e){return e=e||.5,Math.round(t/e)*e}}]),e}(oe);qe.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string.isRequired,windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,objects:Nt.a.object,states:Nt.a.object,onValueChange:Nt.a.func,startValue:Nt.a.number.isRequired,actualValue:Nt.a.number},qe.buttonBoostStyle={position:"absolute",left:"calc(50% - 2em)",height:"1.3em",width:"4em",borderRadius:"1em",background:"white",border:"1px solid #b5b5b5",paddingTop:"0.1em",fontSize:"2em",textAlign:"center",cursor:"pointer",boxShadow:"0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)"};var $e=qe,ti=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});s&&i.props.objects[s.id]&&i.props.objects[s.id].common?i.id=s.id:i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name}),i.actualId=s?s.id:i.id,s=i.channelInfo.states.find(function(t){return t.id&&"BOOST"===t.name}),i.boostId=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"HUMIDITY"===t.name}),i.humidityId=s&&s.id}if(i.humidityId){var n=i.props.objects[i.humidityId]&&i.props.objects[i.humidityId].common;i.humUnit=n.unit||"%"}if(i.id){var a=i.props.objects[i.id]&&i.props.objects[i.id].common;i.max=a.max,void 0===i.max&&(i.max=30),i.max=parseFloat(i.max),i.min=a.min,void 0===i.min&&(i.min=12),i.min=parseFloat(i.min),i.unit=a.unit||"\xb0C","C"===i.unit?i.unit="\xb0C":"C\xb0"===i.unit&&(i.unit="\xb0C"),"F"===i.unit?i.unit="\xb0F":"F\xb0"===i.unit&&(i.unit="\xb0F"),i.props.tile.setState({isPointer:!0})}return i.unit=i.unit||"\xb0C",i.stateRx.showDialog=!1,i.props.tile.setState({state:!0}),i.key="smart-thermostat-"+i.id+"-",i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){var s={};this.actualId===t||t===this.id||t===this.humidityId?(s[t]="number"===typeof i.val?i.val:parseFloat(i.val),isNaN(s[t])&&(s[t]=null),this.setState(s)):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"setValue",value:function(t){console.log("Control "+this.id+" = "+t);var e={};e[this.id]=t,this.setState(e),this.props.onControl(this.id,t)}},{key:"getIcon",value:function(){var t;return t=this.state.settings.useDefaultIcon?n.a.createElement("img",{alt:"icon",src:this.getDefaultIcon(),style:{height:"100%",zIndex:1}}):this.state.settings.icon?n.a.createElement("img",{alt:"icon",src:this.state.settings.icon,style:{height:"100%",zIndex:1}}):n.a.createElement(He,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}}),n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,{},{left:"0.5rem"}),className:"tile-icon"},t)}},{key:"getStateText",value:function(){return null===this.state[this.id]?"?":this.state[this.id]+this.unit}},{key:"getSecondaryDiv",value:function(){return this.actualId!==this.id||this.humidityId?n.a.createElement("div",{key:this.key+"tile-secondary",className:"tile-text-second",style:Object.assign({},Y.tile.secondary.div,{top:"1rem"}),title:W.t("Environment values")},this.actualId!==this.id?[n.a.createElement(ve,{key:this.key+"tile-secondary-icon-0",style:Object.assign({},Y.tile.secondary.icon)}),n.a.createElement("span",{key:this.key+"tile-secondary-text-0",style:Y.tile.secondary.text},null===this.state[this.actualId]?"?":this.state[this.actualId]+this.unit),n.a.createElement("br",{key:this.key+"tile-secondary-br-0"})]:null,this.humidityId?[n.a.createElement(we,{key:this.key+"tile-secondary-icon-1",style:Object.assign({},Y.tile.secondary.icon)}),n.a.createElement("span",{key:this.key+"tile-secondary-text-1",style:Y.tile.secondary.text},null===this.state[this.humidityId]?"?":this.state[this.humidityId]+this.humUnit)]:null):null}},{key:"onBoostToggle",value:function(t){void 0===t&&(t=!this.state[this.boostId]);var e={};e[this.boostId]=t,this.setState(e),this.props.onControl(this.boostId,t)}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(this.id,!0),this.getSecondaryDiv(),this.state.showDialog?n.a.createElement($e,{key:this.key+"dialog",dialogKey:this.key+"dialog",startValue:this.state[this.id],windowWidth:this.props.windowWidth,actualValue:this.state[this.actualId],boostValue:this.boostId?this.state[this.boostId]:null,onBoostToggle:this.onBoostToggle.bind(this),min:this.min,max:this.max,onValueChange:this.setValue.bind(this),onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue),ei=function(t){return n.a.createElement("svg",Object.assign({width:361,height:361,viewBox:"0 0 361 361"},t),n.a.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.a.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.a.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))},ii={closed:[/close/i],tilted:[/tilt/i],opened:[/open/i]},si=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name});i.id=s?s.id:""}return i.values={closed:0,tilted:1,opened:2},i.id&&i.props.objects[i.id]&&i.props.objects[i.id].common&&i.props.objects[i.id].common.states&&function(){var t=i.props.objects[i.id].common.states,e=function(e){if(t.hasOwnProperty(e))for(var s in ii)if(ii.hasOwnProperty(s)&&void 0!==ii[s].find(function(i){return i.test(t[e])})){i.values[s]=parseInt(e,10);break}};for(var s in t)e(s)}(),i.props.tile.setState({isPointer:!1}),i.key="smart-window-"+i.id+"-",i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){var s,n=this;if("number"!==typeof i.val){var a=parseInt(i.val,10);if(a.toString()===a)s=a;else if(null!==i.val&&void 0!==i.val){for(var o in s=i.val.toString(),ii)if(ii.hasOwnProperty(o)&&ii[o].find(function(t){return t.test(s)})){s=o;break}}else i.val=0}else s=i.val;if("number"===typeof s)for(var r in this.values)if(this.values.hasOwnProperty(r)&&this.values[r]===s){s=r;break}if("number"===typeof s&&(s="closed"),t===this.id){var l={};l[t]=s,this.setState(l),(!this.props.tile.state.state&&"closed"!==s||this.props.tile.state.state&&"closed"===s)&&this.props.tile.setState({state:"closed"!==s})}else Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i);if(this.hideOnFalse){var c=!1;if(this.indicators)c=Object.keys(this.indicators).filter(function(t){return n.indicators[t]}).find(function(t){return n.state[n.indicators[t]]});this.props.tile.setState({visible:this.state[this.id]||c})}}},{key:"getIcon",value:function(){var t;switch(this.state[this.id]){case"opened":t=xe;break;case"tilted":t=ei;break;case"closed":default:t=Ae}var e;return e=this.state.settings.useDefaultIcon?n.a.createElement("img",{alt:"icon",src:this.getDefaultIcon(),style:{width:"100%",zIndex:1}}):this.state.settings.icon?n.a.createElement("img",{alt:"icon",src:this.state.settings.icon,style:{height:"100%",zIndex:1}}):n.a.createElement(t,{width:"100%",style:{zIndex:1}}),n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,{width:60,height:60,top:"0.2rem",left:"0.2rem"}),className:"tile-icon"},e)}},{key:"getStateText",value:function(){return this.state[this.id]?W.t(this.state[this.id]):W.t("unknown")}},{key:"render",value:function(){return this.wrapContent(this.getStandardContent(this.actualId))}}]),e}(ue),ni={icon:{fontSize:32}},ai=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});i.id=s?s.id:"",s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name}),i.actualId=s?s.id:i.id,s=i.channelInfo.states.find(function(t){return t.id&&"OPEN"===t.name}),i.openId=s&&s.id}return i.props.tile.setState({isPointer:!0}),i.stateRx.dialog=!1,i.key="smart-lock-"+i.id+"-",i.iconColorOn=Y.palette.lampOn,i.iconColorOff="",i.textOn="opened",i.textOff="closed",i.doubleState=!0,i.props.tile.registerHandler("onClick",i.onTileClick.bind(Object(d.a)(Object(d.a)(i)))),i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){if(t===this.actualId){var s="number"===typeof i.val?!!i.val:!0===i.val||"true"===i.val||"1"===i.val||"on"===i.val||"ON"===i.val,n={};n[t]=s,this.showTime&&i.lc?this.lastChange=i.lc:this.lastChange=0,this.setState(n),this.props.tile.setState({state:s})}else Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getIcon",value:function(){var t,e="1"===this.state[this.id]||1===this.state[this.id]||!0===this.state[this.id]||"true"===this.state[this.id]||"on"===this.state[this.id]||"ON"===this.state[this.id],i=e?this.iconColorOn:this.iconColorOff,s=i?{color:i}:{};if(this.state.settings.useDefaultIcon)t=n.a.createElement("img",{src:this.getDefaultIcon(),alt:"icon",style:{height:"100%",zIndex:1}});else if(this.state.settings.icon)t=n.a.createElement("img",{alt:"icon",src:e?this.state.settings.icon:this.state.settings.iconOff||this.state.settings.icon,style:{height:"100%",zIndex:1}});else{var a=e?x.G:x.F;t=n.a.createElement(a,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}})}return n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,s),className:"tile-icon"},t)}},{key:"getStateText",value:function(){var t=this.state[this.id];return void 0!==t&&null!==t&&this.lastChange&&this.showTime?n.a.createElement(ee.a,{style:{fontSize:12},date:this.lastChange,interval:15,fromNow:!0,locale:W.getLanguage()}):"1"===this.state[this.id]||1===this.state[this.id]||!0===this.state[this.id]||"true"===this.state[this.id]||"on"===this.state[this.id]||"ON"===this.state[this.id]?W.t(this.textOn):W.t(this.textOff)}},{key:"onTileClick",value:function(){this.setState({dialog:!0})}},{key:"onAction",value:function(t){var e=this;switch(t){case"openLock":this.props.onControl(this.id,!0);break;case"closeLock":this.props.onControl(this.id,!1);break;case"openDoor":this.props.onControl(this.openId,!0)}setTimeout(function(){e.setState({dialog:!1})},0)}},{key:"getDialog",value:function(){var t=this;return n.a.createElement(v.a,{key:this.key+"tile-dialog",style:{zIndex:2101},open:this.state.dialog,"aria-labelledby":W.t("Lock state"),"aria-describedby":W.t("Select action!"),onEscapeKeyDown:function(){return t.setState({dialog:!1})}},n.a.createElement(E.a,{id:"alert-dialog-title",style:{textAlign:"center"}},W.t("Select action"),n.a.createElement(T.a,{style:ni.icon,onClick:function(){return t.onAction("close")}},n.a.createElement(x.o,null))),n.a.createElement(S.a,null,n.a.createElement(T.a,{style:ni.icon,title:W.t("Open lock"),onClick:function(){return t.onAction("openLock")},color:"primary"},n.a.createElement(x.G,null)),n.a.createElement(T.a,{style:ni.icon,title:W.t("Close lock"),onClick:function(){return t.onAction("closeLock")},color:"secondary",autoFocus:!0},n.a.createElement(x.F,null)),this.openId?n.a.createElement(T.a,{style:ni.icon,title:W.t("Open door"),onClick:function(){return t.onAction("openDoor")},color:"secondary"},n.a.createElement(Ve,{width:32,height:32})):null))}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(this.actualId),this.state.dialog?this.getDialog():null])}}]),e}(ue),oi=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"ALIVE"===t.name});i.id=s?s.id:"";var n=i.id.split(".");if(n.pop(),i.instanceNumber=n[n.length-1],i.instanceId=n.join("."),"instance"!==i.props.objects[i.instanceId].type)return i.id="",i.componentReady(),Object(c.a)(i);i.props.objects[i.instanceId].common.onlyWWW||(s=i.channelInfo.states.find(function(t){return t.id&&"UNREACH"===t.name}),i.connectedId=s?s.id:i.id)}return i.props.tile.setState({isPointer:!1}),i.key="smart-instance-"+i.id+"-",i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){var s={},n="number"===typeof i.val?!!i.val:!0===i.val||"true"===i.val||"1"===i.val||"on"===i.val||"ON"===i.val;t===this.id?(s[t]=n,this.connectedId&&(s[this.connectedId]=!!n&&!this.connectedState),this.setState(s),this.props.tile.setState({state:n})):t===this.connectedId?(this.connectedState=i.val,this.state[this.id]?i.val=!i.val:i.val=!1,Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"toggle",value:function(){this.props.onControl(this.instanceId,!this.props.objects[this.instanceId].common.enabled,"common.enabled")}},{key:"onTileClick",value:function(){this.toggle()}},{key:"getIcon",value:function(){var t="/"+this.props.objects[this.instanceId].common.name+".admin/"+this.props.objects[this.instanceId].common.icon;return n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon),className:"tile-icon"},n.a.createElement("img",{height:"100%",src:t,alt:"i"}))}},{key:"getStateText",value:function(){var t=this.props.objects[this.instanceId].common;return t.onlyWWW?t.enabled?W.t("enabled"):W.t("disabled"):this.state[this.id]?W.t("running"):W.t("stopped")}},{key:"getSecondaryDiv",value:function(){var t,e,i;return this.props.objects[this.instanceId].common.enabled?(t=x.L,e=W.t("disable adapter"),i="#90ee90"):(t=x.N,e=W.t("enable adapter"),i="#f99"),n.a.createElement("div",{key:this.key+"tile-secondary",className:"tile-text-second",style:Y.tile.secondary.button,title:e},n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:this.toggle.bind(this),style:{background:i,boxShadow:"none"},"aria-label":e},n.a.createElement(t,null)))}},{key:"render",value:function(){if("instance"!==this.props.objects[this.instanceId].type)return null;var t=Object.assign({},this.state[this.id]?Y.tile.tileStateOn:Y.tile.tileStateOff,{color:this.state[this.id]?Y.palette.instanceRunning:Y.palette.instanceStopped,position:"absolute",bottom:0});return this.wrapContent([n.a.createElement("div",{key:this.key+"tile-icon",className:"tile-icon"},this.getIcon()),this.getSecondaryDiv(),n.a.createElement("div",{key:this.key+"tile-text",className:"tile-text",style:Object.assign({},Y.tile.tileText,{minHeight:56})},n.a.createElement("div",{className:"tile-channel-name",style:Object.assign({},Y.tile.tileName,this.state.nameStyle)},this.state.settings.name),n.a.createElement("div",{className:"tile-state-text",style:Object.assign({},Y.tile.tileState,t)},this.getStateText()))])}}]),e}(ue),ri=i(25),li=48,ci=48,ui=365,hi=88,di=48,gi=48,Mi=0,pi=1,mi=2,yi={info:{div:{zIndex:1,background:"rgba(0,0,0,0.55)",position:"absolute",bottom:100,width:"calc(100% + 1em)",left:"-0.5em",padding:"1.2em"},artist:{fontSize:14,fontWeight:"normal",color:"white"},album:{fontSize:16,fontWeight:"bold",color:"white"},title:{fontSize:14,fontWeight:"normal",color:"white"}},control:{div:{zIndex:1,background:"rgba(255,255,255,0.9)",position:"absolute",width:"calc(100% + 1em)",bottom:48,left:"-0.5em",height:di,textAlign:"center",lineHeight:"48px",verticalAlign:"middle"},prev:{height:24,width:24,marginLeft:3,minHeight:24,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)"},next:{height:24,width:24,marginLeft:3,minHeight:24,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)"},stop:{height:24,width:24,marginLeft:3,minHeight:24,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)"},play:{},pause:{background:"#40EE40"},repeat:{position:"absolute",top:5,right:54,height:24,width:24,minHeight:24,marginLeft:3,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)",float:"right"},shuffle:{position:"absolute",top:5,right:12,height:24,width:24,minHeight:24,marginLeft:3,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)",float:"right"},name:{position:"absolute",left:"1.2em",bottom:2,fontSize:14,color:"rgba(0,0,0,0.6)"}},time:{div:{zIndex:1,background:"rgba(255,255,255,0.9)",position:"absolute",width:"calc(100% + 1em)",bottom:0,left:"-0.5em",height:gi,lineHeight:"48px",textAlign:"center",verticalAlign:"middle",color:"rgba(0,0,0,0.9)"},elapsed:{display:"inline-block",float:"left",paddingLeft:"1.2em"},slider:{display:"inline-block",width:"calc(100% - 10em)",verticalAlign:"middle"},duration:{display:"inline-block",float:"right",paddingRight:"1.2em"}},volume:{div:{zIndex:1,background:"rgba(255,255,255,0.9)",position:"absolute",width:"calc(100% + 1em)",bottom:0,left:"-0.5em",height:gi,lineHeight:"48px",textAlign:"center",verticalAlign:"middle",color:"rgba(0,0,0,0.9)"},mute:{display:"inline-block",position:"absolute",left:"1.5em",top:4,boxShadow:"none"},slider:{display:"inline-block",width:"calc(100% - 10em)",verticalAlign:"middle"}},cover:{div:{position:"absolute",top:48,width:"calc(100% - 2em)",height:"calc(100% - 2em)",maxHeight:ui,zIndex:0,backgroundSize:"100% auto",backgroundRepeat:"no-repeat",backgroundPosition:"center"},img:{width:"100%",height:"auto"}},header:{div:{position:"absolute",fontSize:16,height:li-16,zIndex:1,paddingTop:16}}},ji=function(t){function e(t){var i;for(var s in Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids=i.props.ids,i.ids)if(i.ids.hasOwnProperty(s)&&"buttons"!==s)for(var n in i.ids[s])i.ids[s].hasOwnProperty(n)&&i.ids[s][n]&&(i.subscribes=i.subscribes||[],i.subscribes.push(i.ids[s][n]));var a=0;i.divs={header:{height:li,position:"top",visible:!0},volume:{height:ci,position:"top",visible:i.ids.volume.set},cover:{height:ui,position:"top",visible:i.ids.info.cover},info:{height:hi,position:"bottom",visible:i.ids.info.artist||i.ids.info.album||i.ids.info.title},control:{height:di,position:"bottom",visible:!0},time:{height:gi,position:"bottom",visible:i.ids.control.elapsed||i.ids.control.duration||i.ids.control.seek}};var o=0,l=0;for(var h in i.divs)i.divs.hasOwnProperty(h)&&i.divs[h].visible&&(a+=i.divs[h].height,"top"===i.divs[h].position&&(i.divs[h].points=o,o+=i.divs[h].height));for(var d=Object.keys(i.divs),g=d.length-1;g>=0;g--)i.divs[d[g]].visible&&"bottom"===i.divs[d[g]].position&&(i.divs[d[g]].points=l,l+=i.divs[d[g]].height);for(var M in i.divs)i.divs.hasOwnProperty(M)&&i.divs[M].visible&&(i.divs[M].style=Object.assign({},yi[M].div,Object(ri.a)({},i.divs[M].position,i.divs[M].points)));i.dialogStyle={maxHeight:a};var p=[];return i.props.enumNames.forEach(function(t){return-1===p.indexOf(t)&&p.push(t)}),-1===p.indexOf(i.props.name)&&p.push(i.props.name),i.name=p.join(" / "),i.collectState=null,i.collectTimer=null,i.volumeTimer=null,i.seekTimer=null,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"onSeek",value:function(t){var e=this;t!==this.state[this.ids.control.seek]&&(this.setState(Object(ri.a)({},this.ids.control.seek,t)),this.seekTimer&&clearTimeout(this.seekTimer),this.seekTimer=setTimeout(function(t){e.seekTimer=null,e.props.onControl(e.ids.control.seek,t)},400,t))}},{key:"onVolume",value:function(t){var e=this;t!==this.state[this.ids.volume.actual]&&(this.setState(Object(ri.a)({},this.ids.volume.actual,t)),this.volumeTimer&&clearTimeout(this.volumeTimer),this.volumeTimer=setTimeout(function(t){e.volumeTimer=null,e.props.onControl(e.ids.volume.set,t)},400,t))}},{key:"onToggleMute",value:function(){this.props.onControl(this.ids.volume.mute,!this.state[this.ids.volume.mute])}},{key:"onShuffle",value:function(){this.props.onControl(this.ids.mode.shuffle,!this.state[this.ids.mode.shuffle])}},{key:"onRepeat",value:function(){this.props.onControl(this.ids.mode.repeat,(this.state[this.ids.mode.repeat]+1)%3)}},{key:"onUpdateTimer",value:function(){this.collectTimer=null,this.collectState&&(this.setState(this.collectState),this.collectState=null)}},{key:"updateState",value:function(t,i){var s=this;if(t===this.ids.info.cover){this.collectState=this.collectState||{};var n=i&&i.val;n&&(n.match(/\?.+$/)?n+="&ts="+Date.now():n+="?ts="+Date.now()),this.setState(Object(ri.a)({},t,n))}else if(t===this.ids.control.elapsed||t===this.ids.control.seek||t===this.ids.control.duration||t===this.ids.volume.set||t===this.ids.volume.actual)this.collectState=this.collectState||{},this.collectState[t]=Math.round(parseFloat(i.val)),this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200);else if(t===this.ids.info.album||t===this.ids.info.artist||t===this.ids.info.title)this.collectState=this.collectState||{},this.collectState[t]=i.val,this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200);else if(t===this.ids.volume.mute||t===this.ids.mode.shuffle)this.collectState=this.collectState||{},this.collectState[t]="true"===i.val||!0===i.val||"mute"===i.val||"shuffle"===i.val||"muted"===i.val||1===i.val||"1"===i.val,this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200);else if(t===this.ids.mode.repeat){var a;this.collectState=this.collectState||{},a=!0===i.val||"true"===i.val?pi:"false"===i.val||!1===i.val?Mi:"all"===i.val||"ALL"===i.val||1===i.val||"1"===i.val?pi:"one"===i.val||"ONE"===i.val||2===i.val||"2"===i.val?mi:Mi,this.collectState[t]=a,this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200)}else if(this.ids.control.state===t&&i.ack){this.collectState=this.collectState||{};var o="true"===i.val||!0===i.val||"PLAY"===i.val||"play"===i.val||1===i.val||"1"===i.val;this.collectState.stop="STOP"===i.val||"stop"===i.val||"stopped"===i.val||"STOPPED"===i.val,this.collectState=this.collectState||{},this.collectState[t]=o,i.ack&&this.state.executing&&(this.collectState.executing=!1),this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200)}else Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"onButton",value:function(t){this.props.onControl(t,!0)}},{key:"getVolumeSlider",value:function(){var t=this;return this.ids.volume.set?n.a.createElement(fe.a,{value:this.state[this.ids.volume.actual]||0,style:yi.volume.slider,onChange:function(e,i){return t.onVolume(i)}}):this.ids.volume.actual?n.a.createElement(fe.a,{value:this.state[this.ids.volume.actual]||0,style:yi.volume.slider,disabled:!0}):null}},{key:"getMute",value:function(){return this.ids.volume.mute?(this.state[this.ids.volume.mute]?(t=x.fb,e=W.t("mute"),i="#f50057",s="white",a=W.t("muted")):(t=x.gb,e=W.t("unmute"),i="inherit",s="black",a=W.t("unmuted")),n.a.createElement(T.a,{variant:"fab",mini:!0,title:a,onClick:this.onToggleMute.bind(this),style:Object.assign({},yi.volume.mute,{background:i,color:s}),"aria-label":e},n.a.createElement(t,null))):null;var t,e,i,s,a}},{key:"getVolumeDiv",value:function(){return this.divs.volume.visible?n.a.createElement("div",{key:this.key+"tile-volume",style:this.divs.volume.style},this.getMute(),this.getVolumeSlider()):null}},{key:"getSlider",value:function(){var t=this;if(this.ids.control.seek)return n.a.createElement(fe.a,{value:this.state[this.ids.control.seek]||0,style:yi.time.slider,onChange:function(e,i){return t.onSeek(i)}});if(this.ids.control.elapsed&&this.ids.control.duration&&this.state[this.ids.control.duration]){var e=Math.round(this.state[this.ids.control.elapsed]/this.state[this.ids.control.duration]*100);return n.a.createElement(fe.a,{value:e||0,disabled:!0,style:yi.time.slider})}return null}},{key:"getTimeDiv",value:function(){return this.divs.time.visible?n.a.createElement("div",{key:this.key+"tile-time",style:this.divs.time.style},this.ids.control.elapsed?n.a.createElement("div",{style:yi.time.elapsed},_.getTimeString(this.state[this.ids.control.elapsed])):null,this.getSlider(),this.ids.control.duration?n.a.createElement("div",{style:yi.time.duration},_.getTimeString(this.state[this.ids.control.duration])):null):null}},{key:"getRepeat",value:function(){var t,e,i,s=this;return this.ids.mode.repeat?(this.state[this.ids.mode.repeat]?t=Object.assign({},yi.control.repeat,{background:"rgb(64, 238, 64)",color:"white"}):(t=yi.control.repeat,e=W.t("No repeat")),this.state[this.ids.mode.repeat]===Mi||this.state[this.ids.mode.repeat]===pi?(e=e||W.t("Repeat mode: all"),i=x.R):(i=x.S,e=e||W.t("Repeat mode: one")),n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return s.onRepeat()},style:t,title:e,"aria-label":"repeat"},n.a.createElement(i,null))):null}},{key:"getShuffle",value:function(){var t,e=this;return this.ids.mode.shuffle?(t=this.state[this.ids.mode.shuffle]?Object.assign({},yi.control.shuffle,{background:"#b6b6f3"}):yi.control.shuffle,n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return e.onShuffle()},title:W.t("Shuffle mode"),style:t,"aria-label":"shuffle"},n.a.createElement(x.W,null))):null}},{key:"getControlsDiv",value:function(){var t=this,e=this.state[this.ids.control.state];return n.a.createElement("div",{key:this.key+"tile-control",style:this.divs.control.style},this.ids.buttons.prev?n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.ids.buttons.prev)},style:yi.control.prev,"aria-label":"prev"},n.a.createElement(x.Z,null)):null,n.a.createElement(T.a,{variant:"fab",mini:!0,color:e?"primary":"secondary",onClick:function(){return t.onButton(t.state[t.ids.control.state]?t.ids.buttons.pause:t.ids.buttons.play)},style:e?yi.control.pause:yi.control.play,"aria-label":"play pause"},e?n.a.createElement(x.L,null):n.a.createElement(x.N,null)),this.props.settings.showStop&&this.ids.buttons.stop?n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.ids.buttons.stop)},style:Object.assign({},yi.control.stop,this.state.stop?{color:"red"}:{}),"aria-label":"stop"},n.a.createElement(x.ab,null)):null,this.ids.buttons.next?n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.ids.buttons.next)},style:yi.control.prev,"aria-label":"next"},n.a.createElement(x.Y,null)):null,this.getShuffle(),this.getRepeat())}},{key:"getInfoDiv",value:function(){return this.divs.info.visible?n.a.createElement("div",{key:this.key+"tile-info",style:this.divs.info.style},this.ids.info.artist&&this.state[this.ids.info.artist]?n.a.createElement("div",{style:yi.info.artist},this.state[this.ids.info.artist]):null,this.ids.info.album&&this.state[this.ids.info.album]?n.a.createElement("div",{style:yi.info.album},this.state[this.ids.info.album]):null,this.ids.info.title&&this.state[this.ids.info.title]?n.a.createElement("div",{style:yi.info.title},this.state[this.ids.info.title]):null,this.ids.info.title&&this.state[this.ids.info.title]?n.a.createElement("div",{style:yi.info.title},this.state[this.ids.info.title]):null):null}},{key:"getCoverDiv",value:function(){if(!this.divs.cover.visible)return null;if(this.state[this.ids.info.cover]){var t=Object.assign({},this.divs.cover.style,{backgroundImage:"url("+this.state[this.ids.info.cover]+")"});return n.a.createElement("div",{style:t})}return n.a.createElement("div",{style:this.divs.cover.style},n.a.createElement("div",{key:this.key+"icon",style:yi.cover.img},n.a.createElement(x.K,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}})))}},{key:"getHeaderDiv",value:function(){return this.divs.header.visible?n.a.createElement("div",{style:this.divs.header.style},this.name):null}},{key:"generateContent",value:function(){return[this.getHeaderDiv(),this.getVolumeDiv(),this.getCoverDiv(),this.getInfoDiv(),this.getTimeDiv(),this.getControlsDiv()]}}]),e}(oe);ji.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string.isRequired,windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,objects:Nt.a.object,states:Nt.a.object,onCollectIds:Nt.a.func,enumNames:Nt.a.array,onControl:Nt.a.func,ids:Nt.a.object.isRequired,settings:Nt.a.object};var Ni=ji,Li={info:{div:{background:"rgba(0,0,0,0.55)",position:"absolute",bottom:50,width:"calc(100% + 1rem)",left:"-0.5rem",paddingLeft:"1.2rem"},name:{fontSize:10,fontWeight:"normal",color:"white"},artist:{fontSize:12,fontWeight:"normal",color:"white"},album:{fontSize:16,fontWeight:"normal",color:"white"},title:{fontSize:12,fontWeight:"normal",color:"white"}},control:{div:{background:"rgba(255,255,255,0.9)",position:"absolute",width:"calc(100% + 1rem)",bottom:0,left:"-0.5rem",height:48,textAlign:"center",lineHeight:"48px",verticalAlign:"middle"},prev:{height:24,width:24,marginLeft:3,minHeight:24,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)"},next:{height:24,width:24,marginLeft:3,minHeight:24,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)"},stop:{height:24,width:24,minHeight:24,marginLeft:3,verticalAlign:"middle",boxShadow:"none",background:"rgba(255,255,255,1)"},play:{},pause:{background:"#40EE40"},name:{position:"absolute",left:"1.2rem",bottom:2,fontSize:14,color:"rgba(0,0,0,0.6)"}},time:{div:{},elapsed:{},duration:{},slider:{}}},vi=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids={info:{cover:null,artist:null,album:null,title:null},buttons:{play:null,pause:null,stop:null,prev:null,next:null},control:{state:null,elapsed:null,duration:null,seek:null},volume:{set:null,actual:null,mute:null},mode:{repeat:null,shuffle:null}},i.channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"STATE"===t.name});s?(i.id=s.id,i.ids.control.state=s.id):i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"COVER"===t.name}),i.ids.info.cover=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"ARTIST"===t.name}),i.ids.info.artist=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"ALBUM"===t.name}),i.ids.info.album=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"TITLE"===t.name}),i.ids.info.title=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"PLAY"===t.name}),i.ids.buttons.play=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"PAUSE"===t.name}),i.ids.buttons.pause=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"STOP"===t.name}),i.ids.buttons.stop=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"NEXT"===t.name}),i.ids.buttons.next=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"PREV"===t.name}),i.ids.buttons.prev=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"DURATION"===t.name}),i.ids.control.duration=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"SEEK"===t.name}),i.ids.control.seek=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"ELAPSED"===t.name}),i.ids.control.elapsed=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"VOLUME"===t.name}),i.ids.volume.set=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"VOLUME_ACTUAL"===t.name}),i.ids.volume.actual=s?s.id:i.ids.volume.set,s=i.channelInfo.states.find(function(t){return t.id&&"MUTE"===t.name}),i.ids.volume.mute=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"SHUFFLE"===t.name}),i.ids.mode.shuffle=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"REPEAT"===t.name}),i.ids.mode.repeat=s&&s.id}return i.width=2,i.props.tile.setState({isPointer:!0}),i.key="smart-switch-"+i.id+"-",i.doubleState=!0,i.stateRx.showDialog=!1,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){if(t===this.ids.info.cover){var s=i&&i.val;s&&(s.match(/\?.+$/)?s+="&ts="+Date.now():s+="?ts="+Date.now()),this.props.tile.setBackgroundImage(s||""),this.setState(Object(ri.a)({},t,s))}else if(t===this.ids.info.album)this.setState(Object(ri.a)({},t,i.val));else if(t===this.ids.info.artist)this.setState(Object(ri.a)({},t,i.val));else if(t===this.ids.info.title)this.setState(Object(ri.a)({},t,i.val));else if(this.id===t&&i.ack){var n="true"===i.val||!0===i.val||"PLAY"===i.val||"play"===i.val||1===i.val||"1"===i.val;this.setState(Object(ri.a)({},t,n)),i.ack&&this.state.executing&&this.setState({executing:!1}),this.props.tile.setState({state:n})}else Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getIcon",value:function(){return this.state[this.ids.info.cover]?null:(t=this.state.settings.useDefaultIcon?n.a.createElement("img",{alt:"icon",src:this.getDefaultIcon(),style:{height:"100%"}}):n.a.createElement(x.K,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}}),n.a.createElement("div",{key:this.key+"icon",style:Y.tile.tileIcon,className:"tile-icon"},t));var t}},{key:"onButton",value:function(t){this.props.onControl(t,!0)}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.forEach(function(e,i){if("doubleSize"===e.name)return t.splice(i,1),!1}),this.ids.buttons.stop&&t.unshift({name:"showStop",value:this.state.settings.showStop||!1,type:"boolean"}),t}},{key:"getControlsDiv",value:function(){var t=this;return n.a.createElement("div",{key:this.key+"tile-control",style:Li.control.div},n.a.createElement("div",{style:Li.control.name,title:this.state.settings.name},this.state.settings.name),this.ids.buttons.prev?n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.ids.buttons.prev)},style:Li.control.prev,"aria-label":"prev"},n.a.createElement(x.Z,null)):null,n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.state[t.id]?t.ids.buttons.pause:t.ids.buttons.play)},style:this.state[this.id]?Li.control.pause:Li.control.play,"aria-label":"play pause"},this.state[this.id]?n.a.createElement(x.L,null):n.a.createElement(x.N,null)),this.state.settings.showStop&&this.ids.buttons.stop?n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.ids.buttons.stop)},style:Li.control.stop,"aria-label":"stop"},n.a.createElement(x.ab,null)):null,this.ids.buttons.next?n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:function(){return t.onButton(t.ids.buttons.next)},style:Li.control.prev,"aria-label":"netx"},n.a.createElement(x.Y,null)):null)}},{key:"getInfoDiv",value:function(){return n.a.createElement("div",{key:this.key+"tile-info",style:Li.info.div},this.ids.info.artist&&this.state[this.ids.info.artist]?n.a.createElement("div",{style:Li.info.artist},this.state[this.ids.info.artist]):null,this.ids.info.album&&this.state[this.ids.info.album]?n.a.createElement("div",{style:Li.info.album},this.state[this.ids.info.album]):null,this.ids.info.title&&this.state[this.ids.info.title]?n.a.createElement("div",{style:Li.info.title},this.state[this.ids.info.title]):null)}},{key:"render",value:function(){return this.wrapContent([n.a.createElement("div",{key:this.key+"tile-icon",className:"tile-icon"},this.getIcon()),this.getInfoDiv(),this.getControlsDiv(),this.state.showDialog?n.a.createElement(Ni,{dialogKey:this.key+"dialog",key:this.key+"dialog",name:this.state.settings.name,enumNames:this.props.enumNames,settings:this.state.settings,onCollectIds:this.props.onCollectIds,ids:this.ids,windowWidth:this.props.windowWidth,onControl:this.props.onControl,onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue),wi={backgroundColor:"#a8d8f8",boxShadow:"0 0 0.3em 0.08em #79c3f4"},bi={color:"#ffa7a7",textShadow:"0 0 0.3em rgba(23,23,23)"},fi={color:"#a8d8f8",textShadow:"0 0 0.3em rgba(23,23,23)"},Ti=function(t){function e(t){var i;Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).type=i.props.type||("number"===typeof i.props.value?"number":"text"),i.ticksNumber=i.props.ticksNumber||28,i.angleStart=null===i.props.angleStart||void 0===i.props.angleStart?135:i.props.angleStart,i.angleEnd=null===i.props.angleEnd||void 0===i.props.angleEnd?45:i.props.angleEnd,i.angleSize=i.angleEnd-i.angleStart,i.angleSize<0&&(i.angleSize+=360),i.min=i.props.min||0,i.max=i.props.max||100,i.refKnob=n.a.createRef(),i.onMouseMoveBind=i.onMouseMove.bind(Object(d.a)(Object(d.a)(i))),i.onMouseUpBind=i.onMouseUp.bind(Object(d.a)(Object(d.a)(i)));var s=i.externalValue2localValue(i.props.value);return i.calcSteps(i.props.ticks||28),i.unit=i.props.unit?" "+i.props.unit:"",i.state={value:s,activeTick:i.calcActiveTick(s),ticksNumber:i.props.ticks||28},i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentDidUpdate",value:function(){if(!this.rect){this.knobWidth=this.refKnob.current.offsetWidth,this.rect=this.refKnob.current.getBoundingClientRect(),this.minPos=this.valueToPos(this.angleStart);var t=this.rect.width/2;this.minPos.x=t&&this.minPos.y=t?(this.minPos.x-=13,this.minPos.y-=6):this.minPos.x>=t&&this.minPos.y>=t&&(this.minPos.x-=20,this.minPos.y-=6),this.maxPos=this.valueToPos(this.angleEnd),this.maxPos.x=t&&this.maxPos.y=t?(this.maxPos.x-=13,this.maxPos.y-=6):this.maxPos.x>=t&&this.maxPos.y>=t&&(this.maxPos.x-=20,this.maxPos.y-=6),this.forceUpdate()}}},{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"posToValue",value:function(t,e){var i;return(i=t<0?180-(i=180*Math.atan2(e,-t)/Math.PI):180*Math.atan2(e,t)/Math.PI)<0&&(i+=360),(i-=this.angleStart)<0&&(i+=360),(i%=360)>this.angleSize+.1*this.angleSize?i=0:i>this.angleSize&&(i=this.angleSize),i/this.angleSize*100}},{key:"calcActiveTick",value:function(t){return void 0===t&&(t=this.state.value),Math.round(t/this.valueStep)}},{key:"calcSteps",value:function(t){t=t||this.state.ticksNumber,this.angleStep=this.angleSize/(t-1),this.valueStep=100/(t-1)}},{key:"componentWillReceiveProps",value:function(t){t.value!==this.state.value&&(this.mouseDown||this.setState({value:t.value})),t.ticksNumber!==this.state.ticks&&(this.setState({ticks:t.ticksNumber}),this.calcSteps(t.ticksNumber))}},{key:"localValue2externalValue",value:function(t){return t*(this.max-this.min)/100+this.min}},{key:"externalValue2localValue",value:function(t){return(t-this.min)/(this.max-this.min)*100}},{key:"drawTicks",value:function(){for(var t=[],e=0;e100&&(e=100),this.onValueChange(e)}},{key:"onValueChange",value:function(t){this.setState({value:t,activeTick:this.calcActiveTick(t)}),this.props.onChange&&this.props.onChange(this.localValue2externalValue(t))}},{key:"drawKnob",value:function(){var t={transform:"rotate("+(this.angleStart+this.angleStep*(this.state.value/this.valueStep))+"deg)"};return n.a.createElement("div",{className:this.props.classes.knob,style:t},n.a.createElement("div",{className:this.props.classes.knobBefore}))}},{key:"drawValue",value:function(){return this.props.hideValue?null:n.a.createElement("div",{className:this.props.classes.value},Math.round(this.localValue2externalValue(this.state.value))+this.unit)}},{key:"eventToValue",value:function(t){var e=t.touches?t.touches[t.touches.length-1].clientY:t.clientY,i=t.touches?t.touches[t.touches.length-1].clientX:t.clientX,s=this.knobWidth/2,n=this.posToValue(i-this.rect.left-s,e-this.rect.top-s);this.lastValue=Date.now(),this.onValueChange(n)}},{key:"onMouseMove",value:function(t){t.preventDefault(),t.stopPropagation(),this.eventToValue(t)}},{key:"onMouseDown",value:function(t){t.preventDefault(),t.stopPropagation(),this.mouseDown=!0,this.eventToValue(t),document.addEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.addEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0})}},{key:"onMouseUp",value:function(t){t.preventDefault(),t.stopPropagation(),this.mouseDown=!1,console.log("Stopped"),document.removeEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.removeEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0}),this.props.onChange&&this.props.onChange(this.localValue2externalValue(this.state.value))}},{key:"valueToPos",value:function(t){var e=this.rect.width/2;return{x:(e+40)*Math.cos(Math.PI/180*t)+e,y:(e+40)*Math.sin(Math.PI/180*t)+e}}},{key:"drawMinMax",value:function(){if(this.minPos){var t=Object.assign({},this.state.value?{}:bi,{left:this.minPos.x,top:this.minPos.y}),e=Object.assign({},100===this.state.value?fi:{},{left:this.maxPos.x,top:this.maxPos.y});return[n.a.createElement("span",{key:"min",className:this.props.classes.min,style:t},"Min"),n.a.createElement("span",{key:"max",className:this.props.classes.max,style:e},"Max")]}}},{key:"render",value:function(){return n.a.createElement("div",{ref:this.refKnob,style:this.props.style,onMouseDown:this.onMouseDown.bind(this),onTouchStart:this.onMouseDown.bind(this),className:this.props.classes.knobSurround,onWheel:this.onWheel.bind(this)},this.drawMinMax(),this.drawKnob(),this.drawValue(),n.a.createElement("div",{className:this.props.classes.knob},this.drawTicks()))}}]),e}(s.Component),Di=Object(g.withStyles)(function(t){return{knobSurround:{boxSizing:"border-box",position:"relative",backgroundColor:"grey",width:"10em",height:"10em",borderRadius:"50%",border:"solid 0.25em #0e0e0e",background:"-webkit-gradient(linear, left bottom, left top, color-stop(0, #1d1d1d), color-stop(1, #131313))",boxShadow:"0 0.2em 0.1em 0.05em rgba(255, 255, 255, 0.1) inset, 0 -0.2em 0.1em 0.05em rgba(0, 0, 0, 0.5) inset, 0 0.5em 0.65em 0 rgba(0, 0, 0, 0.3)"},knobBefore:{position:"absolute",top:"50%",right:"3%",width:"3%",height:"3%",backgroundColor:"#a8d8f8",borderRadius:"50%",boxShadow:"0 0 0.4em 0 #79c3f4"},knob:{width:"100%",height:"100%",borderRadius:"50%",position:"absolute",zIndex:10},min:{display:"block",fontFamily:"sans-serif",color:"white",textTransform:"uppercase",fontSize:"70%",position:"absolute",opacity:"0.5"},max:{display:"block",fontFamily:"sans-serif",color:"white",textTransform:"uppercase",fontSize:"70%",position:"absolute",opacity:"0.5"},tick:{height:"0.08em",width:"0.6em",backgroundColor:"rgba(255, 255, 255, 0.6)",position:"absolute",right:"-1.5em",top:"50%",transition:"all 50ms ease-in"},value:{position:"absolute",top:"calc(50% - 10px)",width:"100%",textAlign:"center",fontSize:20,fontWeight:"bold",color:"#a8d8f8",textShadow:"0 0 10px #a8d8f8"}}})(Ti),Si=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).stateRx.value=i.externalValue2localValue(i.props.startValue||0),i.stateRx.muteValue=i.props.startMuteValue||!1,i.dialogStyle={background:"rgba(136,136,136,0.8)",maxHeight:412,minHeight:280},i.closeOnPaperClick=!0,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentWillReceiveProps",value:function(t){t.startValue!==this.state.value&&this.setState({value:t.startValue}),void 0!==t.startMuteValue&&t.startMuteValue!==this.state.muteValue&&this.setState({muteValue:t.startMuteValue})}},{key:"localValue2externalValue",value:function(t){return void 0!==this.props.min&&void 0!==this.props.max?t*(this.props.max-this.props.min)/100+this.props.min:t}},{key:"externalValue2localValue",value:function(t){return void 0!==this.props.min&&void 0!==this.props.max?(t-this.props.min)/(this.props.max-this.props.min)*100:t}},{key:"onValueChanged",value:function(t){var e=this;this.click=Date.now(),this.setState({value:this.externalValue2localValue(t)}),this.controlTimer&&clearTimeout(this.controlTimer),this.props.onValueChange&&(this.controlTimer=setTimeout(function(t){e.controlTimer=null,e.props.onValueChange(Math.round(t))},300,t))}},{key:"onMute",value:function(t){t&&t.preventDefault(),t&&t.stopPropagation(),this.props.onMute&&this.props.onMute()}},{key:"getMuteButton",value:function(){if(!this.props.onMute)return null;var t=Object.assign({},e.buttonMuteStyle,this.state.muteValue?e.buttonMuted:{});return n.a.createElement(T.a,{key:this.props.dialogKey+"-mute-button",variant:"fab",color:"primary","aria-label":"mute",title:this.state.muteValue?W.t("unmute"):W.t("mute"),style:t,onClick:this.onMute.bind(this),className:"mute-button"},this.state.muteValue?n.a.createElement(x.fb,null):n.a.createElement(x.gb,null))}},{key:"generateContent",value:function(){return[n.a.createElement(Di,{style:{left:"calc(50% - 6em)",marginTop:"2em",width:"12em",height:"12em",position:"absolute"},value:this.localValue2externalValue(this.state.value),onChange:this.onValueChanged.bind(this),parent:this}),this.getMuteButton()]}}]),e}(oe);Si.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string,windowWidth:Nt.a.number,onClose:Nt.a.func,onMute:Nt.a.func,onValueChange:Nt.a.func,startValue:Nt.a.number,startMuteValue:Nt.a.bool,type:Nt.a.number},Si.buttonMuteStyle={position:"absolute",left:"calc(50% + 8em)",top:"16.5em",height:"2em",width:"2.5em",background:"-webkit-gradient(linear, left bottom, left top, color-stop(0, #1d1d1d), color-stop(1, #131313))",boxShadow:"0 0.2em 0.1em 0.05em rgba(255, 255, 255, 0.1) inset, 0 -0.2em 0.1em 0.05em rgba(0, 0, 0, 0.5) inset, 0 0.5em 0.65em 0 rgba(0, 0, 0, 0.3)",color:"rgb(99, 99, 99)",textShadow:"0 0 0.3em rgba(23,23,23)"},Si.buttonMuted={color:"#a8d8f8"};var Ii=Si,Ci={mute:{fontSize:"smaller",fontWeight:"normal",paddingLeft:10},groupText:{fontSize:10,paddingLeft:5}},ki=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"SET"===t.name});s&&i.props.objects[s.id]&&i.props.objects[s.id].common?i.id=s.id:i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"ACTUAL"===t.name}),i.actualId=s?s.id:i.id,s=i.channelInfo.states.find(function(t){return t.id&&"MUTE"===t.name}),i.muteId=s&&s.id,i.channelInfo.type===Mt.volumeGroup&&(i.group=!0)}return i.id&&(i.max=i.props.objects[i.actualId].common.max,i.min=i.props.objects[i.actualId].common.min,i.props.tile.setState({isPointer:!0}),i.unit=i.props.objects[i.actualId].common.unit,i.unit=i.unit?" "+i.unit:""),i.stateRx.showDialog=!1,i.stateRx.setValue=null,i.key="smart-slider-"+i.id+"-",i.doubleState=!0,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"updateState",value:function(t,i){var s={};if(this.actualId===t||this.id===t&&this.id===this.actualId&&i.ack){var n="number"===typeof i.val?i.val:parseFloat(i.val);if(isNaN(n))s[t]=null,this.setState(s),this.props.tile.setState({state:!1});else{s[t]=n,this.setState(s);var a=n!==this.min;this.props.tile.setState({state:a})}this.state.setValue===s[t]&&i.ack&&this.setState({setValue:null}),i.ack&&this.state.executing&&this.setState({executing:!1})}else t===this.id?(s[t]="number"===typeof i.val?i.val:parseFloat(i.val),this.setState(s)):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"setValue",value:function(t){console.log("Control "+this.id+" = "+t),this.actualId!==this.id&&this.setState({executing:!0,setValue:t}),this.max-this.min>9&&(t=Math.round(t)),this.props.onControl(this.id,t)}},{key:"toggle",value:function(){this.props.onControl(this.muteId,!this.state[this.muteId])}},{key:"getSecondaryDiv",value:function(){var t,e,i,s;return this.state[this.muteId]?(t=x.fb,e=W.t("mute"),i="#f99"):(t=x.gb,e=W.t("unmute"),i="inherit"),s=this.state.settings.useDefaultIcon?n.a.createElement("img",{alt:"icon",src:this.getDefaultIcon(),style:{height:"100%",zIndex:1}}):n.a.createElement(t,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}}),n.a.createElement("div",{key:this.key+"tile-secondary",className:"tile-text-second",style:Y.tile.secondary.button,title:e},n.a.createElement(T.a,{variant:"fab",mini:!0,onClick:this.toggle.bind(this),style:{background:i,boxShadow:"none"},"aria-label":e},s))}},{key:"getIcon",value:function(){var t;if(this.state.settings.useDefaultIcon)t=n.a.createElement("img",{alt:"icon",src:this.getDefaultIcon(),style:{height:"100%"}});else if(this.state.settings.icon)t=n.a.createElement("img",{alt:"icon",src:this.state.settings.icon,style:{height:"100%"}});else{var e,i=Math.round((this.state[this.actualId]-this.min)/(this.max-this.min)*100);e=i<25?x.fb:i<75?x.eb:x.gb,t=n.a.createElement(e,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}})}return n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,this.state[this.actualId]!==this.min?{color:Y.palette.lampOn}:{}),className:"tile-icon"},t,this.state.executing?n.a.createElement(yt.a,{style:{position:"absolute",top:0,left:0},size:Y.tile.tileIcon.width}):null)}},{key:"getStateText",value:function(){var t="";return t=null===this.state[this.actualId]||void 0===this.state[this.actualId]?"---":this.workingId&&this.state[this.workingId]&&null!==this.state.setValue&&void 0!==this.state.setValue?this.max-this.min>9?Math.round(this.state[this.id])+this.unit+" \u2192 "+Math.round(this.state.setValue)+this.unit:this.roundValue(this.state[this.id],1)+this.unit+" \u2192 "+this.roundValue(this.state.setValue,1)+this.unit:this.max-this.min>9?Math.round(this.state[this.id])+this.unit:this.roundValue(this.state[this.id],1)+this.unit,this.muteId&&this.state[this.muteId]&&(t=[n.a.createElement("span",{key:"value"},t),n.a.createElement("span",{key:"muted",style:Ci.mute},"(",W.t("muted"),")")]),t}},{key:"getAdditionalName",value:function(){return this.group?n.a.createElement("span",{style:Ci.groupText},W.t("group")):null}},{key:"render",value:function(){return this.wrapContent([this.getStandardContent(null,!0),this.muteId&&this.getSecondaryDiv(),this.state.showDialog?n.a.createElement(Ii,{key:this.key+"dialog",startValue:this.state[this.id],startMuteValue:!!this.muteId&&this.state[this.muteId],onMute:this.muteId?this.toggle.bind(this):null,windowWidth:this.props.windowWidth,min:this.min,max:this.max,unit:this.unit,onValueChange:this.setValue.bind(this),onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue),zi={"header-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16},"current-div":{height:200,width:"calc(100% - 1em)",position:"relative",marginBottom:16,overflow:"hidden"},"currentIcon-div":{position:"absolute",width:128,height:128,zIndex:0,left:3,top:24},"currentIcon-icon":{width:"100%",zIndex:0},"currentIcon-temperature":{position:"absolute",width:"100%",fontSize:40,zIndex:1,fontWeight:"normal",textAlign:"right",color:"#9c9c9c",top:8,right:-50},"currentDate-div":{position:"absolute",zIndex:1,width:"calc(100% - 2em)",top:16,left:16},"currentDate-date":{fontWeight:"normal",display:"inline-block"},"currentDate-location":{display:"inline-block",position:"absolute",textOverflow:"ellipsis",width:"calc(100% - 75px)",whiteSpace:"nowrap",right:0,textAlign:"right"},"todayTemp-div":{position:"absolute",zIndex:1,fontWeight:"normal",top:35,maxWidth:"calc(100% - 2em - 90px)",right:16,textAlign:"right"},"todayTemp-temperature":{},"todayTemp-temperatureMin":{},"todayTemp-temperatureMax":{fontWeight:"bold"},"todayTemp-temperatureTitle":{},"todayTemp-temperatureValue":{},"todayTemp-precipitation":{},"todayTemp-precipitationTitle":{},"todayTemp-precipitationValue":{paddingLeft:2},"todayTemp-pressure":{},"todayTemp-pressureTitle":{},"todayTemp-pressureValue":{paddingLeft:2},"todayState-div":{position:"absolute",zIndex:1,width:"calc(100% - 90px)",fontWeight:"normal",bottom:16,left:118,textAlign:"left",fontSize:14},"todayState-wind":{whiteSpace:"nowrap",overflow:"hidden"},"todayState-windTitle":{},"todayState-windDir":{marginLeft:2},"todayState-windSpeed":{marginLeft:2},"todayState-windIcon":{display:"inline-block",marginLeft:5},"todayState-windChill":{},"todayState-windChillTitle":{paddingRight:5},"todayState-windChillValue":{},"todayState-humidity":{},"todayState-humidityTitle":{paddingRight:5},"todayState-humidityValue":{},"todayState-state":{},"chart-div":{height:160,width:"calc(100% - 1em)",overflowX:"hidden",overflowY:"auto",marginBottom:16,padding:"0 16px",cursor:"pointer"},"chart-header":{width:"100%",fontSize:16,paddingTop:16,fontWeight:"bold"},"chart-img":{width:"calc(100% - 16px)",height:"calc(100% - 40px)",backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center center"},"chart-dialog":{zIndex:2101},"chart-dialog-paper":{width:"calc(100% - 4em)",maxWidth:"calc(100% - 4em)",height:"calc(100% - 4em)",maxHeight:"calc(100% - 4em)"},"chart-dialog-content":{width:"calc(100% - 5em)",height:"calc(100% - 4em)",marginLeft:"1em",backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center center"},"days-div":{height:"calc(100% - 200px - 64px)",width:"calc(100% - 1em)",overflowX:"hidden",overflowY:"auto"},"day-div":{height:140,width:"100%",marginBottom:16,position:"relative"},"dayIcon-div":{position:"absolute",width:90,height:90,zIndex:0,left:16,top:30,backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center center"},"dayIcon-icon":{width:"100%",zIndex:0},"dayIcon-temperature":{position:"absolute",width:"100%",fontSize:40,zIndex:1,fontWeight:"normal",textAlign:"right",color:"#9c9c9c",top:8,right:-50},"dayDate-div":{position:"absolute",zIndex:1,width:"calc(100% - 2em)",top:16,left:16},"dayDate-date":{fontWeight:"bold",display:"inline-block"},"dayTemp-div":{position:"absolute",zIndex:1,fontWeight:"normal",top:35,maxWidth:"calc(100% - 2em - 90px)",right:16,textAlign:"right"},"dayTemp-temperature":{},"dayTemp-temperatureMin":{},"dayTemp-temperatureMax":{fontWeight:"bold"},"dayTemp-temperatureTitle":{},"dayTemp-temperatureValue":{},"dayTemp-precipitation":{},"dayTemp-precipitationTitle":{},"dayTemp-precipitationValue":{paddingLeft:2},"dayTemp-humidity":{},"dayTemp-humidityTitle":{},"dayTemp-humidityValue":{paddingLeft:2},"dayTemp-pressure":{},"dayTemp-pressureTitle":{},"dayTemp-pressureValue":{paddingLeft:2},"dayState-div":{position:"absolute",zIndex:1,width:"calc(100% - 90px)",fontWeight:"normal",bottom:16,left:118,textAlign:"left"},"dayState-wind":{whiteSpace:"nowrap",overflow:"hidden",fontSize:14},"dayState-windTitle":{},"dayState-windDir":{marginLeft:2},"dayState-windSpeed":{marginLeft:2},"dayState-windIcon":{display:"inline-block",marginLeft:5,width:16,maxHeight:16},"dayState-windChill":{},"dayState-windChillTitle":{paddingRight:5},"dayState-windChillValue":{},"dayState-state":{fontSize:14}},Oi=function(t){function e(t){var i;for(var s in Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids=i.props.ids,i.ids.current)i.ids.current.hasOwnProperty(s)&&i.ids.current[s]&&(i.subscribes=i.subscribes||[],i.ids.current[s]instanceof Array?i.ids.current[s].forEach(function(t){return i.subscribes.push(t)}):i.subscribes.push(i.ids.current[s]));for(var n=0;n "+i.val),Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getHeaderDiv",value:function(){return this.divs.header.visible?n.a.createElement("div",{key:"header",className:this.props.classes["header-div"]},this.name):null}},{key:"getDayIconDiv",value:function(t){var e=this.props.classes,i=this.ids.days[t].temperature&&this.state[this.ids.days[t].temperature],s=this.ids.days[t].icon&&this.state[this.ids.days[t].icon];return i||s?n.a.createElement("div",{key:"dayIcon"+t,className:e["dayIcon-div"]},s?n.a.createElement("img",{className:e["dayIcon-icon"],src:s,alt:this.state[this.ids.days[t].state]||""}):null,null!==i&&void 0!==i?n.a.createElement("div",{className:e["dayIcon-temperature"]},i,"\xb0"):null):null}},{key:"getDayDateDiv",value:function(t){var e=this.props.classes,i=this.ids.days[t].date&&this.state[this.ids.days[t].date];if(!i){var s=new Date;s.setDate(s.getDate()+t),i=_.date2string(s)}return n.a.createElement("div",{key:"location"+t,className:e["dayDate-div"]},n.a.createElement("div",{className:e["dayDate-date"]},i))}},{key:"getDayWindDiv",value:function(t){var e=this.props.classes,i=this.ids.days[t].windchill&&this.state[this.ids.days[t].date],s=this.ids.days[t].windDirection&&this.state[this.ids.days[t].windDirection];null===s||void 0===s||"number"!==typeof s&&parseInt(s,10)!==s||(s=W.t("wind_"+_.getWindDirection(s)).replace("wind_",""));var a=this.ids.days[t].windSpeed&&this.state[this.ids.days[t].windSpeed],o=this.ids.days[t].windIcon&&this.state[this.ids.days[t].windIcon],r=this.ids.days[t].state&&this.state[this.ids.days[t].state];return r||i||0===i||s||a||0===a?n.a.createElement("div",{key:"dayWind"+t,className:e["dayState-div"]},null!==i&&void 0!==i?n.a.createElement("div",{key:"windChill"+t,className:e["dayState-windChill"]},n.a.createElement("span",{className:e["dayState-windChillTitle"]},W.t("Windchill"),": "),n.a.createElement("span",{className:e["dayState-windChillValue"]},i)):null,null!==s&&void 0!==s||null!==a&&void 0!==a?n.a.createElement("div",{key:"wind"+t,className:e["dayState-wind"]},n.a.createElement("span",{key:"windTitle"+t,className:e["dayState-windTitle"]},W.t("Wind"),":"),o?n.a.createElement("img",{className:e["dayState-windIcon"],src:o,alt:"state"}):null,s?n.a.createElement("span",{className:e["dayState-windDir"]},s):null,null===a||void 0===a||isNaN(a)?null:n.a.createElement("span",{key:"daySpeed"+t,className:e["dayState-windSpeed"]},a,this.props.windUnit)):null,r?n.a.createElement("div",{key:"state"+t,className:e["dayState-state"]},r):null):null}},{key:"getDayTempDiv",value:function(t){var e,i=this.props.classes,s=this.ids.days[t].temperatureMin&&this.state[this.ids.days[t].temperatureMin],a=this.ids.days[t].temperatureMax&&this.state[this.ids.days[t].temperatureMax],o=this.ids.days[t].precipitation&&this.state[this.ids.days[t].precipitation],r=this.ids.days[t].pressure&&this.state[this.ids.days[t].pressure],l=this.ids.days[t].humidity&&this.state[this.ids.days[t].humidity];if(!l&&0!==l&&this.ids.current.humidity&&this.props.objects[this.ids.current.humidity]&&this.props.objects[this.ids.current.humidity].common&&this.props.objects[this.ids.current.humidity].common.role&&-1!==this.props.objects[this.ids.current.humidity].common.role.indexOf("forecast.0")&&(l=this.state[this.ids.current.humidity]),!s&&0!==s&&this.ids.current.temperatureMin){var c=this.props.objects[this.ids.current.temperatureMin];c&&c.common&&c.common.role&&-1!==c.common.role.indexOf("forecast.0")&&(s=this.state[this.ids.current.temperatureMin])}if(!a&&0!==a&&this.ids.current.temperatureMax){var u=this.props.objects[this.ids.current.temperatureMax];u&&u.common&&u.common.role&&-1!==u.common.role.indexOf("forecast.0")&&(a=this.state[this.ids.current.temperatureMax])}return null!==s&&void 0!==s&&null!==a&&void 0!==a&&s!==a?e=[n.a.createElement("span",{key:"max",className:i["dayTemp-temperatureMax"]},a,"\xb0"),n.a.createElement("span",{key:"mid"}," / "),n.a.createElement("span",{key:"min",className:i["dayTemp-temperatureMin"]},s,"\xb0")]:(null!==s&&void 0!==s||null!==a&&void 0!==a)&&(null!==s&&void 0!==s||(s=a),e=n.a.createElement("span",{key:"max",className:i["dayTemp-temperatureMax"]},s,"\xb0")),e||o||0===o||r||0===r||l||0===l?n.a.createElement("div",{key:"dayTemp"+t,className:i["dayTemp-div"]},null!==e&&void 0!==e?n.a.createElement("div",{key:"temp"+t,className:i["dayTemp-temperature"]},n.a.createElement("span",{className:i["dayTemp-temperatureValue"]},e)):null,null!==o&&void 0!==o?n.a.createElement("div",{key:"precipitation"+t,className:i["dayTemp-precipitation"]},n.a.createElement("span",{key:"windTitle"+t,className:i["dayTemp-precipitationTitle"]},W.t("Precip."),":"),n.a.createElement("span",{className:i["dayTemp-precipitationValue"]},o,"%")):null,null!==l&&void 0!==l?n.a.createElement("div",{key:"humidity"+t,className:i["dayTemp-humidity"]},n.a.createElement("span",{key:"windTitle"+t,className:i["dayTemp-humidityTitle"]},W.t("Humidity"),":"),n.a.createElement("span",{className:i["dayTemp-humidityValue"]},l,"%")):null,null!==r&&void 0!==r?n.a.createElement("div",{key:"pressure"+t,className:i["dayTemp-pressure"]},n.a.createElement("span",{key:"windTitle"+t,className:i["dayTemp-pressureTitle"]},W.t("Pressure"),":"),n.a.createElement("span",{className:i["dayTemp-pressureValue"]},r,this.props.pressureUnit)):null):null}},{key:"getDayDiv",value:function(t){if(!this.ids.days[t])return null;var e=[this.getDayIconDiv(t),this.getDayDateDiv(t),this.getDayWindDiv(t),this.getDayTempDiv(t)];return e[0]||e[2]||e[3]?n.a.createElement(gt.a,{key:"day"+t,className:this.props.classes["day-div"]},e):null}},{key:"getCurrentIconDiv",value:function(){var t,e=this.props.classes;return(t=this.props.settings.tempID&&this.state[this.props.settings.tempID])||0===t||(t=this.ids.current.temperature&&this.state[this.ids.current.temperature]),n.a.createElement("div",{key:"todayIcon",className:e["currentIcon-div"]},n.a.createElement("img",{className:e["currentIcon-icon"],src:this.state[this.ids.current.icon],alt:this.state[this.ids.current.state]||""}),null!==t&&void 0!==t?n.a.createElement("div",{className:e["currentIcon-temperature"]},t,"\xb0"):null)}},{key:"getCurrentDateLocationDiv",value:function(){var t=this.props.classes,e=this.ids.current.date&&this.state[this.ids.current.date],i=this.props.settings.locationText;return i=(i=i||this.state.location)||W.t("Weather"),e=e||_.date2string(new Date),n.a.createElement("div",{key:"location",className:t["currentDate-div"]},n.a.createElement("div",{className:t["currentDate-date"]},e,","),n.a.createElement("div",{className:t["currentDate-location"]},i))}},{key:"getTodayWindDiv",value:function(){var t=this.props.classes,e=this.ids.current.windchill&&this.state[this.ids.current.date],i=this.ids.current.windDirection&&this.state[this.ids.current.windDirection];null===i||void 0===i||"number"!==typeof i&&parseInt(i,10)!==i||(i=W.t("wind_"+_.getWindDirection(i)).replace("wind_",""));var s=this.ids.current.windSpeed&&this.state[this.ids.current.windSpeed],a=this.ids.current.windIcon&&this.state[this.ids.current.windIcon],o=this.props.settings.humidityID&&this.state[this.props.settings.humidityID];o||0===o||(o=this.ids.current.humidity&&this.state[this.ids.current.humidity]);var r=this.ids.current.state&&this.state[this.ids.current.state];return n.a.createElement("div",{key:"todayWind",className:t["todayState-div"]},null!==e&&void 0!==e?n.a.createElement("div",{key:"windChill",className:t["todayState-windChill"]},n.a.createElement("span",{className:t["todayState-windChillTitle"]},W.t("Windchill"),": "),n.a.createElement("span",{className:t["todayState-windChillValue"]},e)):null,null!==i&&void 0!==i||null!==s&&void 0!==s?n.a.createElement("div",{key:"wind",className:t["todayState-wind"]},n.a.createElement("span",{key:"windTitle",className:t["todayState-windTitle"]},W.t("Wind"),":"),a?n.a.createElement("img",{className:t["todayState-windIcon"],src:a,alt:"state"}):null,i?n.a.createElement("span",{className:t["todayState-windDir"]},i):null,null===s||void 0===s||isNaN(s)?null:n.a.createElement("span",{key:"windSpeed",className:t["todayState-windSpeed"]},s,this.props.windUnit)):null,o||0===o?n.a.createElement("div",{key:"humidity",className:t["todayState-humidity"]},n.a.createElement("span",{className:t["todayState-humidityTitle"]},W.t("Humidity"),": "),n.a.createElement("span",{className:t["todayState-humidityValue"]},o,"%")):null,r?n.a.createElement("div",{key:"state",className:t["todayState-state"]},r):null)}},{key:"getTodayTempDiv",value:function(){var t,e=this.props.classes,i=this.ids.current.temperatureMin&&this.state[this.ids.current.temperatureMin],s=this.ids.current.temperatureMax&&this.state[this.ids.current.temperatureMax],a=this.ids.current.precipitation&&this.state[this.ids.current.precipitation],o=this.ids.current.pressure&&this.state[this.ids.current.pressure];return null!==i&&void 0!==i&&null!==s&&void 0!==s&&(t=[n.a.createElement("span",{key:"max",className:e["todayTemp-temperatureMax"]},s,"\xb0"),n.a.createElement("span",{key:"mid"}," / "),n.a.createElement("span",{key:"min",className:e["todayTemp-temperatureMin"]},i,"\xb0")]),n.a.createElement("div",{key:"todayTemp",className:e["todayTemp-div"]},null!==t&&void 0!==t?n.a.createElement("div",{key:"temp",className:e["todayTemp-temperature"]},n.a.createElement("span",{className:e["todayTemp-temperatureValue"]},t)):null,null!==a&&void 0!==a?n.a.createElement("div",{key:"precipitation",className:e["todayTemp-precipitation"]},n.a.createElement("span",{key:"windTitle",className:e["todayTemp-precipitationTitle"]},W.t("Precip."),":"),n.a.createElement("span",{className:e["todayTemp-precipitationValue"]},a,"%")):null,null!==o&&void 0!==o?n.a.createElement("div",{key:"pressure",className:e["todayTemp-pressure"]},n.a.createElement("span",{key:"windTitle",className:e["todayTemp-pressureTitle"]},W.t("Pressure"),":"),n.a.createElement("span",{className:e["todayTemp-pressureValue"]},o,this.props.pressureUnit)):null)}},{key:"getChartDiv",value:function(){var t=this,e=this.props.classes,i=this.ids.current.chart&&this.state[this.ids.current.chart];return i&&i.toLowerCase().match(/\.svg$|\.jpg$|\.jpeg$|\.gif$|\.png$/)?(-1===i.indexOf("?")?i+="?ts="+Date.now():i+="&ts="+Date.now(),[n.a.createElement(gt.a,{key:"chart",className:this.props.classes["chart-div"],onClick:function(){return t.setState({chartOpened:!0})}},n.a.createElement("div",{className:e["chart-header"]},W.t("Chart")),n.a.createElement("div",{className:e["chart-img"],style:{backgroundImage:"url("+this.state[this.ids.current.chart]+")"}})),this.state.chartOpened?n.a.createElement(v.a,{key:"chart-dialog",open:!0,classes:{paper:this.props.classes["chart-dialog-paper"]},onClose:function(){return t.setState({chartOpened:!1})},className:this.props.classes["chart-dialog"],"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.a.createElement(E.a,{id:"alert-dialog-title"},W.t("Chart")),n.a.createElement(C.a,{className:this.props.classes["chart-dialog-content"],style:{backgroundImage:"url("+i+")"}}),n.a.createElement(S.a,null,n.a.createElement(T.a,{onClick:function(){return t.setState({chartOpened:!1})},color:"primary",autoFocus:!0},W.t("Close")))):null]):null}},{key:"getDaysDiv",value:function(){var t=this.ids.days.map(function(t,e){return!e&&this.props.settings.hideFirstDay?null:t&&this.getDayDiv(e)}.bind(this));return this.props.settings.chartLast?t.push(this.getChartDiv()):t.unshift(this.getChartDiv()),(t=t.filter(function(t){return t})).length?n.a.createElement("div",{key:"allDays",className:this.props.classes["days-div"]},t):null}},{key:"onOpenHistory",value:function(){this.ids.current.chart&&this.state[this.ids.current.chart]&&window.open(this.state[this.ids.current.chart],"_blank").focus()}},{key:"getCurrentDiv",value:function(){var t=this;return n.a.createElement(gt.a,{key:"current",className:this.props.classes["current-div"],style:this.ids.current.chart&&this.state[this.ids.current.chart]?{cursor:"pointer"}:{},onClick:function(){return t.onOpenHistory()}},this.getCurrentIconDiv(),this.getCurrentDateLocationDiv(),this.getTodayWindDiv(),this.getTodayTempDiv())}},{key:"generateContent",value:function(){return[this.getHeaderDiv(),this.getCurrentDiv(),this.getDaysDiv()]}}]),e}(oe);Oi.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string.isRequired,windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,objects:Nt.a.object,states:Nt.a.object,onCollectIds:Nt.a.func,enumNames:Nt.a.array,ids:Nt.a.object.isRequired,settings:Nt.a.object};var Ei=Object(g.withStyles)(zi)(Oi),xi=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids={current:{date:null,location:null,icon:null,state:null,temperature:null,humidity:null,windChill:null,windSpeed:null,windIcon:null,windDirection:null,pressure:null,precipitation:null},days:[{date:null,icon:null,state:null,temperature:null,temperatureMin:null,temperatureMax:null,humidity:null,humidityMin:null,humidityMax:null,windSpeed:null,windIcon:null,windDirection:null,precipitation:null,pressure:null}]},i.collectState=null,i.collectTimer=null,i.channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"ICON"===t.name});if(s?(i.id=s.id,i.ids.current.icon=s.id):i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"TEMP"===t.name}),i.ids.current.temperature=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"STATE"===t.name}),i.ids.current.state=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"DATE"===t.name}),i.ids.current.date=s&&s.id,i.ids.current.date||(s=i.channelInfo.states.find(function(t){return t.id&&"DOW"===t.name}),i.ids.current.date=s&&s.id),s=i.channelInfo.states.filter(function(t){return t.id&&"LOCATION"===t.name}).map(function(t){return t.id}),i.ids.current.location=s&&s.length&&s,s=i.channelInfo.states.find(function(t){return t.id&&"HUMIDITY"===t.name}),i.ids.current.humidity=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"PRESSURE"===t.name}),i.ids.current.pressure=s&&s.id,i.pressureUnit="",i.ids.current.pressure){var n=i.props.objects[i.ids.current.pressure];n&&n.common&&n.common.unit&&(i.pressureUnit=" "+W.t(n.common.unit))}if(s=i.channelInfo.states.find(function(t){return t.id&&"WIND_SPEED"===t.name}),i.ids.current.windSpeed=s&&s.id,i.windUnit="",i.ids.current.windSpeed){var a=i.props.objects[i.ids.current.windSpeed];a&&a.common&&a.common.unit&&(i.windUnit=" "+W.t(a.common.unit))}if(s=i.channelInfo.states.find(function(t){return t.id&&"WIND_CHILL"===t.name}),i.ids.current.windChill=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"FEELS_LIKE"===t.name}),i.ids.current.windChill){if(s){var o=i.subscribes.indexOf(s.id);i.subscribes.splice(o,1),s.id=null}}else i.ids.current.windChill=s&&s.id;if(s=i.channelInfo.states.find(function(t){return t.id&&"WIND_ICON"===t.name}),i.ids.current.windIcon=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"WIND_DIRECTION"===t.name}),i.ids.current.windDirection=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"WIND_DIRECTION_STR"===t.name}),i.ids.current.windDirection){if(s){var l=i.subscribes.indexOf(s.id);i.subscribes.splice(l,1),s.id=null}}else i.ids.current.windDirection=s&&s.id;s=i.channelInfo.states.find(function(t){return t.id&&"TEMP_MIN"===t.name}),i.ids.current.temperatureMin=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"TEMP_MAX"===t.name}),i.ids.current.temperatureMax=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"PRECIPITATION_CHANCE"===t.name}),i.ids.current.precipitation=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"HISTORY_CHART"===t.name}),i.ids.current.history=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"FORECAST_CHART"===t.name}),i.ids.current.chart=s&&s.id;for(var h=function(t){i.ids.days[t]=i.ids.days[t]||{},s=i.channelInfo.states.find(function(e){return e.id&&e.name==="DATE"+t}),i.ids.days[t].date=s&&s.id,i.ids.days[t].date||(s=i.channelInfo.states.find(function(e){return e.id&&e.name==="DOW"+t}),i.ids.days[t].date=s&&s.id),s=i.channelInfo.states.find(function(e){return e.id&&e.name==="ICON"+t}),i.ids.days[t].icon=s&&s.id!==i.id&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="STATE"+t}),i.ids.days[t].state=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="TEMP_MIN"+t}),i.ids.days[t].temperatureMin=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="TEMP_MAX"+t}),i.ids.days[t].temperatureMax=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="TEMP"+t}),i.ids.days[t].temperature=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="HUMIDITY"+t}),i.ids.days[t].humidity=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="HUMIDITY_MIN"+t}),i.ids.days[t].humidityMin=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="HUMIDITY_MAX"+t}),i.ids.days[t].humidityMax=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="WIND_SPEED"+t}),i.ids.days[t].windSpeed=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="WIND_ICON"+t}),i.ids.days[t].windIcon=s&&s.id,s=i.channelInfo.states.find(function(e){return e.id&&e.name==="WIND_DIRECTION"+t}),i.ids.days[t].windDirection=s&&s.id,i.ids.days[t].windDirection||(s=i.channelInfo.states.find(function(e){return e.id&&e.name==="WIND_DIRECTION_STR"+t}),i.ids.days[t].windDirection=s&&s.id),s=i.channelInfo.states.find(function(e){return e.id&&e.name==="PRECIPITATION_CHANCE"+t}),i.ids.days[t].precipitation=s&&s.id;var e=!0;for(var n in i.ids.days[t])if(i.ids.days[t].hasOwnProperty(n)&&i.ids.days[t][n]){e=!1;break}e&&(i.ids.days[t]=null)},d=0;d<6;d++)h(d);for(var g=i.ids.days.length-1;!i.ids.days[g]&&g>=0;)g--;g "+i.val),Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.push({name:"chartLast",value:this.state.settings.chartLast||!1,type:"boolean"}),t.push({name:"tempID",value:this.state.settings.tempID||"",type:"string"}),t.push({name:"humidityID",value:this.state.settings.humidityID||"",type:"string"}),t.push({name:"locationText",value:this.state.settings.locationText||"",type:"string"}),t.push({name:"hideFirstDay",value:this.state.settings.hideFirstDay||!1,type:"boolean"}),t.forEach(function(e,i){if("doubleSize"===e.name)return t.splice(i,1),!1}),t}},{key:"getCurrentIconDiv",value:function(){var t,e=this.props.classes;return(t=this.state.settings.tempID&&this.state[this.state.settings.tempID])||0===t||(t=this.ids.current.temperature&&this.state[this.ids.current.temperature]),n.a.createElement("div",{key:"todayIcon",className:e["currentIcon-div"]},n.a.createElement("img",{className:e["currentIcon-icon"],src:this.state[this.ids.current.icon],alt:this.state[this.ids.current.state]||""}),null!==t&&void 0!==t?n.a.createElement("div",{className:e["currentIcon-temperature"]},t,"\xb0"):null)}},{key:"getCurrentDateLocationDiv",value:function(){var t=this.props.classes,e=this.ids.current.date&&this.state[this.ids.current.date],i=this.state.settings.locationText;return i=(i=i||this.state.location)||W.t("Weather"),e=e||_.date2string(new Date),n.a.createElement("div",{key:"location",className:t["currentDate-div"]},n.a.createElement("div",{className:t["currentDate-date"]},e,","),n.a.createElement("div",{className:t["currentDate-location"]},i))}},{key:"getTodayWindDiv",value:function(){var t=this.props.classes,e=this.ids.current.windchill&&this.state[this.ids.current.date],i=this.ids.current.windDirection&&this.state[this.ids.current.windDirection];null===i||void 0===i||"number"!==typeof i&&parseInt(i,10)!==i||(i=W.t("wind_"+_.getWindDirection(i)).replace("wind_",""));var s=this.ids.current.windSpeed&&this.state[this.ids.current.windSpeed],a=this.ids.current.windIcon&&this.state[this.ids.current.windIcon],o=this.ids.current.state&&this.state[this.ids.current.state];return n.a.createElement("div",{key:"todayWind",className:t["todayState-div"]},null!==e&&void 0!==e?n.a.createElement("div",{key:"windChill",className:t["todayState-windChill"]},n.a.createElement("span",{className:t["todayState-windChillTitle"]},W.t("Windchill"),": "),n.a.createElement("span",{className:t["todayState-windChillValue"]},e)):null,null!==i&&void 0!==i||null!==s&&void 0!==s?n.a.createElement("div",{key:"wind",className:t["todayState-wind"]},a?null:n.a.createElement("span",{key:"windTitle",className:t["todayState-windTitle"]},W.t("Wind"),":"),a?n.a.createElement("img",{className:t["todayState-windIcon"],src:a,alt:"state"}):null,i?n.a.createElement("span",{className:t["todayState-windDir"]},i):null,null===s||void 0===s||isNaN(s)?null:n.a.createElement("span",{key:"windSpeed",className:t["todayState-windSpeed"]},s,this.windUnit)):null,o?n.a.createElement("div",{key:"state",className:t["todayState-state"]},o):null)}},{key:"getTodayTempDiv",value:function(){var t,e=this.props.classes,i=this.ids.current.temperatureMin&&this.state[this.ids.current.temperatureMin],s=this.ids.current.temperatureMax&&this.state[this.ids.current.temperatureMax],a=this.ids.current.precipitation&&this.state[this.ids.current.precipitation];return null!==i&&void 0!==i&&null!==s&&void 0!==s&&i!==s?t=[n.a.createElement("span",{key:"max",className:e["todayTemp-temperatureMax"]},s,"\xb0"),n.a.createElement("span",{key:"mid"}," / "),n.a.createElement("span",{key:"min",className:e["todayTemp-temperatureMin"]},i,"\xb0")]:(null!==i&&void 0!==i||null!==s&&void 0!==s)&&(null!==i&&void 0!==i||(i=s),t=n.a.createElement("span",{key:"max",className:e["todayTemp-temperatureMax"]},i,"\xb0")),t||a||0===a?n.a.createElement("div",{key:"todayTemp",className:e["todayTemp-div"]},null!==t&&void 0!==t?n.a.createElement("div",{key:"temp",className:e["todayTemp-temperature"]},n.a.createElement("span",{className:e["todayTemp-temperatureValue"]},t)):null,null!==a&&void 0!==a?n.a.createElement("div",{key:"precipitation",className:e["todayTemp-precipitation"]},n.a.createElement("span",{key:"windTitle",className:e["todayTemp-precipitationTitle"]},W.t("Precip."),":"),n.a.createElement("span",{className:e["todayTemp-precipitationValue"]},a,"%")):null):null}},{key:"render",value:function(){return this.wrapContent([this.getCurrentIconDiv(),this.getCurrentDateLocationDiv(),this.getTodayWindDiv(),this.getTodayTempDiv(),this.state.showDialog?n.a.createElement(Ei,{dialogKey:this.key+"dialog",key:this.key+"dialog",name:this.state.settings.name,enumNames:this.props.enumNames,settings:this.state.settings,objects:this.props.objects,windUnit:this.windUnit,pressureUnit:this.pressureUnit,onCollectIds:this.props.onCollectIds,ids:this.ids,windowWidth:this.props.windowWidth,onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue);xi.propTypes={classes:Nt.a.object.isRequired};var Ai=Object(g.withStyles)({"currentIcon-div":{position:"absolute",width:90,height:90,zIndex:0,left:3,top:24},"currentIcon-icon":{width:"100%",zIndex:0},"currentIcon-temperature":{position:"absolute",width:"100%",fontSize:40,zIndex:1,fontWeight:"normal",textAlign:"right",color:"#9c9c9c",top:8,right:-50},"currentDate-div":{position:"absolute",zIndex:1,width:"calc(100% - 2rem)",top:16,left:16},"currentDate-date":{fontWeight:"normal",display:"inline-block"},"currentDate-location":{display:"inline-block",position:"absolute",textOverflow:"ellipsis",width:"calc(100% - 78px)",whiteSpace:"nowrap",right:0,textAlign:"right"},"todayTemp-div":{position:"absolute",zIndex:1,fontWeight:"normal",top:35,maxWidth:"calc(100% - 2rem - 90px)",right:16,textAlign:"right"},"todayTemp-temperature":{},"todayTemp-temperatureMin":{},"todayTemp-temperatureMax":{fontWeight:"bold"},"todayTemp-temperatureTitle":{},"todayTemp-temperatureValue":{},"todayTemp-precipitation":{},"todayTemp-precipitationTitle":{},"todayTemp-precipitationValue":{paddingLeft:2},"todayState-div":{position:"absolute",zIndex:1,width:"calc(100% - 90px)",fontWeight:"normal",bottom:16,left:80,textAlign:"left"},"todayState-wind":{whiteSpace:"nowrap",overflow:"hidden",fontSize:14},"todayState-windTitle":{},"todayState-windDir":{marginLeft:2},"todayState-windSpeed":{marginLeft:2},"todayState-windIcon":{display:"inline-block",marginLeft:5,width:16,maxHeight:16},"todayState-windChill":{},"todayState-windChillTitle":{paddingRight:5},"todayState-windChillValue":{},"todayState-state":{fontSize:14}})(xi),Ui={"header-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16},"date-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16},"date-start":{},"date-end":{},"title-div":{width:"calc(100% - 1em)",position:"relative",fontWeight:"bold",fontSize:20,marginBottom:16},"title-text":{},"info-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16},"info-text":{},"icon-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16,cursor:"pointer",backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center center",height:300},"desc-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16},"desc-text":{},"chart-dialog":{zIndex:2101},"chart-dialog-paper":{width:"calc(100% - 2em)",maxWidth:"calc(100% - 2em)",height:"calc(100% - 2em)",maxHeight:"calc(100% - 2em)"},"chart-dialog-img":{width:"100%"},"chart-dialog-content":{width:"calc(100% - 4em)",height:"calc(100% - 4em)",cursor:"pointer",backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center center"}},Yi=function(t){function e(t){var i;for(var s in Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids=i.props.ids,i.ids)i.ids.hasOwnProperty(s)&&i.ids[s]&&(i.subscribes=i.subscribes||[],i.ids[s]instanceof Array?i.ids[s].forEach(function(t){return i.subscribes.push(t)}):i.subscribes.push(i.ids[s]));i.stateRx.chartOpened=!1,i.setMaxHeight(),i.dialogStyle={overflowY:"auto"};var n=[];return i.props.enumNames.forEach(function(t){return-1===n.indexOf(t)&&n.push(t)}),-1===n.indexOf(i.props.name)&&n.push(i.props.name),i.name=n.join(" / "),i.collectState=null,i.collectTimer=null,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"setMaxHeight",value:function(t){var e=0;for(var i in t=t||this.state,this.divs={header:{height:64,visible:!0},icon:{height:300,visible:!0},date:{height:48,visible:!0},title:{height:48,visible:t&&t[this.ids.title]},info:{height:48,visible:t&&t[this.ids.info]},desc:{height:120,visible:t&&t[this.ids.description]}},this.divs)this.divs.hasOwnProperty(i)&&this.divs[i].visible&&(e+=this.divs[i].height+16);this.dialogStyle.maxHeight!==e&&(this.dialogStyle={maxHeight:e})}},{key:"onUpdateTimer",value:function(){this.collectTimer=null,this.collectState&&(this.setMaxHeight(this.collectState),this.setState(this.collectState),this.collectState=null)}},{key:"updateState",value:function(t,i){var s=this;if(t===this.ids.title||t===this.ids.info||t===this.ids.start||t===this.ids.description||t===this.ids.end||t===this.ids.icon)this.collectState=this.collectState||{},this.collectState[t]=i.val||"",this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200);else if(t===this.ids.warning){var n=parseInt(i.val,10)||0;this.collectState=this.collectState||{},this.collectState[t]=n||"",this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200)}else console.log(t+" => "+i.val),Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getHeaderDiv",value:function(){return this.divs.header.visible?n.a.createElement("div",{key:"header",className:this.props.classes["header-div"]},this.name):null}},{key:"onOpenNewWindow",value:function(){this.ids.icon&&this.state[this.ids.icon]&&window.open(this.state[this.ids.icon],"_blank").focus()}},{key:"getIconDiv",value:function(){var t=this;if(!this.ids.icon||!this.state[this.ids.icon])return null;var e=this.state[this.ids.icon];return[n.a.createElement(gt.a,{key:"icon",className:this.props.classes["icon-div"],style:{backgroundImage:"url("+e+")"},onClick:function(){return t.setState({chartOpened:!0})}},"\xa0"),this.state.chartOpened?n.a.createElement(v.a,{key:"chart-dialog",open:!0,classes:{paper:this.props.classes["chart-dialog-paper"]},onClose:function(){return t.setState({chartOpened:!1})},className:this.props.classes["chart-dialog"],"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.a.createElement(E.a,{id:"alert-dialog-title"},W.t("Chart")),n.a.createElement(C.a,{className:this.props.classes["chart-dialog-content"],onClick:function(){return t.onOpenNewWindow()},style:{backgroundImage:"url("+e+")"}}),n.a.createElement(S.a,null,n.a.createElement(T.a,{onClick:function(){return t.setState({chartOpened:!1})},color:"primary",autoFocus:!0},W.t("Close")))):null]}},{key:"getDateDiv",value:function(){var t=this.props.classes,e=this.ids.start&&this.state[this.ids.start],i=this.ids.end&&this.state[this.ids.end];return n.a.createElement("div",{key:"date",className:t["date-div"]},n.a.createElement("div",{className:t["date-start"]},e+(i?" - "+i:"")))}},{key:"getTitleDiv",value:function(){var t=this.props.classes,e=this.ids.title&&this.state[this.ids.title];return n.a.createElement("div",{key:"title",className:t["title-div"]},n.a.createElement("div",{className:t["title-text"]},e))}},{key:"getInfoDiv",value:function(){var t=this.props.classes,e=this.ids.info&&this.state[this.ids.info];return n.a.createElement("div",{key:"info",className:t["info-div"]},n.a.createElement("div",{className:t["info-text"]},e))}},{key:"getDescDiv",value:function(){var t=this.props.classes,e=this.ids.description&&this.state[this.ids.description];return n.a.createElement("div",{key:"info",className:t["desc-div"]},n.a.createElement("div",{className:t["desc-text"]},e))}},{key:"generateContent",value:function(){return[this.getHeaderDiv(),this.getTitleDiv(),this.getDateDiv(),this.getInfoDiv(),this.getIconDiv(),this.getDescDiv()]}}]),e}(oe);Yi.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string.isRequired,windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,objects:Nt.a.object,states:Nt.a.object,onCollectIds:Nt.a.func,enumNames:Nt.a.array,ids:Nt.a.object.isRequired,settings:Nt.a.object};var Qi=Object(g.withStyles)(Ui)(Yi),Wi=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids={warning:null,title:null,info:null,start:null,end:null,icon:null,description:null},i.collectState=null,i.collectTimer=null,i.channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"LEVEL"===t.name});s?(i.id=s.id,i.ids.warning=s.id):i.id="",s=i.channelInfo.states.find(function(t){return t.id&&"TITLE"===t.name}),i.ids.title=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"INFO"===t.name}),i.ids.info=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"START"===t.name}),i.ids.start=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"END"===t.name}),i.ids.end=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"ICON"===t.name}),i.ids.icon=s&&s.id,s=i.channelInfo.states.find(function(t){return t.id&&"DESC"===t.name}),i.ids.description=s&&s.id}return i.width=2,i.props.tile.setState({isPointer:!1}),i.props.tile.setState({state:!0}),i.key="smart-warning-"+i.id+"-",i.stateRx.showDialog=!1,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"onUpdateTimer",value:function(){this.collectTimer=null,this.collectState&&(void 0!==this.collectState[this.id]&&this.props.tile.setVisibility(!!this.collectState[this.id]),this.setState(this.collectState),this.collectState=null)}},{key:"updateState",value:function(t,i){var s=this;if(t===this.ids.title||t===this.ids.info||t===this.ids.icon)this.collectState=this.collectState||{},this.collectState[t]=i.val||"",this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200);else if(t===this.ids.start||t===this.ids.end){if(this.collectState=this.collectState||{},"string"===typeof i.val){var n=(new Date).getFullYear();i.val=i.val.replace(n.toString(),"").replace((n+1).toString(),"")}this.collectState[t]=i.val||"",this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200)}else if(t===this.ids.warning){var a=parseInt(i.val,10)||0;this.collectState=this.collectState||{},this.collectState[t]=a||"",this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200)}else console.log(t+" => "+i.val),Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.forEach(function(e,i){if("doubleSize"===e.name)return t.splice(i,1),!1}),t}},{key:"getIconDiv",value:function(){var t=this.props.classes;return this.ids.icon&&this.state[this.ids.icon]?n.a.createElement("div",{key:"icon",className:t["icon-div"],style:{backgroundImage:"url("+this.state[this.ids.icon]+")"}}):null}},{key:"getDateDiv",value:function(){var t=this.props.classes,e=this.ids.start&&this.state[this.ids.start],i=this.ids.end&&this.state[this.ids.end];return n.a.createElement("div",{key:"date",className:t["date-div"]},n.a.createElement("div",{className:t["date-start"]},e),i?n.a.createElement("div",{className:t["date-end"]},"-",i):null)}},{key:"getTitleDiv",value:function(){var t=this.props.classes,e=this.ids.title&&this.state[this.ids.title];return n.a.createElement("div",{key:"title",className:t["title-div"]},n.a.createElement("div",{className:t["title-text"]},e))}},{key:"getInfoDiv",value:function(){var t=this.props.classes,e=this.ids.info&&this.state[this.ids.info];return n.a.createElement("div",{key:"info",className:t["info-div"]},n.a.createElement("div",{className:t["info-text"]},e))}},{key:"render",value:function(){return this.wrapContent([this.getIconDiv(),this.getDateDiv(),this.getTitleDiv(),this.getInfoDiv(),this.state.showDialog?n.a.createElement(Qi,{dialogKey:this.key+"dialog",key:this.key+"dialog",name:this.state.settings.name,enumNames:this.props.enumNames,settings:this.state.settings,objects:this.props.objects,onCollectIds:this.props.onCollectIds,ids:this.ids,windowWidth:this.props.windowWidth,onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue);Wi.propTypes={classes:Nt.a.object.isRequired};var Ri=Object(g.withStyles)({"icon-div":{position:"absolute",width:90,height:90,zIndex:0,left:10,top:24,backgroundSize:"contain",backgroundRepeat:"no-repeat",backgroundPosition:"center center"},"date-div":{position:"absolute",zIndex:1,width:"calc(100% - 2rem - 90px)",top:16,right:16},"date-start":{fontWeight:"normal",textAlign:"left",width:"100%"},"date-end":{textAlign:"right",fontWeight:"normal",width:"100%"},"title-div":{position:"absolute",zIndex:1,fontWeight:"bold",top:55,width:"calc(100% - 2rem - 90px)",right:16,textAlign:"left"},"title-text":{},"info-div":{position:"absolute",zIndex:1,maxWidth:"calc(100% - 2rem - 90px)",fontWeight:"normal",top:75,right:16,textAlign:"left"},"info-text":{overflow:"hidden",fontSize:14}})(Wi),Pi={"header-div":{width:"calc(100% - 1em)",position:"relative",marginBottom:16},"title-div":{width:"calc(100% - 1em)",position:"relative",fontWeight:"bold",fontSize:20,marginBottom:16},"title-text":{color:"black"},"iframe-div":{width:"calc(100% - 1em)",minHeight:300,height:"calc(100% - 64px)"},iframe:{width:"100%",height:"100%",border:0},"image-img":{width:"100%",height:"100%",objectFit:"contain"}},Vi=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids=i.props.ids,i.setMaxHeight(),i.dialogStyle={overflowY:"auto"},i.stateRx.url=i.getUrl(i.props.settings.background),i.props.settings.fullWidth&&(i.dialogStyle={width:"calc(100% - 4rem)",maxWidth:"calc(100% - 4rem)",left:"2rem"}),i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"getUrl",value:function(t){return this.props.image&&t?-1!==t.indexOf("?")?t+"&ts="+Date.now():t+"?ts="+Date.now():t}},{key:"setMaxHeight",value:function(t){var e=0;for(var i in t=t||this.state,this.divs={title:{height:64,visible:!!this.props.settings.title},iframe:{height:300,visible:!0}},this.divs)this.divs.hasOwnProperty(i)&&this.divs[i].visible&&(e+=this.divs[i].height+16);this.dialogStyle.maxHeight!==e&&(this.dialogStyle={maxHeight:e})}},{key:"updateUrl",value:function(){this.props.image&&this.setState({url:this.getUrl(this.props.settings.background)})}},{key:"componentDidMount",value:function(){var t=this;this.interval&&(clearInterval(this.interval),this.interval=null),(this.props.settings.updateInDialog||this.props.settings.update)&&(this.interval=setInterval(function(){return t.updateUrl()},this.props.settings.updateInDialog||this.props.settings.update))}},{key:"componentWillUnmount",value:function(){this.interval&&(clearInterval(this.interval),this.interval=null)}},{key:"onOpenNewWindow",value:function(){this.props.settings.background&&window.open(this.props.settings.background,"_blank").focus()}},{key:"getTitleDiv",value:function(){var t=this.props.classes,e=this.props.settings.title;return e?n.a.createElement("div",{key:"title",className:t["title-div"]},n.a.createElement("div",{className:t["title-text"]},e)):null}},{key:"getIFrameDiv",value:function(){var t=this,e={height:"calc(100% - "+(this.props.settings.title?64:"0")+"px)"};return!this.props.image&&this.state.url?n.a.createElement(gt.a,{onClick:function(){return t.onOpenNewWindow()},className:this.props.classes["iframe-div"],style:e},n.a.createElement("iframe",{className:this.props.classes.iframe,title:this.state.url,src:this.state.url})):this.state.url?n.a.createElement(gt.a,{key:"image",style:e,onClick:function(){return t.onOpenNewWindow()},className:this.props.classes["iframe-div"]},n.a.createElement("img",{className:this.props.classes["image-img"],alt:"",src:this.state.url})):void 0}},{key:"generateContent",value:function(){return[this.getTitleDiv(),this.getIFrameDiv()]}}]),e}(oe);Vi.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),dialogKey:Nt.a.string.isRequired,windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,objects:Nt.a.object,states:Nt.a.object,onCollectIds:Nt.a.func,settings:Nt.a.object,image:Nt.a.bool};var Bi=Object(g.withStyles)(Pi)(Vi),_i=function(t){function e(t){var i;if(Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).ids={url:null},i.collectState=null,i.collectTimer=null,i.channelInfo.states){var s=i.channelInfo.states.find(function(t){return t.id&&"URL"===t.name});if(s){i.id=s.id,i.ids.url=s.id;var n=s.settingsId;if(n){var a=_.getSettingsCustomURLs(i.props.objects[n],null,{user:i.props.user});if(a){var o=a.find(function(t){return t.id===s.id});o&&(i.stateRx.settings=JSON.parse(JSON.stringify(o)),i.customSettings=i.stateRx.settings)}}}else i.id=""}if(i.id){var l=i.id.match(/^_custom_(\d+)$/);l&&Date.now()-l[1]<500&&(i.stateRx.showSettings=!0)}return i.image=i.isImage(),i.image&&i.props.tile.setBackgroundImage(i.customSettings.background||"",!0),i.width=2,i.props.tile.setState({isPointer:!1}),i.props.tile.setState({state:!0}),i.key="smart-warning-"+i.id+"-",i.props.tile.setVisibility(i.id&&!!i.stateRx.settings),i.stateRx.showDialog=!1,i.interval=null,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"isImage",value:function(){return this.customSettings.isImage||this.customSettings.background&&this.customSettings.background.toLowerCase().match(/\.png|\.jpg|\.gif|\.jpeg/)}},{key:"componentWillUnmount",value:function(){this.interval&&(clearInterval(this.interval),this.interval=null)}},{key:"updateUrl",value:function(){this.customSettings.background&&this.image&&(-1!==this.customSettings.background.indexOf("?")?this.props.tile.setBackgroundImage(this.customSettings.background+"&ts="+Date.now(),!0,!0):this.props.tile.setBackgroundImage(this.customSettings.background+"?ts="+Date.now(),!0,!0))}},{key:"componentDidMount",value:function(){var t=this;this.interval&&(clearInterval(this.interval),this.interval=null),this.customSettings&&this.customSettings.update&&(this.interval=setInterval(function(){return t.updateUrl()},this.customSettings.update))}},{key:"onUpdateTimer",value:function(){this.collectTimer=null,this.collectState&&(void 0!==this.collectState[this.id]&&this.props.tile.setVisibility(!!this.collectState[this.id]),this.setState(this.collectState),this.collectState=null)}},{key:"updateState",value:function(t,i){var s=this;t===this.ids.url?(this.collectState=this.collectState||{},this.collectState[t]=i.val||"",this.collectTimer&&clearTimeout(this.collectTimer),this.collectTimer=setTimeout(function(){return s.onUpdateTimer()},200)):(console.log(t+" => "+i.val),Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i))}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.unshift({name:"hideIcon",value:this.state.settings.hideIcon||!1,type:"boolean"}),t.unshift({name:"fullWidth",value:this.state.settings.fullWidth||!1,type:"boolean"}),t.unshift({name:"updateInDialog",value:this.state.settings.updateInDialog||0,type:"number"}),t.unshift({name:"update",value:this.state.settings.update||0,type:"number"}),t.unshift({name:"title",value:void 0===this.state.settings.title?"":this.state.settings.title,type:"text"}),t.unshift({name:"isImage",value:this.state.settings.isImage||!1,type:"boolean"}),t.forEach(function(e,i){if("background"===e.name)return e.type="text",t.splice(i,1),t.unshift(e),!1}),t.forEach(function(e,i){if("name"===e.name)return t.splice(i,1),!1}),t.unshift({type:"delete"}),t}},{key:"saveDialogSettings",value:function(t){t&&(t.update=parseInt(t.update,10)||0,t.update&&t.update<500&&(t.update=500),t.updateInDialog=parseInt(t.updateInDialog,10)||0,t.updateInDialog&&t.updateInDialog<500&&(t.updateInDialog=500)),Object(pt.a)(Object(u.a)(e.prototype),"saveDialogSettings",this).call(this,t,function(t){this.customSettings=t,this.componentDidMount(),this.image=this.isImage(),this.image&&t&&this.props.tile.setBackgroundImage(this.state.settings&&this.state.settings.background||"",!0),this.setState({settings:t})}.bind(this))}},{key:"getIconDiv",value:function(){var t;return this.state.settings.hideIcon?null:(t=this.state.settings.icon?n.a.createElement("img",{src:this.state.settings.icon,alt:"icon",style:{height:"100%",zIndex:1,color:"white"}}):n.a.createElement(A.f,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{zIndex:1,height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size,color:"white"}}),n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,{opacity:.7}),className:"tile-icon"},t))}},{key:"getIFrameDiv",value:function(){return!this.image&&this.state.settings.background?n.a.createElement("iframe",{key:"iframe",title:this.state.settings.name,className:this.props.classes.iframe,src:this.state.settings.background}):null}},{key:"getTitleDiv",value:function(){var t=this.props.classes,e=this.state.settings.title;return e?n.a.createElement("div",{key:"title",className:t["title-div"]},n.a.createElement("div",{className:t["title-text"]},e)):null}},{key:"onDialogClose",value:function(){Object(pt.a)(Object(u.a)(e.prototype),"onDialogClose",this).call(this),this.componentDidMount()}},{key:"onLongClick",value:function(t){Object(pt.a)(Object(u.a)(e.prototype),"onLongClick",this).call(this,t),this.interval&&(clearInterval(this.interval),this.interval=null)}},{key:"render",value:function(){return this.wrapContent([this.getIFrameDiv(),this.getIconDiv(),this.getTitleDiv(),this.state.showDialog?n.a.createElement(Bi,{dialogKey:this.key+"dialog",key:this.key+"dialog",name:this.state.settings.name,enumNames:this.props.enumNames,settings:this.state.settings,objects:this.props.objects,image:this.image,onCollectIds:this.props.onCollectIds,ids:this.ids,windowWidth:this.props.windowWidth,onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue);_i.propTypes={classes:Nt.a.object.isRequired};var Ji=Object(g.withStyles)({"title-div":{position:"absolute",zIndex:1,fontWeight:"bold",bottom:0,left:0,height:48,background:"rgba(255,255,255,0.45)",color:"rgba(0, 0, 0, 0.6)",width:"100%",textAlign:"left"},"title-text":{paddingLeft:16,paddingTop:16},iframe:{position:"absolute",zIndex:0,top:0,left:0,right:0,bottom:0,border:0}})(_i),Zi=i(622),Gi=i(233),Hi=i.n(Gi),Fi=i(234),Ki=i.n(Fi),Xi=function(){function t(){Object(r.a)(this,t)}return Object(l.a)(t,null,[{key:"hue2rgb",value:function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}},{key:"hslToRgb",value:function(e,i,s){var n,a,o;if(i){var r=s<.5?s*(1+i):s+i-s*i,l=2*s-r;n=t.hue2rgb(l,r,e+1/3),a=t.hue2rgb(l,r,e),o=t.hue2rgb(l,r,e-1/3)}else n=a=o=s;return[255*n,255*a,255*o]}},{key:"rgbToHsl",value:function(t,e,i){t/=255,e/=255,i/=255;var s,n,a=Math.max(t,e,i),o=Math.min(t,e,i),r=(a+o)/2;if(a===o)s=n=0;else{var l=a-o;switch(n=r>.5?l/(2-a-o):l/(a+o),a){case t:s=(e-i)/l+(e255?255:Math.round(t)}},{key:"temperatureToRGB",value:function(e){var i,s,n,a=e/100;return a<=66?(i=255,s=a,s=99.4708025861*Math.log(s)-161.1195681661,a<=19?n=0:(n=a-10,n=138.5177312231*Math.log(n)-305.0447927307)):(i=a-60,i=329.698727446*Math.pow(i,-.1332047592),s=a-60,s=288.1221695283*Math.pow(s,-.0755148492),n=255),[t.limit(i,0,255),t.limit(s,0,255),t.limit(n,0,255)]}},{key:"rgb2temperature",value:function(e,i,s){for(var n,a,o=2200,r=6500;r-o>.4;)n=(r+o)/2,(a=t.temperatureToRGB(n)).blue/a.red>=s/e?r=n:o=n;return Math.round(n)}},{key:"rgb2string",value:function(e){var i=t.limit(e[0]).toString(16),s=t.limit(e[1]).toString(16),n=t.limit(e[2]).toString(16);return i.length<2&&(i="0"+i),s.length<2&&(s="0"+s),n.length<2&&(n="0"+n),"#"+i+s+n}},{key:"hex2array",value:function(t){return[parseInt(t.substring(1,3),16),parseInt(t.substring(3,5),16),parseInt(t.substring(5,7),16)]}},{key:"hexToRgbA",value:function(t,e){var i=parseInt(t.substring(1,3),16),s=parseInt(t.substring(3,5),16),n=parseInt(t.substring(5,7),16);return void 0!==e?"rgba("+i+","+s+","+n+","+e+")":"rgb("+i+","+s+","+n+")"}}]),t}(),qi=i(235),$i=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).state={hue:i.props.hue||0,saturation:i.props.saturation},i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentWillReceiveProps",value:function(t){var e={},i=!1;t.hue!==this.state.hue&&(e.hue=t.hue,i=!0),t.saturation!==this.state.saturation&&(e.saturation=t.saturation,i=!0),i&&this.setState(e)}},{key:"handleChange",value:function(t,e){t&&t.stopPropagation(),this.props.onChange&&this.props.onChange(e),this.setState({saturation:e})}},{key:"render",value:function(){var t="#FFFFFF"===this.state.hue?"#FFFFFF":Xi.rgb2string(Xi.hslToRgb(this.state.hue/360,1,.5)),e="linear-gradient(to right, rgba(0,0,0,1) 0%,"+Xi.hexToRgbA(t,1)+" 100%)";return n.a.createElement("div",{className:this.props.classes.div,style:{background:e}},n.a.createElement(qi.a,{value:this.state.saturation,"aria-labelledby":"label",min:0,max:100,classes:{track:this.props.classes.track,trackBefore:this.props.classes.trackBefore,trackAfter:this.props.classes.trackAfter,thumb:this.props.classes.thumb},onChange:this.handleChange.bind(this)}))}}]),e}(n.a.Component),ts=Object(g.withStyles)({track:{background:"rgba(0,0,0,0) !important"},trackBefore:{background:"rgba(0,0,0,0) !important"},trackAfter:{background:"rgba(0,0,0,0) !important"},thumb:{background:"rgba(255,255,255,0.8)",borderRadius:10,height:20},div:{borderRadius:15,paddingLeft:5,paddingRight:5,width:"100%",height:30,paddingTop:.1}})($i),es={buttonColorStyle:{position:"absolute",left:"calc(50% + 7rem)",bottom:"4rem",height:"2.5rem",width:"2.5rem",cursor:"pointer"},dimmerSlider:{width:"calc(100% - 3rem)",position:"absolute",top:"25rem",left:16},buttonOnOff:{position:"absolute",left:5,top:5,height:24,width:36,background:"-webkit-gradient(linear, left bottom, left top, color-stop(0, #1d1d1d), color-stop(1, #131313))",boxShadow:"0 0.2em 0.1em 0.05em rgba(255, 255, 255, 0.1) inset, 0 -0.2em 0.1em 0.05em rgba(0, 0, 0, 0.5) inset, 0 0.5em 0.65em 0 rgba(0, 0, 0, 0.3)",color:"rgb(99, 99, 99)",textShadow:"0 0 0.3em rgba(23,23,23)"},buttonOn:{color:"#3f3f3f",background:"#F8E900"},buttonOff:{color:"#ffffff",background:"#c0bdbe"},buttonColor:{position:"absolute",left:50,top:5,height:24,width:36,background:"-webkit-gradient(linear, left bottom, left top, color-stop(0, #1d1d1d), color-stop(1, #131313))",boxShadow:"0 0.2em 0.1em 0.05em rgba(255, 255, 255, 0.1) inset, 0 -0.2em 0.1em 0.05em rgba(0, 0, 0, 0.5) inset, 0 0.5em 0.65em 0 rgba(0, 0, 0, 0.3)",color:"rgb(99, 99, 99)",textShadow:"0 0 0.3em rgba(23,23,23)"},buttonRgb:{color:"#ffffff",background:"#ff6a5b"},buttonTemp:{color:"#ffffff",background:"#c0bdbe"},cursor:{position:"absolute",cursor:"pointer",zIndex:12,pointerEvents:"none",width:32,height:32,borderRadius:32,boxSizing:"border-box",border:"2px solid dimgrey"},colorCircle:{position:"absolute",zIndex:11,width:"100%",height:"auto",top:"3rem",left:0},div:{width:"20rem",position:"absolute",height:"100%"}},is=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).tMin=i.props.temperatureMin||2200,i.tMax=i.props.temperatureMax||6500,i.stateRx.color=(i.props.startRGB||"#00FF00").toString(),i.stateRx.temperature=i.props.startTemp||Xi.rgb2temperature(i.stateRx.color),i.stateRx.dimmer=i.props.useDimmer?null===i.props.startDimmer?100:parseFloat(i.props.startDimmer)||0:0,i.stateRx.on=!i.props.useOn||(null===i.props.startOn||!!i.props.startOn),i.stateRx.tempMode=i.props.startModeTemp&&i.props.modeTemperature||!i.props.modeRGB&&i.props.modeTemperature,i.onMouseMoveBind=i.onMouseMove.bind(Object(d.a)(Object(d.a)(i))),i.onMouseUpBind=i.onMouseUp.bind(Object(d.a)(Object(d.a)(i))),i.refColor=n.a.createRef(),i.refColorCursor=n.a.createRef(),i.refColorImage=n.a.createRef(),i.colorWidth=0,i.colorTop=0,i.colorLeft=0,i.button={time:0,name:"",timer:null},i.stateRx.tempMode&&(i.dialogStyle={background:"rgba(154, 154, 154, 0.8)"}),i.setMaxHeight(),i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentWillReceiveProps",value:function(t){var e={},i=!1;t.startOn!==this.state.on&&(e.on=t.startOn,i=!0),i&&this.setState(e)}},{key:"setMaxHeight",value:function(){var t=0;for(var e in this.divs={header:{height:64,visible:!0},color:{height:320,visible:!0},dimmer:{height:64,visible:this.props.useDimmer}},this.divs)this.divs.hasOwnProperty(e)&&this.divs[e].visible&&(t+=this.divs[e].height+16);this.dialogStyle.maxHeight!==t&&(this.dialogStyle.maxHeight=t)}},{key:"createCT",value:function(t){var e,i;t=t||300;var s=Math.PI/180,n=document.createElement("canvas");n.width=n.height=t;for(var a=n.getContext("2d"),o=t;o>.8*t;o--){i=120*s;for(var r=0;r<300;r+=1){e=(r+120+1)*s;var l=Xi.temperatureToRGB(r/300*(this.tMax-this.tMin)+this.tMin);a.strokeStyle=Xi.rgb2string(l),a.beginPath(),a.arc(t/2,t/2,o/2*.99,i,e+.01),a.stroke(),i=e}}return n.toDataURL()}},{key:"tempToPos",value:function(t,e){var i=(300*((t-this.tMin)/(this.tMax-this.tMin))+120)/360,s=e/2;return{x:s+Math.cos(2*Math.PI*i)*s,y:s+Math.sin(2*Math.PI*i)*s}}},{key:"posToTemp",value:function(t,e){var i;return(i=t<0?180-(i=180*Math.atan2(e,-t)/Math.PI):180*Math.atan2(e,t)/Math.PI)<0&&(i+=360),i>90?i-=120:i+=240,i<0&&(i=0),i>300&&(i=300),(i/=300)*(this.tMax-this.tMin)+this.tMin}},{key:"componentDidUpdate",value:function(){if(!this.colorWidth){this.colorWidth=this.refColorImage.current.offsetWidth,this.colorLeft=this.refColorImage.current.offsetLeft,this.colorTop=this.refColorImage.current.offsetTop;var t=this.state.tempMode?this.tempToPos(this.state.temperature,this.colorWidth-32):e.colorToPos(this.state.color,this.colorWidth-32);this.refColorCursor.current.style.top=this.colorTop+t.y+(t.y>0?0:-32)+"px",this.refColorCursor.current.style.left=this.colorLeft+t.x+(t.x>0?0:-32)+"px",this.rect=this.refColorImage.current.getBoundingClientRect()}}},{key:"sendRGB",value:function(){this.props.useOn&&!this.state.on&&(this.setState({on:!0}),this.props.onToggle(!0)),this.props.useDimmer&&(this.state.dimmer||(this.setState({dimmer:100}),this.props.onDimmerChange(100))),this.state.tempMode?this.props.onRgbChange(Xi.rgb2string(Xi.temperatureToRGB(this.state.temperature)),Math.round(this.state.temperature),e.COLOR_MODES.TEMPERATURE):this.props.onRgbChange(this.state.color,0,e.COLOR_MODES.RGB)}},{key:"onSwitchColorMode",value:function(){var t={tempMode:!this.state.tempMode};if(t.tempMode){var e=Xi.hex2array(this.state.color);t.temperature=Xi.rgb2temperature(e[0],e[1],e[2]),this.setDialogStyle({background:"rgba(154, 154, 154, 0.8)",maxHeight:this.dialogStyle.maxHeight})}else t.color=Xi.rgb2string(Xi.temperatureToRGB(this.state.temperature)),this.setDialogStyle({maxHeight:this.dialogStyle.maxHeight});this.setState(t)}},{key:"eventToValue",value:function(t){var i=this,s=t.touches?t.touches[t.touches.length-1].clientY:t.pageY,n=t.touches?t.touches[t.touches.length-1].clientX:t.pageX,a=this.colorWidth/2;if(this.state.tempMode){var o=this.posToTemp(n-this.rect.left-a,s-this.rect.top-a);this.setState({temperature:o})}else{var r=e.posToColor(n-this.rect.left-a,s-this.rect.top-a);this.setState({color:r})}this.changeTimer&&clearTimeout(this.changeTimer),this.props.onRgbChange&&(this.changeTimer=setTimeout(function(){i.changeTimer=null,i.sendRGB()},1e3))}},{key:"onMouseMove",value:function(t){t.preventDefault(),t.stopPropagation(),this.eventToValue(t)}},{key:"onMouseDown",value:function(t){t.preventDefault(),t.stopPropagation(),this.eventToValue(t),document.addEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.addEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.addEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0})}},{key:"onMouseUp",value:function(t){t.preventDefault(),t.stopPropagation(),this.click=Date.now(),this.changeTimer&&(clearTimeout(this.changeTimer),this.changeTimer=null),document.removeEventListener("mousemove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("mouseup",this.onMouseUpBind,{passive:!1,capture:!0}),document.removeEventListener("touchmove",this.onMouseMoveBind,{passive:!1,capture:!0}),document.removeEventListener("touchend",this.onMouseUpBind,{passive:!1,capture:!0}),this.sendRGB()}},{key:"onClick",value:function(){this.click=Date.now()}},{key:"getHue",value:function(){if(this.state.tempMode)return"#FFFFFF";var t=this.state.color;if(!t)return"#FFFFFF";var e=Xi.hex2array(t),i=Object(R.a)(e,3),s=i[0],n=i[1],a=i[2],o=Xi.rgbToHsl(s,n,a);return 360*Object(R.a)(o,1)[0]}},{key:"onDimmerChanged",value:function(t){var e=this;this.click=Date.now(),this.setState({dimmer:t}),this.changeTimer&&clearTimeout(this.changeTimer),this.props.onRgbChange&&(this.changeTimer=setTimeout(function(t){e.changeTimer=null,e.props.onDimmerChange(t),t&&e.props.useOn&&!e.state.on&&(e.setState({on:!0}),e.props.onToggle(!0))},1e3,t))}},{key:"getOnOffButton",value:function(){if(!this.props.useOn)return null;var t=Object.assign({},es.buttonOnOff,this.state.on?es.buttonOn:es.buttonOff);return n.a.createElement(T.a,{key:"onoff-button",variant:"fab",color:"primary","aria-label":"mute",title:this.state.on?W.t("Off"):W.t("On"),style:t,onClick:this.onToggle.bind(this)},n.a.createElement(de.b,null))}},{key:"getColorModeButton",value:function(){if(!this.props.modeTemperature||!this.props.modeRGB)return null;var t=Object.assign({},es.buttonColor,this.state.tempMode?es.buttonRgb:es.buttonTemp);return n.a.createElement(T.a,{key:"color-mode-button",variant:"fab",color:"primary","aria-label":"mute",title:this.state.tempMode?W.t("HUE"):W.t("Color temperature"),style:t,onClick:this.onSwitchColorMode.bind(this)},this.state.tempMode?n.a.createElement(x.p,null):n.a.createElement(de.c,null))}},{key:"onToggle",value:function(){this.onClick(),this.props.onToggle&&this.props.onToggle(!this.state.on),this.setState({on:!this.state.on})}},{key:"generateContent",value:function(){var t=this.state.tempMode?this.tempToPos(this.state.temperature,this.colorWidth-32):e.colorToPos(this.state.color,this.colorWidth-32);return this.state.tempMode&&(this.imageCT=Hi.a),[n.a.createElement("div",{key:"color-dialog",ref:this.refColor,className:this.props.classes.div,style:{width:this.colorWidth||"20rem",left:"calc(50% - "+(this.colorWidth?this.colorWidth/2+"px":"10rem")+")"}},n.a.createElement("img",{ref:this.refColorImage,alt:"color",src:this.state.tempMode?this.imageCT:Ki.a,onMouseDown:this.onMouseDown.bind(this),onTouchStart:this.onMouseDown.bind(this),className:this.props.classes.colorCircle}),n.a.createElement("div",{ref:this.refColorCursor,className:this.props.classes.cursor,style:{background:this.state.tempMode?Xi.rgb2string(Xi.temperatureToRGB(this.state.temperature)):this.state.color,top:t.y+this.colorTop+(t.y>0?0:-32),left:t.x+this.colorLeft+(t.x>0?0:-32)}})),this.props.useDimmer?n.a.createElement("div",{style:es.dimmerSlider,key:"dimmer"},n.a.createElement(ts,{hue:this.getHue(),saturation:this.state.dimmer,onChange:this.onDimmerChanged.bind(this)})):null,this.getOnOffButton(),this.getColorModeButton()]}}],[{key:"createRgb",value:function(t){var e,i;t=t||300;var s=Math.PI/180,n=document.createElement("canvas");n.width=n.height=t;for(var a,o,r=n.getContext("2d"),l=t;l>1;l--){i=0;for(var c=0;c<360;c+=1)e=(c+1)*s,o=(a=l/t)>.5?(1+Math.sin(Math.PI*(a+.5)*2-Math.PI/2))/2:0,r.strokeStyle="hsl("+-c+", 100%, "+(50-50*o+50)+"%)",r.beginPath(),r.arc(t/2,t/2,l/2,i,e+.01),r.stroke(),i=e}return n.toDataURL()}},{key:"colorToPos",value:function(t,e){var i=Object(ge.decomposeColor)(t),s=-Xi.rgbToHsl(i.values[0],i.values[1],i.values[2])[0];isNaN(s)&&(s=0);var n=e/2;return{x:n+Math.cos(2*Math.PI*s)*n,y:n+Math.sin(2*Math.PI*s)*n}}},{key:"posToColor",value:function(t,e){var i;i=t<0?180-(i=180*Math.atan2(e,-t)/Math.PI):180*Math.atan2(e,t)/Math.PI,(i*=-1)<0&&(i+=360),i/=360;var s=Xi.hslToRgb(i,1,.5),n=Math.round(s[0]).toString(16),a=Math.round(s[1]).toString(16),o=Math.round(s[2]).toString(16);return n.length<2&&(n="0"+n),a.length<2&&(a="0"+a),o.length<2&&(o="0"+o),"#"+n+a+o}}]),e}(oe);is.propTypes={name:Nt.a.oneOfType([Nt.a.string,Nt.a.object]),windowWidth:Nt.a.number,onClose:Nt.a.func.isRequired,onRgbChange:Nt.a.func,onDimmerChange:Nt.a.func,onToggle:Nt.a.func,ids:Nt.a.object,startRGB:Nt.a.string,startTemp:Nt.a.number,startModeTemp:Nt.a.bool,modeRGB:Nt.a.bool,modeTemperature:Nt.a.bool,startDimmer:Nt.a.number,useDimmer:Nt.a.bool,startOn:Nt.a.bool,useOn:Nt.a.bool};var ss=Object(g.withStyles)(es)(is),ns=function(t){function e(t){var i;Object(r.a)(this,e);var s,n={red:null,green:null,blue:null,rgb:null,hue:null,saturation:null,brightness:null,temperature:null,dimmer:null,on:null};if((i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo.states){var a=i.channelInfo.states.find(function(t){return t.id&&"RED"===t.name});a&&i.props.objects[a.id]&&i.props.objects[a.id].common?(i.id=a.id,n.red={id:a.id},s=ss.COLOR_MODES.R_G_B,void 0!==i.props.objects[a.id].common.min?n.red.min=parseFloat(i.props.objects[a.id].common.min):n.red.min=0,void 0!==i.props.objects[a.id].common.max?n.red.max=parseFloat(i.props.objects[a.id].common.max):n.red.max=255,(a=i.channelInfo.states.find(function(t){return t.id&&"GREEN"===t.name}))&&i.props.objects[a.id]&&i.props.objects[a.id].common&&(n.green={id:a.id},void 0!==i.props.objects[a.id].common.min?n.green.min=parseFloat(i.props.objects[a.id].common.min):n.green.min=0,void 0!==i.props.objects[a.id].common.max?n.green.max=parseFloat(i.props.objects[a.id].common.max):n.green.max=255),(a=i.channelInfo.states.find(function(t){return t.id&&"BLUE"===t.name}))&&i.props.objects[a.id]&&i.props.objects[a.id].common&&(n.blue={id:a.id},void 0!==i.props.objects[a.id].common.min?n.blue.min=parseFloat(i.props.objects[a.id].common.min):n.blue.min=0,void 0!==i.props.objects[a.id].common.max?n.blue.max=parseFloat(i.props.objects[a.id].common.max):n.blue.max=255)):(a=i.channelInfo.states.find(function(t){return t.id&&"RGB"===t.name}))&&i.props.objects[a.id]&&i.props.objects[a.id].common?(s=ss.COLOR_MODES.RGB,n.rgb={id:a.id},i.id=i.id||a.id):(a=i.channelInfo.states.find(function(t){return t.id&&"HUE"===t.name}))&&i.props.objects[a.id]&&i.props.objects[a.id].common&&(s=ss.COLOR_MODES.HUE,n.hue={id:a.id},i.id=i.id||a.id,void 0!==i.props.objects[a.id].common.min?n.hue.min=parseFloat(i.props.objects[a.id].common.min):n.hue.min=0,void 0!==i.props.objects[a.id].common.max?n.hue.max=parseFloat(i.props.objects[a.id].common.max):n.hue.max=360,void 0!==i.props.objects[a.id].common.unit?n.hue.unit=i.props.objects[a.id].common.unit:n.hue.unit=""),a=i.channelInfo.states.find(function(t){return t.id&&"TEMPERATURE"===t.name}),n.temperature=a&&a.id?{id:a.id}:null,n.temperature&&(i.id=i.id||a.id,s=s||ss.COLOR_MODES.TEMPERATURE,void 0!==i.props.objects[a.id].common.min?n.temperature.min=parseFloat(i.props.objects[a.id].common.min):n.temperature.min=2200,void 0!==i.props.objects[a.id].common.max?n.temperature.max=parseFloat(i.props.objects[a.id].common.max):n.temperature.max=6500,void 0!==i.props.objects[a.id].common.unit?n.temperature.unit=i.props.objects[a.id].common.unit:n.temperature.unit=""),a=i.channelInfo.states.find(function(t){return t.id&&"DIMMER"===t.name}),n.dimmer=a&&a.id?{id:a.id}:null,n.dimmer&&(void 0!==i.props.objects[a.id].common.min?n.dimmer.min=parseFloat(i.props.objects[a.id].common.min):n.dimmer.min=0,void 0!==i.props.objects[a.id].common.max?n.dimmer.max=parseFloat(i.props.objects[a.id].common.max):n.dimmer.max=100,void 0!==i.props.objects[a.id].common.unit?n.dimmer.unit=i.props.objects[a.id].common.unit:n.dimmer.unit="%"),a=i.channelInfo.states.find(function(t){return t.id&&"BRIGHTNESS"===t.name}),n.brightness=a&&a.id?{id:a.id}:null,n.brightness&&(void 0!==i.props.objects[a.id].common.min?n.brightness.min=parseFloat(i.props.objects[a.id].common.min):n.brightness.min=0,void 0!==i.props.objects[a.id].common.max?n.brightness.max=parseFloat(i.props.objects[a.id].common.max):n.brightness.max=100,void 0!==i.props.objects[a.id].common.unit?n.brightness.unit=i.props.objects[a.id].common.unit:n.brightness.unit="%"),a=i.channelInfo.states.find(function(t){return t.id&&"SATURATION"===t.name}),n.saturation=a&&a.id?{id:a.id}:null,n.saturation&&(void 0!==i.props.objects[a.id].common.min?n.saturation.min=parseFloat(i.props.objects[a.id].common.min):n.saturation.min=0,void 0!==i.props.objects[a.id].common.max?n.saturation.max=parseFloat(i.props.objects[a.id].common.max):n.saturation.max=100),(a=i.channelInfo.states.find(function(t){return t.id&&"ON_LIGHT"===t.name}))||(a=i.channelInfo.states.find(function(t){return t.id&&"ON"===t.name})),n.on=a&&a.id?{id:a.id}:null,n.on&&(i.props.tile.setState({isPointer:!0}),i.props.tile.registerHandler("onClick",i.onToggle.bind(Object(d.a)(Object(d.a)(i)))))}return i.ids=n,i.key="smart-dimmer-"+i.id+"-",i.stateRx.showDialog=!1,i.stateRx.setValue=null,i.stateRx.colorMode=s,i.doubleState=!0,i.componentReady(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"realValueToPercent",value:function(t,e){return void 0===e&&(e=this.states[t.id]&&this.states[t.id].val||0),((e=parseFloat(e))-t.min)/(t.max-t.min)*100}},{key:"percentToRealValue",value:function(t,e){if(e=parseFloat(e),t){var i=(t.max-t.min)*e/100+t.min;return t.max-t.min>50&&(i=Math.round(i)),i}return e}},{key:"updateBackgroundColor",value:function(t){t=t||this.state;var e=this.getColor(t);void 0!==e?(this.props.tile.setColorOn(e),this.props.tile.setColorOff(Xi.hexToRgbA(e,.5))):(this.props.tile.setColorOn(Y.tile.tileOn.background),this.props.tile.setColorOff(Y.tile.tileOff.background))}},{key:"updateState",value:function(t,i){var s,n={};if(this.ids.red&&this.ids.red.id===t?s=this.ids.red:this.ids.green&&this.ids.green.id===t?s=this.ids.green:this.ids.blue&&this.ids.blue.id===t?s=this.ids.blue:this.ids.hue&&this.ids.hue.id===t?s=this.ids.hue:this.ids.temperature&&this.ids.temperature.id===t?s=this.ids.temperature:this.ids.saturation&&this.ids.saturation.id===t?s=this.ids.saturation:this.ids.dimmer&&this.ids.dimmer.id===t&&(s=this.ids.dimmer),s){var a="number"===typeof i.val?i.val:parseFloat(i.val);isNaN(a)?(n[t]=null,this.setState(n)):(n[t]=this.realValueToPercent(s,a),this.setState(n)),this.updateBackgroundColor(Object.assign({},this.state,n))}else if(this.ids.on&&this.ids.on.id===t){var o="number"===typeof i.val?!!i.val:!0===i.val||"true"===i.val||"1"===i.val||"on"===i.val||"ON"===i.val||"ein"===i.val||"EIN"===i.val;n[t]=o,this.setState(n),this.props.tile.setState({state:o})}else this.ids.rgb&&this.ids.rgb.id===t?(n[t]=i.val,this.setState(n),this.updateBackgroundColor(Object.assign({},this.state,n))):Object(pt.a)(Object(u.a)(e.prototype),"updateState",this).call(this,t,i)}},{key:"onRgbChange",value:function(t,e,i){var s={};if(void 0!==i&&(s.colorMode=i),e&&this.ids.temperature)s[this.ids.temperature.id]=this.realValueToPercent(this.ids.temperature,e),this.props.onControl(this.ids.temperature.id,this.percentToRealValue(this.ids.temperature,s[this.ids.temperature.id]));else if(this.ids.rgb)s[this.ids.rgb.id]=t,this.props.onControl(this.ids.rgb.id,t);else if(this.ids.red){var n=Xi.hex2array(t),a=Object(R.a)(n,3),o=a[0],r=a[1],l=a[2];o=this.realValueToPercent({min:0,max:255},o),r=this.realValueToPercent({min:0,max:255},r),l=this.realValueToPercent({min:0,max:255},l),s[this.ids.red.id]=o,s[this.ids.green.id]=r,s[this.ids.blue.id]=l,o=this.percentToRealValue(this.ids.red,o),r=this.percentToRealValue(this.ids.green,r),l=this.percentToRealValue(this.ids.blue,l),this.props.onControl(this.ids.red.id,o),this.props.onControl(this.ids.green.id,r),this.props.onControl(this.ids.blue.id,l)}else if(this.ids.hue){var c=Xi.hex2array(t),u=Object(R.a)(c,3),h=u[0],d=u[1],g=u[2],M=Xi.rgbToHsl(h,d,g),p=Object(R.a)(M,3),m=p[0],y=p[1],j=p[2];m=this.realValueToPercent({min:0,max:1},m),y=this.realValueToPercent({min:0,max:1},y),j=this.realValueToPercent({min:0,max:1},j),s[this.ids.hue.id]=m,this.ids.saturation&&(s[this.ids.saturation.id]=y),this.ids.brightness&&(s[this.ids.brightness.id]=j),m=this.percentToRealValue(this.ids.hue,m),y=this.percentToRealValue(this.ids.saturation,y),j=this.percentToRealValue(this.ids.brightness,j),this.props.onControl(this.ids.hue.id,m),this.ids.saturation&&this.props.onControl(this.ids.saturation.id,y),this.ids.brightness&&this.props.onControl(this.ids.brightness.id,j)}else if(this.ids.temperature){s[this.ids.rgb.id]=t;var N=Xi.hex2array(t);this.props.onControl(this.ids.temperature.id,Xi.rgb2temperature(N[0],N[1],N[2]))}this.ids.on&&!this.state[this.ids.on.id]&&(s[this.ids.on.id]=!0,this.props.onControl(this.ids.on.id,!0)),this.ids.dimmer&&(0===this.state[this.ids.dimmer.id]?(s[this.ids.dimmer.id]=100,this.props.onControl(this.ids.dimmer.id,100)):this.props.onControl(this.ids.dimmer.id,this.state[this.ids.dimmer.id])),this.setState(s)}},{key:"onDimmerChange",value:function(t){this.setState({dimmer:t}),this.props.onControl(this.ids.dimmer.id,this.percentToRealValue(this.ids.dimmer,t))}},{key:"getDialogSettings",value:function(){var t=Object(pt.a)(Object(u.a)(e.prototype),"getDialogSettings",this).call(this);return t.unshift({name:"colorMode",value:this.state.settings.colorMode||"RGB/Kelvin",options:[{value:"RGB/Kelvin",label:W.t("RGB/Kelvin")},{value:"RGB",label:W.t("RGB")},{value:"Kelvin",label:W.t("Kelvin")}],type:"select"}),t}},{key:"onToggle",value:function(t){if(this.ids.on){var e=void 0===t||"object"===typeof t?!this.state[this.ids.on.id]:t;this.setState(Object(ri.a)({},this.ids.on.id,e)),this.props.onControl(this.ids.on.id,e)}}},{key:"getIcon",value:function(){var t;return t=this.state.settings.useDefaultIcon?n.a.createElement("img",{src:this.getDefaultIcon(),alt:"icon",style:{height:"100%"}}):this.state.settings.icon?n.a.createElement("img",{src:this.state.settings.icon,alt:"icon",style:{height:"100%"}}):n.a.createElement(de.b,{width:Y.tile.tileIconSvg.size,height:Y.tile.tileIconSvg.size,style:{height:Y.tile.tileIconSvg.size,width:Y.tile.tileIconSvg.size}}),n.a.createElement("div",{key:this.key+"icon",style:Object.assign({},Y.tile.tileIcon,this.state[this.actualId]!==this.min?{color:Y.palette.lampOn}:{}),className:"tile-icon"},t,this.state.executing?n.a.createElement(yt.a,{style:{position:"absolute",top:0,left:0},size:Y.tile.tileIcon.width}):null)}},{key:"getColor",value:function(t){var e;if(t=t||this.state,this.ids.rgb&&this.state.colorMode===ss.COLOR_MODES.RGB)e=t[this.ids.rgb.id];else if(this.ids.red&&this.state.colorMode===ss.COLOR_MODES.R_G_B){var i=t[this.ids.red.id],s=t[this.ids.green.id],n=t[this.ids.blue.id];null!==i&&null!==s&&null!==n&&void 0!==i&&void 0!==s&&void 0!==n&&(i=this.percentToRealValue({min:0,max:255},i),s=this.percentToRealValue({min:0,max:255},s),n=this.percentToRealValue({min:0,max:255},n),e=Xi.rgb2string([i,s,n]))}else if(this.ids.hue&&this.state.colorMode===ss.COLOR_MODES.HUE){var a=t[this.ids.hue.id],o=this.ids.saturation?t[this.ids.saturation.id]:100,r=this.ids.brightness?t[this.ids.brightness.id]:50;null!==a&&null!==o&&null!==r&&void 0!==a&&void 0!==o&&void 0!==r&&(a=this.percentToRealValue({min:0,max:1},a),o=this.percentToRealValue({min:0,max:1},o),r=this.percentToRealValue({min:0,max:1},r),e=Xi.rgb2string(Xi.hslToRgb(a,o,r)))}else if(this.ids.temperature&&this.state.colorMode===ss.COLOR_MODES.TEMPERATURE){var l=this.percentToRealValue(this.ids.temperature,t[this.ids.temperature.id]);e=Xi.rgb2string(Xi.temperatureToRGB(l)),void 0!==this.state.dimmer&&(e=new Zi.a(e).darken(100-this.state.dimmer).toString())}else if(this.ids.rgb)e=t[this.ids.rgb.id];else if(this.ids.red){var c=t[this.ids.red.id],u=t[this.ids.green.id],h=t[this.ids.blue.id];null!==c&&null!==u&&null!==h&&void 0!==c&&void 0!==u&&void 0!==h&&(c=this.percentToRealValue({min:0,max:255},c),u=this.percentToRealValue({min:0,max:255},u),h=this.percentToRealValue({min:0,max:255},h),e=Xi.rgb2string([c,u,h]))}else if(this.ids.hue){var d=t[this.ids.hue.id],g=this.ids.saturation?t[this.ids.saturation.id]:100,M=this.ids.brightness?t[this.ids.brightness.id]:50;null!==d&&null!==g&&null!==M&&void 0!==d&&void 0!==g&&void 0!==M&&(d=this.percentToRealValue({min:0,max:1},d),g=this.percentToRealValue({min:0,max:1},g),M=this.percentToRealValue({min:0,max:1},M),e=Xi.rgb2string(Xi.hslToRgb(d,g,M)))}else if(this.ids.temperature){var p=t[this.ids.temperature.id];p=this.percentToRealValue(this.ids.temperature,p),e=Xi.rgb2string(Xi.temperatureToRGB(p)),e=new Zi.a(e).darken(100-this.state.dimmer).toString()}return e&&"#"!==e[0]&&e.match(/^rgb/)&&(e="#"+e),e}},{key:"getStateText",value:function(){return this.ids.on?this.ids.dimmer?this.state[this.ids.dimmer.id]+this.ids.dimmer.unit:this.state[this.ids.on.id]?W.t("On"):W.t("Off"):this.ids.dimmer?this.state[this.ids.dimmer.id]+this.ids.dimmer.unit:void 0}},{key:"render",value:function(){this.state.showDialog?this.props.tile.unregisterHandler("onClick"):this.props.tile.registerHandler("onClick",this.onToggle.bind(this));var t=!this.ids.temperature||!!(this.ids.rgb||this.ids.red||this.ids.hue),e=!!this.ids.temperature;"RGB"===this.state.settings.colorMode?(t=!0,e=!1):"Kelvin"===this.state.settings.colorMode&&(t=!1,e=!0);var i=this.getColor()||"#000000";return this.wrapContent([this.getStandardContent(this.id,!0),this.state.showDialog?n.a.createElement(ss,{key:this.key+"dialog",windowWidth:this.props.windowWidth,ids:this.ids,modeRGB:t,modeTemperature:e,startModeTemp:this.state.colorMode===ss.COLOR_MODES.TEMPERATURE,temperatureMin:this.ids.temperature&&this.ids.temperature.min||2200,temperatureMax:this.ids.temperature&&this.ids.temperature.max||6500,startRGB:i,onRgbChange:this.onRgbChange.bind(this),startTemp:this.ids.temperature&&this.state[this.ids.temperature.id]?this.percentToRealValue(this.ids.temperature,this.state[this.ids.temperature.id]):Xi.rgb2temperature(i),startOn:this.ids.on&&this.state[this.ids.on.id],useOn:!!this.ids.on,onToggle:this.ids.on&&this.onToggle.bind(this),startDimmer:this.ids.dimmer&&this.state[this.ids.dimmer.id],useDimmer:!!this.ids.dimmer,onDimmerChange:this.onDimmerChange.bind(this),onClose:this.onDialogClose.bind(this)}):null])}}]),e}(ue),as=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).channelInfo=i.props.channelInfo,i.state={state:!1,isPointer:!1,visible:null,colorOn:Y.tile.tileOn.background,colorOff:Y.tile.tileOff.background,background:null,bottomBar:!1,width:1},i.stateId=i.channelInfo&&i.channelInfo.states.find(function(t){return t.id}).id,i.handlers={onMouseDown:null,onMouseUp:null,onClick:null},i.tileRef=n.a.createRef(),i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"getObjectName",value:function(t){return ue.getObjectName(this.props.objects,this.stateId,null,t,this.props.enumNames)}},{key:"onMouseDown",value:function(t){this.handlers.onMouseDown&&!this.props.editMode&&(t.stopPropagation(),this.handlers.onMouseDown(t))}},{key:"onMouseUp",value:function(t){this.handlers.onMouseUp&&!this.props.editMode&&this.handlers.onMouseUp(t)}},{key:"onClick",value:function(t){this.handlers.onClick&&!this.props.editMode&&this.handlers.onClick(t)}},{key:"getTileStyle",value:function(){var t;return t=this.props.editMode?Object.assign({},Y.tile.tile,Y.tile.tileOn,"object"===typeof this.state.colorOn?this.state.colorOn:{background:this.state.colorOn},Y.tile.editEnabled):this.state.state?Object.assign({},Y.tile.tile,Y.tile.tileOn,"object"===typeof this.state.colorOn?this.state.colorOn:{background:this.state.colorOn}):Object.assign({},Y.tile.tile,Y.tile.tileOff,"object"===typeof this.state.colorOff?this.state.colorOff:{background:this.state.colorOff}),this.state.background&&(t.backgroundImage="url(".concat(this.state.background,")"),t.backgroundSize="100% auto",t.backgroundPosition=this.state.bottomBar?"center center":"center calc(50% - 48px)",this.state.state||(t.filter="grayscale(100%)"),delete t.background),t.width=t.width*this.state.width,t.color=_.isUseBright(t.background)?"white":"black",this.channelInfo||(t.paddingTop=50,t.textAlign="center"),t}},{key:"setSize",value:function(t){t&&t!==this.state.width&&this.setState({width:t})}},{key:"setBackgroundImage",value:function(t,e,i){this.state.background!==t&&this.setState({background:t,bottomBar:e||!1})}},{key:"setDelete",value:function(t){this.props.onDelete(t)}},{key:"setVisibility",value:function(t,e){this.state.visible!==t&&(this.lastEnabledChange=Date.now(),this.setState({visible:t}),this.props.onVisibilityControl(this.stateId,t))}},{key:"setColorOn",value:function(t){JSON.stringify(this.state.colorOn)!==JSON.stringify(t)&&this.setState({colorOn:t})}},{key:"setColorOff",value:function(t){JSON.stringify(this.state.colorOff)!==JSON.stringify(t)&&this.setState({colorOff:t})}},{key:"wrapContent",value:function(t){var e={cursor:this.state.isPointer?"pointer":"inherit"};this.props.editMode||this.state.visible||!this.channelInfo||(e.display="none");var i=this.props.editMode&&Date.now()-this.lastEnabledChange<500;return i&&this.hasAnimation?this.hasAnimation="just-enabled-disabled-1"===this.hasAnimation?"just-enabled-disabled-2":"just-enabled-disabled-1":this.hasAnimation=i?"just-enabled-disabled-1":"",e=Object.assign(this.getTileStyle(),e),n.a.createElement(gt.a,{ref:this.tileRef,style:e,className:this.hasAnimation,onMouseDown:this.onMouseDown.bind(this),onTouchStart:this.onMouseDown.bind(this),onMouseUp:this.onMouseUp.bind(this),onTouchEnd:this.onMouseUp.bind(this),onClick:this.onClick.bind(this)},n.a.createElement("span",{style:{display:"none"}},this.channelInfo?this.channelInfo.states.find(function(t){return t.id}).id:"nothing"),t)}},{key:"registerHandler",value:function(t,e){this.handlers[t]=e}},{key:"unregisterHandler",value:function(t){this.handlers[t]&&(this.handlers[t]=null)}},{key:"createControl",value:function(t,e,i){var s=t;return n.a.createElement(s,{key:e.id+"-tile-"+s.name,enumNames:this.props.enumNames,channelInfo:e,tile:i,ignoreIndicators:this.props.ignoreIndicators,editMode:this.props.editMode,states:this.props.states,windowWidth:this.props.windowWidth,objects:this.props.objects,registerHandler:this.registerHandler.bind(this),onSaveSettings:this.props.onSaveSettings,onCollectIds:this.props.onCollectIds,onControl:this.props.onControl})}},{key:"render",value:function(){var t,e=this;if(!this.channelInfo)return this.wrapContent(n.a.createElement("span",null,W.t("Nothing here")));switch(this.channelInfo.type){case Mt.light:case Mt.socket:t=Ge;break;case Mt.dimmer:t=Le;break;case Mt.blind:t=ye;break;case Mt.windowTilt:t=si;break;case Mt.button:t=Ne;break;case Mt.temperature:t=Fe;break;case Mt.info:t=Oe;break;case Mt.thermostat:t=ti;break;case Mt.slider:t=Ee;break;case Mt.volume:case Mt.volumeGroup:t=ki;break;case Mt.lock:t=ai;break;case Mt.instance:t=oi;break;case Mt.media:t=vi;break;case Mt.warning:t=Ri;break;case Mt.window:case Mt.fireAlarm:case Mt.door:case Mt.motion:t=Je;break;case Mt.rgbSingle:case Mt.hue:case Mt.rgb:case Mt.ct:t=ns;break;case Mt.weatherForecast:t=Ai;break;case Mt.url:t=Ji}if(t)return this.wrapContent(this.createControl(t,this.channelInfo,this));var i=this.channelInfo.type;return Object.keys(Mt).forEach(function(t){if(Mt[t]===e.channelInfo.type)return i=t,!1}),console.error("".concat(i," not implemented!")),null}}]),e}(s.Component),os=i(57),rs={WORKING:{icon:de.a,color:Y.tile.tileIndicatorsIcons.working},UNREACH:{icon:x.M,color:Y.tile.tileIndicatorsIcons.unreach},LOWBAT:{icon:x.d,color:Y.tile.tileIndicatorsIcons.lowbat},MAINTAIN:{icon:x.O,color:Y.tile.tileIndicatorsIcons.maintain},ERROR:{icon:x.u,color:Y.tile.tileIndicatorsIcons.error},DIRECTION:{color:Y.tile.tileIndicatorsIcons.direction},CONNECTED:{icon:x.M,color:Y.tile.tileIndicatorsIcons.connected}},ls=function(){function t(){Object(r.a)(this,t),this.detector=new window.ChannelDetector}return Object(l.a)(t,[{key:"detect",value:function(){var t=this.detector.detect.apply(this.detector,arguments);return t&&t.forEach(function(t){t.states.forEach(function(t){t.id&&rs[t.name]&&Object.assign(t,rs[t.name])})}),t}}]),t}(),cs=function(t){function e(t){var i;Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).detector=new ls;var s=_.getSettings(i.props.objects[i.props.enumSubID],{user:i.props.user});return i.state={visible:!1,newLine:!1,align:i.props.align,enumID:i.props.enumID,subDragging:i.props.subDragging,enumSubID:i.props.enumSubID,enabled:!s||!s.subEnabled||(void 0===s.subEnabled[i.props.enumID]||s.subEnabled[i.props.enumID]),order:_.getSettingsOrder(i.props.objects[i.props.enumSubID],i.props.enumID,{user:i.props.user}),dragging:!1,visibleChildren:{}},i.state.enumID===_.INSTANCES?i.name=W.t("All instances"):i.name=i.state.enumSubID&&"others"!==i.state.enumSubID?_.getObjectName(i.props.objects,i.state.enumSubID,!1,{language:W.getLanguage()}):W.t("Others"),i.widgetTypes={},i.collectVisibility=null,i.collectVisibilityTimer=null,i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentWillUpdate",value:function(t,e){var i={},s=!1;t.newLine!==this.state.newLine&&(i.newLine=t.newLine,s=!0),t.align!==this.state.align&&(i.align=t.align,s=!0),t.subDragging!==this.state.subDragging&&(i.subDragging=t.subDragging,s=!0),t.editMode!==this.state.editMode&&(this.order=null),t.enumID!==this.state.enumID&&(i.enumID=t.enumID,i.visibleChildren={},i.visible=!1,s=!0),t.enumSubID!==this.state.enumSubID&&(this.name=t.enumSubID?_.getObjectName(this.props.objects,t.enumSubID,!1,{language:W.getLanguage()}):W.t("Others"),i.enumSubID=t.enumSubID,i.visibleChildren={},i.visible=!1,s=!0),s&&this.setState(i)}},{key:"onDragStart",value:function(){this.setState({dragging:!0})}},{key:"onDragEnd",value:function(t){var e=this,i={dragging:!1};if(t.destination&&t.destination.index!==t.source.index){this.order=_.reorder(this.order,t.source.index,t.destination.index),i.order=this.order;var s=_.getSettings(this.props.objects[this.props.enumSubID],{user:this.props.user});s.subOrder=s.subOrder||{},s.subOrder[this.props.enumID]=this.order.filter(function(t){return e.state.visibleChildren[t]}),this.props.onSaveSettings&&this.props.onSaveSettings(this.props.enumSubID,s)}this.setState(i)}},{key:"onToggleSubEnabled",value:function(){var t=this,e=_.getSettings(this.props.objects[this.props.enumSubID],{user:this.props.user});e.subEnabled=e.subEnabled||{};var i=void 0===e.subEnabled[this.props.enumID]||e.subEnabled[this.props.enumID];i=!i,e.subEnabled[this.props.enumID]=i,this.props.onSaveSettings&&this.props.onSaveSettings(this.props.enumSubID,e,function(){t.setState({enabled:i})})}},{key:"onVisibilityTimer",value:function(){this.collectVisibilityTimer=null;var t=!1,e={visibleChildren:t};if(this.props.editMode||this.state.enabled){var i=Object.assign({},this.state.visibleChildren,this.collectVisibility);for(var s in i)if(i.hasOwnProperty(s)&&i[s]){t=!0;break}e.visibleChildren=i}this.state.visible!==t&&(e.visible=t,this.props.onVisibilityControl&&this.props.onVisibilityControl(this.state.enumSubID,t)),this.setState(e),this.collectVisibility=null}},{key:"onVisibilityControl",value:function(t,e,i){var s=this;(this.collectVisibility&&void 0!==this.collectVisibility[t]?this.collectVisibility[t]:this.state.visibleChildren[t])!==e&&(this.collectVisibility=this.collectVisibility||{},this.collectVisibility[t]=e,this.collectVisibilityTimer&&clearTimeout(this.collectVisibilityTimer),this.collectVisibilityTimer=setTimeout(function(){return s.onVisibilityTimer()},0))}},{key:"createControl",value:function(t,e,i,s){var a=i.states.find(function(t){return t.id}),o=t;return n.a.createElement(o,{key:a.id+"-sublist-"+o.name+"-"+s,id:e,enumNames:[this.name,_.getObjectName(this.props.objects,this.state.enumID,null,{language:W.getLanguage()})],enumFunctions:this.props.enumFunctions,editMode:this.props.editMode,channelInfo:i,ignoreIndicators:this.props.ignoreIndicators,windowWidth:this.props.windowWidth,states:this.props.states,objects:this.props.objects,user:this.props.user,onVisibilityControl:this.onVisibilityControl.bind(this),onDelete:this.props.onDelete,onSaveSettings:this.props.onSaveSettings,onCollectIds:this.props.onCollectIds,onControl:this.props.onControl})}},{key:"getListItems",value:function(t){var e=this,i=[];if(this.props.enumID===_.INSTANCES)return t.map(function(t,e){return{control:this.createControl(as,t,{states:[{id:t+".alive",name:"ALIVE"},{id:t+".connected",name:"UNREACH",type:"boolean",indicator:!0,icon:x.M,color:Y.tile.tileIndicatorsIcons.unreach}],type:Mt.instance},e),visible:!0}}.bind(this));var s=t.map(function(t){if(this.state[t],t&&"object"===typeof t)return(t=JSON.parse(JSON.stringify(t))).name="URL",t.id||(t.id="_custom"+Math.random()),{control:{type:Mt.url,states:[t]},id:t.id};var e={objects:this.props.objects,id:t,_keysOptional:this.props.keys,_usedIdsOptional:i,ignoreIndicators:this.props.ignoreIndicators},s=this.detector.detect(e);return s?s=s.map(function(t){var e=t.states.find(function(t){return t.id}).id;if(e){for(var i in this.widgetTypes[e]={type:t.type,SET:t.states.find(function(t){return"SET"===t.name}),ON_SET:t.states.find(function(t){return"ON_SET"===t.name}),STOP:t.states.find(function(t){return"STOP"===t.name})},this.widgetTypes[e])this.widgetTypes[e].hasOwnProperty(i)&&"type"!==i&&this.widgetTypes[e][i]&&(this.widgetTypes[e][i]=this.widgetTypes[e][i].id);return{control:t,id:e}}}.bind(this)):this.props.debug&&console.log("Nothing found for "+t),s&&s.length?1===s.length?s[0]:s:null}.bind(this)),n=[];if(s.forEach(function(t){t instanceof Array?n=n.concat(t):t&&n.push(t)}),n.sort(function(t,e){var i=this.state.visibleChildren[t.id],s=this.state.visibleChildren[e.id];return is?-1:0}.bind(this)),!this.order)if(this.order=this.state.order,this.order){n.forEach(function(t){return-1===e.order.indexOf(t.id)&&e.order.push(t.id)});for(var a=function(t){n.find(function(i){return e.order[t]===i.id})||e.order.splice(t,1)},o=this.order.length-1;o>=0;o--)a(o)}else this.order=n.map(function(t){return t.id});return this.order.map(function(t,e){var i=n.find(function(e){return e.id===t});return{control:this.createControl(as,i.id,i.control,e),id:i.id}}.bind(this))}},{key:"wrapItem",value:function(t,e){var i=this;if(this.state.visibleChildren[t.id]){var s="item-"+this.state.enumID+"-"+this.state.enumSubID+"-"+t.id;return n.a.createElement(os.b,{key:s,draggableId:s,index:e},function(e,s){return n.a.createElement("div",Object.assign({className:i.props.classes["drag-item"]+(s.isDragging?" "+i.props.classes["drag-item-overlay"]:""),style:{display:"inline-block"},ref:e.innerRef},e.draggableProps,e.dragHandleProps),t.control)})}return n.a.createElement("div",{key:"item-"+t.id},t.control)}},{key:"wrapAllItems",value:function(t,e,i){var s=this,a={display:"flex"};return this.state.dragging&&(a.background="rgba(2,173,2,0.26)",a.borderRadius="1em"),n.a.createElement("div",{style:{width:"100%",overflow:"auto"}},n.a.createElement("div",Object.assign({style:a,ref:e.innerRef},e.droppableProps),t.map(function(t,e){return s.wrapItem(t,e)}),e.placeholder))}},{key:"wrapContent",value:function(t){var e=this;return this.state.subDragging&&this.props.editMode&&this.props.enumID!==_.INSTANCES&&this.state.enabled?n.a.createElement(os.a,{onDragEnd:function(t){return e.onDragEnd(t)},onDragStart:function(){return e.onDragStart()}},n.a.createElement(os.c,{droppableId:(this.state.enumID+"-"+this.state.enumSubID).replace(/[^\w\d]/g,"_")+"-droppable",direction:"horizontal"},function(i,s){return e.wrapAllItems(t,i,s)})):!this.props.editMode&&this.state.subDragging&&this.state.enabled?n.a.createElement("div",{key:"inline-div"},t.map(function(t){return t.control})):n.a.createElement("div",{key:(this.state.enumID+"-"+this.state.enumSubID).replace(/[^\w\d]/g,"_")+"-inset",style:{width:"100%",overflow:"auto",opacity:this.state.enabled?1:.5}},n.a.createElement("div",{key:"inline-div",style:{display:"flex"}},t.map(function(t){return n.a.createElement("div",{key:"inline-div-"+t.id},t.control)})))}},{key:"controlAllLights",value:function(t){for(var e in this.widgetTypes)this.widgetTypes.hasOwnProperty(e)&&(this.widgetTypes[e].type===Mt.dimmer?this.widgetTypes[e].ON_SET?this.props.onControl(this.widgetTypes[e].ON_SET,t):this.widgetTypes[e].SET&&this.props.onControl(this.widgetTypes[e].SET,t?this.props.objects[this.widgetTypes[e].SET].common.max:this.props.objects[this.widgetTypes[e].SET].common.min):this.widgetTypes[e].type===Mt.light&&this.widgetTypes[e].SET&&this.props.onControl(this.widgetTypes[e].SET,t))}},{key:"getControlAll",value:function(){var t=this;if(this.props.editMode)return null;var e=0;for(var i in this.widgetTypes)!this.widgetTypes.hasOwnProperty(i)||this.widgetTypes[i].type!==Mt.light&&this.widgetTypes[i].type!==Mt.dimmer||e++;return e>1?[n.a.createElement(Ct.a,{key:"light-off",variant:"fab",mini:"true","aria-label":"Off",onClick:function(){return t.controlAllLights(!1)},style:Object.assign({},Y.buttonAllLight,{color:"black"}),title:W.t("All lights off")},n.a.createElement(de.b,null)),n.a.createElement(Ct.a,{key:"light-on",variant:"fab",mini:"true","aria-label":"On",onClick:function(){return t.controlAllLights(!0)},style:Object.assign({},Y.buttonAllLight,{color:Y.palette.lampOn}),title:W.t("All lights on")},n.a.createElement(de.b,null))]:null}},{key:"render",value:function(){var t=this;if(this.props.items&&this.props.items.length){var e=this.getListItems(this.props.items);if((e=e.filter(function(t){return t})).length){var i=this.state.visible||this.props.editMode?this.state.newLine||this.props.editMode?{display:"block",border:"none"}:{display:"inline-block"}:{display:"none"};this.state.align&&(i.textAlign=this.state.align);var s=this.props.editMode?n.a.createElement(ot,{big:!0,style:{display:"inline-block",marginLeft:15},visible:this.state.enabled,useBright:this.props.isUseBright,onChange:function(){return t.onToggleSubEnabled()}}):null;return n.a.createElement("div",{key:(this.state.enumID+"-"+this.state.enumSubID).replace(/[^\w\d]/g,"_")+"-title",style:Object.assign({},Y.list.row,i)},n.a.createElement("h3",Object.assign({},this.props.dragHandleProps,{style:Object.assign({},Y.list.title,{color:this.props.isUseBright?"white":"black"})}),this.props.editMode?n.a.createElement(x.s,{style:{color:this.props.isUseBright?"white":"black",width:24,height:24,float:"left",opacity:this.state.subDragging?0:1}}):null,this.name,this.getControlAll(),s),this.wrapContent(e))}return this.props.editMode?n.a.createElement("div",this.props.dragHandleProps):null}return this.props.editMode?n.a.createElement("div",this.props.dragHandleProps):null}}]),e}(s.Component),us=Object(g.withStyles)({"drag-item":{display:"inline-block"},"drag-item-overlay":{backgroundColor:"green",borderRadius:"1em"},"sub-list-disabled-overflow":{top:0,bottom:0,position:"absolute",right:0,left:0,zIndex:2,backgroundColor:"rgba(90,90,90,0.5)"}})(cs),hs=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).enumFunctions=[],i.state={visible:!1,newLine:!1,dragging:!1,subDragging:!1,enumID:i.props.enumID,align:i.props.align,order:_.getSettingsOrder(i.props.objects[i.props.enumID],null,{user:i.props.user}),customURLs:_.getSettingsCustomURLs(i.props.objects[i.props.enumID],null,{user:i.props.user}),background:i.props.background,backgroundId:i.props.backgroundId,visibleChildren:{}},null===i.state.order||i.state.order instanceof Array||(i.state.order=null),i.keys=null,i.collectVisibility=null,i.collectVisibilityTimer=null,i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"componentWillUpdate",value:function(t,e){var i=this;this.enumFunctions.length||this.getEnumFunctions(t.objects).forEach(function(t){return i.enumFunctions.push(t)});var s={},n=!1;t.newLine!==this.state.newLine&&(s.newLine=t.newLine,n=!0),t.backgroundColor!==this.state.backgroundColor&&(s.backgroundColor=t.backgroundColor,n=!0),t.background!==this.state.background&&(s.background=t.background,n=!0),t.align!==this.state.align&&(s.align=t.align,n=!0),t.backgroundId!==this.state.backgroundId&&(s.backgroundId=t.backgroundId,n=!0),t.enumID!==this.state.enumID&&(s.enumID=t.enumID,s.order=_.getSettingsOrder(this.props.objects[s.enumID],null,{user:this.props.user}),null===s.order||s.order instanceof Array||(s.order=null),s.customURLs=_.getSettingsCustomURLs(this.props.objects[s.enumID],null,{user:this.props.user}),this.order=null,s.visibleChildren={},s.visible=!1,this.keys=null,n=!0),n&&this.setState(s)}},{key:"onDragEnd",value:function(t){var e=this,i={dragging:!1};if(t.destination&&t.destination.index!==t.source.index){this.order=_.reorder(this.order,t.source.index,t.destination.index),i.order=this.order;var s=_.getSettings(this.props.objects[this.props.enumID],{user:this.props.user});s.order=s.order||{},s.order=this.order.filter(function(t){return e.state.visibleChildren[t]}),this.props.onSaveSettings&&this.props.onSaveSettings(this.props.enumID,s)}this.setState(i)}},{key:"getElementsToShow",value:function(){var t=this;if(this.props.enumID===_.INSTANCES)return Object.keys(this.props.objects).filter(function(e){return!t.props.objects[e].common.onlyWWW}).sort(function(e,i){var s=t.props.objects[e].common,n=t.props.objects[i].common;return s.onlyWWW&&n.onlyWWW?s.name>n.name?1:s.namen.name?1:s.namethis.props.windowHeight?"100% auto":"auto 100%",backgroundImage:"url("+this.state.background+(this.state.backgroundId?"?ts="+Date.now():"")+")"}):Object.assign({},Y.mainPanel,{background:this.state.background,backgroundImage:"none"}):this.state.backgroundColor?Object.assign({},Y.mainPanel,{background:this.state.backgroundColor,backgroundImage:"none"}):Object.assign({},Y.mainPanel,{backgroundSize:this.props.windowWidth>this.props.windowHeight?"100% auto":"auto 100%"}),this.state.align&&!this.state.dragging&&(i.textAlign=this.state.align),this.state.subDragging||!this.props.editMode||this.props.enumID===_.INSTANCES||e?n.a.createElement("div",{style:Object.assign({marginLeft:this.props.marginLeft},i)},t,this.getToggleDragButton(),this.getAddButton()):n.a.createElement(os.a,{onDragEnd:function(t){return s.onDragEnd(t)},onDragStart:function(){return s.setState({dragging:!0})}},n.a.createElement(os.c,{droppableId:"mainList",direction:"vertical"},function(e,n){return s.wrapAllItems(t,e,n,i)}))}},{key:"render",value:function(){var t=this,e=this.getElementsToShow();if(e.length>300)return null;var i=[];if(this.keys&&this.keys.length||(this.keys=Object.keys(this.props.objects),this.keys.sort()),this.enumFunctions.length||this.getEnumFunctions(this.props.objects).forEach(function(e){return t.enumFunctions.push(e)}),this.props.enumID===_.INSTANCES)i.push({items:e,id:_.INSTANCES});else if(e&&e.length){var s;s=this.state.enumID&&this.state.enumID.startsWith("enum.rooms.")?"enum.functions.":this.state.enumID&&this.state.enumID.startsWith("enum.functions.")?"enum.rooms.":"enum.functions.";var a=this.getEnums(this.props.objects,s),o=[];a.forEach(function(s){var n=t.props.objects[s],a=[];n&&n.common&&n.common.members&&n.common.members.length&&(a=n.common.members.filter(function(t){return-1===o.indexOf(t)&&-1!==e.indexOf(t)})),a.length&&(t.props.debug&&console.log("Add to "+t.state.enumID+"_"+s+": "+a.join(", ")),i.push({id:s,items:a}),a.forEach(function(t){return o.push(t)}))});var r=[];e.forEach(function(t){-1===o.indexOf(t)&&r.push(t)}),(r.length||this.state.customURLs&&this.state.customURLs.length)&&(this.props.debug&&console.log("Add to others: "+r.join(", ")),this.state.customURLs&&this.state.customURLs.length&&this.state.customURLs.forEach(function(e){r.push({id:e.id,settingsId:t.state.enumID,name:"URL"})}),r.length&&i.push({id:"others",items:r})),this.state.visible||i.push({id:"nothing"})}else i.push({id:"nothing"});if(!this.order)if(this.order=this.state.order,this.order){i.forEach(function(e){return-1===t.order.indexOf(e.id)&&t.order.push(e.id)});for(var l=function(e){i.find(function(i){return t.order[e]===i.id})||t.order.splice(e,1)},c=this.order.length-1;c>=0;c--)l(c)}else this.order=i.map(function(t){return t.id});var u=this.order.indexOf("nothing");-1!==u&&u!==this.order.length-1&&(this.order.splice(u,1),this.order.push("nothing"));var h=this.props.backgroundColor,d=!h||_.isUseBright(h),g=this.order.map(function(t,e){var s=i.find(function(e){return e.id===t});return s?"nothing"===s.id?n.a.createElement(as,{key:"nothing",editMode:this.props.editMode,user:this.props.user,states:this.props.states,objects:this.props.objects,id:""}):this.wrapItem(s.id,s.items,d,e):null}.bind(this)).filter(function(t){return t});return this.wrapContent(g)}}]),e}(s.Component),ds=Object(g.withStyles)({"drag-item":{display:"inline-block",width:"100%"},"drag-item-overlay":{backgroundColor:"green",borderRadius:"1em"},"sub-list-disabled-overflow":{top:0,bottom:0,position:"absolute",right:0,left:0,zIndex:2,backgroundColor:"rgba(90,90,90,0.5)"},"drag-button":{position:"fixed",top:70,right:30,zIndex:4},"add-button":{position:"fixed",top:70,right:100,zIndex:4}})(hs),gs=function(t){function e(t){var i;return Object(r.a)(this,e),(i=Object(c.a)(this,Object(u.a)(e).call(this,t))).speech=null,i.state={interimTranscript:"",finalTranscript:"",isListening:!1},i.isShow=null,i}return Object(h.a)(e,t),Object(l.a)(e,[{key:"getVoices",value:function(){return window.SpeechSynthesisUtterance?speechSynthesis.getVoices():[]}},{key:"componentDidUpdate",value:function(){this.isShow!==this.props.isShow&&(this.isShow=this.props.isShow,this.props.isShow&&(this.setState({isListening:!0}),this.startSpeechRecognition()))}},{key:"startSpeechRecognition",value:function(){var t=this;this.speech=e.isSpeechRecognitionSupported()?new(window.SpeechRecognition||window.webkitSpeechRecognition):null,this.setState({interimTranscript:"",finalTranscript:""}),this.locale=this.props.locale,this.speech&&this.locale&&(this.speech.continuous=!1,this.speech.interimResults=!0,this.speech.lang=this.locale,this.speech.onresult=function(e){var i="",s="";if("undefined"===typeof e.results)return t.speech.onend=null,void t.speech.stop();for(var n=e.resultIndex;n1e3*this._reloadInterval?this.reload():this._lastTimer=e,this._timer=setTimeout(function(){t._timer=null,t._monitor()},1e4)}}},{key:"_onAuth",value:function(t,e){var i=this;this._isSecure=e,this._isSecure&&(this._lastTimer=Date.now(),this._monitor()),this._autoSubscribe&&this._socket.emit("subscribe","*"),t&&this._socket.emit("subscribeObjects","*"),!0!==this._isConnected&&(this._isConnected=!0,this._connCallbacks.onConnChange&&setTimeout(function(){return i._socket.emit("authEnabled",function(t,e){i._user=e,i._connCallbacks.onConnChange(i._isConnected),"undefined"!==typeof window.app&&window.app.onConnChange(i._isConnected)})},0))}},{key:"reconnect",value:function(t){var e=this;t.mayReconnect&&!t.mayReconnect()||this._connectInterval||(this._connectInterval=setInterval(function(){console.log("Trying connect..."),e._socket.connect(),e._countDown=Math.floor(e._reconnectInterval/1e3),e.$&&e.$(".splash-screen-text").html(e._countDown+"...").css("color","red")},this._reconnectInterval),this._countDown=Math.floor(this._reconnectInterval/1e3),this.$&&(this.$(".splash-screen-text").html(this._countDown+"..."),this._countInterval=setInterval(function(){e._countDown--,e.$(".splash-screen-text").html(e._countDown+"...")},1e3)))}},{key:"reload",value:function(){"yunkong2.pro"===window.location.host||"yunkong2.net"===window.location.host||"yunkong2.biz"===window.location.host?window.location="/":window.location.reload()}},{key:"_init",value:function(t,e,i,s){var n=this;if("undefined"!==typeof window.socketNamespace&&(this.namespace=window.socketNamespace),(t=t||{}).name=t.name||this.namespace,void 0!==s&&(this._autoSubscribe=s),(window.document.URL.split("/local/")[1]||"undefined"===typeof window.socketUrl&&!t.connLink||"undefined"!==typeof window.socketUrl&&"local"===window.socketUrl)&&(this._type="local"),"undefined"!==typeof window.session){var a=window.session.get("user");a&&(this._authInfo={user:a,hash:window.session.get("hash"),salt:window.session.get("salt")})}this._connCallbacks=e;var o=t.connLink||window.localStorage.getItem("connLink");if(o||"undefined"===typeof window.socketUrl||(o=window.socketUrl),t.socketSession||"undefined"===typeof window.socketSession||(t.socketSession=window.socketSession),void 0===t.socketForceWebSockets&&"undefined"!==typeof socketForceWebSockets&&(t.socketForceWebSockets=window.socketForceWebSockets),"local"===this._type)this._isConnected=!0,this._connCallbacks.onConnChange&&this._connCallbacks.onConnChange(this._isConnected),"undefined"!==typeof window.app&&window.app.onConnChange(this._isConnected);else if("undefined"!==typeof window.io){var r;if(t.socketSession=t.socketSession||"nokey",r=o||window.location.protocol+"//"+window.location.host,this._socket)try{this._socket.close(),this._socket=null}catch(l){console.log("Cannot close connection: "+l)}this._socket=window.io.connect(r,{query:"key="+t.socketSession,"reconnection limit":1e4,"max reconnection attempts":1/0,reconnection:!1,upgrade:!t.socketForceWebSockets,rememberUpgrade:t.socketForceWebSockets,transports:t.socketForceWebSockets?["websocket"]:void 0}),this._socket.on("connect",function(){if(n._disconnectedSince){var e=Date.now()-n._disconnectedSince;console.log("was offline for "+e/1e3+"s"),n._reloadInterval&&e>1e3*n._reloadInterval&&!n.authError&&n.reload(),n._disconnectedSince=null}n._connectInterval&&(clearInterval(n._connectInterval),n._connectInterval=null),n._countInterval&&(clearInterval(n._countInterval),n._countInterval=null);var s=document.getElementById("server-disconnect");s&&(s.style.display="none"),n._socket.emit("name",t.name),console.log((new Date).toISOString()+" Connected => authenticate"),setTimeout(function(){n.waitConnect=setTimeout(function(){console.error("No answer from server"),!n.authError&&n.reload()},6e3),n._socket.emit("authenticate",function(t,e){n.waitConnect&&(clearTimeout(n.waitConnect),n.waitConnect=null),console.log((new Date).toISOString()+" Authenticated: "+t),t?n._onAuth(i,e):console.log("permissionError")})},50)}),this._socket.on("reauthenticate",function(t){n._connCallbacks.onConnChange&&(n._connCallbacks.onConnChange(!1),"undefined"===typeof window.app||n.authError||window.app.onConnChange(!1)),console.warn("reauthenticate"),n.waitConnect&&(clearTimeout(n.waitConnect),n.waitConnect=null),e.onAuthError?n.authError||(n.authError=!0,e.onAuthError(t)):n.reload()}),this._socket.on("connect_error",function(){n.$&&n.$(".splash-screen-text").css("color","#002951"),n.reconnect(t)}),this._socket.on("disconnect",function(){if(n._disconnectedSince=Date.now(),n._isConnected=!1,n._connCallbacks.onConnChange)setTimeout(function(){var t=document.getElementById("server-disconnect");t&&(t.style.display=""),n._connCallbacks.onConnChange(n._isConnected),"undefined"!==typeof window.app&&window.app.onConnChange(n._isConnected)},5e3);else{var e=document.getElementById("server-disconnect");e&&(e.style.display="")}n.reconnect(t)}),this._socket.on("reconnect",function(){var t=Date.now()-n._disconnectedSince;console.log("was offline for "+t/1e3+"s"),n._reloadInterval&&t>1e3*n._reloadInterval&&n.reload()}),this._socket.on("objectChange",function(t,e){if(n._useStorage&&n.storage){var i=n._objects||n.storage.get("objects");i&&(e?i[t]=e:i[t]&&delete i[t],n.storage.set("objects",i))}n._connCallbacks.onObjectChange&&n._connCallbacks.onObjectChange(t,e)}),this._socket.on("stateChange",function(t,e){if(t&&null!==e&&"object"===typeof e)if(n._connCallbacks.onCommand&&t===n.namespace+".control.command"){if(e.ack)return;if(e.val&&"string"===typeof e.val&&"{"===e.val[0]&&"}"===e.val[e.val.length-1])try{e.val=JSON.parse(e.val)}catch(l){console.log("Command seems to be an object, but cannot parse it: "+e.val)}e.val&&e.val.instance?n._connCallbacks.onCommand(e.val.instance,e.val.command,e.val.data)&&n.setState(t,{val:"",ack:!0}):n._connCallbacks.onCommand(n._cmdInstance,e.val,n._cmdData)&&n.setState(t,{val:"",ack:!0})}else t===n.namespace+".control.data"?n._cmdData=e.val:t===n.namespace+".control.instance"?n._cmdInstance=e.val:n._connCallbacks.onUpdate&&n._connCallbacks.onUpdate(t,e)}),this._socket.on("permissionError",function(t){n._connCallbacks.onError?n._connCallbacks.onError(t):console.log("permissionError")}),this._socket.on("error",function(i){"Invalid password or user name"===i?(console.warn("reauthenticate"),n.waitConnect&&(clearTimeout(n.waitConnect),n.waitConnect=null),e.onAuthError?n.authError||(n.authError=!0,e.onAuthError(i)):n.reload()):(console.error("Socket error: "+i),n.$&&n.$(".splash-screen-text").css("color","#002951"),n.reconnect(t))})}}},{key:"logout",value:function(t){this._isConnected?this._socket.emit("logout",t):console.log("No connection!")}},{key:"getVersion",value:function(t){this._checkConnection("getVersion",arguments)&&this._socket.emit("getVersion",function(e){return t&&t(e)})}},{key:"subscribe",value:function(t,e){this._checkConnection("subscribe",arguments)&&this._socket.emit("subscribe",t,e)}},{key:"unsubscribe",value:function(t,e){this._checkConnection("unsubscribe",arguments)&&this._socket.emit("unsubscribe",t,e)}},{key:"_checkAuth",value:function(t){this._isConnected?null!==this._socket?this._socket.emit("getVersion",function(e){return t&&t(e)}):console.log("socket.io not initialized"):console.log("No connection!")}},{key:"readFile",value:function(t,e,i){if(!e)throw new Error("No callback set");if("local"===this._type&&this.storage)try{var s=this.storage.get(t);e(null,s?JSON.parse(s):null)}catch(o){e(o,null)}else{if(!this._checkConnection("readFile",arguments))return;if(i||"undefined"===typeof window.app){var n=this.namespace;if("/"===t[0]){var a=t.split("/");n=a[1],a.splice(0,2),t=a.join("/")}this._socket.emit("readFile",n,t,function(i,s,n){return setTimeout(function(){return e(i,s,t,n)},0)})}else window.app.readLocalFile(t.replace(/^\/vis\.0\//,""),e)}}},{key:"getMimeType",value:function(t){return-1!==t.indexOf(".")&&(t=t.toLowerCase().match(/\.[^.]+$/)),".css"===t?"text/css":".bmp"===t?"image/bmp":".png"===t?"image/png":".jpg"===t?"image/jpeg":".jpeg"===t?"image/jpeg":".gif"===t?"image/gif":".tif"===t?"image/tiff":".js"===t?"application/javascript":".html"===t?"text/html":".htm"===t?"text/html":".json"===t?"application/json":".xml"===t?"text/xml":".svg"===t?"image/svg+xml":".eot"===t?"application/vnd.ms-fontobject":".ttf"===t?"application/font-sfnt":".woff"===t?"application/font-woff":".wav"===t?"audio/wav":".mp3"===t?"audio/mpeg3":"text/javascript"}},{key:"readFile64",value:function(t,e,i){var s=this;if(!e)throw new Error("No callback set");if(this._checkConnection("readFile",arguments))if(i||"undefined"===typeof window.app){var n=this.namespace;if("/"===t[0]){var a=t.split("/");n=a[1],a.splice(0,2),t=a.join("/")}this._socket.emit("readFile64",n,t,function(i,n,a){return setTimeout(function(){e(i,n?{mime:a||s.getMimeType(t),data:n}:{mime:a||s.getMimeType(t)},t)},0)})}else window.app.readLocalFile(t.replace(/^\/vis\.0\//,""),function(i,n,a){return setTimeout(function(){n?e(i,{mime:a||s.getMimeType(t),data:btoa(n)},t):e(i,t)},0)})}},{key:"writeFile",value:function(t,e,i,s){if("function"===typeof i&&(s=i,i=null),"local"===this._type)this.storage.set(t,JSON.stringify(e)),s&&s();else{if(!this._checkConnection("writeFile",arguments))return;"object"===typeof e&&(e=JSON.stringify(e,null,2));var n=t.split("/"),a=n[1];n.splice(0,2),"vis"===a?this._socket.emit("writeFile",a,n.join("/"),e,i?{mode:this._defaultMode}:{},s):this._socket.emit("writeFile",this.namespace,t,e,i?{mode:this._defaultMode}:{},s)}}},{key:"writeFile64",value:function(t,e,i){if(this._checkConnection("writeFile64",arguments)){var s=t.split("/"),n=s[1];s.splice(0,2),this._socket.emit("writeFile",n,s.join("/"),atob(e),{mode:this._defaultMode},i)}}},{key:"readDir",value:function(t,e){if(null!==this._socket){t||(t="/");var i=t.split("/"),s=i[1];i.splice(0,2),this._socket.emit("readDir",s,i.join("/"),{filter:!0},function(t,i){e&&e(t,i)})}else console.log("socket.io not initialized")}},{key:"mkdir",value:function(t,e){var i=t.split("/"),s=i[1];i.splice(0,2),this._socket.emit("mkdir",s,i.join("/"),function(t){return e&&e(t)})}},{key:"unlink",value:function(t,e){var i=t.split("/"),s=i[1];i.splice(0,2),this._socket.emit("unlink",s,i.join("/"),function(t){return e&&e(t)})}},{key:"renameFile",value:function(t,e,i){var s=t.split("/"),n=s[1];s.splice(0,2);var a=e.split("/");a.splice(0,2),this._socket.emit("rename",n,s.join("/"),a.join("/"),function(t){return i&&i(t)})}},{key:"setState",value:function(t,e,i){null!==this._socket&&this._socket.emit("setState",t,e,i)}},{key:"getStates",value:function(t,e){var i=this;if("function"===typeof t&&(e=t,t=null),"local"===this._type)return e(null,[]);this._checkConnection("getStates",arguments)&&(this.gettingStates=this.gettingStates||0,this.gettingStates++,this.gettingStates>1&&(console.log("Trying to get empty list, because the whole list could not be loaded"),t=[]),this._socket.emit("getStates",t,function(t,s){i.gettingStates--,t||!s?e&&e(t||"Authentication required"):e&&e(null,s)}))}},{key:"_fillChildren",value:function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);e.sort();for(var s=0;s500?W.t("Update to")+" "+this.state.actualVersion:""):n.a.createElement("span",{onClick:function(){return t.onUpdateVersion()}},"0.10.5"):null}},{key:"logout",value:function(){this.isCloud?window.location.href="/logout":this.conn.logout(function(){return window.location.reload()})}},{key:"getEditButton",value:function(t){return this.state.connected?(e=this.state.editMode?{color:Y.palette.editActive}:this.state.actualVersion&&("0.10.5"!==this.state.actualVersion||this.urlVersion&&this.state.actualVersion!==this.urlVersion)?{color:Y.palette.updateAvailable}:{color:t?Y.palette.textColorBright:Y.palette.textColorDark},n.a.createElement(b.a,{onClick:this.toggleEditMode.bind(this),style:e},n.a.createElement(x.V,{width:Y.iconSize,height:Y.iconSize}))):null;var e}},{key:"onMenuClose",value:function(){this.setState({open:!1})}},{key:"getMenu",value:function(t){var e=this;return n.a.createElement(N.a,{variant:this.state.menuFixed?"permanent":"temporary",open:this.state.open,onClose:function(){return e.onMenuClose()},classes:{paper:this.props.classes.menuBackground},style:{width:Y.menu.width,background:this.state.appSettings&&this.state.appSettings.menuBackground||"white"}},n.a.createElement(y.a,{style:this.state.appSettings&&this.state.appSettings.menuBackground?{background:this.state.appSettings.menuBackground}:{}},n.a.createElement(b.a,{onClick:this.onToggleMenu.bind(this),style:{color:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(x.o,{width:Y.iconSize,height:Y.iconSize})),this.state.connected&&this.state.editMode?n.a.createElement(b.a,{onClick:this.editAppSettingsOpen.bind(this),style:{color:this.state.editEnumSettings?Y.palette.editActive:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(x.J,{width:Y.iconSize,height:Y.iconSize})):null,n.a.createElement("div",{style:{flexGrow:1}}),this.state.width>500&&!this.state.menuFixed?n.a.createElement(b.a,{onClick:this.onToggleLock.bind(this),style:{float:"right",color:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(x.F,{width:Y.iconSize,height:Y.iconSize})):null),n.a.createElement(ht,{width:Y.menu.width,objects:this.objects,debug:!this.state.appSettings||(void 0===this.state.appSettings.debug||this.state.appSettings.debug),user:this.user,instances:this.state.appSettings&&this.state.appSettings.instances,background:this.state.appSettings&&this.state.appSettings.menuBackground,language:W.getLanguage(),viewEnum:this.state.viewEnum,editMode:this.state.editMode,root:this.state.masterPath,onSaveSettings:this.onSaveSettings.bind(this),onRootChanged:this.onRootChanged.bind(this),onSelectedItemChanged:this.onItemSelected.bind(this)}))}},{key:"getButtonFullScreen",value:function(t){return e.isFullScreenSupported()&&!this.initialFullScreenMode?n.a.createElement(b.a,{style:{color:t?Y.palette.textColorBright:Y.palette.textColorDark},onClick:this.onToggleFullScreen.bind(this)},this.state.fullScreen?n.a.createElement(x.C,{width:Y.iconSize,height:Y.iconSize}):n.a.createElement(x.B,{width:Y.iconSize,height:Y.iconSize})):null}},{key:"getButtonSpeech",value:function(t){var e=this;return!this.state.editMode&&this.state.connected&&this.state.appSettings&&(this.state.appSettings.text2command||0===this.state.appSettings.text2command)&&gs.isSpeechRecognitionSupported()?n.a.createElement(b.a,{style:{color:t?Y.palette.textColorBright:Y.palette.textColorDark},onClick:function(){return e.onSpeech(!0)}},n.a.createElement(x.I,{width:Y.iconSize,height:Y.iconSize})):null}},{key:"getButtonEditSettings",value:function(t){return this.state.connected&&this.state.editMode?n.a.createElement(b.a,{onClick:this.editEnumSettingsOpen.bind(this),style:{color:this.state.editEnumSettings?Y.palette.editActive:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(x.J,{width:Y.iconSize,height:Y.iconSize})):null}},{key:"getButtonSync",value:function(t){return!this.state.connected||!this.state.editMode||this.state.appSettings&&this.state.appSettings.noCache?null:n.a.createElement(b.a,{onClick:this.syncObjects.bind(this),title:W.t("Re-sync objects"),style:{color:this.state.editEnumSettings?Y.palette.editActive:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(x.P,{width:Y.iconSize,height:Y.iconSize}))}},{key:"getButtonLogout",value:function(t){return this.isCloud||this.auth?n.a.createElement(b.a,{onClick:this.logout.bind(this),title:W.t("Logout"),style:{color:this.state.editEnumSettings?Y.palette.editActive:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(A.e,{width:Y.iconSize,height:Y.iconSize})):null}},{key:"getButtonSignal",value:function(t){return this.state.connected?null:n.a.createElement(b.a,{disabled:!0,style:{color:t?Y.palette.textColorBright:Y.palette.textColorDark}},n.a.createElement(x.X,{width:Y.iconSize,height:Y.iconSize}))}},{key:"getAppBar",value:function(){var t=this.state.settings?this.state.settings.color:void 0,e=!t||_.isUseBright(t);return n.a.createElement(p.a,{position:"fixed",style:{width:this.state.menuFixed?"calc(100% - "+Y.menu.width+"px)":"100%",color:e?Y.palette.textColorBright:Y.palette.textColorDark,marginLeft:this.state.menuFixed?Y.menu.width:0}},n.a.createElement(y.a,{style:{background:t,color:e?Y.palette.textColorBright:Y.palette.textColorDark}},!this.state.menuFixed&&n.a.createElement(b.a,{color:"inherit","aria-label":"Menu",onClick:this.onToggleMenu.bind(this)},n.a.createElement(x.H,null)),_.getIcon(this.state.settings,Y.appBarIcon),n.a.createElement("h3",{color:"inherit",style:{flex:1}},this.getTitle()),n.a.createElement("div",{style:{color:e?Y.palette.textColorBright:Y.palette.textColorDark,whiteSpace:"nowrap"}},this.getVersionControl(e),this.getButtonSignal(e),this.getButtonEditSettings(e),this.getButtonSync(e),this.getEditButton(e),this.getButtonSpeech(e),this.getButtonLogout(e),this.getButtonFullScreen(e)),this.state.editEnumSettings?n.a.createElement(ce,{key:"enum-settings",name:this.getTitle(),windowWidth:parseFloat(this.state.width),getImages:this.readImageNames.bind(this),dialogKey:"enum-settings",settings:this.getDialogSettings(),onSave:this.saveDialogSettings.bind(this),onClose:this.editEnumSettingsClose.bind(this)}):null,this.state.editAppSettings?n.a.createElement(ce,{key:"app-settings",windowWidth:parseFloat(this.state.width),name:W.t("App settings"),dialogKey:"app-settings",settings:this.getAppSettings(),onSave:this.saveAppSettings.bind(this),onClose:this.editAppSettingsClose.bind(this)}):null))}},{key:"getStateList",value:function(){return n.a.createElement(ds,{objects:this.state.viewEnum===_.INSTANCES?this.instances:this.objects,user:this.user,states:this.states,align:this.state.settings&&this.state.settings.align,debug:!this.state.appSettings||(void 0===this.state.appSettings.debug||this.state.appSettings.debug),connected:this.state.connected,ignoreIndicators:(this.state.appSettings&&this.state.appSettings.ignoreIndicators||"").split(","),backgroundColor:this.state.settings&&this.state.settings.backgroundColor||"",background:this.state.settings&&this.state.settings.background||"",backgroundId:this.state.backgroundId,newLine:this.state.settings&&this.state.settings.newLine,editMode:this.state.editMode,windowWidth:parseFloat(this.state.width),windowHeight:parseFloat(this.state.height),marginLeft:this.state.menuFixed?Y.menu.width:0,enumID:this.state.viewEnum,onSaveSettings:this.onSaveSettings.bind(this),onControl:this.onControl.bind(this),onCollectIds:this.onCollectIds.bind(this)})}},{key:"getErrorDialog",value:function(){var t=this;return n.a.createElement(v.a,{"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",onClose:function(){return t.setState({errorShow:!1})},open:this.state.errorShow},n.a.createElement(E.a,{id:"alert-dialog-title"},W.t("Error")),n.a.createElement(C.a,null,n.a.createElement(z.a,{id:"alert-dialog-description"},this.state.errorText)),n.a.createElement(S.a,null,n.a.createElement(T.a,{onClick:function(){return t.setState({errorShow:!1})},color:"primary"},"OK")))}},{key:"getSpeechDialog",value:function(){var t=this;return this.state.appSettings&&(this.state.appSettings.text2command||0===this.state.appSettings.text2command)&&gs.isSpeechRecognitionSupported()?n.a.createElement(gs,{objects:this.objects,isShow:this.state.isListening,locale:this.getLocale(),onSpeech:this.onSpeechRec.bind(this),onFinished:function(){return t.onSpeech(!1)}}):null}},{key:"getLoadingScreen",value:function(){var t=window.materialBackground,i=t&&_.isUseBright(t);return n.a.createElement("div",{className:this.props.classes.loadingBackground,style:{background:window.materialBackground}},n.a.createElement(ms,{variant:this.gotObjects?"indeterminate":"determinate",color:i?"white":"black",value:100*this.state.loadingProgress/e.LOADING_TOTAL,label:W.t(this.state.loadingStep)}))}},{key:"render",value:function(){if(this.state.loading)return this.getLoadingScreen();var t=this.state.appSettings&&this.state.appSettings.menuBackground&&_.isUseBright(this.state.appSettings.menuBackground);return n.a.createElement("div",null,this.getAppBar(t),this.getMenu(t),this.getStateList(t),this.getErrorDialog(t),this.getSpeechDialog(t))}}],[{key:"getUrlVersion",value:function(){var t=window.document.location.pathname.match(/material\/(\d+\.\d+\.\d+)\//);return t&&t[1]}},{key:"isFullScreenSupported",value:function(){var t=document.documentElement;return!!(t.requestFullScreen||t.mozRequestFullScreen||t.webkitRequestFullscreen||t.msRequestFullscreen)}},{key:"controlFullScreen",value:function(t){if(t){var e=document.documentElement;e.requestFullScreen?e.requestFullScreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?/Version\/[\d]{1,2}(\.[\d]{1,2}){1}(\.(\d){1,2}){0,1} Safari/.test(navigator.userAgent)?e.webkitRequestFullscreen():e.webkitRequestFullscreen(js):e.msRequestFullscreen&&e.msRequestFullscreen()}else document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen()}},{key:"isEnumUsed",value:function(t,i){return!!t.find(function(t){return t.hasOwnProperty("children")?e.isEnumUsed(t.children,i):t.value===i})}}]),e}(s.Component);Ls.LOADING_TOTAL=5;var vs=Object(g.withStyles)(function(){return Y.classes})(Ls);i(614);var ws=i(143),bs=i.n(ws),fs=i(74),Ts=i.n(fs);i(616),i(617),i(618),i(619);o.a.render(n.a.createElement(bs.a,{theme:Ts()(Y)},n.a.createElement(vs,null)),document.getElementById("root"));try{"serviceWorker"in navigator&&window.addEventListener("load",function(){var t="".concat(".","/service-worker.js");navigator.serviceWorker.register(t,{insecure:!0}).then(function(t){t.onupdatefound=function(){var e=t.installing;e.onstatechange=function(){"installed"===e.state&&(navigator.serviceWorker.controller?console.log("New content is available; please refresh."):console.log("Content is cached for offline use."))}}}).catch(function(t){console.error("Error during service worker registration:",t),window.noServiceWorker=!0})})}catch(Ds){window.noServiceWorker=!0}}},[[243,2,1]]]); +//# sourceMappingURL=main.94535c0a.chunk.js.map \ No newline at end of file diff --git a/www/static/js/main.e0a2ce78.chunk.js.map b/www/static/js/main.94535c0a.chunk.js.map similarity index 99% rename from www/static/js/main.e0a2ce78.chunk.js.map rename to www/static/js/main.94535c0a.chunk.js.map index bd2fc39..ca36363 100644 --- a/www/static/js/main.e0a2ce78.chunk.js.map +++ b/www/static/js/main.94535c0a.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets/apartment.jpg","assets/tempColor.png","assets/rgb.png","basic-controls/react-color-saturation/Slider.js","theme.js","i18n.js","Utils.js","basic-controls/react-visibility-button/VisibilityButton.js","icons/IconHome.js","MenuList.js","States/SmartTypes.js","basic-controls/react-color-picker/ColorPicker.js","basic-controls/react-image-selector/ImageList.js","icons/icons.js","basic-controls/react-image-selector/ImageSelector.js","basic-controls/react-info-controls/ChipsControl.js","basic-controls/react-info-controls/SelectControl.js","basic-controls/react-info-controls/BoolControl.js","Dialogs/SmartDialogGeneric.js","Dialogs/SmartDialogSettings.js","States/SmartGeneric.js","icons/Jalousie.js","Dialogs/SmartDialogSlider.js","States/SmartBlinds.js","States/SmartButton.js","States/SmartDimmer.js","icons/ThermometerSimple.js","icons/Humidity.js","basic-controls/react-info-controls/InputControl.js","basic-controls/react-info-controls/InfoControl.js","Dialogs/SmartDialogInfo.js","States/SmartInfo.js","States/SmartSlider.js","icons/WindowOpened.js","icons/WindowClosed.js","icons/MotionOn.js","icons/MotionOff.js","icons/FireOn.js","icons/FireOff.js","icons/FloodOn.js","icons/FloodOff.js","icons/DoorOpened.js","icons/DoorClosed.js","States/SmartState.js","icons/Socket.js","States/SmartSwitch.js","icons/Thermometer.js","States/SmartThermometer.js","basic-controls/react-nest-thermostat/src/react-nest-thermostat.js","Dialogs/SmartDialogThermostat.js","States/SmartThermostat.js","icons/WindowTilted.js","States/SmartWindowTilt.js","States/SmartLock.js","States/SmartInstance.js","Dialogs/SmartDialogMedia.js","States/SmartMedia.js","basic-controls/react-knob/KnobControl.js","Dialogs/SmartDialogKnob.js","States/SmartVolume.js","Dialogs/SmartDialogWeatherForecast.js","States/SmartWeatherForecast.js","Dialogs/SmartDialogWarning.js","States/SmartWarning.js","Dialogs/SmartDialogURL.js","States/SmartURL.js","UtilsColors.js","basic-controls/react-color-saturation/ColorSaturation.js","Dialogs/SmartDialogColor.js","States/SmartColor.js","SmartTile.js","States/SmartDetector.js","StatesSubList.js","StatesList.js","SpeechDialog.js","basic-controls/react-loading-screen/LoadingIndicator.js","Connection.js","App.js","version.js","index.js","registerServiceWorker.js"],"names":["module","exports","__webpack_require__","p","percentToValue","percent","min","max","calculatePercent","node","event","isVertical","isReverted","_node$getBoundingClie2","getBoundingClientRect","width","height","_getOffset","_global","global","pageYOffset","pageXOffset","_node$getBoundingClie","left","top","getOffset","_getMousePosition","changedTouches","x","pageX","y","pageY","getMousePosition","value","onePercent","clamp","preventPageScrolling","preventDefault","Slider","props","_this","Object","_Users_zhongjin_yunkong2_yunkong2_material_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","this","_Users_zhongjin_yunkong2_yunkong2_material_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_zhongjin_yunkong2_yunkong2_material_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","state","currentState","jumpAnimationTimeoutId","handleKeyDown","_this$props","currentValue","Math","abs","step","keycode","emitChange","handleFocus","setState","handleBlur","handleClick","_this$props2","vertical","reverse","containerRef","playJumpAnimation","handleTouchStart","handleMouseDown","isTouch","touch","moved","document","body","addEventListener","handleMouseMoveBind","handleMouseUpBind","onDragStart","handleMouseUp","removeEventListener","onDragEnd","handleMouseMove","_this$props3","bind","_Users_zhongjin_yunkong2_yunkong2_material_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_7__","passive","clearTimeout","rawValue","callback","_this$props4","previousValue","onChange","disabled","number","round","roundToStep","Number","toFixed","concat","_this2","setTimeout","theme","transitions","duration","complex","_commonClasses","_classNames","_this3","_this$props5","Component","component","classes","classNameProp","className","other","_Users_zhongjin_yunkong2_yunkong2_material_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__","commonClasses","_Users_zhongjin_yunkong2_yunkong2_material_src_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__","jumped","focused","activated","classNames","root","containerClasses","container","trackBeforeClasses","track","trackBefore","trackAfterClasses","trackAfter","thumbClasses","thumb","trackProperty","thumbProperty","inlineTrackBeforeStyles","calculateTrackBeforeStyles","inlineTrackAfterStyles","calculateTrackAfterStyles","inlineThumbStyles","react__WEBPACK_IMPORTED_MODULE_8___default","a","createElement","assign","role","aria-valuenow","aria-valuemin","aria-valuemax","aria-orientation","onClick","onMouseDown","onTouchStart","ref","findDOMNode","style","_material_ui_core_ButtonBase__WEBPACK_IMPORTED_MODULE_13___default","disableRipple","onBlur","onKeyDown","onFocusVisible","nextProps","prevState","React","defaultProps","withStyles","commonTransitionsOptions","short","easing","easeOut","commonTransitions","create","thumbActivatedTransitions","colors","primary","palette","main","grey","position","padding","cursor","WebkitTapHighlightColor","&$disabled","&$vertical","&$reverse","transform","&$vertical$reverse","backgroundColor","&$activated","transition","zIndex","right","opacity","bottom","borderRadius","&$focused","boxShadow","fade","&$jumped","name","withTheme","typography","useNextVariants","menuBackground","background","loadingBackground","loadingContainer","textAlign","loadingText","color","fontSize","appBar","appBarVersionUpdate","appBarIcon","paddingRight","overflow","menuIcon","marginRight","mainPanel","backgroundImage","Background","backgroundSize","paddingTop","minHeight","menu","selected","settings","label","dropzone","marginTop","border","dropzoneRejected","dropzoneAccepted","refreshIndicator","strokeColor","loadingStrokeColor","dialog","inner","maxWidth","boxSizing","back","userSelect","list","overflowX","overflowY","paddingBottom","divider","header","whiteSpace","textOverflow","saveButton","closeButton","settingsBack","info","line","display","lineHeight","lc","float","icon","fontWeight","unit","valueUnit","floatRight","subTitle","buttonAllLight","marginLeft","textColorBright","textColorDark","updateAvailable","editActive","lampOn","lampOff","instanceRunning","instanceStopped","browserBar","iconSize","indicatorSize","slider","title","margin","row","paddingLeft","tile","verticalAlign","tileCorner","borderWidth","borderStyle","borderColor","tileOn","tileOff","tileIconSvg","size","tileIcon","pointerEvents","tileName","tileName2","tileNameSmall","tileText","tileText2","tileNumber","minWidth","tileState","tileState2","tileStateOn","tileStateOff","tileIndicators","tileIndicator","tileIndicatorsIcons","working","unreach","lowbat","maintain","error","direction","connected","secondary","text","div","button","editMode","checkIcon","editIcon","tileBorderRadius","removeIcon","buttonIcon","tileSize","buttonIconRemoved","editEnabled","editDisabled","I18n","lang","word","arg1","arg2","arg3","translations","w","console","log","undefined","replace","en","require","cn","window","sysLang","days","months","Utils","split","filter","item","map","toUpperCase","substring","toLowerCase","join","objects","id","options","isDesc","attr","language","common","desc","pos","lastIndexOf","CapitalWords","trim","obj","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","subURLs","URLs","source","dest","result","Array","from","_result$splice","splice","removed","slicedToArray","defaultEnabling","_id","enabled","useCustom","s","useCommon","startsWith","react_default","alt","src","parts","location","pathname","match","defaultValue","r","g","b","toString","indexOf","slice","rgb","length","parseInt","seconds","parseFloat","isNaN","hours","floor","minutes","secs","angle","num","format","dateFormat","now","m","year","find","day","Date","getTime","date","t","getDay","getDate","getMonth","namespace","INSTANCES","styles","buttonSmall","buttonBig","SmallVisibilityButton","classCallCheck","possibleConstructorReturn","getPrototypeOf","toggleState","e","stopPropagation","visible","big","useBright","md","iconStyle","stroke","fill","strokeWidth","strokeLinejoin","strokeMiterlimit","IconHome","viewBox","xmlns","version","floodColor","floodOpacity","in","in2","operator","radius","stdDeviation","isOn","d","iconsSelected","icons","menuSelectedBright","menuSelectedDark","menuTextBright","menuTextDark","MenuList","_this$fillEnums","fillEnums","enums","roots","selectedIndex","instances","visibility","fillVisibility","reg","RegExp","ids","keys","sort","i","test","index","pop","parentId","push","expanded","localStorage","getItem","tiles","members","viewEnum","items","getElementsToShow","changed","forEach","newState","wasChanged","_this$fillEnums2","_this$fillVisibility","ListSubheader_default","borderBottom","getSettings","visibilityButton","VisibilityButton","onToggleEnabled","IconButton_default","key","tooltip","onRootChanged","icons_IconHome","Theme","getIcon","Button_default","variant","page","pages","_objects","_this4","rootParts","_loop","onSaveSettings","level","anyIcons","isUseBright","_this5","children","getListItems","ListItem_default","el","onSelected","ListItemIcon_default","ListItemText_default","onExpandMenu","Collapse_default","timeout","unmountOnExit","List_default","disablePadding","setItem","expandMenu","onSelectedItemChanged","_this6","dividerStyle","Divider_default","getListHeader","path","delButton","swatch","popover","cover","ColorPicker","displayColorPicker","handleClose","handleChange","getColor","TextField_default","target","react_color_lib","onChangeComplete","ImageList","image","onSelect","maxHeight","images","Image","ButtonBase_default","tabIndex","focusRipple","focusVisibleClassName","focusVisible","marginBottom","imageSrc","imageBackdrop","imageButton","flexWrap","&:hover, &$focusVisible","& $imageBackdrop","& $imageMarked","& $imageTitle","alignItems","justifyContent","white","backgroundPosition","black","imageTitle","spacing","imageMarked","IconList","List","fontFamily","deleteIcon","openIcon","camIcon","imageBar","bar","chart-dialog","chart-dialog-paper","chart-dialog-img","chart-dialog-content","backgroundRepeat","ImageSelector","imageStatus","beforeCrop","opened","cropOpened","crop","cropWidth","cropHeight","cropPixels","inputRef","createRef","cropRef","nextState","file","aspect","data","onUpload","files","readFileDataUrl","err","alert","handleSelectImage","current","click","cropImage","tryCount","onImageLoaded","clientWidth","clientHeight","naturalHeight","naturalWidth","_style","preview","removeImage","mini","aria-label","react_image_selector_ImageList","isMobile","onCamera","type","accept","handleDropImage","capture","es","maxSize","onDrop","_ref","isDragActive","isDragReject","textAccepted","textRejected","textWaiting","Dialog_default","open","paper","onClose","aria-labelledby","DialogTitle_default","DialogContent_default","ReactCrop_default","onComplete","pixelCrop","keepSelection","DialogActions_default","onCropEnd","autoFocus","imageData","fileName","cb","canvas","ctx","getContext","onload","drawImage","toDataURL","reader","FileReader","onabort","onerror","readAsDataURL","navigator","userAgent","ChipsControl","chips","add","keyCode","onAdd","Chip_default","onDelete","handleDelete","chip","inputLine","input","textAdd","InputLabel_default","htmlFor","NativeSelect_default","Input_default","getOptions","opt","subItems","Icon","Typography_default","Switch_default","checked","val","dist_default","interval","fromNow","locale","SmartDialogGeneric","stateRx","toast","onContextMenu","refModal","dialogStyle","closeOnPaperClick","savedParent","subscribes","subscribed","positionTuned","parentElement","appendChild","onCollectIds","firstChild","offsetWidth","forceUpdate","ts","forceClose","mayClose","windowWidth","dialogKey","Paper_default","generateContent","Snackbar_default","anchorOrigin","horizontal","handleToastClose","autoHideDuration","ContentProps","aria-describedby","message","showCloseButton","getAdditionalElements","shiftKey","ctrlKey","COLOR_MODES","RGB","HUE","R_G_B","TEMPERATURE","descCopyIcon","descDivId","descTitle","descCopied","SmartDialogSettings","handleWarningCancel","ignoreUnsaved","unsavedDialog","handleWarningIgnore","values","anchorEl","getImages","assertThisInitialized","componentReady","get","prototype","isChanged","onSave","ev","newValue","pictures","newVal","currentTarget","settingsId","elevation","lib_default","copyId","getObjectName","react_info_controls_BoolControl","handleToggle","getLanguage","react_color_picker_ColorPicker","handleValue","react_info_controls_ChipsControl","react_info_controls_SelectControl","react_image_selector_ImageSelector","handleIcon","doubleSize","inputProps","handleText","generateObjectInfo","Toolbar_default","DialogContentText_default","propTypes","PropTypes","oneOfType","string","object","func","array","isRequired","objectInfo","SmartGeneric","noSubscribe","channelInfo","defaultIcon","doubleState","showCorner","executing","showSettings","ignoreIndicators","lastEnabledChange","states","indicators","workingId","unreachId","lowbatId","maintainId","errorId","directionId","undef","up","down","errorText","instanceId","showDialog","onMouseUpBind","onMouseUp","registerHandler","onTileMouseDown","instanceNumber","getObjectNameCh","setBackgroundImage","nameStyle","getNameFontSize","setVisibility","setColorOn","colorOn","setColorOff","colorOff","setSize","channelId","getParentId","enumNames","timer","onToggleValue","onLongClick","newSettings","customSettings","enumSettings","enumId","setDelete","saveSettings","decimals","that","titles","indicator","strVal","IconDirectionUp","IconDirectionDown","IconDirection","inverted","getObjectIcon","unshift","iconOff","getDefaultIcon","useDefaultIcon","stateId","noPointerEvents","styleState","styleName","styleText","getStateText","getFirstName","getAdditionalName","content","toggleEnabled","Dialogs_SmartDialogSettings","getDialogSettings","saveDialogSettings","onSettingsClose","getIndicators","wrapContent","channelName","newName","Jalousie","SmartDialogSlider","externalValue2localValue","startValue","toggleValue","startToggleValue","onMouseMoveBind","onMouseMove","lastControl","refSlider","types","dimmer","time","timeUp","mouseDown","touches","clientY","blinds","onValueChange","localValue2externalValue","eventToValue","offsetHeight","offsetTop","fa","ti","buttonName","darken","onStop","onToggle","buttonStopStyle","sliderStyle","getSliderColor","handlerStyle","onButtonDown","onTouchEnd","onButtonUp","buttonStyle","getTopButtonName","getValueText","getBottomButtonName","getStopButton","getToggleButton","bool","SmartBlinds","actualId","stopId","setValue","toggleOnClick","isPointer","ack","percentToRealValue","onControl","realValueToPercent","customIcon","icons_Jalousie","overlapStyle","CircularProgress_default","getStandardContent","Dialogs_SmartDialogSlider","onDialogClose","Dialog","SmartButton","pressed","IconButton","stateName","IconPlay","IconStop","IconPause","IconUnmute","IconMute","IconForward","IconPrev","IconReplay","IconShuffle","onTileClick","SmartDimmer","onId","onActualId","lastNotNullPercent","ThermometerSimple","cx","cy","Humidity","InputControl","SmartDialogInfo","points","refDialog","controlValue","write","read","handleButton","Slider_default","react_info_controls_InputControl","react_info_controls_InfoControl","invisibleDefaultRoles","SmartInfo","hasControls","infoIDs","objA","objB","typeA","typeB","infos","getObjectAttributes","IconInfo","firstName","getSecondaryDiv","getNumberOfValuesIndicator","Dialogs_SmartDialogInfo","splitCamelCase","IconHydro","IconThermometer","SmartSlider","IconCustom","roundValue","WindowOpened","WindowClosed","MotionOn","MotionOff","FireOn","FireOff","FloodOn","FloodOff","DoorOpened","DoorClosed","IconSuns","IconSun1","IconSun2","IconSun3","IconSun4","IconSun5","IconSun6","IconSun7","SmartState","Types","iconOn","IconWindowOpened","IconWindowClosed","textOn","textOff","showTime","door","IconDoorOpened","IconDoorClosed","motion","IconMotionOn","IconMotionOff","iconColorOn","iconColorOff","fireAlarm","IconFireOn","IconFireOff","hideOnFalse","floodAlarm","IconFloodOn","IconFloodOff","lastChange","someIndicator","Socket","SmartSwitch","light","IconLight","socket","IconCheck","IconCancel","IconSwitch","backOn","backOff","toggle","Thermometer","SmartThermometer","icons_Thermometer","Thermostat","dialColor","hvacMode","dial","WebkitUserSelect","MozUserSelect","msUserSelect","circle","WebkitTransition","textAnchor","alignmentBaseline","away","ambient","leaf","point","iPoint","origin","radians","PI","cos","sin","_self","rotatePoint","scale","actualMinValue","actualMaxValue","diameter","ticksOuterRadius","ticksInnerRadius","rangeValue","maxValue","minValue","ambientTemperature","targetTemperature","restrictToRange","numTicks","tickPoints","tickPointsLarge","theta","tickArray","iTick","isLarge","isActive","tickElement","pointsToPath","rotatePoints","leafScale","leafDef","mapLeafPoint","translate","lblAmbientPosition","peggedValue","degs","ambientPosition","getStyles","SmartDialogThermostat","boostValue","actualValue","onMouseDownBind","refPanel","svgControl","getElementsByTagName","svgWidth","svgHeight","svgCenterX","svgCenterY","svgRadius","rect","h","atan2","checkRadius","clientX","sqrt","posToTemp","onBoostToggle","onBoostMode","react_nest_thermostat","buttonBoostStyle","SmartThermostat","boostId","humidityId","humUnit","degrees","icons_ThermometerSimple","icons_Humidity","boostOn","Dialogs_SmartDialogThermostat","WindowTilted","VALUES","closed","tilted","SmartWindowTilt","v","IconWindowTilted","SmartLock","openId","IconLockOpened","IconLockClosed","action","onEscapeKeyDown","onAction","icons_DoorOpened","getDialog","SmartInstance","onlyWWW","connectedId","connectedState","img","HEIGHT_HEADER","HEIGHT_VOLUME","HEIGHT_COVER","HEIGHT_INFO","HEIGHT_CONTROL","HEIGHT_TIME","REPEAT","artist","album","control","prev","next","stop","play","pause","repeat","shuffle","elapsed","volume","mute","SmartDialogMedia","divs","set","seek","j","defineProperty","collectState","collectTimer","volumeTimer","seekTimer","_value","actual","mode","url","onUpdateTimer","onVolume","IconVolume0","IconVolume100","onToggleMute","getMute","getVolumeSlider","onSeek","getTimeString","getSlider","_this7","IconRepeatAll","IconRepeatOne","onRepeat","_this8","onShuffle","_this9","buttons","onButton","showStop","getShuffle","getRepeat","getHeaderDiv","getVolumeDiv","getCoverDiv","getInfoDiv","getTimeDiv","getControlsDiv","SmartMedia","Dialogs_SmartDialogMedia","activeTick","activeTitleMin","textShadow","activeTitleMax","KnobControl","ticksNumber","angleStart","angleEnd","angleSize","refKnob","calcSteps","ticks","calcActiveTick","knobWidth","minPos","valueToPos","half","maxPos","componentDidUpdate","valueStep","angleStep","knob","tick","deltaY","knobBefore","hideValue","halfSize","posToValue","lastValue","styleMin","styleMax","knobSurround","onWheel","drawMinMax","drawKnob","drawValue","drawTicks","textTransform","SmartDialogKnob","muteValue","startMuteValue","controlTimer","onMute","buttonMuteStyle","buttonMuted","react_knob_KnobControl","onValueChanged","parent","getMuteButton","groupText","SmartVolume","muteId","volumeGroup","group","IconVolume50","Dialogs_SmartDialogKnob","header-div","current-div","currentIcon-div","currentIcon-icon","currentIcon-temperature","currentDate-div","currentDate-date","currentDate-location","todayTemp-div","todayTemp-temperature","todayTemp-temperatureMin","todayTemp-temperatureMax","todayTemp-temperatureTitle","todayTemp-temperatureValue","todayTemp-precipitation","todayTemp-precipitationTitle","todayTemp-precipitationValue","todayTemp-pressure","todayTemp-pressureTitle","todayTemp-pressureValue","todayState-div","todayState-wind","todayState-windTitle","todayState-windDir","todayState-windSpeed","todayState-windIcon","todayState-windChill","todayState-windChillTitle","todayState-windChillValue","todayState-humidity","todayState-humidityTitle","todayState-humidityValue","todayState-state","chart-div","chart-header","chart-img","days-div","day-div","dayIcon-div","dayIcon-icon","dayIcon-temperature","dayDate-div","dayDate-date","dayTemp-div","dayTemp-temperature","dayTemp-temperatureMin","dayTemp-temperatureMax","dayTemp-temperatureTitle","dayTemp-temperatureValue","dayTemp-precipitation","dayTemp-precipitationTitle","dayTemp-precipitationValue","dayTemp-humidity","dayTemp-humidityTitle","dayTemp-humidityValue","dayTemp-pressure","dayTemp-pressureTitle","dayTemp-pressureValue","dayState-div","dayState-wind","dayState-windTitle","dayState-windDir","dayState-windSpeed","dayState-windIcon","dayState-windChill","dayState-windChillTitle","dayState-windChillValue","dayState-state","SmartDialogWeatherForecast","tempID","humidityID","chartOpened","setMaxHeight","chart","temperature","humidity","humidityMin","humidityMax","windChill","windSpeed","temperatureMin","temperatureMax","precipitation","pressure","windIcon","windDirection","dir","getWindDirection","date2string","history","temp","setDate","windchill","windDir","windUnit","tempMin","tempMax","pressureUnit","getDayIconDiv","getDayDateDiv","getDayWindDiv","getDayTempDiv","locationText","hideFirstDay","getDayDiv","chartLast","getChartDiv","focus","onOpenHistory","getCurrentIconDiv","getCurrentDateLocationDiv","getTodayWindDiv","getTodayTempDiv","getCurrentDiv","getDaysDiv","SmartWeatherForecast","isEmpty","windDegrees","Dialogs_SmartDialogWeatherForecast","date-div","date-start","date-end","title-div","title-text","info-div","info-text","icon-div","desc-div","desc-text","SmartDialogWarning","description","start","end","warning","onOpenNewWindow","getTitleDiv","getDateDiv","getIconDiv","getDescDiv","getFullYear","Dialogs_SmartDialogWarning","iframe-div","iframe","image-img","objectFit","SmartDialogURL","getUrl","fullWidth","clearInterval","updateInDialog","update","setInterval","updateUrl","getIFrameDiv","SmartURL","getSettingsCustomURLs","isImage","hideIcon","componentDidMount","Dialogs_SmartDialogURL","UtilsColors","q","l","hue2rgb","kelvin","red","green","blue","pow","limit","testRGB","minTemperature","maxTemperature","temperatureToRGB","rgbArray","hex","ColorSaturation","hue","saturation","UtilsColor","rgb2string","hslToRgb","hexToRgbA","react_color_saturation_Slider","buttonColorStyle","dimmerSlider","buttonOnOff","buttonOn","buttonOff","buttonColor","buttonRgb","buttonTemp","colorCircle","SmartDialogColor","tMin","tMax","startRGB","startTemp","rgb2temperature","useDimmer","startDimmer","on","useOn","startOn","tempMode","startModeTemp","modeTemperature","modeRGB","refColor","refColorCursor","refColorImage","colorWidth","colorTop","colorLeft","rad","oldRad","d2r","c","hr","strokeStyle","beginPath","arc","R","offsetLeft","tempToPos","colorToPos","onDimmerChange","onRgbChange","hex2array","setDialogStyle","posToColor","changeTimer","sendRGB","_UtilsColors$hex2arra","_UtilsColors$hex2arra2","_UtilsColors$rgbToHsl","rgbToHsl","onSwitchColorMode","imageCT","ColorsTempImg","ColorsImg","react_color_saturation_ColorSaturation","getHue","onDimmerChanged","getOnOffButton","getColorModeButton","decomposeColor","SmartColor","colorMode","brightness","real","updateBackgroundColor","_UtilsColors$hex2arra3","_UtilsColors$hex2arra4","_UtilsColors$rgbToHsl2","_rgb","TinyColor","unregisterHandler","Dialogs_SmartDialogColor","SmartTile","bottomBar","handlers","tileRef","seemless","isVisible","isDelete","onVisibilityControl","hasAnimation","getTileStyle","eventName","handler","Control","blind","windowTilt","thermostat","lock","instance","media","SmartWarning","rgbSingle","ct","weatherForecast","createControl","additionalParameters","WORKING","IconWorking","UNREACH","IconUnreach","LOWBAT","IconLowbat","MAINTAIN","IconMaintain","ERROR","IconError","DIRECTION","CONNECTED","IOBChannelDetector","detector","ChannelDetector","detect","apply","arguments","one","StatesSubList","SmartDetector","enumSubID","newLine","align","enumID","subDragging","subEnabled","getSettingsOrder","dragging","visibleChildren","widgetTypes","collectVisibility","collectVisibilityTimer","destination","reorder","commonVisible","combinedVisibility","onVisibilityTimer","enumFunctions","usedIds","controls","random","_keysOptional","_usedIdsOptional","SET","ON_SET","STOP","debug","av","bv","react_beautiful_dnd_esm","draggableId","provided","snapshot","isDragging","innerRef","draggableProps","dragHandleProps","droppableProps","wrapItem","placeholder","droppableId","wrapAllItems","countLights","controlAllLights","_this10","onToggleSubEnabled","getControlAll","drag-item","drag-item-overlay","sub-list-disabled-overflow","StatesList","customURLs","backgroundId","getEnumFunctions","_enum","getEnums","src_StatesSubList","columns","getToggleDragButton","getAddButton","onAddCustomURL","isNothing","windowHeight","_this11","orderEnums","used","column","orderedColumns","elem","src_SmartTile","drag-button","add-button","SpeechDialog","speech","interimTranscript","finalTranscript","isListening","isShow","SpeechSynthesisUtterance","speechSynthesis","getVoices","startSpeechRecognition","isSpeechRecognitionSupported","SpeechRecognition","webkitSpeechRecognition","continuous","interimResults","onresult","results","onend","resultIndex","transcript","isFinal","stopTimer","stopSpeechRecognition","isImmediately","onSpeech","onFinished","actions","modal","progress","progressText","LinearProgress_default","ServerConnection","_socket","_isConnected","_disconnectedSince","_connCallbacks","onConnChange","onUpdate","onRefresh","onAuth","onCommand","onError","_authInfo","_isAuthDone","_isAuthRequired","_authRunning","_cmdQueue","_type","_timeout","_reconnectInterval","reconnectInterval","_reloadInterval","reloadInterval","_cmdData","_cmdInstance","_isSecure","_defaultMode","defaultMode","_useStorage","useStorage","_enums","_autoSubscribe","autoSubscribe","$","storage","_init","connOptions","connCallbacks","objectsRequired","_user","_arguments","_queueCmdIfRequired","_timer","_lastTimer","reload","_monitor","isSecure","emit","auth","app","mayReconnect","_connectInterval","connect","_countDown","html","css","_countInterval","host","socketNamespace","URL","socketUrl","connLink","session","hash","salt","socketSession","socketForceWebSockets","io","protocol","close","query","reconnection limit","max reconnection attempts","Infinity","reconnection","upgrade","rememberUpgrade","transports","offlineTime","authError","getElementById","toISOString","waitConnect","isOk","_onAuth","warn","onAuthError","reconnect","onObjectChange","command","_checkConnection","idOrArray","filename","isRemote","Error","adapter","mimeType","readLocalFile","ext","mime","getMimeType","btoa","atob","dirname","oldname","newname","parts1","parts2","pointId","IDs","gettingStates","len","useCache","startkey","endkey","res","rows","native","defaultFileMode","_fillChildren","count","id_","__id","k","groupName","groups","_groups","enumName","timeSync","objId","args","_this12","_checkAuth","__cmdQueue","password","_this13","projectDir","readDir","dirs","f","acl","readOnly","permissions","_this14","shift","_detectViews","subErr","project","_readProjects","_this15","empty","_this16","_hosts","getStates","useConvert","_this17","getLiveHost","base64","_this18","isKeyboardAvailableOnFullScreen","Element","ALLOW_KEYBOARD_INPUT","appConfigID","App","decodeURIComponent","menuFixed","Storage","loading","loadingProgress","loadingStep","refresh","errorShow","fullScreen","masterPath","editEnumSettings","editAppSettings","appSettings","actualVersion","tasks","gotObjects","subscribeInstances","requestStates","conn","updateWindowDimensions","initialFullScreenMode","mozFullScreen","webkitIsFullScreen","isCloud","hostname","tryToConnect","urlVersion","getUrlVersion","prevProps","readInstances","debugInstances","metas","getElementsByClassName","setAttribute","localData","config","appConfig","getObjects","getObject","noCache","getUser","getIsLoginRequired","readRemoteData","debugObjects","debugEnums","debugChannels","showError","setLanguage","startEnum","setDataFormat","getDateFormat","readInstancesData","instancesSettings","setBarColor","text2command","subscribe","isConnected","resubscribe","readAllData","updateState","speak","loadLocalData","resizeTimer","innerWidth","innerHeight","controlFullScreen","doNotCloseMenu","encodeURIComponent","onItemSelected","requestTimer","updateIds","isMount","newIDs","oldIDs","nonIDs","unsubscribe","objectAttribute","oldObj","removeItem","task","defaultSettings","setSettings","clearCachedObjects","processTasks","writeFile64","isStart","voices","getLocale","utterance","voice","isEnumUsed","subTree","saveAppSettings","nativeSettings","_appSettings","newLocation","noServiceWorker","serviceWorker","ready","then","registration","onUpdateVersion","href","logout","toggleEditMode","Drawer_default","onMenuClose","onToggleMenu","editAppSettingsOpen","flexGrow","onToggleLock","src_MenuList","isFullScreenSupported","onToggleFullScreen","editEnumSettingsOpen","syncObjects","toolbarBackground","AppBar_default","flex","getTitle","getVersionControl","getButtonSignal","getButtonEditSettings","getButtonSync","getEditButton","getButtonSpeech","getButtonLogout","getButtonFullScreen","readImageNames","editEnumSettingsClose","getAppSettings","editAppSettingsClose","src_StatesList","src_SpeechDialog","onSpeechRec","materialBackground","react_loading_screen_LoadingIndicator","LOADING_TOTAL","getLoadingScreen","getAppBar","getMenu","getStateList","getErrorDialog","getSpeechDialog","docElm","documentElement","requestFullScreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","isFullScreen","element","cancelFullScreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","ReactDOM","render","MuiThemeProvider_default","createMuiTheme","src_App_0","swUrl","process","register","insecure","onupdatefound","installingWorker","installing","onstatechange","controller","catch"],"mappings":"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","file":"static/js/main.e0a2ce78.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/apartment.28bae16c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/tempColor.b133cd66.png\";","module.exports = __webpack_public_path__ + \"static/media/rgb.5d0e5ef3.png\";","import React from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport keycode from 'keycode';\r\nimport classNames from 'classnames';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport ButtonBase from '@material-ui/core/ButtonBase';\r\nimport { fade } from '@material-ui/core/styles/colorManipulator';\r\nimport clamp from '@material-ui/lab/utils/clamp';\r\n\r\nexport const styles = theme => {\r\n const commonTransitionsOptions = {\r\n duration: theme.transitions.duration.short,\r\n easing: theme.transitions.easing.easeOut,\r\n };\r\n\r\n const commonTransitions = theme.transitions.create(\r\n ['width', 'height', 'left', 'top', 'box-shadow'],\r\n commonTransitionsOptions,\r\n );\r\n // no transition on the position\r\n const thumbActivatedTransitions = theme.transitions.create(\r\n ['width', 'height', 'box-shadow'],\r\n commonTransitionsOptions,\r\n );\r\n\r\n const colors = {\r\n primary: theme.palette.primary.main,\r\n disabled: theme.palette.grey[400],\r\n };\r\n\r\n return {\r\n /* Styles applied to the root element. */\r\n root: {\r\n position: 'relative',\r\n width: '100%',\r\n padding: '16px 8px',\r\n cursor: 'pointer',\r\n WebkitTapHighlightColor: 'transparent',\r\n '&$disabled': {\r\n cursor: 'no-drop',\r\n },\r\n '&$vertical': {\r\n height: '100%',\r\n padding: '8px 16px',\r\n },\r\n '&$reverse': {\r\n transform: 'scaleX(-1)',\r\n },\r\n '&$vertical$reverse': {\r\n transform: 'scaleY(-1)',\r\n },\r\n },\r\n /* Styles applied to the container element. */\r\n container: {\r\n position: 'relative',\r\n '&$vertical': {\r\n height: '100%',\r\n },\r\n },\r\n /* Styles applied to the track elements. */\r\n track: {\r\n position: 'absolute',\r\n transform: 'translate(0, -50%)',\r\n top: '50%',\r\n height: 2,\r\n backgroundColor: colors.primary,\r\n '&$activated': {\r\n transition: 'none',\r\n },\r\n '&$disabled': {\r\n backgroundColor: colors.disabled,\r\n },\r\n '&$vertical': {\r\n transform: 'translate(-50%, 0)',\r\n left: '50%',\r\n top: 'initial',\r\n width: 2,\r\n },\r\n },\r\n /* Styles applied to the track element before the thumb. */\r\n trackBefore: {\r\n zIndex: 1,\r\n left: 0,\r\n transition: commonTransitions,\r\n },\r\n /* Styles applied to the track element after the thumb. */\r\n trackAfter: {\r\n right: 0,\r\n opacity: 0.24,\r\n transition: commonTransitions,\r\n '&$vertical': {\r\n bottom: 0,\r\n },\r\n },\r\n /* Styles applied to the thumb element. */\r\n thumb: {\r\n position: 'absolute',\r\n zIndex: 2,\r\n transform: 'translate(-50%, -50%)',\r\n width: 12,\r\n height: 12,\r\n borderRadius: '50%',\r\n transition: commonTransitions,\r\n backgroundColor: colors.primary,\r\n '&$focused': {\r\n boxShadow: `0px 0px 0px 9px ${fade(colors.primary, 0.16)}`,\r\n },\r\n '&$activated': {\r\n width: 17,\r\n height: 17,\r\n transition: thumbActivatedTransitions,\r\n },\r\n '&$disabled': {\r\n cursor: 'no-drop',\r\n width: 9,\r\n height: 9,\r\n backgroundColor: colors.disabled,\r\n },\r\n '&$jumped': {\r\n width: 17,\r\n height: 17,\r\n },\r\n },\r\n /* Class applied to the root element to trigger JSS nested styles if `reverse={true}` . */\r\n reverse: {},\r\n /* Class applied to the track and thumb elements to trigger JSS nested styles if `disabled`. */\r\n disabled: {},\r\n /* Class applied to the track and thumb elements to trigger JSS nested styles if `jumped`. */\r\n jumped: {},\r\n /* Class applied to the track and thumb elements to trigger JSS nested styles if `focused`. */\r\n focused: {},\r\n /* Class applied to the track and thumb elements to trigger JSS nested styles if `activated`. */\r\n activated: {},\r\n /* Class applied to the root, track and container to trigger JSS nested styles if `vertical`. */\r\n vertical: {},\r\n };\r\n};\r\n\r\nfunction percentToValue(percent, min, max) {\r\n return ((max - min) * percent) / 100 + min;\r\n}\r\n\r\nfunction roundToStep(number, step) {\r\n return Math.round(number / step) * step;\r\n}\r\n\r\nfunction getOffset(node) {\r\n const { pageYOffset, pageXOffset } = global;\r\n const { left, top } = node.getBoundingClientRect();\r\n\r\n return {\r\n top: top + pageYOffset,\r\n left: left + pageXOffset,\r\n };\r\n}\r\n\r\nfunction getMousePosition(event) {\r\n if (event.changedTouches && event.changedTouches[0]) {\r\n return {\r\n x: event.changedTouches[0].pageX,\r\n y: event.changedTouches[0].pageY,\r\n };\r\n }\r\n\r\n return {\r\n x: event.pageX,\r\n y: event.pageY,\r\n };\r\n}\r\n\r\nfunction calculatePercent(node, event, isVertical, isReverted) {\r\n const { width, height } = node.getBoundingClientRect();\r\n const { top, left } = getOffset(node);\r\n const { x, y } = getMousePosition(event);\r\n\r\n const value = isVertical ? y - top : x - left;\r\n const onePercent = (isVertical ? height : width) / 100;\r\n\r\n return isReverted ? 100 - clamp(value / onePercent) : clamp(value / onePercent);\r\n}\r\n\r\nfunction preventPageScrolling(event) {\r\n event.preventDefault();\r\n}\r\n\r\n/* istanbul ignore if */\r\nif (process.env.NODE_ENV !== 'production' && !React.createContext) {\r\n throw new Error('Material-UI: react@16.3.0 or greater is required.');\r\n}\r\n\r\nclass Slider extends React.Component {\r\n state = { currentState: 'initial' };\r\n\r\n jumpAnimationTimeoutId = -1;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleMouseMoveBind = this.handleMouseMove.bind(this);\r\n this.handleMouseUpBind = this.handleMouseUp.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.containerRef) {\r\n this.containerRef.addEventListener('touchstart', preventPageScrolling, { passive: false });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.containerRef.removeEventListener('touchstart', preventPageScrolling, { passive: false });\r\n document.body.removeEventListener('mousemove', this.handleMouseMoveBind);\r\n document.body.removeEventListener('mouseup', this.handleMouseUpBind);\r\n document.body.removeEventListener('touchmove', this.handleMouseMoveBind);\r\n document.body.removeEventListener('touchend', this.handleMouseUpBind);\r\n clearTimeout(this.jumpAnimationTimeoutId);\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n if (nextProps.disabled) {\r\n return { currentState: 'disabled' };\r\n }\r\n\r\n if (!nextProps.disabled && prevState.currentState === 'disabled') {\r\n return { currentState: 'normal' };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n handleKeyDown = event => {\r\n const { min, max, value: currentValue } = this.props;\r\n\r\n const onePercent = Math.abs((max - min) / 100);\r\n const step = this.props.step || onePercent;\r\n let value;\r\n\r\n switch (keycode(event)) {\r\n case 'home':\r\n value = min;\r\n break;\r\n case 'end':\r\n value = max;\r\n break;\r\n case 'page up':\r\n value = currentValue + onePercent * 10;\r\n break;\r\n case 'page down':\r\n value = currentValue - onePercent * 10;\r\n break;\r\n case 'right':\r\n case 'up':\r\n value = currentValue + step;\r\n break;\r\n case 'left':\r\n case 'down':\r\n value = currentValue - step;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n\r\n value = clamp(value, min, max);\r\n\r\n this.emitChange(event, value);\r\n };\r\n\r\n handleFocus = () => {\r\n this.setState({ currentState: 'focused' });\r\n };\r\n\r\n handleBlur = () => {\r\n this.setState({ currentState: 'normal' });\r\n };\r\n\r\n handleClick = event => {\r\n const { min, max, vertical, reverse } = this.props;\r\n const percent = calculatePercent(this.containerRef, event, vertical, reverse);\r\n const value = percentToValue(percent, min, max);\r\n\r\n this.emitChange(event, value, () => {\r\n this.playJumpAnimation();\r\n });\r\n };\r\n\r\n handleTouchStart = event => {\r\n return this.handleMouseDown(event, true);\r\n };\r\n\r\n handleMouseDown = (event, isTouch) => {\r\n event.preventDefault();\r\n this.setState({ currentState: 'activated' });\r\n this.touch = isTouch;\r\n this.moved = false;\r\n\r\n document.body.addEventListener('mousemove', this.handleMouseMoveBind);\r\n document.body.addEventListener('mouseup', this.handleMouseUpBind);\r\n document.body.addEventListener('touchmove', this.handleMouseMoveBind);\r\n document.body.addEventListener('touchend', this.handleMouseUpBind);\r\n\r\n if (typeof this.props.onDragStart === 'function') {\r\n this.props.onDragStart(event);\r\n }\r\n };\r\n\r\n handleMouseUp = event => {\r\n this.setState({ currentState: 'normal' });\r\n\r\n document.body.removeEventListener('mousemove', this.handleMouseMoveBind);\r\n document.body.removeEventListener('mouseup', this.handleMouseUpBind);\r\n document.body.removeEventListener('touchmove', this.handleMouseMoveBind);\r\n document.body.removeEventListener('touchend', this.handleMouseUpBind);\r\n\r\n if (typeof this.props.onDragEnd === 'function') {\r\n this.props.onDragEnd(event);\r\n }\r\n if (this.touch && !this.moved) {\r\n this.handleClick(event);\r\n }\r\n };\r\n\r\n handleMouseMove = event => {\r\n const { min, max, vertical, reverse } = this.props;\r\n const percent = calculatePercent(this.containerRef, event, vertical, reverse);\r\n const value = percentToValue(percent, min, max);\r\n this.moved = true;\r\n\r\n this.emitChange(event, value);\r\n };\r\n\r\n emitChange(event, rawValue, callback) {\r\n const { step, value: previousValue, onChange, disabled } = this.props;\r\n let value = rawValue;\r\n\r\n if (disabled) {\r\n return;\r\n }\r\n\r\n if (step) {\r\n value = roundToStep(rawValue, step);\r\n } else {\r\n value = Number(rawValue.toFixed(3));\r\n }\r\n\r\n if (typeof onChange === 'function' && value !== previousValue) {\r\n onChange(event, value);\r\n\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n }\r\n\r\n calculateTrackAfterStyles(percent) {\r\n const { currentState } = this.state;\r\n\r\n switch (currentState) {\r\n case 'activated':\r\n return `calc(100% - ${percent === 0 ? 7 : 5}px)`;\r\n case 'disabled':\r\n return `calc(${100 - percent}% - 6px)`;\r\n default:\r\n return 'calc(100% - 5px)';\r\n }\r\n }\r\n\r\n calculateTrackBeforeStyles(percent) {\r\n const { currentState } = this.state;\r\n\r\n switch (currentState) {\r\n case 'disabled':\r\n return `calc(${percent}% - 6px)`;\r\n default:\r\n return `${percent}%`;\r\n }\r\n }\r\n\r\n playJumpAnimation() {\r\n this.setState({ currentState: 'jumped' }, () => {\r\n clearTimeout(this.jumpAnimationTimeoutId);\r\n this.jumpAnimationTimeoutId = setTimeout(() => {\r\n this.setState({ currentState: 'normal' });\r\n }, this.props.theme.transitions.duration.complex);\r\n });\r\n }\r\n\r\n render() {\r\n const { currentState } = this.state;\r\n const {\r\n component: Component,\r\n classes,\r\n className: classNameProp,\r\n disabled,\r\n max,\r\n min,\r\n reverse,\r\n theme,\r\n value,\r\n vertical,\r\n ...other\r\n } = this.props;\r\n\r\n const percent = clamp(((value - min) * 100) / (max - min));\r\n\r\n const commonClasses = {\r\n [classes.disabled]: disabled,\r\n [classes.jumped]: !disabled && currentState === 'jumped',\r\n [classes.focused]: !disabled && currentState === 'focused',\r\n [classes.activated]: !disabled && currentState === 'activated',\r\n };\r\n\r\n const className = classNames(\r\n classes.root,\r\n {\r\n [classes.vertical]: vertical,\r\n [classes.reverse]: reverse,\r\n [classes.disabled]: disabled,\r\n },\r\n classNameProp,\r\n );\r\n\r\n const containerClasses = classNames(classes.container, {\r\n [classes.vertical]: vertical,\r\n });\r\n\r\n const trackBeforeClasses = classNames(classes.track, classes.trackBefore, commonClasses, {\r\n [classes.vertical]: vertical,\r\n });\r\n\r\n const trackAfterClasses = classNames(classes.track, classes.trackAfter, commonClasses, {\r\n [classes.vertical]: vertical,\r\n });\r\n\r\n const thumbClasses = classNames(classes.thumb, commonClasses);\r\n\r\n const trackProperty = vertical ? 'height' : 'width';\r\n const thumbProperty = vertical ? 'top' : 'left';\r\n const inlineTrackBeforeStyles = { [trackProperty]: this.calculateTrackBeforeStyles(percent) };\r\n const inlineTrackAfterStyles = { [trackProperty]: this.calculateTrackAfterStyles(percent) };\r\n const inlineThumbStyles = { [thumbProperty]: `${percent}%` };\r\n\r\n return (\r\n {\r\n this.containerRef = findDOMNode(ref);\r\n }}\r\n {...other}\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nSlider.propTypes = {\r\n /**\r\n * Override or extend the styles applied to the component.\r\n * See [CSS API](#css-api) below for more details.\r\n */\r\n classes: PropTypes.object.isRequired,\r\n /**\r\n * @ignore\r\n */\r\n className: PropTypes.string,\r\n /**\r\n * The component used for the root node.\r\n * Either a string to use a DOM element or a component.\r\n */\r\n component: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]),\r\n /**\r\n * If `true`, the slider will be disabled.\r\n */\r\n disabled: PropTypes.bool,\r\n /**\r\n * The maximum allowed value of the slider.\r\n * Should not be equal to min.\r\n */\r\n max: PropTypes.number,\r\n /**\r\n * The minimum allowed value of the slider.\r\n * Should not be equal to max.\r\n */\r\n min: PropTypes.number,\r\n /**\r\n * Callback function that is fired when the slider's value changed.\r\n */\r\n onChange: PropTypes.func,\r\n /**\r\n * Callback function that is fired when the slide has stopped moving.\r\n */\r\n onDragEnd: PropTypes.func,\r\n /**\r\n * Callback function that is fired when the slider has begun to move.\r\n */\r\n onDragStart: PropTypes.func,\r\n /**\r\n * If `true`, the slider will be reversed.\r\n */\r\n reverse: PropTypes.bool,\r\n /**\r\n * The granularity the slider can step through values.\r\n */\r\n step: PropTypes.number,\r\n /**\r\n * @ignore\r\n */\r\n theme: PropTypes.object.isRequired,\r\n /**\r\n * The value of the slider.\r\n */\r\n value: PropTypes.number.isRequired,\r\n /**\r\n * If `true`, the slider will be vertical.\r\n */\r\n vertical: PropTypes.bool,\r\n};\r\n\r\nSlider.defaultProps = {\r\n min: 0,\r\n max: 100,\r\n component: 'div',\r\n};\r\n\r\nexport default withStyles(styles, { name: 'MuiSlider', withTheme: true })(Slider);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\n\n/*import {\n grey,\n} from '@material-ui/core/colors';*/\n\nimport Background from './assets/apartment.jpg';\n\nconst appBarHeight = 64;\nconst tileBorderRadius = 16;\nconst tileSize = 128;\n\nexport default {\n typography: {\n useNextVariants: true,\n },\n classes: {\n menuBackground: {\n background: 'inherit'\n },\n loadingBackground: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n },\n loadingContainer: {\n position: 'absolute',\n textAlign: 'center',\n top: 'calc(50% - 40px)'\n },\n loadingText: {\n color: 'rgba(0, 0, 0, .3)',\n fontSize: 24,\n position: 'relative'\n }\n },\n appBar: {\n //color: 'rgba(200, 200, 200, 0.8)',//''#337ab7',\n //background: 'rgb(39, 144, 222)',\n height: appBarHeight\n },\n appBarVersionUpdate: {\n cursor: 'pointer',\n color: 'green'\n },\n appBarIcon: {\n height: 24,\n paddingRight: 10,\n overflow: 'hidden'\n },\n menuIcon: {\n height: 24,\n overflow: 'hidden',\n marginRight: 0,\n width: 24\n },\n mainPanel: {\n backgroundImage: 'url(' + Background + ')',//'url(homekit.png)',\n backgroundSize: '100% auto',\n paddingTop: appBarHeight,\n minHeight: 'calc(100% - 14px)', // I have no idea, why this 14px are here\n },\n menu: {\n width: 250,\n selected: {\n color: '#2196f3'\n }\n },\n settings: {\n label: {\n fontSize: 16,\n paddingTop: 10\n },\n dropzone: {\n marginTop: 10,\n width: '100%',\n height: 65,\n border: '2px dashed black',\n textAlign: 'center',\n paddingTop: 45,\n borderRadius: 10\n },\n dropzoneRejected: {\n border: '2px dashed red',\n },\n dropzoneAccepted: {\n border: '2px dashed green',\n }\n },\n refreshIndicator: {\n strokeColor: '#337ab7',\n loadingStrokeColor: '#337ab7'\n },\n dialog: {\n inner: {\n height: 'calc(100% - 32px)',\n position: 'absolute',\n top: 16,\n left: 'calc(50% - 180px)',\n maxWidth: 360,\n width: 'calc(100% - 16px)',\n padding: '16px 0 16px 16px',\n overflow: 'hidden',\n boxSizing: 'border-box',\n background: 'rgba(255, 255, 255, 0.8)'\n },\n back: {\n width: '100%',\n height: '100%',\n zIndex: 2100,\n userSelect: 'none',\n position: 'fixed',\n top: 0,\n left: 0,\n background: 'rgba(238,238,238,0.8)'\n },\n list:{\n height: 'calc(100% - 90px)',\n overflowX: 'hidden',\n overflowY: 'auto',\n paddingBottom: 20,\n width: 'calc(100% - 16px)'\n },\n divider: {\n paddingTop: 0,\n paddingBottom: 0,\n height: 1,\n background: 'linear-gradient(to right, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 13%,rgba(255,255,255,1) 83%,rgba(255,255,255,0) 100%)'\n },\n header: {\n fontSize: 20,\n textAlign: 'center',\n color: 'black',\n maxWidth: 'calc(100% - 80px)',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n saveButton: {\n position: 'absolute',\n top: 10,\n right: 20,\n zIndex: 1\n\n },\n closeButton: {\n position: 'absolute',\n top: 5,\n right: 5,\n width: 36,\n height: 24,\n borderRadius: 24,\n zIndex: 2\n },\n settingsBack: {\n background: 'rgba(255,255,255,0.5)'\n },\n info: {\n line: {\n width: '100%'\n },\n label: {\n display: 'inline-block',\n lineHeight: '48px',\n fontSize: 16\n },\n lc: {\n fontSize: 12,\n paddingRight: 16,\n float: 'right',\n lineHeight: '48px'\n },\n icon: {\n height: 20,\n marginRight: 10\n },\n value: {\n fontWeight: 'bold',\n fontSize: 20\n },\n unit: {\n\n },\n valueUnit: {\n float: 'right',\n lineHeight: '48px'\n },\n floatRight: {\n float: 'right'\n },\n subTitle: {\n color: 'rgba(0, 0, 0, 0.54)',\n padding: 0,\n fontSize: 12,\n lineHeight: 1,\n display: 'block'\n }\n }\n },\n buttonAllLight: {\n height: 24,\n width: 24,\n borderRadius: '50%',\n marginLeft: 10,\n background: 'white',\n boxShadow: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)'\n },\n palette: {\n /*primary1Color: blue700,\n primary2Color: blue600,\n primary3Color: grey600,\n accent1Color: grey500,\n accent2Color: grey400,\n accent3Color: grey100,\n textColor: fullWhite,\n secondaryTextColor: fade(fullWhite, 0.7),\n alternateTextColor: '#303030',\n canvasColor: '#303030',\n borderColor: fade(fullWhite, 0.3),\n disabledColor: fade(fullWhite, 0.3),\n pickerHeaderColor: fade(fullWhite, 0.12),\n clockCircleColor: fade(fullWhite, 0.12),*/\n textColorBright: 'white',\n textColorDark: 'black',\n updateAvailable: '#3fff3f',\n editActive: 'red',\n lampOn: '#ffcc02',\n lampOff: 'inherit',\n instanceRunning: '#52af19',\n instanceStopped: '#7b3d29',\n browserBar: '#3f51b5'\n },\n iconSize: '24px',\n indicatorSize: '20px',\n slider: {\n background: 'grey'\n },\n list: {\n title: {\n fontSize: 20,\n color: 'white',\n margin: 8,\n padding: '0 0 0 16px',\n },\n row: {\n paddingLeft: 16,\n paddingRight: 16,\n display: 'inline-block',\n borderRadius: 32,\n border: '1px dashed #c7c7c7',\n margin: 8\n }\n\n },\n tile: {\n tile: {\n margin: 8,\n borderRadius: tileBorderRadius,\n padding: 16,\n transition: 'all 0.2s',\n width: tileSize,\n height: tileSize,\n position: 'relative',\n fontSize: 16,\n fontWeight: 'bold',\n color: 'black',\n background: 'white',\n boxSizing: 'border-box',\n userSelect: 'none',\n display: 'inline-block',\n overflow: 'hidden',\n verticalAlign: 'top',\n boxShadow: 'rgba(0, 0, 0, 0.2) 0px 3px 5px -1px, rgba(0, 0, 0, 0.14) 0px 6px 10px 0px, rgba(0, 0, 0, 0.12) 0px 1px 18px 0px'\n },\n tileCorner: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderWidth: '0 16px 16px 0',\n borderStyle: 'solid',\n borderColor: 'rgba(173, 173, 173, 1) rgba(173, 173, 173, 1) rgb(212, 212, 212) rgb(193, 193, 193)',\n background: 'rgba(173, 173, 173, 1)',\n boxShadow: '0 1px 1px rgba(0,0,0,0.3), -1px 1px 1px rgba(0,0,0,0.2)',\n borderRadius: '0 0 0 10px',\n transition: 'border-width 0.1s ease-in-out',\n cursor: 'pointer',\n zIndex: 2\n },\n tileOn: {\n background: 'white',\n opacity: 1\n },\n tileOff: {\n background: '#b7b6b6',\n opacity: 0.7\n },\n tileIconSvg: {\n size: 40, // 2.5rem\n },\n tileIcon: {\n width: 40, // 2.5rem\n height: 40,\n position: 'absolute',\n top: 14,\n left: 8,\n color: '#2f3440',\n pointerEvents: 'none'\n },\n tileName: {\n overflow: 'hidden',\n width: '100%',\n height: 37,\n },\n tileName2: {\n overflow: 'hidden',\n float: 'left'\n },\n tileNameSmall: {\n fontSize: 8,\n },\n tileText: {\n pointerEvents: 'none',\n bottom: 0,\n left: 0,\n width: 'calc(100% - 16px)',\n position: 'absolute',\n padding: '0 16px',\n height: 67\n },\n tileText2: {\n height: 32,\n bottom: 0,\n left: 0,\n width: 'calc(100% - 32px)',\n padding: '16px 16px 0 16px',\n pointerEvents: 'none',\n position: 'absolute',\n },\n tileNumber: {\n position: 'absolute',\n bottom: 30,\n right: 10,\n borderRadius: 20,\n background: 'rgb(45, 116, 249)',\n opacity: 0.6,\n minWidth: 20,\n height: 19,\n paddingTop: 1,\n color: 'white',\n textAlign: 'center'\n },\n tileState: {\n position: 'absolute',\n bottom: 10,\n left: 16,\n whiteSpace: 'nowrap',\n width: 'calc(100% - 32px)',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n tileState2: {\n float: 'right',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n tileStateOn: {\n color: '#515151',\n fontSize: 14\n },\n tileStateOff: {\n color: '#515151',\n fontSize: 14\n },\n tileIndicators: {\n position: 'absolute',\n top: 16,\n right: 16,\n whiteSpace: 'nowrap',\n //width: 'calc(100% - ' + tileIconWidth + 'px)'\n },\n tileIndicator: {\n width: 16,\n height: 16,\n float: 'right',\n display: 'inline-block'\n },\n tileIndicatorsIcons: {\n working: '#808080',\n unreach: 'orange',\n lowbat: 'red',\n maintain: 'orange',\n error: 'red',\n direction: 'green',\n connected: 'red'\n },\n secondary: {\n icon: {\n display: 'inline-block',\n width: 12,\n height: 12\n },\n text: {\n display: 'inline-block',\n fontSize: 14,\n paddingLeft: 3\n },\n div: {\n position: 'absolute',\n top: 32,\n right: 16\n },\n button: {\n position: 'absolute',\n top: 16,\n right: 8\n }\n },\n editMode: {\n checkIcon: {\n position: 'absolute',\n top: 0,\n right: 0,\n width: '50%',\n height: '100%',\n background: 'rgba(200,200,200,0.8)',\n color: 'white',\n borderRadius: '0 ' + tileBorderRadius + ' ' + tileBorderRadius + ' 0',\n zIndex: 3,\n cursor: 'pointer'\n },\n editIcon: {\n position: 'absolute',\n top: 0,\n right: '50%',\n width: '50%',\n height: '100%',\n background: 'rgba(200,200,200,0.8)',\n color: 'white',\n borderRadius: tileBorderRadius + ' 0 0 ' + tileBorderRadius,\n zIndex: 3,\n cursor: 'pointer'\n },\n removeIcon: {\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%',\n height: '100%',\n background: 'rgba(80,80,80,0.8)',\n color: 'gray',\n borderRadius: tileBorderRadius,\n zIndex: 3\n },\n buttonIcon: {\n paddingTop: tileSize / 2\n },\n buttonIconRemoved: {\n paddingTop: tileSize / 4\n },\n editEnabled: {\n backgroundColor: 'white',\n opacity: 1\n },\n editDisabled: {\n backgroundColor: 'white',\n opacity: 0.5\n },\n }\n }\n};","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\n\nclass I18n {\n static translations = {\n 'en': require('./i18n/en'),\n 'cn': require('./i18n/cn')\n };\n\n static lang = window.sysLang || 'en';\n\n static setLanguage(lang) {\n if (lang) {\n I18n.lang = lang;\n }\n }\n static getLanguage() {\n return I18n.lang;\n }\n static t(word, arg1, arg2, arg3) {\n if (I18n.translations[I18n.lang]) {\n const w = I18n.translations[I18n.lang][word];\n if (w) {\n word = w;\n } else {\n console.log(`Translate: ${word}`);\n }\n }\n if (arg1 !== undefined) {\n word = word.replace('%s', arg1);\n if (arg2 !== undefined) {\n word = word.replace('%s', arg2);\n if (arg3 !== undefined) {\n word = word.replace('%s', arg3);\n\n }\n }\n }\n return word;\n }\n}\n\n/*I18n.translations = {\n 'en': require('./i18n/en'),\n 'ru': require('./i18n/ru'),\n 'de': require('./i18n/de'),\n};\nI18n.fallbacks = true;\nI18n.t = function () {};*/\n\nexport default I18n;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\n\nimport React from 'react';\nimport I18n from './i18n';\n\nconst NAMESPACE = 'material';\nconst days = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nconst months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nclass Utils {\n static namespace = NAMESPACE;\n static INSTANCES = 'instances';\n static dateFormat = ['DD', 'MM'];\n\n static CapitalWords(name) {\n return (name || '').split(/[\\s_]/)\n .filter(item => item)\n .map(word => word ? word[0].toUpperCase() + word.substring(1).toLowerCase() : '')\n .join(' ');\n }\n\n static getObjectName(objects, id, settings, options, isDesc) {\n let item = objects[id];\n let text = id;\n const attr = isDesc ? 'desc' : 'name';\n\n options = options || {};\n if (!options.language) {\n options.language = (objects['system.config'] && objects['system.config'].common && objects['system.config'].common.language) || window.sysLang || 'en';\n }\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else\n if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n text = text.replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n } else {\n let pos = id.lastIndexOf('.');\n text = id.substring(pos + 1).replace(/[_.]/g, ' ');\n text = Utils.CapitalWords(text);\n }\n return text.trim();\n }\n\n static getSettingsOrder(obj, forEnumId, options) {\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subOrder && settings[user].subOrder[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subOrder[forEnumId]));\n }\n } else {\n if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\n }\n }\n }\n return null;\n }\n\n static getSettingsCustomURLs(obj, forEnumId, options) {\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subURLs && settings[user].subURLs[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subURLs[forEnumId]));\n }\n } else {\n if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\n }\n }\n }\n return null;\n }\n\n static reorder(list, source, dest) {\n const result = Array.from(list);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n return result;\n };\n\n static getSettings(obj, options, defaultEnabling) {\n let settings;\n const id = (obj && obj._id) || (options && options.id);\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n if (obj && obj.custom) {\n settings = obj.custom || {};\n settings = settings[NAMESPACE] && settings[NAMESPACE][options.user || 'admin'] ? JSON.parse(JSON.stringify(settings[NAMESPACE][options.user || 'admin'])) : {enabled: true};\n } else {\n settings = {enabled: defaultEnabling === undefined ? true : defaultEnabling, useCustom: false};\n }\n\n if (!settings.hasOwnProperty('enabled')) {\n settings.enabled = defaultEnabling === undefined ? true : defaultEnabling;\n }\n\n if (false && settings.useCommon) {\n if (obj.color) settings.color = obj.color;\n if (obj.icon) settings.icon = obj.icon;\n if (obj.name) settings.name = obj.name;\n } else {\n if (options) {\n if (!settings.name && options.name) settings.name = options.name;\n if (!settings.icon && options.icon) settings.icon = options.icon;\n if (!settings.color && options.color) settings.color = options.color;\n }\n\n if (obj) {\n if (!settings.color && obj.color) settings.color = obj.color;\n if (!settings.icon && obj.icon) settings.icon = obj.icon;\n if (!settings.name && obj.name) settings.name = obj.name;\n }\n }\n\n if (typeof settings.name === 'object') {\n settings.name = settings.name[options.language] || settings.name.en;\n\n settings.name = (settings.name || '').replace(/_/g, ' ');\n\n if (settings.name === settings.name.toUpperCase()) {\n settings.name = settings.name[0] + settings.name.substring(1).toLowerCase();\n }\n }\n if (!settings.name && id) {\n let pos = id.lastIndexOf('.');\n settings.name = id.substring(pos + 1).replace(/[_.]/g, ' ');\n settings.name = (settings.name || '').replace(/_/g, ' ');\n settings.name = Utils.CapitalWords(settings.name);\n }\n\n return settings;\n }\n\n static setSettings(obj, settings, options) {\n if (obj) {\n obj.common = obj.common || {};\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[NAMESPACE] = obj.common.custom[NAMESPACE] || {};\n obj.common.custom[NAMESPACE][options.user || 'admin'] = settings;\n const s = obj.common.custom[NAMESPACE][options.user || 'admin'];\n if (s.useCommon) {\n if (s.color !== undefined) {\n obj.common.color = s.color;\n delete s.color;\n }\n if (s.icon !== undefined) {\n obj.common.icon = s.icon;\n delete s.icon;\n }\n if (s.name !== undefined) {\n if (typeof obj.common.name !== 'object') {\n obj.common.name = {};\n obj.common.name[options.language] = s.name;\n } else{\n obj.common.name[options.language] = s.name;\n }\n delete s.name;\n }\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n static getIcon(settings, style) {\n if (settings && settings.icon) {\n if (settings.icon.startsWith('data:image')) {\n return ({settings.name});\n } else { // may be later some changes for second type\n return ({settings.name});\n }\n }\n return null;\n }\n\n static getObjectIcon(id, obj) {\n if (obj && obj.common && obj.common.icon) {\n let icon = obj.common.icon;\n if (icon.startsWith('data:image')) {\n return icon;\n } else {\n const parts = id.split('.');\n if (parts[0] === 'system') {\n icon = 'adapter/' + parts[2] + icon;\n } else {\n icon = 'adapter/' + parts[0] + icon;\n }\n\n if (window.location.pathname.match(/material\\/[.\\d]+/)) {\n icon = '../../' + icon;\n } else\n if (window.location.pathname.match(/material\\//)) {\n icon = '../' + icon;\n }\n return icon;\n }\n } else {\n return null;\n }\n\n }\n\n static splitCamelCase(text) {\n if (false && text !== text.toUpperCase()) {\n const words = text.split(/\\s+/);\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n if (word.toLowerCase() !== word && word.toUpperCase() !== word) {\n let z = 0;\n const ww = [];\n let start = 0;\n while (z < word.length) {\n if (word[z].match(/[A-ZÜÄÖА-Я]/)) {\n ww.push(word.substring(start, z));\n start = z;\n }\n z++;\n }\n if (start !== z) {\n ww.push(word.substring(start, z));\n }\n for (let k = 0; k < ww.length; k++) {\n words.splice(i + k, 0, ww[k]);\n }\n i += ww.length;\n }\n }\n\n return words.map(w => {\n w = w.trim();\n if (w) {\n return w[0].toUpperCase() + w.substring(1).toLowerCase();\n }\n return '';\n }).join(' ');\n } else {\n return Utils.CapitalWords(text);\n }\n }\n\n // https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n static isUseBright(color, defaultValue) {\n if (color === null || color === undefined || color === '') {\n return defaultValue === undefined ? true : defaultValue;\n }\n color = color.toString();\n if (color.indexOf('#') === 0) {\n color = color.slice(1);\n }\n let r;\n let g;\n let b;\n\n const rgb = color.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n if (rgb && rgb.length === 4) {\n r = parseInt(rgb[1], 10);\n g = parseInt(rgb[2], 10);\n b = parseInt(rgb[3], 10);\n } else {\n // convert 3-digit hex to 6-digits.\n if (color.length === 3) {\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\n }\n if (color.length !== 6) {\n return false;\n }\n\n r = parseInt(color.slice(0, 2), 16);\n g = parseInt(color.slice(2, 4), 16);\n b = parseInt(color.slice(4, 6), 16);\n }\n\n\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) <= 186;\n };\n\n static getTimeString(seconds) {\n seconds = parseFloat(seconds);\n if (isNaN(seconds)) {\n return '--:--';\n }\n const hours = Math.floor(seconds / 3600);\n let minutes = Math.floor((seconds % 3600) / 60);\n let secs = seconds % 60;\n if (hours) {\n if (minutes < 10) minutes = '0' + minutes;\n if (secs < 10) secs = '0' + secs;\n return hours + ':' + minutes + ':' + secs;\n } else {\n if (secs < 10) secs = '0' + secs;\n return minutes + ':' + secs;\n }\n }\n\n static getWindDirection(angle) {\n if (angle >= 0 && angle < 11.25) {\n return 'N'\n } else if (angle >= 11.25 && angle < 33.75) {\n return 'NNE'\n } else if (angle >= 33.75 && angle < 56.25) {\n return 'NE'\n } else if (angle >= 56.25 && angle < 78.75) {\n return 'ENE'\n } else if (angle >= 78.75 && angle < 101.25) {\n return 'E'\n } else if (angle >= 101.25 && angle < 123.75) {\n return 'ESE'\n } else if (angle >= 123.75 && angle < 146.25) {\n return 'SE'\n } else if (angle >= 146.25 && angle < 168.75) {\n return 'SSE'\n } else if (angle >= 168.75 && angle < 191.25) {\n return 'S'\n } else if (angle >= 191.25 && angle < 213.75) {\n return 'SSW'\n } else if (angle >= 213.75 && angle < 236.25) {\n return 'SW'\n } else if (angle >= 236.25 && angle < 258.75) {\n return 'WSW'\n } else if (angle >= 258.75 && angle < 281.25) {\n return 'W'\n } else if (angle >= 281.25 && angle < 303.75) {\n return 'WNW'\n } else if (angle >= 303.75 && angle < 326.25) {\n return 'NW'\n } else if (angle >= 326.25 && angle < 348.75) {\n return 'NNW'\n } else if (angle >= 348.75) {\n return 'N'\n }\n }\n\n static padding(num) {\n if (typeof num === 'string') {\n if (num.length < 2) {\n return '0' + num;\n } else {\n return num;\n }\n } else if (num < 10) {\n return '0' + num;\n } else {\n return num;\n }\n }\n\n static setDataFormat(format) {\n if (format) {\n Utils.dateFormat = format.toUpperCase().split(/[.-/]/);\n Utils.dateFormat.splice(Utils.dateFormat.indexOf('YYYY'), 1);\n }\n }\n\n static date2string(now) {\n if (typeof now === 'string') {\n now = now.trim();\n if (!now) return '';\n // only letters\n if (now.match(/^[\\w\\s]+$/)) {\n // Day of week\n return now;\n }\n let m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n let a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n let year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n let day = a.find(m => m > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else {\n // MM DD\n if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\n now = new Date(year, a[0] - 1, a[1]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[1] - 1, a[0]);\n }\n } else\n // DD MM\n if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\n now = new Date(year, a[1] - 1, a[0]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[0] - 1, a[1]);\n }\n } else {\n now = new Date(now);\n }\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n\n let date = I18n.t('dow_' + days[now.getDay()]).replace('dow_', '');\n date += '. ' + now.getDate() + ' ' + I18n.t('month_' + months[now.getMonth()]).replace('month_', '');\n return date;\n }\n}\n\nexport default Utils;","/**\r\n * Copyright 2018 bluefox \r\n *\r\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n **/\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {MdVisibility as IconCheck} from 'react-icons/md';\r\nimport {MdVisibilityOff as IconUncheck} from 'react-icons/md';\r\n// import IconButton from '@material-ui/core/IconButton';\r\n\r\nconst styles = {\r\n button: {\r\n color: 'black'\r\n },\r\n buttonSmall: {\r\n width: 20,\r\n height: 20,\r\n borderRadius: 20,\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n color: 'black'\r\n },\r\n buttonBig: {\r\n width: 24,\r\n height: 24,\r\n borderRadius: 24\r\n }\r\n};\r\n\r\nclass SmallVisibilityButton extends React.Component {\r\n static propTypes = {\r\n visible: PropTypes.bool,\r\n big: PropTypes.bool,\r\n useBright: PropTypes.bool,\r\n style: PropTypes.object,\r\n onChange: PropTypes.func.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n visible: this.props.visible\r\n };\r\n }\r\n\r\n toggleState = (e) => {\r\n e.stopPropagation();\r\n this.props.onChange && this.props.onChange(!this.state.visible);\r\n this.setState({visible: !this.state.visible});\r\n };\r\n\r\n render() {\r\n if (this.props.big) {\r\n return (
this.toggleState(e)} style={Object.assign({}, styles.button, styles.buttonBig, this.props.useBright ? {color: 'white'} : {color: 'black'}, this.props.style || {})}>\r\n {this.state.visible ? : }\r\n
);\r\n } else {\r\n const iconStyle = {marginTop: 1, verticalAlign: 'top'};\r\n return (\r\n
this.toggleState(e)} className=\"small-visibility-button\">\r\n {this.state.visible ? : }\r\n
\r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default SmallVisibilityButton","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nconst styles = {\n state: {\n stroke: 'currentColor',\n fill: 'none',\n strokeWidth: 12,\n strokeLinejoin: 'round',\n strokeMiterlimit: 10\n }\n};\n\nclass IconHome extends Component {// override constructor\n static propTypes = {\n isOn: PropTypes.bool.isRequired,\n };\n\n constructor(props) {\n super(props, true)\n }\n\n\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\n\n// which makes this reusable component for other views\nexport default IconHome;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@material-ui/core/styles';\n\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListSubheader from '@material-ui/core/ListSubheader';\nimport Divider from '@material-ui/core/Divider';\nimport Button from '@material-ui/core/Button';\nimport Collapse from '@material-ui/core/Collapse';\n\nimport Utils from './Utils';\nimport I18n from './i18n'\nimport VisibilityButton from './basic-controls/react-visibility-button/VisibilityButton';\nimport Theme from './theme';\n\nimport IconRooms from './icons/IconHome';\nimport IconButton from '@material-ui/core/IconButton';\nimport {MdLightbulbOutline as IconFunctions} from 'react-icons/md';\nimport {MdFavorite as IconFavorites} from 'react-icons/md';\nimport {MdExpandLess as ExpandLess} from 'react-icons/md';\nimport {MdExpandMore as ExpandMore} from 'react-icons/md';\nimport {MdPlayArrow as IconInstances} from 'react-icons/md';\n\nconst styles = {\n iconsSelected: {\n backgroundColor: 'rgb(204, 204, 204)',\n color: 'white',\n verticalAlign: 'top',\n },\n icons: {\n verticalAlign: 'top',\n color: 'gray'\n },\n menuSelectedBright: {\n color: '#1c8fe0 !important'\n },\n menuSelectedDark: {\n color: '#3cc1ff !important'\n },\n menuTextBright: {\n color: 'white !important'\n },\n menuTextDark: {\n color: 'black !important'\n }\n};\nconst myStyles = () => (styles);\n\nclass MenuList extends Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n objects: PropTypes.object.isRequired,\n viewEnum: PropTypes.string,\n editMode: PropTypes.bool.isRequired,\n user: PropTypes.string.isRequired,\n root: PropTypes.string.isRequired,\n background: PropTypes.string,\n debug: PropTypes.bool,\n onSelectedItemChanged: PropTypes.func.isRequired,\n onRootChanged: PropTypes.func.isRequired,\n instances: PropTypes.bool // show instances menu\n };\n\n constructor(props) {\n super(props);\n this.settings = {};\n\n const {enums, roots} = this.fillEnums(this.props.objects);\n this.enums = enums;\n\n this.state = {\n selectedIndex: this.props.defaultValue,\n editMode: this.props.editMode,\n background: this.props.background,\n instances: this.props.instances,\n root: this.props.root,\n roots: roots,\n visibility: {}\n };\n this.state.visibility = this.fillVisibility(this.props.root, this.props.objects, this.props.editMode).visibility;\n }\n\n fillEnums(objects) {\n objects = objects || this.props.objects;\n let enums = [];\n let reg = new RegExp('^enum\\\\.');\n\n const ids = Object.keys(objects);\n ids.sort();\n for (let i = 0; i < ids.length; i++) {\n if (ids[i] < 'enum.') continue;\n if (ids[i] > 'enum.\\u9999') break;\n if (reg.test(ids[i])) {\n // detect missing steps of enums: e.g. there is enum.rooms.EG.wc, but no enum.rooms.EG;\n const parts = ids[i].split('.');\n let index = enums.length;\n while (parts.length > 2) {\n parts.pop();\n const parentId = parts.join('.');\n if (enums.indexOf(parentId) === -1) {\n enums.splice(index, 0, parentId);\n }\n }\n\n enums.push(ids[i]);\n }\n }\n\n const roots = {};\n for (let e = enums.length - 1; e >= 0 ; e--) {\n const parts = enums[e].split('.');\n parts.pop();\n if (parts.length > 2) {\n const id = parts.join('.');\n if (roots[id] === undefined) {\n roots[id] = {\n expanded: (typeof localStorage !== 'undefined' && localStorage.getItem(id) === '1'),\n tiles: objects[id] && objects[id].common && objects[id].common.members && objects[id].common.members.length\n };\n\n if (this.props.viewEnum && this.props.viewEnum.substring(0, id.length) === id) {\n roots[id].expanded = true;\n }\n }\n }\n }\n\n enums.sort();\n return {enums, roots};\n }\n\n fillVisibility(root, objects, editMode) {\n objects = objects || this.props.objects;\n editMode = (editMode === undefined) ? this.props.editMode : editMode;\n\n // first take elements of enum\n let items = this.getElementsToShow('enum', objects, editMode);\n let changed = false;\n const visibility = {};\n\n items.forEach(function (e) {\n visibility[e.id] = !(e.settings.enabled === false);\n if (this.state && this.state.visibility[e.id] !== visibility[e.id]) {\n changed = true;\n }\n }.bind(this));\n\n if (root !== 'enum') {\n items = this.getElementsToShow(root, objects, editMode);\n\n items.forEach(function (e) {\n visibility[e.id] = !(e.settings.enabled === false);\n if (this.state && this.state.visibility[e.id] !== visibility[e.id]) {\n changed = true;\n }\n }.bind(this));\n }\n\n return {changed, visibility};\n }\n\n componentWillReceiveProps(nextProps) {\n const newState = {};\n let wasChanged = false;\n if (nextProps.editMode !== this.state.editMode) {\n newState.editMode = nextProps.editMode;\n wasChanged = true;\n }\n if (nextProps.background !== this.state.background) {\n newState.background = nextProps.background;\n wasChanged = true;\n }\n if (nextProps.instances !== this.state.instances) {\n newState.instances = nextProps.instances;\n wasChanged = true;\n }\n if (nextProps.root !== this.state.root) {\n newState.root = nextProps.root;\n newState.visibility = this.fillVisibility(nextProps.root, nextProps.objects, nextProps.editMode).visibility;\n wasChanged = true;\n }\n if (nextProps.objects) {\n const {enums, roots} = this.fillEnums(this.props.objects);\n this.enums = enums;\n const {changed, visibility} = this.fillVisibility(nextProps.root, nextProps.objects, nextProps.editMode);\n\n if (changed || JSON.stringify(roots) !== this.state.roots) {\n wasChanged = true;\n newState.roots = roots;\n newState.visibility = visibility;\n }\n }\n if (wasChanged) {\n this.setState(newState);\n }\n }\n\n getListHeader(useBright) {\n let items = this.getElementsToShow('enum');\n\n if (items && items.length) {\n return ({\n items.map(function (item) {\n let settings = this.settings[item.id];\n\n if (!settings || this.props.objects) {\n this.settings[item.id] = Utils.getSettings(this.props.objects[item.id], {user: this.props.user, language: this.props.language, id: item.id}, true);\n settings = this.settings[item.id];\n }\n\n if (settings.enabled === false && !this.props.editMode) {\n return;\n }\n\n const name = settings.name;\n const visibilityButton = this.props.editMode ? this.onToggleEnabled(null, item.id)}/> : null;\n let style = {};\n if (this.props.editMode && !this.state.visibility[item.id]) {\n style = Object.assign({}, style, {opacity: 0.5});\n }\n\n if (item.id === 'enum.rooms') {\n return ( this.onRootChanged('enum.rooms')}>\n \n {visibilityButton}\n );\n } else if (item.id === 'enum.functions') {\n return ( this.onRootChanged('enum.functions')}>\n \n {visibilityButton}\n );\n } else if (item.id === 'enum.favorites') {\n return ( this.onRootChanged('enum.favorites')}>\n \n {visibilityButton}\n );\n } else {\n const icon = Utils.getIcon(item.settings, Theme.menuIcon);\n\n return ( this.onRootChanged(item.id)}>\n {icon}\n {name}\n {visibilityButton}\n );\n }\n }.bind(this))\n });\n } else {\n return '';\n }\n }\n\n onRootChanged(id) {\n let items = this.getElementsToShow(id);\n let page = items.find(item => {\n return this.props.objects[item.id] && this.props.objects[item.id].common && this.props.objects[item.id].common.members && this.props.objects[item.id].common.members.length\n });\n if (!page) {\n let pages = items.map(item => {\n let ids = this.getElementsToShow(item.id);\n return ids.find(item => {\n return this.props.objects[item.id] && this.props.objects[item.id].common && this.props.objects[item.id].common.members && this.props.objects[item.id].common.members.length\n });\n });\n page = pages.find(item => pages[0]);\n }\n this.props.onRootChanged && this.props.onRootChanged(id, page && page.id, true);\n }\n\n getElementsToShow(root, _objects, editMode) {\n root = root || this.props.root;\n\n // special case: instances\n if (root === Utils.INSTANCES) {\n root = 'enum.rooms';\n }\n\n editMode = (editMode === undefined) ? this.props.editMode : editMode;\n\n let objects = _objects || this.props.objects;\n let items = [];\n let reg = root ? new RegExp('^' + root + '\\\\.') : new RegExp('^[^.]$');\n let rootParts = root.split('.');\n\n for (let i = 0; i < this.enums.length; i++) {\n let id = this.enums[i];\n if (reg.test(id) &&\n ((objects[id] && objects[id].common && objects[id].common.members && objects[id].common.members.length) || this.state.roots[id])) {\n let settings = this.settings[id];\n // if no settings or properties were changed\n if (!settings || _objects) { // here \"_objects\" and not objects\n this.settings[id] = Utils.getSettings(objects[id], {user: this.props.user, language: this.props.language, id}, true);\n settings = this.settings[id];\n }\n\n if (settings.enabled === false && !editMode) {\n continue;\n }\n let parts = id.split('.');\n parts.splice(rootParts.length + 1);\n id = parts.join('.');\n if (!items.find(e => e.id === id)) {\n items.push({id, settings});\n }\n }\n }\n return items;\n }\n\n static isOpened(path, id) {\n if (id === path.substring(0, id.length)) return true;\n return undefined;\n }\n\n onToggleEnabled(e, id) {\n e && e.stopPropagation();\n\n const visibility = {};\n for (const id in this.state.visibility) {\n if (this.state.visibility.hasOwnProperty(id)) {\n visibility[id] = this.state.visibility[id];\n }\n }\n visibility[id] = !visibility[id];\n let settings = this.settings[id];\n if (!settings) {\n this.settings[id] = Utils.getSettings(this.props.objects[id], {user: this.props.user, language: this.props.language, id}, true);\n settings = this.settings[id];\n }\n\n settings.enabled = visibility[id];\n this.props.onSaveSettings(id, settings);\n this.setState({visibility});\n }\n\n getListItems(items, level) {\n level = level || 0;\n\n if (!items) {\n items = this.getElementsToShow();\n } else\n if (typeof items !== 'object') {\n items = this.getElementsToShow(items);\n }\n\n const icons = items.map(e => Utils.getIcon(e.settings, Theme.menuIcon));\n const anyIcons = !!icons.find(icon => icon);\n\n const useBright = Utils.isUseBright(this.state.background, false);\n\n return items.map(function (item, i) {\n const icon = icons[i];\n const children = this.getListItems(item.id, level + 1);\n\n if (!this.settings[item.id]) {\n this.settings[item.id] = Utils.getSettings(this.props.objects[item.id], {user: this.props.user, language: this.props.language, id: item.id}, true);\n }\n\n if (!this.props.editMode && !this.settings[item.id].enabled) return;\n\n const visibilityButton = this.props.editMode ? this.onToggleEnabled(null, item.id)}/> : null;\n\n const style = {opacity: this.props.editMode && !this.state.visibility[item.id] ? 0.5 : 1};\n style.marginLeft = 16 * level;\n const expanded = this.state.roots[item.id] && this.state.roots[item.id].expanded;\n\n return [\n ( this.onSelected(item.id, el)}\n >\n {icon ? ({icon}) : (anyIcons ? (
 
) : null)}\n \n {visibilityButton}\n {children && children.length ? (expanded ?\n ( this.onExpandMenu(e, item.id)} />) :\n ( this.onExpandMenu(e, item.id)} />)) : ''}\n ),\n\n children && children.length ?\n (\n \n {children}\n \n ) : null\n ]\n }.bind(this));\n }\n\n expandMenu(id, expanded) {\n const roots = JSON.parse(JSON.stringify(this.state.roots));\n roots[id].expanded = expanded;\n this.setState({roots});\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(id, expanded ? '1' : '0');\n }\n }\n\n onSelected(id, el) {\n if (this.state.roots[id] && !this.state.roots[id].tiles) {\n this.expandMenu(id, !this.state.roots[id].expanded);\n } else if (this.state.roots[id] && this.state.roots[id].tiles) {\n this.props.onSelectedItemChanged && this.props.onSelectedItemChanged(id);\n } else\n if (this.props.objects[id] || id === Utils.INSTANCES) {\n this.props.onSelectedItemChanged && this.props.onSelectedItemChanged(id);\n }\n }\n\n onExpandMenu(e, id) {\n e.preventDefault();\n e.stopPropagation();\n\n this.expandMenu(id, !this.state.roots[id].expanded);\n }\n\n getSelectedItem(items) {\n if (this.props.viewEnum) {\n return this.props.viewEnum;\n }\n items = items || this.getElementsToShow();\n return items[0].id || '';\n }\n\n render() {\n let items = this.getElementsToShow();\n\n const style = {width: this.props.width};\n const useBright = Utils.isUseBright(this.state.background, false);\n if (this.state.background) {\n style.background = this.state.background;\n }\n const dividerStyle = useBright ? {backgroundColor: 'rgba(255,255,255,0.12)'} : {};\n if (items && items.length) {\n const list = this.getListItems(items);\n if (this.state.instances && (this.props.root === 'enum.rooms' || this.props.root === Utils.INSTANCES)) {\n list.push(( this.onSelected(Utils.INSTANCES, el)}\n >\n \n \n \n \n ));\n }\n\n return (\n
\n \n {this.getListHeader(useBright)}\n {list}\n
\n );\n } else {\n return (\n
\n \n {this.getListHeader(useBright)}\n \n \n \n {I18n.t('No elements')}\n \n \n
\n );\n }\n }\n}\nexport default withStyles(myStyles)(MenuList);\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nexport default window.Types;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react'\nimport {ChromePicker} from 'react-color'\nimport TextField from '@material-ui/core/TextField';\nimport IconButton from '@material-ui/core/IconButton';\nimport {MdDelete as IconDelete} from 'react-icons/md';\n\nconst styles = {\n color: {\n width: '36px',\n height: '14px',\n borderRadius: '2px',\n },\n delButton: {\n width: 32,\n height: 32\n },\n swatch: {\n padding: '5px',\n background: '#fff',\n borderRadius: '1px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\n display: 'inline-block',\n cursor: 'pointer',\n verticalAlign: 'middle'\n },\n popover: {\n position: 'absolute',\n zIndex: '2',\n },\n cover: {\n position: 'fixed',\n top: '0px',\n right: '0px',\n bottom: '0px',\n left: '0px',\n }\n};\n\nclass ColorPicker extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n displayColorPicker: false,\n color: this.props.color,\n };\n }\n\n handleClick = () => {\n this.setState({displayColorPicker: !this.state.displayColorPicker});\n };\n\n handleClose = () => {\n this.setState({displayColorPicker: false});\n };\n\n static getColor(color) {\n if (color && typeof color === 'object') {\n if (color.rgb) {\n return 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')';\n } else {\n return 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')';\n }\n } else {\n return color || '';\n }\n }\n\n handleChange = (color) => {\n this.setState({color});\n this.props.onChange && this.props.onChange(ColorPicker.getColor(color));\n };\n\n render() {\n const color = ColorPicker.getColor(this.state.color);\n return (\n
\n this.handleChange(e.target.value)}\n margin=\"normal\"\n />\n this.handleChange('')} style={Object.assign({}, styles.delButton, color ? {} : {opacity: 0, cursor: 'default'})}>\n
this.handleClick()}>\n
\n
\n { this.state.displayColorPicker ?
\n
this.handleClose()}/>\n this.handleChange(color)} />\n
: null }\n\n
\n )\n }\n}\n\nexport default ColorPicker","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport ButtonBase from '@material-ui/core/ButtonBase';\n\nconst styles = theme => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n minWidth: 300,\n width: '100%',\n overflowX: 'hidden',\n overflowY: 'auto',\n marginLeft: 22\n },\n image: {\n position: 'relative',\n height: 200,\n /*[theme.breakpoints.down('xs')]: {\n width: '100% !important', // Overrides inline-style\n height: 100,\n },*/\n '&:hover, &$focusVisible': {\n zIndex: 1,\n '& $imageBackdrop': {\n opacity: 0.15,\n },\n '& $imageMarked': {\n opacity: 0,\n },\n '& $imageTitle': {\n border: '4px solid currentColor',\n },\n },\n },\n focusVisible: {},\n imageButton: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: theme.palette.common.white,\n },\n imageSrc: {\n position: 'absolute',\n left: 5,\n right: 5,\n top: 5,\n bottom: 5,\n backgroundSize: 'cover',\n backgroundPosition: 'center 40%',\n color: 'white'\n },\n imageBackdrop: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: theme.palette.common.black,\n opacity: 0.4,\n transition: theme.transitions.create('opacity'),\n },\n imageTitle: {\n position: 'relative',\n padding: `${theme.spacing.unit * 2}px ${theme.spacing.unit * 4}px ${theme.spacing.unit + 6}px`,\n },\n imageMarked: {\n height: 3,\n width: 18,\n backgroundColor: theme.palette.common.white,\n position: 'absolute',\n bottom: -2,\n left: 'calc(50% - 9px)',\n transition: theme.transitions.create('opacity'),\n },\n});\n\nclass ImageList extends React.Component {\n constructor(props) {\n super(props);\n this.classes = props.classes;\n }\n onSelect(image, i) {\n this.props.onSelect && this.props.onSelect(image);\n }\n\n render() {\n return (\n
\n {this.props.images.map(function(image, i) {\n let Image;\n\n if (typeof image === 'object') {\n Image = image.icon;\n }\n return (\n this.onSelect(image, i)}\n focusRipple\n key={'images-' + i}\n className={this.classes.image}\n focusVisibleClassName={this.classes.focusVisible}\n style={{width: 64, height: 64, background: 'grey', marginRight: 2, marginBottom: 2}}\n >\n {Image ?\n () :\n ()\n }\n \n \n \n );\n }.bind(this))}\n
\n );\n }\n\n}\n\nImageList.propTypes = {\n classes: PropTypes.object.isRequired,\n images: PropTypes.array.isRequired,\n onSelect: PropTypes.func.isRequired\n};\n\nexport default withStyles(styles)(ImageList);","import {Component} from \"react\";\nclass IconList extends Component {\n static List = [\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNDQ4LDQ5MC42NjdoLTMydi00ODBDNDE2LDQuNzc5LDQxMS4yMjEsMCw0MDUuMzMzLDBIMTA2LjY2N0MxMDAuNzc5LDAsOTYsNC43NzksOTYsMTAuNjY3djQ4MEg2NAoJCWMtNS44ODgsMC0xMC42NjcsNC43NzktMTAuNjY3LDEwLjY2N0M1My4zMzMsNTA3LjIyMSw1OC4xMTIsNTEyLDY0LDUxMmgzODRjNS44ODgsMCwxMC42NjctNC43NzksMTAuNjY3LTEwLjY2NwoJCUM0NTguNjY3LDQ5NS40NDUsNDUzLjg4OCw0OTAuNjY3LDQ0OCw0OTAuNjY3eiBNMzk0LjY2Nyw0OTAuNjY3SDExNy4zMzNWMjEuMzMzaDI3Ny4zMzNWNDkwLjY2N3oiLz4KCTxwYXRoIGQ9Ik0zNDEuMzMzLDI3Ny4zMzNjMTcuNjQzLDAsMzItMTQuMzU3LDMyLTMyYzAtMTcuNjQzLTE0LjM1Ny0zMi0zMi0zMmMtMTcuNjQzLDAtMzIsMTQuMzU3LTMyLDMyCgkJQzMwOS4zMzMsMjYyLjk3NiwzMjMuNjkxLDI3Ny4zMzMsMzQxLjMzMywyNzcuMzMzeiBNMzQxLjMzMywyMzQuNjY3YzUuODg4LDAsMTAuNjY3LDQuNzc5LDEwLjY2NywxMC42NjcKCQlTMzQ3LjIyMSwyNTYsMzQxLjMzMywyNTZzLTEwLjY2Ny00Ljc3OS0xMC42NjctMTAuNjY3UzMzNS40NDUsMjM0LjY2NywzNDEuMzMzLDIzNC42Njd6Ii8+CjwvZz4KPC9zdmc+Cg==\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMjk4LjY2NywyOTguNjY3YzE3LjY0MywwLDMyLTE0LjM1NywzMi0zMmMwLTE3LjY0My0xNC4zNTctMzItMzItMzJjLTE3LjY0MywwLTMyLDE0LjM1Ny0zMiwzMgoJCUMyNjYuNjY3LDI4NC4zMDksMjgxLjAyNCwyOTguNjY3LDI5OC42NjcsMjk4LjY2N3ogTTI5OC42NjcsMjU2YzUuODY3LDAsMTAuNjY3LDQuNzc5LDEwLjY2NywxMC42NjdzLTQuOCwxMC42NjctMTAuNjY3LDEwLjY2NwoJCWMtNS44NjcsMC0xMC42NjctNC43NzktMTAuNjY3LTEwLjY2N1MyOTIuOCwyNTYsMjk4LjY2NywyNTZ6Ii8+Cgk8cGF0aCBkPSJNNDQ4LDQ5MC42NjdoLTMydi00ODBDNDE2LDQuNzc5LDQxMS4yMjEsMCw0MDUuMzMzLDBIMTA2LjY2N2MtMC41OTcsMC0xLjEzMSwwLjI1Ni0xLjcwNywwLjM0MQoJCWMtMC41NTUsMC4wODUtMS4wODgsMC4xNDktMS42MjEsMC4zMmMtMC45MzksMC4zMi0xLjc0OSwwLjc4OS0yLjU2LDEuMzQ0Yy0wLjMyLDAuMjEzLTAuNzA0LDAuMjc3LTEuMDAzLDAuNTMzCgkJYy0wLjEwNywwLjA4NS0wLjE0OSwwLjIxMy0wLjI1NiwwLjMyYy0wLjc2OCwwLjcwNC0xLjM2NSwxLjU3OS0xLjg5OSwyLjQ5NmMtMC4yMTMsMC4zNDEtMC41MTIsMC42MTktMC42NjEsMC45ODEKCQlDOTYuMzYzLDcuNjgsOTYsOS4xMDksOTYsMTAuNjY3djQ4MEg2NGMtNS44ODgsMC0xMC42NjcsNC43NzktMTAuNjY3LDEwLjY2N0M1My4zMzMsNTA3LjIyMSw1OC4xMTIsNTEyLDY0LDUxMmg0Mi42NjcKCQljMC41NzYsMCwxLjE3My0wLjA0MywxLjc0OS0wLjE0OWwyNTYtNDIuNjY3YzUuMTQxLTAuODUzLDguOTE3LTUuMzEyLDguOTE3LTEwLjUxN1Y1My4zMzNjMC01LjIyNy0zLjc3Ni05LjY2NC04LjkxNy0xMC41MTcKCQlMMjM1LjU0MSwyMS4zMzNoMTU5LjEyNXY0ODBjMCw1Ljg4OCw0Ljc3OSwxMC42NjcsMTAuNjY3LDEwLjY2N0g0NDhjNS44ODgsMCwxMC42NjctNC43NzksMTAuNjY3LTEwLjY2NwoJCUM0NTguNjY3LDQ5NS40NDUsNDUzLjg4OCw0OTAuNjY3LDQ0OCw0OTAuNjY3eiBNMzUyLDYyLjM1N3YzODcuMjY0bC0yMzQuNjY3LDM5LjEyNVYyMy4yNTNMMzUyLDYyLjM1N3oiLz4KPC9nPgo8L3N2Zz4K\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIuMDA2IDUxMi4wMDYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMi4wMDYgNTEyLjAwNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBzdHlsZT0iZmlsbDojQzUyODI4OyIgZD0iTTUwMi4zNzksMjExLjI0OWMwLDc0LjY1Ni02MC41MiwxMzUuMTc2LTEzNS4xNzYsMTM1LjE3NmMtNi40NjksMC4wMS0xMi45MTktMC40NzMtMTkuMzExLTEuNDQ4CgljLTY2LjQ4Ny05LjU5OC0xMTUuODM3LTY2LjU1NS0xMTUuODY2LTEzMy43MjhjLTAuMDE5LTY3LjIxMiw0OS4zNDktMTI0LjIyNywxMTUuODY2LTEzMy44MjUKCWM2LjQwMi0wLjg4OCwxMi44NTEtMS4zNDIsMTkuMzExLTEuMzUyQzQ0MS44NTksNzYuMDcyLDUwMi4zNzksMTM2LjU5Myw1MDIuMzc5LDIxMS4yNDl6Ii8+CjxwYXRoIHN0eWxlPSJmaWxsOiNGNDQzMzU7IiBkPSJNNDYzLjc1NywyMTEuMjQ5Yy0wLjAyOSw2Ny4xNzMtNDkuMzc4LDEyNC4xMzEtMTE1Ljg2NSwxMzMuNzI4CgljLTY2LjQ4Ny05LjU5OC0xMTUuODM3LTY2LjU1NS0xMTUuODY2LTEzMy43MjhjLTAuMDE5LTY3LjIxMiw0OS4zNDktMTI0LjIyNywxMTUuODY2LTEzMy44MjUKCUM0MTQuNDA4LDg3LjAyMiw0NjMuNzY3LDE0NC4wMzcsNDYzLjc1NywyMTEuMjQ5eiIvPgo8Zz4KCTxwYXRoIHN0eWxlPSJmaWxsOiNGREQ4MzQ7IiBkPSJNMzgwLjUyNywyMzAuNTZoLTI2LjY0OWMtNC4yNTgsMC4xMjYtNy44OTgtMy4wMTMtOC40LTcuMjQybC03LjI0Mi05MC40NzIKCQljLTAuMjEyLTQuNDcsMy4yMzUtOC4yNzUsNy43MDUtOC40OTdjMC4yMzItMC4wMSwwLjQ2My0wLjAxLDAuNjk1LDBoNDEuMDM2YzQuNDgtMC4xNjQsOC4yMzYsMy4zMzEsOC40LDcuODAyCgkJYzAuMDEsMC4yMzIsMC4wMSwwLjQ2MywwLDAuNjk1bC03LjI0Miw5MC40NzJDMzg4LjMyOSwyMjcuNDk5LDM4NC43MzcsMjMwLjYzNywzODAuNTI3LDIzMC41NnoiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiNGREQ4MzQ7IiBkPSJNMzYyLjA4NSwyNjkuMTgxaDEwLjIzNWM3Ljg0LDAsMTQuMTk0LDYuMzUzLDE0LjE5NCwxNC4xOTR2MTAuMjM1CgkJYzAsNy44NC02LjM1MywxNC4xOTQtMTQuMTk0LDE0LjE5NGgtMTAuMjM1Yy03Ljg0LDAtMTQuMTk0LTYuMzUzLTE0LjE5NC0xNC4xOTR2LTEwLjIzNQoJCUMzNDcuODkyLDI3NS41MzUsMzU0LjI0NSwyNjkuMTgxLDM2Mi4wODUsMjY5LjE4MXoiLz4KPC9nPgo8cGF0aCBzdHlsZT0iZmlsbDojRjU3QzAwOyIgZD0iTTMwOC4wMTUsMzMyLjcxNGMtOC42NDItNC4xOS0xNi44MDEtOS4yOTgtMjQuMzMyLTE1LjI1NmMtOS42NjUtNy42MzctMTguMjc4LTE2LjU0LTI1LjU4Ny0yNi40NTYKCWMtMTYuOTk0LTIzLjExNS0yNi4xMzctNTEuMDY4LTI2LjA3LTc5Ljc1NGMtMC4wMS05Ljc0MiwxLjAzMy0xOS40NDYsMy4wOS0yOC45NjZjMi4wNjYtMTAuMDAzLDUuMzExLTE5LjcyNiw5LjY1NS0yOC45NjYKCWMtMjQuNDI4LTM5LjIwMS01MC42OTEtNzguMTEzLTg1LjU0Ny0xMDguMzM0Yy0yLjYwNy0yLjIyMS01LjIxNC00LjQ0Mi03LjkxNy02LjU2NmMtNC41OTYtMy44MDQtOS4zOTUtNy4zNDgtMTQuMzg3LTEwLjYyMQoJYy00LjM2NC0yLjgxOS04Ljk4OS01LjIxNC0xMy44MDctNy4xNDVjMS42NDEsNy4zMzgsMy40NzYsMTQuNzczLDQuNzMxLDIyLjIwOGMxLjY3LDguODkzLDIuNjc1LDE3LjkwMSwyLjk5MywyNi45MzkKCWMwLDIuMzE3LDAsNC43MzEsMCw3LjE0NWMtMC4xOTMsNTIuOTAyLTIyLjE5OCwxMDMuMzgxLTYwLjgyOSwxMzkuNTIxYy0xNy40OTYsMTQuOTU2LTMyLjMyNiwzMi43OC00My44MzYsNTIuNzE5CglDNy4yMzcsMzA2LjQ5LDQuODUzLDM1MC4wNDYsMTkuNjA2LDM4OS4xOTljNS4zMywxNC40MzUsMTIuODEzLDI3Ljk4MiwyMi4yMDgsNDAuMTY3YzI2LjEwOCwzMy41NDMsNjQuMTUxLDU1LjcyMiwxMDYuMjEsNjEuODkxCgljLTE4LjA0Ni01LjU5LTMzLjc2NS0xNi45MTYtNDQuODAxLTMyLjI0OWMtMS4zNDItMS43ODYtMi41NjgtMy42NS0zLjY2OS01LjZjLTIuNTc4LTQuMjE5LTQuNzQxLTguNjktNi40NjktMTMuMzI1CgljLTcuNzA1LTIwLjgzNi02LjM0NC00My45NDIsMy43NjYtNjMuNzI2YzYuMTk5LTEwLjY4OSwxNC4xMjYtMjAuMjg2LDIzLjQ2My0yOC4zODdjMjAuNjA1LTE5LjIwNSwzMi4zNDYtNDYuMDg2LDMyLjQ0Mi03NC4yNQoJYzAtMS4zNTIsMC0yLjYwNywwLTMuODYyYy0wLjI5LTkuMjIxLTEuODgzLTE4LjM1NS00LjczMS0yNy4xMzJjMy43NTYsMS45NzksNy4zOTYsNC4xNzEsMTAuOTExLDYuNTY2CgljMTIuMDQsOC4xMywyMi4zMjMsMTguNjA2LDMwLjIyMiwzMC44MDFjOS4wMTgsMTMuOTQyLDE0LjQ1NCwyOS44OTMsMTUuODM1LDQ2LjQ0M2MwLDIuNDE0LDAsNC44MjgsMCw3LjMzOHYxLjA2MgoJYzAuMDEsMjAuNzMtNi4zNjMsNDAuOTU4LTE4LjI0OSw1Ny45MzNjMjIuOTgsMTMuMDM1LDM4LjYyMi04LjU5Myw0NC45OTQtMjguOTY2YzEuMzAzLTQuMTgxLDIuMTQ0LTguNDg3LDIuNTEtMTIuODQyCgljMTcuNDE4LDE1Ljc3NywyNy44MzcsMzcuODQsMjguOTY2LDYxLjMxMmMwLDEuNzM4LDAsMy40NzYsMCw1LjIxNGMtMi43MDQsMzMuNjc4LTI1LjM0Niw2Mi40NTEtNTcuNDUsNzIuOTk1CgljNzMuMzUzLTExLjc4OSwxMjguNzE3LTcyLjg4OSwxMzMuMjQ1LTE0Ny4wNTNDMzI4LjI2MiwzNDEuMjMsMzE3Ljg1NCwzMzcuNTksMzA4LjAxNSwzMzIuNzE0eiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojRkY5ODAxOyIgZD0iTTI2My4xMTcsNDE3LjQ4OWMwLTEuNzM4LDAtMy40NzYsMC01LjIxNGMtMS4xMy0yMy40NzItMTEuNTQ4LTQ1LjUzNS0yOC45NjYtNjEuMzEyCgljLTAuMzY3LDQuMzU1LTEuMjA3LDguNjYxLTIuNTEsMTIuODQyYy01Ljk4NiwyMC40Ny0yMi4wMTQsNDIuMDk4LTQ0Ljk5NCwyOC45NjZjMTEuODg2LTE2Ljk3NCwxOC4yNTgtMzcuMjAyLDE4LjI0OS01Ny45MzN2LTAuOTY2CgljMC0yLjUxLDAtNC45MjQsMC03LjMzOGMtMS4zODEtMTYuNTQ5LTYuODE3LTMyLjUtMTUuODM1LTQ2LjQ0M2MtNy44OTgtMTIuMTk1LTE4LjE4MS0yMi42NzEtMzAuMjIyLTMwLjgwMQoJYy0xMC4xMzgtMTQuOTY2LTIzLjgzOS0yNy4xOC0zOS44NzctMzUuNTMyYzIuODQ4LDguNzc3LDQuNDQyLDE3LjkxMSw0LjczMSwyNy4xMzJjMCwxLjI1NSwwLDIuNTEsMCwzLjg2MgoJYy0wLjA5NywyOC4xNjUtMTEuODM4LDU1LjA0Ni0zMi40NDIsNzQuMjVjLTkuMjk4LDguMTExLTE3LjE5NiwxNy42OTgtMjMuMzY2LDI4LjM4N2MtMTAuMDQyLDE5LjgxMy0xMS4zMzYsNDIuOTE5LTMuNTczLDYzLjcyNgoJYzYuNzExLDE3LjY4OSwxOS4xOTUsMzIuNTg3LDM1LjQzNiw0Mi4yOTFjMS4xMDEsMS45NSwyLjMyNywzLjgxNCwzLjY2OSw1LjZjMTAuOTMsMTUuMjY1LDI2LjUxNCwyNi41ODEsNDQuNDE1LDMyLjI0OQoJYy00Mi4wNTktNi4xNy04MC4xMDItMjguMzQ4LTEwNi4yMS02MS44OTJjLTkuMzI3LTEyLjIwNC0xNi43NDMtMjUuNzQxLTIyLjAxNC00MC4xNjdDNC44NTMsMzUwLjA0Niw3LjIzOCwzMDYuNDksMjYuMTcyLDI2OS4xODEKCWMxMS41MjktMjAuMTIyLDI2LjQxNy0zOC4xMiw0NC4wMjktNTMuMjAyYzM4LjYzMS0zNi4xNCw2MC42MzYtODYuNjE5LDYwLjgyOS0xMzkuNTIxYzAtMi40MTQsMC00LjgyOCwwLTcuMTQ1CgljLTAuMzE5LTkuMDM4LTEuMzIzLTE4LjA0Ni0yLjk5My0yNi45MzljLTEuMjU1LTcuNDM1LTMuMDktMTQuODY5LTQuNzMxLTIyLjIwOGM0LjgxOCwxLjkzMSw5LjQ0Myw0LjMyNiwxMy44MDcsNy4xNDUKCWM1LjEyNywzLjI5MywxMC4wNjEsNi44NjUsMTQuNzczLDEwLjcxOGMyLjcwNCwyLjEyNCw1LjMxMSw0LjM0NSw3LjkxNyw2LjU2NmMzNC44NTYsMzAuMjIyLDYxLjExOSw2OS4xMzMsODUuNTQ3LDEwOC4zMzQKCWMtNC4zNDUsOS4yNC03LjU4OSwxOC45NjMtOS42NTUsMjguOTY2Yy0yLjI3OSw5LjYyNi0zLjUxNSwxOS40NjUtMy42NjksMjkuMzUzYy0wLjA2OCwyOC42ODYsOS4wNzYsNTYuNjM5LDI2LjA3LDc5Ljc1NAoJYzcuMzA5LDkuOTE2LDE1LjkyMiwxOC44MTgsMjUuNTg3LDI2LjQ1NmM3LjUzMSw1Ljk1NywxNS42OSwxMS4wNjUsMjQuMzMyLDE1LjI1NkMzMDIuNTc5LDM2NS4wNywyODYuODMxLDM5NC44MDksMjYzLjExNyw0MTcuNDg5egoJIi8+CjxwYXRoIGQ9Ik0xNDcuODMxLDUwMC45MTJoLTEuNDQ4Yy02MS43NTYtOC43LTExMy45NjMtNTAuMTUtMTM2LjQzMi0xMDguMzM0Yy0xNS40NjgtNDEuNjE1LTEyLjgxMy04Ny43OTcsNy4zMzgtMTI3LjM1NQoJYzEyLjAyMS0yMS4wOTcsMjcuNTY2LTM5Ljk2NCw0NS45Ni01NS44MDljMzYuNzk3LTM0LjI0OCw1Ny43NjktODIuMjA3LDU3LjkzMy0xMzIuNDczYzAtMi4zMTcsMC00LjUzOCwwLTYuNzU5CgljLTAuMjktOC41ODQtMS4yMjYtMTcuMTM4LTIuOC0yNS41ODdjLTAuOTY2LTUuNjk3LTIuMjIxLTExLjItMy40NzYtMTYuNzA0bC0xLjE1OS01LjExN2MtMS4xNzgtNS4yMDQsMi4wNzYtMTAuMzcsNy4yOC0xMS41NDgKCWMxLjk4OS0wLjQ1NCw0LjA3NS0wLjI2MSw1Ljk0OCwwLjU0MWM1LjM5NywyLjE2MywxMC41NzMsNC44NDcsMTUuNDQ5LDguMDE0YzUuMzQ5LDMuNDQ3LDEwLjUxNSw3LjE4NCwxNS40NDksMTEuMgoJYzQxLjAzNiwzMi43MzIsNzAuODcxLDc3LjI0NCw5NS41ODksMTE3LjMxNGMxLjg3MywyLjg5NywyLjA1Nyw2LjU4NSwwLjQ4Myw5LjY1NWMtNC4yNjgsOC41MzUtNy41MDIsMTcuNTQ0LTkuNjU1LDI2Ljg0MgoJYy0xLjc4Niw4LjctMi42NTUsMTcuNTczLTIuNjA3LDI2LjQ1NmMwLjAxLDU5LjE5OCw0MS4zNzQsMTEwLjMzMyw5OS4yNTgsMTIyLjcyMWM0LjUyOCwwLjk3NSw3LjczNCw1LjAyMSw3LjYyOCw5LjY1NQoJYy0zLjE4Niw3Ny4yNDQtNjEuMjE2LDE0MS43NDItMTQxLjE2MywxNTYuMTI5Yy01LjI1MywwLjkyNy0xMC4yNTQtMi41ODgtMTEuMTgxLTcuODRjLTAuODIxLTQuNjczLDEuODczLTkuMjUsNi4zNTMtMTAuNzk1CgljMjkuOTktOS44LDUwLjUxNy0zNy40OTIsNTEuMTc0LTY5LjAzN2MtMC4yMTItMTQuNzkyLTUuMjYyLTI5LjEwMi0xNC4zODctNDAuNzQ2Yy00LjA4NCwxMi45MDktMTIuNjM5LDIzLjkzNi0yNC4xMzksMzEuMDkxCgljLTEwLjU4Miw1LjU5LTIzLjM0Nyw1LjAzLTMzLjQwOC0xLjQ0OGMtNC42NDQtMi42MjYtNi4yNzYtOC41MTYtMy42NTktMTMuMTZjMC4xNDUtMC4yNjEsMC4yOTktMC41MDIsMC40NzMtMC43NDMKCWMxMC43NjYtMTUuMzYyLDE2LjUzLTMzLjY2OSwxNi41MTEtNTIuNDI5di0wLjc3MmMtMC4yMDMtMTcuMTQ4LTUuMjUzLTMzLjg4MS0xNC41OC00OC4yNzcKCWMtNS4zMzktOC4wOTEtMTEuODQ3LTE1LjM1Mi0xOS4zMTEtMjEuNTMyYzAsMS45MzEsMCwzLjg2MiwwLDUuNzkzYzAsMS4wNjIsMCwyLjUxLDAsNC4xNTIKCWMtMC4wMTksMzAuODQtMTIuODUxLDYwLjI4OS0zNS40MzYsODEuMjk5Yy04LjUzNSw3LjM2Ny0xNS44MDYsMTYuMDY3LTIxLjUzMiwyNS43OGMtOC44MDYsMTcuNDE4LTkuOTI2LDM3LjcyNC0zLjA5LDU2LjAwMgoJYzguODI1LDIxLjYzOCwyNy4wNzQsMzguMDQzLDQ5LjUzMyw0NC41MTJjNS4zMywwLjgwMSw5LjAwOSw1Ljc3NCw4LjIwNywxMS4xMDRDMTU4LjEzMyw0OTguMDM1LDE1My4xNiw1MDEuNzA0LDE0Ny44MzEsNTAwLjkxMnoKCSBNMTM3LjExMywzOS40Nzh2MS43MzhjMS43MzgsOS4zMDgsMi43NzEsMTguNzMyLDMuMDksMjguMTk0YzAsMi4zMTcsMCw0LjkyNCwwLDcuNDM1Yy0wLjExNiw1NS41NDgtMjMuMjEyLDEwOC41NjYtNjMuODIzLDE0Ni40NzMKCWMtMTYuODIsMTQuMy0zMS4wNTIsMzEuMzgtNDIuMDk4LDUwLjQ5OGMtMTcuNzE4LDM0Ljc1LTIwLjA2NCw3NS4zNDItNi40NjksMTExLjkwN2MxMi4yNzIsMzIuMzc1LDM1LjQ1NSw1OS40NTgsNjUuNTYxLDc2LjU2OAoJYy05Ljg1OC0xNC43MTUtMTUuMTQtMzIuMDE4LTE1LjE1OS00OS43MjZjMC4xMDYtMTMuOTUyLDMuNDA4LTI3LjY5Miw5LjY1NS00MC4xNjdjNi42NTMtMTEuNzIyLDE1LjIzNi0yMi4yMzcsMjUuMzk0LTMxLjA5MQoJYzE4LjgwOS0xNy40MzgsMjkuNDc4LTQxLjk0MywyOS40NDktNjcuNTg4YzAtMS4wNjIsMC0yLjEyNCwwLTMuMDljLTAuMjIyLTguNDY4LTEuNjUxLTE2Ljg0OS00LjI0OC0yNC45MTEKCWMtMS42MzItNS4wNzksMS4xNTktMTAuNTE1LDYuMjM3LTEyLjE0N2MyLjQ4MS0wLjgwMSw1LjE3NS0wLjU2LDcuNDczLDAuNjU3YzE4LjE0Myw5LjQ5MSwzMy41MzMsMjMuNDkyLDQ0LjcwNSw0MC42NDkKCWMxMS4zNjQsMTcuNTU0LDE3LjQ5NiwzNy45ODUsMTcuNjY5LDU4Ljg5OHYxLjE1OWMwLjAxOSwxOC4xOTEtNC40NjEsMzYuMTAyLTEzLjAzNSw1Mi4xMzljMS42NjEtMC4xNjQsMy4yNjQtMC42NTcsNC43MzEtMS40NDgKCWM5LjY1NS01LjMxLDE3LjI4My0yMi40OTcsMTguMzQ1LTM1LjQzNmMwLjQzNC01LjMxLDUuMDg4LTkuMjY5LDEwLjQwOS04Ljg0NGMyLjI2OSwwLjE4Myw0LjM5MywxLjE1OSw2LjAwNiwyLjc2MQoJYzE5LjYwMSwxNy4zNjEsMzEuMjI2LDQyLjAwMSwzMi4xNTMsNjguMTY4Yy0wLjAzOSwxNi43NzItNC43ODksMzMuMjA1LTEzLjcxMSw0Ny40MDhjMzguNTkzLTIzLjY2Niw2NC4xMDMtNjMuODIzLDY5LjEzMy0xMDguODE3CgljLTYyLjc3LTE3LjM3LTEwNi4yMi03NC40OTItMTA2LjIxLTEzOS42MThjLTAuMDEtMTAuNDE4LDEuMDkxLTIwLjgwOCwzLjI4My0zMC45OTRjMS45Ni05LjAxOCw0LjgwOC0xNy44MTQsOC40OTctMjYuMjYzCgljLTIzLjI3LTM3LjA3Ny01MS4yNy03OC40MDItODguNTQxLTEwOC4wNDVDMTQyLjgzOSw0My42MywxNDAuMDEsNDEuNDY3LDEzNy4xMTMsMzkuNDc4eiIvPgo8cGF0aCBkPSJNMzY3LjIwMywzNTYuMDgxYy0zMi40NjItMC4wMS02My45ODctMTAuOTItODkuNTA2LTMwLjk5NGMtMzUuMDQtMjcuMzY0LTU1LjQ2MS02OS4zODQtNTUuMzI2LTExMy44MzgKCWMtMC4wMS0xMC40MTgsMS4wOTEtMjAuODA4LDMuMjgzLTMwLjk5NGMyLjM3NS0xMC43NTYsNi4wMDYtMjEuMTg0LDEwLjgxNC0zMS4wOTFjMjMuOTY1LTUwLjQ5OCw3NC44MzktODIuNjk5LDEzMC43MzUtODIuNzQ3CgljNzkuOTg2LDAuMDE5LDE0NC44MTMsNjQuODc1LDE0NC44MDMsMTQ0Ljg2MWMtMC4wMSw0NC40MDUtMjAuMzkyLDg2LjM0OS01NS4yOTcsMTEzLjgwOQoJQzQzMS4yMzgsMzQ1LjI0NywzOTkuNjg0LDM1Ni4xNzcsMzY3LjIwMywzNTYuMDgxeiBNMzY3LjIwMyw4NS43MjhjLTQ4LjQ3LDAuMDE5LTkyLjU4NiwyNy45NDMtMTEzLjM1NSw3MS43NAoJYy00LjI2OCw4LjU2NC03LjUwMiwxNy42MTItOS42NTUsMjYuOTM5Yy0xLjc3Nyw4LjgzNS0yLjYyNiwxNy44MzQtMi41MSwyNi44NDJjMC4wMSw1OS4xOTgsNDEuMzc0LDExMC4zMzMsOTkuMjU4LDEyMi43MjEKCWM4LjYzMiwxLjg1NCwxNy40MzgsMi43OSwyNi4yNjMsMi44YzY5LjMyNiwwLDEyNS41MjEtNTYuMTk1LDEyNS41MjEtMTI1LjUyMVM0MzYuNTE5LDg1LjcyOCwzNjcuMjAzLDg1LjcyOHoiLz4KPHBhdGggZD0iTTM4MC41MjcsMjQwLjIxNWgtMjYuNjQ5Yy05LjI3OSwwLjA5Ny0xNy4xMDktNi44OTQtMTguMDU2LTE2LjEyNWwtNy4yNDItOTAuMDg1Yy0wLjM3Ny00Ljc4OSwxLjI3NS05LjUxMSw0LjUzOC0xMy4wMzUKCWMzLjQ4Ni0zLjc2Niw4LjM5MS01Ljg5OSwxMy41MTgtNS44OWg0MS4wMzZjNS4xMjctMC4wMSwxMC4wMzIsMi4xMjQsMTMuNTE4LDUuODljMy4zMDIsMy41MDUsNC45ODIsOC4yMzYsNC42MzUsMTMuMDM1CglsLTcuMjQyLDkwLjQ3MkMzOTcuNDQ0LDIzMy41NTMsMzg5LjY3MSwyNDAuMzMxLDM4MC41MjcsMjQwLjIxNXogTTM1NS4wMzcsMjIwLjkwNGgyNC41MjVsNi45NTItODYuODk5aC0zOC42MjJMMzU1LjAzNywyMjAuOTA0eiIKCS8+CjxwYXRoIGQ9Ik0zNzIuMzIsMzE3LjQ1OWgtMTAuMjM1Yy0xMy4xNTEtMC4wNDgtMjMuODAxLTEwLjY5OC0yMy44NDktMjMuODQ5di0xMC4yMzVjMC4wNDgtMTMuMTUxLDEwLjY5OC0yMy44MDEsMjMuODQ5LTIzLjg0OQoJaDEwLjEzOGMxMy4xODksMCwyMy44ODgsMTAuNjYsMjMuOTQ2LDIzLjg0OXYxMC4xMzhDMzk2LjE2OSwzMDYuNjkzLDM4NS41LDMxNy40MDEsMzcyLjMyLDMxNy40NTl6IE0zNjIuMTgyLDI3OC44MzcKCWMtMi40ODEsMC4wNDgtNC40OSwyLjA1Ny00LjUzOCw0LjUzOHYxMC4xMzhjMC4wNDgsMi40ODEsMi4wNTcsNC40OSw0LjUzOCw0LjUzOGgxMC4xMzhjMi40ODEtMC4wNDgsNC40OS0yLjA1Nyw0LjUzOC00LjUzOAoJdi0xMC4xMzhjLTAuMDQ4LTIuNDgxLTIuMDU3LTQuNDktNC41MzgtNC41MzhIMzYyLjE4MnoiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIuMjI0IDUxMi4yMjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMi4yMjQgNTEyLjIyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnPgoJCTxwYXRoIGQ9Ik0zMjEuNzEsNDI3LjU3M2MtNDIuMjM5LTE2Ljc4Mi02OS45NjgtNTcuNjMyLTY5Ljk3My0xMDMuMDgzYzAuMDEyLTcuOTc2LDAuODctMTUuOTI4LDIuNTYtMjMuNzIzCgkJCWMyLjE4NC0xMC4wNTIsNS44MDUtMTkuNzM4LDEwLjc1Mi0yOC43NTdjMi4wNS0zLjcwOCwxLjA2OS04LjM1OS0yLjMwNC0xMC45MjNjLTMuMjMtMi40MjYtNi4zMDctNS4wNDgtOS4yMTYtNy44NTEKCQkJYy04LjQ2NC04LjI0Ni0xNS4yNzEtMTguMDM3LTIwLjA1My0yOC44NDNjLTQuODMyLTExLjE4MS03LjMzLTIzLjIzMi03LjMzOS0zNS40MTNjMC4xMTItMTMuOTgsMy41NjUtMjcuNzMxLDEwLjA2OS00MC4xMDcKCQkJYzIuMjE5LTQuMDk2LDQuNDM3LTguMTA3LDYuOTk3LTEyLjExN2MxLjg3NS0yLjg0OCwxLjg3NS02LjUzOSwwLTkuMzg3bC0xNy44MzUtMjguNDE2bC0xNy4wNjctMjcuMzkyCgkJCWMtMS45ODEtMy4yMTgtNC42ODgtNS45MjUtNy45MDYtNy45MDZjLTExLjM1OC02Ljk5Mi0yNi4yMzMtMy40NTItMzMuMjI1LDcuOTA2bC01MC4xNzYsODAuNjQKCQkJYy0xMS4yNjQsMTguMDkxLTIyLjg2OSwzNi43NzktMzQuOTAxLDU0Ljc4NGwtMy40MTMsNS4wMzVjLTE0LjM2NiwyMC41NzYtMjcuNjExLDQxLjkxMi0zOS42OCw2My45MTUKCQkJYy0xMS42MzQsMjIuNTU5LTE3LjY5MSw0Ny41NzgtMTcuNjY0LDcyLjk2Yy0wLjAzNCwyMS44ODgsNC40MDksNDMuNTUxLDEzLjA1Niw2My42NTljMTcuMTY0LDM5LjM0Myw0OC45Niw3MC40NjYsODguNjYxLDg2Ljc4NAoJCQljMjAuNDk0LDguNTM5LDQyLjQ4MSwxMi45MTksNjQuNjgzLDEyLjg4NWMyMi4xOTYsMC4wNjEsNDQuMTgzLTQuMjksNjQuNjgzLTEyLjhjMTkuNzMzLTguMDkxLDM3LjcwMy0xOS45NDUsNTIuOTA3LTM0LjkwMQoJCQljNy41MzktNy4zNywxNC4zNDEtMTUuNDU4LDIwLjMwOS0yNC4xNDljMC4zNzctMC41NDYsMC42ODktMS4xMzQsMC45MjktMS43NTJDMzI4LjI3NSw0MzQuMjMsMzI2LjEwMiw0MjkuMjgzLDMyMS43MSw0MjcuNTczegoJCQkgTTI5My4zNzksNDUyLjQ5Yy0xMy42NTIsMTMuMzUzLTI5Ljc2NSwyMy45MzEtNDcuNDQ1LDMxLjE0N2MtMzcuMjgxLDE1LjM0My03OS4xMTMsMTUuMzQzLTExNi4zOTUsMAoJCQljLTM1LjU3OS0xNC42NDctNjQuMDY4LTQyLjU1NS03OS40NDUtNzcuODI0Yy03LjczNC0xNy45NzgtMTEuNzEzLTM3LjM0Ny0xMS42OTEtNTYuOTE3Yy0wLjA2LTIyLjY3NSw1LjMyNS00NS4wMzMsMTUuNzAxLTY1LjE5NQoJCQljMTEuNzk3LTIxLjQzOCwyNC43MjktNDIuMjMyLDM4Ljc0MS02Mi4yOTNsMy40MTMtNS4wMzVjMTIuMjAzLTE4LjE3NiwyMy44OTMtMzcuMDM1LDM1LjI0My01NS4yMTFsNTAuMTc2LTgwLjcyNQoJCQljMS4yNzEtMi4xMzIsMy41NzctMy40MzEsNi4wNTktMy40MTNjMi41OTcsMC4wNTYsNC45NTUsMS41Myw2LjE0NCwzLjg0bDE3LjA2NywyNy4zOTJsMTQuOTMzLDI0LjA2NAoJCQljLTEuNjIxLDIuNTYtMy4yNDMsNS40NjEtNC44NjQsOC41MzNjLTcuNzM2LDE0LjkyNC0xMS43NzUsMzEuNDg4LTExLjc3Niw0OC4yOTljLTAuMDU1LDE0LjQ4NiwyLjg0OSwyOC44Myw4LjUzMyw0Mi4xNTUKCQkJYzUuNjksMTIuNzksMTMuNzcxLDI0LjM3NiwyMy44MDgsMzQuMTMzYzEuNzA3LDEuNjIxLDMuNDEzLDMuMTU3LDUuMjA1LDQuNjkzYy00LjA5Niw4LjYwNS03LjE4OCwxNy42NTMtOS4yMTYsMjYuOTY1CgkJCWMtMS45MzUsOS4wMDItMi45MDgsMTguMTg0LTIuOTAxLDI3LjM5MmMwLjA0LDQ4LjUxOCwyNy40MDIsOTIuODc3LDcwLjc0MSwxMTQuNjg4CgkJCUMzMDEuNjgyLDQ0My44NjIsMjk3LjY2NCw0NDguMzA4LDI5My4zNzksNDUyLjQ5eiIvPgoJPC9nPgo8L2c+CjxnPgoJPGc+CgkJPGc+CgkJCTxwYXRoIGQ9Ik0xMDAuMDE0LDQ0Mi41OTJjLTAuMDU4LDAtMC4xMTQtMC4wMDgtMC4xNzItMC4wMDljLTAuMDU3LDAuMDAxLTAuMTEzLDAuMDA5LTAuMTcsMC4wMDlIMTAwLjAxNHoiLz4KCQkJPHBhdGggZD0iTTEwNS42NDYsNDI4Yy0xMC40MzItMTAuMjEzLTE4Ljc3OC0yMi4zNTYtMjQuNTc2LTM1Ljc1NWMtNS43NjUtMTMuNzE4LTguNjY5LTI4LjQ2OS04LjUzMy00My4zNDkKCQkJCWMtMC4wNS0xNy4xOCw0LjAxNy0zNC4xMjMsMTEuODYxLTQ5LjQwOGMwLjIxNS0wLjM0OSwwLjQwNC0wLjcxMywwLjU2Ni0xLjA5YzEuODY3LTQuMzI3LTAuMTI3LTkuMzQ5LTQuNDU1LTExLjIxNgoJCQkJYy00LjMyNy0xLjg2Ny05LjM0OSwwLjEyNy0xMS4yMTYsNC40NTVjLTkuMTE5LDE3LjcwNy0xMy44NTksMzcuMzQyLTEzLjgyNCw1Ny4yNTljLTAuMDM3LDE3LjIyLDMuNDQ3LDM0LjI2NywxMC4yNCw1MC4wOTEKCQkJCWM2LjY5LDE1LjQxNiwxNi4zMTIsMjkuMzg1LDI4LjMzMSw0MS4xMzFjMS41NDksMS41MzYsMy42MjYsMi40MTIsNS44MDIsMi40NjZjMi4yMDEtMC4wNTMsNC4zLTAuOTQ5LDUuODUzLTIuNTE1CgkJCQlDMTA5LjAxNSw0MzYuNzIxLDEwOC45OTIsNDMxLjMxOCwxMDUuNjQ2LDQyOHoiLz4KCQk8L2c+Cgk8L2c+CjwvZz4KPGc+Cgk8Zz4KCQk8cGF0aCBkPSJNNDE5LjE2MSwxNDAuNTk3Yy04LjA0NS0xNC41MjItMTYuODc2LTI4LjU5NC0yNi40NTMtNDIuMTU1bC0xLjcwNy0yLjQ3NUMzODEuNDQzLDgyLjQsMzcyLjkxLDY4LjE0OSwzNjQuMzc3LDU0LjQxCgkJCUwzMzUuNzksOC43NTdjLTEuNDk2LTIuMzg0LTMuNTEyLTQuNC01Ljg5Ni01Ljg5NmMtOC43NDItNS40ODYtMjAuMjc3LTIuODQ2LTI1Ljc2Myw1Ljg5NkwyNzUuNjMsNTQuNDEKCQkJYy04LjUzMywxNC4wOC0xNy40MDgsMjcuOTg5LTI2LjQ1Myw0MS44OTljLTYuOTk3LDEwLjE1NS0xNC4wOCwyMC41NjUtMjAuMzk1LDMxLjIzMmMtMi41Niw0LjA5Ni01LjEyLDguNDQ4LTcuNjgsMTMuMzEyCgkJCWMtNy43MzYsMTQuOTI0LTExLjc3NSwzMS40ODgtMTEuNzc2LDQ4LjI5OWMtMC4wNTUsMTQuNDg2LDIuODQ5LDI4LjgzLDguNTMzLDQyLjE1NWM1LjY5LDEyLjc5LDEzLjc3MSwyNC4zNzUsMjMuODA4LDM0LjEzMwoJCQljMy4zOTIsMy4yOSw2Ljk4Miw2LjM2NywxMC43NTIsOS4yMTZjMS40NzcsMS4xMDgsMy4yNzQsMS43MDcsNS4xMiwxLjcwN2wxLjg3Ny0wLjI1NmMyLjQzNy0wLjUxOSw0LjUyNi0yLjA3OCw1LjcxNy00LjI2NwoJCQljOS43MjQtMTguMTI3LDI0LjMyNi0zMy4xNzMsNDIuMTU1LTQzLjQzNWMzMi44NzgtMTguNjIyLDcyLjkwMi0xOS41MiwxMDYuNTgxLTIuMzg5YzAuNDQ2LDAuMjM2LDAuOTEyLDAuNDMyLDEuMzkzLDAuNTg1CgkJCWM0LjQ5LDEuNDMzLDkuMjkxLTEuMDQ1LDEwLjcyNC01LjUzNUM0MzQuNTI1LDE5NC40MDUsNDMyLjA2OCwxNjUuNDM5LDQxOS4xNjEsMTQwLjU5N3ogTTQxMi4wNzgsMjA2LjMwNAoJCQljLTM2LjkwOS0xNS4xMzktNzguNzI5LTEyLjQ2NC0xMTMuNDA4LDcuMjUzYy0xNy41MzcsMTAuMTQ5LTMyLjM5OSwyNC4zMzgtNDMuMzQ5LDQxLjM4N2wtMS43OTItMS43MDcKCQkJYy04LjQ2NC04LjI0Ni0xNS4yNzEtMTguMDM3LTIwLjA1My0yOC44NDNjLTQuODMyLTExLjE4MS03LjMzLTIzLjIzMi03LjMzOS0zNS40MTNjLTAuMDA3LTE0LjA0NiwzLjM1OC0yNy44ODgsOS44MTMtNDAuMzYzCgkJCWMyLjIxOS0zLjg0LDQuNTIzLTguMTkyLDcuMTY4LTEyLjM3M2M2LjE0NC0xMC40MTEsMTMuMTQxLTIwLjY1MSwyMC4wNTMtMzAuNzJjOS4zODctMTMuODI0LDE4LjQzMi0yOC4xNiwyNi45NjUtNDIuMDY5CgkJCWwyOC41MDEtNDUuMzk3YzAuMjgxLTAuNDg2LDAuODA0LTAuNzgxLDEuMzY1LTAuNzY4YzAuNTYxLTAuMDEzLDEuMDg1LDAuMjgyLDEuMzY1LDAuNzY4bDI3LjkwNCw0NS4zMTIKCQkJYzguNjE5LDEzLjkwOSwxNy41NzksMjguMjQ1LDI2Ljk2NSw0Mi4wNjlsMS43MDcsMi40NzVjOS4yNTgsMTMuMDQsMTcuODAzLDI2LjU3MSwyNS42LDQwLjUzMwoJCQlDNDEyLjkxLDE2Ni4xOTQsNDE1LjkyMSwxODYuNjEsNDEyLjA3OCwyMDYuMzA0eiIvPgoJPC9nPgo8L2c+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTI3Ny4zMzcsMjI4Ljc0NmMtNS4zMjUtNS4xNy05LjYxMi0xMS4zMS0xMi42MjktMTguMDkxYy0yLjkzOC02Ljg0OC00LjQ0OC0xNC4yMjMtNC40MzctMjEuNjc1CgkJCWMtMC4wMDUtOC41NTIsMi4wNDQtMTYuOTgsNS45NzMtMjQuNTc2YzEuNzA3LTMuMTU3LDMuNDk5LTYuNCw1LjYzMi05LjcyOGwwLjUxMi0wLjg1M2MwLjEzOC0wLjIwNCwwLjI2OC0wLjQxNCwwLjM4OC0wLjYyOQoJCQljMi4zMDEtNC4xMTMsMC44MzEtOS4zMTMtMy4yODItMTEuNjEzYy00LjExMy0yLjMwMS05LjMxMy0wLjgzMS0xMS42MTMsMy4yODJsLTAuNTEyLDAuNzY4CgkJCWMtMi4yMTksMy41ODQtNC4zNTIsNy4yNTMtNi4yMjksMTAuODM3Yy01LjIxMSwxMC4wNDUtNy45MzIsMjEuMTk1LTcuOTM2LDMyLjUxMmMtMC4wMDIsOS44MDMsMi4wMDIsMTkuNTAyLDUuODg4LDI4LjUwMQoJCQljMy44OTIsOC43ODcsOS40MjQsMTYuNzUxLDE2LjI5OSwyMy40NjdjMS42MDMsMS41NDUsMy43NDcsMi40MDMsNS45NzMsMi4zODl2MC4wODVjMi4zMzYsMC4wMTQsNC41NzUtMC45Myw2LjE5Ni0yLjYxMQoJCQlDMjgwLjgzLDIzNy40MTksMjgwLjczLDIzMi4wMTcsMjc3LjMzNywyMjguNzQ2eiIvPgoJPC9nPgo8L2c+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQyMS43MjEsMjEwLjgyNmMtMzguODc1LTE5LjgwMS04NS4wOTItMTguNzc2LTEyMy4wNTEsMi43MzFjLTIwLjU3OSwxMS44NTgtMzcuNDI4LDI5LjIzOS00OC42NCw1MC4xNzYKCQkJYy01LjczNCwxMC40NjYtOS45MywyMS43MDMtMTIuNDU5LDMzLjM2NWMtMS45MzUsOS4wMDItMi45MDgsMTguMTg0LTIuOTAxLDI3LjM5MmMwLDcwLjY5Miw1Ny4zMDgsMTI4LDEyOCwxMjgKCQkJYzQ3Ljg5OSwwLjA3MSw5MS44MjktMjYuNjA2LDExMy44NTUtNjkuMTRDNTA5LjAzMywzMjAuNTc1LDQ4NC40OTYsMjQzLjMzNCw0MjEuNzIxLDIxMC44MjZ6IE0zNjIuNjcsNDM1LjQyNAoJCQljLTYxLjI2NywwLTExMC45MzMtNDkuNjY3LTExMC45MzMtMTEwLjkzM2MwLjAwNi04LjAwNCwwLjg2NC0xNS45ODUsMi41Ni0yMy44MDhjMi4xNzgtMTAuMDgxLDUuNzk5LTE5Ljc5NiwxMC43NTItMjguODQzCgkJCWMxOS4zNTUtMzUuODk0LDU2Ljg0Mi01OC4yNzUsOTcuNjIxLTU4LjI4M2M2MS4yNjcsMCwxMTAuOTMzLDQ5LjY2NiwxMTAuOTMzLDExMC45MzNTNDIzLjkzNyw0MzUuNDI0LDM2Mi42Nyw0MzUuNDI0eiIvPgoJPC9nPgo8L2c+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTM5Mi43MDcsMjQ0LjcwNGMtMy4wODUtMy4zMjEtNy40MTQtNS4yMDctMTEuOTQ3LTUuMjA1aC0zNi4yNjdjLTQuNTMzLTAuMDAyLTguODYyLDEuODg0LTExLjk0Nyw1LjIwNQoJCQljLTIuODc5LDMuMTE2LTQuMzMyLDcuMjktNC4wMTEsMTEuNTJsNi40LDc5LjUzMWMwLjc5Niw4LjE5NCw3LjcyNSwxNC40MTksMTUuOTU3LDE0LjMzNmgyMy41NTIKCQkJYzguMDg2LDAuMTA1LDE0Ljk1OC01Ljg4NSwxNS45NTctMTMuOTA5bDYuNC03OS45NTdDMzk3LjEwMiwyNTEuOTgxLDM5NS42MTcsMjQ3LjgwNiwzOTIuNzA3LDI0NC43MDR6IE0zNzMuNTkzLDMzMy4wMjRoLTIxLjY3NQoJCQlsLTYuMzE1LTc2LjhoMzQuMTMzTDM3My41OTMsMzMzLjAyNHoiLz4KCTwvZz4KPC9nPgo8Zz4KCTxnPgoJCTxwYXRoIGQ9Ik0zNjcuMTA3LDM2Ny4xNTdoLTguOTZjLTExLjYyMSwwLjA0Ny0yMS4wMzEsOS40NTYtMjEuMDc3LDIxLjA3N3Y5LjA0NWMwLjA0NywxMS42MjEsOS40NTYsMjEuMDMxLDIxLjA3NywyMS4wNzdoOS4wNDUKCQkJYzExLjY1NC0wLjA0NywyMS4wNzctOS41MDgsMjEuMDc3LTIxLjE2M3YtOC45NkMzODguMjIzLDM3Ni41OCwzNzguNzYyLDM2Ny4xNTcsMzY3LjEwNywzNjcuMTU3eiBNMzcxLjIwMywzOTcuMTk0CgkJCWMtMC4wNDUsMi4xOTYtMS44MTUsMy45NjUtNC4wMTEsNC4wMTFoLTguOTZjLTIuMTk2LTAuMDQ1LTMuOTY1LTEuODE1LTQuMDExLTQuMDExdi04Ljk2YzAuMDQ1LTIuMTk2LDEuODE1LTMuOTY1LDQuMDExLTQuMDExCgkJCWg4Ljk2YzIuMTk2LDAuMDQ1LDMuOTY1LDEuODE1LDQuMDExLDQuMDExVjM5Ny4xOTR6Ii8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMi4wMDIgNTEyLjAwMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBzdHlsZT0iZmlsbDojQzUyODI4OyIgZD0iTTQ4MS45MjksMzI0LjM1YzAsNjUuOTUxLTUzLjQ2NCwxMTkuNDE1LTExOS40MTUsMTE5LjQxNWMtNS43MTUsMC4wMDktMTEuNDEzLTAuNDE4LTE3LjA1OS0xLjI3OQoJYy01OC43MzUtOC40NzgtMTAyLjMzLTU4Ljc5NS0xMDIuMzU2LTExOC4xMzVjLTAuMDE3LTU5LjM3NSw0My41OTUtMTA5Ljc0MiwxMDIuMzU2LTExOC4yMjFjNS42NTUtMC43ODUsMTEuMzUzLTEuMTg2LDE3LjA1OS0xLjE5NAoJQzQyOC40NjUsMjA0LjkzNSw0ODEuOTI5LDI1OC4zOTgsNDgxLjkyOSwzMjQuMzV6Ii8+CjxwYXRoIHN0eWxlPSJmaWxsOiNGNDQzMzU7IiBkPSJNNDQ3LjgxLDMyNC4zNWMtMC4wMjYsNTkuMzQxLTQzLjYyMSwxMDkuNjU3LTEwMi4zNTYsMTE4LjEzNQoJYy01OC43MzUtOC40NzgtMTAyLjMzLTU4Ljc5NS0xMDIuMzU2LTExOC4xMzVjLTAuMDE3LTU5LjM3NSw0My41OTUtMTA5Ljc0MiwxMDIuMzU2LTExOC4yMjEKCUM0MDQuMjI0LDIxNC42MTYsNDQ3LjgyNywyNjQuOTc1LDQ0Ny44MSwzMjQuMzV6Ii8+CjxnPgoJPHBhdGggc3R5bGU9ImZpbGw6I0ZERDgzNDsiIGQ9Ik0zNzQuMjg1LDM0MS40MDloLTIzLjU0MmMtMy43NjIsMC4xMTEtNi45NzctMi42NjEtNy40MjEtNi4zOTdsLTYuMzk3LTc5LjkyMwoJCWMtMC4xODgtMy45NDksMi44NTctNy4zMSw2LjgwNy03LjUwNmMwLjIwNS0wLjAwOSwwLjQwOS0wLjAwOSwwLjYxNCwwaDM2LjI1MWMzLjk1OC0wLjE0NSw3LjI3NiwyLjk0Myw3LjQyMSw2Ljg5MgoJCWMwLjAwOSwwLjIwNSwwLjAwOSwwLjQwOSwwLDAuNjE0bC02LjM5Nyw3OS45MjNDMzgxLjE4NSwzMzguNzE0LDM3OC4wMTIsMzQxLjQ3NywzNzQuMjg1LDM0MS40MDl6Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDojRkREODM0OyIgZD0iTTM1Ny45OTMsMzc1LjUyN2g5LjA0MWM2LjkyNiwwLDEyLjUzOSw1LjYxMiwxMi41MzksMTIuNTM5djkuMDQxCgkJYzAsNi45MjYtNS42MTIsMTIuNTM5LTEyLjUzOSwxMi41MzloLTkuMDQxYy02LjkyNiwwLTEyLjUzOS01LjYxMi0xMi41MzktMTIuNTM5di05LjA0MQoJCUMzNDUuNDU0LDM4MS4xNCwzNTEuMDc1LDM3NS41MjcsMzU3Ljk5MywzNzUuNTI3eiIvPgo8L2c+CjxwYXRoIHN0eWxlPSJmaWxsOiMwMzc3QkM7IiBkPSJNMzE4LjQxNSw0MzUuMjM1Yy01LjYzOCw4LjIyMy0xMi4wNjksMTUuODgyLTE5LjE5MiwyMi44NTkKCWMtMTQuNDMyLDE0LjE1OS0zMS40NjYsMjUuMzkzLTUwLjE1NCwzMy4wOTVjLTE5LjQ1Niw4LjExMi00MC4zMjgsMTIuMjgzLTYxLjQxMywxMi4yODNjLTYuODc1LDAuMDE3LTEzLjc0MS0wLjQzNS0yMC41NTYtMS4zNjUKCWMtMTQuMDQ4LTEuNzMyLTI3Ljc5OC01LjM3NC00MC44NTctMTAuODMzYy0zNy42MzMtMTUuNDktNjcuNzU5LTQ1LjAwMi04NC4wMTctODIuMzExYy04LjE2My0xOS4wMy0xMi4zNjgtMzkuNTE4LTEyLjM2OC02MC4yMTkKCWMwLjA4NS0yNC4wMzYsNS45MzctNDcuNjk4LDE3LjA1OS02OS4wMDVjMTIuOTkxLTIzLjQ5MSwyNy4yMjctNDYuMjczLDQyLjY0OC02OC4yMzdjMTUuMjY4LTIyLjc3NCwyOS41MTMtNDYuMTQ1LDQ0LjAxMy02OS4zNDYKCWwzNC4xMTktNTQuNTA0bDcuMzM1LTExLjc3MWM0LjUwNC03LjM1MywxNC4xMTctOS42NTYsMjEuNDY5LTUuMTQzYzIuMDk4LDEuMjg4LDMuODY0LDMuMDQ1LDUuMTQzLDUuMTQzbDM0LjcxNiw1NS44NjkKCWMtMi42NDQsNC4xOC01LjAzMiw4LjUzLTcuMzM1LDEyLjcwOWMtNy4zNjEsMTMuNjczLTExLjMxLDI4LjkxNS0xMS41MTUsNDQuNDM5YzAuMDE3LDEzLjMxNSwyLjczOCwyNi40OTMsOC4wMTgsMzguNzI1CgljNS4yMDMsMTEuODMxLDEyLjY0OSwyMi41NTIsMjEuOTIxLDMxLjU2YzMuMTQ3LDMuMDQ1LDYuNDgzLDUuODk0LDkuOTgsOC41M2MtNS4zNCw5LjczMi05LjI0NiwyMC4xOS0xMS42LDMxLjA0OAoJYy0xLjgxNyw4LjQxLTIuNzM4LDE2Ljk4My0yLjcyOSwyNS41ODlDMjQzLjE0MSwzNzMuMjUsMjcyLjk3OCw0MTcuMTc4LDMxOC40MTUsNDM1LjIzNXoiLz4KPHBhdGggc3R5bGU9ImZpbGw6IzAyQTlGNDsiIGQ9Ik0yNzcuMjE3LDQzNS4yMzVjLTUuNjM4LDguMjIzLTEyLjA2OSwxNS44ODItMTkuMTkyLDIyLjg1OQoJYy0xNC40MzIsMTQuMTU5LTMxLjQ2NiwyNS4zOTMtNTAuMTU0LDMzLjA5NWMtMTMuMDUsNS40MDgtMjYuNzU3LDkuMDUtNDAuNzcyLDEwLjgzM2MtMTQuMDQ4LTEuNzMyLTI3Ljc5OC01LjM3NC00MC44NTctMTAuODMzCgljLTM3LjYzMy0xNS40OS02Ny43NTktNDUuMDAyLTg0LjAxNy04Mi4zMTFjLTguMTU0LTE5LjAwNC0xMi4zNTktMzkuNDU4LTEyLjM2OC02MC4xMzRjMC4wODUtMjQuMDM2LDUuOTM3LTQ3LjY5OCwxNy4wNTktNjkuMDA1CgljMTIuOTkxLTIzLjQ5MSwyNy4yMjctNDYuMjczLDQyLjY0OC02OC4yMzdjMTUuMjY4LTIyLjc3NCwyOS41MTMtNDYuMTQ1LDQ0LjAxMy02OS4zNDZsMzQuMTE5LTU0LjUwNAoJYzkuMjEyLDE0LjY3MSwxOC4zMzksMjkuNDI3LDI3LjQ2NSw0NC4wOThjLTIuNjQ0LDQuMTgtNS4wMzIsOC41My03LjMzNSwxMi43MDljLTcuMTA1LDEzLjcwNy0xMC44MjQsMjguOTE1LTEwLjgzMyw0NC4zNTQKCWMwLjAxNywxMy4zMTUsMi43MzgsMjYuNDkzLDguMDE4LDM4LjcyNWM1LjIwMywxMS44MzEsMTIuNjQ5LDIyLjU1MiwyMS45MjEsMzEuNTZjMy4xNDcsMy4wNDUsNi40ODMsNS44OTQsOS45OCw4LjUzCgljLTUuNTg3LDkuNzI0LTkuNzI0LDIwLjIxNS0xMi4yODMsMzEuMTMzYy0xLjgxNyw4LjQxLTIuNzM4LDE2Ljk4My0yLjcyOSwyNS41ODlDMjAxLjk0MywzNzMuMjUsMjMxLjc4LDQxNy4xNzgsMjc3LjIxNyw0MzUuMjM1eiIKCS8+CjxwYXRoIHN0eWxlPSJmaWxsOiMwMzc3QkM7IiBkPSJNNDExLjM4OCwxNDQuNTQ1Yy04LjQxLTE1LjEwNi0xNy42MzktMjkuNzM0LTI3LjYzNi00My44NDIKCWMtOS44OTQtMTQuNTg2LTE5LjE5Mi0yOS41OTgtMjguNDg5LTQ0LjUyNUwzMjguMzk1LDEzLjUzYy0zLjAzNy00LjcwOC05LjMyMy02LjA2NS0xNC4wMzEtMy4wMjgKCWMtMS4yMTEsMC43ODUtMi4yNDMsMS44MTctMy4wMjgsMy4wMjhsLTEyLjc5NCwyMC4yMTVsLTE0LjA3NCwyMi40MzNjLTkuMjk3LDE0LjkyNy0xOC41OTUsMjkuOTM5LTI4LjQ4OSw0NC41MjUKCWMtNi45OTQsMTAuMjM2LTEzLjk4OSwyMC40NzEtMjAuMzAxLDMxLjEzM2MtMi42NDQsNC4xOC01LjAzMiw4LjUzLTcuMzM1LDEyLjcwOWMtNy4xMDUsMTMuNzA3LTEwLjgyNCwyOC45MTUtMTAuODMzLDQ0LjM1NAoJYzAuMTQ1LDI2LjQ5MywxMC45MzUsNTEuODE4LDI5LjkzOSw3MC4yODRjMy4xNDcsMy4wNDUsNi40ODMsNS44OTQsOS45OCw4LjUzYzE3LjI2NC0zMi4wNDYsNDguMTkyLTU0LjQ2Miw4NC4wMTctNjAuOTAyCgljNi45NTItMS4yNzEsMTQuMDA2LTEuOTAyLDIxLjA2OC0xLjg3N2M1LjE4NiwwLjAwOSwxMC4zNzIsMC4zMjQsMTUuNTI0LDAuOTM4YzEzLjgyNywxLjgzNCwyNy4yMTgsNi4wODIsMzkuNTc4LDEyLjUzOQoJQzQyNS40NjIsMTkzLjk0OSw0MjMuMjE5LDE2Ny4zNTMsNDExLjM4OCwxNDQuNTQ1eiIvPgo8cGF0aCBzdHlsZT0iZmlsbDojMDJBOUY0OyIgZD0iTTM3OS41NzMsMTg4Ljg5OWMwLjAxNyw1LjcyMy0wLjUwMywxMS40My0xLjUzNSwxNy4wNTljLTUuMTUyLTAuNjQ4LTEwLjMzOC0wLjk4OS0xNS41MjQtMS4wMjQKCWMtNy4wNjMtMC4wMjYtMTQuMTE3LDAuNjA2LTIxLjA2OCwxLjg3N2MtMzUuODI0LDYuNDQtNjYuNzUzLDI4Ljg1Ni04NC4wMTcsNjAuOTAyYy0zLjQ5Ny0yLjYzNi02LjgzMi01LjQ4NS05Ljk4LTguNTMKCWMtMzEuMDk5LTI5Ljc0My0zOC44NzgtNzYuNDE3LTE5LjEwNi0xMTQuNjM4YzIuMzAzLTQuMzUsNC42OTEtOC41Myw3LjMzNS0xMi43MDljNi4zMTItMTAuNjYyLDEzLjMwNi0yMC44OTgsMjAuMzAxLTMxLjEzMwoJYzkuODk0LTE0LjU4NiwxOS4xOTItMjkuNTk4LDI4LjQ4OS00NC41MjVsMTQuMDc0LTIyLjQzM2wxNC4wNzQsMjIuNDMzYzkuMjk3LDE0LjkyNywxOC41OTUsMjkuOTM5LDI4LjQ4OSw0NC41MjUKCWM5Ljk5NywxNC4xMDgsMTkuMjI2LDI4LjczNiwyNy42MzYsNDMuODQyQzM3NS44NTQsMTU4LjI1MiwzNzkuNTY0LDE3My40NiwzNzkuNTczLDE4OC44OTl6Ii8+CjxwYXRoIGQ9Ik0xODcuNjU2LDUxMi4wMDJjLTIyLjE5NCwwLjAzNC00NC4xNjYtNC4zNDItNjQuNjU1LTEyLjg4Yy0zOS42OC0xNi4zMDktNzEuNDctNDcuNDI1LTg4LjYyMy04Ni43NDYKCWMtOC42NDEtMjAuMDk2LTEzLjA4NC00MS43NTMtMTMuMDUtNjMuNjMxYy0wLjAyNi0yNS4zNjcsNi4wMy01MC4zNzYsMTcuNjU2LTcyLjkyOGMxMi4wNjEtMjEuOTg5LDI1LjMwNy00My4zMjIsMzkuNjYzLTYzLjg4NwoJbDMuNDEyLTUuMDMyYzEyLjAyNy0xNy45OTgsMjMuNjI3LTM2LjY3NywzNC44ODYtNTQuNzZMMTY3LjEsNzEuNTMxYzYuOTg2LTExLjM1MywyMS44NjEtMTQuODkzLDMzLjIxNC03Ljg5OAoJYzMuMjE2LDEuOTc5LDUuOTIsNC42ODMsNy44OTgsNy44OThsMTcuMDU5LDI3LjM4bDE3LjgyNywyOC40MDRjMS44NzcsMi44NDksMS44NzcsNi41MzQsMCw5LjM4MwoJYy0yLjU1OSw0LjAwOS00Ljc3Nyw4LjAxOC02Ljk5NCwxMi4xMTJjLTYuNSwxMi4zNjgtOS45NTQsMjYuMTE4LTEwLjA2NSw0MC4wODljMC4wMDksMTIuMTcyLDIuNTA4LDI0LjIyNCw3LjMzNSwzNS4zOTgKCWM0Ljc3NywxMC43OTksMTEuNTgzLDIwLjU5MSwyMC4wNDUsMjguODNjMi45MDksMi43OTgsNS45ODgsNS40MjUsOS4yMTIsNy44NDdjMy4zNjksMi41NTksNC4zNSw3LjIwOCwyLjMwMywxMC45MTgKCWMtNC45NDcsOS4wMTYtOC41NjQsMTguNjk3LTEwLjc0NywyOC43NDVjLTEuNjg5LDcuNzg4LTIuNTUsMTUuNzM3LTIuNTU5LDIzLjcxMmMwLjAwOSw0NS40MjksMjcuNzIxLDg2LjI2LDY5Ljk0MywxMDMuMDM4CgljNC4zOTMsMS43MDYsNi41NTksNi42NTMsNC44NTMsMTEuMDQ2Yy0wLjIzOSwwLjYxNC0wLjU1NCwxLjIwMy0wLjkzLDEuNzQ5Yy01Ljk2Miw4LjY4My0xMi43NjksMTYuNzY5LTIwLjMwMSwyNC4xMzkKCWMtMTUuMiwxNC45NTItMzMuMTYzLDI2LjgtNTIuODg0LDM0Ljg4NkMyMzEuODIzLDUwNy43MTEsMjA5Ljg0Miw1MTIuMDYxLDE4Ny42NTYsNTEyLjAwMnogTTE4Ny42NTYsNzYuOTkKCWMtMi40ODItMC4wMTctNC43ODUsMS4yNzktNi4wNTYsMy40MTJsLTUwLjE1NCw4MC42OWMtMTEuMzQ0LDE4LjE2OC0yMy4wMywzNy4wMTktMzUuMjI3LDU1LjE4N2wtMy40MTIsNS4wMzIKCWMtMTQuMDA2LDIwLjA1My0yNi45MzcsNDAuODQtMzguNzI1LDYyLjI2NmMtMTAuMzcyLDIwLjE1Ni0xNS43NTQsNDIuNTAzLTE1LjY5NSw2NS4xNjZjLTAuMDI2LDE5LjU1OCwzLjk1OCwzOC45MjEsMTEuNjg2LDU2Ljg5MwoJYzE1LjM3LDM1LjI1Myw0My44NTEsNjMuMTUzLDc5LjQxMSw3Ny43OWMzNy4yNjYsMTUuMzM2LDc5LjA3OCwxNS4zMzYsMTE2LjM0NCwwYzE3LjY3My03LjIxNiwzMy43NzctMTcuNzg0LDQ3LjQyNS0zMS4xMzMKCWM0LjI4Mi00LjE4LDguMjk5LTguNjIzLDEyLjAyNy0xMy4zMDZjLTQzLjMyMi0yMS44MDItNzAuNjY4LTY2LjEzOS03MC43MTEtMTE0LjYzOGMtMC4wMDktOS4yMDMsMC45NjQtMTguMzgxLDIuOS0yNy4zOAoJYzIuMDMtOS4zMDYsNS4xMTgtMTguMzU2LDkuMjEyLTI2Ljk1NGMtMS43OTEtMS41MzUtMy40OTctMy4wNzEtNS4yMDMtNC42OTFjLTEwLjAzMS05Ljc0OS0xOC4xMDgtMjEuMzMzLTIzLjc5OC0zNC4xMTkKCWMtNS42ODEtMTMuMzE1LTguNTgxLTI3LjY1My04LjUzLTQyLjEzNmMwLTE2LjgwMyw0LjAzNS0zMy4zNTksMTEuNzcxLTQ4LjI3OGMxLjYyMS0zLjA3MSwzLjI0MS01Ljk3MSw0Ljg2Mi04LjUzbC0xNC45MjctMjQuMDU0CglsLTE3LjA1OS0yNy4zOEMxOTIuNjEyLDc4LjUyNSwxOTAuMjU4LDc3LjA1LDE4Ny42NTYsNzYuOTl6Ii8+CjxwYXRoIGQ9Ik05OS45NzEsNDQyLjRjLTIuMjM1LTAuMDA5LTQuMzg0LTAuODk2LTUuOTcxLTIuNDc0Yy0xMi4wMS0xMS43MzctMjEuNjMxLTI1LjctMjguMzE4LTQxLjExMwoJYy02Ljc5LTE1LjgxNC0xMC4yNy0zMi44NTYtMTAuMjM2LTUwLjA2OWMtMC4wMzQtMTkuOTA4LDQuNy0zOS41MzUsMTMuODE4LTU3LjIzNGMxLjg2OC00LjMyNSw2Ljg4My02LjMyLDExLjIwOC00LjQ1MgoJczYuMzIsNi44ODMsNC40NTIsMTEuMjA4Yy0wLjE2MiwwLjM3NS0wLjM1LDAuNzQyLTAuNTYzLDEuMDkyYy03LjgzOSwxNS4yNzctMTEuOTA3LDMyLjIxNi0xMS44NTYsNDkuMzg3CgljLTAuMTM2LDE0Ljg3NiwyLjc2NCwyOS42MTUsOC41Myw0My4zMzFjNS43OTIsMTMuMzkyLDE0LjE0MiwyNS41MjksMjQuNTY1LDM1LjczOWMzLjM0NCwzLjMxOCwzLjM2OSw4LjcxNywwLjA1MSwxMi4wNjEKCWMtMS41OTUsMS42MDQtMy43NjIsMi41MTYtNi4wMjIsMi41MjVMOTkuOTcxLDQ0Mi40TDk5Ljk3MSw0NDIuNHoiLz4KPHBhdGggZD0iTTI1Ny40MjgsMjc2LjI0MmMtMS44NDIsMC0zLjY0Mi0wLjU5Ny01LjExOC0xLjcwNmMtMy43Ny0yLjg0OS03LjM2MS01LjkyOC0xMC43NDctOS4yMTIKCWMtMTAuMDMxLTkuNzQ5LTE4LjEwOC0yMS4zMzMtMjMuNzk4LTM0LjExOWMtNS42ODEtMTMuMzE1LTguNTgxLTI3LjY1My04LjUzLTQyLjEzNmMwLTE2LjgwMyw0LjAzNS0zMy4zNTksMTEuNzcxLTQ4LjI3OAoJYzIuNTU5LTQuODYyLDUuMTE4LTkuMjEyLDcuNjc3LTEzLjMwNmM2LjMxMi0xMC42NjIsMTMuMzkyLTIxLjA2OCwyMC4zODYtMzEuMjE4YzkuMDQxLTEzLjkwMywxNy45MTItMjcuODA3LDI2LjQ0Mi00MS44ODEKCUwzMDQsOC43NTNjNS40ODUtOC43MzQsMTcuMDE3LTExLjM3OSwyNS43NTEtNS44OTRjMi4zOCwxLjQ5Myw0LjQwMSwzLjUxNCw1Ljg5NCw1Ljg5NGwyOC41NzQsNDUuNjM0CgljOC41MywxMy43MzMsMTcuMDU5LDI3Ljk3NywyNi42MTIsNDEuNTM5bDEuNzA2LDIuNDc0YzkuNTcsMTMuNTU0LDE4LjM5OCwyNy42MTksMjYuNDQyLDQyLjEzNgoJYzEyLjkwNSwyNC44MywxNS4zNjIsNTMuNzg4LDYuODI0LDgwLjQzNGMtMS40MzMsNC40ODctNi4yMzUsNi45NjktMTAuNzIyLDUuNTM2Yy0wLjQ3OC0wLjE1NC0wLjk0Ny0wLjM1LTEuMzktMC41ODkKCWMtMzMuNjY2LTE3LjExOS03My42NzEtMTYuMjIzLTEwNi41MzUsMi4zODhjLTE3LjgxOCwxMC4yNjEtMzIuNDEzLDI1LjI5OS00Mi4xMzYsNDMuNDE2Yy0xLjE5NCwyLjE5Mi0zLjI3NSwzLjc0NS01LjcxNSw0LjI2NQoJTDI1Ny40MjgsMjc2LjI0MnogTTMxOS44NjUsMTcuMjgzYy0wLjU2My0wLjAwOS0xLjA4MywwLjI4MS0xLjM2NSwwLjc2OGwtMjguNDg5LDQ1LjM3OGMtOC41MywxMy45MDMtMTcuNTcxLDI4LjIzMy0yNi45NTQsNDIuMDUxCgljLTYuOTA5LDEwLjA2NS0xMy45MDMsMjAuMzAxLTIwLjA0NSwzMC43MDdjLTIuNjQ0LDQuMTgtNC45NDcsOC41My03LjE2NSwxMi4zNjhjLTYuNDQ4LDEyLjQ3LTkuODE4LDI2LjMwNS05LjgwOSw0MC4zNDUKCWMwLjAwOSwxMi4xNzIsMi41MDgsMjQuMjI0LDcuMzM1LDM1LjM5OGM0Ljc3NywxMC43OTksMTEuNTgzLDIwLjU5MSwyMC4wNDUsMjguODNsMS43OTEsMS43MDYKCWMxMC45NDQtMTcuMDQyLDI1LjgwMi0zMS4yMjcsNDMuMzMxLTQxLjM2OWMzNC42NjQtMTkuNzEyLDc2LjQ2OC0yMi4zODIsMTEzLjM1OS03LjI1YzMuODM4LTE5LjY4NiwwLjgyNy00MC4wODktOC41My01Ny44MzEKCWMtNy43OTYtMTMuOTU0LTE2LjMzNC0yNy40ODItMjUuNTg5LTQwLjUxNmwtMS43MDYtMi40NzRjLTkuMzgzLTEzLjgxOC0xOC4zMzktMjguMTQ4LTI2Ljk1NC00Mi4wNTFMMzIxLjIzLDE4LjA1CglDMzIwLjk1NywxNy41NjQsMzIwLjQyOCwxNy4yNzQsMzE5Ljg2NSwxNy4yODN6Ii8+CjxwYXRoIGQ9Ik0yNzEuMjQ2LDI0My4yMzNjLTIuMjI2LDAuMDE3LTQuMzY3LTAuODQ0LTUuOTcxLTIuMzg4Yy02Ljg3NS02LjcxMy0xMi40MDItMTQuNjcxLTE2LjI5Mi0yMy40NTYKCWMtMy44ODEtOC45OTktNS44ODUtMTguNjg4LTUuODg1LTI4LjQ4OWMwLTExLjMxLDIuNzIxLTIyLjQ1OSw3LjkzMy0zMi40OThjMS44NzctMy41ODIsNC4wMDktNy4yNSw2LjIyNy0xMC44MzNsMC41MTItMC43NjgKCWMyLjMwMy00LjExMSw3LjQ5OC01LjU3OCwxMS42MDktMy4yODRjNC4xMTEsMi4zMDMsNS41NzgsNy40OTgsMy4yODQsMTEuNjA5Yy0wLjExOSwwLjIxMy0wLjI0NywwLjQyNi0wLjM5MiwwLjYzMWwtMC41MTIsMC44NTMKCWMtMi4xMzIsMy4zMjctMy45MjQsNi41NjgtNS42Myw5LjcyNGMtMy45MzIsNy41OTEtNS45NzksMTYuMDE5LTUuOTcxLDI0LjU2NWMtMC4wMDksNy40NDYsMS41MDEsMTQuODI1LDQuNDM1LDIxLjY2NQoJYzMuMDIsNi43ODEsNy4zMDEsMTIuOTE0LDEyLjYyNCwxOC4wODNjMy4zOTUsMy4yNjcsMy40ODksOC42NjYsMC4yMjIsMTIuMDYxYy0xLjYyMSwxLjY4LTMuODU1LDIuNjI3LTYuMTkzLDIuNjFWMjQzLjIzMwoJTDI3MS4yNDYsMjQzLjIzM3oiLz4KPHBhdGggZD0iTTM2Mi41MTQsNDUyLjI5NGMtNzAuNjYsMC0xMjcuOTQ1LTU3LjI4NS0xMjcuOTQ1LTEyNy45NDVjLTAuMDA5LTkuMjAzLDAuOTY0LTE4LjM4MSwyLjktMjcuMzgKCWMyLjUyNS0xMS42Niw2LjcyMS0yMi44OTQsMTIuNDUzLTMzLjM1MWMxMS4yMDgtMjAuOTMyLDI4LjA0NS0zOC4yOTgsNDguNjE5LTUwLjE1NGMzNy45NC0yMS40OTUsODQuMTM2LTIyLjUxOCwxMjIuOTk3LTIuNzI5CgljNjIuNzQ0LDMyLjQ4OSw4Ny4yNzUsMTA5LjcsNTQuNzc3LDE3Mi40NTJDNDU0LjMxLDQyNS42OTksNDEwLjM5OSw0NTIuMzcxLDM2Mi41MTQsNDUyLjI5NHogTTM2Mi41MTQsMjEzLjQ2NAoJYy00MC43NjMsMC4wMDktNzguMjM0LDIyLjM4Mi05Ny41NzksNTguMjU3Yy00Ljk0Nyw5LjA0MS04LjU3MiwxOC43NTctMTAuNzQ3LDI4LjgzYy0xLjY5Nyw3LjgyMi0yLjU1LDE1Ljc5Ny0yLjU1OSwyMy43OTgKCWMwLDYxLjI0Myw0OS42NDMsMTEwLjg4NSwxMTAuODg1LDExMC44ODVzMTEwLjg4NS00OS42NDIsMTEwLjg4NS0xMTAuODg1UzQyMy43NTYsMjEzLjQ2NCwzNjIuNTE0LDIxMy40NjR6Ii8+CjxwYXRoIGQ9Ik0zNzQuMjg1LDM0OS45MzloLTIzLjU0MmMtOC4yMzEsMC4wODUtMTUuMTU3LTYuMTQxLTE1Ljk1LTE0LjMzbC02LjM5Ny03OS40OTZjLTAuMzI0LTQuMjMxLDEuMTM0LTguNDAyLDQuMDA5LTExLjUxNQoJYzMuMDg4LTMuMzE4LDcuNDEyLTUuMjAzLDExLjk0Mi01LjIwM2gzNi4yNTFjNC41MjksMCw4Ljg1NCwxLjg4NSwxMS45NDEsNS4yMDNjMi45MDksMy4xMDUsNC4zOTMsNy4yNzYsNC4wOTQsMTEuNTE1CglsLTYuMzk3LDc5LjkyM0MzODkuMjM3LDM0NC4wNjIsMzgyLjM3MSwzNTAuMDQ5LDM3NC4yODUsMzQ5LjkzOXogTTM1MS43NjYsMzMyLjg3OWgyMS42NjVsNi4xNDEtNzYuNzY3aC0zNC4xMTlMMzUxLjc2NiwzMzIuODc5eiIKCS8+CjxwYXRoIGQ9Ik0zNjcuMDM0LDQxOC4xNzZoLTkuMDQxYy0xMS42MTctMC4wNDMtMjEuMDI2LTkuNDUxLTIxLjA2OC0yMS4wNjh2LTkuMDQxYzAuMDQzLTExLjYxNyw5LjQ1MS0yMS4wMjYsMjEuMDY4LTIxLjA2OGg4Ljk1NgoJYzExLjY1MSwwLDIxLjEwMiw5LjQxNywyMS4xNTMsMjEuMDY4djguOTU2QzM4OC4xMDMsNDA4LjY3NCwzNzguNjg2LDQxOC4xMzMsMzY3LjAzNCw0MTguMTc2eiBNMzU4LjA3OCwzODQuMDU3CgljLTIuMTkyLDAuMDQzLTMuOTY2LDEuODE3LTQuMDA5LDQuMDA5djguOTU2YzAuMDQzLDIuMTkyLDEuODE3LDMuOTY2LDQuMDA5LDQuMDA5aDguOTU2YzIuMTkyLTAuMDQzLDMuOTY2LTEuODE3LDQuMDA5LTQuMDA5Cgl2LTguOTU2Yy0wLjA0My0yLjE5Mi0xLjgxNy0zLjk2Ni00LjAwOS00LjAwOUgzNTguMDc4eiIvPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBjb3B5cmlnaHQgMjAxNyBibHVlZm94IGRvZ2Fmb3hAZ21haWwuY29tIC0tPgo8c3ZnIGlkPSJnbG93eSIgd2lkdGg9IjE3MCIgaGVpZ2h0PSIxNzAiIHZpZXdCb3g9Ii0yMCAtMjAgMTkwIDE5MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiPgoKICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgaWQ9IndoaXRlLWdsb3ciIHg9Ii01MDAwJSIgeT0iLTUwMDAlIiB3aWR0aD0iMTAwMDAlIiBoZWlnaHQ9IjEwMDAwJSI+CiAgICAgICAgICAgIDxmZUZsb29kIHJlc3VsdD0iZmxvb2QiIGZsb29kLWNvbG9yPSIjNzBDNUZGIiBmbG9vZC1vcGFjaXR5PSIxIj48L2ZlRmxvb2Q+CiAgICAgICAgICAgIDxmZUNvbXBvc2l0ZSBpbj0iZmxvb2QiIHJlc3VsdD0ibWFzayIgaW4yPSJTb3VyY2VHcmFwaGljIiBvcGVyYXRvcj0iaW4iPjwvZmVDb21wb3NpdGU+CiAgICAgICAgICAgIDxmZU1vcnBob2xvZ3kgaW49Im1hc2siIHJlc3VsdD0iZGlsYXRlZCIgb3BlcmF0b3I9ImRpbGF0ZSIgcmFkaXVzPSIyIj48L2ZlTW9ycGhvbG9neT4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIGluPSJkaWxhdGVkIiByZXN1bHQ9ImJsdXJyZWQiIHN0ZERldmlhdGlvbj0iNSI+PC9mZUdhdXNzaWFuQmx1cj4KICAgICAgICAgICAgPGZlTWVyZ2U+CiAgICAgICAgICAgICAgICA8ZmVNZXJnZU5vZGUgaW49ImJsdXJyZWQiPjwvZmVNZXJnZU5vZGU+CiAgICAgICAgICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgICAgICAgIDwvZmVNZXJnZT4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvZGVmcz4KCiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgIC5zdGF0ZSB7CiAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgIHN0cm9rZS13aWR0aDogNTsKICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICAgICAgICAgICAgc3Ryb2tlLW1pdGVybGltaXQ6IDEwOwogICAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHBhdGggY2xhc3M9InBhdGggc3RhdGUgc3RPZmYiIGQ9Ik0wLDEwOXYzNi4zYzAsNS4zLDMuNyw5LjcsOC4zLDkuN2g1MC4xdi0yM2gzN3YyM0gxNTNWODRIMGwyOC40LTI5VjEzaDE4LjF2MjRMNzYuNSwwbDY2LjIsNjkiIC8+Cjwvc3ZnPgoK\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDUxMS40NDggNTExLjQ0OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTExLjQ0OCA1MTEuNDQ4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxwYXRoIHN0eWxlPSJmaWxsOiMyMTk2RjM7IiBkPSJNMzQ0LjU1NiwxMTIuMjE2QzMxOC4zOCw3OC44NCwyOTEuMzQsNDQuMzQ0LDI2OS41MTYsNy4zMmMtNS43Ni05Ljc2LTIxLjgyNC05Ljc2LTI3LjU1MiwwCgljLTIxLjg1NiwzNy4wMjQtNDguODk2LDcxLjUyLTc1LjA3MiwxMDQuODk2Yy01My4wNTYsNjcuNjgtMTAzLjE2OCwxMzEuNjE2LTEwMy4xNjgsMjA3LjIzMmMwLDEwNS44ODgsODYuMTEyLDE5MiwxOTIsMTkyCglzMTkyLTg2LjExMiwxOTItMTkyQzQ0Ny43MjQsMjQzLjgzMiwzOTcuNjEyLDE3OS44OTYsMzQ0LjU1NiwxMTIuMjE2eiIvPgo8Zz4KCTxwYXRoIHN0eWxlPSJmaWxsOiNGQUZBRkE7IiBkPSJNMjA3LjcyNCwyODcuNDQ4Yy0yNi40NjQsMC00OC0yMS41MzYtNDgtNDhzMjEuNTM2LTQ4LDQ4LTQ4czQ4LDIxLjUzNiw0OCw0OAoJCVMyMzQuMTg4LDI4Ny40NDgsMjA3LjcyNCwyODcuNDQ4eiBNMjA3LjcyNCwyMjMuNDQ4Yy04LjgzMiwwLTE2LDcuMTY4LTE2LDE2czcuMTY4LDE2LDE2LDE2czE2LTcuMTY4LDE2LTE2CgkJUzIxNi41NTYsMjIzLjQ0OCwyMDcuNzI0LDIyMy40NDh6Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDojRkFGQUZBOyIgZD0iTTMwMy43MjQsNDQ3LjQ0OGMtMjYuNDY0LDAtNDgtMjEuNTM2LTQ4LTQ4czIxLjUzNi00OCw0OC00OHM0OCwyMS41MzYsNDgsNDgKCQlTMzMwLjE4OCw0NDcuNDQ4LDMwMy43MjQsNDQ3LjQ0OHogTTMwMy43MjQsMzgzLjQ0OGMtOC44LDAtMTYsNy4yLTE2LDE2czcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTYKCQlTMzEyLjUyNCwzODMuNDQ4LDMwMy43MjQsMzgzLjQ0OHoiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiNGQUZBRkE7IiBkPSJNMTc1LjcyNCw0MTUuNDQ4Yy00LjA5NiwwLTguMTkyLTEuNTY4LTExLjMyOC00LjY3MmMtNi4yNC02LjI0LTYuMjQtMTYuMzg0LDAtMjIuNjI0bDE2MC0xNjAKCQljNi4yNC02LjI0LDE2LjM4NC02LjI0LDIyLjYyNCwwczYuMjQsMTYuMzg0LDAsMjIuNjI0bC0xNjAsMTYwQzE4My45MTYsNDEzLjg4LDE3OS44Miw0MTUuNDQ4LDE3NS43MjQsNDE1LjQ0OHoiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIKCSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgoJIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCA1MDguMTYgNTA4LjE2IgoJIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUwOC4xNiA1MDguMTY7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik01MDQuMTgsMTMuNjdjLTAuMTQtMC4wMDEtMC4yODEsMC4wMDYtMC40MiwwLjAySDRjLTIuMjA5LDAtNCwxLjc5MS00LDR2NDcuMjhjMCwyLjIwOSwxLjc5MSw0LDQsNGgxOS43MmwtMTMuNDQsNDIuMDQKCQljLTAuNjg1LDIuMSwwLjQ2Myw0LjM1OCwyLjU2Myw1LjA0M2MwLjM5OSwwLjEzLDAuODE3LDAuMTk3LDEuMjM3LDAuMTk3aDkuNjRsLTEzLjQ0LDQyLjA0Yy0wLjY4NSwyLjEsMC40NjMsNC4zNTgsMi41NjMsNS4wNDMKCQljMC4zOTksMC4xMywwLjgxNywwLjE5NywxLjIzNywwLjE5N2g5LjY0bC0xMy40NCw0Mi4wNGMtMC42ODUsMi4xLDAuNDYzLDQuMzU4LDIuNTYzLDUuMDQzYzAuMzk5LDAuMTMsMC44MTcsMC4xOTcsMS4yMzcsMC4xOTcKCQloOS42NGwtMTMuNDQsNDIuMDRjLTAuNjg1LDIuMSwwLjQ2Myw0LjM1OCwyLjU2Myw1LjA0M2MwLjM5OSwwLjEzLDAuODE3LDAuMTk3LDEuMjM3LDAuMTk3aDkuNjRsLTEzLjQ0LDQyLjA4CgkJYy0wLjM4OSwxLjIwOC0wLjE4MSwyLjUyOSwwLjU2LDMuNTZjMC43NTUsMS4wMzQsMS45NiwxLjY0MywzLjI0LDEuNjRoOS42NGwtMTMuNDQsNDIuMDhjLTAuMzg5LDEuMjA4LTAuMTgxLDIuNTI5LDAuNTYsMy41NgoJCWMwLjc1NSwxLjAzNCwxLjk2LDEuNjQzLDMuMjQsMS42NGg5LjY0bC0xMy40NCw0Mi4wOGMtMC4zODksMS4yMDgtMC4xODEsMi41MjksMC41NiwzLjU2YzAuNzU1LDEuMDM0LDEuOTYsMS42NDMsMy4yNCwxLjY0aDkuNjQKCQlsLTEzLjQ0LDQyLjE2Yy0wLjM4OSwxLjIwOC0wLjE4MSwyLjUyOSwwLjU2LDMuNTZjMC43NTUsMS4wMzQsMS45NiwxLjY0MywzLjI0LDEuNjRoOS42NGwtMTMuNDQsNDIKCQljLTAuMzg5LDEuMjA4LTAuMTgxLDIuNTI5LDAuNTYsMy41NmMwLjc1NSwxLjAzNCwxLjk2LDEuNjQzLDMuMjQsMS42NGg0NzkuOGMxLjI4LDAuMDAzLDIuNDg1LTAuNjA2LDMuMjQtMS42NAoJCWMwLjc0MS0xLjAzMSwwLjk0OS0yLjM1MiwwLjU2LTMuNTZsLTEzLjQ0LTQyLjA4aDkuNjRjMS4yOCwwLjAwMywyLjQ4NS0wLjYwNiwzLjI0LTEuNjRjMC43NDEtMS4wMzEsMC45NDktMi4zNTIsMC41Ni0zLjU2CgkJbC0xMy40NC00Mi4wOGg5LjY0YzEuMjgsMC4wMDMsMi40ODUtMC42MDYsMy4yNC0xLjY0YzAuNzQxLTEuMDMxLDAuOTQ5LTIuMzUyLDAuNTYtMy41NmwtMTMuNDQtNDIuMDhoOS42NAoJCWMxLjI4LDAuMDAzLDIuNDg1LTAuNjA2LDMuMjQtMS42NGMwLjc0MS0xLjAzMSwwLjk0OS0yLjM1MiwwLjU2LTMuNTZsLTEzLjQ0LTQyLjA4aDkuNjRjMS4yOCwwLjAwMywyLjQ4NS0wLjYwNiwzLjI0LTEuNjQKCQljMC43NDEtMS4wMzEsMC45NDktMi4zNTIsMC41Ni0zLjU2bC0xMy42NC00Mi4wOGg5Ljg0YzIuMjA2LDAuMTEsNC4wODQtMS41OSw0LjE5NC0zLjc5NmMwLjAyNC0wLjQ4OS0wLjA0MS0wLjk3OC0wLjE5NC0xLjQ0NAoJCWwtMTMuNDQtNDIuMDRoOS40NGMyLjIwNiwwLjExLDQuMDg0LTEuNTksNC4xOTQtMy43OTZjMC4wMjQtMC40ODktMC4wNDEtMC45NzgtMC4xOTQtMS40NDRsLTEzLjQ0LTQyLjA0aDkuNDQKCQljMi4yMDYsMC4xMSw0LjA4NC0xLjU5LDQuMTk0LTMuNzk2YzAuMDI0LTAuNDg5LTAuMDQxLTAuOTc4LTAuMTk0LTEuNDQ0bC0xMy40NC00Mi4wNGg5LjQ0YzIuMjA2LDAuMTEsNC4wODQtMS41OSw0LjE5NC0zLjc5NgoJCWMwLjAyNC0wLjQ4OS0wLjA0MS0wLjk3OC0wLjE5NC0xLjQ0NGwtMTMuNDQtNDIuMDRoMTkuNzJjMi4yMDksMCw0LTEuNzkxLDQtNFYxNy42OUM1MDguMTcxLDE1LjQ4MSw1MDYuMzg5LDEzLjY4MSw1MDQuMTgsMTMuNjd6CgkJIE05OS4wOCw0ODYuNDlIMTkuNTZsMTIuNTYtMzkuMjhoNjYuOTZWNDg2LjQ5eiBNOTkuMDgsNDM5LjIxSDE5LjU2bDEyLjU2LTM5LjI4aDY2Ljk2VjQzOS4yMXogTTk5LjA4LDM5MS45M0gxOS41NmwxMi41Ni0zOS4yOAoJCWg2Ni45NlYzOTEuOTN6IE05OS4wOCwzNDQuNjVIMTkuNTZsMTIuNTYtMzkuMjhoNjYuOTZWMzQ0LjY1eiBNOTkuMDgsMjk3LjM3SDE5LjU2bDEyLjU2LTM5LjI4aDY2Ljk2VjI5Ny4zN3ogTTk5LjA4LDI1MC4wOQoJCUgxOS41NmwxMi41Ni0zOS4yOGg2Ni45NlYyNTAuMDl6IE05OS4wOCwyMDIuODFIMTkuNTZsMTIuNTYtMzkuMjhoNjYuOTZWMjAyLjgxeiBNOTkuMDgsMTU1LjUzSDE5LjU2bDEyLjU2LTM5LjI4aDY2Ljk2VjE1NS41M3oKCQkgTTk5LjA4LDEwOC4yNUgxOS41NmwxMi41Ni0zOS4yOGg2Ni45NlYxMDguMjV6IE0xMjUuODgsNDg2LjQ5aC0xOC44di0zOS4yOGgxOC44VjQ4Ni40OXogTTEyNS44OCw0MzkuMjFoLTE4Ljh2LTM5LjI4aDE4LjgKCQlWNDM5LjIxeiBNMTI1Ljg4LDM5MS45M2gtMTguOHYtMzkuMjhoMTguOFYzOTEuOTN6IE0xMjUuODgsMzQ0LjY1aC0xOC44di0zOS4yOGgxOC44VjM0NC42NXogTTEyNS44OCwyOTcuMzdoLTE4Ljh2LTM5LjI4aDE4LjgKCQlWMjk3LjM3eiBNMTI1Ljg4LDI1MC4wOWgtMTguOHYtMzkuMjhoMTguOFYyNTAuMDl6IE0xMjUuODgsMjAyLjgxaC0xOC44di0zOS4yOGgxOC44VjIwMi44MXogTTEyNS44OCwxNTUuNTNoLTE4Ljh2LTM5LjI4aDE4LjgKCQlWMTU1LjUzeiBNMTI2LjA0LDEwOC4yNWgtMTguOTZWNjguOTdoMTguOTZWMTA4LjI1eiBNMzczLjg4LDQ4Ni40OWgtMjQwdi0zOS4yOGgyNDBWNDg2LjQ5eiBNMTMzLjg4LDQzOS4yMXYtMzkuMjhoMjM5LjY4djM5LjI4CgkJSDEzMy44OHogTTM3My44OCwzOTEuOTNoLTI0MHYtMzkuMjhoMjQwVjM5MS45M3ogTTM3My44OCwzNDQuNjVoLTI0MHYtMzkuMjhoMjQwVjM0NC42NXogTTM3My44OCwyOTcuMzdoLTI0MHYtMzkuMjhoMjQwVjI5Ny4zN3oKCQkgTTM3My44OCwyNTAuMDloLTI0MHYtMzkuMjhoMjQwVjI1MC4wOXogTTM3My44OCwyMDIuODFoLTI0MHYtMzkuMjhoMjQwVjIwMi44MXogTTM3My44OCwxNTUuNTNoLTI0MHYtMzkuMjhoMjQwVjE1NS41M3oKCQkgTTEzMy44OCwxMDguMjVWNjguOTdoMjM5Ljg0djM5LjI4SDEzMy44OHogTTQwMC41Miw0ODYuNDloLTE4LjY0bC0wLjMyLTM5LjI4aDE4Ljk2VjQ4Ni40OXogTTQwMC41Miw0MzkuMjFoLTE4Ljk2di0zOS4yOGgxOC45NgoJCVY0MzkuMjF6IE00MDAuNTIsMzkxLjkzaC0xOC45NnYtMzkuMjhoMTguOTZWMzkxLjkzeiBNNDAwLjUyLDM0NC42NWgtMTguOTZ2LTM5LjI4aDE4Ljk2VjM0NC42NXogTTQwMC44NCwyOTcuMzdoLTE4Ljk2di0zOS4yOAoJCWgxOC45NlYyOTcuMzd6IE00MDAuODQsMjUwLjA5aC0xOC45NnYtMzkuMjhoMTguOTZWMjUwLjA5eiBNNDAwLjg0LDIwMi44MWgtMTguOTZ2LTM5LjI4aDE4Ljk2VjIwMi44MXogTTQwMC44NCwxNTUuNTNoLTE4Ljk2CgkJdi0zOS4yOGgxOC45NlYxNTUuNTN6IE0zODEuODgsMTA4LjI1VjY4Ljk3aDE4Ljh2MzkuMjhIMzgxLjg4eiBNNDQ1LjQ0LDExNi4yNXYzOS4yOGgtMzYuOTJ2LTM5LjI4SDQ0NS40NHogTTQwOC42OCwxMDguMjVWNjguOTcKCQloMzYuOTJ2MzkuMjhINDA4LjY4eiBNNDQ1LjQ0LDE2My41M3YzOS4yOGgtMzYuOTJ2LTM5LjI4SDQ0NS40NHogTTQ0NS40NCwyMTAuODF2MzkuMjhoLTM2Ljkydi0zOS4yOEg0NDUuNDR6IE00NDUuNDQsMjU4LjA5CgkJdjM5LjI4aC0zNi45MnYtMzkuMjhINDQ1LjQ0eiBNNDQ1LjQ0LDMwNS4zN3YzOS4yOGgtMzYuNzZsLTAuMTYtMzkuMjhINDQ1LjQ0eiBNNDg4LjEyLDQ4Ni40OWgtNzkuNDR2LTM5LjI4aDY2Ljk2TDQ4OC4xMiw0ODYuNDkKCQl6IE00ODguMTIsNDM5LjIxaC03OS40NHYtMzkuMjhoNjYuOTZMNDg4LjEyLDQzOS4yMXogTTQ4OC4xMiwzOTEuOTNoLTc5LjQ0di0zOS4yOGgzNi45MnYxNy40NGMwLDIuMjA5LDEuNzkxLDQsNCw0CgkJYzIuMjA5LDAsNC0xLjc5MSw0LTR2LTE3LjQ0aDIyLjA0TDQ4OC4xMiwzOTEuOTN6IE00ODguMTIsMzQ0LjY1aC0zNC42di0zOS4yOGgyMi4wNEw0ODguMTIsMzQ0LjY1eiBNNDg4LjEyLDI5Ny4zN2gtMzQuNnYtMzkuMjgKCQloMjIuMDRMNDg4LjEyLDI5Ny4zN3ogTTQ4OC4xMiwyNTAuMDloLTM0LjZ2LTM5LjI4aDIyLjA0TDQ4OC4xMiwyNTAuMDl6IE00ODguMTIsMjAyLjgxaC0zNC42di0zOS4yOGgyMi4wNEw0ODguMTIsMjAyLjgxegoJCSBNNDg4LjEyLDE1NS41M2gtMzQuNnYtMzkuMjhoMjIuMDRMNDg4LjEyLDE1NS41M3ogTTQ4OC4xMiwxMDguMjVoLTM0LjZWNjguOTdoMjIuMDRMNDg4LjEyLDEwOC4yNXogTTQ5OS42OCw2MC45N0g4VjIxLjY5CgkJaDQ5MS43Nkw0OTkuNjgsNjAuOTd6IiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9nPgo8Zz4KCTxwYXRoIGQ9Ik00NTQuMzIsMzcuMzNoLTEzLjc2Yy0yLjIwOSwwLTQsMS43OTEtNCw0YzAsMi4yMDksMS43OTEsNCw0LDRoMTMuNzZjMi4yMDksMCw0LTEuNzkxLDQtNAoJCUM0NTguMzIsMzkuMTIxLDQ1Ni41MjksMzcuMzMsNDU0LjMyLDM3LjMzeiIgIGZpbGw9ImN1cnJlbnRDb2xvciIvPgo8L2c+CjxnPgoJPHBhdGggZD0iTTQxNC44NCwzNy4zM2gtOTZjLTIuMjA5LDAtNCwxLjc5MS00LDRjMCwyLjIwOSwxLjc5MSw0LDQsNGg5NmMyLjIwOSwwLDQtMS43OTEsNC00CgkJQzQxOC44NCwzOS4xMjEsNDE3LjA0OSwzNy4zMyw0MTQuODQsMzcuMzN6IiAgZmlsbD0iY3VycmVudENvbG9yIi8+CjwvZz4KPC9zdmc+Cg==\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDI0Ljk4NiAyNC45ODYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI0Ljk4NiAyNC45ODY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7IiBkPSJNMTcuNTQ4LDE3Ljk2MWwtMC43NzEtMC43NjljMCwwLTEuMjI1LDEuMzA1LTEuMzA0LDEuMzA1Yy0wLjA4MSwwLTEuMzA4LTEuMzA1LTEuMzA4LTEuMzA1CgkJbC0wLjc3MSwwLjc2OWMwLDAsMS4zMDYsMS4xOTgsMS4zMDYsMS4zMDhjMCwwLjEwNi0xLjMwNiwxLjMwOC0xLjMwNiwxLjMwOGwwLjc3MSwwLjc2N2MwLDAsMS4yMTctMS4zMDUsMS4zMDgtMS4zMDUKCQljMC4wODksMCwxLjMwNCwxLjMwNSwxLjMwNCwxLjMwNWwwLjc3MS0wLjc2N2MwLDAtMS4zMDctMS4yMTgtMS4zMDctMS4zMDhDMTYuMjQyLDE5LjE3NywxNy41NDgsMTcuOTYxLDE3LjU0OCwxNy45NjF6Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7IiBkPSJNMTUuNDcyLDE0LjQzNWMtMi42NjcsMC00LjgzLDIuMTY0LTQuODMsNC44MzFzMi4xNjMsNC44Myw0LjgzLDQuODNzNC44My0yLjE2Myw0LjgzLTQuODMKCQlTMTguMTM5LDE0LjQzNSwxNS40NzIsMTQuNDM1eiBNMTUuNDcyLDIzLjM0OGMtMi4yNTIsMC00LjA4MS0xLjgyOC00LjA4MS00LjA4MmMwLTIuMjU5LDEuODI5LTQuMDgxLDQuMDgxLTQuMDgxCgkJYzIuMjU0LDAsNC4wODIsMS44MjIsNC4wODIsNC4wODFDMTkuNTU0LDIxLjUyLDE3LjcyNiwyMy4zNDgsMTUuNDcyLDIzLjM0OHoiLz4KCTxjaXJjbGUgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgY3g9IjEwLjA2IiBjeT0iMi4yMDciIHI9IjIuMjA3Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7IiBkPSJNMTAuMiwyMC40NzZ2My4yNmwwLjAwOSwwLjAwOWMwLjAwOSwwLjY4OCwwLjU2NSwxLjIzOCwxLjI1MSwxLjIzOAoJCWMwLjY0MywwLDEuMTY3LTAuNDg3LDEuMjM2LTEuMTFjLTAuMDgzLTAuMDUyLTAuMTczLTAuMDkzLTAuMjUzLTAuMTQ2QzExLjMzLDIyLjk3NiwxMC41MTcsMjEuODIxLDEwLjIsMjAuNDc2eiIvPgoJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgZD0iTTEyLjQ1NSwxNC43MjRjMC4wOC0wLjA1NywwLjE2OC0wLjA5NywwLjI1My0wLjE0NmwtMC4wMDItNi42ODdoMC42MDZ2NS4wNDcKCQljMCwwLjAwMywwLDAuMDA2LDAsMC4wMDdjMCwwLjUxNiwwLjQxNywwLjkzMiwwLjkzMiwwLjkzMmMwLjUxNiwwLDAuOTMzLTAuNDE2LDAuOTMzLTAuOTMyYzAtMC4wMDEsMC0wLjAwNCwwLTAuMDA3VjcuNTEKCQljLTAuMjA2LTIuNDItMy4wMTMtMi4zODUtMy4wMTMtMi4zODVINy43NEM0LjU3Miw1LjE4NSw0LjY4NSw3LjUxLDQuNjg1LDcuNTFsLTAuMDAxLDUuNDI4aDAuMDAzCgkJYy0wLjAwMiwwLjAxNC0wLjAwMiwwLjAyNS0wLjAwMiwwLjA0YzAsMC41MTUsMC40MTcsMC45MzIsMC45MzIsMC45MzJjMC41MTQsMCwwLjkyOS0wLjQxNywwLjkyOS0wLjkzMgoJCWMwLTAuMDE1LDAtMC4wMjUtMC4wMDEtMC4wNGgwLjAwMVY3LjkxNEg3LjEzTDcuMTIzLDIzLjcyNWMwLDAuNjkzLDAuNTYyLDEuMjYxLDEuMjU3LDEuMjYxczEuMjU3LTAuNTY1LDEuMjU3LTEuMjYxVjEzLjUyMwoJCWgwLjU2MnY0LjQ1N0MxMC41MTcsMTYuNjI5LDExLjMzNiwxNS40NzQsMTIuNDU1LDE0LjcyNHoiLz4KPC9nPgoKPC9zdmc+Cg==\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDYzLjkwNyA2My45MDciIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvcjtlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDYzLjkwNyA2My45MDc7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiCgk+CjxnPgoJPGNpcmNsZSBjeD0iMzAuNTE1IiBjeT0iNi4xMzYiIHI9IjYuMTM2Ii8+Cgk8cGF0aCBkPSJNNDcuMzk5LDI3LjQ1NUM0Mi4zNDYsMjQuNTMsMzguMiwyMC41NzksMzQuNzEsMTUuOTMxYy0yLjE5My0zLjA4NC03Ljk5MS0yLjkyMy0xMC4zNDctMC4wOTcKCQljLTMuNTg0LDMuNDg3LTYuNjI1LDcuMDgxLTkuMDM3LDEwLjY3N2MtMC45ODYsMS40NzMtMC41OTQsMy40NjYsMC44NzgsNC40NTJjMC41NDksMC4zNjgsMS4xNjgsMC41NDQsMS43ODMsMC41NDQKCQljMS4wMzQsMCwyLjA1LTAuNDk5LDIuNjY4LTEuNDIzYzEuMDU5LTEuNTc3LDIuMjYtMy4xNTksMy41OS00LjczNGMtMC4wNTEsMy4zMzMsMC4xMTYsOS4zNDcsMC4yLDEyLjA1CgkJYzAuMDI4LDAuOS0wLjE3NywxLjc4LTAuNTk1LDIuNTc5Yy0zLjMwOCw2LjMxNy01LjQyNCwxMi4yOTQtNy41NzIsMTkuNjA2Yy0wLjUyNiwxLjc4NSwwLjQ5NywzLjY1OCwyLjI4MSw0LjE4MwoJCWMwLjQwNCwwLjExOSwwLjgxMiwwLjE1OSwxLjIwNiwwLjEyOWMxLjM1OC0wLjEwNCwyLjU3Mi0xLjAyOSwyLjk3OC0yLjQxMWMxLjk4Mi02Ljc0MiwzLjg5Ny0xMi4yMDEsNi44ODQtMTcuOTgxCgkJYzAuMTUyLDAuMDA2LDAuMzA0LDAuMDA2LDAuNDU4LTAuMDAxYzEuOTA3LDUuNjksMy44MTUsMTEuMzgzLDUuNzI1LDE3LjA3M2MxLjM4Nyw0LjE0Nyw3LjgyMiwxLjk5Myw2LjQzMS0yLjE1NQoJCWMtMi4wODctNi4yMjEtNC4xNzEtMTIuNDM5LTYuMjUxLTE4LjY1OWMtMC4xMjEtMC4zNTctMC40MTQtMS43NTUtMC40NTUtMi4yMTFjLTAuMzQ0LTMuODMyLTAuNDY5LTcuNjUyLTAuNDMyLTExLjQ3NwoJCWMyLjkyOCwyLjgwNSw2LjE3NSw1LjIzOCw5Ljc4Miw3LjMyOEM0OC40ODIsMzUuNDkxLDUwLjk0OCwyOS41MTIsNDcuMzk5LDI3LjQ1NXoiLz4KPC9nPgo8L3N2Zz4K\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjM2NS40NDVweCIgaGVpZ2h0PSIzNjUuNDQ1cHgiIHZpZXdCb3g9IjAgMCAzNjUuNDQ1IDM2NS40NDUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM2NS40NDUgMzY1LjQ0NTsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnIHN0eWxlPSJmaWxsOiBjdXJyZW50Q29sb3IiID4KCTxwYXRoIHN0eWxlPSJmaWxsOiBjdXJyZW50Q29sb3IiIGQ9Ik0xNDYuNywxNjIuNzc1aC0yNi44Yy0zLjY2NSwwLTYuNjQ3LDIuOTgyLTYuNjQ3LDYuNjQ3djI2LjYwMmMwLDMuNjY2LDIuOTgyLDYuNjQ2LDYuNjQ3LDYuNjQ2aDI2LjgKCQljMy42NjYsMCw2LjY0Ny0yLjk4Miw2LjY0Ny02LjY0NnYtMjYuNjAyQzE1My4zNDcsMTY1Ljc1NywxNTAuMzY1LDE2Mi43NzUsMTQ2LjcsMTYyLjc3NXoiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiBjdXJyZW50Q29sb3IiIGQ9Ik0yNDUuNTQ3LDE2Mi43NzVoLTI2LjgwMWMtMy42NjYsMC02LjY0NiwyLjk4Mi02LjY0Niw2LjY0N3YyNi42MDJjMCwzLjY2NiwyLjk4MSw2LjY0Niw2LjY0Niw2LjY0NmgyNi44MDEKCQljMy42NjQsMCw2LjY0Ni0yLjk4Miw2LjY0Ni02LjY0NnYtMjYuNjAyQzI1Mi4xOTMsMTY1Ljc1NywyNDkuMjExLDE2Mi43NzUsMjQ1LjU0NywxNjIuNzc1eiIvPgo8L2c+CjxwYXRoICBzdHlsZT0iZmlsbDogY3VycmVudENvbG9yIiBkPSJNMzQ1LjQ0NSwxLjIwNEgyMGMtMTEuMDQ2LDAtMjAsOC45NTQtMjAsMjB2MzIzLjAzN2MwLDExLjA0NSw4Ljk1NCwyMCwyMCwyMGgzMjUuNDQ1YzExLjA0NSwwLDIwLTguOTU1LDIwLTIwVjIxLjIwNAoJQzM2NS40NDUsMTAuMTU5LDM1Ni40OTIsMS4yMDQsMzQ1LjQ0NSwxLjIwNHogTTE4Mi43MjMsMjg3LjY2Yy01Ny45NTUsMC0xMDQuOTM3LTQ2Ljk4MS0xMDQuOTM3LTEwNC45MzcKCWMwLTU3Ljk1Nyw0Ni45ODItMTA0LjkzOCwxMDQuOTM3LTEwNC45MzhjNTcuOTU1LDAsMTA0LjkzNyw0Ni45ODIsMTA0LjkzNywxMDQuOTM4QzI4Ny42NiwyNDAuNjc5LDI0MC42NzgsMjg3LjY2LDE4Mi43MjMsMjg3LjY2Cgl6Ii8+Cgo8L3N2Zz4K\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgd2lkdGg9IjQ1LjY1OXB4IiBoZWlnaHQ9IjQ1LjY1OXB4IiB2aWV3Qm94PSIwIDAgNDUuNjU5IDQ1LjY1OSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDUuNjU5IDQ1LjY1OTsiCgkgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTMwLjYxOSwyNy4zMDlWNy43ODFDMzAuNjE5LDMuNDksMjcuMTI0LDAsMjIuODMzLDBjLTQuMjksMC03Ljc4NSwzLjQ5MS03Ljc4NSw3Ljc4djE5LjUyOAoJCWMtMS45MDIsMS45NDktMy4wNSw0LjYwNC0zLjA1LDcuNTIyYzAsNS45NzIsNC44NTcsMTAuODI4LDEwLjgyOSwxMC44MjhjNS45NywwLDEwLjgzNC00Ljg1NiwxMC44MzQtMTAuODI4CgkJQzMzLjY2MSwzMS45MTIsMzIuNTIsMjkuMjU4LDMwLjYxOSwyNy4zMDl6IE0yMi44MjUsNDIuNjZjLTQuMzE2LDAtNy44MjQtMy41MTItNy44MjQtNy44MjhjMC0yLjUyNywxLjE3NC00Ljc3OSwzLjA3Ny02LjIxMQoJCVYxNi4yMzdoMy4zNzJjMC41NTIsMCwxLTAuNDcsMS0xLjAyMmMwLTAuNTUzLTAuNDQ4LTEuMDIxLTEtMS4wMjFoLTMuMzcydi0yLjQ2NmgzLjM3MmMwLjU1MiwwLDEtMC40MzQsMS0wLjk4NgoJCWMwLTAuNTUyLTAuNDQ4LTAuOTg2LTEtMC45ODZoLTMuMzcyVjcuNzhjMC0yLjYzNiwyLjExOS00Ljc4LDQuNzU0LTQuNzhjMi42MzcsMCw0Ljc1NiwyLjE0NCw0Ljc1Niw0Ljc4MXYyMC44NzEKCQljMS45MDMsMS40MzQsMy4wNDcsMy42NzEsMy4wNDcsNi4xOEMzMC42MzUsMzkuMTQ4LDI3LjE0MSw0Mi42NiwyMi44MjUsNDIuNjZ6Ii8+Cgk8cGF0aCBkPSJNMjUuMzM0LDMwLjQ2M1YxOC42MzJoLTUuMDAydjExLjgzMWMtMS41NDksMC44NzQtMi41MzcsMi41MDItMi41MzcsNC4zNjljMCwyLjc4OCwyLjI1MSw1LjA0Niw1LjAzOCw1LjA0NgoJCWMyLjc4OCwwLDUuMDM0LTIuMjU4LDUuMDM0LTUuMDQ2QzI3Ljg2NywzMi45NjYsMjYuODg1LDMxLjMzNywyNS4zMzQsMzAuNDYzeiIvPgo8L2c+Cjwvc3ZnPgo=\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkNhcGFfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDUxMiA1MTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNMzQxLjMzMywyODguNTkzVjg1LjMzM0MzNDEuMzMzLDM4LjIwNSwzMDMuMTI4LDAsMjU2LDBzLTg1LjMzMywzOC4yMDUtODUuMzMzLDg1LjMzM3YyMDMuMjU5CgkJQzE0NC40OCwzMTIuMDMsMTI4LDM0Ni4wOTEsMTI4LDM4NGMwLDcwLjY5Myw1Ny4zMDgsMTI4LDEyOCwxMjhzMTI4LTU3LjMwNywxMjgtMTI4QzM4NCwzNDYuMDkxLDM2Ny41MiwzMTIuMDMsMzQxLjMzMywyODguNTkzegoJCSBNMjU2LDQ2OS4zMzNjLTQ3LjEyOCwwLTg1LjMzMy0zOC4yMDUtODUuMzMzLTg1LjMzM2MwLTI0LjYzNywxMC40NDEtNDcuNDkyLDI4LjQ1NS02My42MTVsMTQuMjEyLTEyLjcyVjg1LjMzMwoJCWMwLTIzLjU2NCwxOS4xMDMtNDIuNjY3LDQyLjY2Ny00Mi42NjdzNDIuNjY3LDE5LjEwMiw0Mi42NjcsNDIuNjY3djIyMi4zMzJsMTQuMjEyLDEyLjcyCgkJYzE4LjAxNCwxNi4xMjMsMjguNDU1LDM4Ljk3NywyOC40NTUsNjMuNjE1QzM0MS4zMzMsNDMxLjEyOCwzMDMuMTI4LDQ2OS4zMzMsMjU2LDQ2OS4zMzN6Ii8+CjwvZz4KPGc+Cgk8cmVjdCB4PSIyMzQuNjY3IiB5PSIxNzAuNjY3IiB3aWR0aD0iNDIuNjY3IiBoZWlnaHQ9IjI1NiIvPgo8L2c+CjxnPgoJPGNpcmNsZSBjeD0iMjU2IiBjeT0iMzg0IiByPSI2NCIvPgo8L2c+Cjwvc3ZnPgo=\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIzNjFweCIKCSBoZWlnaHQ9IjM2MXB4IiB2aWV3Qm94PSIwIDAgMzYxIDM2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzYxIDM2MTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTsgc3Ryb2tlOiBjdXJyZW50Q29sb3I7c3Ryb2tlLXdpZHRoOjEwO3N0cm9rZS1taXRlcmxpbWl0OjEwOyIgZD0iTTI2Ny44MjYsMjYzLjMwM2MwLDMuOTEtMy4xNTYsNy4wODItNy4wNSw3LjA4MgoJCWwtMTU3Ljg4NSwwLjAyMWMtMy44OTQsMC03LjA1LTMuMTcxLTcuMDUtNy4wODN2LTE1Ny41YzAtMy45MTEsMy4xNTYtNy4wODMsNy4wNS03LjA4M2wxNTcuODg1LTAuMDIxCgkJYzMuODk0LDAsNy4wNSwzLjE3Miw3LjA1LDcuMDgzVjI2My4zMDN6Ii8+Cgk8Zz4KCQk8cGF0aCBzdHlsZT0iZmlsbDogY3VycmVudENvbG9yOyIgZD0iTTI1OC41LDE4NS41ODRjMi4yMTMsMCw0LjQyNiwwLDYuNjM5LDBjMi43MjYsMCw1LTIuMjc0LDUtNXMtMi4yNzQtNS01LTUKCQkJYy0yLjIxMywwLTQuNDI2LDAtNi42MzksMGMtMi43MjYsMC01LDIuMjc0LTUsNVMyNTUuNzc0LDE4NS41ODQsMjU4LjUsMTg1LjU4NEwyNTguNSwxODUuNTg0eiIvPgoJPC9nPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTsgc3Ryb2tlOiBjdXJyZW50Q29sb3I7IHN0cm9rZS13aWR0aDogMTA7IHN0cm9rZS1taXRlcmxpbWl0OiAxMDsiIGQ9Ik0yNjcuODI2LDEwMy4yMDhjMCwyLjQ4NS0yLjcxMSw0LjUtNi4wNTMsNC41CgkJbC0xNTkuODgsMC4wMjFjLTMuMzQyLDAtNi4wNTItMi4wMTUtNi4wNTItNC41di05YzAtMi40ODUsMi43MS00LjUsNi4wNTItNC41bDE1OS44OC0wLjAyMWMzLjM0MiwwLDYuMDUzLDIuMDE1LDYuMDUzLDQuNVYxMDMuMjA4CgkJeiIvPgo8L3N2Zz4K\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIzNjFweCIKCSBoZWlnaHQ9IjM2MXB4IiB2aWV3Qm94PSIwIDAgMzYxIDM2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzYxIDM2MTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDsiIGQ9Ik0yNjcuODI2LDI2My4zMDNjMCwzLjkxLTMuMTU2LDcuMDgyLTcuMDUsNy4wODIKCQlsLTE1Ny44ODUsMC4wMjFjLTMuODk0LDAtNy4wNS0zLjE3MS03LjA1LTcuMDgzdi0xNTcuNWMwLTMuOTExLDMuMTU2LTcuMDgzLDcuMDUtNy4wODNsMTU3Ljg4NS0wLjAyMQoJCWMzLjg5NCwwLDcuMDUsMy4xNzIsNy4wNSw3LjA4M1YyNjMuMzAzeiIvPgoJPGc+CgkJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgZD0iTTIyOC41LDIwNS41ODRjMi4yMTMsMCw0LjQyNiwwLDYuNjM5LDBjMi43MjYsMCw1LTIuMjc0LDUtNXMtMi4yNzQtNS01LTUKCQkJYy0yLjIxMywwLTQuNDI2LDAtNi42MzksMGMtMi43MjYsMC01LDIuMjc0LTUsNVMyMjUuNzc0LDIwNS41ODQsMjI4LjUsMjA1LjU4NEwyMjguNSwyMDUuNTg0eiIvPgoJPC9nPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDsiIGQ9Ik0yNjcuODI2LDEwMy4yMDhjMCwyLjQ4NS0yLjcxMSw0LjUtNi4wNTMsNC41CgkJbC0xNTkuODgsMC4wMjFjLTMuMzQyLDAtNi4wNTItMi4wMTUtNi4wNTItNC41di05YzAtMi40ODUsMi43MS00LjUsNi4wNTItNC41bDE1OS44OC0wLjAyMWMzLjM0MiwwLDYuMDUzLDIuMDE1LDYuMDUzLDQuNVYxMDMuMjA4CgkJeiIvPgoJPGc+CgkJPHBhdGggc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yOyIgZD0iTTIzMi44MjYsMjgwLjkwNWMtMC4zMzksMy4zNTYtMTguODEzLTAuNzgyLTIwLjkxOS0xLjA2Yy0xNS4wMjQtMS45OC0zMC4wNDktMy45Ni00NS4wNzMtNS45NAoJCQljLTE1LjAyNS0xLjk4LTMwLjA0OS0zLjk2LTQ1LjA3NC01Ljk0Yy00LjgzNS0wLjYzOC05LjY3MS0xLjI3NS0xNC41MDctMS45MTJjLTEuNDU2LTAuMTkyLTYuMjAxLTAuMDU1LTYuNDEyLTIuMTQ3CgkJCWMtMC42MjEtNi4xNTcsMC0xMi42OTksMC0xOC44NzhjMC0xNC41LDAtMjksMC00My41YzAtMjcuMzU5LDAtNTQuNzE4LDAtODIuMDc2YzAtMS43MSwwLTMuNDIsMC01LjEzCgkJCWMwLTIuNTUxLDUuMTg0LTEuMDE1LDYuNDEyLTAuODUzYzExLjgxMywxLjU1NywyMy42MjUsMy4xMTQsMzUuNDM4LDQuNjdjMjcuOTA4LDMuNjc4LDU1LjgxNiw3LjM1Niw4My43MjMsMTEuMDM1CgkJCWMxLjQ1NywwLjE5Miw2LjIwMSwwLjA1NSw2LjQxMiwyLjE0N2MwLjE2OSwxLjY3MywwLDMuNDUxLDAsNS4xM2MwLDExLjIxNywwLDIyLjQzNCwwLDMzLjY1MWMwLDMwLjY0MiwwLDYxLjI4MywwLDkxLjkyNQoJCQlDMjMyLjgyNiwyNjguMzIsMjMyLjgyNiwyNzQuNjEyLDIzMi44MjYsMjgwLjkwNWMwLDYuNDQ4LDEwLDYuNDQ4LDEwLDBjMC00OC4xNTEsMC05Ni4zMDMsMC0xNDQuNDU0YzAtMS43MSwwLTMuNDIsMC01LjEzCgkJCWMwLTcuNjE5LTYuMTM3LTEwLjc5My0xMi42NzMtMTEuNjU1Yy05LjUxMS0xLjI1My0xOS4wMjEtMi41MDctMjguNTMxLTMuNzZjLTI5LjQ3LTMuODg0LTU4Ljk0LTcuNzY4LTg4LjQxMS0xMS42NTIKCQkJYy0zLjI5OS0wLjQzNS02LjU5OC0wLjg3LTkuODk3LTEuMzA0Yy02LjU1NS0wLjg2NC0xMi40NzMsNC45LTEyLjQ3MywxMS4zOGMwLDYuNTIxLDAsMTMuMDQyLDAsMTkuNTYzCgkJCWMwLDMwLjcwNSwwLDYxLjQxLDAsOTIuMTE1YzAsMTEuMDUyLDAsMjIuMTA0LDAsMzMuMTU0YzAsMi4wMjMtMC4wNzEsNC4wNCwwLjEzMiw2LjA1M2MwLjcxNyw3LjExMSw2LjYwNiw5LjU2MywxMi43NTksMTAuMzc0CgkJCWMyNS42MDksMy4zNzUsNTEuMjE4LDYuNzUsNzYuODI3LDEwLjEyNWMxMy4yOTksMS43NTMsMjYuNTk4LDMuNTA2LDM5Ljg5Niw1LjI1OWMzLjIzMiwwLjQyNiw2LjQ2NSwwLjg1Miw5LjY5NywxLjI3OAoJCQljNy4wNjMsMC45MzEsMTIuMDExLTQuNzc4LDEyLjY3My0xMS4zNDZDMjQzLjQ3MywyNzQuNDksMjMzLjQ2NywyNzQuNTUzLDIzMi44MjYsMjgwLjkwNXoiLz4KCTwvZz4KPC9zdmc+Cg==\",\n \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIzNjFweCIKCSBoZWlnaHQ9IjM2MXB4IiB2aWV3Qm94PSIwIDAgMzYxIDM2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzYxIDM2MTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDsiIGQ9Ik0yNjcuODI2LDI2My4zMDNjMCwzLjkxLTMuMTU2LDcuMDgyLTcuMDUsNy4wODIKCQlsLTE1Ny44ODUsMC4wMjFjLTMuODk0LDAtNy4wNS0zLjE3MS03LjA1LTcuMDgzdi0xNTcuNWMwLTMuOTExLDMuMTU2LTcuMDgzLDcuMDUtNy4wODNsMTU3Ljg4NS0wLjAyMQoJCWMzLjg5NCwwLDcuMDUsMy4xNzIsNy4wNSw3LjA4M1YyNjMuMzAzeiIvPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDsiIGQ9Ik0yNjcuODI2LDEwMy4yMDhjMCwyLjQ4NS0yLjcxMSw0LjUtNi4wNTMsNC41CgkJbC0xNTkuODgsMC4wMjFjLTMuMzQyLDAtNi4wNTItMi4wMTUtNi4wNTItNC41di05YzAtMi40ODUsMi43MS00LjUsNi4wNTItNC41bDE1OS44OC0wLjAyMWMzLjM0MiwwLDYuMDUzLDIuMDE1LDYuMDUzLDQuNVYxMDMuMjA4CgkJeiIvPgoJPHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDsiIGQ9Ik0yNjUuNzMyLDI2NS4xNzgKCQljMC41ODQsMi44ODctMS42MjksNS4yMjgtNC45NDIsNS4yMjhIMTAzLjQ1N2MtMy4zMTMsMC02LjQ3NC0yLjM0MS03LjA1OC01LjIyOEw3NS4yNCwxMzAuNjMzCgkJYy0wLjU4NC0yLjg4NywxLjYyOC01LjIyOCw0Ljk0Mi01LjIyOGgxNTcuMzMzYzMuMzEzLDAsNi40NzQsMi4zNCw3LjA1OCw1LjIyOEwyNjUuNzMyLDI2NS4xNzh6Ii8+Cgk8Zz4KCQk8cGF0aCBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3I7IiBkPSJNMjQ3LjE5NCwxOTkuNjY3YzIuMjEzLDAsNC40MjYsMCw2LjYzOSwwYzIuNzI2LDAsNS0yLjI3NCw1LTVzLTIuMjc0LTUtNS01CgkJCWMtMi4yMTMsMC00LjQyNiwwLTYuNjM5LDBjLTIuNzI2LDAtNSwyLjI3NC01LDVTMjQ0LjQ2OSwxOTkuNjY3LDI0Ny4xOTQsMTk5LjY2N0wyNDcuMTk0LDE5OS42Njd6Ii8+Cgk8L2c+Cjwvc3ZnPgo=\",\n ];\n}\nexport default IconList;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Dropzone from 'react-dropzone';\n\nimport {MdDelete as IconDelete} from 'react-icons/md';\nimport {MdFileUpload as IconOpen} from 'react-icons/md';\nimport {MdClose as IconClose} from 'react-icons/md';\nimport {MdCameraAlt as IconCam} from 'react-icons/md';\n\nimport Button from '@material-ui/core/Button';\nimport PropTypes from 'prop-types';\nimport ImageList from './ImageList';\nimport ReactCrop/*, { makeAspectCrop } */from 'react-image-crop';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport 'react-image-crop/dist/ReactCrop.css'\n\n// Icons\nimport IconList from '../../icons/icons';\nimport I18n from \"../../i18n\";\n\nconst style = {\n label: {\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: 12,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n lineHeight: 1,\n paddingTop: 10,\n paddingBottom: 5\n },\n dropzone: {\n marginTop: 20,\n width: '100%',\n height: 65,\n border: '2px dashed black',\n textAlign: 'center',\n paddingTop: 45,\n borderRadius: 10\n },\n dropzoneRejected: {\n border: '2px dashed red',\n },\n dropzoneAccepted: {\n border: '2px dashed green',\n },\n deleteIcon: {\n color: 'white',\n opacity: 0.9,\n position: 'absolute',\n top: 10,\n right: 10\n },\n openIcon: {\n color: 'white',\n opacity: 0.9,\n position: 'absolute',\n right: 10,\n zIndex: 10\n },\n camIcon: {\n position: 'absolute',\n bottom: 8,\n right: 3,\n zIndex: 10,\n cursor: 'pointer'\n },\n imageBar: {\n bar: {\n\n },\n imageButton: {\n\n },\n image: {\n\n }\n },\n 'chart-dialog': {\n zIndex: 2101\n },\n 'chart-dialog-paper': {\n width: 'calc(100% - 2em)',\n maxWidth: 'calc(100% - 2em)',\n height: 'calc(100% - 2em)',\n maxHeight: 'calc(100% - 2em)'\n },\n 'chart-dialog-img': {\n\n },\n 'chart-dialog-content': {\n width: 'calc(100% - 4em)',\n height: 'calc(100% - 4em)',\n cursor: 'pointer',\n textAlign: 'center',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n },\n};\n\nclass ImageSelector extends React.Component {\n static propTypes = {\n image: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]).isRequired,\n onUpload: PropTypes.func.isRequired,\n maxSize: PropTypes.number,\n height: PropTypes.number, // height of the shown image\n images: PropTypes.array,\n icons: PropTypes.bool,\n label: PropTypes.string,\n accept: PropTypes.string,\n textAccepted: PropTypes.string,\n textRejected: PropTypes.string,\n textWaiting: PropTypes.string,\n aspect: PropTypes.number // if set, the crop function will be called\n };\n\n constructor(props) {\n super(props);\n const state = {\n imageStatus: 'wait',\n image: this.props.image,\n beforeCrop: null,\n images: this.props.images,\n opened: !this.props.image,\n cropOpened: false,\n crop: null,\n cropWidth: 100,\n cropHeight: 100\n };\n if (this.props.icons) {\n this.icons = IconList.List;\n }\n this.cropPixels = null;\n this.inputRef = React.createRef();\n this.cropRef = React.createRef();\n this.state = state;\n }\n\n componentWillUpdate(nextProps, nextState) {\n if (!this.props.icons && JSON.stringify(nextProps.images) !== JSON.stringify(this.state.images)) {\n this.setState({images: nextProps.images});\n }\n }\n\n /**\n * Crop image in the browser.\n *\n * @param {Object} imageData - Image File Object\n * @param {Object} crop - crop Object provided by react-image-crop\n * @param {String} fileName - File name\n * @param {Function} cb - Callback\n */\n static cropImage(imageData, crop, fileName, cb) {\n const canvas = document.createElement('canvas');\n canvas.width = crop.width;\n canvas.height = crop.height;\n\n const ctx = canvas.getContext('2d');\n const image = new Image();\n image.onload = function() {\n ctx.drawImage(\n image,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n\n cb(null, {data: canvas.toDataURL('image/jpeg'), name: fileName});\n };\n image.src = imageData;\n }\n\n static readFileDataUrl(file, cb) {\n const reader = new FileReader();\n reader.onload = () => {\n cb(null, {data: reader.result, name: file.name});\n };\n reader.onabort = () => {\n console.error('file reading was aborted');\n cb('file reading was aborted');\n };\n reader.onerror = (e) => {\n console.error('file reading has failed');\n cb('file reading has failed: ' + e);\n };\n\n reader.readAsDataURL(file)\n }\n\n handleSelectImage(file) {\n if (typeof file === 'object') {\n if (this.props.aspect) {\n this.setState({beforeCrop: file, cropOpened: true});\n } else {\n this.setState({image: file.data});\n this.props.onUpload && this.props.onUpload(file);\n }\n } else {\n this.setState({image: file});\n this.props.onUpload && this.props.onUpload(file);\n }\n }\n\n handleDropImage(files) {\n if (files && files.hasOwnProperty('target')) {\n files = files.target.files;\n }\n\n if (!files && !files.length) return;\n const file = files[files.length - 1];\n\n if (!file) {\n return;\n }\n ImageSelector.readFileDataUrl(file, (err, result) => {\n if (err) {\n alert(err);\n } else {\n this.handleSelectImage(result);\n }\n });\n }\n\n removeImage() {\n this.setState({image: '', opened: true});\n this.props.onUpload && this.props.onUpload('');\n }\n\n static isMobile() {\n return /iPhone|iPad|iPod|Android/i.test(window.navigator.userAgent);\n }\n\n onCamera() {\n this.inputRef.current.click();\n }\n\n onCropEnd(){\n ImageSelector.cropImage(this.state.beforeCrop.data, this.cropPixels, this.state.beforeCrop.name, (err, file) => {\n this.setState({cropOpened: false, image: file.data});\n this.props.onUpload && this.props.onUpload(file);\n });\n }\n\n onImageLoaded(image, tryCount) {\n tryCount = tryCount || 0;\n let cropHeight;\n let cropWidth;\n let width;\n let height;\n if (!this.cropRef.current && tryCount < 10) {\n return setTimeout(() => this.onImageLoaded(image, tryCount + 1), 200);\n }\n let aspect = this.props.aspect || 1;\n\n if (this.cropRef.current) {\n if (this.cropRef.current.clientWidth > this.cropRef.current.clientHeight) {\n cropHeight = this.cropRef.current.clientHeight;\n if (cropHeight > image.naturalHeight) {\n cropHeight = image.naturalHeight;\n }\n cropWidth = cropHeight * (image.naturalWidth / image.naturalHeight);\n height = 100;\n width = (image.naturalHeight / image.naturalWidth) * 100 * aspect;\n if (width > 100) {\n height = 100 / width * 100;\n width = 100;\n }\n } else {\n cropWidth = this.cropRef.current.clientWidth;\n if (cropWidth > image.naturalWidth) {\n cropWidth = image.naturalWidth;\n }\n cropHeight = cropWidth * (image.naturalHeight / image.naturalWidth);\n width = 100;\n height = (image.naturalWidth / image.naturalHeight) * 100 / aspect;\n\t\t\t\tif (height > 100) {\n width = 100 / height * 100;\n height = 100;\n }\n }\n }\n this.setState({\n cropHeight,\n cropWidth,\n crop: {x: 0, y: 0, width, height, aspect: aspect}\n });\n }\n\n render() {\n const _style = Object.assign({}, style.dropzone, this.state.imageStatus === 'accepted' ? style.dropzoneAccepted : (this.state.imageStatus === 'accepted' ? style.dropzoneRejected : {}));\n\n return (
\n
{this.props.label}
\n {this.state.image ? [\n ({this.props.label),\n (),\n ()\n ] : null}\n {this.state.opened &&\n [\n ((this.state.images && this.state.images.length) || this.icons) && (),\n ImageSelector.isMobile() && !this.props.icons ?\n () : null,\n ( this.handleDropImage(files)}\n accept={this.props.accept || 'image/jpeg, image/png'}\n style={_style}>\n {\n ({isDragActive, isDragReject}) => {\n if (isDragActive) {\n if (this.state.imageStatus !== 'accepted') {\n this.setState({imageStatus: 'accepted'});\n }\n\n return this.props.textAccepted || 'All files will be accepted';\n } else\n if (isDragReject) {\n if (this.state.imageStatus !== 'rejected') {\n this.setState({imageStatus: 'rejected'});\n }\n return this.props.textRejected || 'Some files will be rejected';\n } else {\n if (this.state.imageStatus !== 'wait') {\n this.setState({imageStatus: 'wait'});\n }\n return this.props.textWaiting || 'Drop some files here or click...';\n }\n }\n }\n )\n ]\n }\n {this.state.cropOpened ? ( this.setState({cropOpened: false})}\n className={this.props.classes['chart-dialog']}\n aria-labelledby=\"alert-dialog-title\"\n >\n {I18n.t('Crop image')}\n \n
\n this.setState({crop})}\n onComplete={(crop, pixelCrop) => this.cropPixels = pixelCrop}\n crop={this.state.crop}\n keepSelection={true}\n onImageLoaded={image => this.onImageLoaded(image)}\n aspect={this.props.aspect || 1}\n src={this.state.beforeCrop.data} />\n
\n
\n \n \n \n \n ): null}\n
);\n }\n}\n\nexport default withStyles(style)(ImageSelector);\n","/**\r\n * Copyright 2018 bluefox \r\n *\r\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n **/\r\nimport React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport {MdAdd as AddIcon} from 'react-icons/md';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nconst styles = theme => ({\r\n line: {\r\n width: 'calc(100% - 6px)',\r\n display: 'flow-root'\r\n },\r\n inputLine: {\r\n width: 'calc(100% - 6px)',\r\n },\r\n label: {\r\n fontSize: 12,\r\n color: 'rgba(0, 0, 0, 0.54)'\r\n },\r\n chips: {\r\n width: 'calc(100% - 110px)'\r\n },\r\n input: {\r\n width: 'calc(100% - 48px)',\r\n },\r\n button: {\r\n marginLeft: 8\r\n },\r\n icon: {\r\n height: 20,\r\n marginRight: 10\r\n }\r\n});\r\n\r\nclass ChipsControl extends Component {\r\n static propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.type = this.props.type || (typeof this.props.value === 'number' ? 'number' : 'text');\r\n let chips = (this.props.value || '').split(/[,;]/).map(word => word.trim());\r\n this.state = {\r\n chips: chips,\r\n add: ''\r\n }\r\n }\r\n\r\n onAdd() {\r\n const chips = JSON.parse(JSON.stringify(this.state.chips));\r\n chips.push(this.state.add);\r\n chips.sort();\r\n this.setState({chips, add: ''});\r\n this.props.onChange(chips.join(','));\r\n }\r\n onKeyDown(e) {\r\n if (e.keyCode === 13 || e.keyCode === 9) {\r\n this.onAdd();\r\n }\r\n }\r\n handleDelete(word) {\r\n const chips = JSON.parse(JSON.stringify(this.state.chips));\r\n chips.splice(chips.indexOf(word), 1);\r\n this.setState({chips});\r\n this.props.onChange && this.props.onChange(chips.join(','));\r\n }\r\n\r\n render() {\r\n const {classes, label} = this.props;\r\n\r\n return (\r\n
\r\n
{label}
\r\n
\r\n {\r\n this.state.chips.map(word => ( this.handleDelete(word)}\r\n className={classes.chip}\r\n />))\r\n }\r\n
\r\n
\r\n this.setState({add: event.target.value})}\r\n margin=\"normal\"\r\n />\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(ChipsControl);","/**\r\n * Copyright 2018 bluefox \r\n *\r\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n **/\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport NativeSelect from '@material-ui/core/NativeSelect';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport Input from '@material-ui/core/Input';\r\nimport Theme from '../../theme';\r\n\r\nconst styles = () => (Theme.dialog.info);\r\n\r\n// expected\r\n// options = [\r\n// {label: 'Group1',\r\n// children: [{value: 'item1', label: 'Item 1'}, 'item2']\r\n// },\r\n// {value: 'item3', label: 'Item 3'},\r\n// 'item4'\r\n// }\r\n\r\nfunction getOptions(options, root, path) {\r\n root = root || [];\r\n path = path || '';\r\n\r\n const items = options.map(opt => {\r\n if (typeof opt === 'object' && opt.hasOwnProperty('children')) {\r\n const subItems = getOptions(opt.children, root, path + opt.label + '-');\r\n if (subItems && subItems.length) {\r\n root.push(({subItems}));\r\n }\r\n return null;\r\n } else if (typeof opt === 'object') {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n });\r\n if (!path) {\r\n items.forEach(e => e && root.push(e));\r\n return root;\r\n } else {\r\n return items.filter(e => e);\r\n }\r\n}\r\n\r\nconst SelectControl = ({classes, label, value, onChange, options}) => {\r\n if (typeof value === 'object' && value.value !== undefined) {\r\n value = value.value;\r\n }\r\n\r\n return (
\r\n {label}\r\n onChange(event.target.value)}\r\n input={}\r\n >\r\n {getOptions(options)}\r\n \r\n
);\r\n};\r\n\r\nSelectControl.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.string.isRequired,\r\n options: PropTypes.array.isRequired,\r\n onChange: PropTypes.func // if no onChange => readOnly\r\n};\r\n\r\nexport default withStyles(styles)(SelectControl);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport Switch from '@material-ui/core/Switch';\nimport {withStyles} from '@material-ui/core/styles';\nimport Moment from 'react-moment';\nimport Theme from '../../theme';\n\nconst styles = () => (Theme.dialog.info);\n\nconst BoolControl = ({classes, label, value, onChange, language, icon}) => {\n let Icon;\n if (icon) {\n if (typeof icon === 'object') {\n Icon = icon;\n Icon = ();\n } else {\n Icon = ({label});\n }\n }\n\n return (
\n \n {Icon}\n {label}\n \n onChange && onChange()}\n />\n {value && value.lc ? () : null}\n
);\n};\n\nBoolControl.propTypes = {\n classes: PropTypes.object.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.object\n ]),\n language: PropTypes.string.isRequired,\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n onChange: PropTypes.func // if no onChange => readOnly\n};\n\nexport default withStyles(styles)(BoolControl);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Theme from '../theme';\nimport Paper from '@material-ui/core/Paper';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport {MdClose as CloseIcon} from 'react-icons/md';\nimport Button from '@material-ui/core/Button';\nimport I18n from '../i18n';\n\nclass SmartDialogGeneric extends Component {\n\n static COLOR_MODES = {\n RGB: 0,\n HUE: 1,\n R_G_B: 2,\n TEMPERATURE: 3\n };\n\n // expected:\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string,\n windowWidth: PropTypes.string,\n\n onClose: PropTypes.func,\n onCollectIds: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.stateRx = {\n toast: ''\n };\n\n // disable context menu after long click\n window.addEventListener('contextmenu', SmartDialogGeneric.onContextMenu, false);\n this.refModal = React.createRef();\n this.dialogStyle = {};\n this.closeOnPaperClick = false;\n this.savedParent = null;\n\n this.subscribes = null;\n this.subscribed = false;\n this.editMode = this.props.editMode;\n this.positionTuned = false;\n\n }\n\n componentReady () {\n // ↓ ignore error here\n // eslint-disable-next-line react/no-direct-mutation-state\n this.state = this.stateRx;\n delete this.stateRx;\n }\n\n static onContextMenu(e) {\n if (!e.shiftKey && !e.ctrlKey) {\n e.preventDefault();\n console.log('Ignore context menu' + e);\n return false;\n }\n }\n\n componentDidMount() {\n // move this element to the top of body\n if (this.refModal) {\n this.savedParent = this.refModal.current.parentElement;\n document.body.appendChild(this.refModal.current);\n }\n\n if (this.subscribes && !this.subscribed) {\n this.subscribed = true;\n this.props.onCollectIds(this, this.subscribes, true);\n }\n\n if (!this.positionTuned) {\n Object.assign(this.dialogStyle, {left: 'calc(50% - ' + (this.refModal.current.firstChild.offsetWidth / 2) + 'px)'});\n this.forceUpdate();\n }\n }\n\n componentWillUnmount() {\n this.refModal && this.savedParent.appendChild(this.refModal.current);\n\n if (this.props.onCollectIds && this.subscribed) {\n this.props.onCollectIds(this, this.subscribes, false);\n this.subscribed = null;\n }\n }\n\n // default handler\n updateState(id, state) {\n const newState = {};\n if (state) {\n newState[id] = {val: state.val, ts: state.ts, lc: state.lc};\n } else {\n newState[id] = null;\n }\n this.setState(newState);\n }\n\n mayClose() {\n return !(this.click && Date.now() - this.click < 50);\n }\n\n onClose(forceClose) {\n if (forceClose || this.mayClose()) {\n window.removeEventListener('contextmenu', SmartDialogGeneric.onContextMenu, false);\n this.props.onClose && this.props.onClose();\n }\n }\n\n handleToastClose() {\n this.setState({toast: ''});\n }\n\n generateContent() {\n return null;\n }\n\n onClick(e) {\n if (!this.closeOnPaperClick) {\n e && e.stopPropagation();\n this.click = Date.now();\n }\n }\n\n showCloseButton() {\n if (this.props.windowWidth < 500) {\n return ()\n } else {\n return null;\n }\n }\n\n setDialogStyle(style) {\n this.dialogStyle = style || {};\n this.forceUpdate();\n }\n\n render() {\n return (
this.onClose()}\n style={Theme.dialog.back}>\n \n {this.generateContent()}\n {this.state.toast}}\n />\n {this.showCloseButton()}\n \n\n {this.getAdditionalElements && this.getAdditionalElements()}\n\n
);\n }\n}\n\n//export default withStyles(styles)(SmartDialogGeneric);\nexport default SmartDialogGeneric;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIOselectNS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CopyToClipboard from 'react-copy-to-clipboard';\n\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Paper from '@material-ui/core/Paper';\nimport IconButton from '@material-ui/core/IconButton';\n\nimport {MdSave as OkIcon} from 'react-icons/md';\nimport {MdContentCopy as CopyIcon} from 'react-icons/md';\n\nimport ColorPicker from '../basic-controls/react-color-picker/ColorPicker';\nimport ImageSelector from '../basic-controls/react-image-selector/ImageSelector';\nimport ChipsControl from '../basic-controls/react-info-controls/ChipsControl';\nimport SelectControl from '../basic-controls/react-info-controls/SelectControl';\nimport BoolControl from '../basic-controls/react-info-controls/BoolControl';\n\nimport SmartDialogGeneric from './SmartDialogGeneric';\nimport Utils from '../Utils';\nimport Theme from '../theme';\nimport I18n from '../i18n';\n\nconst styles = {\n descCopyIcon: {\n position: 'absolute',\n top: 0,\n right: 0,\n background: 'rgba(255,255,255,0.7)'\n },\n descDivId: {\n fontSize: 'smaller'\n },\n descTitle: {\n fontWeight: 'bold'\n },\n descCopied: {\n position: 'absolute',\n top: 3,\n right: 3,\n background: 'white'\n }\n\n};\nclass SmartDialogSettings extends SmartDialogGeneric {\n\n // expected:\n // settings - array of [{id, icon, color, ...}]\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n getImages: PropTypes.func,\n dialogKey: PropTypes.string,\n windowWidth: PropTypes.number,\n settings: PropTypes.array.isRequired,\n objectInfo: PropTypes.object,\n onSave: PropTypes.func.isRequired,\n onClose: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.stateRx.changed = false;\n this.stateRx.unsavedDialog = false;\n this.stateRx.values = {\n\n };\n this.stateRx.images = [];\n this.stateRx.anchorEl = null;\n\n this.props.settings.forEach(e => {\n this.stateRx.values[e.name] = e.value === '__default__' ? '' : e.value;\n });\n\n // This is asynchronous\n this.props.getImages && this.props.getImages(function(images) {\n this.setState({images});\n }.bind(this));\n\n this.dialogStyle = Theme.dialog.settingsBack;\n\n this.componentReady();\n }\n\n onClose() {\n if (!super.mayClose()) return;\n\n if (!this.ignoreUnsaved && this.isChanged()) {\n this.setState({unsavedDialog: true});\n } else {\n super.onClose(true);\n }\n }\n\n onSave() {\n const settings = {};\n this.props.settings.forEach(item => {\n settings[item.name] = this.state.values[item.name];\n });\n this.props.onSave(settings);\n this.ignoreUnsaved = true;\n this.onClose();\n }\n\n handleWarningCancel = () => {\n this.ignoreUnsaved = false;\n this.click = Date.now();\n this.setState({unsavedDialog: false});\n };\n\n handleWarningIgnore = () => {\n this.ignoreUnsaved = true;\n this.setState({unsavedDialog: false});\n this.click = 0;\n this.onClose();\n };\n\n handleText(name, ev) {\n const newValue = {values: JSON.parse(JSON.stringify(this.state.values))};\n this.click = Date.now();\n newValue.values[name] = ev.target.value;\n newValue.changed = this.isChanged(name, newValue.values[name]);\n this.setState(newValue);\n }\n\n handleToggle(name, ev) {\n const newValue = {values: JSON.parse(JSON.stringify(this.state.values))};\n this.click = Date.now();\n newValue.values[name] = ev ? ev.target.checked : !this.state.values[name];\n newValue.changed = this.isChanged(name, newValue.values[name]);\n this.setState(newValue);\n }\n\n handleValue(name, value) {\n const newValue = {values: JSON.parse(JSON.stringify(this.state.values))};\n this.click = Date.now();\n newValue.values[name] = value;\n newValue.changed = this.isChanged(name, newValue.values[name]);\n this.setState(newValue);\n }\n\n handleUploadImage(name, files, pictures) {\n const newValue = {values: JSON.parse(JSON.stringify(this.state.values))};\n this.click = Date.now();\n newValue.values[name] = pictures[pictures.length - 1];\n newValue.changed = this.isChanged(name, newValue.values[name]);\n this.setState(newValue);\n }\n handleDropImage(name, file) {\n const newValue = {values: JSON.parse(JSON.stringify(this.state.values))};\n this.click = Date.now();\n newValue.values[name] = file;\n newValue.changed = this.isChanged(name, newValue.values[name]);\n this.setState(newValue);\n }\n\n handleIcon(name, file) {\n const newValue = {values: JSON.parse(JSON.stringify(this.state.values))};\n this.click = Date.now();\n newValue.values[name] = typeof file === 'object' ? file.data : file;\n newValue.changed = this.isChanged(name, newValue.values[name]);\n this.setState(newValue);\n }\n\n onDelete() {\n this.props.onSave(false);\n this.ignoreUnsaved = true;\n this.onClose();\n }\n\n isChanged(name, newVal) {\n return !!this.props.settings.find(item => {\n if (item.name === name) {\n return newVal !== item.value;\n } else {\n return item.value !== this.state.values[item.name]\n }\n });\n }\n\n copyId(event) {\n this.setState({anchorEl: event.currentTarget});\n setTimeout(() => {\n this.setState({anchorEl: null});\n }, 2000);\n }\n\n generateObjectInfo() {\n if (this.props.settingsId) {\n return (\n \n \n \n \n \n {this.state.anchorEl ? () : null}\n
{I18n.t('Name')}: {Utils.getObjectName(this.props.objects, this.props.settingsId)}
\n
{I18n.t('Description')}: {Utils.getObjectName(this.props.objects, this.props.settingsId, null, null, true)}
\n
ID: {this.props.settingsId}
\n
);\n } else {\n return null;\n }\n }\n\n generateContent() {\n const result = this.props.settings.map(function (e, i) {\n const divider = i !== this.props.settings.length - 1 ? () : null;\n\n let item;\n if (e.type === 'delete') {\n item = ( this.onDelete()}\n >{I18n.t('Delete')});\n } else if (e.type === 'boolean') {\n item = ( this.handleToggle(e.name)}\n icon={e.icon}\n language={I18n.getLanguage()}\n value={this.state.values[e.name] || false}\n />);\n } else if (e.type === 'color') {\n item = ( this.handleValue(e.name, color)}\n />);\n } else if (e.type === 'chips') {\n item = ( this.handleValue(e.name, value)}\n />);\n } else if (e.type === 'select') {\n item = ( this.handleValue(e.name, value)}\n label={I18n.t(e.name)}\n options={e.options}\n />);\n } else if (e.type === 'icon') {\n item = ( this.handleIcon(e.name, file)}\n textAccepted={I18n.t('All files will be accepted')}\n textRejected={I18n.t('Some files will be rejected')}\n textWaiting={I18n.t('Drop some files here or click...')}\n />);\n } else if (e.type === 'image') {\n item = ( this.handleDropImage(e.name, file)}\n textAccepted={I18n.t('All files will be accepted')}\n textRejected={I18n.t('Some files will be rejected')}\n textWaiting={I18n.t('Drop some files here or click...')}\n />);\n } else if (e.type === 'number') {\n // input field\n item = ( this.handleText(e.name, ev)}\n margin=\"normal\"\n />);\n } else {\n // input field\n item = ( this.handleText(e.name, ev)}\n margin=\"normal\"\n />);\n }\n\n if (0 && divider) {\n return [item, divider];\n } else {\n return ({item});\n }\n }.bind(this));\n\n result.push(this.generateObjectInfo());\n\n return [\n (\n

{this.props.name}

\n \n
),\n ({result})\n ];\n }\n\n getAdditionalElements() {\n return (\n {I18n.t('Ignore changes?')}\n \n {I18n.t('Changes are not saved.')}\n \n \n \n \n \n );\n }\n}\n\nexport default SmartDialogSettings;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Utils from '../Utils';\nimport I18n from '../i18n';\nimport Theme from '../theme';\n\nimport {MdVisibility as IconCheck} from 'react-icons/md';\nimport {MdRemove as IconRemoved} from 'react-icons/md';\nimport {MdEdit as IconEdit} from 'react-icons/md';\nimport {MdArrowUpward as IconDirectionUp} from 'react-icons/md';\nimport {MdArrowDownward as IconDirectionDown} from 'react-icons/md';\nimport {MdSwapVert as IconDirection} from 'react-icons/md';\n\nimport Dialog from '../Dialogs/SmartDialogSettings';\n\nclass SmartGeneric extends Component {\n static propTypes = {\n objects: PropTypes.object.isRequired,\n states: PropTypes.object.isRequired,\n tile: PropTypes.object.isRequired,\n channelInfo: PropTypes.object.isRequired,\n ignoreIndicators: PropTypes.array,\n enumNames: PropTypes.array,\n windowWidth: PropTypes.number,\n user: PropTypes.string\n };\n\n constructor(props, noSubscribe) {\n super(props);\n this.channelInfo = this.props.channelInfo;\n this.subscribes = null;\n this.subscribed = false;\n this.defaultIcon = null;\n\n this.width = Theme.tile.width;\n this.height = Theme.tile.height;\n this.doubleState = false; // has on/off or only info\n\n this.showCorner = false; // set it to true to show the corner\n this.stateRx = {\n executing: false,\n settings: {},\n showSettings: false,\n editMode: null,\n ignoreIndicators: this.props.ignoreIndicators || []\n };\n this.defaultEnabling = true; // overload this property to hide element by default\n\n this.editMode = this.props.editMode;\n\n this.lastEnabledChange = 0;\n\n if (typeof noSubscribe !== 'boolean' || !noSubscribe) {\n if (this.channelInfo.states) {\n let ids = [];\n this.channelInfo.states.forEach(function (state) {\n if (!state.id) return;\n\n if (state.id.startsWith('system.adapter.')) {\n ids.push(state.id);\n } else\n if (!state.noSubscribe &&\n this.props.objects[state.id] &&\n this.props.objects[state.id].type === 'state' &&\n ids.indexOf(state.id) === -1)\n {\n const pos = state.id.lastIndexOf('.');\n if (pos !== -1 && this.stateRx.ignoreIndicators.indexOf(state.id.substring(pos + 1)) !== -1) {\n return;\n }\n\n ids.push(state.id);\n }\n }.bind(this));\n\n if (ids.length) {\n this.subscribes = ids;\n\n // do not want to mutate via setState, because it is constructor\n ids.forEach(id => this.stateRx[id] = this.props.states[id] ? this.props.states[id].val : null);\n }\n }\n }\n\n if (this.channelInfo && this.channelInfo.states) {\n this.indicators = {};\n let state = this.channelInfo.states.find(state => state.id && state.name === 'WORKING');\n this.indicators.workingId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'UNREACH');\n this.indicators.unreachId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'LOWBAT');\n this.indicators.lowbatId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'MAINTAIN');\n this.indicators.maintainId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ERROR');\n this.indicators.errorId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'DIRECTION');\n this.indicators.directionId = state && state.id;\n\n if (this.indicators.directionId) {\n this.direction = {\n undef: true,\n up: 'unused',\n down: 'unused'\n };\n const obj = this.props.objects[this.indicators.directionId];\n if (obj && obj.common) {\n if (obj.common.type === 'number') {\n if (obj.common.states) {\n for (const index in obj.common.states) {\n if (!obj.common.states.hasOwnProperty(index)) continue;\n if (obj.common.states[index].match(/up/i)) {\n this.direction.up = index.toString();\n } else if (obj.common.states[index].match(/down/i)) {\n this.direction.down = index.toString();\n } else if (obj.common.states[index].match(/undef/i)) {\n this.direction.undef = index.toString();\n }\n }\n } else {\n this.direction.undef = 1;\n }\n }\n }\n }\n\n if (this.indicators.errorId) {\n this.errorText = '';\n }\n }\n\n // will be done in componentReady\n // this.state = stateRx;\n }\n\n componentReady () {\n if (this.id && this.props.objects[this.id]) {\n this.settingsId = this.id;\n } else\n if (this.instanceId !== undefined) {\n this.settingsId = this.instanceId;\n }\n\n if (this.stateRx.showDialog !== undefined) {\n this.showCorner = true;\n this.onMouseUpBind = this.onMouseUp.bind(this);\n this.props.tile.registerHandler('onMouseDown', this.onTileMouseDown.bind(this));\n }\n\n if (this.settingsId) {\n if (this.props.objects[this.settingsId] && this.props.objects[this.settingsId].type === 'instance') {\n this.stateRx.settings = {\n enabled: true,\n name: this.props.objects[this.settingsId].common.name + '.' + this.instanceNumber\n }\n } else {\n this.stateRx.settings = Utils.getSettings(\n this.props.objects[this.settingsId],\n {\n user: this.props.user,\n language: I18n.getLanguage(),\n name: this.getObjectNameCh()\n },\n this.defaultEnabling\n );\n }\n if (this.stateRx.settings.background) {\n this.props.tile.setBackgroundImage(this.stateRx.settings.background || '', true);\n }\n }\n\n this.stateRx.nameStyle = {fontSize: SmartGeneric.getNameFontSize(this.stateRx.settings.name)};\n\n this.props.tile.setVisibility(this.stateRx.settings.enabled);\n\n this.props.tile.setColorOn(this.stateRx.settings.colorOn || Theme.tile.tileOn.background);\n this.props.tile.setColorOff(this.stateRx.settings.colorOff || Theme.tile.tileOff.background);\n\n if (this.stateRx.settings && this.stateRx.settings.doubleSize) {\n this.width = 2;\n }\n\n if (this.width > 1) {\n this.props.tile.setSize(this.width);\n }\n\n // ↓ ignore error here\n // eslint-disable-next-line react/no-direct-mutation-state\n this.state = this.stateRx;\n delete this.stateRx;\n }\n\n componentDidMount () {\n if (this.state.settings.enabled && this.subscribes && !this.subscribed) {\n this.subscribed = true;\n this.props.onCollectIds(this, this.subscribes, true);\n }\n }\n\n static getObjectName(objects, id, label, channelName, enumNames) {\n let name;\n if (label) {\n name = label;\n } else\n if (!id) {\n name = 'No elements';\n } else {\n //if (objects[enumName]) {\n // enumName = SmartGeneric.getObjectName(objects, enumName);\n //}\n\n let item = objects[id];\n if (item && item.common && item.common.name) {\n name = Utils.getObjectName(objects, id, null, {language: I18n.getLanguage()});\n\n if (enumNames) {\n if (typeof enumNames === 'object') {\n enumNames.forEach(e => {\n let reg = new RegExp('\\\\b' + e + '\\\\b');\n const newName = name.replace(reg, ' ').replace(/\\s\\s/g, '').trim();\n if (newName) {\n name = newName;\n }\n });\n } else {\n let reg = new RegExp('\\\\b' + enumNames + '\\\\b');\n const newName = name.replace(reg, ' ').replace(/\\s\\s/g, '').trim();\n if (newName) {\n name = newName;\n }\n }\n }\n if (channelName) {\n let reg = new RegExp(channelName + '[.: ]?');\n const newName = name.replace(reg, ' ').trim();\n if (newName) {\n name = newName;\n }\n }\n\n if (name && name === name.toUpperCase()) {\n name = name[0] + name.substring(1).toLowerCase();\n }\n } else {\n let pos = id.lastIndexOf('.');\n name = id.substring(pos + 1).replace(/_/g, ' ');\n name = Utils.CapitalWords(name);\n\n if (enumNames) {\n if (typeof enumNames === 'object') {\n enumNames.forEach(e => {\n let reg = new RegExp('\\\\b' + e + '\\\\b');\n name = name.replace(reg, ' ').replace(/\\s\\s/g, '').trim();\n });\n } else {\n let reg = new RegExp('\\\\b' + enumNames + '\\\\b');\n name = name.replace(reg, ' ').replace(/\\s\\s/g, '').trim();\n }\n }\n\n if (channelName) {\n let reg = new RegExp(channelName + '[.: ]?');\n name = I18n.t(name.replace(reg, ' ').trim());\n }\n }\n }\n return name.trim();\n }\n\n static getParentId(id) {\n const pos = id.lastIndexOf('.');\n if (pos !== -1) {\n return id.substring(0, pos);\n } else {\n return id;\n }\n }\n\n getObjectNameCh() {\n const channelId = SmartGeneric.getParentId(this.id);\n if (this.props.objects[channelId] && (this.props.objects[channelId].type === 'channel' || this.props.objects[channelId].type === 'device')) {\n return SmartGeneric.getObjectName(this.props.objects, channelId, null, null, this.props.enumNames) || ' ';\n } else {\n return SmartGeneric.getObjectName(this.props.objects, this.id, null, null, this.props.enumNames) || ' ';\n }\n }\n\n // default handler\n updateState(id, state) {\n // update indicators\n let val;\n if (this.indicators && id === this.indicators.directionId) {\n val = (state.val !== null && state.val !== undefined) ? state.val.toString() : '';\n } else if (this.indicators && id === this.indicators.errorId) {\n if (typeof state.val === 'string' ) {\n let i = parseInt(state.val.trim(), 10);\n if (i.toString() === state.val.trim()) {\n val = i;\n } else {\n val = state.val === 'true' || state.val === 'on' || state.val === 'ON';\n }\n } else {\n val = typeof state.val === 'number' ? state.val : state.val === true || state.val === 'true' || state.val === 'on' || state.val === 'ON';\n }\n const obj = this.props.objects[id];\n if (obj && obj.common) {\n if (obj.common.min !== undefined && obj.common.min === val) {\n val = false;\n this.errorText = '';\n } else if (obj.common.states && obj.common.states[val] !== undefined) {\n this.errorText = I18n.t(obj.common.states[val]);\n val = true;\n }\n }\n } else {\n val = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON';\n }\n const newState = {};\n newState[id] = val;\n this.setState(newState);\n }\n\n // default handler\n onControl(id, val) {\n\n }\n\n // default handler\n onLongClick(e) {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n this.setState({showDialog: true});\n }\n\n onDialogClose() {\n this.setState({showDialog: false});\n }\n\n onMouseUp() {\n document.removeEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.removeEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n this.onToggleValue && this.onToggleValue();\n }\n }\n\n onTileMouseDown(e) {\n if (this.state.showDialog) return;\n //e.preventDefault();\n e.stopPropagation();\n\n this.timer = setTimeout(this.onLongClick.bind(this), 500);\n\n document.addEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.addEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n }\n\n componentWillUnmount() {\n if (this.props.onCollectIds && this.subscribed) {\n this.props.onCollectIds(this, this.subscribes, false);\n this.subscribed = null;\n }\n }\n\n saveSettings(newSettings, cb) {\n const settings = newSettings || this.state.settings;\n if (this.props.onSaveSettings && this.settingsId) {\n this.props.onSaveSettings(this.settingsId, settings, {enabled: this.defaultEnabling}, () => {\n // subscribe if enabled and was not subscribed\n if (this.subscribes && settings.enabled && !this.subscribed) {\n this.subscribed = true;\n this.props.onCollectIds(this, this.subscribes, true);\n } else\n // unsubscribe if disabled and was subscribed\n if (!settings.enabled && this.subscribed) {\n this.subscribed = false;\n this.props.onCollectIds(this, this.subscribes, false);\n }\n\n this.props.tile.setColorOn(settings.colorOn || Theme.tile.tileOn);\n this.props.tile.setColorOff(settings.colorOff || Theme.tile.tileOff);\n this.props.tile.setVisibility(settings.enabled);\n this.width = settings.doubleSize ? 2 : 1;\n this.props.tile.setSize(this.width);\n cb && cb(settings);\n });\n } else if (this.customSettings) {\n // custom URL\n const enumSettings = Utils.getSettings(this.props.objects[this.customSettings.settingsId], {user: this.props.user});\n let pos = -1;\n\n if (enumSettings) {\n enumSettings.URLs.forEach((e, i) => {\n if (e.id === this.id) {\n pos = i;\n return false;\n }\n });\n }\n\n if (pos !== -1) {\n if (newSettings) {\n newSettings = Object.assign({}, this.customSettings, newSettings);\n enumSettings.URLs[pos] = newSettings;\n } else {\n enumSettings.URLs.splice(pos, 1);\n }\n const enumId = (newSettings && newSettings.settingsId) || this.customSettings.settingsId;\n this.props.onSaveSettings && this.props.onSaveSettings(enumId, enumSettings, function () {\n if (!newSettings) {\n this.props.tile.setDelete(enumId);\n } else {\n\n }\n cb && cb(newSettings);\n }.bind(this));\n }\n }\n }\n\n toggleEnabled() {\n let settings = JSON.parse(JSON.stringify(this.state.settings));\n settings.enabled = !settings.enabled;\n\n this.saveSettings(settings, () => this.setState({settings}));\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.editMode !== this.state.editMode) {\n this.setState({editMode: nextProps.editMode});\n //this.props.tile.setVisibility(nextProps.editMode || this.state.settings.enabled);\n }\n if (JSON.stringify(nextProps.ignoreIndicators) !== JSON.stringify(this.state.ignoreIndicators)) {\n this.setState({ignoreIndicators: nextProps.ignoreIndicators});\n }\n }\n\n roundValue(value, decimals) {\n if (decimals !== undefined || typeof this.state.settings.decimals !== 'undefined') {\n return value.toFixed(decimals !== undefined ? decimals : this.state.settings.decimals);\n } else {\n return value;\n }\n }\n\n // following indicators are supported\n // indicator.working\n // indicator.lowbat\n // indicator.maintenance.lowbat\n // indicator.maintenance.unreach\n // indicator.maintenance\n // indicator.error\n getIndicators() {\n let result = [];\n const that = this;\n let titles = [];\n this.channelInfo.states.forEach(state => {\n if (state.indicator && state.id) {\n const pos = state.id.lastIndexOf('.');\n if (pos !== -1 && this.state.ignoreIndicators.indexOf(state.id.substring(pos + 1)) !== -1) {\n return;\n }\n let Icon = state.icon;\n if (state.id === that.indicators.directionId) {\n const strVal = that.state[state.id];\n if (strVal === that.direction.up) {\n Icon = IconDirectionUp;\n } else if (strVal === that.direction.down) {\n Icon = IconDirectionDown;\n } else if (strVal === that.direction.undef) {\n Icon = IconDirection;\n } else {\n return;\n }\n } else if ((!that.state[state.id] && !state.inverted) || (that.state[state.id] && state.inverted)) {\n return;\n }\n\n titles.push(I18n.t(state.id.split('.').pop()));\n\n result.push(());\n }\n });\n\n if (result.length) {\n if (this.errorText) {\n titles.push(this.errorText)\n }\n return (
{result}
);\n } else {\n return null;\n }\n }\n\n getDefaultIcon() {\n if (this.defaultIcon !== null) {\n return this.defaultIcon;\n }\n if (this.id) {\n let icon = Utils.getObjectIcon(this.id, this.props.objects[this.id]);\n if (!icon) {\n let parentId = SmartGeneric.getParentId(this.id);\n if (this.props.objects[parentId] && this.props.objects[parentId].type === 'channel') {\n icon = Utils.getObjectIcon(parentId, this.props.objects[parentId]);\n if (!icon) {\n parentId = SmartGeneric.getParentId(parentId);\n if (this.props.objects[parentId] && this.props.objects[parentId].type === 'device') {\n icon = Utils.getObjectIcon(parentId, this.props.objects[parentId]);\n }\n }\n }\n }\n if (icon) {\n this.defaultIcon = icon;\n } else {\n this.defaultIcon = '';\n }\n } else {\n this.defaultIcon = '';\n }\n return this.defaultIcon;\n }\n\n getDialogSettings(settings) {\n settings = settings || [];\n\n settings.unshift({\n name: 'background',\n value: this.state.settings.background || '',\n aspect: this.state.settings.doubleSize ? 2 : 1,\n type: 'image'\n });\n\n if (this.doubleState) {\n settings.unshift({\n name: 'iconOff',\n value: this.state.settings.iconOff || '',\n type: 'icon'\n });\n }\n settings.unshift({\n name: 'icon',\n value: this.state.settings.icon || '',\n type: 'icon'\n });\n // If colors for on and for off\n if (this.doubleState) {\n settings.unshift({\n name: 'colorOff',\n value: this.state.settings.colorOff || '',\n type: 'color'\n });\n }\n\n settings.unshift({\n name: 'doubleSize',\n value: this.state.settings.doubleSize || '',\n type: 'boolean'\n });\n\n settings.unshift({\n name: 'colorOn',\n value: this.state.settings.colorOn || '',\n type: 'color'\n });\n settings.unshift({\n name: 'name',\n value: this.state.settings.name || '',\n type: 'string'\n });\n if (this.id) {\n /*settings.unshift({\n name: 'useCommon',getObjectIcon\n value: this.state.settings.useCommon || false,\n type: 'boolean'\n });*/\n let icon = this.getDefaultIcon();\n if (icon) {\n settings.unshift({\n name: 'useDefaultIcon',\n value: this.state.settings.useDefaultIcon || '',\n type: 'boolean',\n icon\n });\n }\n }\n\n return settings;\n }\n\n saveDialogSettings(settings, cb) {\n if (settings) {\n settings.enabled = this.state.settings.enabled;\n if (settings.background && typeof settings.background === 'object') {\n settings.background.name = this.settingsId.replace(/[\\s*?./\\\\]/g, '_') + '.' + settings.background.name.toLowerCase().split('.').pop();\n }\n }\n\n this.saveSettings(settings, newSettings => {\n if (settings.background) {\n this.props.tile.setBackgroundImage(settings.background + '?ts=' + Date.now(), true);\n } else {\n this.props.tile.setBackgroundImage('', false);\n }\n cb && cb(newSettings);\n });\n }\n\n showSettings() {\n this.setState({showSettings: true});\n }\n\n onSettingsClose() {\n this.setState({showSettings: false});\n }\n\n getAdditionalName() {\n return null;\n }\n\n // following function used\n // getStateText\n // getIcon\n // getFirstName\n // getAdditionalName\n //\n getStandardContent(stateId, noPointerEvents) {\n let styleState;\n let styleName;\n let styleText;\n if (this.width === 2) {\n styleText = Object.assign({}, Theme.tile.tileText2);\n styleName = Object.assign({}, Theme.tile.tileName2, this.state.nameStyle || {});\n styleState = this.getStateText ? Object.assign(\n {},\n Theme.tile.tileState2,\n stateId ? (this.state[stateId] ? Theme.tile.tileStateOn : Theme.tile.tileStateOff) : {}\n ) : null;\n } else {\n styleText = Object.assign({}, Theme.tile.tileText);\n styleName = Object.assign({}, Theme.tile.tileName, this.state.nameStyle || {});\n styleState = this.getStateText ? Object.assign(\n {},\n Theme.tile.tileState,\n stateId ? (this.state[stateId] ? Theme.tile.tileStateOn : Theme.tile.tileStateOff) : {}\n ) : null;\n if (this.state.settings.background) {\n styleName.marginTop = 4;\n }\n }\n\n if (this.state.settings.background) {\n styleText.color = 'black';\n styleText.background = 'rgba(255,255,255,0.7)';\n }\n\n return [\n this.getIcon ? (
{this.getIcon()}
): null,\n (
\n
{this.getFirstName ? this.getFirstName() : this.state.settings.name}{this.getAdditionalName()}
\n {this.getStateText ? (
{this.getStateText()}
) : null}\n
)\n ];\n }\n\n wrapContent(content) {\n if (this.state.editMode) {\n return [\n (
{this.channelInfo.type}
),\n (
\n {this.state.settings.enabled ?\n [(
\n \n
),\n (
\n \n
\n )]\n :\n (
\n \n
)\n }\n {content}\n
),\n this.state.showSettings ? (\n ): null];\n } else if (this.state.settings.enabled) {\n return [\n (
{this.channelInfo.type}
),\n (
\n {this.showCorner ? (
) : null}\n {this.getIndicators()}\n {content}\n
)\n ];\n } else {\n return null;\n }\n }\n\n static getNameFontSize(name) {\n return name && name.length >= 15 ? 12 : (name && name.length > 10 ? 14 : 16);\n }\n\n render() {\n if (!this.state.editMode && !this.state.settings.enabled) {\n return null;\n } else {\n return this.wrapContent(this.settings.name || this.getObjectNameCh());\n }\n }\n}\n\nexport default SmartGeneric;\n\n","import React from \"react\";\n\nconst Jalousie = props => (\n \n \n \n \n);\n\nexport default Jalousie;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {FaAngleDoubleUp as IconUp} from 'react-icons/fa';\nimport {FaAngleDoubleDown as IconDown} from 'react-icons/fa';\nimport {TiLightbulb as IconLamp} from 'react-icons/ti';\nimport {MdStop as IconStop} from 'react-icons/md'\nimport {darken} from '@material-ui/core/styles/colorManipulator';\nimport Button from '@material-ui/core/Button';\n\nimport Theme from '../theme';\nimport I18n from '../i18n';\nimport SmartDialogGeneric from './SmartDialogGeneric';\n\nclass SmartDialogSlider extends SmartDialogGeneric {\n // expected:\n\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string,\n windowWidth: PropTypes.number,\n\n onClose: PropTypes.func,\n\n onStop: PropTypes.func,\n onToggle: PropTypes.func,\n\n onValueChange: PropTypes.func,\n startValue: PropTypes.number,\n startToggleValue: PropTypes.bool,\n type: PropTypes.number\n };\n static types = {\n value: 0,\n dimmer: 1,\n blinds: 2\n };\n\n static buttonStyle = {\n position: 'absolute',\n left: 'calc(50% - 2em)',\n height: '1.3em',\n width: '4em',\n borderRadius: '1em',\n background: 'white',\n border: '1px solid #b5b5b5',\n paddingTop: '0.1em',\n fontSize: '2em',\n textAlign: 'center',\n cursor: 'pointer',\n boxShadow: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)'\n };\n static buttonStopStyle = {\n position: 'absolute',\n left: 'calc(50% + 6em)',\n bottom: '4.5em',\n height: '2em',\n width: '2.5em'\n };\n static sliderStyle = {\n position: 'absolute',\n zIndex: 11,\n width: 200,\n border: '1px solid #b5b5b5',\n borderRadius: '2em',\n overflow: 'hidden',\n background: 'white',\n cursor: 'pointer',\n boxShadow: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)',\n height: 'calc(100% - 12em - 48px)',\n top: 'calc(4em + 48px)',\n left: 'calc(50% - 100px)'\n };\n\n constructor(props) {\n super(props);\n this.stateRx.value = this.externalValue2localValue(this.props.startValue || 0);\n this.stateRx.toggleValue = this.props.startToggleValue || false;\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseUpBind = this.onMouseUp.bind(this);\n this.lastControl = 0;\n\n this.refSlider = React.createRef();\n\n this.type = this.props.type || SmartDialogSlider.types.dimmer;\n this.step = this.props.step || 20;\n this.button = {\n time: 0,\n name: '',\n timer: null,\n timeUp: 0\n };\n this.closeOnPaperClick = true; // used in generic\n this.componentReady();\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.startValue !== this.state.value && !this.mouseDown && Date.now() - this.lastControl > 1000) {\n this.setState({value: nextProps.startValue});\n }\n if (nextProps.startToggleValue !== undefined && nextProps.startToggleValue !== this.state.toggleValue) {\n this.setState({toggleValue: nextProps.startToggleValue});\n }\n }\n\n eventToValue(e) {\n const pageY = e.touches ? e.touches[e.touches.length - 1].clientY : e.clientY;\n\n let value = 100 - Math.round((pageY - this.top) / this.height * 100);\n\n if (value > 100) {\n value = 100;\n } else if (value < 0) {\n value = 0;\n }\n this.setState({value});\n if (Date.now() - this.lastControl > 200 && this.type !== SmartDialogSlider.types.blinds) {\n this.lastControl = Date.now();\n this.props.onValueChange && this.props.onValueChange(this.localValue2externalValue(this.state.value));\n }\n }\n\n onMouseMove(e) {\n e.preventDefault();\n e.stopPropagation();\n this.eventToValue(e);\n }\n\n onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n\n this.mouseDown = true;\n\n if (!this.height) {\n if (this.refSlider.current) {\n this.height = this.refSlider.current.offsetHeight;\n this.top = this.refSlider.current.offsetTop;\n } else {\n return;\n }\n }\n\n this.eventToValue(e);\n\n document.addEventListener('mousemove', this.onMouseMoveBind, {passive: false, capture: true});\n document.addEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.addEventListener('touchmove', this.onMouseMoveBind, {passive: false, capture: true});\n document.addEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n }\n\n localValue2externalValue(value) {\n if (this.props.min !== undefined && this.props.max !== undefined) {\n return value * (this.props.max - this.props.min) / 100 + this.props.min;\n } else {\n return value;\n }\n }\n\n externalValue2localValue(value) {\n if (this.props.min !== undefined && this.props.max !== undefined) {\n return ((value - this.props.min) / (this.props.max - this.props.min)) * 100;\n } else {\n return value;\n }\n }\n\n onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n this.click = Date.now();\n this.mouseDown = false;\n console.log('Stopped');\n document.removeEventListener('mousemove', this.onMouseMoveBind, {passive: false, capture: true});\n document.removeEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.removeEventListener('touchmove', this.onMouseMoveBind, {passive: false, capture: true});\n document.removeEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n\n this.lastControl = Date.now();\n this.props.onValueChange && this.props.onValueChange(this.localValue2externalValue(this.state.value));\n }\n\n getTopButtonName() {\n switch (this.props.type) {\n case SmartDialogSlider.types.blinds:\n return ;\n\n case SmartDialogSlider.types.dimmer:\n return ;\n\n default:\n if (this.props.max !== undefined) {\n return this.props.max + (this.props.unit || '');\n } else {\n return I18n.t('ON');\n }\n }\n }\n\n getBottomButtonName() {\n switch (this.props.type) {\n case SmartDialogSlider.types.blinds:\n return ;\n\n case SmartDialogSlider.types.dimmer:\n return ;\n\n default:\n\n if (this.props.min !== undefined) {\n return this.props.min + (this.props.unit || '');\n } else {\n return I18n.t('OFF');\n }\n }\n }\n\n onButtonDown(e, buttonName) {\n e && e.stopPropagation();\n if (Date.now() - this.button.time < 50) return;\n if (this.button.timer) {\n clearTimeout(this.button.timer);\n }\n this.button.name = buttonName;\n this.button.time = Date.now();\n this.button.timer = setTimeout(() => {\n this.button.timer = null;\n let value;\n switch (this.button.name) {\n case 'top':\n value = 100;\n break;\n\n case 'bottom':\n value = 0;\n break;\n default:\n break;\n }\n this.setState({value});\n this.props.onValueChange && this.props.onValueChange(this.localValue2externalValue(value));\n }, 400);\n }\n\n onButtonUp(e) {\n e && e.stopPropagation();\n if (Date.now() - this.button.timeUp < 100) {\n if (this.button.timer) {\n clearTimeout(this.button.timer);\n this.button.timer = null;\n }\n } else{\n console.log('on Button UP: ' + (Date.now() - this.button.timeUp));\n this.button.timeUp = Date.now();\n\n if (this.button.timer) {\n clearTimeout(this.button.timer);\n this.button.timer = null;\n let value = this.state.value;\n switch (this.button.name) {\n case 'top':\n if (value % this.step === 0) {\n value += this.step;\n } else{\n value += this.step - (value % this.step);\n }\n break;\n\n case 'bottom':\n if (value % this.step === 0) {\n value -= this.step;\n } else {\n value -= value % this.step;\n }\n break;\n default:\n break;\n }\n if (value > 100) {\n value = 100;\n } else if (value < 0) {\n value = 0;\n }\n this.setState({value});\n this.props.onValueChange && this.props.onValueChange(this.localValue2externalValue(value));\n }\n this.click = Date.now();\n }\n }\n\n getSliderColor() {\n if (this.props.type === SmartDialogSlider.types.blinds) {\n return undefined;\n } else if (this.props.type === SmartDialogSlider.types.dimmer) {\n const val = this.state.value;\n return darken(Theme.palette.lampOn, 1 - (val / 70 + 0.3));\n } else {\n return Theme.slider.background;\n }\n }\n\n onStop(e) {\n e && e.preventDefault();\n e && e.stopPropagation();\n this.setState({toast: I18n.t('sent')});\n this.props.onStop && this.props.onStop();\n }\n\n onToggle(e) {\n e && e.preventDefault();\n e && e.stopPropagation();\n this.props.onToggle && this.props.onToggle();\n }\n\n getValueText() {\n let unit = '%';\n if (this.props.type !== SmartDialogSlider.types.blinds && this.props.type !== SmartDialogSlider.types.dimmer) {\n unit = (this.props.unit || '');\n }\n if (this.props.min !== undefined && this.props.max !== undefined) {\n return (this.state.value * (this.props.max - this.props.min) / 100 + this.props.min).toFixed() + unit;\n } else {\n return this.state.value + unit;\n }\n }\n\n getToggleButton() {\n if (!this.props.onToggle) return null;\n const style = Object.assign({}, SmartDialogSlider.buttonStopStyle, this.state.toggleValue ? {background: Theme.palette.lampOn} : {});\n return (\n );\n }\n\n getStopButton() {\n if (!this.props.onStop) return null;\n\n return (\n );\n }\n\n generateContent() {\n let sliderStyle = {\n position: 'absolute',\n width: '100%',\n left: 0,\n height: (this.props.type === SmartDialogSlider.types.blinds ? 100 - this.state.value : this.state.value) + '%',\n background: this.props.background || this.getSliderColor()\n };\n if (true || !this.mouseDown) {\n sliderStyle.transitionProperty = 'height';\n sliderStyle.transitionDuration = '0.3s';\n }\n\n let handlerStyle = {position: 'absolute',\n width: '2em',\n height: '0.3em',\n left: 'calc(50% - 1em)',\n background: 'white',\n borderRadius: '0.4em'\n };\n\n if (this.props.type === SmartDialogSlider.types.blinds) {\n sliderStyle.top = 0;\n handlerStyle.bottom = '0.4em';\n sliderStyle.backgroundImage = 'linear-gradient(0deg, #949494 4.55%, #c9c9c9 4.55%, #c9c9c9 50%, #949494 50%, #949494 54.55%, #c9c9c9 54.55%, #c9c9c9 100%)';\n sliderStyle.backgroundSize = '44px 44px';\n sliderStyle.backgroundPosition = 'center bottom';\n } else {\n sliderStyle.bottom = 0;\n handlerStyle.top = '0.4em';\n }\n\n return [\n (
this.onButtonDown(e, 'top')}\n onMouseDown={e => this.onButtonDown(e, 'top')}\n onTouchEnd={this.onButtonUp.bind(this)}\n onMouseUp={this.onButtonUp.bind(this)}\n onClick={e => e.stopPropagation()}\n style={Object.assign({}, SmartDialogSlider.buttonStyle, {top: '1.3em'})} className=\"dimmer-button\">{this.getTopButtonName()}
),\n (
e.stopPropagation()}\n style={SmartDialogSlider.sliderStyle}>\n
\n
\n
\n
\n {this.getValueText()}\n
\n
),\n (
this.onButtonDown(e, 'bottom')}\n onMouseDown={e => this.onButtonDown(e, 'bottom')}\n onTouchEnd={this.onButtonUp.bind(this)}\n onMouseUp={this.onButtonUp.bind(this)}\n onClick={e => e.stopPropagation()}\n style={Object.assign({}, SmartDialogSlider.buttonStyle, {bottom: '1.8em'})} className=\"dimmer-button\">{this.getBottomButtonName()}
),\n this.getStopButton(),\n this.getToggleButton()\n ];\n }\n}\n\nexport default SmartDialogSlider;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport SmartGeneric from './SmartGeneric';\nimport Icon from '../icons/Jalousie'\nimport Theme from '../theme';\nimport Dialog from '../Dialogs/SmartDialogSlider';\n\nconst styles = {\n overlap: {\n zIndex: 2,\n position: 'absolute',\n bottom: 0,\n left: 0,\n opacity: 0.8,\n background: '#FFF',\n width: '100%'\n }\n};\n\nclass SmartBlinds extends SmartGeneric {\n // props = {\n // objects: OBJECT\n // tile: parentDiv\n // states: STATES\n // onControl: function\n // };\n\n constructor(props) {\n super(props);\n\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state && this.props.objects[state.id]&& this.props.objects[state.id].common) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'STOP');\n this.stopId = state && state.id;\n }\n\n if (this.id) {\n this.max = this.props.objects[this.actualId].common.max;\n if (this.max === undefined) {\n this.max = 100;\n }\n this.max = parseFloat(this.max);\n\n this.min = this.props.objects[this.actualId].common.min;\n if (this.min === undefined) {\n this.min = 0;\n }\n this.min = parseFloat(this.min);\n\n }\n this.props.tile.setState({state: true});\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n this.stateRx.setValue = null;\n this.key = 'smart-blinds-' + this.id + '-';\n this.doubleState = true; // used in generic: If colors for on and for off\n\n this.componentReady();\n if (this.state.settings.toggleOnClick) {\n this.props.tile.setState({isPointer: true});\n }\n }\n\n realValueToPercent(val) {\n if (val === undefined) {\n if (this.props.states[this.actualId]) {\n val = this.props.states[this.actualId].val || 0;\n } else {\n val = 0;\n }\n }\n val = parseFloat(val);\n val = Math.round((val - this.min) / (this.max - this.min) * 100);\n if (this.state.settings.inverted) {\n val = 100 - val;\n }\n return val;\n }\n\n percentToRealValue(percent) {\n percent = parseFloat(percent);\n if (this.state.settings.inverted) {\n percent = 100 - percent;\n }\n return Math.round((this.max - this.min) * percent / 100);\n }\n\n updateState(id, state) {\n let newState = {};\n const val = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n if (this.actualId === id || (this.id === id && this.id === this.actualId && state.ack)) {\n if (!isNaN(val)) {\n newState[id] = val;\n this.setState(newState);\n } else {\n newState[id] = null;\n this.setState(newState);\n\n }\n\n // hide desired value\n if (this.state.setValue === newState[id] && state.ack) {\n this.setState({setValue: null});\n }\n\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n } else if (id === this.id) {\n newState[id] = val;\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n setValue(percent) {\n console.log('Control ' + this.id + ' = ' + this.percentToRealValue(percent));\n this.setState({executing: true, setValue: percent});\n this.props.onControl(this.id, this.percentToRealValue(percent));\n }\n\n onStop() {\n this.setState({executing: false});\n this.stopId && this.props.onControl && this.props.onControl(this.stopId, true);\n }\n\n onToggleValue() {\n if (this.state.settings.toggleOnClick) {\n let newValue;\n const percent = this.realValueToPercent();\n if (percent) {\n newValue = 0;\n } else {\n newValue = 100;\n }\n this.setValue(newValue);\n }\n }\n\n getIcon() {\n let customIcon;\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n }\n\n const overlapStyle = Object.assign({}, styles.overlap, {height: this.realValueToPercent(this.state[this.id]) + '%'});\n if (this.state.settings.colorOn) {\n Object.assign(overlapStyle, {background: this.state.settings.colorOn});\n }\n\n return (\n
\n {customIcon}\n {this.state.executing ? : null}\n
\n
\n );\n }\n\n getDialogSettings () {\n const settings = super.getDialogSettings();\n\n settings.unshift({\n name: 'inverted',\n value: this.state.settings.inverted || false,\n type: 'boolean'\n });\n\n settings.unshift({\n name: 'toggleOnClick',\n value: this.state.settings.toggleOnClick || false,\n type: 'boolean'\n });\n\n return settings;\n }\n\n saveDialogSettings (settings) {\n this.props.tile.setState({isPointer: settings.toggleOnClick});\n super.saveDialogSettings(settings);\n }\n\n getStateText() {\n if (this.state[this.actualId] === null || this.state[this.actualId] === undefined) {\n return '---';\n } else {\n if (this.workingId && this.state[this.workingId] && this.state.setValue !== null && this.state.setValue !== undefined) {\n return this.realValueToPercent() + '% → ' + this.state.setValue + '%';\n } else {\n return this.realValueToPercent() + '%';\n }\n }\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.id, true),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartBlinds;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\n\nimport {GoDiffModified as IconButton} from 'react-icons/go';\nimport {MdStop as IconStop} from 'react-icons/md';\nimport {MdPlayArrow as IconPlay} from 'react-icons/md';\nimport {MdPause as IconPause} from 'react-icons/md';\nimport {MdReplay as IconReplay} from 'react-icons/md';\nimport {MdShuffle as IconShuffle} from 'react-icons/md';\nimport {MdVolumeMute as IconMute} from 'react-icons/md';\nimport {MdVolumeUp as IconUnmute} from 'react-icons/md';\nimport {MdFastForward as IconForward} from 'react-icons/md';\nimport {MdFastRewind as IconPrev} from 'react-icons/md';\n\nimport Theme from '../theme';\nimport I18n from '../i18n';\n\nclass SmartButton extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n }\n this.defaultEnabling = false; // used in the SmartGeneric\n this.stateRx.pressed = false;\n\n this.icon = IconButton;\n this.style = {};\n let name = this.props.objects && this.props.objects[this.id] && this.props.objects[this.id].common && this.props.objects[this.id].name;\n if (typeof name === 'object') {\n name = name.en;\n }\n let stateName = name + '_' + this.id.split('.').pop();\n\n if (stateName.match(/play/i)) {\n this.icon = IconPlay;\n this.style = {color: 'green'};\n } else if (stateName.match(/stop/i)) {\n this.icon = IconStop;\n this.style = {color: 'red'};\n } else if (stateName.match(/pause/i)) {\n this.icon = IconPause;\n this.style = {color: 'grey'};\n } else if (stateName.match(/unmute/i)) {\n this.icon = IconUnmute;\n this.style = {color: 'blue'};\n } else if (stateName.match(/mute/i)) {\n this.icon = IconMute;\n this.style = {color: 'blue'};\n } else if (stateName.match(/forw/i)) {\n this.icon = IconForward;\n this.style = {color: 'yellow'};\n } else if (stateName.match(/prev/i)) {\n this.icon = IconPrev;\n this.style = {color: 'yellow'};\n } else if (stateName.match(/replay/i)) {\n this.icon = IconReplay;\n } else if (stateName.match(/shuff/i)) {\n this.icon = IconShuffle;\n }\n this.key = 'smart-button-' + this.id + '-';\n\n this.props.tile.setState({isPointer: true});\n this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n onTileClick() {\n this.props.onControl(this.id, true);\n this.setState({pressed: true});\n setTimeout(() => this.setState({pressed: false}), 500);\n }\n\n getIcon() {\n let customIcon;\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n const Icon = this.icon;\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n return this.state.pressed ? I18n.t('pressed') : '';\n }\n\n render() {\n return this.wrapContent(this.getStandardContent(null));\n }\n}\n\nexport default SmartButton;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nimport {TiLightbulb as Icon} from 'react-icons/ti'\n\nimport SmartGeneric from './SmartGeneric';\nimport Theme from '../theme';\nimport Dialog from '../Dialogs/SmartDialogSlider';\nimport I18n from '../i18n';\n\nclass SmartDimmer extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state && this.props.objects[state.id] && this.props.objects[state.id].common) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ON_SET');\n this.onId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ON_ACTUAL');\n this.onActualId = state ? state.id : this.onId;\n }\n\n if (this.id) {\n this.max = this.props.objects[this.actualId].common.max;\n if (this.max === undefined) {\n this.max = 100;\n }\n this.max = parseFloat(this.max);\n\n this.min = this.props.objects[this.actualId].common.min;\n if (this.min === undefined) {\n this.min = 0;\n }\n this.min = parseFloat(this.min);\n\n this.props.tile.setState({\n isPointer: true\n });\n }\n\n this.key = 'smart-dimmer-' + this.id + '-';\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n this.stateRx.setValue = null;\n this.doubleState = true; // used in generic\n\n this.componentReady();\n }\n\n realValueToPercent(val) {\n if (val === undefined) {\n if (this.props.states[this.actualId]) {\n val = this.props.states[this.actualId].val || 0;\n } else {\n val = 0;\n }\n }\n val = parseFloat(val);\n return Math.round((val - this.min) / (this.max - this.min) * 100);\n }\n\n percentToRealValue(percent) {\n percent = parseFloat(percent);\n return Math.round((this.max - this.min) * percent / 100);\n }\n\n updateState(id, state) {\n let newState = {};\n\n if (this.onActualId === id || (this.onId === id && this.onId === this.onActualId && state.ack)) {\n let val = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON' || state.val === 'ein' || state.val === 'EIN';\n newState[id] = val;\n\n this.setState(newState);\n\n this.props.tile.setState({\n state: val\n });\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n } else\n if (this.actualId === id || (this.id === id && this.id === this.actualId && state.ack)) {\n const val = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n if (!isNaN(val)) {\n newState[id] = this.realValueToPercent(val);\n this.setState(newState);\n\n if (!this.onActualId) {\n const tileState = val !== this.min;\n this.props.tile.setState({\n state: tileState\n });\n }\n } else {\n newState[id] = null;\n this.setState(newState);\n if (!this.onActualId) {\n this.props.tile.setState({\n state: false\n });\n }\n }\n\n // hide desired value\n if (this.state.setValue === newState[id] && state.ack) {\n this.setState({setValue: null});\n }\n\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n } else if (id === this.id) {\n newState[id] = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n this.setState(newState);\n } else if (id === this.onId) {\n newState[id] = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON' || state.val === 'ein' || state.val === 'EIN';\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n setValue(percent) {\n if (percent) {\n this.lastNotNullPercent = percent;\n } else {\n const p = this.realValueToPercent();\n if (p) {\n this.lastNotNullPercent = p;\n }\n }\n\n console.log('Control ' + this.id + ' = ' + this.percentToRealValue(percent));\n this.setState({executing: true, setValue: percent});\n this.props.onControl(this.id, this.percentToRealValue(percent));\n }\n\n onToggleValue() {\n if (this.onId) {\n this.props.onControl(this.onId, !this.state[this.onActualId]);\n } else {\n let newValue;\n const percent = this.realValueToPercent();\n if (percent) {\n newValue = 0;\n } else {\n newValue = this.lastNotNullPercent || 100;\n }\n this.setValue(newValue);\n }\n }\n\n getIcon() {\n let customIcon;\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n {this.state.executing ? : null}\n
\n );\n }\n\n getStateText() {\n if (this.onActualId && this.state[this.onActualId] === false) {\n return I18n.t('Off');\n }\n if (this.state[this.actualId] === null || this.state[this.actualId] === undefined) {\n return '---';\n } else {\n if (this.workingId && this.state[this.workingId] && this.state.setValue !== null && this.state.setValue !== undefined) {\n return this.realValueToPercent(this.state[this.actualId]) + '% → ' + this.state.setValue + '%';\n } else {\n return this.realValueToPercent(this.state[this.actualId]) + '%';\n }\n }\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.id, true),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartDimmer;\n\n","import React from \"react\";\n\nconst ThermometerSimple = props => (\n \n \n \n \n \n);\n\nexport default ThermometerSimple;\n","import React from \"react\";\n\nconst Humidity = props => (\n \n \n \n \n \n \n);\n\nexport default Humidity;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@material-ui/core/styles';\n// import Moment from 'react-moment';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\n\nconst styles = theme => ({\n line: {\n width: 'calc(100% - 6px)'\n },\n input: {\n width: 'calc(60% - 10px)'\n },\n button: {\n width: '40%',\n marginLeft: 10\n },\n icon: {\n height: 20,\n marginRight: 10\n }\n});\n\nclass InputControl extends Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.object.isRequired,\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n type: PropTypes.string,\n onChange: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n this.type = this.props.type || (typeof this.props.value === 'number' ? 'number' : 'text');\n this.state = {\n val: this.props.value ? this.props.value.val : '?',\n ts: this.props.value ? this.props.value.ts : 0,\n lc: this.props.value ? this.props.value.lc : 0\n }\n }\n\n onChange(val) {\n this.setState({val});\n }\n\n onKeyDown(e) {\n if (e.keyCode === 13) {\n this.props.onChange(this.type === 'number' ? parseFloat(this.state.val) : this.state.val);\n }\n }\n\n render() {\n const {classes, label, icon, onChange} = this.props;\n let Icon;\n if (icon) {\n if (typeof icon === 'object') {\n Icon = icon;\n Icon = ();\n } else {\n Icon = ({label});\n }\n }\n return (\n
\n this.onChange(event.target.value)}\n margin=\"normal\"\n />\n onChange(this.type === 'number' ? parseFloat(this.state.val) : this.state.val)}\n variant=\"contained\">\n {Icon}\n {label}\n \n
\n );\n }\n}\n\nexport default withStyles(styles)(InputControl);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport {withStyles} from '@material-ui/core/styles';\nimport Moment from 'react-moment';\nimport Theme from '../../theme';\n\nconst styles = () => (Theme.dialog.info);\n\nconst InfoControl = ({classes, label, value, onChange, language, icon, unit}) => {\n let Icon;\n if (icon) {\n if (typeof icon === 'object') {\n Icon = icon;\n Icon = ();\n } else {\n Icon = ({label});\n }\n }\n\n return (\n
\n {Icon}\n \n {label}\n \n {value && value.val !== undefined && value.val !== null ? value.val.toString() : '?'}\n {unit && ({unit})}\n \n {value && value.lc && ()}\n \n
\n );\n};\n\nInfoControl.propTypes = {\n classes: PropTypes.object.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.object.isRequired,\n language: PropTypes.string.isRequired,\n unit: PropTypes.string,\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n onChange: PropTypes.func // if no onChange => readOnly\n};\n\nexport default withStyles(styles)(InfoControl);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Theme from '../theme';\nimport I18n from '../i18n';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport Button from '@material-ui/core/Button';\nimport Slider from '@material-ui/lab/Slider';\nimport SmartDialogGeneric from './SmartDialogGeneric';\nimport Typography from '@material-ui/core/Typography';\nimport BoolControl from '../basic-controls/react-info-controls/BoolControl'\nimport InputControl from '../basic-controls/react-info-controls/InputControl'\nimport InfoControl from '../basic-controls/react-info-controls/InfoControl'\n\nclass SmartDialogInfo extends SmartDialogGeneric {\n // expected:\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string.isRequired,\n windowWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n objects: PropTypes.object,\n states: PropTypes.object,\n onValueChange: PropTypes.func,\n points: PropTypes.array.isRequired\n };\n\n constructor(props) {\n super(props);\n this.props.points.forEach(e => {\n const state = this.props.states[e.id];\n if (state) {\n this.stateRx[e.id] = {val: state.val, ts: state.ts, lc: state.lc};\n } else {\n this.stateRx[e.id] = null;\n }\n this.subscribes = this.subscribes || [];\n this.subscribes.push(e.id);\n });\n this.refDialog = React.createRef();\n\n this.componentReady();\n }\n\n controlValue(id, value) {\n this.setState({toast: I18n.t('sent')});\n this.props.onValueChange && this.props.onValueChange(id, value);\n }\n\n handleToggle(id) {\n const newState = {};\n const state = this.state[id];\n newState[id] = {val: !(state && state.val)};\n if (state) {\n newState[id].lc = state.lc;\n newState[id].ts = state.ts;\n }\n this.setState(newState);\n this.controlValue(id, newState[id].val);\n }\n\n handleValue(id, value) {\n const newState = {};\n newState[id] = {val: value};\n const state = this.state[id];\n if (state) {\n newState[id].lc = state.lc;\n newState[id].ts = state.ts;\n }\n if (this.state[id].val !== newState[id].val) {\n this.setState(newState);\n }\n this.controlValue(id, value);\n }\n\n generateContent() {\n const result = this.props.points.map((e, i) => {\n const divider = i !== this.props.points.length - 1 ? () : null;\n\n let item;\n\n if (e.common && e.common.write) {\n if (e.common.type === 'boolean') {\n // switch\n if (e.common.read !== false) {\n item = ( this.handleToggle(e.id)}\n />);\n } else { // button: read = false, write = true\n item = (
\n \n
);\n }\n } else\n if (e.common.type === 'number' && e.common.min !== undefined && e.common.max !== undefined && e.common.max - e.common.min < 5000) {\n // slider\n item = [({e.name} - {this.state[e.id] ? this.state[e.id].val : '?'}{e.unit}),\n ( this.handleValue(e.id, value)}\n /*label={\n
\n
\n {this.state[e.id].val}\n
\n
\n }*/\n />)];\n } else {\n // input field\n item = ( this.handleValue(e.id, value)}\n />);\n }\n } else {\n if (e.common && e.common.type === 'boolean') {\n item = ();\n } else {\n item = (\n \n );\n }\n }\n\n if (divider) {\n return [item, divider];\n } else {\n return item;\n }\n });\n return [\n (

{this.props.name}

),\n ({result})\n ];\n }\n}\n\nexport default SmartDialogInfo;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\nimport IconThermometer from '../icons/ThermometerSimple';\nimport IconHydro from '../icons/Humidity';\nimport {MdInfo as IconInfo} from 'react-icons/md';\nimport Utils from '../Utils';\n\nimport Theme from '../theme';\nimport I18n from '../i18n';\nimport Dialog from '../Dialogs/SmartDialogInfo';\nimport PropTypes from 'prop-types';\n\nconst invisibleDefaultRoles = [\n /^timer.off$/,\n /^inhibit$/,\n];\n\nclass SmartInfo extends SmartGeneric {\n // expected:\n static propTypes = {\n tile: PropTypes.object.isRequired,\n objects: PropTypes.object.isRequired,\n states: PropTypes.object.isRequired,\n onCollectIds: PropTypes.func,\n onControl: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n let hasControls = false;\n if (this.channelInfo.states) {\n let infoIDs = this.channelInfo.states.filter(state => state.id && state.name === 'ACTUAL').map(state => state.id);\n // place numbers first\n if (infoIDs.length > 1) {\n infoIDs.sort((a, b) => {\n const objA = this.props.objects[a];\n const objB = this.props.objects[b];\n const typeA = objA && objA.common && objA.common.type;\n const typeB = objB && objB.common && objB.common.type;\n if (typeA && !typeB) return 1;\n if (!typeA && typeB) return -1;\n if (typeA === 'number' && typeB !== 'number') return -1;\n if (typeA !== 'number' && typeB === 'number') return 1;\n return 0;\n });\n }\n if (infoIDs[0]) {\n this.id = infoIDs[0];\n } else {\n this.id = '';\n }\n\n if (infoIDs[1]) {\n this.secondary = {\n id: infoIDs[1]\n };\n }\n const name = this.getObjectNameCh();\n this.infos = infoIDs.map(id => SmartInfo.getObjectAttributes(this.props.objects, id, name));\n hasControls = !!this.infos.find(item => item.common && item.common.write);\n }\n\n if (!this.infos.find(state => !invisibleDefaultRoles.find(test => !test.test(state.role)))) {\n this.defaultEnabling = false;\n }\n\n // make tile with opacity 1\n this.props.tile.state.state = true;\n\n if (this.infos && (this.infos.length > 2 || hasControls)) {\n this.stateRx.showDialog = false; // support dialog in this tile (used in generic class)\n }\n\n this.props.tile.setState({\n isPointer: this.showCorner\n });\n\n this.key = 'smart-info-' + this.id + '-';\n\n this.componentReady();\n }\n\n static getObjectAttributes(objects, id, channelName) {\n if (!id || !objects[id] || !objects[id].common) return null;\n const role = objects[id].common.role || '';\n const unit = objects[id].common.unit || '';\n let title = objects[id].common.name || id.split('.').pop();\n if (!title) {\n title = id.split('.').pop();\n }\n if (typeof title === 'object') {\n title = title[I18n.getLanguage()] || title.en || id.split('.').pop();\n }\n\n title = title.replace(/[._]/g, ' ').trim();\n if (title.toUpperCase() !== channelName.toUpperCase()) {\n title = title.replace(channelName, '').trim();\n }\n\n title = Utils.splitCamelCase(title);\n\n if (role.match(/humidity/i)) {\n return {\n id: id,\n icon: IconHydro,\n iconStyle: {color: '#0056c3'},\n unit: unit ? ' ' + unit : ' %',\n role: role,\n name: title,\n common: objects[id].common\n }\n } else if (role.match(/temperature/i)) {\n return {\n id: id,\n icon: IconThermometer,\n iconStyle: {color: '#e54100'},\n unit: unit ? ' ' + unit : '°',\n name: title,\n role: role,\n common: objects[id].common\n }\n } else {\n return {\n id: id,\n unit: unit ? ' ' + unit : '',\n icon: Utils.getObjectIcon(id, objects[id]),\n name: title,\n role: role,\n common: objects[id].common\n }\n }\n }\n\n updateState(id, state) {\n if (this.infos && this.infos.find(e => e.id === id)) {\n const newState = {};\n newState[id] = state.val;\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n getIcon() {\n let customIcon;\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\");\n } else {\n const Icon = this.infos[0].icon || IconInfo;\n customIcon = ();\n }\n }\n\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n const state = this.state[this.id];\n return state === undefined || state === null ? '?' : state + this.infos[0].unit;\n }\n\n getSecondaryDiv() {\n if (!this.infos || !this.infos[1] || !this.infos[1].id || this.state[this.infos[1].id] === undefined || this.state[this.infos[1].id] === null) {\n return null;\n }\n let val = this.state[this.infos[1].id];\n const icon = this.infos[1].icon;\n let Icon;\n if (icon) {\n if (typeof icon === 'object') {\n Icon = icon;\n Icon = ();\n } else {\n Icon = ({')\n }\n }\n\n return (
\n {Icon}\n {val + this.infos[1].unit}\n
);\n }\n\n getNumberOfValuesIndicator() {\n if (this.infos.length <= 2) return null;\n return (
{this.infos.length}
);\n }\n\n getFirstName() {\n this.firstName = this.firstName || I18n.t(Utils.CapitalWords(this.id.split('.').pop()));\n\n return [({this.state.settings.name} ),({this.firstName})];\n }\n\n setValue(id, value) {\n console.log('Control ' + id + ' = ' + value);\n this.props.onControl(id, value);\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.actualId),\n this.getSecondaryDiv(),\n this.getNumberOfValuesIndicator(),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartInfo;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport SmartGeneric from './SmartGeneric';\nimport {TiLightbulb as Icon} from 'react-icons/ti';\nimport Theme from '../theme';\nimport Dialog from '../Dialogs/SmartDialogSlider';\n\nclass SmartSlider extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state && this.props.objects[state.id] && this.props.objects[state.id].common) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n }\n\n if (this.id) {\n this.max = this.props.objects[this.actualId].common.max;\n this.min = this.props.objects[this.actualId].common.min;\n\n this.props.tile.setState({\n isPointer: true\n });\n\n this.unit = this.props.objects[this.actualId].common.unit;\n this.unit = this.unit ? ' ' + this.unit : '';\n }\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n this.stateRx.setValue = null;\n this.key = 'smart-slider-' + this.id + '-';\n this.doubleState = true; // used in generic\n\n this.icon = Icon;\n\n this.componentReady();\n }\n\n updateState(id, state) {\n let newState = {};\n const val = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n\n if (this.actualId === id || (this.id === id && this.id === this.actualId && state.ack)) {\n if (!isNaN(val)) {\n newState[id] = val;\n this.setState(newState);\n\n const tileState = val !== this.min;\n this.props.tile.setState({state: tileState});\n } else {\n newState[id] = null;\n this.setState(newState);\n this.props.tile.setState({state: false});\n }\n\n // hide desired value\n if (this.state.setValue === newState[id] && state.ack) {\n this.setState({setValue: null});\n }\n\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n } else if (id === this.id) {\n newState[id] = val;\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n setValue(value) {\n console.log('Control ' + this.id + ' = ' + value);\n if (this.actualId !== this.id) {\n this.setState({executing: true, setValue: value});\n }\n this.props.onControl(this.id, value);\n }\n\n getIcon() {\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n let IconCustom = this.icon;\n if (IconCustom) {\n customIcon = ();\n }\n }\n }\n if (customIcon) {\n return (\n
\n {customIcon}\n {this.state.executing ? : null}\n
\n );\n } else {\n return null;\n }\n }\n\n getDialogSettings () {\n const settings = super.getDialogSettings();\n settings.push({\n name: 'decimals',\n value: this.state.settings.decimals || 0,\n type: 'number',\n min: 0,\n max: 6\n });\n\n return settings;\n }\n\n getStateText() {\n if (this.state[this.actualId] === null || this.state[this.actualId] === undefined) {\n return '---';\n } else {\n if (this.workingId && this.state[this.workingId] && this.state.setValue !== null && this.state.setValue !== undefined) {\n return this.roundValue(this.state[this.id]) + this.unit + ' → ' + this.state.setValue + this.unit;\n } else {\n return this.roundValue(this.state[this.id]) + this.unit;\n }\n }\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(null, true),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartSlider;\n\n","import React from \"react\";\n\nconst WindowOpened = props => (\n \n \n \n \n \n \n);\n\nexport default WindowOpened;\n","import React from \"react\";\n\nconst WindowClosed = props => (\n \n \n \n \n \n);\n\nexport default WindowClosed;\n","import React from \"react\";\n\nconst MotionOn = props => (\n \n \n \n \n);\n\nexport default MotionOn;\n","import React from \"react\";\n\nconst MotionOff = props => (\n \n \n \n \n \n \n \n \n \n);\n\nexport default MotionOff;\n","import React from \"react\";\n\nconst FireOn = props => (\n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default FireOn;\n","import React from \"react\";\n\nconst FireOff = props => (\n \n \n \n \n \n);\n\nexport default FireOff;\n","import React from \"react\";\n\nconst FloodOn = props => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default FloodOn;\n","import React from \"react\";\n\nconst FloodOff = props => (\n \n \n \n \n \n \n \n \n);\n\nexport default FloodOff;\n","import React from \"react\";\n\nconst DoorOpened = props => (\n \n \n \n \n);\n\nexport default DoorOpened;\n","import React from \"react\";\n\nconst DoorClosed = props => (\n \n \n \n \n);\n\nexport default DoorClosed;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport Moment from 'react-moment';\nimport SmartGeneric from './SmartGeneric';\nimport IconWindowOpened from '../icons/WindowOpened';\nimport IconWindowClosed from '../icons/WindowClosed';\nimport IconMotionOn from '../icons/MotionOn';\nimport IconMotionOff from '../icons/MotionOff';\nimport IconFireOn from '../icons/FireOn';\nimport IconFireOff from '../icons/FireOff';\nimport IconFloodOn from '../icons/FloodOn';\nimport IconFloodOff from '../icons/FloodOff';\nimport IconDoorOpened from '../icons/DoorOpened';\nimport IconDoorClosed from '../icons/DoorClosed';\nimport {MdBrightness1 as IconSun1} from 'react-icons/md';\nimport {MdBrightness2 as IconSun2} from 'react-icons/md';\nimport {MdBrightness3 as IconSun3} from 'react-icons/md';\nimport {MdBrightness4 as IconSun4} from 'react-icons/md';\nimport {MdBrightness5 as IconSun5} from 'react-icons/md';\nimport {MdBrightness6 as IconSun6} from 'react-icons/md';\nimport {MdBrightness7 as IconSun7} from 'react-icons/md';\n\nimport Theme from '../theme';\nimport I18n from '../i18n';\nimport Types from '../States/SmartTypes';\n// import IconLockOpened from \"react-icons/lib/md/lock-open\";\n// import IconLockClosed from \"react-icons/lib/md/lock\";\n\nconst IconSuns = [IconSun1, IconSun2, IconSun3, IconSun4, IconSun5, IconSun6, IconSun7];\n\nclass SmartState extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'SECOND');\n if (state) {\n this.secondary = {\n id: state.id\n };\n }\n }\n\n if (this.secondary && this.props.objects[this.secondary.id] && this.props.objects[this.secondary.id].common) {\n // detect type of secondary info\n const secondary = this.props.objects[this.secondary.id].common;\n if (secondary.role.match(/brightness/i)) {\n this.secondary.icon = val => {\n if (val > this.secondary.max) {\n return IconSuns[IconSuns.length - 1];\n } else\n if (val < this.secondary.min) {\n return IconSuns[0];\n } else {\n const num = (val - this.secondary.min) / (this.secondary.max - this.secondary.min);\n return IconSuns[Math.round((IconSuns.length - 1) * num)];\n }\n };\n this.secondary.iconStyle = {color: '#c3c300'};\n } else {\n this.secondary.iconStyle = {};\n }\n this.secondary.title = secondary.name || this.secondary.id.split('.').pop();\n if (typeof this.secondary.title === 'object') {\n this.secondary.title = this.secondary.title[I18n.getLanguage()] || this.secondary.title.en;\n }\n this.secondary.min = secondary.min === undefined ? 0 : secondary.min;\n this.secondary.max = secondary.max === undefined ? 100 : secondary.max;\n this.secondary.unit = secondary.unit || '';\n }\n\n if (this.channelInfo.type === Types.window) {\n this.iconOn = IconWindowOpened;\n this.iconOff = IconWindowClosed;\n this.textOn = 'opened';\n this.textOff = 'closed';\n this.showTime = true;\n this.style = {\n width: 60,\n height: 60,\n top: '0.2rem',\n left: '0.2rem'\n };\n } if (this.channelInfo.type === Types.door) {\n this.iconOn = IconDoorOpened;\n this.iconOff = IconDoorClosed;\n this.textOn = 'opened';\n this.textOff = 'closed';\n this.showTime = true;\n this.style = {\n left: '1rem'\n };\n } else if (this.channelInfo.type === Types.motion) {\n this.iconOn = IconMotionOn;\n this.iconOff = IconMotionOff;\n this.iconColorOn = 'green';\n this.iconColorOff = 'grey';\n this.textOn = 'motion';\n this.showTime = true;\n this.textOff = '-';\n } else if (this.channelInfo.type === Types.fireAlarm) {\n this.iconOn = IconFireOn;\n this.iconOff = IconFireOff;\n this.iconColorOn = 'red';\n this.iconColorOff = 'grey';\n this.textOn = 'fire';\n this.showTime = true;\n this.textOff = '-';\n this.hideOnFalse = true;\n } else if (this.channelInfo.type === Types.floodAlarm) {\n this.iconOn = IconFloodOn;\n this.iconOff = IconFloodOff;\n this.iconColorOn = 'blue';\n this.iconColorOff = 'grey';\n this.textOn = 'flood';\n this.textOff = '-';\n this.showTime = true;\n this.hideOnFalse = true;\n }\n\n this.props.tile.setState({\n isPointer: false\n });\n\n this.doubleState = true; // used in generic\n\n this.key = 'smart-state-' + this.id + '-';\n\n //this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n updateState(id, state) {\n if (id === this.id) {\n let val = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON';\n const newState = {};\n if (this.state.settings.inverted) {\n val = !val;\n }\n newState[id] = val;\n\n if (this.showTime && state.lc) {\n this.lastChange = state.lc;\n } else {\n this.lastChange = 0;\n }\n\n this.setState(newState);\n this.props.tile.setState({\n state: val\n });\n\n if (this.hideOnFalse) {\n let someIndicator = false;\n if (this.indicators) {\n const ids = Object.keys(this.indicators).filter(_id => this.indicators[_id]);\n someIndicator = !!ids.find(_id => this.state[this.indicators[_id]]);\n }\n\n this.props.tile.setVisibility(val || someIndicator);\n }\n } else if (this.secondary && this.secondary.id === id) {\n const newState = {};\n newState[id] = state.val;\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n getDialogSettings () {\n const settings = super.getDialogSettings();\n\n settings.unshift({\n name: 'inverted',\n value: this.state.settings.inverted || false,\n type: 'boolean'\n });\n return settings;\n }\n\n getIcon() {\n const isOn = this.state[this.id] === '1' || this.state[this.id] === 1 || this.state[this.id] === true || this.state[this.id] === 'true' || this.state[this.id] === 'on' || this.state[this.id] === 'ON';\n const color = isOn ? this.iconColorOn : this.iconColorOff;\n let style = color ? {color} : {};\n if (this.style) {\n style = Object.assign(style, this.style);\n }\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n const Icon = isOn ? this.iconOn : this.iconOff;\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n const state = this.state[this.id];\n if (state === undefined || state === null || !this.lastChange || !this.showTime) {\n const isOn = this.state[this.id] === '1' || this.state[this.id] === 1 || this.state[this.id] === true || this.state[this.id] === 'true' || this.state[this.id] === 'on' || this.state[this.id] === 'ON';\n return isOn ? I18n.t(this.textOn) : I18n.t(this.textOff);\n } else {\n return ();\n }\n }\n\n getSecondaryDiv() {\n if (!this.secondary || !this.secondary.id || this.state[this.secondary.id] === undefined || this.state[this.secondary.id] === null) {\n return null;\n }\n let val = this.state[this.secondary.id];\n const Icon = (typeof this.secondary.icon === 'function') ? this.secondary.icon.call(this, val) : this.secondary.icon;\n if (typeof val === 'number') {\n val = Math.round(val * 100) / 100;\n }\n return (
\n {Icon ? () : null}\n {val + (this.secondary.unit ? ' ' + this.secondary.unit : '')}\n
);\n\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.actualId),\n this.getSecondaryDiv()\n ]);\n }\n}\n\nexport default SmartState;\n\n","import React from \"react\";\n\nconst Socket = props => (\n \n \n \n \n \n \n);\n\nexport default Socket;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\n\nimport {TiLightbulb as IconLight} from 'react-icons/ti';\nimport {MdCheck as IconCheck} from 'react-icons/md';\nimport {MdCancel as IconCancel} from 'react-icons/md';\nimport IconSwitch from '../icons/Socket';\n\nimport Types from './SmartTypes';\nimport Theme from '../theme';\nimport I18n from '../i18n';\nimport CircularProgress from '@material-ui/core/CircularProgress';\n\nclass SmartSwitch extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n }\n if (this.channelInfo) {\n switch (this.channelInfo.type) {\n case Types.light:\n this.iconOn = IconLight;\n this.iconOff = IconLight;\n this.colorOn = Theme.palette.lampOn;\n this.colorOff = 'inherit';\n this.style = {};\n break;\n\n case Types.socket:\n default:\n if (this.props.objects[this.id] && this.props.objects[this.id].common && this.props.objects[this.id].common.role ==='switch.active') {\n this.iconOn = IconCheck;\n this.iconOff = IconCancel;\n } else {\n this.iconOn = IconSwitch;\n this.iconOff = IconSwitch;\n }\n this.colorOn = Theme.palette.lampOn;\n this.colorOff = 'inherit';\n this.backOn = Theme.palette.lampOn;\n this.backOff = 'gray';\n this.style = {left: '1rem'};\n break;\n }\n }\n\n this.props.tile.setState({\n isPointer: true\n });\n this.key = 'smart-switch-' + this.id + '-';\n this.doubleState = true; // used in generic\n\n this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n updateState(id, state) {\n const newState = {};\n const val = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON';\n if (id === this.actualId || (this.id === id && this.id === this.actualId && state.ack)) {\n newState[id] = val;\n this.setState(newState);\n\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n\n this.props.tile.setState({\n state: val\n });\n } else if (id === this.id) {\n newState[id] = val;\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n toggle() {\n if (this.actualId !== this.id) {\n this.setState({executing: true});\n }\n this.props.onControl(this.id, !this.state[this.actualId]);\n }\n\n onTileClick() {\n this.toggle();\n }\n\n getIcon() {\n const state = !!this.state[this.actualId];\n let style = state ? {color: this.colorOn} : {color: this.colorOff};\n if (this.style) {\n style = Object.assign(style, this.style);\n }\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n const Icon = this.state[this.actualId] ? this.iconOn : this.iconOff;\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n {this.state.executing ? : null}\n
\n );\n }\n\n getStateText() {\n return this.state[this.id] ? I18n.t('On') : I18n.t('Off')\n }\n\n render() {\n return this.wrapContent(this.getStandardContent(this.actualId));\n }\n}\n\nexport default SmartSwitch;\n\n","import React from \"react\";\n\nconst Thermometer = props => (\n \n \n \n \n);\n\nexport default Thermometer;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\nimport IconThermometer from '../icons/Thermometer';\nimport IconHydro from '../icons/Humidity';\n\nimport Theme from '../theme';\nimport I18n from '../i18n';\n\nclass SmartThermometer extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'SECOND');\n if (state) {\n this.secondary = {\n id: state.id\n };\n }\n }\n\n this.props.tile.state.state = true;\n\n if (this.secondary && this.props.objects[this.secondary.id] && this.props.objects[this.secondary.id].common) {\n // detect type of secondary info\n const secondary = this.props.objects[this.secondary.id].common;\n if (secondary.role.match(/humidity/i)) {\n this.secondary.icon = IconHydro;\n this.secondary.iconStyle = {color: '#0056c3'};\n } else {\n this.secondary.iconStyle = {};\n }\n this.secondary.title = secondary.name || this.secondary.id.split('.').pop();\n if (typeof this.secondary.title === 'object') {\n this.secondary.title = this.secondary.title[I18n.getLanguage()] || this.secondary.title.en;\n }\n this.secondary.unit = secondary.unit ? ' ' + secondary.unit : '';\n }\n\n if (this.id && this.props.objects[this.id] && this.props.objects[this.id] && this.props.objects[this.id].common.unit) {\n this.unit = ' ' + this.props.objects[this.id].common.unit;\n } else {\n this.unit = '';\n }\n\n this.props.tile.setState({\n isPointer: false\n });\n\n this.key = 'smart-thermometer-' + this.id + '-';\n\n //this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n updateState(id, state) {\n if (id === this.id) {\n const newState = {};\n newState[id] = state.val;\n\n this.setState(newState);\n } else if (this.secondary && this.secondary.id === id) {\n const newState = {};\n newState[id] = state.val;\n this.setState(newState);\n } else{\n super.updateState(id, state);\n }\n }\n\n getIcon() {\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n }\n\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n const state = this.state[this.id];\n return state === undefined || state === null ? '?' : state + this.unit;\n }\n\n getSecondaryDiv() {\n if (!this.secondary || !this.secondary.id || this.state[this.secondary.id] === undefined || this.state[this.secondary.id] === null) {\n return null;\n }\n let val = this.state[this.secondary.id];\n const Icon = this.secondary.icon;\n if (typeof val === 'number') {\n val = Math.round(val * 100) / 100;\n }\n return (
\n {Icon ? () : null}\n {val + this.secondary.unit}\n
);\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.actualId),\n this.getSecondaryDiv()\n ]);\n }\n}\n\nexport default SmartThermometer;\n\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass Thermostat extends Component {\n getStyles() {\n // Determine if the thermostat is actively working to reach the target temperature.\n let dialColor = '#222';\n if (this.props.hvacMode === 'heating') {\n dialColor = '#E36304';\n } else if (this.props.hvacMode === 'cooling') {\n dialColor = '#007AF1';\n }\n\n return {\n dial: {\n WebkitUserSelect: 'none',\n MozUserSelect: 'none',\n msUserSelect: 'none',\n userSelect: 'none',\n },\n circle: {\n fill: dialColor,\n WebkitTransition: 'fill 0.5s',\n transition: 'fill 0.5s',\n },\n target: {\n fill: 'white',\n textAnchor: 'middle',\n fontFamily: 'Helvetica, sans-serif',\n alignmentBaseline: 'central',\n fontSize: '120px',\n fontWeight: 'bold',\n visibility: (this.props.away ? 'hidden' : 'visible'),\n },\n ambient: {\n fill: 'white',\n textAnchor: 'middle',\n fontFamily: 'Helvetica, sans-serif',\n alignmentBaseline: 'central',\n fontSize: '22px',\n fontWeight: 'bold',\n },\n away: {\n fill: 'white',\n textAnchor: 'middle',\n fontFamily: 'Helvetica, sans-serif',\n alignmentBaseline: 'central',\n fontSize: '72px',\n fontWeight: 'bold',\n opacity: (this.props.away ? '1' : '0'),\n pointerEvents: 'none',\n },\n leaf: {\n fill: '#13EB13',\n opacity: (this.props.leaf ? '1' : '0'),\n visibility: (this.props.away ? 'hidden' : 'visible'),\n WebkitTransition: 'opacity 0.5s',\n transition: 'opacity 0.5s',\n pointerEvents: 'none',\n },\n };\n }\n\n pointsToPath(points) {\n return [points.map(\n (point, iPoint) => [(iPoint > 0 ? 'L' : 'M'), point[0], ' ', point[1]].join('')\n ).join(' '), 'Z'].join('');\n }\n\n rotatePoint(point, angle, origin) {\n const radians = angle * Math.PI / 180;\n const x = point[0] - origin[0];\n const y = point[1] - origin[1];\n const x1 = x * Math.cos(radians) - y * Math.sin(radians) + origin[0];\n const y1 = x * Math.sin(radians) + y * Math.cos(radians) + origin[1];\n return [x1, y1];\n }\n\n rotatePoints(points, angle, origin) {\n const _self = this;\n return points.map(\n (point) => _self.rotatePoint(point, angle, origin)\n );\n }\n\n restrictToRange(val, min, max) {\n if (val < min) return min;\n if (val > max) return max;\n return val;\n }\n\n mapLeafPoint(point, scale) {\n return isNaN(point) ? point : point * scale;\n }\n\n render() {\n const _self = this;\n\n // Local variables used for rendering.\n const diameter = 400;\n const radius = diameter / 2;\n const ticksOuterRadius = diameter / 30;\n const ticksInnerRadius = diameter / 8;\n const tickDegrees = 300;\n const rangeValue = this.props.maxValue - this.props.minValue;\n\n // Determine the maximum and minimum values to display.\n let actualMinValue;\n let actualMaxValue;\n if (this.props.away) {\n actualMinValue = this.props.ambientTemperature;\n actualMaxValue = actualMinValue;\n } else {\n actualMinValue = Math.min(this.props.ambientTemperature, this.props.targetTemperature);\n actualMaxValue = Math.max(this.props.ambientTemperature, this.props.targetTemperature);\n }\n const min = this.restrictToRange(Math.round((actualMinValue - this.props.minValue)\n / rangeValue * this.props.numTicks), 0, this.props.numTicks - 1);\n const max = this.restrictToRange(Math.round((actualMaxValue - this.props.minValue)\n / rangeValue * this.props.numTicks), 0, this.props.numTicks - 1);\n\n // Renders the degree ticks around the outside of the thermostat.\n const tickPoints = [\n [radius - 1, ticksOuterRadius],\n [radius + 1, ticksOuterRadius],\n [radius + 1, ticksInnerRadius],\n [radius - 1, ticksInnerRadius],\n ];\n const tickPointsLarge = [\n [radius - 1.5, ticksOuterRadius],\n [radius + 1.5, ticksOuterRadius],\n [radius + 1.5, ticksInnerRadius + 20],\n [radius - 1.5, ticksInnerRadius + 20],\n ];\n const theta = tickDegrees / this.props.numTicks;\n const offsetDegrees = 180 - (360 - tickDegrees) / 2;\n const tickArray = [];\n for (let iTick = 0; iTick < this.props.numTicks; iTick++) {\n const isLarge = iTick === min || iTick === max;\n const isActive = iTick >= min && iTick <= max;\n const tickElement = React.createElement('path', {\n key: ['tick-', iTick].join(''),\n d: this.pointsToPath(\n this.rotatePoints(\n isLarge ? tickPointsLarge : tickPoints,\n iTick * theta - offsetDegrees,\n [radius, radius])),\n style: {\n fill: isActive ? 'rgba(255, 255, 255, 0.8)' : 'rgba(255, 255, 255, 0.3)',\n },\n });\n tickArray.push(tickElement);\n }\n\n // Determines the positioning of the leaf, should it be displayed.\n const leafScale = radius / 5 / 100;\n const leafDef = ['M', 3, 84, 'c', 24, 17, 51, 18, 73, -6, 'C', 100, 52, 100,\n 22, 100, 4, 'c', -13, 15, -37, 9, -70, 19, 'C', 4, 32, 0, 63, 0, 76, 'c',\n 6, -7, 18, -17, 33, -23, 24, -9, 34, -9, 48, -20, -9, 10, -20, 16, -43, 24,\n 'C', 22, 63, 8, 78, 3, 84, 'z',\n ].map(\n (point) => _self.mapLeafPoint(point, leafScale)\n ).join(' ');\n const translate = [radius - (leafScale * 100 * 0.5), radius * 1.5];\n\n // Determines whether the ambient temperature label will be displayed\n // to the left or right of the tick range.\n const lblAmbientPosition = [\n radius,\n ticksOuterRadius - (ticksOuterRadius - ticksInnerRadius) / 2,\n ];\n const peggedValue = this.restrictToRange(\n this.props.ambientTemperature,\n this.props.minValue,\n this.props.maxValue);\n let degs = tickDegrees * (peggedValue - this.props.minValue) / rangeValue - offsetDegrees;\n if (peggedValue > this.props.targetTemperature) {\n degs += 8;\n } else {\n degs -= 8;\n }\n const ambientPosition = this.rotatePoint(lblAmbientPosition, degs, [radius, radius]);\n\n // The styles change based on state.\n const styles = this.getStyles();\n\n // Piece it all together to form the thermostat display.\n return (\n \n \n {tickArray}\n \n {Math.round(this.props.targetTemperature)}\n \n \n {Math.round(this.props.ambientTemperature)}\n \n AWAY\n \n \n );\n }\n}\n\nThermostat.propTypes = {\n /* Height of the thermostat (ex: 50% or 400px) */\n height: PropTypes.string,\n /* Width of the thermostat (ex: 50% or 400px) */\n width: PropTypes.string,\n /* Total number of ticks that will be rendered on the thermostat wheel */\n numTicks: PropTypes.number,\n /* Lowest temperature able to be displayed on the thermostat */\n minValue: PropTypes.number,\n /* Highest temperature able to be displayed on the thermostat */\n maxValue: PropTypes.number,\n /* Indicates whether or not the thermostat is in \"away mode\" */\n away: PropTypes.bool,\n /* Indicates whether or not the thermostat is in \"energy savings mode\" */\n leaf: PropTypes.bool,\n /* Actual temperature detected by the thermostat */\n ambientTemperature: PropTypes.number,\n /* Desired temperature that the thermostat attempts to reach */\n targetTemperature: PropTypes.number,\n /* Current state of operations within the thermostat */\n hvacMode: PropTypes.oneOf(['off', 'heating', 'cooling'])\n};\n\nThermostat.defaultProps = {\n height: '100%',\n width: '100%',\n numTicks: 100,\n minValue: 50,\n maxValue: 85,\n away: false,\n leaf: false,\n ambientTemperature: 74,\n targetTemperature: 68,\n hvacMode: 'off',\n};\n\nexport default Thermostat;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport I18n from '../i18n';\nimport ThermostatControl from '../basic-controls/react-nest-thermostat/src/react-nest-thermostat';\nimport Button from '@material-ui/core/Button';\nimport SmartDialogGeneric from './SmartDialogGeneric';\n\nclass SmartDialogThermostat extends SmartDialogGeneric {\n // expected:\n\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string.isRequired,\n windowWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n\n objects: PropTypes.object,\n states: PropTypes.object,\n onValueChange: PropTypes.func,\n startValue: PropTypes.number.isRequired,\n actualValue: PropTypes.number,\n };\n\n static buttonBoostStyle = {\n position: 'absolute',\n left: 'calc(50% - 2em)',\n height: '1.3em',\n width: '4em',\n borderRadius: '1em',\n background: 'white',\n border: '1px solid #b5b5b5',\n paddingTop: '0.1em',\n fontSize: '2em',\n textAlign: 'center',\n cursor: 'pointer',\n boxShadow: '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)'\n };\n // expected:\n // startValue\n // actualValue\n // onValueChange\n // onClose\n // objects\n // states\n constructor(props) {\n super(props);\n this.stateRx.value = props.startValue || 0;\n this.stateRx.boostValue = props.boostValue;\n\n this.min = props.min;\n if (this.min > props.actualValue) {\n this.min = props.actualValue\n }\n if (this.min > props.startValue) {\n this.min = props.startValue\n }\n this.max = props.max;\n if (this.max < props.actualValue) {\n this.max = props.actualValue\n }\n if (this.max < props.startValue) {\n this.max = props.startValue\n }\n\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseUpBind = this.onMouseUp.bind(this);\n this.onMouseDownBind = this.onMouseDown.bind(this);\n\n this.refPanel = React.createRef();\n this.svgControl = null;\n this.componentReady();\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.svgControl = this.refPanel.current.getElementsByTagName('svg')[0];\n this.svgWidth = this.svgControl.clientWidth;\n this.svgHeight = this.svgControl.clientHeight;\n this.svgCenterX = this.svgWidth / 2;\n this.svgCenterY = this.svgHeight / 2;\n this.svgRadius = this.svgCenterX > this.svgCenterY ? this.svgCenterY : this.svgCenterX;\n this.rect = this.svgControl.getBoundingClientRect();\n\n this.svgControl.addEventListener('mousedown', this.onMouseDownBind, {passive: false, capture: true});\n this.svgControl.addEventListener('touchstart', this.onMouseDownBind, {passive: false, capture: true});\n }\n\n static roundValue(value, round) {\n round = round || 0.5;\n return Math.round(value / round) * round;\n }\n posToTemp(x, y) {\n let h;\n if (x < 0) {\n h = Math.atan2(y, -x) * 180 / Math.PI;\n if (y > 0) {\n h = 180 - h;\n } else{\n h = 180 - h;\n }\n } else {\n h = Math.atan2(y, x) * 180 / Math.PI;\n }\n h = h * -1;\n if (h < 0) h += 360;\n h = 360 - h;\n // owr sector\n // 60 => 100%\n // 120 => 0%\n // 270 => 50%\n if (h > 60 && h < 90) {\n h = 60;\n }\n if (h > 90 && h < 120) {\n h = 120;\n }\n if (h < 90) {\n h += 360;\n }\n h -= 120;\n h /= 360 - 60;\n return SmartDialogThermostat.roundValue((this.max - this.min) * h + this.min);\n }\n\n eventToValue(e, checkRadius) {\n let pageY = e.touches ? e.touches[e.touches.length - 1].clientY : e.pageY;\n let pageX = e.touches ? e.touches[e.touches.length - 1].clientX : e.pageX;\n const x = pageX - this.rect.left - this.svgCenterX;\n const y = pageY - this.rect.top - this.svgCenterY;\n if (checkRadius) {\n const radius = Math.sqrt(x * x + y * y);\n if (radius > this.svgRadius * 1.1) {\n return false;\n }\n }\n\n this.setState({value: this.posToTemp(x, y)});\n\n return true;\n }\n\n onMouseMove(e) {\n e.preventDefault();\n e.stopPropagation();\n this.eventToValue(e);\n }\n\n onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (this.eventToValue(e, true)) {\n document.addEventListener('mousemove', this.onMouseMoveBind, {passive: false, capture: true});\n document.addEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.addEventListener('touchmove', this.onMouseMoveBind, {passive: false, capture: true});\n document.addEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n } else {\n this.onClose();\n }\n }\n\n onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n this.click = Date.now();\n document.removeEventListener('mousemove', this.onMouseMoveBind, {passive: false, capture: true});\n document.removeEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.removeEventListener('touchmove', this.onMouseMoveBind, {passive: false, capture: true});\n document.removeEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n\n this.props.onValueChange && this.props.onValueChange(this.state.value);\n }\n\n onBoostMode() {\n this.props.onBoostToggle && this.props.onBoostToggle(!this.state.boostValue);\n this.setState({boostValue: !this.state.boostValue});\n }\n\n generateContent() {\n return (
\n {this.state.boostValue !== null && this.state.boostValue !== undefined ?\n () : null}\n \n
);\n }\n}\n\nexport default SmartDialogThermostat;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\nimport Icon from '../icons/Thermometer'\nimport IconThermometer from '../icons/ThermometerSimple';\nimport IconHydro from '../icons/Humidity';\nimport Theme from '../theme';\nimport Dialog from '../Dialogs/SmartDialogThermostat';\nimport I18n from '../i18n';\n\nclass SmartThermostat extends SmartGeneric {\n // props = {\n // objects: OBJECT\n // tile: parentDiv\n // states: STATES\n // onControl: function\n // };\n\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state && this.props.objects[state.id]&& this.props.objects[state.id].common) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'BOOST');\n this.boostId = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'HUMIDITY');\n this.humidityId = state && state.id;\n }\n\n if (this.humidityId) {\n const common = this.props.objects[this.humidityId] && this.props.objects[this.humidityId].common;\n this.humUnit = common.unit || '%';\n }\n\n if (this.id) {\n const common = this.props.objects[this.id] && this.props.objects[this.id].common;\n this.max = common.max;\n if (this.max === undefined) {\n this.max = 30;\n }\n this.max = parseFloat(this.max);\n\n this.min = common.min;\n if (this.min === undefined) {\n this.min = 12;\n }\n this.min = parseFloat(this.min);\n\n this.unit = common.unit || '°C';\n\n if (this.unit === 'C') {\n this.unit = '°C';\n } else\n if (this.unit === 'C°') {\n this.unit = '°C';\n }\n if (this.unit === 'F') {\n this.unit = '°F';\n } else\n if (this.unit === 'F°') {\n this.unit = '°F';\n }\n\n this.props.tile.setState({\n isPointer: true\n });\n }\n\n this.unit = this.unit || '°C';\n\n this.stateRx.showDialog = false;\n this.props.tile.setState({state: true});\n this.key = 'smart-thermostat-' + this.id + '-';\n\n this.componentReady();\n }\n\n updateState(id, state) {\n let newState = {};\n if (this.actualId === id || id === this.id || id === this.humidityId) {\n newState[id] = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n if (isNaN(newState[id])) {\n newState[id] = null;\n }\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n setValue(degrees) {\n console.log('Control ' + this.id + ' = ' + degrees);\n const newValue = {};\n newValue[this.id] = degrees;\n this.setState(newValue);\n this.props.onControl(this.id, degrees);\n }\n\n getIcon() {\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n if (this.state[this.id] === null) {\n return '?';\n } else {\n return this.state[this.id] + this.unit;\n }\n }\n\n getSecondaryDiv() {\n if (this.actualId === this.id && !this.humidityId) {\n return null;\n }\n return (\n
\n {this.actualId !== this.id ?\n [\n (),\n ({this.state[this.actualId] === null ? '?' : this.state[this.actualId] + this.unit}),\n (
)\n ] : null}\n {this.humidityId ?\n [\n (),\n ({this.state[this.humidityId] === null ? '?' : this.state[this.humidityId] + this.humUnit})\n ] : null}\n
);\n }\n\n onBoostToggle(boostOn) {\n if (boostOn === undefined) {\n boostOn = !this.state[this.boostId];\n }\n const newValue = {};\n newValue[this.boostId] = boostOn;\n this.setState(newValue);\n this.props.onControl(this.boostId, boostOn);\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.id, true),\n this.getSecondaryDiv(),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartThermostat;\n\n","import React from \"react\";\n\nconst WindowTilted = props => (\n \n \n \n \n \n);\n\nexport default WindowTilted;\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\nimport IconWindowOpened from '../icons/WindowOpened';\nimport IconWindowClosed from '../icons/WindowClosed';\nimport IconWindowTilted from '../icons/WindowTilted';\nimport Theme from '../theme';\nimport I18n from '../i18n';\n\nconst VALUES = {\n closed: [/close/i],\n tilted: [/tilt/i],\n opened: [/open/i]\n};\n\nclass SmartWindowTilt extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n }\n this.values = {\n closed: 0,\n tilted: 1,\n opened: 2\n };\n\n if (this.id && this.props.objects[this.id] && this.props.objects[this.id].common && this.props.objects[this.id].common.states) {\n const states = this.props.objects[this.id].common.states;\n for (const val in states) {\n if (states.hasOwnProperty(val)) {\n for (const v in VALUES) {\n if (VALUES.hasOwnProperty(v) && VALUES[v].find(r => r.test(states[val])) !== undefined) {\n this.values[v] = parseInt(val, 10);\n break;\n }\n }\n }\n }\n }\n\n\n this.props.tile.setState({\n isPointer: false\n });\n this.key = 'smart-window-' + this.id + '-';\n\n //this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n updateState(id, state) {\n let val;\n if (typeof state.val !== 'number') {\n const i = parseInt(state.val, 10);\n if (i.toString() === i) {\n val = i;\n } else if (state.val !== null && state.val !== undefined) {\n val = state.val.toString();\n\n for (const value in VALUES) {\n if (VALUES.hasOwnProperty(value)) {\n // eslint-disable-next-line no-loop-func\n if (VALUES[value].find(r => r.test(val))) {\n val = value;\n break;\n }\n }\n }\n } else {\n state.val = 0;\n }\n } else {\n val = state.val;\n }\n if (typeof val === 'number') {\n for (const value in this.values) {\n if (this.values.hasOwnProperty(value) && this.values[value] === val) {\n val = value;\n break;\n }\n }\n }\n if (typeof val === 'number') {\n val = 'closed';\n }\n\n if (id === this.id) {\n const newState = {};\n newState[id] = val;\n this.setState(newState);\n\n if ((!this.props.tile.state.state && val !== 'closed') || (this.props.tile.state.state && val === 'closed')) {\n this.props.tile.setState({\n state: val !== 'closed'\n });\n }\n } else {\n super.updateState(id, state);\n }\n if (this.hideOnFalse) {\n let someIndicator = false;\n if (this.indicators) {\n const ids = Object.keys(this.indicators).filter(_id => this.indicators[_id]);\n someIndicator = ids.find(_id => this.state[this.indicators[_id]]);\n }\n\n this.props.tile.setState({\n visible: this.state[this.id] || someIndicator\n });\n }\n }\n\n getIcon() {\n let Icon;\n switch (this.state[this.id]) {\n case 'opened':\n Icon = IconWindowOpened;\n break;\n\n case 'tilted':\n Icon = IconWindowTilted;\n break;\n\n case 'closed':\n default:\n Icon = IconWindowClosed;\n break;\n }\n\n const iconStyle = {\n width: 60,\n height: 60,\n top: '0.2rem',\n left: '0.2rem'\n };\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n if (this.state[this.id]){\n return I18n.t(this.state[this.id]);\n } else {\n return I18n.t('unknown');\n }\n }\n\n render() {\n return this.wrapContent(this.getStandardContent(this.actualId));\n }\n}\n\nexport default SmartWindowTilt;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport Moment from 'react-moment';\nimport SmartGeneric from './SmartGeneric';\nimport {MdLock as IconLockClosed} from 'react-icons/md';\nimport {MdLockOpen as IconLockOpened} from 'react-icons/md';\nimport {MdClose as IconClose} from 'react-icons/md'\nimport IconDoorOpened from '../icons/DoorOpened';\n\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Button from '@material-ui/core/Button';\n\nimport Theme from '../theme';\nimport I18n from '../i18n';\n\nconst style = {\n icon: {\n fontSize: 32\n }\n};\n\nclass SmartLock extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'OPEN');\n this.openId = state && state.id;\n }\n\n this.props.tile.setState({\n isPointer: true\n });\n\n this.stateRx.dialog = false;\n\n this.key = 'smart-lock-' + this.id + '-';\n this.iconColorOn = Theme.palette.lampOn;\n this.iconColorOff = '';\n this.textOn = 'opened';\n this.textOff = 'closed';\n this.doubleState = true; // used in generic\n\n this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n updateState(id, state) {\n if (id === this.actualId) {\n const val = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON';\n const newState = {};\n newState[id] = val;\n\n if (this.showTime && state.lc) {\n this.lastChange = state.lc;\n } else {\n this.lastChange = 0;\n }\n\n this.setState(newState);\n this.props.tile.setState({\n state: val\n });\n } else {\n super.updateState(id, state);\n }\n }\n\n getIcon() {\n const isOn = this.state[this.id] === '1' || this.state[this.id] === 1 || this.state[this.id] === true || this.state[this.id] === 'true' || this.state[this.id] === 'on' || this.state[this.id] === 'ON';\n const color = isOn ? this.iconColorOn : this.iconColorOff;\n let style = color ? {color} : {};\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n const Icon = isOn ? IconLockOpened : IconLockClosed;\n customIcon = ();\n }\n }\n\n return (\n
\n {customIcon}\n
\n );\n }\n\n getStateText() {\n const state = this.state[this.id];\n if (state === undefined || state === null || !this.lastChange || !this.showTime) {\n const isOn = this.state[this.id] === '1' || this.state[this.id] === 1 || this.state[this.id] === true || this.state[this.id] === 'true' || this.state[this.id] === 'on' || this.state[this.id] === 'ON';\n return isOn ? I18n.t(this.textOn) : I18n.t(this.textOff);\n } else {\n return ();\n }\n }\n\n onTileClick() {\n this.setState({dialog: true});\n }\n\n onAction(action) {\n switch (action) {\n case 'openLock':\n this.props.onControl(this.id, true);\n break;\n\n case 'closeLock':\n this.props.onControl(this.id, false);\n break;\n\n case 'openDoor':\n this.props.onControl(this.openId, true);\n break;\n\n default:\n break;\n }\n // No idea why direct control does not work\n setTimeout(() => {\n this.setState({dialog: false});\n }, 0);\n }\n\n getDialog() {\n return ( this.setState({dialog: false})}\n >\n \n {I18n.t('Select action')}\n \n \n\n \n \n \n {this.openId ? () : null}\n \n
);\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(this.actualId),\n this.state.dialog ? this.getDialog() : null\n ]);\n }\n}\n\nexport default SmartLock;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport Button from '@material-ui/core/Button';\n\nimport SmartGeneric from './SmartGeneric';\nimport Theme from '../theme';\nimport I18n from '../i18n';\n\nimport {MdPlayArrow as IconPlay} from 'react-icons/md';\nimport {MdPause as IconPause} from 'react-icons/md';\n//import IconChecked from 'react-icons/lib/md/check-circle';\n//import IconUnchecked from 'react-icons/lib/md/cancel';\n\nclass SmartInstance extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'ALIVE');\n if (state) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n const parts = this.id.split('.');\n parts.pop();\n\n this.instanceNumber = parts[parts.length - 1];\n this.instanceId = parts.join('.');\n\n if (this.props.objects[this.instanceId].type !== 'instance') {\n this.id = '';\n this.componentReady();\n return;\n }\n\n if (!this.props.objects[this.instanceId].common.onlyWWW) {\n state = this.channelInfo.states.find(state => state.id && state.name === 'UNREACH');\n this.connectedId = state ? state.id : this.id;\n }\n }\n\n this.props.tile.setState({\n isPointer: false\n });\n this.key = 'smart-instance-' + this.id + '-';\n\n // this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n updateState(id, state) {\n const newState = {};\n const val = typeof state.val === 'number' ? !!state.val : state.val === true || state.val === 'true' || state.val === '1' || state.val === 'on' || state.val === 'ON';\n if (id === this.id) {\n newState[id] = val;\n if (this.connectedId) {\n if (val) {\n newState[this.connectedId] = !this.connectedState;\n } else {\n newState[this.connectedId] = false;\n }\n }\n\n this.setState(newState);\n\n this.props.tile.setState({\n state: val\n });\n } else if (id === this.connectedId) {\n this.connectedState = state.val;\n if (this.state[this.id]) {\n state.val = !state.val;\n } else {\n state.val = false;\n }\n super.updateState(id, state);\n } else {\n super.updateState(id, state);\n }\n }\n toggle() {\n this.props.onControl(this.instanceId, !this.props.objects[this.instanceId].common.enabled, 'common.enabled');\n }\n\n onTileClick() {\n this.toggle();\n }\n\n getIcon() {\n const img = '/' + this.props.objects[this.instanceId].common.name + '.admin/' + this.props.objects[this.instanceId].common.icon;\n return (\n
\n {'i'\n
\n );\n }\n\n getStateText() {\n const common = this.props.objects[this.instanceId].common;\n if (common.onlyWWW) {\n return common.enabled ? I18n.t('enabled') : I18n.t('disabled');\n } else {\n return this.state[this.id] ? I18n.t('running') : I18n.t('stopped');\n }\n }\n\n getSecondaryDiv() {\n let Icon;\n let text;\n let color;\n\n if (this.props.objects[this.instanceId].common.enabled) {\n Icon = IconPause;\n text = I18n.t('disable adapter');\n color = '#90ee90';\n } else {\n Icon = IconPlay;\n text = I18n.t('enable adapter');\n color = '#f99';\n }\n\n return (
\n \n
);\n }\n\n render() {\n if (this.props.objects[this.instanceId].type !== 'instance') {\n return null;\n }\n const style = Object.assign(\n {},\n this.state[this.id] ? Theme.tile.tileStateOn : Theme.tile.tileStateOff,\n {\n color: this.state[this.id] ? Theme.palette.instanceRunning : Theme.palette.instanceStopped,\n position: 'absolute',\n bottom: 0\n }\n );\n\n return this.wrapContent([\n (
{this.getIcon()}
),\n this.getSecondaryDiv(),\n (
\n
{this.state.settings.name}
\n
{this.getStateText()}
\n
)\n ]\n );\n }\n}\n\nexport default SmartInstance;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@material-ui/core/Button';\nimport Slider from '@material-ui/lab/Slider';\n\nimport {MdMusicNote as IconNote} from 'react-icons/md';\nimport {MdPlayArrow as IconPlay} from 'react-icons/md';\nimport {MdPause as IconPause} from 'react-icons/md';\nimport {MdStop as IconStop} from 'react-icons/md';\nimport {MdSkipNext as IconNext} from 'react-icons/md';\nimport {MdSkipPrevious as IconPrev} from 'react-icons/md';\n\nimport {MdShuffle as IconShuffle} from 'react-icons/md';\nimport {MdRepeat as IconRepeatAll} from 'react-icons/md';\nimport {MdRepeatOne as IconRepeatOne} from 'react-icons/md';\nimport {MdVolumeUp as IconVolume100} from 'react-icons/md';\nimport {MdVolumeMute as IconVolume0} from 'react-icons/md';\n\nimport Utils from '../Utils';\nimport SmartDialogGeneric from './SmartDialogGeneric';\nimport I18n from '../i18n';\nimport Theme from \"../theme\";\n//import cover from '../assets/cover.png';\n\nconst HEIGHT_HEADER = 48;\nconst HEIGHT_VOLUME = 48;\nconst HEIGHT_COVER = 365;\nconst HEIGHT_INFO = 88;\nconst HEIGHT_CONTROL = 48;\nconst HEIGHT_TIME = 48;\n\nconst REPEAT = {\n NONE: 0,\n ALL: 1,\n ONE: 2\n};\n\nconst styles = {\n info: {\n div: {\n zIndex: 1,\n background: 'rgba(0,0,0,0.55)',\n position: 'absolute',\n bottom: 100,\n width: 'calc(100% + 1em)',\n left: '-0.5em',\n padding: '1.2em',\n },\n artist: {\n fontSize: 14,\n fontWeight: 'normal',\n color: 'white'\n },\n album: {\n fontSize: 16,\n fontWeight: 'bold',\n color: 'white'\n },\n title: {\n fontSize: 14,\n fontWeight: 'normal',\n color: 'white'\n }\n },\n control: {\n div: {\n zIndex: 1,\n background: 'rgba(255,255,255,0.9)',\n position: 'absolute',\n width: 'calc(100% + 1em)',\n bottom: 48,\n left: '-0.5em',\n height: HEIGHT_CONTROL,\n textAlign: 'center',\n lineHeight: '48px',\n verticalAlign: 'middle'\n },\n prev: {\n height: 24,\n width: 24,\n marginLeft: 3,\n minHeight: 24,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)'\n },\n next: {\n height: 24,\n width: 24,\n marginLeft: 3,\n minHeight: 24,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)'\n },\n stop: {\n height: 24,\n width: 24,\n marginLeft: 3,\n minHeight: 24,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)'\n },\n play: {\n\n },\n pause: {\n background: '#40EE40'\n },\n repeat: {\n position: 'absolute',\n top: 5,\n right: 54,\n height: 24,\n width: 24,\n minHeight: 24,\n marginLeft: 3,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)',\n float: 'right'\n },\n shuffle: {\n position: 'absolute',\n top: 5,\n right: 12,\n height: 24,\n width: 24,\n minHeight: 24,\n marginLeft: 3,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)',\n float: 'right'\n },\n name: {\n position: 'absolute',\n left: '1.2em',\n bottom: 2,\n fontSize: 14,\n color: 'rgba(0,0,0,0.6)'\n }\n },\n time: {\n div: {\n zIndex: 1,\n background: 'rgba(255,255,255,0.9)',\n position: 'absolute',\n width: 'calc(100% + 1em)',\n bottom: 0,\n left: '-0.5em',\n height: HEIGHT_TIME,\n lineHeight: '48px',\n textAlign: 'center',\n verticalAlign: 'middle',\n color: 'rgba(0,0,0,0.9)'\n },\n elapsed: {\n display: 'inline-block',\n float: 'left',\n paddingLeft: '1.2em'\n },\n slider: {\n display: 'inline-block',\n width: 'calc(100% - 10em)',\n verticalAlign: 'middle',\n },\n duration: {\n display: 'inline-block',\n float: 'right',\n paddingRight: '1.2em'\n }\n },\n volume: {\n div: {\n zIndex: 1,\n background: 'rgba(255,255,255,0.9)',\n position: 'absolute',\n width: 'calc(100% + 1em)',\n bottom: 0,\n left: '-0.5em',\n height: HEIGHT_TIME,\n lineHeight: '48px',\n textAlign: 'center',\n verticalAlign: 'middle',\n color: 'rgba(0,0,0,0.9)'\n },\n mute: {\n display: 'inline-block',\n position: 'absolute',\n left: '1.5em',\n top: 4,\n boxShadow: 'none'\n },\n slider: {\n display: 'inline-block',\n width: 'calc(100% - 10em)',\n verticalAlign: 'middle',\n }\n },\n cover: {\n div: {\n position: 'absolute',\n top: 48,\n width: 'calc(100% - 2em)',\n height: 'calc(100% - 2em)',\n maxHeight: HEIGHT_COVER,\n zIndex: 0,\n backgroundSize: '100% auto',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n img: {\n width: '100%',\n height: 'auto'\n }\n },\n header: {\n div: {\n position: 'absolute',\n fontSize: 16,\n height: HEIGHT_HEADER -16,\n zIndex: 1,\n paddingTop: 16\n }\n }\n};\n\nclass SmartDialogMedia extends SmartDialogGeneric {\n // expected:\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string.isRequired,\n windowWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n objects: PropTypes.object,\n states: PropTypes.object,\n onCollectIds: PropTypes.func,\n enumNames: PropTypes.array,\n onControl: PropTypes.func,\n ids: PropTypes.object.isRequired,\n settings: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.ids = this.props.ids;\n\n for (const type in this.ids) {\n if (this.ids.hasOwnProperty(type) && type !== 'buttons') {\n for (const id in this.ids[type]) {\n if (this.ids[type].hasOwnProperty(id) && this.ids[type][id]) {\n this.subscribes = this.subscribes || [];\n this.subscribes.push(this.ids[type][id]);\n }\n }\n }\n }\n let maxHeight = 0;\n\n this.divs = {\n 'header': {height: HEIGHT_HEADER, position: 'top', visible: true},\n 'volume': {height: HEIGHT_VOLUME, position: 'top', visible: this.ids.volume.set},\n 'cover': {height: HEIGHT_COVER, position: 'top', visible: this.ids.info.cover},\n 'info': {height: HEIGHT_INFO, position: 'bottom', visible: this.ids.info.artist || this.ids.info.album || this.ids.info.title},\n 'control': {height: HEIGHT_CONTROL, position: 'bottom', visible: true},\n 'time': {height: HEIGHT_TIME, position: 'bottom', visible: this.ids.control.elapsed || this.ids.control.duration || this.ids.control.seek},\n };\n // calculate positions\n let top = 0;\n let bottom = 0;\n for (const name in this.divs) {\n if (this.divs.hasOwnProperty(name) && this.divs[name].visible) {\n maxHeight += this.divs[name].height;\n if (this.divs[name].position === 'top') {\n this.divs[name].points = top;\n top += this.divs[name].height;\n }\n }\n }\n const keys = Object.keys(this.divs);\n for (let j = keys.length - 1; j >= 0; j--) {\n if (this.divs[keys[j]].visible && this.divs[keys[j]].position === 'bottom') {\n this.divs[keys[j]].points = bottom;\n bottom += this.divs[keys[j]].height;\n }\n }\n for (const name in this.divs) {\n if (this.divs.hasOwnProperty(name) && this.divs[name].visible) {\n this.divs[name].style = Object.assign({}, styles[name].div, {[this.divs[name].position] : this.divs[name].points});\n }\n }\n\n this.dialogStyle = {\n maxHeight: maxHeight\n };\n\n const enums = [];\n this.props.enumNames.forEach(e => (enums.indexOf(e) === -1) && enums.push(e));\n if (enums.indexOf(this.props.name) === -1) {\n enums.push(this.props.name);\n }\n this.name = enums.join(' / ');\n this.collectState = null;\n this.collectTimer = null;\n\n this.volumeTimer = null;\n this.seekTimer = null;\n\n this.componentReady();\n }\n\n onSeek(value) {\n if (value !== this.state[this.ids.control.seek]){\n this.setState({[this.ids.control.seek]: value});\n\n if (this.seekTimer) {\n clearTimeout(this.seekTimer);\n }\n this.seekTimer = setTimeout((_value) => {\n this.seekTimer = null;\n this.props.onControl(this.ids.control.seek, _value);\n }, 400, value);\n }\n }\n\n onVolume(value) {\n if (value !== this.state[this.ids.volume.actual]){\n this.setState({[this.ids.volume.actual]: value});\n\n if (this.volumeTimer) {\n clearTimeout(this.volumeTimer);\n }\n this.volumeTimer = setTimeout((_value) => {\n this.volumeTimer = null;\n this.props.onControl(this.ids.volume.set, _value);\n }, 400, value);\n }\n }\n\n onToggleMute() {\n this.props.onControl(this.ids.volume.mute, !this.state[this.ids.volume.mute]);\n }\n\n onShuffle() {\n this.props.onControl(this.ids.mode.shuffle, !this.state[this.ids.mode.shuffle]);\n }\n\n onRepeat() {\n this.props.onControl(this.ids.mode.repeat, (this.state[this.ids.mode.repeat] + 1) % 3);\n }\n\n onUpdateTimer() {\n this.collectTimer = null;\n if (this.collectState) {\n this.setState(this.collectState);\n this.collectState = null;\n }\n }\n\n updateState(id, state) {\n if (id === this.ids.info.cover) {\n this.collectState = this.collectState || {};\n let url = state && state.val;\n if (url) {\n //url = cover;\n if (url.match(/\\?.+$/)) {\n url += '&ts=' + Date.now();\n } else {\n url += '?ts=' + Date.now();\n }\n }\n this.setState({[id]: url});\n } else\n if (id === this.ids.control.elapsed ||\n id === this.ids.control.seek ||\n id === this.ids.control.duration ||\n id === this.ids.volume.set ||\n id === this.ids.volume.actual) {\n this.collectState = this.collectState || {};\n this.collectState[id] = Math.round(parseFloat(state.val));\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (id === this.ids.info.album || id === this.ids.info.artist || id === this.ids.info.title) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (id === this.ids.volume.mute || id === this.ids.mode.shuffle) {\n this.collectState = this.collectState || {};\n\n this.collectState[id] =\n state.val === 'true' ||\n state.val === true ||\n state.val === 'mute' ||\n state.val === 'shuffle' ||\n state.val === 'muted' ||\n state.val === 1 ||\n state.val === '1';\n\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (id === this.ids.mode.repeat) {\n this.collectState = this.collectState || {};\n let val;\n if (state.val === true || state.val === 'true') {\n val = REPEAT.ALL;\n } else if (state.val === 'false' || state.val === false) {\n val = REPEAT.NONE;\n } else if (state.val === 'all' || state.val === 'ALL' || state.val === 1 || state.val === '1') {\n val = REPEAT.ALL;\n } else if (state.val === 'one' || state.val === 'ONE' || state.val === 2 || state.val === '2') {\n val = REPEAT.ONE;\n } else {\n val = REPEAT.NONE;\n }\n this.collectState[id] = val;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (this.ids.control.state === id && state.ack) {\n this.collectState = this.collectState || {};\n const val =\n state.val === 'true' ||\n state.val === true ||\n state.val === 'PLAY' ||\n state.val === 'play' ||\n state.val === 1 ||\n state.val === '1';\n\n // here can be 'stop'\n this.collectState.stop = (state.val === 'STOP' || state.val === 'stop' || state.val === 'stopped' || state.val === 'STOPPED');\n\n this.collectState = this.collectState || {};\n this.collectState[id] = val;\n\n if (state.ack && this.state.executing) {\n this.collectState.executing = false;\n }\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else {\n super.updateState(id, state);\n }\n }\n\n onButton(id) {\n this.props.onControl(id, true);\n }\n\n getVolumeSlider() {\n if (this.ids.volume.set) {\n return ( this.onVolume(value)} />);\n } else if (this.ids.volume.actual) {\n return ();\n } else {\n return null;\n }\n }\n\n getMute() {\n if (!this.ids.volume.mute) return null;\n let Icon;\n let text;\n let background;\n let color;\n let title;\n\n if (this.state[this.ids.volume.mute]) {\n Icon = IconVolume0;\n text = I18n.t('mute');\n background = '#f50057';\n color = 'white';\n title = I18n.t('muted');\n } else {\n Icon = IconVolume100;\n text = I18n.t('unmute');\n background = 'inherit';\n color = 'black';\n title = I18n.t('unmuted');\n }\n\n return (\n \n );\n }\n\n getVolumeDiv() {\n if (!this.divs.volume.visible) return null;\n\n return (\n
\n {this.getMute()}\n {this.getVolumeSlider()}\n
\n );\n }\n\n getSlider() {\n if (this.ids.control.seek) {\n return ( this.onSeek(value)} />);\n } else if (this.ids.control.elapsed && this.ids.control.duration && this.state[this.ids.control.duration]) {\n const value = Math.round(this.state[this.ids.control.elapsed] / this.state[this.ids.control.duration] * 100);\n return ();\n } else {\n return null;\n }\n }\n\n getTimeDiv() {\n if (!this.divs.time.visible) return null;\n return (\n
\n {this.ids.control.elapsed ? (
{Utils.getTimeString(this.state[this.ids.control.elapsed])}
) : null}\n {this.getSlider()}\n {this.ids.control.duration ? (
{Utils.getTimeString(this.state[this.ids.control.duration])}
) : null}\n
\n );\n }\n\n getRepeat() {\n if (!this.ids.mode.repeat) return null;\n let style;\n let title;\n if (this.state[this.ids.mode.repeat]) {\n style = Object.assign({}, styles.control.repeat, {background: 'rgb(64, 238, 64)', color: 'white'});\n } else {\n style = styles.control.repeat;\n title = I18n.t('No repeat');\n }\n let Icon;\n if (this.state[this.ids.mode.repeat] === REPEAT.NONE || this.state[this.ids.mode.repeat] === REPEAT.ALL) {\n title = title || I18n.t('Repeat mode: all');\n Icon = IconRepeatAll;\n } else {\n Icon = IconRepeatOne;\n title = title || I18n.t('Repeat mode: one');\n }\n\n return ();\n }\n\n getShuffle() {\n if (!this.ids.mode.shuffle) return null;\n let style;\n if (this.state[this.ids.mode.shuffle]) {\n style = Object.assign({}, styles.control.shuffle, {background: '#b6b6f3'});\n } else {\n style = styles.control.shuffle;\n }\n\n return ();\n\n }\n\n getControlsDiv() {\n const state = this.state[this.ids.control.state];\n return (
\n {this.ids.buttons.prev ? () : null}\n \n {this.props.settings.showStop && this.ids.buttons.stop ? () : null}\n {this.ids.buttons.next ? () : null}\n {this.getShuffle()}\n {this.getRepeat()}\n
);\n }\n\n getInfoDiv() {\n if (!this.divs.info.visible) return null;\n\n return (
\n {this.ids.info.artist && this.state[this.ids.info.artist] ? (
{this.state[this.ids.info.artist]}
) : null}\n {this.ids.info.album && this.state[this.ids.info.album] ? (
{this.state[this.ids.info.album]}
) : null}\n {this.ids.info.title && this.state[this.ids.info.title] ? (
{this.state[this.ids.info.title]}
) : null}\n {this.ids.info.title && this.state[this.ids.info.title] ? (
{this.state[this.ids.info.title]}
) : null}\n
);\n }\n\n getCoverDiv() {\n if (!this.divs.cover.visible) return null;\n\n if (this.state[this.ids.info.cover]) {\n const style = Object.assign({}, this.divs.cover.style, {backgroundImage: 'url(' + this.state[this.ids.info.cover] + ')'});\n return (
);\n } else {\n return (\n
\n
\n \n
\n
\n );\n }\n }\n\n getHeaderDiv() {\n if (!this.divs.header.visible) return null;\n return (
{this.name}
);\n }\n\n generateContent() {\n return [\n this.getHeaderDiv(),\n this.getVolumeDiv(),\n this.getCoverDiv(),\n this.getInfoDiv(),\n this.getTimeDiv(),\n this.getControlsDiv()\n ];\n }\n}\n\nexport default SmartDialogMedia;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport SmartGeneric from './SmartGeneric';\nimport Button from '@material-ui/core/Button';\n\nimport {MdMusicNote as IconNote} from 'react-icons/md';\nimport {MdPlayArrow as IconPlay} from 'react-icons/md';\nimport {MdPause as IconPause} from 'react-icons/md';\nimport {MdStop as IconStop} from 'react-icons/md';\nimport {MdSkipNext as IconNext} from 'react-icons/md';\nimport {MdSkipPrevious as IconPrev} from 'react-icons/md';\n\nimport Theme from '../theme';\n// import cover from '../assets/cover.png';\nimport Dialog from '../Dialogs/SmartDialogMedia';\n\nconst style = {\n info: {\n div: {\n background: 'rgba(0,0,0,0.55)',\n position: 'absolute',\n bottom: 50,\n width: 'calc(100% + 1rem)',\n left: '-0.5rem',\n paddingLeft: '1.2rem'\n },\n name: {\n fontSize: 10,\n fontWeight: 'normal',\n color: 'white'\n },\n artist: {\n fontSize: 12,\n fontWeight: 'normal',\n color: 'white'\n },\n album: {\n fontSize: 16,\n fontWeight: 'normal',\n color: 'white'\n },\n title: {\n fontSize: 12,\n fontWeight: 'normal',\n color: 'white'\n }\n },\n control: {\n div: {\n background: 'rgba(255,255,255,0.9)',\n position: 'absolute',\n width: 'calc(100% + 1rem)',\n bottom: 0,\n left: '-0.5rem',\n height: 48,\n textAlign: 'center',\n lineHeight: '48px',\n verticalAlign: 'middle'\n },\n prev: {\n height: 24,\n width: 24,\n marginLeft: 3,\n minHeight: 24,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)'\n },\n next: {\n height: 24,\n width: 24,\n marginLeft: 3,\n minHeight: 24,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)'\n },\n stop: {\n height: 24,\n width: 24,\n minHeight: 24,\n marginLeft: 3,\n verticalAlign: 'middle',\n boxShadow: 'none',\n background: 'rgba(255,255,255,1)'\n },\n play: {\n\n },\n pause: {\n background: '#40EE40'\n },\n name: {\n position: 'absolute',\n left: '1.2rem',\n bottom: 2,\n fontSize: 14,\n color: 'rgba(0,0,0,0.6)'\n }\n },\n time: {\n div: {\n\n },\n elapsed: {\n\n },\n duration: {\n\n },\n slider: {\n\n }\n }\n};\n\nclass SmartMedia extends SmartGeneric {\n constructor(props) {\n super(props);\n this.ids = {\n info: {\n cover: null,\n artist: null,\n album: null,\n title: null\n },\n buttons: {\n play: null,\n pause: null,\n stop: null,\n prev: null,\n next: null\n },\n control: {\n state: null,\n elapsed: null,\n duration: null,\n seek: null\n },\n volume: {\n set: null,\n actual: null,\n mute: null\n },\n mode: {\n repeat: null,\n shuffle: null\n }\n };\n\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'STATE');\n if (state) {\n this.id = state.id;\n this.ids.control.state = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'COVER');\n this.ids.info.cover = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ARTIST');\n this.ids.info.artist = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ALBUM');\n this.ids.info.album = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'TITLE');\n this.ids.info.title = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'PLAY');\n this.ids.buttons.play = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'PAUSE');\n this.ids.buttons.pause = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'STOP');\n this.ids.buttons.stop = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'NEXT');\n this.ids.buttons.next = state && state.id;\n \n state = this.channelInfo.states.find(state => state.id && state.name === 'PREV');\n this.ids.buttons.prev = state && state.id;\n\n // no automatic subscription\n state = this.channelInfo.states.find(state => state.id && state.name === 'DURATION');\n this.ids.control.duration = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'SEEK');\n this.ids.control.seek = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ELAPSED');\n this.ids.control.elapsed = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'VOLUME');\n this.ids.volume.set = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'VOLUME_ACTUAL');\n this.ids.volume.actual = state ? state.id : this.ids.volume.set;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'MUTE');\n this.ids.volume.mute = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'SHUFFLE');\n this.ids.mode.shuffle = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'REPEAT');\n this.ids.mode.repeat = state && state.id;\n }\n\n this.width = 2;\n this.props.tile.setState({\n isPointer: true\n });\n this.key = 'smart-switch-' + this.id + '-';\n this.doubleState = true; // used in generic\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n\n // this.props.tile.registerHandler('onClick', this.onTileClick.bind(this));\n this.componentReady();\n }\n\n updateState(id, state) {\n if (id === this.ids.info.cover) {\n let url = state && state.val;\n if (url) {\n // url = cover;\n if (url.match(/\\?.+$/)) {\n url += '&ts=' + Date.now();\n } else {\n url += '?ts=' + Date.now();\n }\n }\n this.props.tile.setBackgroundImage(url || '');\n this.setState({[id]: url});\n } else\n if (id === this.ids.info.album) {\n this.setState({[id]: state.val});\n } else\n if (id === this.ids.info.artist) {\n this.setState({[id]: state.val});\n } else\n if (id === this.ids.info.title) {\n this.setState({[id]: state.val});\n } else\n if (this.id === id && state.ack) {\n const val =\n state.val === 'true' ||\n state.val === true ||\n state.val === 'PLAY' ||\n state.val === 'play' ||\n state.val === 1 ||\n state.val === '1';\n this.setState({[id]: val});\n\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n\n this.props.tile.setState({\n state: val\n });\n } else {\n super.updateState(id, state);\n }\n }\n\n getIcon() {\n if (this.state[this.ids.info.cover]) {\n return null;\n } else {\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n return (\n
\n {customIcon}\n
\n );\n }\n }\n\n onButton(id) {\n this.props.onControl(id, true);\n }\n\n getDialogSettings() {\n const settings = super.getDialogSettings();\n\n // remove doubleSize from list\n settings.forEach((item, i) => {\n if (item.name === 'doubleSize') {\n settings.splice(i, 1);\n return false\n }\n });\n\n if (this.ids.buttons.stop) {\n settings.unshift({\n name: 'showStop',\n value: this.state.settings.showStop || false,\n type: 'boolean'\n });\n }\n return settings;\n }\n\n getControlsDiv() {\n return (
\n
{this.state.settings.name}
\n {this.ids.buttons.prev ? () : null}\n \n {this.state.settings.showStop && this.ids.buttons.stop ? () : null}\n {this.ids.buttons.next ? () : null}\n
);\n }\n\n getInfoDiv() {\n return (
\n {this.ids.info.artist && this.state[this.ids.info.artist] ? (
{this.state[this.ids.info.artist]}
) : null}\n {this.ids.info.album && this.state[this.ids.info.album] ? (
{this.state[this.ids.info.album]}
) : null}\n {this.ids.info.title && this.state[this.ids.info.title] ? (
{this.state[this.ids.info.title]}
) : null}\n
);\n }\n\n render() {\n return this.wrapContent([\n (
{this.getIcon()}
),\n this.getInfoDiv(),\n this.getControlsDiv(),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartMedia;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@material-ui/core/styles';\n\nconst styles = theme => ({\n knobSurround: {\n boxSizing: 'border-box',\n position: 'relative',\n backgroundColor: 'grey',\n width: '10em',\n height: '10em',\n borderRadius: '50%',\n border: 'solid 0.25em #0e0e0e',\n background: '-webkit-gradient(linear, left bottom, left top, color-stop(0, #1d1d1d), color-stop(1, #131313))',\n boxShadow: '0 0.2em 0.1em 0.05em rgba(255, 255, 255, 0.1) inset, 0 -0.2em 0.1em 0.05em rgba(0, 0, 0, 0.5) inset, 0 0.5em 0.65em 0 rgba(0, 0, 0, 0.3)'\n },\n knobBefore: {\n position: 'absolute',\n top: '50%',\n right: '3%',\n width: '3%',\n height: '3%',\n backgroundColor: '#a8d8f8',\n borderRadius: '50%',\n boxShadow: '0 0 0.4em 0 #79c3f4',\n },\n knob: {\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 10\n },\n min: {\n display: 'block',\n fontFamily: 'sans-serif',\n color: 'white',//'rgba(255, 255, 255, 0.4)',\n textTransform: 'uppercase',\n fontSize: '70%',\n position: 'absolute',\n opacity: '0.5'\n },\n max: {\n display: 'block',\n fontFamily: 'sans-serif',\n color: 'white',//'rgba(255, 255, 255, 0.4)',\n textTransform: 'uppercase',\n fontSize: '70%',\n position: 'absolute',\n opacity: '0.5'\n },\n tick: {\n height: '0.08em',\n width: '0.6em',\n backgroundColor: 'rgba(255, 255, 255, 0.6)',\n position: 'absolute',\n right: '-1.5em',\n top: '50%',\n transition: 'all 50ms ease-in',\n },\n value: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n width: '100%',\n textAlign: 'center',\n fontSize: 20,\n fontWeight: 'bold',\n color: '#a8d8f8',\n textShadow: '0 0 10px #a8d8f8'//'0 0 0.3em 0.08em #79c3f4',\n }\n});\n\nconst activeTick = {\n backgroundColor: '#a8d8f8',\n boxShadow: '0 0 0.3em 0.08em #79c3f4',\n};\nconst activeTitleMin = {\n color: '#ffa7a7',\n textShadow: '0 0 0.3em rgba(23,23,23)'//'0 0 0.3em 0.08em #79c3f4',\n};\nconst activeTitleMax = {\n color: '#a8d8f8',\n textShadow: '0 0 0.3em rgba(23,23,23)'//'0 0 0.3em 0.08em #79c3f4',\n};\nclass KnobControl extends Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n unit: PropTypes.string,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n min: PropTypes.number,\n max: PropTypes.number,\n ticks: PropTypes.number,\n style: PropTypes.object,\n hideValue: PropTypes.bool,\n angleStart: PropTypes.number,\n angleEnd: PropTypes.number,\n ticksNumber: PropTypes.number,\n parent: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n this.type = this.props.type || (typeof this.props.value === 'number' ? 'number' : 'text');\n this.ticksNumber = this.props.ticksNumber || 28;\n this.angleStart = this.props.angleStart === null || this.props.angleStart === undefined ? 135 : this.props.angleStart;\n this.angleEnd = this.props.angleEnd === null || this.props.angleEnd === undefined ? 45 : this.props.angleEnd;\n\n this.angleSize = this.angleEnd - this.angleStart;\n if (this.angleSize < 0) {\n this.angleSize += 360;\n }\n\n this.min = this.props.min || 0;\n this.max = this.props.max || 100;\n\n this.refKnob = React.createRef();\n\n this.onMouseMoveBind = this.onMouseMove.bind(this);\n this.onMouseUpBind = this.onMouseUp.bind(this);\n\n const value = this.externalValue2localValue(this.props.value);\n\n this.calcSteps(this.props.ticks || 28);\n\n this.unit = this.props.unit ? ' ' + this.props.unit : '';\n\n this.state = {\n value: value,\n activeTick: this.calcActiveTick(value),\n ticksNumber: this.props.ticks || 28\n };\n }\n\n componentDidUpdate() {\n if (!this.rect) {\n this.knobWidth = this.refKnob.current.offsetWidth;\n this.rect = this.refKnob.current.getBoundingClientRect();\n this.minPos = this.valueToPos(this.angleStart);\n const half = this.rect.width / 2;\n if (this.minPos.x < half && this.minPos.y < half) {\n this.minPos.x -= 13;\n this.minPos.y -= 6;\n } else if (this.minPos.x >= half && this.minPos.y < half) {\n this.minPos.x -= 13;\n this.minPos.y -= 6;\n } else if (this.minPos.x < half && this.minPos.y >= half) {\n this.minPos.x -= 13;\n this.minPos.y -= 6;\n } else if (this.minPos.x >= half && this.minPos.y >= half) {\n this.minPos.x -= 20;\n this.minPos.y -= 6;\n }\n\n this.maxPos = this.valueToPos(this.angleEnd);\n if (this.maxPos.x < half && this.maxPos.y < half) {\n this.maxPos.x -= 13;\n this.maxPos.y -= 6;\n } else\n if (this.maxPos.x >= half && this.maxPos.y < half) {\n this.maxPos.x -= 13;\n this.maxPos.y -= 6;\n } else\n if (this.maxPos.x < half && this.maxPos.y >= half) {\n this.maxPos.x -= 13;\n this.maxPos.y -= 6;\n } else\n if (this.maxPos.x >= half && this.maxPos.y >= half) {\n this.maxPos.x -= 20;\n this.maxPos.y -= 6;\n }\n this.forceUpdate();\n }\n }\n\n componentDidMount() {\n this.componentDidUpdate();\n }\n\n posToValue(x, y) {\n let h;\n if (x < 0) {\n h = Math.atan2(y, -x) * 180 / Math.PI;\n if (y > 0) {\n h = 180 - h;\n } else{\n h = 180 - h;\n }\n } else {\n h = Math.atan2(y, x) * 180 / Math.PI;\n }\n //h = h * -1;\n if (h < 0) h += 360;\n\n h = h - this.angleStart;\n if (h < 0) h += 360;\n\n h = h % 360;\n if (h > this.angleSize + (this.angleSize * 0.1)) {\n h = 0;\n } else\n if (h > this.angleSize) {\n h = this.angleSize;\n }\n\n return h / this.angleSize * 100;\n }\n\n calcActiveTick(value) {\n if (value === undefined) {\n value = this.state.value;\n }\n return Math.round(value / this.valueStep);\n\n }\n\n calcSteps(ticks) {\n ticks = ticks || this.state.ticksNumber;\n this.angleStep = (this.angleSize) / (ticks - 1);\n this.valueStep = 100 / (ticks - 1);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.value !== this.state.value) {\n if (!this.mouseDown) {\n this.setState({value: nextProps.value});\n }\n }\n if (nextProps.ticksNumber !== this.state.ticks) {\n this.setState({ticks: nextProps.ticksNumber});\n this.calcSteps(nextProps.ticksNumber);\n }\n }\n\n localValue2externalValue(value) {\n return value * (this.max - this.min) / 100 + this.min;\n }\n\n externalValue2localValue(value) {\n return ((value - this.min) / (this.max - this.min)) * 100;\n }\n\n drawTicks() {\n const result = [];\n for (let i = 0; i < this.ticksNumber; i++) {\n const style = {transform: 'rotate(' + (this.angleStep * i + this.angleStart) + 'deg)'};\n\n result.push((
\n
\n
));\n }\n return result;\n }\n\n onWheel(e) {\n // return;\n let value = this.state.value;\n if (e.deltaY < 0) {\n value -= this.valueStep;\n if (value < 0) value = 0;\n } else {\n value += this.valueStep;\n if (value > 100) value = 100;\n }\n this.onValueChange(value);\n }\n\n onValueChange(value) {\n this.setState({value, activeTick: this.calcActiveTick(value)});\n this.props.onChange && this.props.onChange(this.localValue2externalValue(value));\n }\n\n drawKnob() {\n const angle = this.angleStart + this.angleStep * (this.state.value / this.valueStep);\n // rotate knob\n const style = {\n transform: 'rotate(' + angle + 'deg)'\n };\n\n return (\n
\n
\n
\n );\n }\n\n drawValue() {\n if (this.props.hideValue) return null;\n return (
{\n Math.round(this.localValue2externalValue(this.state.value)) + this.unit\n }
);\n }\n\n eventToValue(e) {\n let pageY = e.touches ? e.touches[e.touches.length - 1].clientY : e.clientY;\n let pageX = e.touches ? e.touches[e.touches.length - 1].clientX : e.clientX;\n const halfSize = this.knobWidth / 2;\n const value = this.posToValue(pageX - this.rect.left - halfSize, pageY - this.rect.top - halfSize);\n\n this.lastValue = Date.now();\n\n /*this.setState({\n value: value,\n activeTick: this.calcActiveTick(value)\n });*/\n\n this.onValueChange(value);\n }\n\n onMouseMove(e) {\n e.preventDefault();\n e.stopPropagation();\n this.eventToValue(e);\n }\n\n onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n\n this.mouseDown = true;\n\n this.eventToValue(e);\n\n document.addEventListener('mousemove', this.onMouseMoveBind, {passive: false, capture: true});\n document.addEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.addEventListener('touchmove', this.onMouseMoveBind, {passive: false, capture: true});\n document.addEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n }\n\n onMouseUp(e) {\n e.preventDefault();\n e.stopPropagation();\n\n this.mouseDown = false;\n\n console.log('Stopped');\n\n document.removeEventListener('mousemove', this.onMouseMoveBind, {passive: false, capture: true});\n document.removeEventListener('mouseup', this.onMouseUpBind, {passive: false, capture: true});\n document.removeEventListener('touchmove', this.onMouseMoveBind, {passive: false, capture: true});\n document.removeEventListener('touchend', this.onMouseUpBind, {passive: false, capture: true});\n\n this.props.onChange && this.props.onChange(this.localValue2externalValue(this.state.value));\n }\n\n valueToPos(angle) {\n const halfSize = this.rect.width / 2;\n const x = (halfSize + 40) * Math.cos((Math.PI / 180) * angle) + halfSize;\n const y = (halfSize + 40) * Math.sin((Math.PI / 180) * angle) + halfSize;\n return {x, y};\n }\n\n drawMinMax() {\n if (!this.minPos) return;\n\n let styleMin = Object.assign({}, !this.state.value ? activeTitleMin : {}, {left: this.minPos.x, top: this.minPos.y});\n let styleMax = Object.assign({}, this.state.value === 100 ? activeTitleMax : {}, {left: this.maxPos.x, top: this.maxPos.y});\n\n return [\n (Min),\n (Max)\n ];\n\n }\n render() {\n return (\n
\n {this.drawMinMax()}\n {this.drawKnob()}\n\n\n {this.drawValue()}\n
\n {this.drawTicks()}\n
\n
\n );\n }\n}\n\nexport default withStyles(styles)(KnobControl);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\n\nimport {MdVolumeMute as IconVolume0} from 'react-icons/md';\nimport {MdVolumeUp as IconVolume100} from 'react-icons/md';\n\nimport SmartDialogGeneric from './SmartDialogGeneric';\nimport KnobControl from '../basic-controls/react-knob/KnobControl';\nimport I18n from '../i18n';\n\nclass SmartDialogKnob extends SmartDialogGeneric {\n // expected:\n\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string,\n windowWidth: PropTypes.number,\n\n onClose: PropTypes.func,\n\n onMute: PropTypes.func,\n\n onValueChange: PropTypes.func,\n startValue: PropTypes.number,\n startMuteValue: PropTypes.bool,\n type: PropTypes.number\n };\n\n static buttonMuteStyle = {\n position: 'absolute',\n left: 'calc(50% + 8em)',\n top: '16.5em',\n height: '2em',\n width: '2.5em',\n background: '-webkit-gradient(linear, left bottom, left top, color-stop(0, #1d1d1d), color-stop(1, #131313))',\n boxShadow: '0 0.2em 0.1em 0.05em rgba(255, 255, 255, 0.1) inset, 0 -0.2em 0.1em 0.05em rgba(0, 0, 0, 0.5) inset, 0 0.5em 0.65em 0 rgba(0, 0, 0, 0.3)',\n color: 'rgb(99, 99, 99)',\n textShadow: '0 0 0.3em rgba(23,23,23)'\n };\n\n static buttonMuted = {\n color: '#a8d8f8'\n };\n\n constructor(props) {\n super(props);\n this.stateRx.value = this.externalValue2localValue(this.props.startValue || 0);\n this.stateRx.muteValue = this.props.startMuteValue || false;\n\n this.dialogStyle = { // used in generic\n background: 'rgba(136,136,136,0.8)',\n maxHeight: 412,\n minHeight: 280,\n };\n\n this.closeOnPaperClick = true; // used in generic\n\n this.componentReady();\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.startValue !== this.state.value) {\n this.setState({value: nextProps.startValue});\n }\n if (nextProps.startMuteValue !== undefined && nextProps.startMuteValue !== this.state.muteValue) {\n this.setState({muteValue: nextProps.startMuteValue});\n }\n }\n\n localValue2externalValue(value) {\n if (this.props.min !== undefined && this.props.max !== undefined) {\n return value * (this.props.max - this.props.min) / 100 + this.props.min;\n } else {\n return value;\n }\n }\n\n externalValue2localValue(value) {\n if (this.props.min !== undefined && this.props.max !== undefined) {\n return ((value - this.props.min) / (this.props.max - this.props.min)) * 100;\n } else {\n return value;\n }\n }\n\n onValueChanged(value) {\n this.click = Date.now();\n\n this.setState({value: this.externalValue2localValue(value)});\n if (this.controlTimer) {\n clearTimeout(this.controlTimer);\n }\n\n if (this.props.onValueChange) {\n this.controlTimer = setTimeout(val => {\n this.controlTimer = null;\n this.props.onValueChange(Math.round(val));\n }, 300, value);\n }\n }\n\n onMute(e) {\n e && e.preventDefault();\n e && e.stopPropagation();\n this.props.onMute && this.props.onMute();\n }\n\n getMuteButton() {\n if (!this.props.onMute) return null;\n const style = Object.assign(\n {},\n SmartDialogKnob.buttonMuteStyle,\n this.state.muteValue ? SmartDialogKnob.buttonMuted : {});\n return (\n );\n }\n\n generateContent() {\n return [\n (),\n this.getMuteButton()\n ];\n }\n}\n\nexport default SmartDialogKnob;","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport Button from '@material-ui/core/Button';\n\nimport {MdVolumeMute as IconVolume0} from 'react-icons/md';\nimport {MdVolumeDown as IconVolume50} from 'react-icons/md';\nimport {MdVolumeUp as IconVolume100} from 'react-icons/md';\n\nimport Theme from '../theme';\nimport SmartGeneric from './SmartGeneric';\nimport Types from './SmartTypes';\n//import Dialog from './SmartDialogSlider';\nimport Dialog from '../Dialogs/SmartDialogKnob';\n\nimport I18n from '../i18n';\nimport Icon from \"../icons/Thermometer\";\n\nconst style = {\n mute: {\n fontSize: 'smaller',\n fontWeight: 'normal',\n paddingLeft: 10\n },\n groupText: {\n fontSize: 10,\n paddingLeft: 5\n }\n};\n\nclass SmartVolume extends SmartGeneric {\n constructor(props) {\n super(props);\n if (this.channelInfo.states) {\n let state = this.channelInfo.states.find(state => state.id && state.name === 'SET');\n if (state && this.props.objects[state.id] && this.props.objects[state.id].common) {\n this.id = state.id;\n } else {\n this.id = '';\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ACTUAL');\n this.actualId = state ? state.id : this.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'MUTE');\n this.muteId = state && state.id;\n\n if (this.channelInfo.type === Types.volumeGroup) {\n this.group = true;\n }\n }\n\n if (this.id) {\n this.max = this.props.objects[this.actualId].common.max;\n this.min = this.props.objects[this.actualId].common.min;\n\n this.props.tile.setState({\n isPointer: true\n });\n\n this.unit = this.props.objects[this.actualId].common.unit;\n this.unit = this.unit ? ' ' + this.unit : '';\n }\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n this.stateRx.setValue = null;\n this.key = 'smart-slider-' + this.id + '-';\n this.doubleState = true; // used in generic\n\n this.componentReady();\n }\n\n updateState(id, state) {\n let newState = {};\n\n if (this.actualId === id || (this.id === id && this.id === this.actualId && state.ack)) {\n const val = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n if (!isNaN(val)) {\n newState[id] = val;\n this.setState(newState);\n\n const tileState = val !== this.min;\n this.props.tile.setState({\n state: tileState\n });\n } else {\n newState[id] = null;\n this.setState(newState);\n this.props.tile.setState({\n state: false\n });\n }\n\n // hide desired value\n if (this.state.setValue === newState[id] && state.ack) {\n this.setState({setValue: null});\n }\n\n if (state.ack && this.state.executing) {\n this.setState({executing: false});\n }\n } else if (id === this.id) {\n newState[id] = typeof state.val === 'number' ? state.val : parseFloat(state.val);\n this.setState(newState);\n } else {\n super.updateState(id, state);\n }\n }\n\n setValue(value) {\n console.log('Control ' + this.id + ' = ' + value);\n if (this.actualId !== this.id) {\n this.setState({executing: true, setValue: value});\n }\n if (this.max - this.min > 9) {\n value = Math.round(value);\n }\n this.props.onControl(this.id, value);\n }\n\n toggle() {\n this.props.onControl(this.muteId, !this.state[this.muteId]);\n }\n\n getSecondaryDiv() {\n let Icon;\n let text;\n let color;\n\n if (this.state[this.muteId]) {\n Icon = IconVolume0;\n text = I18n.t('mute');\n color = '#f99';\n } else {\n Icon = IconVolume100;\n text = I18n.t('unmute');\n color = 'inherit'\n }\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n customIcon = ();\n }\n\n return (
\n \n
);\n }\n\n getIcon() {\n\n let customIcon;\n\n if (this.state.settings.useDefaultIcon) {\n customIcon = (\"icon\");\n } else {\n if (this.state.settings.icon) {\n customIcon = (\"icon\");\n } else {\n let IconCustom;\n const val = Math.round((this.state[this.actualId] - this.min) / (this.max - this.min) * 100);\n if (val < 25) {\n IconCustom = IconVolume0;\n } else if (val < 75) {\n IconCustom = IconVolume50;\n } else {\n IconCustom = IconVolume100;\n }\n customIcon = ();\n }\n }\n return (\n
\n {customIcon}\n {this.state.executing ? : null}\n
\n );\n }\n\n getStateText() {\n let result = '';\n if (this.state[this.actualId] === null || this.state[this.actualId] === undefined) {\n result = '---';\n } else {\n if (this.workingId && this.state[this.workingId] && this.state.setValue !== null && this.state.setValue !== undefined) {\n if (this.max - this.min > 9) {\n result = Math.round(this.state[this.id]) + this.unit + ' → ' + Math.round(this.state.setValue) + this.unit;\n } else {\n result = this.roundValue(this.state[this.id], 1) + this.unit + ' → ' + this.roundValue(this.state.setValue, 1) + this.unit;\n }\n } else if (this.max - this.min > 9) {\n result = Math.round(this.state[this.id]) + this.unit;\n } else {\n result = this.roundValue(this.state[this.id], 1) + this.unit;\n }\n }\n if (this.muteId && this.state[this.muteId]) {\n result = [({result}), (({I18n.t('muted')}))];\n }\n return result;\n }\n\n getAdditionalName() {\n return this.group ? ({I18n.t('group')}) : null;\n }\n\n render() {\n return this.wrapContent([\n this.getStandardContent(null, true),\n this.muteId && this.getSecondaryDiv(),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default SmartVolume;\n\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nimport Utils from '../Utils';\nimport SmartDialogGeneric from './SmartDialogGeneric';\nimport I18n from '../i18n';\n\nconst HEIGHT_HEADER = 64;\nconst HEIGHT_CURRENT = 200;\nconst HEIGHT_DAY = 140;\nconst HEIGHT_CHART = 160;\n\nconst styles = {\n 'header-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16\n },\n 'current-div': {\n height: HEIGHT_CURRENT,\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16,\n overflow: 'hidden'\n },\n 'currentIcon-div': {\n position: 'absolute',\n width: 128,\n height: 128,\n zIndex: 0,\n left: 3,\n top: 24\n },\n 'currentIcon-icon': {\n width: '100%',\n zIndex: 0\n },\n 'currentIcon-temperature': {\n position: 'absolute',\n width: '100%',\n fontSize: 40,\n zIndex: 1,\n fontWeight: 'normal',\n textAlign: 'right',\n color: '#9c9c9c',\n top: 8,\n right: -50\n },\n 'currentDate-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 2em)',\n top: 16,\n left: 16\n },\n 'currentDate-date': {\n fontWeight: 'normal',\n display: 'inline-block',\n },\n 'currentDate-location': {\n display: 'inline-block',\n position: 'absolute',\n textOverflow: 'ellipsis',\n width: 'calc(100% - 75px)',\n whiteSpace: 'nowrap',\n right: 0,\n textAlign: 'right'\n },\n 'todayTemp-div': {\n position: 'absolute',\n zIndex: 1,\n fontWeight: 'normal',\n top: 35,\n maxWidth: 'calc(100% - 2em - 90px)',\n right: 16,\n textAlign: 'right'\n },\n 'todayTemp-temperature': {\n },\n 'todayTemp-temperatureMin': {\n },\n 'todayTemp-temperatureMax': {\n fontWeight: 'bold'\n },\n 'todayTemp-temperatureTitle': {\n },\n 'todayTemp-temperatureValue': {\n },\n 'todayTemp-precipitation': {\n },\n 'todayTemp-precipitationTitle': {\n },\n 'todayTemp-precipitationValue': {\n paddingLeft: 2\n },\n 'todayTemp-pressure': {\n },\n 'todayTemp-pressureTitle': {\n },\n 'todayTemp-pressureValue': {\n paddingLeft: 2\n },\n 'todayState-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 90px)',\n fontWeight: 'normal',\n bottom: 16,\n left: 118,\n textAlign: 'left',\n fontSize: 14\n },\n 'todayState-wind': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n 'todayState-windTitle': {\n },\n 'todayState-windDir': {\n marginLeft: 2,\n },\n 'todayState-windSpeed': {\n marginLeft: 2\n },\n 'todayState-windIcon': {\n display: 'inline-block',\n marginLeft: 5\n },\n 'todayState-windChill': {\n },\n 'todayState-windChillTitle': {\n paddingRight: 5\n },\n 'todayState-windChillValue': {\n },\n 'todayState-humidity': {\n },\n 'todayState-humidityTitle': {\n paddingRight: 5\n },\n 'todayState-humidityValue': {\n },\n 'todayState-state': {\n },\n 'chart-div': {\n height: HEIGHT_CHART,\n width: 'calc(100% - 1em)',\n overflowX: 'hidden',\n overflowY: 'auto',\n marginBottom: 16,\n padding: '0 16px',\n cursor: 'pointer'\n },\n 'chart-header': {\n width: '100%',\n fontSize: 16,\n paddingTop: 16,\n fontWeight: 'bold'\n },\n 'chart-img': {\n width: 'calc(100% - 16px)',\n height: 'calc(100% - 40px)',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n },\n 'chart-dialog': {\n zIndex: 2101\n },\n 'chart-dialog-paper': {\n width: 'calc(100% - 4em)',\n maxWidth: 'calc(100% - 4em)',\n height: 'calc(100% - 4em)',\n maxHeight: 'calc(100% - 4em)',\n },\n 'chart-dialog-content': {\n width: 'calc(100% - 5em)',\n height: 'calc(100% - 4em)',\n marginLeft: '1em',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n },\n\n 'days-div': {\n height: 'calc(100% - ' + HEIGHT_CURRENT + 'px - ' + HEIGHT_HEADER + 'px)',\n width: 'calc(100% - 1em)',\n overflowX: 'hidden',\n overflowY: 'auto'\n },\n 'day-div': {\n height: HEIGHT_DAY,\n width: '100%',\n marginBottom: 16,\n position: 'relative'\n },\n 'dayIcon-div': {\n position: 'absolute',\n width: 90,\n height: 90,\n zIndex: 0,\n left: 16,\n top: 30,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n },\n 'dayIcon-icon': {\n width: '100%',\n zIndex: 0\n },\n 'dayIcon-temperature': {\n position: 'absolute',\n width: '100%',\n fontSize: 40,\n zIndex: 1,\n fontWeight: 'normal',\n textAlign: 'right',\n color: '#9c9c9c',\n top: 8,\n right: -50\n },\n 'dayDate-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 2em)',\n top: 16,\n left: 16\n },\n 'dayDate-date': {\n fontWeight: 'bold',\n display: 'inline-block',\n },\n 'dayTemp-div': {\n position: 'absolute',\n zIndex: 1,\n fontWeight: 'normal',\n top: 35,\n maxWidth: 'calc(100% - 2em - 90px)',\n right: 16,\n textAlign: 'right'\n },\n 'dayTemp-temperature': {\n },\n 'dayTemp-temperatureMin': {\n },\n 'dayTemp-temperatureMax': {\n fontWeight: 'bold'\n },\n 'dayTemp-temperatureTitle': {\n },\n 'dayTemp-temperatureValue': {\n },\n 'dayTemp-precipitation': {\n },\n 'dayTemp-precipitationTitle': {\n },\n 'dayTemp-precipitationValue': {\n paddingLeft: 2\n },\n 'dayTemp-humidity': {\n },\n 'dayTemp-humidityTitle': {\n },\n 'dayTemp-humidityValue': {\n paddingLeft: 2\n },\n 'dayTemp-pressure': {\n },\n 'dayTemp-pressureTitle': {\n },\n 'dayTemp-pressureValue': {\n paddingLeft: 2\n },\n 'dayState-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 90px)',\n fontWeight: 'normal',\n bottom: 16,\n left: 118,\n textAlign: 'left'\n },\n 'dayState-wind': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: 14\n },\n 'dayState-windTitle': {\n },\n 'dayState-windDir': {\n marginLeft: 2,\n },\n 'dayState-windSpeed': {\n marginLeft: 2\n },\n 'dayState-windIcon': {\n display: 'inline-block',\n marginLeft: 5,\n width: 16,\n maxHeight: 16\n },\n 'dayState-windChill': {\n },\n 'dayState-windChillTitle': {\n paddingRight: 5\n },\n 'dayState-windChillValue': {\n },\n 'dayState-state': {\n fontSize: 14\n },\n\n};\n\nclass SmartDialogWeatherForecast extends SmartDialogGeneric {\n // expected:\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string.isRequired,\n windowWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n objects: PropTypes.object,\n states: PropTypes.object,\n onCollectIds: PropTypes.func,\n enumNames: PropTypes.array,\n ids: PropTypes.object.isRequired,\n settings: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.ids = this.props.ids;\n\n for (const id in this.ids.current) {\n if (this.ids.current.hasOwnProperty(id) && this.ids.current[id]) {\n this.subscribes = this.subscribes || [];\n if (this.ids.current[id] instanceof Array) {\n this.ids.current[id].forEach(i => this.subscribes.push(i));\n } else {\n this.subscribes.push(this.ids.current[id]);\n }\n }\n }\n for (let d = 0; d < this.ids.days.length; d++) {\n if (!this.ids.days[d]) continue;\n for (const id in this.ids.days[d]) {\n if (this.ids.days[d].hasOwnProperty(id) && this.ids.days[d][id]) {\n this.subscribes = this.subscribes || [];\n this.subscribes.push(this.ids.days[d][id]);\n }\n }\n }\n if (this.props.settings) {\n if (this.props.settings.tempID && this.subscribes.indexOf(this.props.settings.tempID) === -1) {\n this.subscribes = this.subscribes || [];\n this.subscribes.push(this.props.settings.tempID);\n }\n if (this.props.settings.humidityID && this.subscribes.indexOf(this.props.settings.humidityID) === -1) {\n this.subscribes = this.subscribes || [];\n this.subscribes.push(this.props.settings.humidityID);\n }\n }\n\n this.stateRx.chartOpened = false;\n\n this.setMaxHeight();\n\n const enums = [];\n this.props.enumNames.forEach(e => (enums.indexOf(e) === -1) && enums.push(e));\n if (enums.indexOf(this.props.name) === -1) {\n enums.push(this.props.name);\n }\n this.name = enums.join(' / ');\n this.collectState = null;\n this.collectTimer = null;\n\n this.componentReady();\n }\n\n setMaxHeight(states) {\n let maxHeight = 0;\n states = states || this.state;\n\n this.divs = {\n 'header': {height: HEIGHT_HEADER, visible: true},\n 'current': {height: HEIGHT_CURRENT, visible: true},\n 'chart': {height: HEIGHT_CHART,\n visible: states && states[this.ids.current.chart] && !states[this.ids.current.chart].match(/\\.html$|\\.htm/)}\n };\n for (let d = 0; d < this.ids.days.length; d++) {\n if (this.ids.days[d]) {\n this.divs['day' + d] = {height: HEIGHT_DAY, visible: true};\n }\n }\n // calculate positions\n for (const name in this.divs) {\n if (this.divs.hasOwnProperty(name) && this.divs[name].visible) {\n maxHeight += this.divs[name].height + 16;\n }\n }\n\n if (this.dialogStyle.maxHeight !== maxHeight) {\n this.dialogStyle = {maxHeight: maxHeight};\n }\n }\n\n onUpdateTimer() {\n this.collectTimer = null;\n if (this.collectState) {\n this.setMaxHeight(this.collectState);\n this.setState(this.collectState);\n this.collectState = null;\n }\n }\n\n updateState(id, state) {\n for (let d = 0; d < this.ids.days.length; d++) {\n if (!this.ids.days[d]) continue;\n if (id === this.ids.days[d].temperature ||\n id === this.ids.days[d].humidity ||\n id === this.ids.days[d].humidityMin ||\n id === this.ids.days[d].humidityMax ||\n id === this.ids.days[d].windChill ||\n id === this.ids.days[d].windSpeed ||\n id === this.ids.days[d].temperatureMin ||\n id === this.ids.days[d].temperatureMax ||\n id === this.ids.days[d].precipitation ||\n id === this.ids.days[d].pressure) {\n const val = Math.round(parseFloat(state.val));\n if (!isNaN(val)) {\n this.collectState = this.collectState || {};\n this.collectState[id] = val;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n }\n return;\n } else\n if (id === this.ids.days[d].icon ||\n id === this.ids.days[d].state) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n return;\n } else\n if (id === this.ids.days[d].icon ||\n id === this.ids.days[d].state ||\n id === this.ids.days[d].windIcon) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n return;\n } else if (id === this.ids.days[d].windDirection) {\n let dir = '';\n if (state && state.val !== null && state.val !== '' && state.val !== undefined && (typeof state.val === 'number' || parseInt(state.val, 10).toString() === state.val.toString())) {\n dir = I18n.t('wind_' + Utils.getWindDirection(state.val)).replace('wind_', '');\n } else {\n dir = state.val;\n }\n\n this.collectState = this.collectState || {};\n this.collectState[id] = dir;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n return;\n } else if (id === this.ids.days[d].date) {\n let date = '';\n\n if (state && state.val) {\n date = Utils.date2string(state.val) || '';\n }\n\n this.collectState = this.collectState || {};\n this.collectState[id] = date;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n return;\n }\n }\n\n if (id === this.ids.current.temperature ||\n id === this.ids.current.humidity ||\n id === this.ids.current.windChill ||\n id === this.ids.current.windSpeed ||\n id === this.props.settings.tempID ||\n id === this.props.settings.humidityID ||\n id === this.ids.current.temperatureMin ||\n id === this.ids.current.temperatureMax ||\n id === this.ids.current.precipitation ||\n id === this.ids.current.pressure) {\n const val = Math.round(parseFloat(state.val));\n if (!isNaN(val)) {\n this.collectState = this.collectState || {};\n this.collectState[id] = val;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n }\n } else\n if (id === this.ids.current.icon ||\n id === this.ids.current.history ||\n id === this.ids.current.chart ||\n id === this.ids.current.state ||\n id === this.ids.current.windIcon) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (this.ids.current.location && this.ids.current.location.indexOf(id) !== -1) {\n this.collectState = this.collectState || {};\n if (state.val && state.val.replace(/[,.-]/g, '').trim()) {\n this.collectState.location = state.val || '';\n }\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else if (id === this.ids.current.windDirection) {\n let dir = '';\n if (state && state.val !== null && state.val !== '' && state.val !== undefined && (typeof state.val === 'number' || parseInt(state.val, 10).toString() === state.val.toString())) {\n dir = I18n.t('wind_' + Utils.getWindDirection(state.val)).replace('wind_', '');\n } else {\n dir = state.val;\n }\n\n this.collectState = this.collectState || {};\n this.collectState[id] = dir;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else if (id === this.ids.current.date) {\n let date = '';\n\n if (state && state.val) {\n date = Utils.date2string(state.val) || '';\n }\n\n this.collectState = this.collectState || {};\n this.collectState[id] = date;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else {\n console.log(id + ' => ' + state.val);\n super.updateState(id, state);\n }\n }\n\n getHeaderDiv() {\n if (!this.divs.header.visible) return null;\n return (
{this.name}
);\n }\n\n getDayIconDiv(d) {\n const classes = this.props.classes;\n const temp = this.ids.days[d].temperature && this.state[this.ids.days[d].temperature];\n const icon = this.ids.days[d].icon && this.state[this.ids.days[d].icon];\n\n if (!temp && !icon) return null;\n\n return (
\n {icon ? ({this.state[this.ids.days[d].state]) : null}\n {temp !== null && temp !== undefined ? (
{temp}°
) : null}\n
);\n }\n\n getDayDateDiv(d) {\n const classes = this.props.classes;\n let date = this.ids.days[d].date && this.state[this.ids.days[d].date];\n if (!date) {\n const now = new Date();\n now.setDate(now.getDate() + d);\n date = Utils.date2string(now);\n }\n\n return (
\n
{date}
\n
);\n }\n\n getDayWindDiv(d) {\n const classes = this.props.classes;\n let windChill = this.ids.days[d].windchill && this.state[this.ids.days[d].date];\n let windDir = this.ids.days[d].windDirection && this.state[this.ids.days[d].windDirection];\n if (windDir !== null && windDir !== undefined && (typeof windDir === 'number' || parseInt(windDir, 10) === windDir)) {\n windDir = I18n.t('wind_' + Utils.getWindDirection(windDir)).replace('wind_', '');\n }\n let windSpeed = this.ids.days[d].windSpeed && this.state[this.ids.days[d].windSpeed];\n let windIcon = this.ids.days[d].windIcon && this.state[this.ids.days[d].windIcon];\n\n let state = this.ids.days[d].state && this.state[this.ids.days[d].state];\n\n if (!state && !windChill && windChill !== 0 && !windDir && !windSpeed && windSpeed !== 0) {\n return null;\n }\n\n return (
\n\n {windChill !== null && windChill !== undefined ?\n (
\n {I18n.t('Windchill')}: \n {windChill}\n
)\n : null}\n\n {(windDir !== null && windDir !== undefined) || (windSpeed !== null && windSpeed !== undefined) ?\n (
\n {I18n.t('Wind')}:\n {windIcon ? (\"state\"/) : null}\n {windDir ? ({windDir}) : null}\n {windSpeed !== null && windSpeed !== undefined && !isNaN(windSpeed) ? ({windSpeed}{this.props.windUnit}) : null}\n
)\n : null}\n\n {state ? (
{state}
) : null}\n
);\n }\n\n getDayTempDiv(d) {\n const classes = this.props.classes;\n let tempMin = this.ids.days[d].temperatureMin && this.state[this.ids.days[d].temperatureMin];\n let tempMax = this.ids.days[d].temperatureMax && this.state[this.ids.days[d].temperatureMax];\n let precipitation = this.ids.days[d].precipitation && this.state[this.ids.days[d].precipitation];\n let pressure = this.ids.days[d].pressure && this.state[this.ids.days[d].pressure];\n let humidity = this.ids.days[d].humidity && this.state[this.ids.days[d].humidity];\n\n if (!humidity && humidity !== 0 &&\n this.ids.current.humidity &&\n this.props.objects[this.ids.current.humidity] &&\n this.props.objects[this.ids.current.humidity].common &&\n this.props.objects[this.ids.current.humidity].common.role &&\n this.props.objects[this.ids.current.humidity].common.role.indexOf('forecast.0') !== -1) {\n humidity = this.state[this.ids.current.humidity];\n }\n if (!tempMin && tempMin !== 0 &&\n this.ids.current.temperatureMin) {\n const obj = this.props.objects[this.ids.current.temperatureMin];\n if (obj &&\n obj.common &&\n obj.common.role &&\n obj.common.role.indexOf('forecast.0') !== -1) {\n tempMin = this.state[this.ids.current.temperatureMin];\n }\n }\n if (!tempMax && tempMax !== 0 &&\n this.ids.current.temperatureMax) {\n const obj = this.props.objects[this.ids.current.temperatureMax];\n if (obj &&\n obj.common &&\n obj.common.role &&\n obj.common.role.indexOf('forecast.0') !== -1) {\n tempMax = this.state[this.ids.current.temperatureMax];\n }\n }\n\n let temp;\n if (tempMin !== null && tempMin !== undefined &&\n tempMax !== null && tempMax !== undefined && tempMin !== tempMax) {\n temp = [\n ({tempMax}°),\n ( / ),\n ({tempMin}°)\n ];\n } else if (\n (tempMin !== null && tempMin !== undefined) ||\n (tempMax !== null && tempMax !== undefined)) {\n if (tempMin === null || tempMin === undefined) {\n tempMin = tempMax;\n }\n temp = ({tempMin}°);\n }\n\n if (!temp &&\n !precipitation && precipitation !== 0 &&\n !pressure && pressure !== 0 &&\n !humidity && humidity !== 0) {\n return null;\n }\n\n return (
\n {temp !== null && temp !== undefined ?\n (
\n {temp}\n
)\n : null}\n\n {precipitation !== null && precipitation !== undefined ?\n (
\n {I18n.t('Precip.')}:\n {precipitation}%\n
)\n : null}\n\n {humidity !== null && humidity !== undefined ?\n (
\n {I18n.t('Humidity')}:\n {humidity}%\n
)\n : null}\n {pressure !== null && pressure !== undefined ?\n (
\n {I18n.t('Pressure')}:\n {pressure}{this.props.pressureUnit}\n
)\n : null}\n
);\n }\n\n getDayDiv(d) {\n if (!this.ids.days[d]) return null;\n let parts = [\n this.getDayIconDiv(d),\n this.getDayDateDiv(d),\n this.getDayWindDiv(d),\n this.getDayTempDiv(d),\n ];\n if (!parts[0] && !parts[2] && !parts[3]) {\n return null;\n }\n\n return ({parts});\n }\n\n getCurrentIconDiv() {\n const classes = this.props.classes;\n let temp;\n temp = this.props.settings.tempID && this.state[this.props.settings.tempID];\n if (!temp && temp !== 0) {\n temp = this.ids.current.temperature && this.state[this.ids.current.temperature];\n }\n\n return (
\n {this.state[this.ids.current.state]\n {temp !== null && temp !== undefined ? (
{temp}°
) : null}\n
);\n }\n\n getCurrentDateLocationDiv() {\n const classes = this.props.classes;\n let date = this.ids.current.date && this.state[this.ids.current.date];\n let location = this.props.settings.locationText;\n location = location || this.state.location;\n location = location || I18n.t('Weather');\n date = date || Utils.date2string(new Date());\n\n return (
\n
{date},
\n
{location}
\n
);\n }\n\n getTodayWindDiv() {\n const classes = this.props.classes;\n let windChill = this.ids.current.windchill && this.state[this.ids.current.date];\n let windDir = this.ids.current.windDirection && this.state[this.ids.current.windDirection];\n if (windDir !== null && windDir !== undefined && (typeof windDir === 'number' || parseInt(windDir, 10) === windDir)) {\n windDir = I18n.t('wind_' + Utils.getWindDirection(windDir)).replace('wind_', '');\n }\n let windSpeed = this.ids.current.windSpeed && this.state[this.ids.current.windSpeed];\n let windIcon = this.ids.current.windIcon && this.state[this.ids.current.windIcon];\n let humidity = this.props.settings.humidityID && this.state[this.props.settings.humidityID];\n if (!humidity && humidity !== 0) {\n humidity = this.ids.current.humidity && this.state[this.ids.current.humidity];\n }\n\n let state = this.ids.current.state && this.state[this.ids.current.state];\n return (
\n\n {windChill !== null && windChill !== undefined ?\n (
\n {I18n.t('Windchill')}: \n {windChill}\n
)\n : null}\n\n {(windDir !== null && windDir !== undefined) || (windSpeed !== null && windSpeed !== undefined) ?\n (
\n {I18n.t('Wind')}:\n {windIcon ? (\"state\"/) : null}\n {windDir ? ({windDir}) : null}\n {windSpeed !== null && windSpeed !== undefined && !isNaN(windSpeed) ? ({windSpeed}{this.props.windUnit}) : null}\n
)\n : null}\n\n {humidity || humidity === 0 ?\n (
\n {I18n.t('Humidity')}: \n {humidity}%\n
)\n : null}\n\n {state ? (
{state}
) : null}\n
);\n }\n\n getTodayTempDiv() {\n const classes = this.props.classes;\n let tempMin = this.ids.current.temperatureMin && this.state[this.ids.current.temperatureMin];\n let tempMax = this.ids.current.temperatureMax && this.state[this.ids.current.temperatureMax];\n let precipitation = this.ids.current.precipitation && this.state[this.ids.current.precipitation];\n let pressure = this.ids.current.pressure && this.state[this.ids.current.pressure];\n\n let temp;\n if (tempMin !== null && tempMin !== undefined &&\n tempMax !== null && tempMax !== undefined) {\n temp = [\n ({tempMax}°),\n ( / ),\n ({tempMin}°)\n ];\n }\n\n return (
\n {temp !== null && temp !== undefined ?\n (
\n {temp}\n
)\n : null}\n\n {precipitation !== null && precipitation !== undefined ?\n (
\n {I18n.t('Precip.')}:\n {precipitation}%\n
)\n : null}\n\n {pressure !== null && pressure !== undefined ?\n (
\n {I18n.t('Pressure')}:\n {pressure}{this.props.pressureUnit}\n
)\n : null}\n
);\n }\n\n getChartDiv() {\n const classes = this.props.classes;\n let chart = this.ids.current.chart && this.state[this.ids.current.chart];\n if (chart && chart.toLowerCase().match(/\\.svg$|\\.jpg$|\\.jpeg$|\\.gif$|\\.png$/)) {\n if (chart.indexOf('?') === -1) {\n chart += '?ts=' + Date.now();\n } else {\n chart += '&ts=' + Date.now();\n }\n return [\n ( this.setState({chartOpened: true})}>\n
{I18n.t('Chart')}
\n
\n ),\n this.state.chartOpened ? ( this.setState({chartOpened: false})}\n className={this.props.classes['chart-dialog']}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {I18n.t('Chart')}\n \n \n \n \n
) : null];\n } else {\n return null;\n }\n }\n\n getDaysDiv() {\n let days = this.ids.days.map(function (day, d) {\n if (!d && this.props.settings.hideFirstDay) return null;\n return day && this.getDayDiv(d);\n }.bind(this));\n if (this.props.settings.chartLast) {\n days.push(this.getChartDiv());\n } else {\n days.unshift(this.getChartDiv());\n }\n days = days.filter(day => day);\n if (days.length) {\n return (
{days}
);\n } else {\n return null;\n }\n }\n\n onOpenHistory() {\n if (this.ids.current.chart && this.state[this.ids.current.chart]) {\n const win = window.open(this.state[this.ids.current.chart], '_blank');\n win.focus();\n }\n }\n\n getCurrentDiv() {\n return (\n this.onOpenHistory()}>\n {this.getCurrentIconDiv()}\n {this.getCurrentDateLocationDiv()}\n {this.getTodayWindDiv()}\n {this.getTodayTempDiv()}\n );\n }\n\n generateContent() {\n return [\n this.getHeaderDiv(),\n this.getCurrentDiv(),\n this.getDaysDiv()\n ];\n }\n}\n\nexport default withStyles(styles)(SmartDialogWeatherForecast);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nimport SmartGeneric from './SmartGeneric';\nimport Utils from '../Utils';\nimport Dialog from '../Dialogs/SmartDialogWeatherForecast';\nimport I18n from '../i18n';\n\nconst styles = {\n 'currentIcon-div': {\n position: 'absolute',\n width: 90,\n height: 90,\n zIndex: 0,\n left: 3,\n top: 24\n },\n 'currentIcon-icon': {\n width: '100%',\n zIndex: 0\n },\n 'currentIcon-temperature': {\n position: 'absolute',\n width: '100%',\n fontSize: 40,\n zIndex: 1,\n fontWeight: 'normal',\n textAlign: 'right',\n color: '#9c9c9c',\n top: 8,\n right: -50\n },\n 'currentDate-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 2rem)',\n top: 16,\n left: 16\n },\n 'currentDate-date': {\n fontWeight: 'normal',\n display: 'inline-block',\n },\n 'currentDate-location': {\n display: 'inline-block',\n position: 'absolute',\n textOverflow: 'ellipsis',\n width: 'calc(100% - 78px)',\n whiteSpace: 'nowrap',\n right: 0,\n textAlign: 'right'\n },\n 'todayTemp-div': {\n position: 'absolute',\n zIndex: 1,\n fontWeight: 'normal',\n top: 35,\n maxWidth: 'calc(100% - 2rem - 90px)',\n right: 16,\n textAlign: 'right'\n },\n 'todayTemp-temperature': {\n },\n 'todayTemp-temperatureMin': {\n },\n 'todayTemp-temperatureMax': {\n fontWeight: 'bold'\n },\n 'todayTemp-temperatureTitle': {\n },\n 'todayTemp-temperatureValue': {\n },\n 'todayTemp-precipitation': {\n },\n 'todayTemp-precipitationTitle': {\n },\n 'todayTemp-precipitationValue': {\n paddingLeft: 2\n },\n 'todayState-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 90px)',\n fontWeight: 'normal',\n bottom: 16,\n left: 80,\n textAlign: 'left'\n },\n 'todayState-wind': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: 14\n },\n 'todayState-windTitle': {\n },\n 'todayState-windDir': {\n marginLeft: 2,\n },\n 'todayState-windSpeed': {\n marginLeft: 2\n },\n 'todayState-windIcon': {\n display: 'inline-block',\n marginLeft: 5,\n width: 16,\n maxHeight: 16\n },\n 'todayState-windChill': {\n },\n 'todayState-windChillTitle': {\n paddingRight: 5\n },\n 'todayState-windChillValue': {\n },\n 'todayState-state': {\n fontSize: 14\n }\n};\n\nclass SmartWeatherForecast extends SmartGeneric {\n static propTypes = {\n classes: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n this.ids = {\n current: {\n date: null,\n location: null,\n icon: null,\n state: null,\n temperature: null,\n humidity: null,\n windChill: null,\n windSpeed: null,\n windIcon: null,\n windDirection: null,\n pressure: null,\n precipitation: null\n },\n days: [\n {\n date: null,\n icon: null,\n state: null,\n temperature: null,\n temperatureMin: null,\n temperatureMax: null,\n humidity: null,\n humidityMin: null,\n humidityMax: null,\n windSpeed: null,\n windIcon: null,\n windDirection: null,\n precipitation: null,\n pressure: null\n }\n ]\n };\n\n this.collectState = null;\n this.collectTimer = null;\n\n if (this.channelInfo.states) {\n //console.log(JSON.stringify(this.channelInfo.states, null, 2));\n\n // Actual\n let state = this.channelInfo.states.find(state => state.id && state.name === 'ICON');\n if (state) {\n this.id = state.id;\n this.ids.current.icon = state.id;\n } else {\n this.id = '';\n }\n state = this.channelInfo.states.find(state => state.id && state.name === 'TEMP');\n this.ids.current.temperature = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'STATE');\n this.ids.current.state = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'DATE');\n this.ids.current.date = state && state.id;\n\n if (!this.ids.current.date) {\n state = this.channelInfo.states.find(state => state.id && state.name === 'DOW');\n this.ids.current.date = state && state.id;\n }\n\n state = this.channelInfo.states.filter(state => state.id && state.name === 'LOCATION').map(state => state.id);\n this.ids.current.location = state && state.length && state;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'HUMIDITY');\n this.ids.current.humidity = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'PRESSURE');\n this.ids.current.pressure = state && state.id;\n this.pressureUnit = '';\n if (this.ids.current.pressure) {\n const obj = this.props.objects[this.ids.current.pressure];\n if (obj && obj.common && obj.common.unit) {\n this.pressureUnit = ' ' + I18n.t(obj.common.unit);\n }\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_SPEED');\n this.ids.current.windSpeed = state && state.id;\n this.windUnit = '';\n if (this.ids.current.windSpeed) {\n const obj = this.props.objects[this.ids.current.windSpeed];\n if (obj && obj.common && obj.common.unit) {\n this.windUnit = ' ' + I18n.t(obj.common.unit);\n }\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_CHILL');\n this.ids.current.windChill = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'FEELS_LIKE');\n if (!this.ids.current.windChill) {\n this.ids.current.windChill = state && state.id;\n } else if (state) {\n const pos = this.subscribes.indexOf(state.id);\n this.subscribes.splice(pos, 1);\n state.id = null;\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_ICON');\n this.ids.current.windIcon = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_DIRECTION');\n this.ids.current.windDirection = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_DIRECTION_STR');\n if (!this.ids.current.windDirection) {\n this.ids.current.windDirection = state && state.id;\n } else if (state) {\n const pos = this.subscribes.indexOf(state.id);\n this.subscribes.splice(pos, 1);\n state.id = null;\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'TEMP_MIN');\n this.ids.current.temperatureMin = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'TEMP_MAX');\n this.ids.current.temperatureMax = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'PRECIPITATION_CHANCE');\n this.ids.current.precipitation = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'HISTORY_CHART');\n this.ids.current.history = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'FORECAST_CHART');\n this.ids.current.chart = state && state.id;\n\n for (let d = 0; d < 6; d++) {\n this.ids.days[d] = this.ids.days[d] || {};\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'DATE' + d);\n this.ids.days[d].date = state && state.id;\n\n if (!this.ids.days[d].date) {\n state = this.channelInfo.states.find(state => state.id && state.name === 'DOW' + d);\n this.ids.days[d].date = state && state.id;\n }\n state = this.channelInfo.states.find(state => state.id && state.name === 'ICON' + d);\n this.ids.days[d].icon = state && (state.id !== this.id) && state.id ;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'STATE' + d);\n this.ids.days[d].state = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'TEMP_MIN' + d);\n this.ids.days[d].temperatureMin = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'TEMP_MAX' + d);\n this.ids.days[d].temperatureMax = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'TEMP' + d);\n this.ids.days[d].temperature = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'HUMIDITY' + d);\n this.ids.days[d].humidity = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'HUMIDITY_MIN' + d);\n this.ids.days[d].humidityMin = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'HUMIDITY_MAX' + d);\n this.ids.days[d].humidityMax = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_SPEED' + d);\n this.ids.days[d].windSpeed = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_ICON' + d);\n this.ids.days[d].windIcon = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_DIRECTION' + d);\n this.ids.days[d].windDirection = state && state.id;\n\n if (!this.ids.days[d].windDirection) {\n state = this.channelInfo.states.find(state => state.id && state.name === 'WIND_DIRECTION_STR' + d);\n this.ids.days[d].windDirection = state && state.id;\n }\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'PRECIPITATION_CHANCE' + d);\n this.ids.days[d].precipitation = state && state.id;\n\n let isEmpty = true;\n for (const id in this.ids.days[d]) {\n if (this.ids.days[d].hasOwnProperty(id) && this.ids.days[d][id]) {\n isEmpty = false;\n break\n }\n }\n if (isEmpty) {\n this.ids.days[d] = null;\n }\n }\n\n let max = this.ids.days.length - 1;\n while (!this.ids.days[max] && max >= 0) {\n max--;\n }\n if (max < this.ids.days.length && !this.ids.days[max + 1]) {\n this.ids.days.splice(max + 1, this.ids.days.length - max - 1);\n }\n }\n\n this.width = 2;\n this.props.tile.setState({isPointer: false});\n this.props.tile.setState({state: true});\n this.key = 'smart-weather-' + this.id + '-';\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n\n this.componentReady();\n }\n\n applySettings(settings) {\n settings = settings || (this.state && this.state.settings);\n if (settings) {\n if (settings.tempID && (!this.subscribes || this.subscribes.indexOf(settings.tempID) === -1)) {\n this.subscribes = this.subscribes || [];\n this.subscribes.push(settings.tempID);\n }\n if (settings.humidityID && (!this.subscribes || this.subscribes.indexOf(settings.humidityID) === -1)) {\n this.subscribes = this.subscribes || [];\n this.subscribes.push(settings.humidityID);\n }\n }\n }\n\n onUpdateTimer() {\n this.collectTimer = null;\n if (this.collectState) {\n this.setState(this.collectState);\n this.collectState = null;\n }\n }\n\n updateState(id, state) {\n if (id === this.ids.current.temperature ||\n id === this.ids.current.humidity ||\n id === this.ids.current.windChill ||\n id === this.ids.current.windSpeed ||\n id === this.state.settings.tempID ||\n id === this.state.settings.humidityID ||\n id === this.ids.current.temperatureMin ||\n id === this.ids.current.temperatureMax ||\n id === this.ids.current.precipitation ||\n id === this.ids.current.pressure) {\n const val = Math.round(parseFloat(state.val));\n if (!isNaN(val)) {\n this.collectState = this.collectState || {};\n this.collectState[id] = val;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n }\n } else\n if (id === this.ids.current.icon ||\n id === this.ids.current.state ||\n id === this.ids.current.windIcon) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (this.ids.current.location && this.ids.current.location.indexOf(id) !== -1) {\n this.collectState = this.collectState || {};\n if (state.val && state.val.replace(/[,.-]/g, '').trim()) {\n this.collectState.location = state.val || '';\n }\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else if (id === this.ids.current.windDirection || id === this.ids.current.windDegrees) {\n let dir = '';\n if (state && state.val !== null && state.val !== '' && state.val !== undefined && (typeof state.val === 'number' || parseInt(state.val, 10).toString() === state.val.toString())) {\n dir = I18n.t('wind_' + Utils.getWindDirection(state.val)).replace('wind_', '');\n } else {\n dir = state.val;\n }\n\n this.collectState = this.collectState || {};\n this.collectState[id] = dir;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else if (id === this.ids.current.date) {\n let date = '';\n\n if (state && state.val) {\n date = Utils.date2string(state.val) || '';\n }\n\n this.collectState = this.collectState || {};\n this.collectState[id] = date;\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else {\n console.log(id + ' => ' + state.val);\n super.updateState(id, state);\n }\n }\n\n getDialogSettings() {\n const settings = super.getDialogSettings();\n settings.push({\n name: 'chartLast',\n value: this.state.settings.chartLast || false,\n type: 'boolean'\n });\n settings.push({\n name: 'tempID',\n value: this.state.settings.tempID || '',\n type: 'string'\n });\n settings.push({\n name: 'humidityID',\n value: this.state.settings.humidityID || '',\n type: 'string'\n });\n settings.push({\n name: 'locationText',\n value: this.state.settings.locationText || '',\n type: 'string'\n });\n settings.push({\n name: 'hideFirstDay',\n value: this.state.settings.hideFirstDay || false,\n type: 'boolean'\n });\n // remove doubleSize from list\n settings.forEach((item, i) => {\n if (item.name === 'doubleSize') {\n settings.splice(i, 1);\n return false\n }\n });\n return settings;\n }\n\n getCurrentIconDiv() {\n const classes = this.props.classes;\n let temp;\n temp = this.state.settings.tempID && this.state[this.state.settings.tempID];\n if (!temp && temp !== 0) {\n temp = this.ids.current.temperature && this.state[this.ids.current.temperature];\n }\n return (
\n {this.state[this.ids.current.state]\n {temp !== null && temp !== undefined ? (
{temp}°
) : null}\n
);\n }\n\n getCurrentDateLocationDiv() {\n const classes = this.props.classes;\n let date = this.ids.current.date && this.state[this.ids.current.date];\n let location = this.state.settings.locationText;\n location = location || this.state.location;\n\n location = location || I18n.t('Weather');\n date = date || Utils.date2string(new Date());\n\n return (
\n
{date},
\n
{location}
\n
);\n }\n\n getTodayWindDiv() {\n const classes = this.props.classes;\n let windChill = this.ids.current.windchill && this.state[this.ids.current.date];\n let windDir = this.ids.current.windDirection && this.state[this.ids.current.windDirection];\n if (windDir !== null && windDir !== undefined && (typeof windDir === 'number' || parseInt(windDir, 10) === windDir)) {\n windDir = I18n.t('wind_' + Utils.getWindDirection(windDir)).replace('wind_', '');\n }\n let windSpeed = this.ids.current.windSpeed && this.state[this.ids.current.windSpeed];\n let windIcon = this.ids.current.windIcon && this.state[this.ids.current.windIcon];\n\n let state = this.ids.current.state && this.state[this.ids.current.state];\n return (
\n\n {windChill !== null && windChill !== undefined ?\n (
\n {I18n.t('Windchill')}: \n {windChill}\n
)\n : null}\n\n {(windDir !== null && windDir !== undefined) || (windSpeed !== null && windSpeed !== undefined) ?\n (
\n {!windIcon ? ({I18n.t('Wind')}:) : null}\n {windIcon ? (\"state\"/) : null}\n {windDir ? ({windDir}) : null}\n {windSpeed !== null && windSpeed !== undefined && !isNaN(windSpeed) ? ({windSpeed}{this.windUnit}) : null}\n
)\n : null}\n\n {state ? (
{state}
) : null}\n
);\n }\n\n getTodayTempDiv() {\n const classes = this.props.classes;\n let tempMin = this.ids.current.temperatureMin && this.state[this.ids.current.temperatureMin];\n let tempMax = this.ids.current.temperatureMax && this.state[this.ids.current.temperatureMax];\n let precipitation = this.ids.current.precipitation && this.state[this.ids.current.precipitation];\n\n let temp;\n if (tempMin !== null && tempMin !== undefined &&\n tempMax !== null && tempMax !== undefined && tempMin !== tempMax) {\n temp = [\n ({tempMax}°),\n ( / ),\n ({tempMin}°)\n ];\n } else if (\n (tempMin !== null && tempMin !== undefined) ||\n (tempMax !== null && tempMax !== undefined)) {\n if (tempMin === null || tempMin === undefined) {\n tempMin = tempMax;\n }\n temp = ({tempMin}°);\n }\n\n if (!temp && !precipitation && precipitation !== 0) {\n return null;\n }\n\n return (
\n {temp !== null && temp !== undefined ?\n (
\n {temp}\n
)\n : null}\n\n {precipitation !== null && precipitation !== undefined ?\n (
\n {I18n.t('Precip.')}:\n {precipitation}%\n
)\n : null}\n
);\n }\n\n render() {\n return this.wrapContent([\n this.getCurrentIconDiv(),\n this.getCurrentDateLocationDiv(),\n this.getTodayWindDiv(),\n this.getTodayTempDiv(),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default withStyles(styles)(SmartWeatherForecast);\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport Paper from '@material-ui/core/Paper';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogTitle from '@material-ui/core/DialogTitle';\n\nimport SmartDialogGeneric from './SmartDialogGeneric';\nimport I18n from '../i18n';\n\nconst HEIGHT_HEADER = 64;\nconst HEIGHT_ICON = 300;\nconst HEIGHT_TITLE = 48;\nconst HEIGHT_DATE = 48;\nconst HEIGHT_INFO = 48;\nconst HEIGHT_DESC = 120;\n\nconst styles = {\n 'header-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16\n },\n 'date-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16\n },\n 'date-start': {\n },\n 'date-end': {\n },\n 'title-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n fontWeight: 'bold',\n fontSize: 20,\n marginBottom: 16\n },\n 'title-text': {\n },\n 'info-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16\n },\n 'info-text': {\n },\n 'icon-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16,\n cursor: 'pointer',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n height: HEIGHT_ICON\n },\n 'desc-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16\n },\n 'desc-text': {\n },\n 'chart-dialog': {\n zIndex: 2101\n },\n 'chart-dialog-paper': {\n width: 'calc(100% - 2em)',\n maxWidth: 'calc(100% - 2em)',\n height: 'calc(100% - 2em)',\n maxHeight: 'calc(100% - 2em)'\n },\n 'chart-dialog-img': {\n width: '100%',\n },\n 'chart-dialog-content': {\n width: 'calc(100% - 4em)',\n height: 'calc(100% - 4em)',\n cursor: 'pointer',\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n },\n\n};\n\nclass SmartDialogWarning extends SmartDialogGeneric {\n // expected:\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string.isRequired,\n windowWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n objects: PropTypes.object,\n states: PropTypes.object,\n onCollectIds: PropTypes.func,\n enumNames: PropTypes.array,\n ids: PropTypes.object.isRequired,\n settings: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.ids = this.props.ids;\n\n for (const id in this.ids) {\n if (this.ids.hasOwnProperty(id) && this.ids[id]) {\n this.subscribes = this.subscribes || [];\n if (this.ids[id] instanceof Array) {\n this.ids[id].forEach(i => this.subscribes.push(i));\n } else {\n this.subscribes.push(this.ids[id]);\n }\n }\n }\n\n this.stateRx.chartOpened = false;\n\n this.setMaxHeight();\n this.dialogStyle = {\n overflowY: 'auto'\n };\n\n const enums = [];\n this.props.enumNames.forEach(e => (enums.indexOf(e) === -1) && enums.push(e));\n if (enums.indexOf(this.props.name) === -1) {\n enums.push(this.props.name);\n }\n this.name = enums.join(' / ');\n this.collectState = null;\n this.collectTimer = null;\n\n this.componentReady();\n }\n\n setMaxHeight(states) {\n let maxHeight = 0;\n states = states || this.state;\n\n this.divs = {\n 'header': {height: HEIGHT_HEADER, visible: true},\n 'icon': {height: HEIGHT_ICON, visible: true},\n 'date': {height: HEIGHT_DATE, visible: true},\n 'title': {height: HEIGHT_TITLE, visible: states && states[this.ids.title]},\n 'info': {height: HEIGHT_INFO, visible: states && states[this.ids.info]},\n 'desc': {height: HEIGHT_DESC, visible: states && states[this.ids.description]}\n };\n\n // calculate height\n for (const name in this.divs) {\n if (this.divs.hasOwnProperty(name) && this.divs[name].visible) {\n maxHeight += this.divs[name].height + 16;\n }\n }\n\n if (this.dialogStyle.maxHeight !== maxHeight) {\n this.dialogStyle = {maxHeight: maxHeight};\n }\n }\n\n onUpdateTimer() {\n this.collectTimer = null;\n if (this.collectState) {\n this.setMaxHeight(this.collectState);\n this.setState(this.collectState);\n this.collectState = null;\n }\n }\n\n updateState(id, state) {\n if (id === this.ids.title ||\n id === this.ids.info ||\n id === this.ids.start ||\n id === this.ids.description ||\n id === this.ids.end ||\n id === this.ids.icon) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (id === this.ids.warning) {\n const val = parseInt(state.val, 10) || 0;\n this.collectState = this.collectState || {};\n this.collectState[id] = val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else {\n console.log(id + ' => ' + state.val);\n super.updateState(id, state);\n }\n }\n\n getHeaderDiv() {\n if (!this.divs.header.visible) return null;\n return (
{this.name}
);\n }\n\n onOpenNewWindow() {\n if (this.ids.icon && this.state[this.ids.icon]) {\n const win = window.open(this.state[this.ids.icon], '_blank');\n win.focus();\n }\n }\n\n getIconDiv() {\n if (!this.ids.icon || !this.state[this.ids.icon]) return null;\n const chart = this.state[this.ids.icon];\n\n return [( this.setState({chartOpened: true})}> ),\n this.state.chartOpened ? ( this.setState({chartOpened: false})}\n className={this.props.classes['chart-dialog']}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {I18n.t('Chart')}\n this.onOpenNewWindow()}\n style={{\n backgroundImage: 'url(' + chart + ')'\n }}\n >\n \n \n \n \n
) : null];\n }\n\n getDateDiv() {\n const classes = this.props.classes;\n let start = this.ids.start && this.state[this.ids.start];\n let end = this.ids.end && this.state[this.ids.end];\n\n return (
\n
{start + (end ? ' - ' + end : '')}
\n
);\n }\n\n getTitleDiv() {\n const classes = this.props.classes;\n let title = this.ids.title && this.state[this.ids.title];\n\n return (
\n
{title}
\n
);\n }\n\n getInfoDiv() {\n const classes = this.props.classes;\n let info = this.ids.info && this.state[this.ids.info];\n\n return (
\n
{info}
\n
);\n }\n\n getDescDiv() {\n const classes = this.props.classes;\n let info = this.ids.description && this.state[this.ids.description];\n\n return (
\n
{info}
\n
);\n }\n\n generateContent() {\n return [\n this.getHeaderDiv(),\n this.getTitleDiv(),\n this.getDateDiv(),\n this.getInfoDiv(),\n this.getIconDiv(),\n this.getDescDiv()\n ];\n }\n}\n\nexport default withStyles(styles)(SmartDialogWarning);","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nimport SmartGeneric from './SmartGeneric';\nimport Dialog from '../Dialogs/SmartDialogWarning';\n\nconst styles = {\n 'icon-div': {\n position: 'absolute',\n width: 90,\n height: 90,\n zIndex: 0,\n left: 10,\n top: 24,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center'\n },\n 'date-div': {\n position: 'absolute',\n zIndex: 1,\n width: 'calc(100% - 2rem - 90px)',\n top: 16,\n right: 16\n },\n 'date-start': {\n fontWeight: 'normal',\n textAlign: 'left',\n width: '100%'\n },\n 'date-end': {\n textAlign: 'right',\n fontWeight: 'normal',\n width: '100%'\n },\n 'title-div': {\n position: 'absolute',\n zIndex: 1,\n fontWeight: 'bold',\n top: 55,\n width: 'calc(100% - 2rem - 90px)',\n right: 16,\n textAlign: 'left'\n },\n 'title-text': {\n },\n 'info-div': {\n position: 'absolute',\n zIndex: 1,\n maxWidth: 'calc(100% - 2rem - 90px)',\n fontWeight: 'normal',\n top: 75,\n right: 16,\n textAlign: 'left'\n },\n 'info-text': {\n overflow: 'hidden',\n fontSize: 14\n }\n};\n\nclass SmartWeatherForecast extends SmartGeneric {\n static propTypes = {\n classes: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n this.ids = {\n warning: null,\n title: null,\n info: null,\n start: null,\n end: null,\n icon: null,\n description: null\n };\n\n this.collectState = null;\n this.collectTimer = null;\n\n if (this.channelInfo.states) {\n // Actual\n let state = this.channelInfo.states.find(state => state.id && state.name === 'LEVEL');\n if (state) {\n this.id = state.id;\n this.ids.warning = state.id;\n } else {\n this.id = '';\n }\n state = this.channelInfo.states.find(state => state.id && state.name === 'TITLE');\n this.ids.title = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'INFO');\n this.ids.info = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'START');\n this.ids.start = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'END');\n this.ids.end = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'ICON');\n this.ids.icon = state && state.id;\n\n state = this.channelInfo.states.find(state => state.id && state.name === 'DESC');\n this.ids.description = state && state.id;\n }\n\n this.width = 2;\n this.props.tile.setState({isPointer: false});\n this.props.tile.setState({state: true});\n this.key = 'smart-warning-' + this.id + '-';\n\n this.stateRx.showDialog = false; // support dialog in this tile used in generic class)\n\n this.componentReady();\n }\n\n onUpdateTimer() {\n this.collectTimer = null;\n if (this.collectState) {\n if (this.collectState[this.id] !== undefined) {\n this.props.tile.setVisibility(!!this.collectState[this.id]);\n }\n this.setState(this.collectState);\n this.collectState = null;\n }\n }\n\n updateState(id, state) {\n if (id === this.ids.title ||\n id === this.ids.info ||\n id === this.ids.icon) {\n this.collectState = this.collectState || {};\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (id === this.ids.start ||\n id === this.ids.end) {\n this.collectState = this.collectState || {};\n if (typeof state.val === 'string') {\n const year = new Date().getFullYear();\n state.val = state.val.replace(year.toString(), '').replace((year + 1).toString(), '')\n }\n\n this.collectState[id] = state.val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else\n if (id === this.ids.warning) {\n const val = parseInt(state.val, 10) || 0;\n this.collectState = this.collectState || {};\n this.collectState[id] = val || '';\n this.collectTimer && clearTimeout(this.collectTimer);\n this.collectTimer = setTimeout(() => this.onUpdateTimer(), 200);\n } else {\n console.log(id + ' => ' + state.val);\n super.updateState(id, state);\n }\n }\n\n getDialogSettings() {\n const settings = super.getDialogSettings();\n // remove doubleSize from list\n settings.forEach((item, i) => {\n if (item.name === 'doubleSize') {\n settings.splice(i, 1);\n return false\n }\n });\n return settings;\n }\n\n getIconDiv() {\n const classes = this.props.classes;\n if (!this.ids.icon || !this.state[this.ids.icon]) return null;\n\n return (
);\n }\n\n getDateDiv() {\n const classes = this.props.classes;\n let start = this.ids.start && this.state[this.ids.start];\n let end = this.ids.end && this.state[this.ids.end];\n\n return (
\n
{start}
\n {end ? (
-{end}
) : null}\n
);\n }\n\n getTitleDiv() {\n const classes = this.props.classes;\n let title = this.ids.title && this.state[this.ids.title];\n\n return (
\n
{title}
\n
);\n }\n\n getInfoDiv() {\n const classes = this.props.classes;\n let info = this.ids.info && this.state[this.ids.info];\n\n return (
\n
{info}
\n
);\n }\n\n render() {\n return this.wrapContent([\n this.getIconDiv(),\n this.getDateDiv(),\n this.getTitleDiv(),\n this.getInfoDiv(),\n this.state.showDialog ?\n : null\n ]);\n }\n}\n\nexport default withStyles(styles)(SmartWeatherForecast);\n","/**\n * Copyright 2018 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport Paper from '@material-ui/core/Paper';\n\nimport SmartDialogGeneric from './SmartDialogGeneric';\n\nconst HEIGHT_TITLE = 64;\nconst HEIGHT_IFRAME = 300;\n\nconst styles = {\n 'header-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n marginBottom: 16\n },\n 'title-div': {\n width: 'calc(100% - 1em)',\n position: 'relative',\n fontWeight: 'bold',\n fontSize: 20,\n marginBottom: 16,\n },\n 'title-text': {\n color: 'black'\n },\n\n 'iframe-div': {\n width: 'calc(100% - 1em)',\n minHeight: HEIGHT_IFRAME,\n height: 'calc(100% - ' + HEIGHT_TITLE + 'px)'\n },\n iframe: {\n width: '100%',\n height: '100%',\n border: 0\n },\n 'image-img': {\n width: '100%',\n height: '100%',\n objectFit: 'contain'\n },\n\n};\n\nclass SmartDialogURL extends SmartDialogGeneric {\n // expected:\n static propTypes = {\n name: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object\n ]),\n dialogKey: PropTypes.string.isRequired,\n windowWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n objects: PropTypes.object,\n states: PropTypes.object,\n onCollectIds: PropTypes.func,\n settings: PropTypes.object,\n image: PropTypes.bool\n };\n\n constructor(props) {\n super(props);\n\n this.ids = this.props.ids;\n\n this.setMaxHeight();\n this.dialogStyle = {overflowY: 'auto'};\n this.stateRx.url = this.getUrl(this.props.settings.background);\n\n if (this.props.settings.fullWidth) {\n this.dialogStyle = {width: 'calc(100% - 4rem)', maxWidth: 'calc(100% - 4rem)', left: '2rem'};\n }\n\n this.componentReady();\n }\n\n getUrl(url) {\n let _url;\n if (this.props.image && url) {\n if (url.indexOf('?') !== -1) {\n _url = url + '&ts=' + Date.now();\n } else {\n _url = url + '?ts=' + Date.now();\n }\n return _url;\n } else {\n return url;\n }\n }\n\n setMaxHeight(states) {\n let maxHeight = 0;\n states = states || this.state;\n\n this.divs = {\n 'title': {height: HEIGHT_TITLE, visible: !!this.props.settings.title},\n 'iframe': {height: HEIGHT_IFRAME, visible: true}\n };\n\n // calculate height\n for (const name in this.divs) {\n if (this.divs.hasOwnProperty(name) && this.divs[name].visible) {\n maxHeight += this.divs[name].height + 16;\n }\n }\n\n if (this.dialogStyle.maxHeight !== maxHeight) {\n this.dialogStyle = {maxHeight: maxHeight};\n }\n }\n\n updateUrl() {\n if (this.props.image) {\n this.setState({url: this.getUrl(this.props.settings.background)});\n }\n }\n\n componentDidMount () {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = null;\n }\n if (this.props.settings.updateInDialog || this.props.settings.update) {\n this.interval = setInterval(() => this.updateUrl(), this.props.settings.updateInDialog || this.props.settings.update);\n }\n }\n\n componentWillUnmount() {\n if (this.interval) {\n clearInterval(this.interval);\n this.interval = null;\n }\n }\n\n onOpenNewWindow() {\n if (this.props.settings.background) {\n const win = window.open(this.props.settings.background, '_blank');\n win.focus();\n }\n }\n\n getTitleDiv() {\n const classes = this.props.classes;\n let title = this.props.settings.title;\n\n if (title) {\n return (
\n
{title}
\n
);\n } else {\n return null;\n }\n }\n\n getIFrameDiv() {\n const style = {height: 'calc(100% - ' + (this.props.settings.title ? HEIGHT_TITLE : '0') + 'px)'};\n if (!this.props.image && this.state.url) {\n return ( this.onOpenNewWindow()} className={this.props.classes['iframe-div']} style={style}>\n