diff --git a/dashboard/css/app.css b/dashboard/css/app.css index 1a25cb16..2081d4da 100644 --- a/dashboard/css/app.css +++ b/dashboard/css/app.css @@ -768,7 +768,14 @@ span.s-b { font-weight: bold; } span.s-i { font-style: italic; } span.s-u { text-decoration: underline; } span.s-s { text-decoration: line-through; } -span.s-s { white-space: pre-wrap; } +span.s-pre { white-space: pre-wrap; } +span.s-flash { animation: s-flash 1s steps(2) infinite; } + +@-webkit-keyframes s-flash { to { opacity: 0; } } } +@-moz-keyframes s-flash { to { opacity: 0; } } } +@-ms-keyframes s-flash { to { opacity: 0; } } } +@-o-keyframes s-flash { to { opacity: 0; } } } +@keyframes s-flash { to { opacity: 0; } } } @media only screen and (max-width: 767px) { diff --git a/dashboard/js/app.js b/dashboard/js/app.js index 09d4bb7d..2efd24ee 100644 --- a/dashboard/js/app.js +++ b/dashboard/js/app.js @@ -430,7 +430,7 @@ config.factory('dataService', ['$http', '$location', '$rootScope', '$window', '$ writeObject('instance', instance.id, _dk); if ((instance.coreVersion) && (version() != instance.coreVersion)) { if (version() > instance.coreVersion) { - status('A newer SmartApp version (' + version() + ') is available, please update and publish the all the webCoRE SmartApps in the SmartThings IDE.'); + status('A newer SmartApp version (' + version() + ') is available, please update and publish all the webCoRE SmartApps in the SmartThings IDE.'); } else { status('A newer UI version (' + instance.coreVersion + ') is available, please hard reload this web page to get the newest version.'); } @@ -1462,4 +1462,4 @@ if (document.selection) { document.execCommand("Copy"); }} -version = function() { return 'v0.1.0b7.20170603'; }; +version = function() { return 'v0.2.0b8.20170607'; }; diff --git a/dashboard/js/modules/dashboard.module.js b/dashboard/js/modules/dashboard.module.js index dba193b7..9757b5fd 100644 --- a/dashboard/js/modules/dashboard.module.js +++ b/dashboard/js/modules/dashboard.module.js @@ -289,6 +289,7 @@ config.controller('dashboard', ['$scope', '$rootScope', 'dataService', '$timeout case 'i': className += 's-i '; break; case 's': className += 's-s '; break; case 'pre': className += 's-pre '; break; + case 'flash': className += 's-flash '; break; default: color = cls[x].replace(/[^#0-9a-z]/gi, ''); } } diff --git a/dashboard/js/modules/piston.module.js b/dashboard/js/modules/piston.module.js index 605565bc..6cf9cea8 100644 --- a/dashboard/js/modules/piston.module.js +++ b/dashboard/js/modules/piston.module.js @@ -3812,6 +3812,7 @@ config.controller('piston', ['$scope', '$rootScope', 'dataService', '$timeout', case 'i': className += 's-i '; break; case 's': className += 's-s '; break; case 'pre': className += 's-pre '; break; + case 'flash': className += 's-flash '; break; default: color = cls[x].replace(/[^#0-9a-z]/gi, ''); } } diff --git a/dist/css/webCoRE.min.css b/dist/css/webCoRE.min.css index b1063a65..3ba28e50 100644 --- a/dist/css/webCoRE.min.css +++ b/dist/css/webCoRE.min.css @@ -14,4 +14,4 @@ * * Copyright 2013-2017 bootstrap-select * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) - */select.bs-select-hidden,select.selectpicker{display:none !important}.bootstrap-select{width:220px \0}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:active{color:#999}.bootstrap-select>select{position:absolute !important;bottom:0;left:50%;display:block !important;width:.5px !important;height:100% !important;padding:0 !important;opacity:0 !important;border:0}.bootstrap-select>select.mobile-device{top:0;left:0;display:block !important;width:100% !important;z-index:2}.has-error .bootstrap-select .dropdown-toggle,.error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto !important}.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333 !important;outline:5px auto -webkit-focus-ring-color !important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:0}.bootstrap-select.form-control:not([class*="col-"]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*="col-"]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*="col-"].dropdown-menu-right,.row .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right{float:right}.form-inline .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-group .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-group-lg .bootstrap-select.btn-group.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.btn-group.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:none !important}.bootstrap-select.btn-group.bs-container{position:absolute;height:0 !important;padding:0 !important}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*="col-"] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,0.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,0.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid white;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after{display:block}.bs-searchbox,.bs-actionsbox,.bs-donebutton{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}@-webkit-keyframes ngdialog-flyin{0{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes ngdialog-flyin{0{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes ngdialog-flyout{0{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes ngdialog-flyout{0{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}.ngdialog.ngdialog-theme-default{padding-bottom:32px;padding-top:32px}.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content{-webkit-animation:ngdialog-flyout .5s;animation:ngdialog-flyout .5s}.ngdialog.ngdialog-theme-default .ngdialog-content{-webkit-animation:ngdialog-flyin .5s;animation:ngdialog-flyin .5s;background:#f0f0f0;border-radius:5px;color:#444;font-family:Helvetica,sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:480px}.ngdialog.ngdialog-theme-default .ngdialog-close{border-radius:5px;cursor:pointer;position:absolute;right:0;top:0}.ngdialog.ngdialog-theme-default .ngdialog-close:before{background:0;border-radius:3px;color:#bbb;content:'\00D7';font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-default .ngdialog-close:active:before,.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-default .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-default .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-default .ngdialog-input textarea{background:#fff;border:0;border-radius:3px;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus{box-shadow:inset 0 0 0 2px #8dbdf1;outline:0}.ngdialog.ngdialog-theme-default .ngdialog-buttons:after{content:'';display:table;clear:both}.ngdialog.ngdialog-theme-default .ngdialog-button{border:0;border-radius:3px;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media(max-width:568px){.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777}.material-switch>input[type=checkbox]{display:none}.material-switch>label{cursor:pointer;height:0;position:relative;width:40px}.material-switch>label::after,.material-switch>label::before{content:'';margin-top:-8px;position:absolute}.material-switch>label::before{background:#000;box-shadow:inset 0 0 10px rgba(0,0,0,.5);border-radius:8px;height:16px;opacity:.3;transition:all .4s ease-in-out;width:40px}.material-switch>label::after{background:#fff;border-radius:16px;box-shadow:0 0 5px rgba(0,0,0,.3);height:24px;left:-4px;top:-4px;transition:all .3s ease-in-out;width:24px}.material-switch>input[type=checkbox]:checked+label::before{background:inherit;opacity:.5}.material-switch>input[type=checkbox]:checked+label::after{background:inherit;left:20px}a-ckolor-wheel{display:block;position:absolute;z-index:9999;-webkit-filter:none !important;filter:none !important}.c-ckolor__input-row{margin:14px 0}.c-ckolor__input-row.center{text-align:center}.c-ckolor__input-wrapper{width:200px;height:21px;line-height:21px;padding:7px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.14),0 3px 10px rgba(0,0,0,.035);border-radius:2px;margin:7px 0;font-size:14px;color:#555;font-family:sans-serif;text-transform:uppercase;cursor:pointer}.c-ckolor__input-wrapper button{outline:0 !important;background:0;border:0;-webkit-appearance:none;width:21px;font-size:18px;padding:0;color:#fff;opacity:.7;box-shadow:none;margin:-4px 0 0;cursor:pointer;transition:all .2s}.c-ckolor__input-wrapper button:hover{transform:scale(1.05);opacity:1}.c-ckolor__input-wrapper span{display:inline-block;vertical-align:middle}.c-ckolor__overlay{width:100%;height:100%;position:fixed;left:0;top:0;background:radial-gradient(ellipse at 50% 250px,rgba(19,49,63,.91) 0,rgba(0,0,0,.91) 100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:9999}.c-ckolor__overlay input[type=text],.c-ckolor__overlay input[type=number]{color:#aaa;font-size:12px;text-align:center;font-style:normal;text-transform:uppercase;display:inline-block;height:19px;background:rgba(255,255,255,.07);border:0;box-shadow:none;box-sizing:border-box;padding:0 3px;margin:0;width:100%;border-radius:2px;-webkit-appearance:none;outline:0 !important;transition:all .2s}.c-ckolor__overlay input[type=text]:focus,.c-ckolor__overlay input[type=text]:hover,.c-ckolor__overlay input[type=number]:focus,.c-ckolor__overlay input[type=number]:hover{background:rgba(255,255,255,.14)}.c-ckolor__overlay input[type=text][type=number],.c-ckolor__overlay input[type=number][type=number]{-moz-appearance:textfield}.c-ckolor__overlay input[type=text][type=number]::-webkit-inner-spin-button,.c-ckolor__overlay input[type=text][type=number]::-webkit-outer-spin-button,.c-ckolor__overlay input[type=number][type=number]::-webkit-inner-spin-button,.c-ckolor__overlay input[type=number][type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.c-ckolor__overlay .c-ckolor__swatch{margin:0 0 0 1px;width:0;height:0;display:inline-block;vertical-align:middle;padding:18px;position:relative}.c-ckolor__overlay .c-ckolor__swatch span{display:block;width:100%;height:100%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 0 1px rgba(0,0,0,.07);border-radius:50%;position:absolute;top:0;left:0}.c-ckolor__overlay .c-ckolor__input-wrapper{width:30%;overflow:hidden;background:0;box-shadow:none;color:#aaa;display:inline-block;padding:0;margin:0 1px;line-height:14px}.c-ckolor__overlay .c-ckolor__input-wrapper.smaller{width:30px}.c-ckolor__overlay .c-ckolor__input-wrapper.button{width:9%;vertical-align:middle;margin:0 0 0 2px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown{width:20%;overflow:visible;position:relative;vertical-align:middle;text-align:center;font-size:12px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown div{margin-left:3px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown div:before{content:"\f0dd";display:inline-block;font:normal normal normal 14px/1 FontAwesome;margin:0 3px 0 0;position:relative;top:-3px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul{margin:0;padding:0;display:block;position:absolute;height:auto;overflow:hidden;max-height:0;background:rgba(255,255,255,.77);width:100%;color:#333;border-radius:2px;transition:all .2s}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul li{display:block;padding:5px 7px;box-shadow:0 1px 0 rgba(0,0,0,.05)}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul li:hover{background:#fff}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown:hover ul{max-height:140px}.c-ckolor__overlay .c-ckolor__input-wrapper.hex{width:100%}.c-ckolor__overlay .c-ckolor__input-wrapper.hex input{text-align:left}.c-ckolor_previous-color-container{margin:28px auto 14px;box-sizing:border-box;padding:28px 7px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 -1px 0 rgba(0,0,0,.2);text-align:center}.c-ckolor_previous-swatch{height:0;display:inline-block;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.12);padding:3%;margin:1.7%;border-radius:50%;transition:transform .2s}.c-ckolor_previous-swatch:hover{transform:scale(1.1)}.c-ckolor__overlay-blur>*{-webkit-filter:blur(3px);filter:blur(3px);transition:-webkit-filter .2s;transition:filter .2s;transition:filter .2s,-webkit-filter .2s}.c-ckolor__overlay-inner-outer{position:relative;overflow:auto;width:100%;height:100%}.c-ckolor__overlay-inner{width:280px;position:relative;margin:35px auto 20px}.c-ckolor__overlay-inputs{width:40%;display:inline-block;vertical-align:middle;position:relative;top:2px}.c-ckolor__alpha-wrapper{background:linear-gradient(0,rgba(138,138,138,.14) 0,rgba(138,138,138,.14) 1px,transparent 1px,transparent 5px),linear-gradient(90deg,rgba(138,138,138,.14) 0,rgba(138,138,138,.14) 1px,transparent 1px,transparent 5px);background-repeat:repeat;background-size:5px 5px;background-position:7px 6px;border-radius:50px}.c-ckolor__alpha,.c-ckolor__saturation{position:relative;width:100%;height:21px;border-radius:50px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 0 1px rgba(0,0,0,.07)}.c-ckolor__alpha:hover .c-ckolor__alpha-handle,.c-ckolor__saturation:hover .c-ckolor__saturation-handle{transform:scale(1.1);background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px #fff,inset 0 2px 14px rgba(0,0,0,.16),0 1px 3px rgba(0,0,0,.25),0 7px 14px rgba(0,0,0,.2)}.c-ckolor__alpha-handle,.c-ckolor__saturation-handle{pointer-events:none;position:absolute;width:14px;height:14px;background:rgba(255,255,255,.4);border-radius:50%;top:3px;left:50%;margin-left:-7px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.79),inset 0 2px 14px rgba(0,0,0,.22),0 1px 3px rgba(0,0,0,.14);transition:transform .2s,background .2s,box-shadow .2s;cursor:pointer;transform:scale(1)}.c-ckolor__swatch{width:14px;height:14px;display:inline-block;vertical-align:middle;border-radius:2px}.c-ckolor__wheel-scoop{pointer-events:none;position:absolute;top:50%;left:50%;width:20px;height:20px;border-radius:50%;background:red;margin:-11px 0 0 -11px;box-shadow:0 0 0 2px #fff;transition:transform .2s}.c-ckolor__wheel{overflow:hidden;width:0;height:0;padding:50%;position:relative;box-shadow:0 0 0 6px #fff;margin-bottom:28px;cursor:pointer;background:#fff;border-radius:50%;z-index:0}.c-ckolor__wheel,.c-ckolor__wheel *{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.c-ckolor__wheel-color{display:block}.c-ckolor__wheel-color:nth-child(1){transform:rotate(10deg)}.c-ckolor__wheel-color:nth-child(2){transform:rotate(20deg)}.c-ckolor__wheel-color:nth-child(3){transform:rotate(30deg)}.c-ckolor__wheel-color:nth-child(4){transform:rotate(40deg)}.c-ckolor__wheel-color:nth-child(5){transform:rotate(50deg)}.c-ckolor__wheel-color:nth-child(6){transform:rotate(60deg)}.c-ckolor__wheel-color:nth-child(7){transform:rotate(70deg)}.c-ckolor__wheel-color:nth-child(8){transform:rotate(80deg)}.c-ckolor__wheel-color:nth-child(9){transform:rotate(90deg)}.c-ckolor__wheel-color:nth-child(10){transform:rotate(100deg)}.c-ckolor__wheel-color:nth-child(11){transform:rotate(110deg)}.c-ckolor__wheel-color:nth-child(12){transform:rotate(120deg)}.c-ckolor__wheel-color:nth-child(13){transform:rotate(130deg)}.c-ckolor__wheel-color:nth-child(14){transform:rotate(140deg)}.c-ckolor__wheel-color:nth-child(15){transform:rotate(150deg)}.c-ckolor__wheel-color:nth-child(16){transform:rotate(160deg)}.c-ckolor__wheel-color:nth-child(17){transform:rotate(170deg)}.c-ckolor__wheel-color:nth-child(18){transform:rotate(180deg)}.c-ckolor__wheel-color:nth-child(19){transform:rotate(190deg)}.c-ckolor__wheel-color:nth-child(20){transform:rotate(200deg)}.c-ckolor__wheel-color:nth-child(21){transform:rotate(210deg)}.c-ckolor__wheel-color:nth-child(22){transform:rotate(220deg)}.c-ckolor__wheel-color:nth-child(23){transform:rotate(230deg)}.c-ckolor__wheel-color:nth-child(24){transform:rotate(240deg)}.c-ckolor__wheel-color:nth-child(25){transform:rotate(250deg)}.c-ckolor__wheel-color:nth-child(26){transform:rotate(260deg)}.c-ckolor__wheel-color:nth-child(27){transform:rotate(270deg)}.c-ckolor__wheel-color:nth-child(28){transform:rotate(280deg)}.c-ckolor__wheel-color:nth-child(29){transform:rotate(290deg)}.c-ckolor__wheel-color:nth-child(30){transform:rotate(300deg)}.c-ckolor__wheel-color:nth-child(31){transform:rotate(310deg)}.c-ckolor__wheel-color:nth-child(32){transform:rotate(320deg)}.c-ckolor__wheel-color:nth-child(33){transform:rotate(330deg)}.c-ckolor__wheel-color:nth-child(34){transform:rotate(340deg)}.c-ckolor__wheel-color:nth-child(35){transform:rotate(350deg)}.c-ckolor__wheel-color:nth-child(36){transform:rotate(360deg)}.c-ckolor__wheel-color:nth-child(37){transform:rotate(370deg)}.c-ckolor__wheel-color,.c-ckolor__wheel-color-inner1,.c-ckolor__wheel-color-inner2,.c-ckolor__wheel-color-inner2-2,.c-ckolor__wheel-value{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none;overflow:hidden}.c-ckolor__wheel-colors{width:120%;height:120%;margin-left:-10%;margin-top:-10%;-webkit-filter:blur(14px);filter:blur(14px);background:#000;position:absolute;top:0;left:0}.c-ckolor__wheel-color-inner1{transform:rotate(60deg) translate(50%,50%)}.c-ckolor__wheel-color-inner2{transform:rotate(-79deg) translate(49%,26%);transform-origin:0 0;background-image:linear-gradient(177deg,transparent 30%,rgba(0,0,0,.35) 38%,rgba(0,0,0,.5) 42%,rgba(0,0,0,.9) 55%),linear-gradient(177deg,rgba(255,255,255,.9) 13%,rgba(255,255,255,0) 30%)}.c-ckolor__wheel-value{box-shadow:inset 0 0 3px rgba(255,255,255,.53),inset 0 0 5px 1px rgba(0,0,0,.12),inset 0 0 0 1px rgba(0,0,0,.38),0 0 0 1px #000;background:radial-gradient(ellipse at center,rgba(255,255,255,.2) 0,rgba(255,255,255,0) 18%),radial-gradient(ellipse at center,rgba(255,255,255,.3) 0,rgba(255,255,255,0) 11%),radial-gradient(ellipse at center,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 6%),radial-gradient(ellipse at center,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 3%);pointer-events:all;border-radius:50%;overflow:hidden}.c-ckolor__wheel-value:hover .c-ckolor__wheel-scoop{transform:scale(1.1)}.as-sortable-item,.as-sortable-placeholder{display:block}.as-sortable-item{-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none}.as-sortable-item-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.as-sortable-drag{position:absolute;pointer-events:none;z-index:9999}.as-sortable-hidden{display:none !important}.as-sortable-un-selectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sas-sortable-item,.sas-sortable-placeholder{min-height:20px;margin:1px 2px 5px 1px;border-radius:10px}.sas-sortable-item{border:solid 1px darkgrey;background-color:#fff}.sas-sortable-placeholder{border:1px dashed darkgrey;box-sizing:border-box;background-color:#dbdbdb}.sas-sortable-drag{opacity:.8}.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;position:relative;overflow:hidden}.toggle-group,.toggle-off,.toggle-on{position:absolute;top:0;bottom:0}.toggle-group{width:200%;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg{min-width:79px;min-height:45px}.toggle-on.btn-lg{padding-right:31px}.toggle-off.btn-lg{padding-left:31px}.toggle-handle.btn-lg{width:40px}.toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px}textarea.sa-realArea,textarea.sa-realArea:focus,textarea.sa-realArea:hover{border-color:transparent}.sa-wrapper{width:100%;position:relative}.sa-fakeArea,.sa-realArea{font-size:inherit;color:inherit;resize:none;overflow:hidden;z-index:0}textarea.sa-realArea{-webkit-text-fill-color:transparent;position:absolute;top:0;left:0;background:0}.sa-fakeArea{color:#000;height:100%}.sa-dropdown{position:absolute;min-width:100px;text-align:left;z-index:1}.sa-dropdown .dropdown-menu{display:block}.sa-dropdown a{padding:2px 6px;font-size:.9em}.sa-dropdown a.active{background-color:#4497de;color:#fff}html,body{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden}body{font-family:Verdana;font-size:12px;font-weight:normal;color:#444;-webkit-overflow-scrolling:touch;background:url(data:image/png;base64,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)}ng-view>logo{display:block;margin:auto;left:0;top:0;right:0;bottom:0;position:absolute;height:200px;width:100%;text-align:center;font-family:verdana,arial font-weight:100;font-size:144px;color:rgba(0,0,0,0.02);z-index:1}*{box-sizing:border-box}.animated{transition:all .25s ease-in-out;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-ms-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out}.ng-animate{transition:.25s linear all}.ng-enter{opacity:0}.ng-enter.ng-enter-active{opacity:1}.ng-leave{opacity:1}.ng-leave.ng-leave-active{opacity:0}.no-animate .ng-enter,.no-animate .ng-leave,.ngdialog-content .ng-enter,.ngdialog-content .ng-leave{display:none !important}.no-animate *{-webkit-transition:none !important;transition:none !important}ng-view,viewer{top:0;left:0;right:0;bottom:0;overflow:hidden;display:block;width:100%;z-index:2}viewer{position:absolute;background:#fff;display:none;top:50px;overflow-y:auto;padding:0 16px}nav.navbar{z-index:100;position:fixed;width:100%;z-index:100;border-radius:0 !important;border:0;box-shadow:1px 1px 5px rgba(0,0,0,0.25)}form toggle+label{margin-left:16px}div.divider.disclaimer::before{font-weight:bold;text-align:left}div.divider.disclaimer.collapsed{margin-bottom:12px}div#loading-bar{position:fixed}select{height:16px;width:100%;opacity:0}footer button.btn+button.btn{margin-left:0;margin-right:8px}.ngdialog.ngdialog-large .ngdialog-content{width:768px}.ngdialog.ngdialog-wiki .ngdialog-content{height:100%}.ngdialog.ngdialog-auto-size{text-align:center}.ngdialog.ngdialog-auto-size .ngdialog-content{width:auto;display:inline-block}.ngdialog-wiki iframe{border:0;width:100%;height:100%}a-ckolor .c-ckolor__input-wrapper{background:transparent;padding:0;margin:0;box-shadow:none;width:100%}div.divider::before{display:block;text-align:center;cursor:pointer}div.divider[aria-expanded=false]::before{content:attr(collapsed-title)}div.divider[aria-expanded=true]::before{content:attr(expanded-title)}a-ckolor-wheel{z-index:9999}info{display:block;padding:8px;background:#ddd;border:solid 1px #ccc;border-radius:4px;margin-bottom:16px;text-align:justify}.no-border-radius,.no-border-radius>button{border-radius:0}.no-padding{padding:0 !important}.form-table{width:100%;table-layout:fixed}.dndDragging{opacity:.7}.dndDraggingSource{display:none !important}.dndPlaceholder{background:#07d !important;display:block;height:17px}.bootstrap-select>.dropdown-toggle.btn-warning.bs-placeholder,.bootstrap-select>.dropdown-toggle.btn-info.bs-placeholder{color:#eee}.input-group toggle{overflow:hidden}toggle.input-group-addon{padding:0}.form-group>label+p{text-align:justify}.input-group toggle>div{width:100% !important;height:auto !important;border:0 !important;sborder-radius:0;margin:-1px 0 !important}.nav.navbar-nav.btn-group{margin:7.5px 3px}.danger{color:#c12e2a}.bin{font-size:32px;text-align:center;color:transparent;height:56px;line-height:48px;width:100%;padding:4px;max-width:400px;margin:auto auto 4px auto;background-image:url(data:image/png;base64,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);background-size:100% 100%}.bin[reveal=true]{color:#fff}wiki{padding-left:4px;color:#acf;cursor:pointer}wiki:hover{color:#444}loader{display:block;position:fixed;left:0;top:0;margin:auto;text-align:center;vertical-align:middle;bottom:0;right:0;background:rgba(0,0,0,0.25);z-index:99998}loader i{position:absolute;right:16px;bottom:16px}loader ul{position:absolute;margin:auto;bottom:32px;right:32px;width:64px;height:64px;padding:0;list-style:none}loader li{position:absolute;width:64px;height:64px;border-radius:5px;background:#fad335;opacity:.8}loader li:nth-child(1){background:#fc9}loader li:nth-child(2){background:#f9c}loader li:nth-child(3){background:#cf9}loader li:nth-child(4){background:#9cf}loader li:nth-child(2){animation:rotation1 3s infinite;-o-animation:rotation1 3s infinite;-moz-animation:rotation1 3s infinite;-webkit-animation:rotation1 3s infinite}loader li:nth-child(3){animation:rotation2 3s infinite;-o-animation:rotation2 3s infinite;-moz-animation:rotation2 3s infinite;-webkit-animation:rotation2 3s infinite;animation-delay:.2s;-o-animation-delay:.2s;-moz-animation-delay:.2s;-webkit-animation-delay:.2s}loader li:nth-child(4){animation:rotation3 3s infinite;-o-animation:rotation3 3s infinite;-moz-animation:rotation3 3s infinite;-webkit-animation:rotation3 3s infinite;animation-delay:.4s;-o-animation-delay:.4s;-ms-animation-delay:.4s;-moz-animation-delay:.4s;-webkit-animation-delay:.4s}@keyframes rotation1{from{transform:rotate(-360deg)}30%,60%{transform:rotate(20deg)}80%{transform:rotate(0)}}@-o-keyframes rotation1{from{-o-transform:rotate(-360deg)}30%,60%{-o-transform:rotate(20deg)}80%{-o-transform:rotate(0)}}@-moz-keyframes rotation1{from{-moz-transform:rotate(-360deg)}30%,60%{-moz-transform:rotate(20deg)}80%{-moz-transform:rotate(0)}}@-webkit-keyframes rotation1{from{-webkit-transform:rotate(-360deg)}30%,60%{-webkit-transform:rotate(20deg)}80%{-webkit-transform:rotate(0)}}@keyframes rotation2{from{transform:rotate(-360deg)}30%,60%{transform:rotate(45deg)}80%{transform:rotate(0)}}@-o-keyframes rotation2{from{-o-transform:rotate(-360deg)}30%,60%{-o-transform:rotate(45deg)}80%{-o-transform:rotate(0)}}@-moz-keyframes rotation2{from{-moz-transform:rotate(-360deg)}30%,60%{-moz-transform:rotate(45deg)}80%{-moz-transform:rotate(0)}}@-webkit-keyframes rotation2{from{-webkit-transform:rotate(-360deg)}30%,60%{-webkit-transform:rotate(45deg)}80%{-webkit-transform:rotate(0)}}@keyframes rotation3{from{transform:rotate(-360deg)}30%,60%{transform:rotate(75deg)}80%{transform:rotate(0)}}@-o-keyframes rotation3{from{-o-transform:rotate(-360deg)}30%,60%{-o-transform:rotate(75deg)}80%{-o-transform:rotate(0)}}@-moz-keyframes rotation3{from{-moz-transform:rotate(-360deg)}30%,60%{-moz-transform:rotate(75deg)}80%{-moz-transform:rotate(0)}}@-webkit-keyframes rotation3{from{-webkit-transform:rotate(-360deg)}30%,60%{-webkit-transform:rotate(75deg)}80%{-webkit-transform:rotate(0)}}status{position:fixed;display:block;left:0;right:0;top:0;padding:16px;background:rgba(128,128,128,0.9);height:auto;text-align:left;font-size:1.5em;color:#eee;z-index:99999;line-height:18px}status.ng-animate{transition:.25s linear all}status.ng-enter{opacity:0;top:-64px}status.ng-enter.ng-enter-active{top:0;opacity:1}status.ng-leave{top:0;opacity:1}status.ng-leave.ng-leave-active{top:-64px;opacity:0}error{position:fixed;left:0;top:0;right:0;bottom:0;margin:auto;width:600px;max-width:80%;height:auto;max-height:250px;padding:32px;background:rgba(0,0,0,0.1);border-radius:8px;text-align:center;z-index:99999}error p{font-size:18px;color:red}error button{margin-top:16px}.btn i{height:20px;line-height:20px}label>input{display:none}.active-tick a::before{float:left;font-size:12px;line-height:1.5em;vertical-align:center;margin-left:-16px;margin-right:0;content:'\f00c';font-family:'FontAwesome'}.dropdown-menu .divider{background-color:#ccc}input[type=number]{text-align:right}.has-feedback.has-feedback-right label~.form-control-feedback{text-align:left}designer{display:block}designer>header,designer>footer{display:block;padding:0}designer>footer button{margin-top:8px !important}designer>header{margin-bottom:16px}designer>footer{margin-top:16px}designer>header>label{display:block;line-height:48px;font-size:18px}designer items{display:block}designer items>item{display:inline-block;min-width:96px;max-width:128px;width:15.5%;height:96px;border:solid 1px #ccc;border-radius:4px;margin:0 8px 8px 0;text-align:center;line-height:32px;font-size:32px !important;padding:16px 4px;cursor:pointer}designer items>item::after{margin-top:16px;display:block;content:attr(title);font-size:12px}designer items>item[selected]{background-color:#adf;cursor:default}designer items>item.wide{min-width:100%;max-width:100%;padding-left:64px;width:100%;min-height:64px;height:auto;line-height:32px;font-size:32px !important}designer items>item.wide::before{padding:0 16px;float:left;margin-left:-64px}designer items>item.wide::after{margin:0;text-align:left;font-size:16px}designer form>p,designer>p{display:flex;flex-direction:row;justify-content:center;text-align:center}designer form>p:before,designer form>p:after,designer>p:before,designer>p:after{border-top:double 3px #ccc;content:'\a0';flex-grow:1;height:1px;position:relative;top:.6em}designer form>p:before,designer>p:before{margin-right:10px}designer form>p:after,designer>p:after{margin-left:10px}designer form .form-group.row label{padding-left:32px;line-height:32px}designer form>* p{padding-left:16px}designer form a-ckolor{margin-top:8px}.ngdialog.ngdialog-disabled-animation,.ngdialog.ngdialog-disabled-animation *,.ngdialog.ngdialog-disabled-animation .ngdialog-content,.ngdialog.ngdialog-disabled-animation .ngdialog-overlay{-webkit-animation:none !important;animation:none !important;-webkit-transition:none !important;transition:none !important}.ngdialog{background:rgba(0,0,0,0.25)}.ngdialog .ngdialog-overlay{display:none !important}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sa-dropdown{z-index:9999}input[type="time"]{display:block;-webkit-appearance:textfield;-moz-appearance:textfield;text-align:right}ul.socialmedia{position:absolute;display:block;left:0;right:0;bottom:0;height:auto;padding:0;margin:16px 0}ul.socialmedia li{display:block;text-align:center}ul.socialmedia li>*{filter:grayscale();opacity:.25}ul.socialmedia li>*:hover{filter:none;opacity:1}ul.socialmedia li+li{margin-top:4px}ul.socialmedia a .fa-facebook{background:#3b5998;color:white;padding:6px 2px 2px 10px;border-radius:4px;display:inline-block;width:20px;height:20px}ul.socialmedia a .fa-twitter{background:#00aced;color:white;padding:6px 6px 2px 6px;border-radius:4px;display:inline-block;width:20px;height:20px}span.s-b{font-weight:bold}span.s-i{font-style:italic}span.s-u{text-decoration:underline}span.s-s{text-decoration:line-through}span.s-s{white-space:pre-wrap}@media only screen and (max-width:767px){body>logo{font-size:80px}.ngdialog{padding:0 !important;overflow:hidden}.ngdialog .ngdialog-content{width:100% !important;height:100% !important;border-radius:0 !important;overflow:hidden;overflow-y:auto}nav:not([fixed]) a.dropdown-toggle{display:none}nav:not([fixed]) ul.dropdown-menu{position:relative;display:block;width:100%;border:0;border-radius:0;background:transparent;box-shadow:none}.alert{margin-bottom:0}nav:not([fixed]) li a.dropdown-toggle,nav:not([fixed]) li[role=separator]:not(.dropdown-header){display:none !important}nav:not([fixed]) ul{margin-top:0 !important;margin-bottom:0 !important;padding:0 !important}nav:not([fixed]) ul.navbar-right{margin-top:32px !important}nav:not([fixed]) ul.dropdown-menu>li{padding:0}nav:not([fixed]) ul.dropdown-menu>li>a,nav:not([fixed]) li.dropdown>a{display:block;padding:8px 20px;clear:both;font-weight:400;height:44px;line-height:28px;color:#333 !important;white-space:nowrap;font-size:14px;border-bottom:solid 1px #ccc}.active-tick a::before{line-height:28px}li.dropdown-header{padding:8px 20px !important;border-bottom:solid 1px #ccc}ul:active{background:none !important}a:hover{background:#eee !important}} \ No newline at end of file + */select.bs-select-hidden,select.selectpicker{display:none !important}.bootstrap-select{width:220px \0}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px;z-index:1}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:active{color:#999}.bootstrap-select>select{position:absolute !important;bottom:0;left:50%;display:block !important;width:.5px !important;height:100% !important;padding:0 !important;opacity:0 !important;border:0}.bootstrap-select>select.mobile-device{top:0;left:0;display:block !important;width:100% !important;z-index:2}.has-error .bootstrap-select .dropdown-toggle,.error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto !important}.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333 !important;outline:5px auto -webkit-focus-ring-color !important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:0}.bootstrap-select.form-control:not([class*="col-"]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*="col-"]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*="col-"].dropdown-menu-right,.row .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right{float:right}.form-inline .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-group .bootstrap-select.btn-group{margin-bottom:0}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.form-group-lg .bootstrap-select.btn-group.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.btn-group.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:none !important}.bootstrap-select.btn-group.bs-container{position:absolute;height:0 !important;padding:0 !important}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group[class*="col-"] .dropdown-toggle{width:100%}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li.active small{color:#fff}.bootstrap-select.btn-group .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,0.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,0.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid white;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after{display:block}.bs-searchbox,.bs-actionsbox,.bs-donebutton{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}@-webkit-keyframes ngdialog-flyin{0{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes ngdialog-flyin{0{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes ngdialog-flyout{0{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes ngdialog-flyout{0{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}.ngdialog.ngdialog-theme-default{padding-bottom:32px;padding-top:32px}.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content{-webkit-animation:ngdialog-flyout .5s;animation:ngdialog-flyout .5s}.ngdialog.ngdialog-theme-default .ngdialog-content{-webkit-animation:ngdialog-flyin .5s;animation:ngdialog-flyin .5s;background:#f0f0f0;border-radius:5px;color:#444;font-family:Helvetica,sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:480px}.ngdialog.ngdialog-theme-default .ngdialog-close{border-radius:5px;cursor:pointer;position:absolute;right:0;top:0}.ngdialog.ngdialog-theme-default .ngdialog-close:before{background:0;border-radius:3px;color:#bbb;content:'\00D7';font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-default .ngdialog-close:active:before,.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-default .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-default .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-default .ngdialog-input textarea{background:#fff;border:0;border-radius:3px;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus{box-shadow:inset 0 0 0 2px #8dbdf1;outline:0}.ngdialog.ngdialog-theme-default .ngdialog-buttons:after{content:'';display:table;clear:both}.ngdialog.ngdialog-theme-default .ngdialog-button{border:0;border-radius:3px;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media(max-width:568px){.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777}.material-switch>input[type=checkbox]{display:none}.material-switch>label{cursor:pointer;height:0;position:relative;width:40px}.material-switch>label::after,.material-switch>label::before{content:'';margin-top:-8px;position:absolute}.material-switch>label::before{background:#000;box-shadow:inset 0 0 10px rgba(0,0,0,.5);border-radius:8px;height:16px;opacity:.3;transition:all .4s ease-in-out;width:40px}.material-switch>label::after{background:#fff;border-radius:16px;box-shadow:0 0 5px rgba(0,0,0,.3);height:24px;left:-4px;top:-4px;transition:all .3s ease-in-out;width:24px}.material-switch>input[type=checkbox]:checked+label::before{background:inherit;opacity:.5}.material-switch>input[type=checkbox]:checked+label::after{background:inherit;left:20px}a-ckolor-wheel{display:block;position:absolute;z-index:9999;-webkit-filter:none !important;filter:none !important}.c-ckolor__input-row{margin:14px 0}.c-ckolor__input-row.center{text-align:center}.c-ckolor__input-wrapper{width:200px;height:21px;line-height:21px;padding:7px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.14),0 3px 10px rgba(0,0,0,.035);border-radius:2px;margin:7px 0;font-size:14px;color:#555;font-family:sans-serif;text-transform:uppercase;cursor:pointer}.c-ckolor__input-wrapper button{outline:0 !important;background:0;border:0;-webkit-appearance:none;width:21px;font-size:18px;padding:0;color:#fff;opacity:.7;box-shadow:none;margin:-4px 0 0;cursor:pointer;transition:all .2s}.c-ckolor__input-wrapper button:hover{transform:scale(1.05);opacity:1}.c-ckolor__input-wrapper span{display:inline-block;vertical-align:middle}.c-ckolor__overlay{width:100%;height:100%;position:fixed;left:0;top:0;background:radial-gradient(ellipse at 50% 250px,rgba(19,49,63,.91) 0,rgba(0,0,0,.91) 100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:9999}.c-ckolor__overlay input[type=text],.c-ckolor__overlay input[type=number]{color:#aaa;font-size:12px;text-align:center;font-style:normal;text-transform:uppercase;display:inline-block;height:19px;background:rgba(255,255,255,.07);border:0;box-shadow:none;box-sizing:border-box;padding:0 3px;margin:0;width:100%;border-radius:2px;-webkit-appearance:none;outline:0 !important;transition:all .2s}.c-ckolor__overlay input[type=text]:focus,.c-ckolor__overlay input[type=text]:hover,.c-ckolor__overlay input[type=number]:focus,.c-ckolor__overlay input[type=number]:hover{background:rgba(255,255,255,.14)}.c-ckolor__overlay input[type=text][type=number],.c-ckolor__overlay input[type=number][type=number]{-moz-appearance:textfield}.c-ckolor__overlay input[type=text][type=number]::-webkit-inner-spin-button,.c-ckolor__overlay input[type=text][type=number]::-webkit-outer-spin-button,.c-ckolor__overlay input[type=number][type=number]::-webkit-inner-spin-button,.c-ckolor__overlay input[type=number][type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.c-ckolor__overlay .c-ckolor__swatch{margin:0 0 0 1px;width:0;height:0;display:inline-block;vertical-align:middle;padding:18px;position:relative}.c-ckolor__overlay .c-ckolor__swatch span{display:block;width:100%;height:100%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 0 1px rgba(0,0,0,.07);border-radius:50%;position:absolute;top:0;left:0}.c-ckolor__overlay .c-ckolor__input-wrapper{width:30%;overflow:hidden;background:0;box-shadow:none;color:#aaa;display:inline-block;padding:0;margin:0 1px;line-height:14px}.c-ckolor__overlay .c-ckolor__input-wrapper.smaller{width:30px}.c-ckolor__overlay .c-ckolor__input-wrapper.button{width:9%;vertical-align:middle;margin:0 0 0 2px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown{width:20%;overflow:visible;position:relative;vertical-align:middle;text-align:center;font-size:12px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown div{margin-left:3px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown div:before{content:"\f0dd";display:inline-block;font:normal normal normal 14px/1 FontAwesome;margin:0 3px 0 0;position:relative;top:-3px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul{margin:0;padding:0;display:block;position:absolute;height:auto;overflow:hidden;max-height:0;background:rgba(255,255,255,.77);width:100%;color:#333;border-radius:2px;transition:all .2s}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul li{display:block;padding:5px 7px;box-shadow:0 1px 0 rgba(0,0,0,.05)}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul li:hover{background:#fff}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown:hover ul{max-height:140px}.c-ckolor__overlay .c-ckolor__input-wrapper.hex{width:100%}.c-ckolor__overlay .c-ckolor__input-wrapper.hex input{text-align:left}.c-ckolor_previous-color-container{margin:28px auto 14px;box-sizing:border-box;padding:28px 7px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 -1px 0 rgba(0,0,0,.2);text-align:center}.c-ckolor_previous-swatch{height:0;display:inline-block;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.12);padding:3%;margin:1.7%;border-radius:50%;transition:transform .2s}.c-ckolor_previous-swatch:hover{transform:scale(1.1)}.c-ckolor__overlay-blur>*{-webkit-filter:blur(3px);filter:blur(3px);transition:-webkit-filter .2s;transition:filter .2s;transition:filter .2s,-webkit-filter .2s}.c-ckolor__overlay-inner-outer{position:relative;overflow:auto;width:100%;height:100%}.c-ckolor__overlay-inner{width:280px;position:relative;margin:35px auto 20px}.c-ckolor__overlay-inputs{width:40%;display:inline-block;vertical-align:middle;position:relative;top:2px}.c-ckolor__alpha-wrapper{background:linear-gradient(0,rgba(138,138,138,.14) 0,rgba(138,138,138,.14) 1px,transparent 1px,transparent 5px),linear-gradient(90deg,rgba(138,138,138,.14) 0,rgba(138,138,138,.14) 1px,transparent 1px,transparent 5px);background-repeat:repeat;background-size:5px 5px;background-position:7px 6px;border-radius:50px}.c-ckolor__alpha,.c-ckolor__saturation{position:relative;width:100%;height:21px;border-radius:50px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 0 1px rgba(0,0,0,.07)}.c-ckolor__alpha:hover .c-ckolor__alpha-handle,.c-ckolor__saturation:hover .c-ckolor__saturation-handle{transform:scale(1.1);background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px #fff,inset 0 2px 14px rgba(0,0,0,.16),0 1px 3px rgba(0,0,0,.25),0 7px 14px rgba(0,0,0,.2)}.c-ckolor__alpha-handle,.c-ckolor__saturation-handle{pointer-events:none;position:absolute;width:14px;height:14px;background:rgba(255,255,255,.4);border-radius:50%;top:3px;left:50%;margin-left:-7px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.79),inset 0 2px 14px rgba(0,0,0,.22),0 1px 3px rgba(0,0,0,.14);transition:transform .2s,background .2s,box-shadow .2s;cursor:pointer;transform:scale(1)}.c-ckolor__swatch{width:14px;height:14px;display:inline-block;vertical-align:middle;border-radius:2px}.c-ckolor__wheel-scoop{pointer-events:none;position:absolute;top:50%;left:50%;width:20px;height:20px;border-radius:50%;background:red;margin:-11px 0 0 -11px;box-shadow:0 0 0 2px #fff;transition:transform .2s}.c-ckolor__wheel{overflow:hidden;width:0;height:0;padding:50%;position:relative;box-shadow:0 0 0 6px #fff;margin-bottom:28px;cursor:pointer;background:#fff;border-radius:50%;z-index:0}.c-ckolor__wheel,.c-ckolor__wheel *{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.c-ckolor__wheel-color{display:block}.c-ckolor__wheel-color:nth-child(1){transform:rotate(10deg)}.c-ckolor__wheel-color:nth-child(2){transform:rotate(20deg)}.c-ckolor__wheel-color:nth-child(3){transform:rotate(30deg)}.c-ckolor__wheel-color:nth-child(4){transform:rotate(40deg)}.c-ckolor__wheel-color:nth-child(5){transform:rotate(50deg)}.c-ckolor__wheel-color:nth-child(6){transform:rotate(60deg)}.c-ckolor__wheel-color:nth-child(7){transform:rotate(70deg)}.c-ckolor__wheel-color:nth-child(8){transform:rotate(80deg)}.c-ckolor__wheel-color:nth-child(9){transform:rotate(90deg)}.c-ckolor__wheel-color:nth-child(10){transform:rotate(100deg)}.c-ckolor__wheel-color:nth-child(11){transform:rotate(110deg)}.c-ckolor__wheel-color:nth-child(12){transform:rotate(120deg)}.c-ckolor__wheel-color:nth-child(13){transform:rotate(130deg)}.c-ckolor__wheel-color:nth-child(14){transform:rotate(140deg)}.c-ckolor__wheel-color:nth-child(15){transform:rotate(150deg)}.c-ckolor__wheel-color:nth-child(16){transform:rotate(160deg)}.c-ckolor__wheel-color:nth-child(17){transform:rotate(170deg)}.c-ckolor__wheel-color:nth-child(18){transform:rotate(180deg)}.c-ckolor__wheel-color:nth-child(19){transform:rotate(190deg)}.c-ckolor__wheel-color:nth-child(20){transform:rotate(200deg)}.c-ckolor__wheel-color:nth-child(21){transform:rotate(210deg)}.c-ckolor__wheel-color:nth-child(22){transform:rotate(220deg)}.c-ckolor__wheel-color:nth-child(23){transform:rotate(230deg)}.c-ckolor__wheel-color:nth-child(24){transform:rotate(240deg)}.c-ckolor__wheel-color:nth-child(25){transform:rotate(250deg)}.c-ckolor__wheel-color:nth-child(26){transform:rotate(260deg)}.c-ckolor__wheel-color:nth-child(27){transform:rotate(270deg)}.c-ckolor__wheel-color:nth-child(28){transform:rotate(280deg)}.c-ckolor__wheel-color:nth-child(29){transform:rotate(290deg)}.c-ckolor__wheel-color:nth-child(30){transform:rotate(300deg)}.c-ckolor__wheel-color:nth-child(31){transform:rotate(310deg)}.c-ckolor__wheel-color:nth-child(32){transform:rotate(320deg)}.c-ckolor__wheel-color:nth-child(33){transform:rotate(330deg)}.c-ckolor__wheel-color:nth-child(34){transform:rotate(340deg)}.c-ckolor__wheel-color:nth-child(35){transform:rotate(350deg)}.c-ckolor__wheel-color:nth-child(36){transform:rotate(360deg)}.c-ckolor__wheel-color:nth-child(37){transform:rotate(370deg)}.c-ckolor__wheel-color,.c-ckolor__wheel-color-inner1,.c-ckolor__wheel-color-inner2,.c-ckolor__wheel-color-inner2-2,.c-ckolor__wheel-value{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none;overflow:hidden}.c-ckolor__wheel-colors{width:120%;height:120%;margin-left:-10%;margin-top:-10%;-webkit-filter:blur(14px);filter:blur(14px);background:#000;position:absolute;top:0;left:0}.c-ckolor__wheel-color-inner1{transform:rotate(60deg) translate(50%,50%)}.c-ckolor__wheel-color-inner2{transform:rotate(-79deg) translate(49%,26%);transform-origin:0 0;background-image:linear-gradient(177deg,transparent 30%,rgba(0,0,0,.35) 38%,rgba(0,0,0,.5) 42%,rgba(0,0,0,.9) 55%),linear-gradient(177deg,rgba(255,255,255,.9) 13%,rgba(255,255,255,0) 30%)}.c-ckolor__wheel-value{box-shadow:inset 0 0 3px rgba(255,255,255,.53),inset 0 0 5px 1px rgba(0,0,0,.12),inset 0 0 0 1px rgba(0,0,0,.38),0 0 0 1px #000;background:radial-gradient(ellipse at center,rgba(255,255,255,.2) 0,rgba(255,255,255,0) 18%),radial-gradient(ellipse at center,rgba(255,255,255,.3) 0,rgba(255,255,255,0) 11%),radial-gradient(ellipse at center,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 6%),radial-gradient(ellipse at center,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 3%);pointer-events:all;border-radius:50%;overflow:hidden}.c-ckolor__wheel-value:hover .c-ckolor__wheel-scoop{transform:scale(1.1)}.as-sortable-item,.as-sortable-placeholder{display:block}.as-sortable-item{-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none}.as-sortable-item-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.as-sortable-drag{position:absolute;pointer-events:none;z-index:9999}.as-sortable-hidden{display:none !important}.as-sortable-un-selectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sas-sortable-item,.sas-sortable-placeholder{min-height:20px;margin:1px 2px 5px 1px;border-radius:10px}.sas-sortable-item{border:solid 1px darkgrey;background-color:#fff}.sas-sortable-placeholder{border:1px dashed darkgrey;box-sizing:border-box;background-color:#dbdbdb}.sas-sortable-drag{opacity:.8}.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;position:relative;overflow:hidden}.toggle-group,.toggle-off,.toggle-on{position:absolute;top:0;bottom:0}.toggle-group{width:200%;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg{min-width:79px;min-height:45px}.toggle-on.btn-lg{padding-right:31px}.toggle-off.btn-lg{padding-left:31px}.toggle-handle.btn-lg{width:40px}.toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px}textarea.sa-realArea,textarea.sa-realArea:focus,textarea.sa-realArea:hover{border-color:transparent}.sa-wrapper{width:100%;position:relative}.sa-fakeArea,.sa-realArea{font-size:inherit;color:inherit;resize:none;overflow:hidden;z-index:0}textarea.sa-realArea{-webkit-text-fill-color:transparent;position:absolute;top:0;left:0;background:0}.sa-fakeArea{color:#000;height:100%}.sa-dropdown{position:absolute;min-width:100px;text-align:left;z-index:1}.sa-dropdown .dropdown-menu{display:block}.sa-dropdown a{padding:2px 6px;font-size:.9em}.sa-dropdown a.active{background-color:#4497de;color:#fff}html,body{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden}body{font-family:Verdana;font-size:12px;font-weight:normal;color:#444;-webkit-overflow-scrolling:touch;background:url(data:image/png;base64,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)}ng-view>logo{display:block;margin:auto;left:0;top:0;right:0;bottom:0;position:absolute;height:200px;width:100%;text-align:center;font-family:verdana,arial font-weight:100;font-size:144px;color:rgba(0,0,0,0.02);z-index:1}*{box-sizing:border-box}.animated{transition:all .25s ease-in-out;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-ms-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out}.ng-animate{transition:.25s linear all}.ng-enter{opacity:0}.ng-enter.ng-enter-active{opacity:1}.ng-leave{opacity:1}.ng-leave.ng-leave-active{opacity:0}.no-animate .ng-enter,.no-animate .ng-leave,.ngdialog-content .ng-enter,.ngdialog-content .ng-leave{display:none !important}.no-animate *{-webkit-transition:none !important;transition:none !important}ng-view,viewer{top:0;left:0;right:0;bottom:0;overflow:hidden;display:block;width:100%;z-index:2}viewer{position:absolute;background:#fff;display:none;top:50px;overflow-y:auto;padding:0 16px}nav.navbar{z-index:100;position:fixed;width:100%;z-index:100;border-radius:0 !important;border:0;box-shadow:1px 1px 5px rgba(0,0,0,0.25)}form toggle+label{margin-left:16px}div.divider.disclaimer::before{font-weight:bold;text-align:left}div.divider.disclaimer.collapsed{margin-bottom:12px}div#loading-bar{position:fixed}select{height:16px;width:100%;opacity:0}footer button.btn+button.btn{margin-left:0;margin-right:8px}.ngdialog.ngdialog-large .ngdialog-content{width:768px}.ngdialog.ngdialog-wiki .ngdialog-content{height:100%}.ngdialog.ngdialog-auto-size{text-align:center}.ngdialog.ngdialog-auto-size .ngdialog-content{width:auto;display:inline-block}.ngdialog-wiki iframe{border:0;width:100%;height:100%}a-ckolor .c-ckolor__input-wrapper{background:transparent;padding:0;margin:0;box-shadow:none;width:100%}div.divider::before{display:block;text-align:center;cursor:pointer}div.divider[aria-expanded=false]::before{content:attr(collapsed-title)}div.divider[aria-expanded=true]::before{content:attr(expanded-title)}a-ckolor-wheel{z-index:9999}info{display:block;padding:8px;background:#ddd;border:solid 1px #ccc;border-radius:4px;margin-bottom:16px;text-align:justify}.no-border-radius,.no-border-radius>button{border-radius:0}.no-padding{padding:0 !important}.form-table{width:100%;table-layout:fixed}.dndDragging{opacity:.7}.dndDraggingSource{display:none !important}.dndPlaceholder{background:#07d !important;display:block;height:17px}.bootstrap-select>.dropdown-toggle.btn-warning.bs-placeholder,.bootstrap-select>.dropdown-toggle.btn-info.bs-placeholder{color:#eee}.input-group toggle{overflow:hidden}toggle.input-group-addon{padding:0}.form-group>label+p{text-align:justify}.input-group toggle>div{width:100% !important;height:auto !important;border:0 !important;sborder-radius:0;margin:-1px 0 !important}.nav.navbar-nav.btn-group{margin:7.5px 3px}.danger{color:#c12e2a}.bin{font-size:32px;text-align:center;color:transparent;height:56px;line-height:48px;width:100%;padding:4px;max-width:400px;margin:auto auto 4px auto;background-image:url(data:image/png;base64,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);background-size:100% 100%}.bin[reveal=true]{color:#fff}wiki{padding-left:4px;color:#acf;cursor:pointer}wiki:hover{color:#444}loader{display:block;position:fixed;left:0;top:0;margin:auto;text-align:center;vertical-align:middle;bottom:0;right:0;background:rgba(0,0,0,0.25);z-index:99998}loader i{position:absolute;right:16px;bottom:16px}loader ul{position:absolute;margin:auto;bottom:32px;right:32px;width:64px;height:64px;padding:0;list-style:none}loader li{position:absolute;width:64px;height:64px;border-radius:5px;background:#fad335;opacity:.8}loader li:nth-child(1){background:#fc9}loader li:nth-child(2){background:#f9c}loader li:nth-child(3){background:#cf9}loader li:nth-child(4){background:#9cf}loader li:nth-child(2){animation:rotation1 3s infinite;-o-animation:rotation1 3s infinite;-moz-animation:rotation1 3s infinite;-webkit-animation:rotation1 3s infinite}loader li:nth-child(3){animation:rotation2 3s infinite;-o-animation:rotation2 3s infinite;-moz-animation:rotation2 3s infinite;-webkit-animation:rotation2 3s infinite;animation-delay:.2s;-o-animation-delay:.2s;-moz-animation-delay:.2s;-webkit-animation-delay:.2s}loader li:nth-child(4){animation:rotation3 3s infinite;-o-animation:rotation3 3s infinite;-moz-animation:rotation3 3s infinite;-webkit-animation:rotation3 3s infinite;animation-delay:.4s;-o-animation-delay:.4s;-ms-animation-delay:.4s;-moz-animation-delay:.4s;-webkit-animation-delay:.4s}@keyframes rotation1{from{transform:rotate(-360deg)}30%,60%{transform:rotate(20deg)}80%{transform:rotate(0)}}@-o-keyframes rotation1{from{-o-transform:rotate(-360deg)}30%,60%{-o-transform:rotate(20deg)}80%{-o-transform:rotate(0)}}@-moz-keyframes rotation1{from{-moz-transform:rotate(-360deg)}30%,60%{-moz-transform:rotate(20deg)}80%{-moz-transform:rotate(0)}}@-webkit-keyframes rotation1{from{-webkit-transform:rotate(-360deg)}30%,60%{-webkit-transform:rotate(20deg)}80%{-webkit-transform:rotate(0)}}@keyframes rotation2{from{transform:rotate(-360deg)}30%,60%{transform:rotate(45deg)}80%{transform:rotate(0)}}@-o-keyframes rotation2{from{-o-transform:rotate(-360deg)}30%,60%{-o-transform:rotate(45deg)}80%{-o-transform:rotate(0)}}@-moz-keyframes rotation2{from{-moz-transform:rotate(-360deg)}30%,60%{-moz-transform:rotate(45deg)}80%{-moz-transform:rotate(0)}}@-webkit-keyframes rotation2{from{-webkit-transform:rotate(-360deg)}30%,60%{-webkit-transform:rotate(45deg)}80%{-webkit-transform:rotate(0)}}@keyframes rotation3{from{transform:rotate(-360deg)}30%,60%{transform:rotate(75deg)}80%{transform:rotate(0)}}@-o-keyframes rotation3{from{-o-transform:rotate(-360deg)}30%,60%{-o-transform:rotate(75deg)}80%{-o-transform:rotate(0)}}@-moz-keyframes rotation3{from{-moz-transform:rotate(-360deg)}30%,60%{-moz-transform:rotate(75deg)}80%{-moz-transform:rotate(0)}}@-webkit-keyframes rotation3{from{-webkit-transform:rotate(-360deg)}30%,60%{-webkit-transform:rotate(75deg)}80%{-webkit-transform:rotate(0)}}status{position:fixed;display:block;left:0;right:0;top:0;padding:16px;background:rgba(128,128,128,0.9);height:auto;text-align:left;font-size:1.5em;color:#eee;z-index:99999;line-height:18px}status.ng-animate{transition:.25s linear all}status.ng-enter{opacity:0;top:-64px}status.ng-enter.ng-enter-active{top:0;opacity:1}status.ng-leave{top:0;opacity:1}status.ng-leave.ng-leave-active{top:-64px;opacity:0}error{position:fixed;left:0;top:0;right:0;bottom:0;margin:auto;width:600px;max-width:80%;height:auto;max-height:250px;padding:32px;background:rgba(0,0,0,0.1);border-radius:8px;text-align:center;z-index:99999}error p{font-size:18px;color:red}error button{margin-top:16px}.btn i{height:20px;line-height:20px}label>input{display:none}.active-tick a::before{float:left;font-size:12px;line-height:1.5em;vertical-align:center;margin-left:-16px;margin-right:0;content:'\f00c';font-family:'FontAwesome'}.dropdown-menu .divider{background-color:#ccc}input[type=number]{text-align:right}.has-feedback.has-feedback-right label~.form-control-feedback{text-align:left}designer{display:block}designer>header,designer>footer{display:block;padding:0}designer>footer button{margin-top:8px !important}designer>header{margin-bottom:16px}designer>footer{margin-top:16px}designer>header>label{display:block;line-height:48px;font-size:18px}designer items{display:block}designer items>item{display:inline-block;min-width:96px;max-width:128px;width:15.5%;height:96px;border:solid 1px #ccc;border-radius:4px;margin:0 8px 8px 0;text-align:center;line-height:32px;font-size:32px !important;padding:16px 4px;cursor:pointer}designer items>item::after{margin-top:16px;display:block;content:attr(title);font-size:12px}designer items>item[selected]{background-color:#adf;cursor:default}designer items>item.wide{min-width:100%;max-width:100%;padding-left:64px;width:100%;min-height:64px;height:auto;line-height:32px;font-size:32px !important}designer items>item.wide::before{padding:0 16px;float:left;margin-left:-64px}designer items>item.wide::after{margin:0;text-align:left;font-size:16px}designer form>p,designer>p{display:flex;flex-direction:row;justify-content:center;text-align:center}designer form>p:before,designer form>p:after,designer>p:before,designer>p:after{border-top:double 3px #ccc;content:'\a0';flex-grow:1;height:1px;position:relative;top:.6em}designer form>p:before,designer>p:before{margin-right:10px}designer form>p:after,designer>p:after{margin-left:10px}designer form .form-group.row label{padding-left:32px;line-height:32px}designer form>* p{padding-left:16px}designer form a-ckolor{margin-top:8px}.ngdialog.ngdialog-disabled-animation,.ngdialog.ngdialog-disabled-animation *,.ngdialog.ngdialog-disabled-animation .ngdialog-content,.ngdialog.ngdialog-disabled-animation .ngdialog-overlay{-webkit-animation:none !important;animation:none !important;-webkit-transition:none !important;transition:none !important}.ngdialog{background:rgba(0,0,0,0.25)}.ngdialog .ngdialog-overlay{display:none !important}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sa-dropdown{z-index:9999}input[type="time"]{display:block;-webkit-appearance:textfield;-moz-appearance:textfield;text-align:right}ul.socialmedia{position:absolute;display:block;left:0;right:0;bottom:0;height:auto;padding:0;margin:16px 0}ul.socialmedia li{display:block;text-align:center}ul.socialmedia li>*{filter:grayscale();opacity:.25}ul.socialmedia li>*:hover{filter:none;opacity:1}ul.socialmedia li+li{margin-top:4px}ul.socialmedia a .fa-facebook{background:#3b5998;color:white;padding:6px 2px 2px 10px;border-radius:4px;display:inline-block;width:20px;height:20px}ul.socialmedia a .fa-twitter{background:#00aced;color:white;padding:6px 6px 2px 6px;border-radius:4px;display:inline-block;width:20px;height:20px}span.s-b{font-weight:bold}span.s-i{font-style:italic}span.s-u{text-decoration:underline}span.s-s{text-decoration:line-through}span.s-pre{white-space:pre-wrap}span.s-flash{animation:s-flash 1s steps(2) infinite}@-webkit-keyframes s-flash{to{opacity:0}}}@-moz-keyframes s-flash{to{opacity:0}}}@-ms-keyframes s-flash{to{opacity:0}}}@-o-keyframes s-flash{to{opacity:0}}}@keyframes s-flash{to{opacity:0}}}@media only screen and (max-width:767px){body>logo{font-size:80px}.ngdialog{padding:0 !important;overflow:hidden}.ngdialog .ngdialog-content{width:100% !important;height:100% !important;border-radius:0 !important;overflow:hidden;overflow-y:auto}nav:not([fixed]) a.dropdown-toggle{display:none}nav:not([fixed]) ul.dropdown-menu{position:relative;display:block;width:100%;border:0;border-radius:0;background:transparent;box-shadow:none}.alert{margin-bottom:0}nav:not([fixed]) li a.dropdown-toggle,nav:not([fixed]) li[role=separator]:not(.dropdown-header){display:none !important}nav:not([fixed]) ul{margin-top:0 !important;margin-bottom:0 !important;padding:0 !important}nav:not([fixed]) ul.navbar-right{margin-top:32px !important}nav:not([fixed]) ul.dropdown-menu>li{padding:0}nav:not([fixed]) ul.dropdown-menu>li>a,nav:not([fixed]) li.dropdown>a{display:block;padding:8px 20px;clear:both;font-weight:400;height:44px;line-height:28px;color:#333 !important;white-space:nowrap;font-size:14px;border-bottom:solid 1px #ccc}.active-tick a::before{line-height:28px}li.dropdown-header{padding:8px 20px !important;border-bottom:solid 1px #ccc}ul:active{background:none !important}a:hover{background:#eee !important}} \ No newline at end of file diff --git a/dist/js/webCoRE.min.js b/dist/js/webCoRE.min.js index 24361063..c30c93a9 100644 --- a/dist/js/webCoRE.min.js +++ b/dist/js/webCoRE.min.js @@ -626,4 +626,4 @@ angular.module("smartArea",[]).directive("smartArea",["$compile",function(a){ret (c) 2013-2017 Mozilla, Apache License 2.0 */ !function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.localforage=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=43)}}).catch(function(){return!1})}function n(a){return"boolean"==typeof ha?ja.resolve(ha):m(a).then(function(a){return ha=a})}function o(a){var b=ia[a.name],c={};c.promise=new ja(function(a){c.resolve=a}),b.deferredOperations.push(c),b.dbReady?b.dbReady=b.dbReady.then(function(){return c.promise}):b.dbReady=c.promise}function p(a){var b=ia[a.name],c=b.deferredOperations.pop();c&&c.resolve()}function q(a,b){return new ja(function(c,d){if(a.db){if(!b)return c(a.db);o(a),a.db.close()}var e=[a.name];b&&e.push(a.version);var f=ga.open.apply(ga,e);b&&(f.onupgradeneeded=function(b){var c=f.result;try{c.createObjectStore(a.storeName),b.oldVersion<=1&&c.createObjectStore(ka)}catch(c){if("ConstraintError"!==c.name)throw c;console.warn('The database "'+a.name+'" has been upgraded from version '+b.oldVersion+" to version "+b.newVersion+', but the storage "'+a.storeName+'" already exists.')}}),f.onerror=function(a){a.preventDefault(),d(f.error)},f.onsuccess=function(){c(f.result),p(a)}})}function r(a){return q(a,!1)}function s(a){return q(a,!0)}function t(a,b){if(!a.db)return!0;var c=!a.db.objectStoreNames.contains(a.storeName),d=a.versiona.db.version;if(d&&(a.version!==b&&console.warn('The database "'+a.name+"\" can't be downgraded from version "+a.db.version+" to version "+a.version+"."),a.version=a.db.version),e||c){if(c){var f=a.db.version+1;f>a.version&&(a.version=f)}return!0}return!1}function u(a){return new ja(function(b,c){var d=new FileReader;d.onerror=c,d.onloadend=function(c){var d=btoa(c.target.result||"");b({__local_forage_encoded_blob:!0,data:d,type:a.type})},d.readAsBinaryString(a)})}function v(a){return i([l(atob(a.data))],{type:a.type})}function w(a){return a&&a.__local_forage_encoded_blob}function x(a){var b=this,c=b._initReady().then(function(){var a=ia[b._dbInfo.name];if(a&&a.dbReady)return a.dbReady});return k(c,a,a),c}function y(a){function b(){return ja.resolve()}var c=this,d={db:null};if(a)for(var e in a)d[e]=a[e];ia||(ia={});var f=ia[d.name];f||(f={forages:[],db:null,dbReady:null,deferredOperations:[]},ia[d.name]=f),f.forages.push(c),c._initReady||(c._initReady=c.ready,c.ready=x);for(var g=[],h=0;h>4,k[i++]=(15&d)<<4|e>>2,k[i++]=(3&e)<<6|63&f;return j}function I(a){var b,c=new Uint8Array(a),d="";for(b=0;b>2],d+=na[(3&c[b])<<4|c[b+1]>>4],d+=na[(15&c[b+1])<<2|c[b+2]>>6],d+=na[63&c[b+2]];return c.length%3==2?d=d.substring(0,d.length-1)+"=":c.length%3==1&&(d=d.substring(0,d.length-2)+"=="),d}function J(a,b){var c="";if(a&&(c=Ea.call(a)),a&&("[object ArrayBuffer]"===c||a.buffer&&"[object ArrayBuffer]"===Ea.call(a.buffer))){var d,e=qa;a instanceof ArrayBuffer?(d=a,e+=sa):(d=a.buffer,"[object Int8Array]"===c?e+=ua:"[object Uint8Array]"===c?e+=va:"[object Uint8ClampedArray]"===c?e+=wa:"[object Int16Array]"===c?e+=xa:"[object Uint16Array]"===c?e+=za:"[object Int32Array]"===c?e+=ya:"[object Uint32Array]"===c?e+=Aa:"[object Float32Array]"===c?e+=Ba:"[object Float64Array]"===c?e+=Ca:b(new Error("Failed to get type for BinaryArray"))),b(e+I(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var c=oa+a.type+"~"+I(this.result);b(qa+ta+c)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(c){console.error("Couldn't convert value into a JSON string: ",a),b(null,c)}}function K(a){if(a.substring(0,ra)!==qa)return JSON.parse(a);var b,c=a.substring(Da),d=a.substring(ra,Da);if(d===ta&&pa.test(c)){var e=c.match(pa);b=e[1],c=c.substring(e[0].length)}var f=H(c);switch(d){case sa:return f;case ta:return i([f],{type:b});case ua:return new Int8Array(f);case va:return new Uint8Array(f);case wa:return new Uint8ClampedArray(f);case xa:return new Int16Array(f);case za:return new Uint16Array(f);case ya:return new Int32Array(f);case Aa:return new Uint32Array(f);case Ba:return new Float32Array(f);case Ca:return new Float64Array(f);default:throw new Error("Unkown type: "+d)}}function L(a){var b=this,c={db:null};if(a)for(var d in a)c[d]="string"!=typeof a[d]?a[d].toString():a[d];var e=new ja(function(a,d){try{c.db=openDatabase(c.name,String(c.version),c.description,c.size)}catch(a){return d(a)}c.db.transaction(function(e){e.executeSql("CREATE TABLE IF NOT EXISTS "+c.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],function(){b._dbInfo=c,a()},function(a,b){d(b)})})});return c.serializer=Fa,e}function M(a,b){var c=this;"string"!=typeof a&&(console.warn(a+" used as a key, but it is not a string."),a=String(a));var d=new ja(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){c.executeSql("SELECT * FROM "+e.storeName+" WHERE key = ? LIMIT 1",[a],function(a,c){var d=c.rows.length?c.rows.item(0).value:null;d&&(d=e.serializer.deserialize(d)),b(d)},function(a,b){d(b)})})}).catch(d)});return j(d,b),d}function N(a,b){var c=this,d=new ja(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){c.executeSql("SELECT * FROM "+e.storeName,[],function(c,d){for(var f=d.rows,g=f.length,h=0;h0)return void f(O.apply(e,[a,h,c,d-1]));g(b)}})})}).catch(g)});return j(f,c),f}function P(a,b,c){return O.apply(this,[a,b,c,1])}function Q(a,b){var c=this;"string"!=typeof a&&(console.warn(a+" used as a key, but it is not a string."),a=String(a));var d=new ja(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){c.executeSql("DELETE FROM "+e.storeName+" WHERE key = ?",[a],function(){b()},function(a,b){d(b)})})}).catch(d)});return j(d,b),d}function R(a){var b=this,c=new ja(function(a,c){b.ready().then(function(){var d=b._dbInfo;d.db.transaction(function(b){b.executeSql("DELETE FROM "+d.storeName,[],function(){a()},function(a,b){c(b)})})}).catch(c)});return j(c,a),c}function S(a){var b=this,c=new ja(function(a,c){b.ready().then(function(){var d=b._dbInfo;d.db.transaction(function(b){b.executeSql("SELECT COUNT(key) as c FROM "+d.storeName,[],function(b,c){var d=c.rows.item(0).c;a(d)},function(a,b){c(b)})})}).catch(c)});return j(c,a),c}function T(a,b){var c=this,d=new ja(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){c.executeSql("SELECT key FROM "+e.storeName+" WHERE id = ? LIMIT 1",[a+1],function(a,c){var d=c.rows.length?c.rows.item(0).key:null;b(d)},function(a,b){d(b)})})}).catch(d)});return j(d,b),d}function U(a){var b=this,c=new ja(function(a,c){b.ready().then(function(){var d=b._dbInfo;d.db.transaction(function(b){b.executeSql("SELECT key FROM "+d.storeName,[],function(b,c){for(var d=[],e=0;e=0;c--){var d=localStorage.key(c);0===d.indexOf(a)&&localStorage.removeItem(d)}});return j(c,a),c}function X(a,b){var c=this;"string"!=typeof a&&(console.warn(a+" used as a key, but it is not a string."),a=String(a));var d=c.ready().then(function(){var b=c._dbInfo,d=localStorage.getItem(b.keyPrefix+a);return d&&(d=b.serializer.deserialize(d)),d});return j(d,b),d}function Y(a,b){var c=this,d=c.ready().then(function(){for(var b=c._dbInfo,d=b.keyPrefix,e=d.length,f=localStorage.length,g=1,h=0;h',link:function(f,g,e){var b=f.members;var c=g.find("textarea");var h=new a(c,[{match:/(\b)(\w{2,})$/,search:function(j,k){k($.map(b,function(l){return l.toLowerCase().indexOf(j.toLowerCase())===0?l:null}))},index:2,replace:function(j){return"$1"+j+" "}}]);if(f.callback){f.$watch("message",function(k,j){f.callback()})}$(h).on({"textComplete:select":function(k,j){f.$apply(function(){f.message=j})},"textComplete:show":function(j){$(this).data("autocompleting",true)},"textComplete:hide":function(j){$(this).data("autocompleting",false)}})}}}]);app.directive("masonry",["$parse",function(a){return{restrict:"AC",link:function(g,h,e){g.items=[];var b=h[0];var c=angular.extend({itemSelector:"tile"},JSON.parse(e.masonry));var f=g.masonry=new Masonry(b,c);var j=0;g.update=function(){if(j){window.clearTimeout(j)}j=window.setTimeout(function(){j=0;f.reloadItems();f.layout();h.children(c.itemSelector).css("visibility","visible")},120)};g.update()}}}]).directive("masonryTile",function(){return{restrict:"AC",link:function(a,c){c.css("visibility","hidden");var b=c.parent("*[masonry]:first").scope(),e=b.update;imagesLoaded(c.get(0),e);c.ready(e)}}});app.directive("tileHeight",function(){var a={restrict:"A",link:function(g,h,b,c,e){var f=1;if(b.tileHeight){f=b.tileHeight}var j=function(){var k=h[0].parentElement.offsetWidth/Math.round(h[0].parentElement.offsetWidth/h[0].offsetWidth)*f;h.outerHeight(k)};g.$watch(b.tileHeight,function(k){f=1*k;j()});$(window).resize(j);j();g.$on("$destroy",function(){$(window).unbind("resize",j)})}};return a});app.directive("help",function(a){return function(f,c,b){var g=b.help?b.help:c.text();var e=angular.element("');c.append(a(e)(f))}});app.directive("script",function(){return{restrict:"E",scope:false,link:function(b,e,a){if(a.type==="text/javascript"){var c=e.text();var g=new Function(c);g()}}}});app.directive("devData",function(a){return function(e,c,b){var f=function(j,h,g){var k=a(g.devData)(j);if(k){for(attr in k){h.attr("data-"+attr,k[attr])}}};e.$watch(b.devData,function(){f(e,c,b)})}});app.filter("orderObjectBy",function(){return function(a,e,c){var b=[];angular.forEach(a,function(g,f){b.push(Object.assign({id:f},g))});b.sort(function(g,f){return(g[e]>f[e]?1:-1)});if(c){b.reverse()}return b}});var config=app.config(["$routeProvider","$locationProvider","$sceDelegateProvider","$rootScopeProvider",function(b,a,f,e){e.digestTtl(10000);var c=".module.css";f.resourceUrlWhitelist(["self",cdn+"**"]);b.when("/",{templateUrl:cdn+theme+"html/modules/dashboard.module.html",controller:"dashboard",css:cdn+theme+"css/modules/dashboard"+c}).when("/register",{templateUrl:cdn+theme+"html/modules/register.module.html",controller:"register",css:cdn+theme+"css/modules/register"+c}).when("/init/:init",{redirectTo:function(g){app.initialInstanceUri=atou(g.init);return"/"}}).when("/piston/:pistonId",{templateUrl:cdn+theme+"html/modules/piston.module.html",controller:"piston",css:cdn+theme+"css/modules/piston"+c,reloadOnSearch:false}).when("/fuel",{templateUrl:cdn+theme+"html/modules/fuel.module.html",controller:"fuel",css:cdn+theme+"css/modules/fuel"+c}).when("/init/:instId1/:instId2",{redirectTo:function(g){app.initialInstanceUri=g.instId1+g.instId2;return"/"}}).otherwise({redirectTo:"/"});a.html5Mode(true)}]);config.factory("dataService",["$http","$location","$rootScope","$window","$q",function(J,o,q,u,E){var A={};var t="";var b=null;var I={};var G=null;var h={};var m={};var n="N7zqL6a8Texs4wY5y&y2YPLzus+_dZ%s";var x=n;var C=null;var e=null;var l=null;var D={};var K=1;var k=false;if(localforage){localforage.config({name:"webCoRE"});localforage.keys().then(function(L){K=L.length;if(K){localforage.iterate(function(O,N,M){D[N]=H(O);K--;if(!K&&!k){c()}})}else{c()}})}var p=function(L){return JSON.parse(L)};var B=function(L,N,M){return Array(N-String(L).length+1).join(M||"0")+L};var s=function(L){return B(L.getFullYear(),4)+"-"+B(1+L.getMonth(),2)+"-"+B(L.getDate(),2)+" "+B(L.getHours(),2)+":"+B(L.getMinutes(),2)+":"+B(L.getSeconds(),2)};var w=function(L){return JSON.stringify(L)};var v=function(N,L){try{return utoa(u.sjcl.encrypt(L?L:x,angular.toJson(N),{ks:256}))}catch(M){return null}};var H=function(M,L){try{return angular.fromJson(u.sjcl.decrypt(L?L:x,atou(M)))}catch(N){return null}};var z=function(L,N,M){localforage.setItem("core:"+L,v(N,M));D["core:"+L]=N;return};var g=function(L,M){return D["core:"+L]};var j=function(L){b=L;I[b.id]=b;z("locations",I);return b};var a=function(N){var M=(!G);if(!G||(G.id!=N.id)){G=N}var L=m[G.id];if(!L){L={}}L.token=N.token?N.token:L.token;L.uri=N.uri?N.uri.replace(":443",""):L.uri;m[G.id]=L;delete (G.token);delete (G.uri);if(N.contacts){G.contacts=N.contacts}G.contacts=G.contacts?G.contacts:(h[G.id]&&h[G.id].contacts?h[G.id].contacts:[]);if(N.devices){G.devices=N.devices;M=true}G.devices=G.devices?G.devices:(h[G.id]&&h[G.id].devices?h[G.id].devices:[]);G.pistons=N.pistons;G.globalVars=N.globalVars;G.coreVersion=N.coreVersion;G.name=N.name;G.settings=N.settings;if(M&&G.devices){for(d in G.devices){G.devices[d].t=A.determineDeviceType(G.devices[d])}}G.virtualDevices=G.virtualDevices||{};h[G.id]=G;z("instances",h);z("store",m);z("instance",G.id,n);if((G.coreVersion)&&(version()!=G.coreVersion)){if(version()>G.coreVersion){y("A newer SmartApp version ("+version()+") is available, please update and publish the all the webCoRE SmartApps in the SmartThings IDE.")}else{y("A newer UI version ("+G.coreVersion+") is available, please hard reload this web page to get the newest version.")}}return G};var y=function(L){if(C){C(L)}};var r=function(L){if(!L){return""}return L.replace(/([\uD83C-\uDBFF][\uDC00-\uDFFF])/g,function(M){return":"+encodeURIComponent(M)+":"})};var f=function(L){if(!L){return""}return L.replace(/(\:%[0-9A-F]{2}%[0-9A-F]{2}%[0-9A-F]{2}%[0-9A-F]{2}\:)/g,function(M){return decodeURIComponent(M.substr(1,12))})};A.openWebSocket=function(O){if(O&&G){l=O;if(e){return e}var N=G.id;var L=m[G.id];if(!L){L={}}var M=(L&&L.uri&&L.uri.startsWith("https://graph-eu"))?"eu":"us";e=new WebSocket("wss://api-"+M+"-"+N[32]+".webcore.co:9297");e.onopen=function(P){e.send(G.id)};e.onclose=function(P){e=null;if(l){setTimeout(function(){A.openWebSocket(l)},5000)}};e.onmessage=function(P){if(l){try{l(P)}catch(Q){}}};e.onerror=function(P){e=null;if(l){setTimeout(function(){A.openWebSocket(l)},5000)}};return e}else{l=null;e.close();e=null}};A.closeWebSocket=function(){A.openWebSocket(null)};A.ready=function(){return !!k};A.logout=function(){return localforage.clear()};A.setStatusCallback=function(L){C=L};A.saveToStore=function(L,M){return z(L,M)};A.loadFromStore=function(L){return g(L)};A.deleteFromStore=function(L){return localforage.removeItem("core:"+L)};A.loadFromStore=function(L){return g(L)};A.deleteInstance=function(L){if(L){if(L==G){G=null;z("instance",null,n)}delete (m[L.id]);delete (h[L.id]);z("instances",h);z("store",m)}};A.listLocations=function(){var L=[];for(lid in I){L.push(JSON.parse(JSON.stringify(I[lid])))}return L};A.getLocation=function(L){if(L){for(lid in I){if(lid==L){return JSON.parse(JSON.stringify(I[lid]))}}}else{return JSON.parse(JSON.stringify(b))}return null};A.listInstances=function(M){var L=[];for(iid in h){if(!M||(h[iid].locationId==M)){L.push(JSON.parse(JSON.stringify(h[iid])))}}return L};A.getInstanceCount=function(M){var L=0;for(iid in h){if(!M||(h[iid].locationId==M)){L++}}return L};A.getInstance=function(L){if(G&&!L){return G}if(G&&(G.id==L)){return G}if(L){for(iid in h){if(iid==L){return JSON.parse(JSON.stringify(h[iid]))}}}else{try{return JSON.parse(JSON.stringify(G?G:(h?h[g("instance")]:null)))}catch(M){}}return null};A.getPistonInstance=function(L){for(iid in h){for(i in h[iid].pistons){if(h[iid].pistons[i].id==L){return JSON.parse(JSON.stringify(h[iid]))}}}return null};A.loadInstance=function(O,M,L,R){var N=O?m[O.id]:null;var Q=!O||!(O.devices instanceof Object)||!(Object.keys(O.devices).length)?0:(O.deviceVersion?O.deviceVersion:0);if(!N){if((app.initialInstanceUri&&app.initialInstanceUri.length)||(M&&M.length)){M=app.initialInstanceUri?app.initialInstanceUri:M;if(M&&!(M instanceof Object)&&(M.length>=69)){var T=M.substr(0,M.length-64);if(!T.endsWith(".com")){T+=".api.smartthings.com"}M=M.substr(0,8)=="https://"?M:"https://"+T+"/api/token/"+M.substr(-64,8)+"-"+M.substr(-56,4)+"-"+M.substr(-52,4)+"-"+M.substr(-48,4)+"-"+M.substr(-44,12)+"/smartapps/installations/"+M.substr(-32,8)+"-"+M.substr(-24,4)+"-"+M.substr(-20,4)+"-"+M.substr(-16,4)+"-"+M.substr(-12)+"/"}N={uri:M};for(id in m){if(m[id].uri==M){N=m[id];if(h&&h[id]&&h[id].devices instanceof Object&&Object.keys(h[id].devices).length&&h[id].deviceVersion){Q=h[id].deviceVersion}break}}}}delete (app.initialInstanceUri);if(!N){var S=g("instance");if(S){N=m[S];if(h&&h[S]&&h[S].devices instanceof Object&&Object.keys(h[S].devices).length&&h[S].deviceVersion){Q=h[S].deviceVersion}}}if(!N){o.path("/register")}else{var P=document.getElementById("error");if(P){P.parentNode.removeChild(P)}}return J.jsonp((N?N.uri:"about:blank/")+"intf/dashboard/load?token="+(N&&N.token?N.token:"")+(L?"&pin="+L:"")+"&dashboard="+(R?1:0)+"&dev="+Q,{jsonpCallbackParam:"callback"}).then(function(U){var V=U.data;if(V.now){adjustTimeOffset(V.now)}if(V.error&&N){V.uri=N.uri}if(V.location){j(V.location)}if(V.instance){V.instance=a(V.instance)}return V},function(U){})};A.tap=function(L){return J({method:"GET",url:"tap/"+L})};A.getApiUri=function(){var L=A.getInstance();si=m?m[L.id]:null;return si?si.uri:null};A.refreshDashboard=function(){var M=A.getInstance();si=m&&M?m[M.id]:null;var L=!M||!(M.devices instanceof Object)||!(Object.keys(M.devices).length)?0:(M.deviceVersion?M.deviceVersion:0);y("Loading dashboard...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/refresh?token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){data=N.data;return data},function(N){return null})};A.getPiston=function(O){var N=A.getPistonInstance(O);if(!N){N=A.getInstance()}si=m&&N?m[N.id]:null;var M=!N||!(N.devices instanceof Object)||!(Object.keys(N.devices).length)?0:(N.deviceVersion?N.deviceVersion:0);var L=g("db.version",n);y("Loading piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/get?id="+O+"&db="+L+"&token="+(si&&si.token?si.token:"")+"&dev="+M,{jsonpCallbackParam:"callback"}).then(function(P){data=P.data;if(data.now){adjustTimeOffset(data.now)}if(data.dbVersion){z("db.version",data.dbVersion,n);z("db",data.db);y("Database updated to version "+data.dbVersion)}else{data.db=g("db");y()}if(data.location){j(data.location)}if(data.instance){data.instance=a(data.instance)}return data},function(P){return null})};A.getActivity=function(N,L){var M=A.getPistonInstance(N);if(!M){M=A.getInstance()}si=m?m[M.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/activity?id="+N+"&log="+(L?L:0)+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(O){return O.data})};A.generateBackupBin=function(M,N){var L=A.getInstance();return J({method:"POST",url:"https://api.webcore.co/bins/"+(N?"":md5(L.account.id)),data:M?(N?{d:v(M,n)}:{e:v(M,n+L.account.id)}):{},transformResponse:function(O){try{O=JSON.parse(O);if(O&&O.bin){return O.bin}if(O&&O.uri){O=O.uri.split("/");if(O&&O.length){return O[O.length-1]}}}catch(P){}return null}})};A.saveToBin=function(N,M){y("Saving piston to backup bin...");var L=A.getInstance();if(L&&L.account&&L.account.id){M={e:v(M,n+L.account.id)}}else{M={};N=null}return J({method:"PUT",url:"https://api.webcore.co/bins/"+md5(L.account.id)+"/"+N,data:M,transformResponse:function(O){y("Backup bin updated");return true}})};A.loadFromBin=function(N,L){y("Loading piston from backup bin...");var M=A.getInstance();if(!(M&&M.account&&M.account.id)){N=null}return J({method:"GET",url:"https://api.webcore.co/bins/"+(L?md5(M.account.id)+"/":"")+N,transformResponse:function(O){if(N){try{O=JSON.parse(O);if(O&&O.e){return H(O.e,n+M.account.id)}if(O&&O.d){return H(O.d,n)}y()}catch(P){y("Sorry, an error occurred while importing the backup bin")}}return null}})};A.generateNewPistonName=function(){var L=A.getInstance();si=m?m[L.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/new?token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(M){return M.data})};A.createPiston=function(L,M,O){var N=A.getInstance();si=m?m[N.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/create?author="+encodeURIComponent(M)+"&name="+encodeURIComponent(L)+"&bin="+encodeURIComponent(O?O:"")+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(P){return P.data})};var F=function(M,O,L,N){if(LL){var P=[].concat.apply([],M.split("").map(function(R,S){return S%L?[]:M.slice(S,S+L)},M));y("Preparing to save chunked piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/set.start?id="+O.id+"&chunks="+P.length.toString()+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(R){if(R&&(R.status==200)&&R.data&&(R.data.status=="ST_READY")){return F(si,P,0,Q)}})}else{y("Saving piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/set?id="+O.id+"&data="+M+"&bin="+encodeURIComponent(Q)+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(R){y();return R})}};A.setPistonLogging=function(L,N){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Setting piston logging level to "+N+"...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/logging?id="+L+"&level="+N+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(O){y();return O.data})};A.pausePiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Pausing piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/pause?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){y();return N.data})};A.resumePiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Resuming piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/resume?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){y();return N.data})};A.testPiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Testing piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/test?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){y();return N.data})};A.deletePiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/delete?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){return N.data})};A.setVariable=function(L,O){var N=A.getInstance();si=m?m[N.id]:null;var M=O?utoa(angular.toJson(O)):"";return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/variable/set?name="+L+"&value="+M+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(P){return P.data})};A.setSettings=function(L){var N=A.getInstance();si=m?m[N.id]:null;var M=L?utoa(angular.toJson(L)):"";return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/settings/set?settings="+M+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(O){return O.data})};A.evaluateExpression=function(M,P,L){var O=A.getPistonInstance(M);if(!O){O=A.getInstance()}si=m?m[O.id]:null;var N=utoa(angular.toJson(P));return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/evaluate?id="+M+"&expression="+N+"&dataType="+(L?encodeURIComponent(L):"")+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(Q){return Q.data})};A.registerDashboard=function(L){return J.post("https://api.webcore.co/dashboard/register/"+L).then(function(M){return M.data})};A.listFuelStreams=function(){var L=A.getInstance();if(L){var P=L.id;var M=m[L.id];if(!M){M={}}var O=(M&&M.uri&&M.uri.startsWith("https://graph-eu"))?"eu":"us";var N={method:"POST",url:"https://api-"+O+"-"+P[32]+".webcore.co/fuelStreams/list",headers:{"Auth-Token":P},data:{i:P}};return J(N).then(function(Q){return Q.data})}};A.listFuelStreamData=function(M){var L=A.getInstance();if(L){var Q=L.id;var N=m[L.id];if(!N){N={}}var P=(N&&N.uri&&N.uri.startsWith("https://graph-eu"))?"eu":"us";var O={method:"POST",url:"https://api-"+P+"-"+Q[32]+".webcore.co/fuelStreams/get",headers:{"Auth-Token":Q},data:{i:Q,f:M}};return J(O).then(function(R){return R.data})}};A.registerHandler=function(){navigator.registerProtocolHandler("web+core","https://"+window.location.hostname+"/handler/%s","webCoRE")};A.determineDeviceType=function(L){if(L&&L.cn){if(L.cn.indexOf("Water Sensor")>=0){return"waterSensor"}if(L.cn.indexOf("Contact Sensor")>=0){return"contactSensor"}if(L.cn.indexOf("Thermostat")>=0){return"thermostat"}if(L.cn.indexOf("Garage Door Control")>=0){return"garageDoor"}if(L.cn.indexOf("Music Player")>=0){return"musicPlayer"}if(L.cn.indexOf("Door Control")>=0){return"door"}if(L.cn.indexOf("Presence Sensor")>=0){return"presenceSensor"}if(L.cn.indexOf("Motion Sensor")>=0){return"motionSensor"}if(L.cn.indexOf("Color Control")>=0){return"rgbBulb"}if(L.cn.indexOf("Color Temperature")>=0){return"whiteBulb"}if(L.cn.indexOf("Switch Level")>=0){var M=L.n.toLowerCase();if(M.indexOf("light")>=0){return"whiteBulb"}if(M.indexOf("keen")>=0){return"vent"}if(M.indexOf("vent")>=0){return"vent"}return"dimmer"}if(L.cn.indexOf("Lock")>=0){return"lock"}if((L.cn.indexOf("Button")>=0)&&(L.cn.indexOf("Button")>=0)){return"keypad"}if(L.cn.indexOf("Button")>=0){return"button"}if(L.cn.indexOf("Temperature Measurement")>0){return"temperatureSensor"}if((L.cn.indexOf("Switch")>=0)&&(L.cn.indexOf("Power Meter")>=0)){return"outlet"}if(L.cn.indexOf("Switch")>=0){return"switch"}if(L.cn.indexOf("Power Meter")>=0){return"powerMeter"}}return"unknownDevice"};var c=function(){m=g("store");if(!m){m={}}I=g("locations");if(!I){I={}}h=g("instances");if(!h){h={}}k=true;window.ds=A};return A}]);app.run(["$rootScope","$window","$location",function(a,b,c){a.getTime=function(e){if(e){return e.format("h:mmtt")}};a.$on("$viewContentLoaded",function(f){var g=c.path();if(g.startsWith("/init/")){g="/init"}if(g.startsWith("/piston/")){g="/piston"}b.ga("send","pageview",{page:g});var e=null;if(!mobileCheck()){switch(g){case"/":e=[{calltype:"async[2]",publisher:"ady624",width:160,height:600,sid:"Chitika Default"}];break;case"/register":e=[{calltype:"async[2]",publisher:"ady624",width:728,height:90,sid:"Chitika Default"}];break}}if(e){b.CHITIKA={units:e};if(b.CHITIKA_ADS){b.CHITIKA_ADS.make_it_so()}}else{delete (window.CHITIKA)}});a.bytesToSize=function(e){var g=["bytes","kB","MB","GB","TB"];if(e==0){return"0 Byte"}var f=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return(e/Math.pow(1024,f)).toFixed(f==0?0:2)+" "+g[f]}}]);Date.prototype.format=function(x,a){var r=["\x00","January","February","March","April","May","June","July","August","September","October","November","December"];var c=["\x01","Jan.","Feb.","Mar.","Apr.","May","June","July","Aug.","Sept.","Oct.","Nov.","Dec."];var b=["\x02","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var g=["\x03","Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function o(h,f){var m=h+"";f=f||2;while(m.length12?n-12:n==0?12:n;x=x.replace(/(^|[^\\])hh+/g,"$1"+o(z));x=x.replace(/(^|[^\\])h/g,"$1"+z);var u=a?this.getUTCMinutes():this.getMinutes();x=x.replace(/(^|[^\\])mm+/g,"$1"+o(u));x=x.replace(/(^|[^\\])m/g,"$1"+u);var q=a?this.getUTCSeconds():this.getSeconds();x=x.replace(/(^|[^\\])ss+/g,"$1"+o(q));x=x.replace(/(^|[^\\])s/g,"$1"+q);var A=a?this.getUTCMilliseconds():this.getMilliseconds();x=x.replace(/(^|[^\\])fff+/g,"$1"+o(A,3));A=Math.round(A/10);x=x.replace(/(^|[^\\])ff/g,"$1"+o(A));A=Math.round(A/10);x=x.replace(/(^|[^\\])f/g,"$1"+A);var e=n<12?"AM":"PM";x=x.replace(/(^|[^\\])TT+/g,"$1"+e);x=x.replace(/(^|[^\\])T/g,"$1"+e.charAt(0));var p=e.toLowerCase();x=x.replace(/(^|[^\\])tt+/g,"$1"+p);x=x.replace(/(^|[^\\])t/g,"$1"+p.charAt(0));var C=-this.getTimezoneOffset();var k=a||!C?"Z":C>0?"+":"-";if(!a){C=Math.abs(C);var D=Math.floor(C/60);var v=C%60;k+=o(D)+":"+o(v)}x=x.replace(/(^|[^\\])K/g,"$1"+k);var w=(a?this.getUTCDay():this.getDay())+1;x=x.replace(new RegExp(b[0],"g"),b[w]);x=x.replace(new RegExp(g[0],"g"),g[w]);x=x.replace(new RegExp(r[0],"g"),r[j]);x=x.replace(new RegExp(c[0],"g"),c[j]);x=x.replace(/\\(.)/g,"$1");return x};function formatTime(c){try{var a=(new Date(c)).getTime()+(window.timeOffset?window.timeOffset:0);var f=new Date(a);return f.format("h:mm TT")}catch(b){}}function currentTime(){return(new Date()).getTime()+(window.timeOffset?window.timeOffset:0)}function utcToString(a){return(new Date(a)).toLocaleString()}function utcToTimeString(a){return(new Date(a)).toLocaleTimeString()}function utcToDateString(a){return(new Date(a)).toLocaleDateString()}function timeSince(f){if(!f){return"never"}switch(typeof f){case"number":break;case"string":f=+new Date(f);break;case"object":if(f.constructor===Date){f=f.getTime()}break;default:f=+new Date()}var e=[[60,"seconds",1],[120,"1 minute ago","1 minute from now"],[3600,"minutes",60],[7200,"1 hour ago","1 hour from now"],[86400,"hours",3600],[172800,"yesterday","tomorrow"],[604800,"days",86400],[1209600,"last week","next week"],[2419200,"weeks",604800],[4838400,"last month","next month"],[29030400,"months",2419200],[58060800,"last year","next year"],[2903040000,"years",29030400],[5806080000,"last century","next century"],[58060800000,"centuries",2903040000]];var h=(+new Date()+(window.timeOffset?window.timeOffset:0)-f)/1000,b="ago",g=1;if(h==0){return"Just now"}if(h<0){h=Math.abs(h);b="from now";g=2}var a=0,c;while(c=e[a++]){if(h-20){return"pending"}f=true;g=-g}var b="";if(g>86400){b=Math.floor(g/86400).toString()+"d ";g=g%86400}var e=Math.floor(g/3600);var a=Math.floor((g-e*3600)/60);var c=g%60;b+=(e>0?(e<10?"0":"")+e.toString()+":":"")+(a<10?"0":"")+a.toString()+":"+(c<10?"0":"")+c.toString();return b}function timeLeft(c,a){if(!c){return 0}c+=window.timeOffset?window.timeOffset:0;var b=Math.round((c-(new Date().getTime()))/1000);switch(a){case"h":return Math.floor(b/3600);break;case"m":return b>=3600?60:Math.floor(b/60);break;case"s":return b>=60?60:Math.floor(b%60);break}return b}function adjustTimeOffset(a){var b=a-(new Date()).getTime();if(isNaN(window.timeOffset)||(Math.abs(b)v.d)?1:((v.d>w.d)?-1:0)};r.sortByName=function(w,v){return(w.n>v.n)?1:((v.n>w.n)?-1:0)};r.switchInstance=function(w){if(w!=r.instance.id){var v=p.getInstance(w);if(v){r.instance=null;if(j){d.cancel(j)}j=null;r.devices=null;r.init(v);r.closeNavBar()}}};r.$on("$destroy",function(){if(b){d.cancel(b)}if(f){h.cancel(f)}if(j){d.cancel(j)}});r.getDeviceData=function(v){var w={};for(a in v.a){w[v.a[a].n]=v.a[a].v}return w};r.getBatteryLevel=function(v){if(isNaN(v)){return 0}v=Math.floor(v/20);if(v<=0){return 0}if(v>=4){return 4}return v};r.renderString=function(w){var v=0;if(!w){return""}var y=function(F){var z="";while(v":z+=">";break;case"[":var E=w.indexOf("|",v);if(E>v){var B=w.substring(v+1,E);v=E+1;z+=y(B)}else{v++;z+=y()}break;case"]":if(F==undefined){return"["+z+"]"}var A=F.trim().replace(/\s/g,",").split(",");var D="";var C="";for(x in A){switch(A[x]){case"b":D+="s-b ";break;case"u":D+="s-u ";break;case"i":D+="s-i ";break;case"s":D+="s-s ";break;case"pre":D+="s-pre ";break;default:C=A[x].replace(/[^#0-9a-z]/gi,"")}}return""+z+"";default:z+=G}v++}return z};return m.trustAsHtml(y(w).replace(/\:fa-([a-z0-9\-\s]*)\:/gi,function(z){return''}))};r.onWSUpdate=function(v){if(v.isTrusted&&v.data){try{var y=JSON.parse(v.data);if(y.d&&y.n){var w=r.instance.devices[y.d];if(w){for(a in w.a){if(w.a[a].n==y.n){w.a[a].v=y.v;w.data=r.getDeviceData(w);break}}}}r.$apply()}catch(z){}}};r.getDeviceAttribute=function(y,w){for(a in y.a){var v=y.a[a];if(w==v.n){return v.v}}return""};r.openPiston=function(v){r.loading=true;r.initialized=false;g.path("piston/"+v)};r.newPiston=function(){r.loading=true;p.generateNewPistonName().then(function(v){r.loading=false;r.designer={};r.designer.author=p.loadFromStore("author.handle");r.designer.name=v.name;r.designer.page=0;r.designer.backup=!!p.loadFromStore("backup.auto");r.designer.disclaimer=!r.designer.backup;r.designer.items=[{type:"blank",name:"Create a blank piston",icon:"code",cssClass:"wide btn-default"},{type:"duplicate",name:"Create a duplicate piston",icon:"code",cssClass:"wide btn-info"},{type:"template",name:"Create a piston from a template",icon:"code",cssClass:"wide btn-success"},{type:"restore",name:"Restore a piston using a backup code",icon:"code",cssClass:"wide btn-warning"},{type:"import",name:"Import a piston from an external source",icon:"code",cssClass:"wide btn-danger"}];r.designer.dialog=o.open({template:"dialog-add-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})})};r.movePiston=function(){r.designer={pistons:[],instance:""};r.designer.dialog=o.open({template:"dialog-move-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})};r.movePistons=function(){alert("Sorry, not ready yet")};r.createPiston=function(){var v=function(w){r.closeDialog();r.initialized=false;g.path("piston/"+w.id).search({description:r.designer.description,type:r.designer.type,piston:r.designer.piston,bin:r.designer.bin})};r.loading=true;p.saveToStore("backup.auto",!!r.designer.backup);p.saveToStore("author.handle",r.designer.author);if(r.designer.backup){p.generateBackupBin().then(function(w){var y=w.data;p.createPiston(r.designer.name,r.designer.author,y).then(v)})}else{p.createPiston(r.designer.name,r.designer.author).then(v)}};r.dialogLogIn=function(v,w){if(j){d.cancel(j)}j=null;r.loading=false;r.initialized=false;r.designer={};r.designer.sender=v;r.designer.uri=w;r.designer.dialog=o.open({template:"dialog-auth",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})};r.logOut=function(){p.logout().then(function(){r.loading=true;r.initialized=false;g.path("register")})};r.initAds=function(){d(function(){if(CHITIKA_ADS){CHITIKA_ADS.make_it_so()}},1,false)};r.authenticate=function(){r.closeDialog();r.init(null,r.designer.uri,window.md5("pin:"+r.designer.password));r.designer=null};r.dialogDeleteInstance=function(v){if(v){r.loading=false;r.initialized=false;r.designer={};r.designer.sender=v.locationName+" \\ "+v.name;r.designer.instance=v;r.designer.dialog=o.open({template:"dialog-del-instance",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})}};r.deleteInstance=function(){r.closeDialog();p.deleteInstance(r.designer.instance);r.designer=null;r.init()};r.setDesignerType=function(v){r.designer.type=v;r.nextPage()};r.closeDialog=function(){if(r.designer.dialog){r.designer.dialog.close();r.designer.dialog=null}};r.nextPage=function(){r.designer.page++};r.prevPage=function(){if(r.designer.page){r.designer.page--}};r.getOpacity=function(v){if(!v){return 0}v=currentTime()-v;if((v<0)||(v>60000)){return 0}return 1-v/60000};r.breakList=function(v){return v.replace(/,/g,"
")};var u=function(w){var y=w.getFullYear();var z=(1+w.getMonth()).toString();z=z.length>1?z:"0"+z;var v=w.getDate().toString();v=v.length>1?v:"0"+v;return z+"/"+v+"/"+y};r.getMonth=function(v){if(v){return["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"][v.getMonth()]}};r.getDay=function(v){if(v){return("0"+v.getDate()).substr(-2)}};r.timeSince=timeSince;r.timeCounter=timeCounter;r.timeLeft=timeLeft;r.tap=function(v){p.tap(v).then(function(w){})};r.togglePiston=function(y,w){if((!y)&&(!r.viewerPiston||!r.viewerPiston.app)){return}var z=y?y.i:r.pistonId;if(z){d.cancel(tmrRefresh);var v=!(y?y.e:r.viewerPiston.app.enabled);if(y){y.e=v}else{r.viewerPiston.app.enabled=v}if(v){p.resumePiston(z).then(function(A){r.onRefresh(A)})}else{p.pausePiston(z).then(function(A){r.onRefresh(A)})}}if(w&&e.preventDefault){w.preventDefault()}if(w&&w.stopPropagation){w.stopPropagation()}};r.configurePiston=function(v){r.configuredPistonId=r.configuredPistonId==v.i?null:v.i};r.showPiston=function(v){document.body.scrollTop=0;r.viewerPiston=null;r.pistonId=v.i;r.refresh();window.onSwipeRight=r.hidePiston};r.hidePiston=function(){document.body.scrollTop=0;r.pistonId=null;window.onSwipeRight=null};r.prepareActions=function(y){var A=[];var v=[];var D=[];var E=(y.id<=0);var z=r.viewerPiston.tasks;var C=r.viewerPiston.app.actions;for(action in C){if(C[action].pid==y.id){if(C[action].t){var B=C[action].t;for(t in B){var w=0;for(task in z){if((z[task].type=="cmd")&&(z[task].ownerId==C[action].id)&&(z[task].taskId==B[t].i)){if((w==0)||(w>z[task].time)){w=z[task].time}}}B[t].time=w}}if(E){A.push(C[action])}else{if(C[action].rs==false){D.push(C[action])}else{v.push(C[action])}}}}var w=0;for(task in z){if((z[task].type=="evt")&&(z[task].ownerId==y.id)){if((w==0)||(w>z[task].time)){w=z[task].time}}}y.time=w;y.actions=A;y.trueActions=v;y.falseActions=D;y.$scope=r;if(y.children){for(child in y.children){r.prepareActions(y.children[child])}}};r.hadRecentActivity=function(v){return v&&v.le&&v.le.event&&v.le.event.date&&(timeLeft((new Date(v.le.event.date)).getTime())>-120)};r.toggleViewerOptions=function(){r.viewerPiston.showOptions=!r.viewerPiston.showOptions;r.closeNavBar()};r.getSecondaryStatementName=function(){var v=r.viewerPiston.app.mode;switch(v){case"Latching":return"BUT IF";case"Then-If":return"THEN IF";case"Else-If":return"ELSE IF";case"Or-If":return"OR IF";case"And-If":return"AND IF"}return"IF"};r.capturePiston=function(){var v=document.getElementById("viewerPanel");document.body.scrollTop=0;html2canvas(v).then(function(w){r.capturedImage=w.toDataURL("image/png");r.dialogCapture=o.open({template:"dialog-captured-image",className:"ngdialog-theme-default ngdialog-large",disableAnimation:true,scope:r,showClose:true})})};r.determineDeviceType=function(v){return p.determineDeviceType(v)};r.initSocialMedia=function(){c.FB.XFBML.parse()};var s=navigator.userAgent||navigator.vendor||window.opera;if(s.match(/Android/i)){r.android=true}r.url=window.location.href;r.mobile=window.mobileCheck();r.tablet=(!r.mobile)&&(window.mobileOrTabletCheck());r.formatTime=formatTime;r.utcToString=utcToString;r.$$postDigest(function(){c.FB.XFBML.parse()});var k=setInterval(function(){if(p.ready()){clearInterval(k);r.init()}},1)}]);config.controller("register",["$scope","$rootScope","dataService","$timeout","$interval","$location","$sce","$routeParams","ngDialog","$window",function(k,g,i,c,e,d,f,j,h,b){var a=null;k.loading=false;k.code="";k.init=function(){};k.setStatus=function(m){if(a){c.cancel(a)}a=null;k.status=m;if(k.status){a=c(function(){k.setStatus()},10000)}};k.$on("$destroy",function(){if(a){c.cancel(a)}});k.register=function(){k.loading=true;i.registerDashboard(k.code).then(function(m){if(m&&(m.length>=80)&&(m.length<=140)){d.path("/init/"+m)}else{k.setStatus("Sorry, the registration code you provided did not work...")}k.loading=false})};k.init();var l=navigator.userAgent||navigator.vendor||window.opera;if(l.match(/Android/i)){k.android=true}k.url=window.location.href;k.mobile=window.mobileCheck();k.tablet=(!k.mobile)&&(window.mobileOrTabletCheck());k.formatTime=formatTime;k.utcToString=utcToString}]);config.controller("piston",["$scope","$rootScope","dataService","$timeout","$interval","$location","$sce","$routeParams","ngDialog","$window","$animate",function(s,j,u,z,v,h,n,f,m,q,w){var y;var B;var g;var r;s.lastLogEntry=0;s.error="";s.loading=true;s.initialized=false;s.mode="view";s.logging="0";s.data=null;s.error="";s.pistonId=f.pistonId;s.piston=null;s.designer={};s.showAdvancedOptions=false;s.dk="N7zqL6a8Texs4wY5y&y2YPLzus+_dZ%s";s.params=h.search();s.insertIndexes={};s.warnings={};if(s.params){h.search({})}s.stack={undo:[],redo:[]};s.weekDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];s.yearMonths=["January","February","March","April","May","June","July","August","September","October","November","December"];s.render=function(C){if((s.mode=="view")&&(s.view.trace)){if(!r){r=v(s.render,1000)}if(s.trace){}}else{if(r){z.cancel(r)}r=null}};s.setStatus=function(C){if(C){console.log(C)}if(B){z.cancel(B)}B=null;s.status=C;if(s.status){B=z(function(){s.setStatus()},10000)}};s.version=function(){return q.version()};s.encodeEmoji=function(C){if(!C){return""}return C.replace(/([\uD83C-\uDBFF][\uDC00-\uDFFF])/g,function(D){return encodeURIComponent(D)})};s.listAllPistons=function(){var D=[];var C=u.listLocations();for(l in C){var E=u.listInstances(C[l].id);for(i in E){for(p in E[i].pistons){D.push({v:E[i].pistons[p].id,n:C[l].name+" \\ "+E[i].name+" \\ "+E[i].pistons[p].name})}}}return D};s.listAvailableContacts=function(){var D=[];for(i in s.instance.contacts){var C=s.instance.contacts[i];D.push({v:i,n:(C.f+" "+C.l).trim()+(C.p?" (PUSH)":(C.t?" ("+C.t+")":"")),an:C.an})}if(!D.length){D.push({v:"no one",n:"No available contacts"})}return D};s.getPistonName=function(E){var C=u.listLocations();for(l in C){var D=u.listInstances(C[l].id);for(i in D){for(p in D[i].pistons){if(D[i].pistons[p].id==E){return C[l].name+" \\ "+D[i].name+" \\ "+D[i].pistons[p].name}}}}return E};s.getLifxSceneName=function(C){if(!s.instance.settings.lifx_scenes){return C}var D=s.instance.settings.lifx_scenes[C];if(!D){return C}return D};s.getModeName=function(C){for(modeIndex in s.location.modes){if(s.location.modes[modeIndex].id==C){return s.location.modes[modeIndex].name}}return C};s.updateActivity=function(C){if(s.$$destroyed){return}if(s.mode!="view"){return}if(g){z.cancel(g)}if(C){g=z(s.updateActivity,10000);return}u.getActivity(s.pistonId,s.lastLogEntry).then(function(D){if(s.$$destroyed){return}if(D.error=="ERR_INVALID_ID"){s.home();return}if(D&&D.activity){if(D.activity.state){s.state=D.activity.state}if(D.activity.logs&&D.activity.logs.length){s.logs=D.activity.logs.concat(s.logs)}if(D.activity.trace){s.trace=D.activity.trace}if(D.activity.localVars){s.localVars=D.activity.localVars}if(D.activity.memory){s.memory=D.activity.memory}if(D.activity.lastExecuted){s.lastExecuted=D.activity.lastExecuted}if(D.activity.nextSchedule){s.nextSchedule=D.activity.nextSchedule}if(D.activity.schedules){s.schedules=D.activity.schedules}if(D.activity.name){s.meta.name=D.activity.name}if(s.logs&&s.logs.length){s.lastLogEntry=s.logs[0].t}if(D.activity.globalVars){s.updateGlobalVars(D.activity.globalVars)}}g=z(s.updateActivity,3000)})};s.updateGlobalVars=function(C){s.globalVars=s.globalVars instanceof Object?s.globalVars:{};for(varName in C){var D=C[varName].t;var F=C[varName].v;var E=s.globalVars[varName];if(!E){s.globalVars[varName]={t:D,v:F}}else{if(E.t!=D){E.t=D}if(E.v!=F){E.v=F}}}for(varName in s.globalVars){if(!C[varName]){delete (s.globalVars[varName])}}};s.init=function(){if(s.$$destroyed){return}u.setStatusCallback(s.setStatus);s.loading=true;if(s.piston){s.loading=true}u.getPiston(s.pistonId).then(function(C){if(s.$$destroyed){return}try{var D=s.piston?!!s.showOptions:false;if(!C||!C.data||!C.data.piston){s.error=n.trustAsHtml("Sorry, an error occurred while retrieving the piston data.");s.loading=false;return}s.piston=C.data.piston;s.validatePiston(s.piston);s.meta=C.data.meta?C.data.meta:{};s.db=C.db;s.location=u.getLocation();s.instance=u.getInstance();s.view=u.loadFromStore("view")||{variables:false,elseIfs:false,restrictions:false,whens:false,advancedStatements:false};s.subscriptions=C.data.subscriptions?C.data.subscriptions:{};s.logs=C.data.logs?C.data.logs:[];s.lastLogEntry=(s.logs&&s.logs.length)?s.logs[0].t:0;s.stats=C.data.stats?C.data.stats:{};s.state=C.data.state?C.data.state:"";s.trace=C.data.trace?C.data.trace:{};s.logging=""+(C.data.logging?C.data.logging:0);s.memory=C.data.memory?C.data.memory:0;s.lastExecuted=C.data.lastExecuted;s.nextSchedule=C.data.nextSchedule;s.schedules=C.data.schedules;s.initChart();if(s.instance&&s.instance.devices){s.anonymizeDevices(s.instance.devices)}if(s.instance&&s.instance.contacts){s.anonymizeContacts(s.instance.contacts)}s.devices=s.listAvailableDevices();s.contacts=s.listAvailableContacts();s.virtualDevices=s.listAvailableVirtualDevices();window.scope=s;s.localVars=C.data.localVars;s.globalVars=s.instance.globalVars;s.systemVars=C.data.systemVars;s.systemVarNames=[];for(name in s.systemVars){s.systemVarNames.push(name)}s.meta.build=s.meta.build?1*s.meta.build:0;if(s.piston&&(s.meta.build==0)){s.piston.z=s.params&&s.params.description?s.params.description:"";s.mode="edit";if(s.params&&s.params.type!="blank"){switch(s.params.type){case"duplicate":if(s.params.piston){s.loading=true;u.getPiston(s.params.piston).then(function(F){s.loading=false;if(F&&F.data&&F.data.piston){s.piston.o=F.data.piston.o?F.data.piston.o:{};s.piston.r=F.data.piston.r?F.data.piston.r:[];s.piston.rn=!!F.data.piston.rn;s.piston.rop=F.data.piston.rop?F.data.piston.rop:"and";s.piston.s=F.data.piston.s?F.data.piston.s:[];s.piston.v=F.data.piston.v?F.data.piston.v:[]}s.initialized=true;s.loading=false});return}break;case"restore":if(s.params.bin){s.loading=true;u.loadFromBin(s.params.bin).then(function(F){var G=F.data;s.loading=false;if(G){s.piston.o=G.o?G.o:{};s.piston.r=G.r?G.r:[];s.piston.rn=!!G.rn;s.piston.rop=G.rop?G.rop:"and";s.piston.s=G.s?G.s:[];s.piston.v=G.v?G.v:[];s.piston.z=G.z?G.z:""}s.initialized=true;s.loading=false;if(!!G&&!!G.l){s.rebuildPiston(G.l)}});return}break}}}if(s.mode=="edit"){s.loadStack()}else{s.updateActivity(true)}s.piston.o=s.piston.o?s.piston.o:{cto:0,ced:0};s.piston.r=s.piston.r?s.piston.r:[];s.piston.s=s.piston.s?s.piston.s:[];s.piston.rop=s.piston.rop?s.piston.rop:"and";s.piston.rn=!!s.piston.rn;s.piston.v=s.piston.v?s.piston.v:[];s.piston.z=s.piston.z||"";s.initialized=true;s.loading=false;s.render()}catch(E){alert(E)}})};s.initChart=function(){s.chart={type:"bar",labels:[],series:["Event delay","Load time","Execution time","Update time"],data:[[],[],[],[]],onClick:function(E,D){},datasetOverride:[{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#88bbee",borderWidth:0,backgroundColor:"#99ccff"},{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#eebb88",borderWidth:"0px",backgroundColor:"#ffcc99"},{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#ee88bb",borderWidth:"0px",backgroundColor:"#ff99cc"},{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#999",borderWidth:1,backgroundColor:"#ccff99"}],options:{legend:{display:true},multiTooltipTemplate:"<%=datasetLabel%> : <%= value %>ms",showLines:true,fill:true,scales:{xAxes:[{type:"time"}],yAxes:[{id:"y-axis-1",stacked:true,type:"linear",display:true,position:"left"}]},pan:{enabled:true,mode:"x"},zoom:{enabled:true,mode:"x"}}};if(s.stats&&s.stats.timing){for(var C=0;C0){D+=" ";C--}return"/* "+D+" */"};s.range=function(C){return new Array(C)};s.wiki=function(C){s.wikiUrl=n.trustAsUrl("https://wiki.webcore.co/"+C+"?content-only");q.mydialog=m.open({template:"dialog-wiki",className:"ngdialog-theme-default ngdialog-large ngdialog-wiki",closeByDocument:true,disableAnimation:true,scope:s})};s.formatVariableValue=function(D,C){if((D.v==null)&&!!C&&s.localVars){D=s.copy(D);D.v=s.localVars[C]}if((D.v==="")||(D.v===null)||((D.v instanceof Array)&&!D.v.length)){return"(not set)"}switch(D.t){case"time":return utcToTimeString(D.v);case"datetime":return utcToString(D.v);case"date":return utcToDateString(D.v);case"contact":return s.renderContactNameList(D.v);case"device":return s.renderDeviceNameList(D.v);default:return D.v}};s.deleteDialog=function(){s.designer.dialog=m.open({template:"dialog-del-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.listDevicesWithAttributes=function(D){if(!D||!(D instanceof Array)||!D.length){return s.instance.devices}var C={};for(d in s.instance.devices){var E=s.instance.devices[d];var F=0;for(a in E.a){if(D.indexOf(E.a[a].n)>=0){F++;if(F==D.length){break}}}if(F==D.length){C[d]=E}}return C};s.rebuildPiston=function(C){if(!C){return}for(key in C){var D=C[key];D.id="";switch(D.t){case"device":D.i=s.listDevicesWithAttributes(D.a);break;case"contact":D.i=s.instance.contacts;break;case"mode":D.i=s.instance.virtualDevices.mode.o;for(i in D.i){if(D.i[i]==D.n){D.id=i;break}}break;case"routine":D.i=s.instance.virtualDevices.routine.o;break}}s.designer={legend:C};s.designer.dialog=m.open({template:"dialog-rebuild-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.doRebuildPiston=function(){s.piston=s.compilePiston(s.piston,false,s.designer.legend);s.closeDialog()};s.doValidatePiston=function(){s.validatePiston(s.piston)};s.getExpressionConfig=function(){var C=[];for(attribute in s.db.attributes){C.push(": "+attribute+"]")}return{autocomplete:[{words:[]},{words:s.listAutoCompleteFunctions(),cssClass:"hl kwd"},{words:s.listAutoCompleteVariables(),cssClass:"hl var"},{words:s.listAutoCompleteDevices(),cssClass:"hl dev"},{words:C,cssClass:"hl dev"},{words:[/([0-9]+)(\.[0-9]+)?/g],cssClass:"hl num"}]}};s.removeFromArray=function(E,D){if(!(E instanceof Array)){return}var C=E.indexOf(D);if(C!==-1){E.splice(C,1)}return E};s.deleteObject=function(E,D){var C=!E;if(C){E=s.designer.$obj;D=s.designer.parent}if(!E){return}if((D instanceof Array)&&(E)){s.autoSave();D=s.removeFromArray(D,E);if(C){s.closeDialog()}}if(D&&(D.t=="action")&&(D.k instanceof Array)&&(E)){s.autoSave();D.k=s.removeFromArray(D.k,E);if(C){s.closeDialog()}}};s.getIFTTTUri=function(C){var D=u.getApiUri();if(!D){return"An error has occurred retrieving the IFTTT Maker URL"}return D+"ifttt/"+C};s.toggleAdvancedOptions=function(){s.designer.showAdvancedOptions=!s.designer.showAdvancedOptions};s.getClipboard=function(){var C=u.loadFromStore("clipboard");if(!C){C=[]}return C};s.getClipboardItems=function(E){var D=s.getClipboard();var C=[];for(i in D){if(D[i].t.startsWith(E)){C.push(D[i])}}return C};s.saveToClipboard=function(D,C){var E=s.getClipboard();E.push({s:(new Date()).getTime(),t:C,o:s.copy(D)});if(E.length>MAX_STACK_SIZE){E=E.slice(-MAX_STACK_SIZE)}u.saveToStore("clipboard",E)};s.deleteClipboardItem=function(C){var D=s.getClipboard();s.removeFromArray(s.designer.clipboard,C);for(i=0;i=0)?"1":"0";C.tcp=s.designer.tcp;C.tep=s.designer.tep;C.tsp=s.designer.tsp;C.z=s.designer.description;C.r=C.r?C.r:[];C.rop=s.designer.roperator;C.rn=s.designer.rnot=="1";C.di=s.designer.disabled=="1";switch(C.t){case"action":C.d=s.designer.devices;C.k=C.k?C.k:[];break;case"do":C.s=C.s?C.s:[];break;case"on":C.c=C.c?C.c:[];C.o="or";C.n=false;C.s=C.s?C.s:[];break;case"if":C.o=s.designer.operator;C.n=s.designer.not=="1";C.c=C.c?C.c:[];C.s=C.s?C.s:[];C.ei=C.ei?C.ei:[];C.e=C.e?C.e:[];break;case"switch":C.lo=s.designer.operand.data;C.cs=C.cs||[];C.e=C.e?C.e:[];C.ctp=s.designer.ctp;break;case"for":C.x=s.designer.x;C.lo=s.designer.operand.data;C.lo2=s.designer.operand2.data;C.lo3=s.designer.operand3.data;C.s=C.s?C.s:[];break;case"each":C.x=s.designer.x;C.lo=s.designer.operand.data;C.s=C.s?C.s:[];break;case"while":C.o=s.designer.operator;C.n=s.designer.not=="1";C.c=C.c?C.c:[];C.s=C.s?C.s:[];break;case"every":C.lo=s.designer.operand.data;C.lo2=s.designer.operand2.data;if(C.lo2.c instanceof Date){C.lo2.c=C.lo2.c.getHours()*60+C.lo2.c.getMinutes()}C.lo3=s.designer.operand3.data;C.s=C.s?C.s:[];break;case"repeat":C.o=s.designer.operator;C.n=s.designer.not=="1";C.c=C.c?C.c:[];C.s=C.s?C.s:[];break;case"break":break;case"exit":C.lo=s.designer.operand.data;break;default:C.t=null}if(C.t){C.$$html=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.s)&&(s.designer.parent.s instanceof Array)){s.designer.parent.s.push(C)}else{s.designer.parent.s=[C]}}}else{s.designer.$statement=C}}s.doValidatePiston();s.closeDialog();if(D){switch(C.t){case"action":s.addTask(C);return;case"if":s.addCondition(C.c,false,E);return;case"on":s.addEvent(C.c);return;case"while":s.addCondition(C.c);return;case"do":case"for":case"each":case"repeat":case"every":s.addStatement(C.s);return;case"switch":s.addCase(C.cs);return}}};s.upgradeStatement=function(){s.updateStatement();var C=s.designer.$statement;if(C&&C.c&&(C.c instanceof Array)){C.c=[{t:"group",n:false,o:"and",c:C.c}]}};s.addCase=function(C){return s.editCase(null,C)};s.editCase=function(C,D){if(s.mode!="edit"){return}var E=C?false:true;if(!C){C={};C.t="s";C.s=[];C.ro={};C.ro2={};C.z=""}s.designer={config:s.getExpressionConfig()};s.designer.$obj=C;s.designer.$case=C;s.designer.$new=E;s.designer.parent=D;s.designer.type=C.t;s.designer.operand={data:C.ro,multiple:false};s.designer.operand2={data:C.ro2,multiple:false};s.designer.autoDialogs=true;s.designer.description=C.z;window.designer=s.designer;s.validateOperand(s.designer.operand);s.validateOperand(s.designer.operand2);s.designer.dialog=m.open({template:"dialog-edit-case",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateCase=function(D){s.autoSave();var C=s.designer.$case;C.t=s.designer.type;C.s=C.s||[];C.ro=s.designer.operand.data;C.ro2=s.designer.operand2.data;C.z=s.designer.description;if(C.t){C.$$html=null;C.$$html2=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.cs)&&(s.designer.parent.cs instanceof Array)){s.designer.parent.cs.push(C)}else{s.designer.parent.cs=[C]}}}else{s.designer.$case=C}}s.doValidatePiston();s.closeDialog();if(D){s.addStatement(C.s);return}};s.addEvent=function(C){return s.editEvent(null,C)};s.editEvent=function(E,C){if(s.mode!="edit"){return}var D=!E;if(!E){E={};E.t="event";E.lo={t:"p",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};E.z="";E.sm="auto"}s.designer={config:s.getExpressionConfig(),clipboard:D?s.getClipboardItems("event"):[]};s.designer.$event=E;s.designer.$obj=E;s.designer.type=E.t;s.designer.$new=D;s.designer.parent=C;s.designer.comparison={event:true,type:"event",left:{data:E.lo?s.copy(E.lo):{},event:true}};s.validateComparison(s.designer.comparison,true);s.designer.smode=E.sm;s.designer.description=E.z;window.designer=s.designer;s.designer.dialog=m.open({template:"dialog-edit-event",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateEvent=function(D){s.autoSave();var C=s.designer.$new?{t:s.designer.type}:s.designer.$event;C.lo=s.fixOperand(s.designer.comparison.left.data);C.sm=s.designer.smode;C.z=s.designer.description;if(C.t){C.$$html=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.c)&&(s.designer.parent.c instanceof Array)){s.designer.parent.c.push(C)}else{s.designer.parent.c=[C]}}}else{s.designer.$event=C}}s.doValidatePiston();s.closeDialog();if(C.t&&D){s.addEvent(s.designer.parent);return}};s.addCondition=function(C,D,E){return s.editCondition(null,C,D,E)};s.editCondition=function(G,C,E,F){if(s.mode!="edit"){return}var D=!G;if(!G){G={};G.t=F;G.d=[];G.n=false;G.o="and";G.lo={t:"p",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.co=null;G.ro={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.ro2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.to={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.to2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.z="";G.sm="auto";G.ts=[];G.fs=[]}s.designer={config:s.getExpressionConfig(),clipboard:D?s.getClipboardItems("condition"):[]};s.designer.$condition=G;s.designer.$obj=G;s.designer.type=G.t;s.designer.$new=!F&&!!G.t?false:true;s.designer.newElseIf=E;s.designer.page=s.designer.$new&&!F?0:1;s.designer.parent=C;s.designer.devices=G.d;s.designer.not=G.n?"1":"0";s.designer.operator=G.o;s.designer.comparison={type:"condition",left:{data:G.lo?s.copy(G.lo):{},showSubDevices:true},operator:G.co,right:{data:G.ro?s.copy(G.ro):{}},right2:{data:G.ro2?s.copy(G.ro2):{}},time:{data:G.to?s.copy(G.to):{t:"c",c:0},dataType:"duration"},time2:{data:G.to2?s.copy(G.to2):{t:"c",c:0},dataType:"duration"}};s.validateComparison(s.designer.comparison,true);s.designer.smode=G.sm;s.designer.description=G.z;window.designer=s.designer;s.designer.items=[{type:"condition",name:"Condition",icon:"code",cssClass:"btn-info"},{type:"group",name:"Group",icon:"code-fork",cssClass:"btn-warning"}];s.designer.dialog=m.open({template:"dialog-edit-condition",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.fixOperand=function(C){switch(C.vt){case"time":C.c=C.c instanceof Date?C.c.getHours()*60+C.c.getMinutes():C.c;break;case"date":case"datetime":C.c=C.c instanceof Date?C.c.getTime():(new Date(C.c)).getTime();break}return C};s.updateCondition=function(D){s.autoSave();var E=s.designer.$new?{t:s.designer.type}:s.designer.$condition;switch(E.t){case"condition":E.lo=s.fixOperand(s.designer.comparison.left.data);E.co=s.designer.comparison.operator;E.ro=s.fixOperand(s.designer.comparison.right.data);E.ro2=s.fixOperand(s.designer.comparison.right2.data);E.to=s.designer.comparison.time.data;E.to2=s.designer.comparison.time2.data;break;case"group":E.c=E.c?E.c:[];E.o=s.designer.operator;E.n=s.designer.not=="1";break}E.sm=s.designer.smode;E.ts=E.ts?E.ts:[];E.fs=E.fs?E.fs:[];E.z=s.designer.description;if(E.t){E.$$html=null;if(s.designer.$new){if(s.designer.newElseIf){var C={o:"and",n:false,c:[],s:[]};C.c.push(E);s.designer.parent.push(C)}else{if(s.designer.parent instanceof Array){s.designer.parent.push(E)}else{if((s.designer.parent.c)&&(s.designer.parent.c instanceof Array)){s.designer.parent.c.push(E)}else{s.designer.parent.c=[E]}}}}else{s.designer.$condition=E}}s.doValidatePiston();s.closeDialog();if(E.t&&D){s.addCondition(E.t=="group"?E:s.designer.parent);return}};s.upgradeCondition=function(){s.updateCondition();var D=s.designer.parent;if(s.designer.$condition&&D&&(D instanceof Array)){var C=D.indexOf(s.designer.$condition);if(C>=0){var E={};E.t=s.designer.$condition.t;E.n=s.designer.$condition.n;E.o=s.designer.$condition.o;E.c=s.designer.$condition.c;s.designer.$condition={};s.designer.$condition.t="group";s.designer.$condition.n=false;s.designer.$condition.o="and";s.designer.$condition.c=[E];D[C]=s.designer.$condition}}};s.editConditionGroup=function(D,C){if(s.mode!="edit"){return}s.designer={operator:D.o||"and",not:D.n?"1":"0",description:D.z};s.designer.group=D;s.designer.$obj=D;s.designer.parent=C;window.designer=s.designer;s.designer.dialog=m.open({template:"dialog-edit-condition-group",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateConditionGroup=function(){s.autoSave();var C=s.designer.group;C.n=s.designer.not=="1";C.o=s.designer.operator;C.z=s.designer.description;s.closeDialog()};s.addRestriction=function(C){return s.editRestriction(null,C)};s.editRestriction=function(C,D){if(s.mode!="edit"){return}var E=!C;if(!C){C={};C.t=null;C.d=[];C.rn=false;C.rop="and";C.lo={t:"p",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.co=null;C.ro={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.ro2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.to={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.to2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.z=""}s.designer={config:s.getExpressionConfig(),clipboard:E?s.getClipboardItems("restriction"):[]};s.designer.$restriction=C;s.designer.$obj=C;s.designer.type=C.t;s.designer.$new=C.t?false:true;s.designer.page=s.designer.$new?0:1;s.designer.parent=D;s.designer.devices=C.d;s.designer.not=C.rn?"1":"0";s.designer.operator=C.rop;s.designer.comparison={type:"restriction",left:{data:C.lo?s.copy(C.lo):{}},operator:C.co,right:{data:C.ro?s.copy(C.ro):{}},right2:{data:C.ro2?s.copy(C.ro2):{}},time:{data:C.to?s.copy(C.to):{t:"c",c:0},dataType:"duration"},time2:{data:C.to2?s.copy(C.to2):{t:"c",c:0},dataType:"duration"}};s.validateComparison(s.designer.comparison,true);s.designer.smode=C.sm;s.designer.description=C.z;window.designer=s.designer;s.designer.items=[{type:"restriction",name:"Restriction",icon:"code",cssClass:"btn-info"},{type:"group",name:"Group",icon:"code-fork",cssClass:"btn-warning"}];s.designer.dialog=m.open({template:"dialog-edit-restriction",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateRestriction=function(D){s.autoSave();var C=s.designer.$new?{t:s.designer.type}:s.designer.$restriction;switch(C.t){case"restriction":C.lo=s.fixOperand(s.designer.comparison.left.data);C.co=s.designer.comparison.operator;C.ro=s.fixOperand(s.designer.comparison.right.data);C.ro2=s.fixOperand(s.designer.comparison.right2.data);C.to=s.designer.comparison.time.data;C.to2=s.designer.comparison.time2.data;break;case"group":C.r=C.r?C.r:[];C.rop=s.designer.operator;C.rn=s.designer.not=="1";break}C.z=s.designer.description;if(C.t){C.$$html=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.r)&&(s.designer.parent.r instanceof Array)){s.designer.parent.r.push(C)}else{s.designer.parent.r=[C]}}}else{s.designer.$restriction=C}}s.doValidatePiston();s.closeDialog();if(C.t&&D){s.addRestriction(C.t=="group"?C:s.designer.parent);return}};s.upgradeRestriction=function(){s.updateRestriction();var E=s.designer.parent;if(s.designer.$restriction&&E&&(E instanceof Array)){var D=E.indexOf(s.designer.$restriction);if(D>=0){var C={};C.t=s.designer.$restriction.t;C.rn=s.designer.$restriction.rn;C.rop=s.designer.$restriction.rop;C.c=s.designer.$restriction.c;s.designer.$restriction={};s.designer.$restriction.t="group";s.designer.$restriction.rn=false;s.designer.$restriction.rop="and";s.designer.$restriction.c=[C];E[D]=s.designer.$restriction}}};s.editRestrictionGroup=function(D,C){if(s.mode!="edit"){return}s.designer={operator:D.rop||"and",not:D.rn?"1":"0",description:D.z};s.designer.group=D;s.designer.$obj=D;s.designer.parent=C;window.designer=s.designer;s.designer.dialog=m.open({template:"dialog-edit-restriction-group",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateRestrictionGroup=function(){s.autoSave();var C=s.designer.group;C.rn=s.designer.not=="1";C.rop=s.designer.operator;C.z=s.designer.description;s.closeDialog()};s.addTask=function(C){return s.editTask(null,C)};s.editTask=function(D,E){if(s.mode!="edit"){return}if(!D){D={};D.c="";D.a="0";D.m="";D.z=""}var F=D.c?false:true;s.designer={clipboard:F?s.getClipboardItems("task"):[]};var C=F?s.insertIndexes[E.$$hashkey]:E.k.indexOf(D);if(isNaN(C)){C=E.k.length}s.designer.insertIndex=C;s.designer.$task=D;s.designer.$obj=D;s.designer.$new=F;s.designer.page=0;s.designer.parent=E;s.designer.command=D.c;s.designer.mode=D.m;s.designer.description=D.z;s.prepareParameters(D);window.designer=s.designer;window.scope=s;s.designer.commands=s.listAvailableCommands(E.d);$("a-ckolor-wheel").remove();s.designer.dialog=m.open({template:"dialog-edit-task",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateTask=function(G){s.autoSave();var E=s.designer.$new?{}:s.designer.$task;E.c=s.designer.command;E.a=s.designer.async;E.z=s.designer.description;E.m=s.designer.mode;if(E.c){E.$$html=null;E.p=[];for(parameterIndex in s.designer.parameters){var F=s.designer.parameters[parameterIndex].data;if(F.t=="c"){switch(F.vt){case"time":F.c=F.c instanceof Date?F.c.getHours()*60+F.c.getMinutes():F.c;break;case"date":case"datetime":F.c=F.c instanceof Date?F.c.getTime():(new Date(F.c)).getTime();break}}E.p.push(F)}if(s.designer.$new){if((s.designer.parent)&&(s.designer.parent.k instanceof Array)){s.designer.parent.k.push(E);s.insertIndexes[parent.$$hashkey]=s.designer.insertIndex+1}}else{s.designer.$task=E}}var H=s.designer.parent.k;if(H&&H.length){var D=H.indexOf(E);var C=s.designer.insertIndex;if(C>D){C--}if(C>=H.length){C=H.length-1}if(s.designer.insertIndex!=D){H.splice(C,0,H.splice(D,1)[0])}}s.doValidatePiston();s.closeDialog();if(G){s.addTask(s.designer.parent);return}};s.addVariable=function(){return s.editVariable(null)};s.editVariable=function(C){if(s.mode!="edit"){return}if(!C){C={};C.t="dynamic";C.n="";C.v={data:{}};C.a="d";C.z=""}if(C.v instanceof Array){C.v={data:{}}}s.designer={};s.designer.$variable=C;s.designer.$obj=C;s.designer.$new=C.n?false:true;s.designer.page=0;s.designer.parent=s.piston.v;s.designer.type=C.t;s.designer.assignment=C.a||"d";s.designer.name=C.n;s.designer.operand={data:C.v,multiple:false,dataType:C.t,optional:true};s.designer.description=C.z;window.designer=s.designer;window.scope=s;s.validateOperand(s.designer.operand);s.designer.dialog=m.open({template:"dialog-edit-variable",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s});s.refreshSelects()};s.updateVariable=function(E){s.autoSave();var C=s.designer.$new?{}:s.designer.$variable;C.t=s.designer.operand.dataType;C.n=s.designer.name.trim().replace(/[^a-z0-9]|\s+|\r?\n|\r/gmi,"_");C.z=s.designer.description;C.a=s.designer.assignment;var D=s.fixOperand(s.designer.operand.data);switch(D.t){case"":C.v=null;break;default:C.v=D;break}C.$$html=null;if(s.designer.$new){s.piston.v.push(C)}else{s.designer.variable=C}s.doValidatePiston();s.closeDialog();if(E){s.addVariable();return}};s.addGlobalVariable=function(){return s.editGlobalVariable(null)};s.editGlobalVariable=function(D){if(s.mode!="edit"){return}var C=s.globalVars[D];if(!C){C={t:"dynamic",v:""}}s.designer={};s.designer.$variableName=D;s.designer.$variable=C;s.designer.$obj=C;s.designer.$new=D?false:true;s.designer.name=D?""+D:"@";s.designer.type=C.t;s.designer.operand={data:{t:!C.v?"":(C.t=="device"?"d":"c"),c:C.v,d:C.v},multiple:false,dataType:C.t,optional:true,onlyAllowConstants:true};window.designer=s.designer;window.scope=s;s.validateOperand(s.designer.operand);s.designer.dialog=m.open({template:"dialog-edit-global-variable",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateGlobalVariable=function(E){s.autoSave();var C=s.designer.$new?{}:s.designer.$variable;C.t=s.designer.operand.dataType;C.n=s.designer.name.trim().replace(/[^@a-z0-9]|\s+|\r?\n|\r/gmi,"_");var D=s.designer.operand.data;switch(D.t){case"":C.v=C.t=="device"?[]:null;break;case"c":C.v=D.c?D.c:"";break;case"d":C.v=D.d?D.d:[];break;default:C.v=null;break}delete (C.$$html);u.setVariable(s.designer.$variableName,C).then(function(F){if(F&&F.globalVars){s.updateGlobalVars(F.globalVars)}});s.doValidatePiston();s.closeDialog();if(E){s.addGlobalVariable();return}};s.deleteGlobalVariable=function(){if((!s.designer)||(!s.designer.$variableName)){return}u.setVariable(s.designer.$variableName,null).then(function(C){if(C&&C.globalVars){s.updateGlobalVars(C.globalVars)}});s.closeDialog()};s.validateGlobalVariableName=function(){if(!s.designer){return false}var C=s.designer.name;if(!C){return false}if(!C.startsWith("@")){C="@"+C}while(C.startsWith("@@@")){C=C.substr(1)}if(s.designer.name!=C){s.designer.name=C}return C&&(C!="@")&&(C!="@@")&&((s.designer.$variableName==C)||!(s.globalVars[C]))};s.getDeviceAttributeValue=function(E,D){for(i in E.a){if(E.a[i].n==D){var C={v:E.a[i].v,t:E.a[i].v};if(C.v==undefined){C.v=""}if((D=="battery")&&(!isNaN(C.v))){C.t=C.t+"%";C.v=Math.floor(parseInt(C.v)/20);if(C.v>4){C.v=4}}if((D=="temperature")&&(!isNaN(C.v))){C.v=Math.round(parseFloat(C.v)).toString()+"°";C.t=C.v}return C}}return{v:"",t:""}};s.renderDevice=function(E){var G=s.getDeviceAttributeValue(E,"switch");var G=G?'class="fa fa-toggle-off" switch="'+G+'"':"";var D=["temperature","battery","switch","motion","presence"];var C="
"+E.n+"
";for(a in D){var F=s.getDeviceAttributeValue(E,D[a]);C+="
'}return n.trustAsHtml(C)};s.drag=function(D,C){D.splice(C,1);s.autoSave();s.doValidatePiston()};s.setDesignerType=function(C){s.designer.type=C;s.nextPage();if(s.designer.ontypechanged){s.designer.ontypechanged(s.designer,C)}};s.closeDialog=function(){s.saveStack();if(s.designer.dialog){s.designer.dialog.close();s.designer.dialog=null}};s.nextPage=function(){s.designer.page++;s.refreshSelects()};s.prevPage=function(){if(s.designer.page){s.designer.page--}};s.selectTaskIndex=function(C){if(s.designer){s.designer.insertIndex=C}};s.initLineNumbers=function(){j.lineNumber=0};s.getLineNumber=function(){return j.lineNumber};s.mergeObjects=function(F,E){if(Object.assign){return Object.assign(F,E)}var C={};for(var D in F){C[D]=F[D]}for(var D in E){C[D]=E[D]}return C};s.clearLogs=function(){s.logs=[]};s.prepareParameters=function(C){s.designer.parameters=[];var G=s.db.commands.physical[s.designer.command]||s.db.commands.virtual[s.designer.command];s.designer.parameters=[];s.designer.custom=false;if(G){for(parameterIndex in G.p){var H=s.copy(G.p[parameterIndex]);var E={data:{},name:H.n,dataType:H.t.toLowerCase(),multiple:false,optional:((H.t!="bool")&&(H.t!="boolean"))&&!!H.d,options:H.o,strict:!!H.s};var D=s.getAttributeById(H.t);if(D){E.attribute=D;E.dataType=D.t;E.allowMuliple=false;E.options=D.o}if(C&&C.p&&(C.p.length>parameterIndex)){E.data=s.copy(C.p[parameterIndex])}s.validateOperand(E);s.designer.parameters.push(E)}}else{s.designer.custom=!!s.designer.command;for(i in C.p){var F={dataType:C.p[i].vt,data:s.copy(C.p[i])};s.validateOperand(F);s.designer.parameters.push(F)}}if(s.designer.command=="setVariable"){s.designer.parameters[0].linkedOperand=s.designer.parameters[1];s.validateOperand(s.designer.parameters[0])}s.refreshSelects()};s.renameParameters=function(){if(!s.designer.custom){return}for(i in s.designer.parameters){s.designer.parameters[i].name="Parameter #"+(parseInt(i)+1).toString()+" ("+s.designer.parameters[i].dataType+")"}s.refreshSelects()};s.addParameter=function(C){if(!s.designer.custom){return}var D={dataType:C,name:"",data:{t:"c"}};s.validateOperand(D);s.designer.parameters.push(D);s.renameParameters()};s.deleteParameter=function(D){if(!s.designer.custom){return}var C=s.designer.parameters.indexOf(D);if(C>-1){s.designer.parameters.splice(C,1)}s.renameParameters()};s.getParameterInputType=function(C){switch(C.t){case"color":case"duration":case"enum":case"boolean":return C.t;case"number":return Math.abs(C.M-C.m)>360?"number":"range"}return"text"};s.getParameterMin=function(C){switch(C.t){case"level":case"saturation":case"hue":return 0;case"colorTemperature":return 1500}return null};s.getParameterMax=function(C){switch(C.t){case"level":case"saturation":return 100;case"hue":return 360;case"colorTemperature":return 10000}return null};s.getContactById=function(C){return s.instance.contacts[C]};s.getRoutineById=function(C){if(s.instance.virtualDevices.routine&&s.instance.virtualDevices.routine.o){return s.instance.virtualDevices.routine.o[C]}return null};s.getLocationModeById=function(C){if(s.instance.virtualDevices.mode&&s.instance.virtualDevices.mode.o){return s.instance.virtualDevices.mode.o[C]}return null};s.getDeviceById=function(C){if(C==s.location.id){return{id:C,n:s.location.name,an:"Location"}}return s.instance.devices[C]};s.getDeviceByName=function(C){for(deviceIndex in s.instance.devices){if(s.instance.devices[deviceIndex].n==C){return mergeObjects({id:deviceIndex},s.instance.devices[deviceIndex])}}return null};s.getVirtualDeviceById=function(C){if(C==s.location.id){return{id:C,name:s.location.name}}return s.instance.virtualDevices[C]};s.getCapabilityById=function(C){return s.db.capabilities[C]};s.getCapabilityByName=function(C){for(capabilityIndex in s.db.capabilities){if(s.db.capabilities[capabilityIndex].n==C){return mergeObjects({id:capabilityIndex},s.db.capabilities[capabilityIndex])}}return null};s.getCommandById=function(C){return s.db.commands.physical[C]||s.db.commands.virtual[C]};s.getCommandByName=function(C){for(commandIndex in s.db.commands.physical){if(s.db.commands.physical[commandIndex].n==C){return mergeObjects({id:commandIndex},s.db.commands.physical[commandIndex])}}for(commandIndex in s.db.commands.virtual){if(s.db.commands.virtual[commandIndex].n==C){return mergeObjects({id:commandIndex},s.db.commands.virtual[commandIndex])}}return null};s.getAttributeById=function(C){return s.db.attributes[C]};s.getAttributeByName=function(C){for(attributeIndex in s.db.attributes){if(s.db.attributes[attributeIndex].n==C){return s.db.attributes[attributeIndex]}}return null};s.getDeviceAttributeById=function(D,C){if(!D){return null}for(i in D.a){if(D.a[i].n==C){return D.a[i]}}return null};s.buildName=function(D,G,C,F){if((D==null)||(D==undefined)){return""}if(D instanceof Array){return s.buildNameList(D,"or","","",false,G,C,F)}if(C||(D.length==34)){for(deviceId in s.instance.virtualDevices){var E=s.instance.virtualDevices[deviceId];if(E.o){for(id in E.o){G=G||!C;if(D==id){return(!G?"'":"")+E.o[id]+(!G?"'":"")}}}}}return(!G?"'":"")+(F?F:"")+D+(!G?"'":"")};s.buildNameList=function(H,K,O,I,C,E,J,L){var D=1;var N="";for(i in H){var G="";var F=H[i];if(F instanceof Object){O=F.t?F.t:O;G=F.a?F.a:"[unknown]";F=F.n}var M=s.buildName(F,E,J,L);N+=""+M+""+(C?"'"+(M.substr(-1)=="s"?"":"s"):"")+(D"+(D==H.length-1?(H.length>2?", ":" ")+K+" ":", ")+"":"");D++}return N.trim()};s.buildLocationModeNameList=function(D){var C=[];if(D instanceof Array){for(modeIndex in D){C.push(s.getModeName(D[modeIndex]))}if(C.length){return s.buildNameList(C,"or","lit","",false,true)}}return""};s.buildDeviceNameList=function(C){var E=[];if(C instanceof Array){for(deviceIndex in C){var D=s.getDeviceById(C[deviceIndex]);if(D){E.push({n:D.n,a:D.an,t:"dev"})}else{E.push({n:"{"+C[deviceIndex]+"}",t:"var"})}}if(E.length){return s.buildNameList(E,"and","dev","",false,true)}}return"Location"};s.buildContactNameList=function(E){var D=[];if(E instanceof Array){for(contactIndex in E){var C=s.getContactById(E[contactIndex]);if(C){D.push({n:(C.f+" "+C.l).trim()+" ("+C.t+"/"+(C.p?"PUSH":"SMS")+")",a:C.an,t:"cnt"})}else{D.push({n:"{"+E[contactIndex]+"}",a:"Unknown Contact",t:"var"})}}if(D.length){return s.buildNameList(D,"and","cnt","",false,true)}}return"(empty)"};s.formatHour=function(C){return(!location.timeZone||location.timeZone.id.startsWith("America"))?((C%12?C%12:"12")+(C<12?"am":"pm")):("00"+C).substr(-2)};s.renderDeviceNameList=function(C){return n.trustAsHtml(s.buildDeviceNameList(C))};s.renderContactNameList=function(C){return n.trustAsHtml(s.buildContactNameList(C))};s.hasCommand=function(D,C){if(!D||!D.c){return false}return s.hasName(D.c,C)};s.hasName=function(D,C){if(!D||!D.length){return false}for(obj in D){if(D[obj]&&(D[obj].n===C)){return true}}return false};s.hasId=function(C,D){if(!C||!C.length){return false}for(obj in C){if(C[obj]&&(C[obj].id===D)){return true}}return false};s.listAvailableCommands=function(M){var E={};var J=M?M.length:0;for(deviceIndex in M){var F=M[deviceIndex]||"";var C=[];var L=false;if(F.startsWith(":")){var D=s.getDeviceById(M[deviceIndex]);if(D){C=D.c}}else{L=true;C=s.db.commands.physical}for(commandIndex in C){var H=L?commandIndex:C[commandIndex].n;if(E[H]){E[H]+=1}else{E[H]=1}}}var N={common:[],partial:[],virtual:[]};for(H in E){var G=s.db.commands.physical[H];if(!G){G={n:H+"(..)",cm:true}}if(E[H]==J){N.common.push(mergeObjects({id:H},G))}else{N.partial.push(mergeObjects({id:H},G))}}for(H in s.db.commands.virtual){var G=s.db.commands.virtual[H];if(G.r){var I=0;for(deviceIndex in M){var F=M[deviceIndex]||"";var K=false;if(F.startsWith(":")){var D=s.getDeviceById(M[deviceIndex]);K=!!D;if(K){for(req in G.r){if(!s.hasCommand(D,G.r[req])){K=false;break}}}}else{K=true}if(K){I++}}if(I>0){if(I==J){if(!s.hasId(N.common,H)){N.common.push(mergeObjects({id:H,em:true},G))}}else{if(!s.hasId(N.partial,H)){N.partial.push(mergeObjects({id:H,em:true},G))}}}}else{N.virtual.push(mergeObjects({id:H},G))}}N.common.sort(s.sortByName);N.partial.sort(s.sortByName);N.virtual.sort(s.sortByName);return N};s.listAvailableDevices=function(){var C=[];for(deviceIndex in s.instance.devices){var D=s.instance.devices[deviceIndex];var E="";for(i in D.a){E+=":"+D.a[i].n+" "}C.push(mergeObjects({id:deviceIndex,tokens:E+D.n},D))}return C.sort(s.sortByName)};s.listAvailableVirtualDevices=function(){var C=[];for(deviceIndex in s.instance.virtualDevices){var D=s.instance.virtualDevices[deviceIndex];C.push(mergeObjects({id:deviceIndex},D))}return C.sort(s.sortByName)};s.escapeRegExp=function(C){return C};s.listAutoCompleteFunctions=function(){var C=[];for(functionIndex in s.db.functions){C.push((s.db.functions[functionIndex].d?s.db.functions[functionIndex].d:functionIndex)+"(")}return C.sort()};s.listAutoCompleteDevices=function(){var C=[];for(deviceIndex in s.instance.devices){var D=s.instance.devices[deviceIndex];C.push(s.escapeRegExp("["+D.n+" :"))}return C.sort()};s.listAutoCompleteVariables=function(){var C=[];for(varIndex in s.piston.v){var D=s.piston.v[varIndex];C.push(s.escapeRegExp(D.n))}if(s.systemVars){for(varName in s.systemVars){C.push(s.escapeRegExp(varName))}}if(s.globalVars){for(varName in s.globalVars){C.push(s.escapeRegExp(varName))}}return C.sort()};s.getVariableByName=function(C){if(s.systemVars&&s.systemVars[C]){return s.systemVars[C]}if(s.globalVars&&s.globalVars[C]){return s.globalVars[C]}for(varIndex in s.piston.v){if(s.piston.v[varIndex].n==C){return s.piston.v[varIndex]}}return null};s.getVariableValue=function(D,E){if(s.localVars){var C=s.localVars[D];if(C!=undefined){if(E=="datetime"){return utcToString(C)}return""+C}}return"(not set)"};s.autoAddVariable=function(D){if(!D){return false}D=D?D.trim():"";var C=s.getVariableByName(D);s.piston.v.push({t:"dynamic",n:D})};s.hasAttribute=function(D,C){for(a in D.a){if(D.a[a].n==C){return true}}return false};s.listAvailableAttributes=function(E,J){var C=[];var H=null;if(E&&E.length){var D={};var F=E.length;for(deviceIndex in E){H=s.getDeviceById(E[deviceIndex]);if(H){for(attributeIndex in H.a){var G=H.a[attributeIndex];if(!J||(G.n==J)){if(D[G.n]){D[G.n]+=1}else{D[G.n]=1}}}}else{for(attributeName in s.db.attributes){if(!J||(attributeName==J)){if(D[attributeName]){D[attributeName]+=1}else{D[attributeName]=1}}}}}for(attributeId in D){if(D[attributeId]==F){var G=s.getAttributeById(attributeId);if(G){C.push(mergeObjects({id:attributeId},G))}else{for(a in H.a){if(H.a[a].n==attributeId){G=H.a[a];break}}if(G){var I=mergeObjects({id:attributeId,c:true},G);I.n="⌂ "+I.n;I.t=(I.t||"string").toLowerCase().replace("number","decimal");C.push(I)}}}}C.sort(s.sortByName)}return C};s.sortByDisplay=function(D,C){return(D.d>C.d)?1:((C.d>D.d)?-1:0)};s.sortByName=function(D,C){D=D.n.toLowerCase();C=C.n.toLowerCase();return(D>C)?1:((C>D)?-1:0)};s.getStackData=function(){var C=angular.toJson(s.compilePiston(s.piston));return{hash:s.md5(C),timestamp:(new Date()).getTime(),data:angular.fromJson(C)}};s.autoSave=function(C){var D=C?false:true;C=C?C:s.stack.undo;pushToStack=true;var E=s.getStackData();if(C&&C.length){if(E.hash==C[C.length-1].hash){pushToStack=false}}if(pushToStack){C.push(E);if(C.length>MAX_STACK_SIZE){C=C.slice(-MAX_STACK_SIZE)}}if(D){s.stack.redo=[]}};s.objectToArray=function(D){var C=[];for(property in D){C.push({v:property,n:D[property]})}return C};s.saveStack=function(C){s.stack.current=s.getStackData();if(C){s.stack.current.timestamp=0}s.stack.build=s.meta.build;u.saveToStore("stack"+s.pistonId,s.stack)};s.loadStack=function(){s.stack=u.loadFromStore("stack"+s.pistonId);s.stack=s.stack instanceof Object?s.stack:{};s.stack.undo=(s.stack.undo instanceof Array?s.stack.undo:[]);s.stack.redo=(s.stack.redo instanceof Array?s.stack.redo:[]);if(s.stack.current instanceof Object&&s.stack.current.data&&(s.stack.build==s.meta.build)&&(s.meta.modified1)&&((U.data.g=="all")||(U.data.g=="any"));U.error=null;U.momentary=false;U.selectedDataType="string";U.selectedOptions=[];switch(U.data.t){case"p":var K=s.db.attributes[U.data.a];if(!K){if(U.data.d.length){var S=s.getDeviceById(U.data.d[0]);if(S){for(a in S.a){if(S.a[a].n==U.data.a){K=S.a[a];break}}}}}if(K){U.momentary=K.m;U.count=0;if(U.momentary&&!!K.s){var N=K.s.split(",");for(deviceIndex in U.data.d){var F=s.getDeviceById(U.data.d[deviceIndex]);var V=0;if(F){for(i in N){var O=s.getDeviceAttributeById(F,N[i]);if((O)&&(!isNaN(O.v))){V=parseInt(O.v);if(V>U.count){U.count=V}}}}else{if(U.count<32){U.count=32}}}}if(U.count){if((U.data.i==null)||(U.data.i==undefined)){U.data.i=["1"]}s.refreshSelects()}U.selectedDataType=K.t.toLowerCase();U.selectedOptions=K.o;if(U.momentary){U.allowAll=false;U.allowAggregation=false}}else{U.selectedDataType="string"}if(U.data.d&&(U.data.d.length>1)){if(!U.data.g){U.error="Invalid aggregation method"}if(!(["any","all","least","most"].indexOf(U.data.g)>=0)){U.selectedDataType="decimal"}}break;case"v":var P=s.instance.virtualDevices[U.data.v];U.selectedDataType=(!!P&&!!P.t)?P.t:"string";if(P){U.momentary=P.m;for(o in P.o){U.selectedOptions.push({v:o,n:P.o[o]})}}break;case"x":if(U.data.x instanceof Array){if(U.data.x.length){U.selectedDataType="dynamic"}else{U.error="Invalid list of variables"}}else{var R=s.getVariableByName(U.data.x);if(R){U.selectedDataType=R.t;if(U.selectedDataType=="boolean"){U.selectedOptions=["false","true"]}}else{U.error="Invalid variable"}}break;case"u":U.selectedDataType="dynamic";break;case"c":var M=s.parseString(U.data.c,U.data.vt);U.error=M.err;U.expressionVar=M.errVar;U.data.exp=M;if(!U.options){if(!U.optional&&!U.data.c&&(U.requirePositiveNumber)){U.error="Empty value";U.expressionVar=""}}else{if((U.data.c==null)||(U.data.c==undefined)){U.error="Invalid selection";U.expressionVar=""}}U.selectedDataType=U.dataType;break;case"e":var M=s.parseExpression(U.data.e,false,U.data.vt);U.error=M.err;U.expressionVar=M.errVar;if(M.err){var I=(M.loc?M.loc:"0:"+(M.str.length-1).toString()).split(":");var H=parseInt(I[0]);var E=I.length==2?parseInt(I[1]):H;U.config.autocomplete[0]={words:[new RegExp(".(?=.{"+(M.str.length-H-1)+"}$).{"+(E-H)+"}")],cssClass:"hl err",title:M.err}}else{U.config.autocomplete[0]={words:[],cssClass:"hl err"}}U.data.exp=M;U.selectedDataType="dynamic";break}if((!U.error)&&(U.dataType=="duration")&&(!U.durationUnit)){U.error="Invalid duration unit"}if((!U.error)&&U.count&&(!U.data.i||!U.data.i.length)){U.error="Invalid sub device selection"}U.valid=(!U.error)&&(((U.data.t=="")&&(U.optional))||((U.data.t=="d")&&!!U.data.d&&!!U.data.d.length)||((U.data.t=="p")&&!!U.data.d&&!!U.data.d.length&&!!U.data.a)||((U.data.t=="v")&&!!U.data.v)||((U.data.t=="x")&&!!U.data.x&&!!U.data.x.length)||((U.data.t=="s")&&!!U.data.s)||((U.data.t=="u")&&!!U.data.u)||((U.data.t=="c")&&!((U.data.c=="Invalid Date")&&(U.data.c instanceof Object))&&!((Q=="duration")&&(isNaN(U.data.c)||(U.requirePositiveNumber&&(U.data.c<1)))))||((U.data.t=="e")&&!!U.data.e&&!!U.data.e.length));switch(U.dataType){case"integer":U.inputType="number";try{U.data.c=parseInt(U.data.c)}catch(D){U.data.c=0}break;case"duration":case"decimal":U.inputType="number";try{U.data.c=parseFloat(U.data.c)}catch(D){U.data.c=0}break;default:U.inputType=U.dataType}if(U.linkedOperand){U.linkedOperand.dataType=U.selectedDataType;U.linkedOperand.options=U.selectedOptions;s.validateOperand(U.linkedOperand,true);s.refreshSelects()}};s.refreshSelects=function(C){if(C){s.$$postDigest(function(){$("select["+C+"]").selectpicker("refresh");z(function(){$("select["+C+"]").selectpicker("refresh")},0,false)})}else{s.$$postDigest(function(){$("select").selectpicker("refresh");z(function(){$("select").selectpicker("refresh")},0,false)})}};s.getOrdinalSuffix=function(E){if(isNaN(E)){return""}E=parseInt(E);var C=E%100;var D=E%10;if(((C>3)&&(C<21))||(D==0)||(D>3)){return"th"}switch(D){case 1:return"st";case 2:return"nd";case 3:return"rd"}return"th"};s.getOrdinal=function(C){if(isNaN(C)){return""}C=parseInt(C);switch(C){case -3:return"third-last";case -2:return"second-last";case -1:return"last"}return C+s.getOrdinalSuffix(C)};s.listODM=function(){var C=s.designer.odm;var D=(!s.designer.operand.data.odw||(s.designer.operand.data.odw=="d"))?31:5;if(!C||(C.length!=(D+3))){C=[];for(i=1;i<=D;i++){C.push({v:i,n:i+s.getOrdinalSuffix(i)})}C.push({v:-1,n:"last"});C.push({v:-2,n:"second-last"});C.push({v:-3,n:"third-last"});s.designer.odm=C}return C};s.listODW=function(){var C=s.designer.odw;var D=(s.designer.operand.data.odm>5)?0:7;if(!C||(C.length!=(D+1))){C=[];C.push({v:"d",n:"day"});if(D){for(i in s.weekDays){C.push({v:i.toString(),n:s.weekDays[i]})}}s.designer.odw=C}return C};s.validateComparison=function(L,D){s.validateOperand(L.left,D,true);if((L.left.selectedDataType!=L.dataType)||(L.left.selectedMultiple!=L.selectedMultiple)||(L.left.momentary!=L.momentary)||(L.left.data.t=="v")){L.dataType=L.left.selectedDataType;L.selectedMultiple=L.left.selectedMultiple;L.momentary=L.left.momentary;var J=(L.left.data.t!="p")||((L.left.data.g!="any")&&(L.left.data.g!="all"));var C=(L.type=="restriction");var I=[];var M=[];if(!L.dataType){L.dataType="dynamic"}switch(L.dataType){case"enum":dt="s";break;case"dynamic":dt="";break;case"time":case"date":case"datetime":dt="t";break;default:dt=L.dataType.substr(0,1)}dt=(L.momentary?(L.left.data.t=="v"?"v":"m"):((dt=="n"?"d":dt)));for(conditionId in s.db.comparisons.conditions){var G=s.db.comparisons.conditions[conditionId];if(((!dt&&(G.g!="m"))||(G.g.indexOf(dt)>=0))&&(!J||!G.t)){M.push({id:conditionId,d:(L.selectedMultiple?(G.dd?G.dd:G.d):G.d),c:"Conditions"})}}I=I.concat(M.sort(s.sortByDisplay));if(!C){M=[];for(triggerId in s.db.comparisons.triggers){var E=s.db.comparisons.triggers[triggerId];if(E.g.indexOf(dt)>=0){M.push({id:triggerId,d:(L.selectedMultiple?(E.dd?E.dd:E.d):E.d),c:"Triggers"})}}I=I.concat(M.sort(s.sortByDisplay))}L.options=I}var H=s.db.comparisons.conditions[L.operator]||s.db.comparisons.triggers[L.operator];L.operatorValid=!!H;L.parameterCount=H&&H.p?H.p:0;L.multiple=H&&H.m?true:false;L.valid=L.left.valid&&L.operatorValid;L.timed=H?H.t:0;if(L.parameterCount>0){L.right.multiple=L.multiple;L.right.disableAggregation=L.multiple;L.right.dataType=L.left.selectedDataType;if(angular.toJson(L.right.options)!=angular.toJson(L.left.selectedOptions)){if((L.right.data.t=="c")&&L.right.options&&L.right.options.length&&(!L.left.selectedOptions||!L.left.selectedOptions.left)){L.right.data.c=""}L.right.options=L.left.selectedOptions}s.validateOperand(L.right,D,true);L.valid=L.valid&&L.right.valid}if(L.parameterCount>1){L.right2.multiple=L.multiple;L.right2.disableAggregation=L.multiple;L.right2.dataType=L.left.selectedDataType;if(angular.toJson(L.right2.options)!=angular.toJson(L.left.selectedOptions)){L.right2.options=L.left.selectedOptions}s.validateOperand(L.right2,D,true);L.valid=L.valid&&L.right2.valid}var F=(L.timed>0);var K=false;if(L.left.selectedDataType=="time"){F=F||(L.right.data.t!="c");K=(L.right2.data.t!="c")}if(F){L.time.requirePositiveNumber=!!L.timed;s.validateOperand(L.time,D,true);L.valid=L.valid&&L.time.valid}if(K){L.time2.requirePositiveNumber=false;L.time2.dataType="duration";s.validateOperand(L.time2,D,true);L.valid=L.valid&&L.time2.valid}};s.detectDataType=function(C){switch(typeof C){case"string":if(!isNaN(parseFloat(C))){return"number"}return"string";case"number":return"number";default:return"string"}};s.renderOperand=function(H,G,J,D){var K="";if(H){switch(H.t){case"d":if(H.d){K=s.buildDeviceNameList(H.d)}break;case"p":if(H.d&&H.a){K=s.renderDeviceList(H.d,H.a,H.g,true)+" "+H.a+""}break;case"v":var C=s.getVirtualDeviceById(H.v);K=""+(C?C.n:"(invalid virtual device)")+"";break;case"s":if(H.s){K=""+H.s+""}break;case"x":if(H.x){K="{"+H.x+"}"}break;case"c":var F="num";G=G||!isNaN(H.c);switch(H.vt){case"time":var E=s.localTimeToDate(H.c);K=""+E.toLocaleTimeString({hour:"2-digit",minute:"2-digit"})+"";break;case"date":K=""+utcToDateString(H.c)+"";break;case"datetime":K=""+utcToString(H.c)+"";break;case"piston":K=""+s.getPistonName(H.c)+"";break;case"lifxScene":K=""+s.getLifxSceneName(H.c)+"";break;case"phone":K=""+H.c+"";break;case"uri":K=""+H.c+"";break;case"contact":K=s.renderContactNameList(H.c);break;default:if(!G){if((H.vt=="boolean")||(H.vt=="enum")){G=true}F="lit"}var I=H.c;if(D&&!isNaN(I)&&parseInt(I)<0){I=-parseInt(I)}K=""+scope.buildName(I,G,J)+""}break;case"u":K=K+"{$args."+H.u+"}";break;case"e":if(H.e){K="{"+H.e+"}"}break}}K=K?K:'(empty)';return(K instanceof Object)?K:n.trustAsHtml(K)};s.renderForOperands=function(D){var C;C=""+(D.x?D.x:"$index")+" = "+s.renderOperand(D.lo)+" to "+s.renderOperand(D.lo2)+" step "+s.renderOperand(D.lo3);return n.trustAsHtml(C?C:"(invalid operands)")};s.renderForEachOperands=function(D){var C;C=""+(D.x?D.x:"$device")+" in "+s.renderOperand(D.lo);return n.trustAsHtml(C?C:"(invalid operands)")};s.renderTimeOperand=function(E){if(!E){return""}var C=(E.t=="c");var D=C&&!isNaN(E.c)?parseInt(E.c):0;if(C&&(D==0)){return""}return s.renderOperand(E,false,false,true)+" "+s.getDurationUnitName(E.vt,(D!=1))+" "+(D<0?"to":"past")+" "};s.renderComparison=function(R,O,L,S,D,T){var Y=s.db.comparisons.triggers[O];var K=!!Y;if(!Y){Y=s.db.comparisons.conditions[O]}if(!Y){return"[ERROR: Invalid comparison]"}var E=R.t=="v";var N=R&&(R.t=="p")&&R.d&&(R.d.length>1)&&(R.g=="all");var U=false;var H="";switch(R.t){case"v":switch(R.v){case"locationMode":case"shmState":U=true;break}break;case"p":var X=s.getAttributeById(R.a);if(!!X&&!!X.u){H=X.u}break}var F="";if((Y.g=="m")&&R.i&&R.i.length){F=" "+s.buildNameList(R.i,"or",null,null,false,true,false,"#")+""}var Q="";var P="";if((R.t=="v")&&(R.v=="time")){if(L&&D&&(L.t!="c")){Q=s.renderTimeOperand(D)}if(S&&T&&(S.t!="c")){P=s.renderTimeOperand(T)}}var G=s.renderOperand(R)+F+" "+(N?(Y.dd?Y.dd:Y.d):Y.d)+""+(Y.p>0?" "+Q+s.renderOperand(L,U,E):"")+(H?""+H+" ":"")+(Y.p>1?" "+(Y.d.indexOf("between")?"and":"through")+" "+P+s.renderOperand(S,U,E)+(H?""+H+" ":""):"");switch(Y.t){case 1:G+=" "+(K?"for":"in the last")+" "+s.renderOperand(D)+" "+s.getDurationUnitName(D.vt,!((D.t=="c")&&(!isNaN(D.c))&&(parseInt(D.c)==1)))+"";break;case 2:G+=" for "+(D.f=="g"?"at least":"less than")+" "+s.renderOperand(D)+" "+s.getDurationUnitName(D.vt,!((D.t=="c")&&(!isNaN(D.c))&&(parseInt(D.c)==1)))+"";break}if((R.t=="v")&&(["time","date","datetime"].indexOf(R.v)>=0)){var V=(R.odw instanceof Array)&&R.odw.length?R.odw:null;var C=(R.odm instanceof Array)&&R.odm.length?R.odm:null;var M=!C&&(R.owm instanceof Array)&&R.owm.length?R.owm:null;var W=(R.omy instanceof Array)&&R.omy.length?R.omy:null;if(!!V||!!C||!!M||!!W){var J=0;G+=", but only";var I="";if(V){for(i in V){if((i>0)&&(V.length>2)){I+=", "}if((i>0)&&(i==V.length-1)){I+=" or "}I+=""+s.weekDays[V[i]]+"s"}J++}if(M){G+=(J?",":"")+" on the ";for(i in M){if((i>0)&&(M.length>2)){G+=", "}if((i>0)&&(i==M.length-1)){G+=" or "}G+=""+s.getOrdinal(M[i])+""}G+=" "+(I?I:"week"+(M.length>1?"s":"")+"")+(W?"":" of the month");J++}else{if(I){G+=(J>1?",":"")+" on "+I}}if(C){G+=(J?",":"")+" on the ";for(i in C){if((i>0)&&(C.length>2)){G+=", "}if((i>0)&&(i==C.length-1)){G+=" or "}G+=""+s.getOrdinal(C[i])+""}G+=" day"+(C.length>1?"s":"")+(W?"":" of the month");J++}if(W){G+=" "+(M||C?"of":"in")+" ";for(i in W){if((i>0)&&(W.length>2)){G+=", "}if((i>0)&&(i==W.length-1)){G+=" or "}G+=""+s.yearMonths[W[i]-1]+""}J++}}}return n.trustAsHtml(G)};s.getWeekDayName=function(C){if(isNaN(C)){return"day"}return s.weekDays[parseInt(C)]};s.getMonthDayName=function(C){switch(C){case -1:return"last";case -2:return"second-last";case -3:return"third-last"}return C+s.getOrdinalSuffix(C)};s.getMonthName=function(C){return s.yearMonths[C]};s.getDurationUnitName=function(D,C){var E=C?"s":"";switch(D){case"ms":return"millisecond"+E;case"s":return"second"+E;case"m":return"minute"+E;case"h":return"hour"+E;case"d":return"day"+E;case"w":return"week"+E;case"n":return"month"+E;case"y":return"year"+E}return""};s.renderTimer=function(D){var S="";var F=D.lo;var O=s.getDurationUnitName(F.vt);var K=O;var C=0;switch(F.vt){case"ms":C=1;break;case"s":C=2;break;case"m":C=3;break;case"h":C=4;break;case"d":C=5;break;case"w":C=6;O=s.getWeekDayName(F.odw);break;case"n":C=7;O=s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of the month";break;case"y":C=8;O=s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of "+s.getMonthName(F.omy);break}switch(F.t){case"c":if(!isNaN(F.c)){var N=parseInt(F.c);switch(N){case 1:S=O;break;case 2:S="other "+O;break;default:S=""+N+" "+K+"s";switch(F.vt){case"n":S+=", on the "+s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of the month";break;case"y":S+=", on the "+s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of "+s.getMonthName(F.omy);break}}break}default:S=s.renderOperand(F)+" "+O+"s"}if(C==4){var G=("00"+D.lo.om).substr(-2);S+=", at :"+G+" past the hour"}if(C>=5){S+=", at ";if(D.lo2.t!="c"){switch(D.lo3.t){case"c":var I=isNaN(D.lo3.c)?0:parseInt(D.lo3.c);if(I==0){S+=s.renderOperand(D.lo2)}else{if(I<0){S+=""+(-I).toString()+" "+s.getDurationUnitName(D.lo3.vt,(I<-1))+" before "+s.renderOperand(D.lo2)}else{S+=""+I.toString()+" "+s.getDurationUnitName(D.lo3.vt,(I>1))+" after "+s.renderOperand(D.lo2)}}break;default:S+=s.renderOperand(D.lo2)+" ± "+s.renderOperand(D.lo3)}}else{S+=s.renderOperand(D.lo2)}}var M=(C<=2)&&(F.om instanceof Array)&&F.om.length?F.om:null;var P=(C<=3)&&(F.oh instanceof Array)&&F.oh.length?F.oh:null;var E=(C<=5)&&(F.odw instanceof Array)&&F.odw.length?F.odw:null;var L=(C<=6)&&(F.odm instanceof Array)&&F.odm.length?F.odm:null;var R=(C<=6)&&!L&&(F.owm instanceof Array)&&F.owm.length?F.owm:null;var Q=(C<=7)&&(F.omy instanceof Array)&&F.omy.length?F.omy:null;if(!!M||!!P||!!E||!!L||!!R||!!Q){var H=0;S+=", but only";if(M){S+=" at ";for(i in M){if((i>0)&&(M.length>2)){S+=", "}if((i>0)&&(i==M.length-1)){S+=" or "}S+=":"+("00"+M[i]).substr(-2)+""}S+=" minutes past the hour";H++}if(P){S+=(H?",":"")+" during the ";for(i in P){if((i>0)&&(P.length>2)){S+=", "}if((i>0)&&(i==P.length-1)){S+=" or "}S+=""+s.formatHour(P[i])+""}S+=" hour"+(P.length>1?"s":"")+"";H++}var J="";if(E){for(i in E){if((i>0)&&(E.length>2)){J+=", "}if((i>0)&&(i==E.length-1)){J+=" or "}J+=""+s.weekDays[E[i]]+"s"}H++}if(R){S+=(H?",":"")+" on the ";for(i in R){if((i>0)&&(R.length>2)){S+=", "}if((i>0)&&(i==R.length-1)){S+=" or "}S+=""+s.getOrdinal(R[i])+""}S+=" "+(J?J:"week"+(R.length>1?"s":"")+"")+(Q?"":" of the month");H++}else{if(J){S+=(H>1?",":"")+" on "+J}}if(L){S+=(H?",":"")+" on the ";for(i in L){if((i>0)&&(L.length>2)){S+=", "}if((i>0)&&(i==L.length-1)){S+=" or "}S+=""+s.getOrdinal(L[i])+""}S+=" day"+(L.length>1?"s":"")+(Q?"":" of the month");H++}if(Q){S+=" "+(R||L?"of":"in")+" ";for(i in Q){if((i>0)&&(Q.length>2)){S+=", "}if((i>0)&&(i==Q.length-1)){S+=" or "}S+=""+s.yearMonths[Q[i]-1]+""}H++}}return n.trustAsHtml(S)};s.renderString=function(D){var C=0;if(!D){return""}var E=function(L){var F="";while(C":F+=">";break;case"[":var K=D.indexOf("|",C);if(K>C){var H=D.substring(C+1,K);C=K+1;F+=E(H)}else{C++;F+=E()}break;case"]":if(L==undefined){return"["+F+"]"}var G=L.trim().replace(/\s/g,",").split(",");var J="";var I="";for(x in G){switch(G[x]){case"b":J+="s-b ";break;case"u":J+="s-u ";break;case"i":J+="s-i ";break;case"s":J+="s-s ";break;case"pre":J+="s-pre ";break;default:I=G[x].replace(/[^#0-9a-z]/gi,"")}}return""+F+"";default:F+=M}C++}return F};return n.trustAsHtml(E(D).replace(/\:fa-([a-z0-9\-\s]*)\:/gi,function(F){return''}))};s.renderTask=function(C){var F=s.getCommandById(C.c);var E;if(!F){E=C.c+"(";for(i in C.p){E+=(parseInt(i)?", ":"")+s.renderOperand(C.p[i])}E+=")"}else{E=!F.d?F.n:F.d.replace(/\{(\d)\}/g,function(H,K){var G=parseInt(K);if((G<0)||(!C.p)||(G>=C.p.length)){return" (?) "}var J="";if(F.p[G].t=="duration"){var I=s.getDurationUnitName(C.p[G].vt,true);J=s.renderOperand(C.p[G],true)+" "+I}else{if((C.p[G].t=="c")&&(!!F.p[G].d)&&(C.p[G].c=="false")){J=""}else{J=s.renderOperand(C.p[G],true)}}if(!J){J=""}if(!!J&&!!F.p[G].d){J=(!!C.p[G]&&!!C.p[G].t)?F.p[G].d.replace("{v}",J):""}return J}).replace(/(\{T\})/g,"°"+s.location.temperatureScale);var D=F.i;if(D){E=' '+E}}if(C.m){E+=" (only while "+s.buildLocationModeNameList(C.m)+")"}E+=";";return n.trustAsHtml(E)};s.renderDeviceList=function(D,G,I,J){var C="";var F=[];suffix=(I=="any"?"or":"and");var H="";if(D instanceof Array){if(D.length>1){switch(I){case"any":H="Any of ";break;case"all":H="All of ";break;case"count":H="Count of ";break;case"avg":H="Average of ";break;case"median":H="Median of ";break;case"least":H="Least occurring value of ";break;case"most":H="Most occurring value of ";break;case"stdev":H="Standard deviation of ";break;case"min":H="Minimum of ";break;case"max":H="Maximum of ";break;case"variance":H="Variance of ";break}if(!J){H=H.toLowerCase()}}for(deviceIndex in D){var E=s.getDeviceById(D[deviceIndex]);if(E){F.push({n:E.n,a:E.an,t:"dev"})}else{F.push({n:"{"+D[deviceIndex]+"}",t:"var"})}}if(F.length){C=H+s.buildNameList(F,suffix,"dev","",!!G,true)}}return n.trustAsHtml(C)};s.validatePiston=function(G){var C=0;var H=0;var D={};var F=function(I,J){if(!I){return}I.w=I.w?I.w:[];I.w.push(J)};var E=function(J,K,I,M){var L=M+1;if(J instanceof Array){for(i in J){J[i]=E(J[i],K,I,L)}return J}if(J instanceof Object){for(property in J){J[property]=E(J[property],J,J.vt?J.vt:J.t,L)}if(!!J.t){delete (J.w);switch(J.t){case"every":if(L>3){F(J,"Timers are designed to be top-level statements and should not be used inside other statements. If you need a conditional timer, please look into using a while loop instead.")}break;case"on":if(L>3){F(J,"On event statements are designed to be top-level statements and should not be used inside other statements.")}break}}}return J};G=E(G,"piston",null,0);s.warnings=D;return G};s.compilePiston=function(J,E,H){var H=H?H:{};var D=0;var F={};var C=function(K,M){if(!E){return(!!H[K]&&!!H[K].id)?H[K].id:K}if(!K){return""}var N;if(H[K]){var L=H[K];N=L.key;if(M&&M.a&&(M.a instanceof Array)&&L.value&&L.value.a&&(L.value.a instanceof Array)){for(a in M.a){if(L.value.a.indexOf(M.a[a])<0){L.value.a.push(M.a[a])}}}}else{N=":"+("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"+D).substr(-32)+":";D++;H[K]={key:N,value:M}}return N};var I=function(K,L){if(!K){return}K.w=K.w?K.w:[];K.w.push(L)};var G=function(M,V,Q){if(M instanceof Array){for(i in M){M[i]=G(M[i],V,Q)}return M}if(M instanceof Object){if(M.exp){delete (M.exp)}if(E){switch(M.vt){case"phone":var L=M.c?M.c.split(/,;\*\|/):[];var W=[];for(p in L){W.push(C(L[p],{t:"phone"}))}M.c=W.join(",");M.e="";break;case"contact":case"contacts":var U=M.c?(M.c instanceof Array?M.c:M.c.split(/,;\*|/)):[];var S=[];for(c in U){S.push(C(U[c],{t:"contact"}))}M.c=(M.c instanceof Array)?S:S[0];M.e="";break;case"uri":M.c=C(M.c,{t:"uri"});M.e="";break}}delete (M.w);for(property in M){var T=M[property];if((T===false)||(T===null)||(T==="")){delete (M[property])}else{M[property]=G(M[property],M,M.vt?M.vt:M.t)}}if(!E&&!!M&&!!M.t&&!!M.vt&&((M.t=="c")||(M.t=="e"))){switch(M.t){case"c":M.exp=s.parseString(M.c,M.vt);break;case"e":M.exp=s.parseExpression(M.e,false,M.vt);break}}return M}var R=M?M.toString():"";if(R.startsWith(":")&&R.endsWith(":")){if(E){var K=s.getDeviceById(M);if(K){M=C(M,{t:"device",n:K.an,a:!!V&&!!V.a&&(V.a.length>1)?[V.a]:[]});return M}var O=s.getLocationModeById(M);if(O){switch(O){case"Home":case"Night":case"Sleep":case"Away":case"Vacation":break;default:O="Custom Mode"}M=C(M,{t:"mode",n:O});return M}var P=s.getRoutineById(M);if(P){M=C(M,{t:"routine"});return M}var N=s.getContactById(M);if(N){M=C(M,{t:"contact"});return M}}M=C(M,{t:"unknown"});return M}return M};J=G(s.copy(J),"piston");J.l={};for(l in H){J.l[H[l].key]=H[l].value}s.warnings=F;return J};s.determineDeviceType=function(C){return u.determineDeviceType(C)};s.anonymizeDevices=function(E){var D={};for(i in E){var G=E[i];var F=u.determineDeviceType(G).replace(/([A-Z])/g," $1").replace(/^./,function(H){return H.toUpperCase()}).replace("Rgb ","RGB ");var C=D[F]?D[F]+1:1;D[F]=C;E[i].an=F+" "+C}return E};s.anonymizeContacts=function(G){var E={};for(i in G){var D=G[i];var F="John Doe";var C=E[F]?E[F]+1:1;E[F]=C;G[i].an=F+" "+C}return G};s.breakList=function(C){return C.replace(/,/g,"
")};var k=function(D){var E=D.getFullYear();var F=(1+D.getMonth()).toString();F=F.length>1?F:"0"+F;var C=D.getDate().toString();C=C.length>1?C:"0"+C;return F+"/"+C+"/"+E};s.getMonth=function(C){if(C){return["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"][C.getMonth()]}};s.getDay=function(C){if(C){return("0"+C.getDate()).substr(-2)}};s.timeSince=timeSince;s.timeCounter=timeCounter;s.timeLeft=timeLeft;s.currentTime=currentTime;s.tap=function(C){u.tap(C).then(function(D){})};s.test=function(){u.testPiston(s.pistonId)};s.togglePiston=function(E,D){if((!E)&&(!s.viewerPiston||!s.viewerPiston.app)){return}var F=E?E.i:s.pistonId;if(F){z.cancel(tmrRefresh);var C=!(E?E.e:s.viewerPiston.app.enabled);if(E){E.e=C}else{s.viewerPiston.app.enabled=C}if(C){u.resumePiston(F).then(function(G){s.onRefresh(G)})}else{u.pausePiston(F).then(function(G){s.onRefresh(G)})}}if(D&&e.preventDefault){D.preventDefault()}if(D&&D.stopPropagation){D.stopPropagation()}};s.configurePiston=function(C){s.configuredPistonId=s.configuredPistonId==C.i?null:C.i};s.showPiston=function(C){document.body.scrollTop=0;s.viewerPiston=null;s.pistonId=C.i;s.refresh();window.onSwipeRight=s.hidePiston};s.hidePiston=function(){document.body.scrollTop=0;s.pistonId=null;window.onSwipeRight=null};s.prepareActions=function(E){var G=[];var C=[];var J=[];var K=(E.id<=0);var F=s.viewerPiston.tasks;var I=s.viewerPiston.app.actions;for(action in I){if(I[action].pid==E.id){if(I[action].t){var H=I[action].t;for(t in H){var D=0;for(task in F){if((F[task].type=="cmd")&&(F[task].ownerId==I[action].id)&&(F[task].taskId==H[t].i)){if((D==0)||(D>F[task].time)){D=F[task].time}}}H[t].time=D}}if(K){G.push(I[action])}else{if(I[action].rs==false){J.push(I[action])}else{C.push(I[action])}}}}var D=0;for(task in F){if((F[task].type=="evt")&&(F[task].ownerId==E.id)){if((D==0)||(D>F[task].time)){D=F[task].time}}}E.time=D;E.actions=G;E.trueActions=C;E.falseActions=J;E.$scope=s;if(E.children){for(child in E.children){s.prepareActions(E.children[child])}}};s.hadRecentActivity=function(C){return C&&C.le&&C.le.event&&C.le.event.date&&(timeLeft((new Date(C.le.event.date)).getTime())>-120)};s.toggleViewerOptions=function(){s.viewerPiston.showOptions=!s.viewerPiston.showOptions};s.getSecondaryStatementName=function(){var C=s.viewerPiston.app.mode;switch(C){case"Latching":return"BUT IF";case"Then-If":return"THEN IF";case"Else-If":return"ELSE IF";case"Or-If":return"OR IF";case"And-If":return"AND IF"}return"IF"};s.serializeObject=function(C){return angular.toJson(C)};s.anonymizeObject=function(C,F){var E=s.serializeObject(C);var D=E.match(/(:[a-f0-9]{32}:)/g);if(D){D=D.unique()}for(i in D){E=E.replace(new RegExp(D[i],"g"),("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"+i).substr(-32))}return(F?E:angular.fromJson(E))};s.objectToBlob=function(G,N){N=N||"";var D=1024;var K=utoa(s.serializeObject(G));K+="|"+K.length.toString();var M=K.length;var J=Math.ceil(M/D);var L=new Array(J);for(var E=0;EY){var ab=O.slice(Y,K-1);var aa=parseFloat(ab.trim());if(!isNaN(aa)&&(L.test(ab.trim()))){S.push({t:(ab.indexOf(".")>=0?"decimal":"integer"),v:aa,l:Q(Y,K-2)});return true}if(typeof ab=="string"){if(["true","false"].indexOf(ab)>=0){S.push({t:"boolean",v:ab,l:Q(Y,K-2)})}else{S.push({t:"variable",x:ab,l:Q(Y,K-2)})}return true}S.push({t:"operand",v:O.slice(Y,K-1),l:Q(Y,K-2)});return true}return false}function T(ac){if(K-(ac?0:1)>Y){var ab=O.slice(Y,K-1);var aa=parseFloat(ab.trim());if((P!="phone")&&!isNaN(aa)&&(L.test(ab.trim()))){S.push({t:(ab.indexOf(".")>=0?"decimal":"integer"),v:aa,l:Q(Y,K-2)});return true}S.push({t:(["true","false"].indexOf(ab)>=0?"boolean":"string"),v:(ab=="null"?null:ab),l:Q(Y,K-2)})}}function W(){if(K-1>Y){var af=O.slice(Y,K-1);var ag=af.lastIndexOf(":");var ac=af;var ae="";if(ag>0){var ac=af.substr(0,ag).trim();ae=af.substr(ag+1).trim()}var ad=s.getDeviceByName(ac);if(ad&&ad.id){var ab=ae.toLowerCase();ae="";for(attributeIndex in ad.a){var aa=ad.a[attributeIndex];if(ab==aa.n.toLowerCase()){ae=aa.n}}if(!!ab&&!ae){ae="?"}S.push({t:"device",id:ad.id,a:ae,l:Q(Y-1,K-1)})}else{S.push({t:"device",x:ac,a:ae,l:Q(Y-1,K-1)})}}}function X(){var ac=O.slice(Y,K-1).toLowerCase();if(s.db.functions[ac]){G++;var ad=I();var aa=[];var ab=null;for(p in ad){if(!ab){ab={t:"expression",i:[]}}if((ad[p].t=="operator")&&(ad[p].o==",")){aa.push(ab);ab={t:"expression",i:[]}}else{ab.i.push(ad[p])}}if(ab){aa.push(ab)}S.push({t:"function",n:ac,i:aa,l:Q(Y,K-1)});G--}else{V();S.push({t:"expression",i:I(),l:Q(Y,K-1)});Y=K}}while(K":case"?":case":":if(J&&!D&&!E&&!H){var U=(K=","<=","<>","<<",">>"].indexOf(Z+U)>=0){K++;Z+=U}S.push({t:"operator",o:Z,l:Q(K-1,K-1)});Y=K}continue;case'"':if(J&&!D&&!E){H=!H;(H?V():T(true));Y=K}continue;case"'":if(J&&!H&&!D){E=!E;(E?V():T(true));Y=K}continue;case"(":if(J&&!D&&!H&&!E){C++;X();Y=K}continue;case")":if(J&&!D&&!H&&!E){C--;V();Y=K;return S}continue;case"[":if(J&&!H&&!E&&!D){D=true;V();Y=K}continue;case"]":if(J&&D&&!H&&!E){W();D=false;Y=K}continue;case"{":if(J==M){J++;T();Y=K;S.push({t:"expression",i:I(),l:Q(Y-1,K-1)});Y=K}else{J++;Y=K;S.push({t:"expression",i:I(),l:Q(Y-1,K-1)});Y=K}continue;case"}":V();J--;return S;continue}}K++;J?V():T();return S}var N=I();var R={t:"expression",i:N,str:O};if(J!=M){R.err="Invalid expression closure termination"}else{if(E){R.err="Invalid single quote termination"}else{if(H){R.err="Invalid double quote termination"}else{if(C){R.err="Invalid parenthesis closure termination"}}}}R.ok=!R.err;if(R.ok){R.ok=s.validateExpression(R)}return R};s.validateExpression=function(H){var E="";var C="";var G="";function D(J,M,L){if(!J){return""}J=J.toString().split(":");var N=parseInt(J[0]);var I=(J.length==2)?parseInt(J[1]):N;var K=H.str.substr(N,I-N+1);if((K.substr(0,1)=="[")&&(K.substr(-1,1)=="]")){K=K.substr(1,K.length-2)}if(M){K=K.split(M);if(L>=K.length){return""}return K[L].trim()}return K.trim()}function F(K){var I=true;var J="";var L="";if(K.i){for(subitem in K.i){I=I&&F(K.i[subitem])}}else{switch(K.t){case"device":if(!K.x&&!K.id){I=false;J="Invalid device "+D(K.l,":",0);L=K.l;break}if(!K.id&&K.x&&!((s.systemVars&&scope.systemVars[K.x])||(s.globalVars&&s.systemVars[K.x])||s.getVariableByName(K.x))){I=false;J="Invalid device variable "+D(K.l,":",0);L=K.l;break}if(K.a=="?"){I=false;J="Invalid attribute "+D(K.l,":",1);L=K.l;break}break;case"variable":if(K.x.startsWith("$args.")&&(K.x.length>6)){break}if(K.x.startsWith("$response.")&&(K.x.length>10)){break}if(s.systemVars&&s.systemVars[K.x]){break}if(s.globalVars&&s.globalVars[K.x]){break}if(!s.getVariableByName(K.x)){I=false;C=D(K.l);J="Variable "+C+" not found";L=K.l;break}break}}K.ok=I;if(J){K.err=J;if(!E){E=J;G=L}}return I}F(H);if(E){H.err=E;H.errVar=C;H.loc=G}return H.ok};s.hexToHsl=function(D){var J=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(D);if(!J){return{h:0,s:0,l:0}}var C=0+parseInt(J[1],16)/255;var H=0+parseInt(J[2],16)/255;var K=0+parseInt(J[3],16)/255;var L=Math.max(C,H,K),F=Math.min(C,H,K);var G,M,E=(L+F)/2;if(L==F){G=M=0}else{var I=L-F;M=(E>0.5)?I/(2-L-F):I/(L+F);switch(L){case C:G=(H-K)/I+(H',link:function(f,g,e){var b=f.members;var c=g.find("textarea");var h=new a(c,[{match:/(\b)(\w{2,})$/,search:function(j,k){k($.map(b,function(l){return l.toLowerCase().indexOf(j.toLowerCase())===0?l:null}))},index:2,replace:function(j){return"$1"+j+" "}}]);if(f.callback){f.$watch("message",function(k,j){f.callback()})}$(h).on({"textComplete:select":function(k,j){f.$apply(function(){f.message=j})},"textComplete:show":function(j){$(this).data("autocompleting",true)},"textComplete:hide":function(j){$(this).data("autocompleting",false)}})}}}]);app.directive("masonry",["$parse",function(a){return{restrict:"AC",link:function(g,h,e){g.items=[];var b=h[0];var c=angular.extend({itemSelector:"tile"},JSON.parse(e.masonry));var f=g.masonry=new Masonry(b,c);var j=0;g.update=function(){if(j){window.clearTimeout(j)}j=window.setTimeout(function(){j=0;f.reloadItems();f.layout();h.children(c.itemSelector).css("visibility","visible")},120)};g.update()}}}]).directive("masonryTile",function(){return{restrict:"AC",link:function(a,c){c.css("visibility","hidden");var b=c.parent("*[masonry]:first").scope(),e=b.update;imagesLoaded(c.get(0),e);c.ready(e)}}});app.directive("tileHeight",function(){var a={restrict:"A",link:function(g,h,b,c,e){var f=1;if(b.tileHeight){f=b.tileHeight}var j=function(){var k=h[0].parentElement.offsetWidth/Math.round(h[0].parentElement.offsetWidth/h[0].offsetWidth)*f;h.outerHeight(k)};g.$watch(b.tileHeight,function(k){f=1*k;j()});$(window).resize(j);j();g.$on("$destroy",function(){$(window).unbind("resize",j)})}};return a});app.directive("help",function(a){return function(f,c,b){var g=b.help?b.help:c.text();var e=angular.element("');c.append(a(e)(f))}});app.directive("script",function(){return{restrict:"E",scope:false,link:function(b,e,a){if(a.type==="text/javascript"){var c=e.text();var g=new Function(c);g()}}}});app.directive("devData",function(a){return function(e,c,b){var f=function(j,h,g){var k=a(g.devData)(j);if(k){for(attr in k){h.attr("data-"+attr,k[attr])}}};e.$watch(b.devData,function(){f(e,c,b)})}});app.filter("orderObjectBy",function(){return function(a,e,c){var b=[];angular.forEach(a,function(g,f){b.push(Object.assign({id:f},g))});b.sort(function(g,f){return(g[e]>f[e]?1:-1)});if(c){b.reverse()}return b}});var config=app.config(["$routeProvider","$locationProvider","$sceDelegateProvider","$rootScopeProvider",function(b,a,f,e){e.digestTtl(10000);var c=".module.css";f.resourceUrlWhitelist(["self",cdn+"**"]);b.when("/",{templateUrl:cdn+theme+"html/modules/dashboard.module.html",controller:"dashboard",css:cdn+theme+"css/modules/dashboard"+c}).when("/register",{templateUrl:cdn+theme+"html/modules/register.module.html",controller:"register",css:cdn+theme+"css/modules/register"+c}).when("/init/:init",{redirectTo:function(g){app.initialInstanceUri=atou(g.init);return"/"}}).when("/piston/:pistonId",{templateUrl:cdn+theme+"html/modules/piston.module.html",controller:"piston",css:cdn+theme+"css/modules/piston"+c,reloadOnSearch:false}).when("/fuel",{templateUrl:cdn+theme+"html/modules/fuel.module.html",controller:"fuel",css:cdn+theme+"css/modules/fuel"+c}).when("/init/:instId1/:instId2",{redirectTo:function(g){app.initialInstanceUri=g.instId1+g.instId2;return"/"}}).otherwise({redirectTo:"/"});a.html5Mode(true)}]);config.factory("dataService",["$http","$location","$rootScope","$window","$q",function(J,o,q,u,E){var A={};var t="";var b=null;var I={};var G=null;var h={};var m={};var n="N7zqL6a8Texs4wY5y&y2YPLzus+_dZ%s";var x=n;var C=null;var e=null;var l=null;var D={};var K=1;var k=false;if(localforage){localforage.config({name:"webCoRE"});localforage.keys().then(function(L){K=L.length;if(K){localforage.iterate(function(O,N,M){D[N]=H(O);K--;if(!K&&!k){c()}})}else{c()}})}var p=function(L){return JSON.parse(L)};var B=function(L,N,M){return Array(N-String(L).length+1).join(M||"0")+L};var s=function(L){return B(L.getFullYear(),4)+"-"+B(1+L.getMonth(),2)+"-"+B(L.getDate(),2)+" "+B(L.getHours(),2)+":"+B(L.getMinutes(),2)+":"+B(L.getSeconds(),2)};var w=function(L){return JSON.stringify(L)};var v=function(N,L){try{return utoa(u.sjcl.encrypt(L?L:x,angular.toJson(N),{ks:256}))}catch(M){return null}};var H=function(M,L){try{return angular.fromJson(u.sjcl.decrypt(L?L:x,atou(M)))}catch(N){return null}};var z=function(L,N,M){localforage.setItem("core:"+L,v(N,M));D["core:"+L]=N;return};var g=function(L,M){return D["core:"+L]};var j=function(L){b=L;I[b.id]=b;z("locations",I);return b};var a=function(N){var M=(!G);if(!G||(G.id!=N.id)){G=N}var L=m[G.id];if(!L){L={}}L.token=N.token?N.token:L.token;L.uri=N.uri?N.uri.replace(":443",""):L.uri;m[G.id]=L;delete (G.token);delete (G.uri);if(N.contacts){G.contacts=N.contacts}G.contacts=G.contacts?G.contacts:(h[G.id]&&h[G.id].contacts?h[G.id].contacts:[]);if(N.devices){G.devices=N.devices;M=true}G.devices=G.devices?G.devices:(h[G.id]&&h[G.id].devices?h[G.id].devices:[]);G.pistons=N.pistons;G.globalVars=N.globalVars;G.coreVersion=N.coreVersion;G.name=N.name;G.settings=N.settings;if(M&&G.devices){for(d in G.devices){G.devices[d].t=A.determineDeviceType(G.devices[d])}}G.virtualDevices=G.virtualDevices||{};h[G.id]=G;z("instances",h);z("store",m);z("instance",G.id,n);if((G.coreVersion)&&(version()!=G.coreVersion)){if(version()>G.coreVersion){y("A newer SmartApp version ("+version()+") is available, please update and publish all the webCoRE SmartApps in the SmartThings IDE.")}else{y("A newer UI version ("+G.coreVersion+") is available, please hard reload this web page to get the newest version.")}}return G};var y=function(L){if(C){C(L)}};var r=function(L){if(!L){return""}return L.replace(/([\uD83C-\uDBFF][\uDC00-\uDFFF])/g,function(M){return":"+encodeURIComponent(M)+":"})};var f=function(L){if(!L){return""}return L.replace(/(\:%[0-9A-F]{2}%[0-9A-F]{2}%[0-9A-F]{2}%[0-9A-F]{2}\:)/g,function(M){return decodeURIComponent(M.substr(1,12))})};A.openWebSocket=function(O){if(O&&G){l=O;if(e){return e}var N=G.id;var L=m[G.id];if(!L){L={}}var M=(L&&L.uri&&L.uri.startsWith("https://graph-eu"))?"eu":"us";e=new WebSocket("wss://api-"+M+"-"+N[32]+".webcore.co:9297");e.onopen=function(P){e.send(G.id)};e.onclose=function(P){e=null;if(l){setTimeout(function(){A.openWebSocket(l)},5000)}};e.onmessage=function(P){if(l){try{l(P)}catch(Q){}}};e.onerror=function(P){e=null;if(l){setTimeout(function(){A.openWebSocket(l)},5000)}};return e}else{l=null;e.close();e=null}};A.closeWebSocket=function(){A.openWebSocket(null)};A.ready=function(){return !!k};A.logout=function(){return localforage.clear()};A.setStatusCallback=function(L){C=L};A.saveToStore=function(L,M){return z(L,M)};A.loadFromStore=function(L){return g(L)};A.deleteFromStore=function(L){return localforage.removeItem("core:"+L)};A.loadFromStore=function(L){return g(L)};A.deleteInstance=function(L){if(L){if(L==G){G=null;z("instance",null,n)}delete (m[L.id]);delete (h[L.id]);z("instances",h);z("store",m)}};A.listLocations=function(){var L=[];for(lid in I){L.push(JSON.parse(JSON.stringify(I[lid])))}return L};A.getLocation=function(L){if(L){for(lid in I){if(lid==L){return JSON.parse(JSON.stringify(I[lid]))}}}else{return JSON.parse(JSON.stringify(b))}return null};A.listInstances=function(M){var L=[];for(iid in h){if(!M||(h[iid].locationId==M)){L.push(JSON.parse(JSON.stringify(h[iid])))}}return L};A.getInstanceCount=function(M){var L=0;for(iid in h){if(!M||(h[iid].locationId==M)){L++}}return L};A.getInstance=function(L){if(G&&!L){return G}if(G&&(G.id==L)){return G}if(L){for(iid in h){if(iid==L){return JSON.parse(JSON.stringify(h[iid]))}}}else{try{return JSON.parse(JSON.stringify(G?G:(h?h[g("instance")]:null)))}catch(M){}}return null};A.getPistonInstance=function(L){for(iid in h){for(i in h[iid].pistons){if(h[iid].pistons[i].id==L){return JSON.parse(JSON.stringify(h[iid]))}}}return null};A.loadInstance=function(O,M,L,R){var N=O?m[O.id]:null;var Q=!O||!(O.devices instanceof Object)||!(Object.keys(O.devices).length)?0:(O.deviceVersion?O.deviceVersion:0);if(!N){if((app.initialInstanceUri&&app.initialInstanceUri.length)||(M&&M.length)){M=app.initialInstanceUri?app.initialInstanceUri:M;if(M&&!(M instanceof Object)&&(M.length>=69)){var T=M.substr(0,M.length-64);if(!T.endsWith(".com")){T+=".api.smartthings.com"}M=M.substr(0,8)=="https://"?M:"https://"+T+"/api/token/"+M.substr(-64,8)+"-"+M.substr(-56,4)+"-"+M.substr(-52,4)+"-"+M.substr(-48,4)+"-"+M.substr(-44,12)+"/smartapps/installations/"+M.substr(-32,8)+"-"+M.substr(-24,4)+"-"+M.substr(-20,4)+"-"+M.substr(-16,4)+"-"+M.substr(-12)+"/"}N={uri:M};for(id in m){if(m[id].uri==M){N=m[id];if(h&&h[id]&&h[id].devices instanceof Object&&Object.keys(h[id].devices).length&&h[id].deviceVersion){Q=h[id].deviceVersion}break}}}}delete (app.initialInstanceUri);if(!N){var S=g("instance");if(S){N=m[S];if(h&&h[S]&&h[S].devices instanceof Object&&Object.keys(h[S].devices).length&&h[S].deviceVersion){Q=h[S].deviceVersion}}}if(!N){o.path("/register")}else{var P=document.getElementById("error");if(P){P.parentNode.removeChild(P)}}return J.jsonp((N?N.uri:"about:blank/")+"intf/dashboard/load?token="+(N&&N.token?N.token:"")+(L?"&pin="+L:"")+"&dashboard="+(R?1:0)+"&dev="+Q,{jsonpCallbackParam:"callback"}).then(function(U){var V=U.data;if(V.now){adjustTimeOffset(V.now)}if(V.error&&N){V.uri=N.uri}if(V.location){j(V.location)}if(V.instance){V.instance=a(V.instance)}return V},function(U){})};A.tap=function(L){return J({method:"GET",url:"tap/"+L})};A.getApiUri=function(){var L=A.getInstance();si=m?m[L.id]:null;return si?si.uri:null};A.refreshDashboard=function(){var M=A.getInstance();si=m&&M?m[M.id]:null;var L=!M||!(M.devices instanceof Object)||!(Object.keys(M.devices).length)?0:(M.deviceVersion?M.deviceVersion:0);y("Loading dashboard...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/refresh?token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){data=N.data;return data},function(N){return null})};A.getPiston=function(O){var N=A.getPistonInstance(O);if(!N){N=A.getInstance()}si=m&&N?m[N.id]:null;var M=!N||!(N.devices instanceof Object)||!(Object.keys(N.devices).length)?0:(N.deviceVersion?N.deviceVersion:0);var L=g("db.version",n);y("Loading piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/get?id="+O+"&db="+L+"&token="+(si&&si.token?si.token:"")+"&dev="+M,{jsonpCallbackParam:"callback"}).then(function(P){data=P.data;if(data.now){adjustTimeOffset(data.now)}if(data.dbVersion){z("db.version",data.dbVersion,n);z("db",data.db);y("Database updated to version "+data.dbVersion)}else{data.db=g("db");y()}if(data.location){j(data.location)}if(data.instance){data.instance=a(data.instance)}return data},function(P){return null})};A.getActivity=function(N,L){var M=A.getPistonInstance(N);if(!M){M=A.getInstance()}si=m?m[M.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/activity?id="+N+"&log="+(L?L:0)+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(O){return O.data})};A.generateBackupBin=function(M,N){var L=A.getInstance();return J({method:"POST",url:"https://api.webcore.co/bins/"+(N?"":md5(L.account.id)),data:M?(N?{d:v(M,n)}:{e:v(M,n+L.account.id)}):{},transformResponse:function(O){try{O=JSON.parse(O);if(O&&O.bin){return O.bin}if(O&&O.uri){O=O.uri.split("/");if(O&&O.length){return O[O.length-1]}}}catch(P){}return null}})};A.saveToBin=function(N,M){y("Saving piston to backup bin...");var L=A.getInstance();if(L&&L.account&&L.account.id){M={e:v(M,n+L.account.id)}}else{M={};N=null}return J({method:"PUT",url:"https://api.webcore.co/bins/"+md5(L.account.id)+"/"+N,data:M,transformResponse:function(O){y("Backup bin updated");return true}})};A.loadFromBin=function(N,L){y("Loading piston from backup bin...");var M=A.getInstance();if(!(M&&M.account&&M.account.id)){N=null}return J({method:"GET",url:"https://api.webcore.co/bins/"+(L?md5(M.account.id)+"/":"")+N,transformResponse:function(O){if(N){try{O=JSON.parse(O);if(O&&O.e){return H(O.e,n+M.account.id)}if(O&&O.d){return H(O.d,n)}y()}catch(P){y("Sorry, an error occurred while importing the backup bin")}}return null}})};A.generateNewPistonName=function(){var L=A.getInstance();si=m?m[L.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/new?token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(M){return M.data})};A.createPiston=function(L,M,O){var N=A.getInstance();si=m?m[N.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/create?author="+encodeURIComponent(M)+"&name="+encodeURIComponent(L)+"&bin="+encodeURIComponent(O?O:"")+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(P){return P.data})};var F=function(M,O,L,N){if(LL){var P=[].concat.apply([],M.split("").map(function(R,S){return S%L?[]:M.slice(S,S+L)},M));y("Preparing to save chunked piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/set.start?id="+O.id+"&chunks="+P.length.toString()+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(R){if(R&&(R.status==200)&&R.data&&(R.data.status=="ST_READY")){return F(si,P,0,Q)}})}else{y("Saving piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/set?id="+O.id+"&data="+M+"&bin="+encodeURIComponent(Q)+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(R){y();return R})}};A.setPistonLogging=function(L,N){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Setting piston logging level to "+N+"...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/logging?id="+L+"&level="+N+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(O){y();return O.data})};A.pausePiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Pausing piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/pause?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){y();return N.data})};A.resumePiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Resuming piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/resume?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){y();return N.data})};A.testPiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;y("Testing piston...");return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/test?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){y();return N.data})};A.deletePiston=function(L){var M=A.getPistonInstance(L);if(!M){M=A.getInstance()}si=m?m[M.id]:null;return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/delete?id="+L+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(N){return N.data})};A.setVariable=function(L,O){var N=A.getInstance();si=m?m[N.id]:null;var M=O?utoa(angular.toJson(O)):"";return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/variable/set?name="+L+"&value="+M+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(P){return P.data})};A.setSettings=function(L){var N=A.getInstance();si=m?m[N.id]:null;var M=L?utoa(angular.toJson(L)):"";return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/settings/set?settings="+M+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(O){return O.data})};A.evaluateExpression=function(M,P,L){var O=A.getPistonInstance(M);if(!O){O=A.getInstance()}si=m?m[O.id]:null;var N=utoa(angular.toJson(P));return J.jsonp((si?si.uri:"about:blank/")+"intf/dashboard/piston/evaluate?id="+M+"&expression="+N+"&dataType="+(L?encodeURIComponent(L):"")+"&token="+(si&&si.token?si.token:""),{jsonpCallbackParam:"callback"}).then(function(Q){return Q.data})};A.registerDashboard=function(L){return J.post("https://api.webcore.co/dashboard/register/"+L).then(function(M){return M.data})};A.listFuelStreams=function(){var L=A.getInstance();if(L){var P=L.id;var M=m[L.id];if(!M){M={}}var O=(M&&M.uri&&M.uri.startsWith("https://graph-eu"))?"eu":"us";var N={method:"POST",url:"https://api-"+O+"-"+P[32]+".webcore.co/fuelStreams/list",headers:{"Auth-Token":P},data:{i:P}};return J(N).then(function(Q){return Q.data})}};A.listFuelStreamData=function(M){var L=A.getInstance();if(L){var Q=L.id;var N=m[L.id];if(!N){N={}}var P=(N&&N.uri&&N.uri.startsWith("https://graph-eu"))?"eu":"us";var O={method:"POST",url:"https://api-"+P+"-"+Q[32]+".webcore.co/fuelStreams/get",headers:{"Auth-Token":Q},data:{i:Q,f:M}};return J(O).then(function(R){return R.data})}};A.registerHandler=function(){navigator.registerProtocolHandler("web+core","https://"+window.location.hostname+"/handler/%s","webCoRE")};A.determineDeviceType=function(L){if(L&&L.cn){if(L.cn.indexOf("Water Sensor")>=0){return"waterSensor"}if(L.cn.indexOf("Contact Sensor")>=0){return"contactSensor"}if(L.cn.indexOf("Thermostat")>=0){return"thermostat"}if(L.cn.indexOf("Garage Door Control")>=0){return"garageDoor"}if(L.cn.indexOf("Music Player")>=0){return"musicPlayer"}if(L.cn.indexOf("Door Control")>=0){return"door"}if(L.cn.indexOf("Presence Sensor")>=0){return"presenceSensor"}if(L.cn.indexOf("Motion Sensor")>=0){return"motionSensor"}if(L.cn.indexOf("Color Control")>=0){return"rgbBulb"}if(L.cn.indexOf("Color Temperature")>=0){return"whiteBulb"}if(L.cn.indexOf("Switch Level")>=0){var M=L.n.toLowerCase();if(M.indexOf("light")>=0){return"whiteBulb"}if(M.indexOf("keen")>=0){return"vent"}if(M.indexOf("vent")>=0){return"vent"}return"dimmer"}if(L.cn.indexOf("Lock")>=0){return"lock"}if((L.cn.indexOf("Button")>=0)&&(L.cn.indexOf("Button")>=0)){return"keypad"}if(L.cn.indexOf("Button")>=0){return"button"}if(L.cn.indexOf("Temperature Measurement")>0){return"temperatureSensor"}if((L.cn.indexOf("Switch")>=0)&&(L.cn.indexOf("Power Meter")>=0)){return"outlet"}if(L.cn.indexOf("Switch")>=0){return"switch"}if(L.cn.indexOf("Power Meter")>=0){return"powerMeter"}}return"unknownDevice"};var c=function(){m=g("store");if(!m){m={}}I=g("locations");if(!I){I={}}h=g("instances");if(!h){h={}}k=true;window.ds=A};return A}]);app.run(["$rootScope","$window","$location",function(a,b,c){a.getTime=function(e){if(e){return e.format("h:mmtt")}};a.$on("$viewContentLoaded",function(f){var g=c.path();if(g.startsWith("/init/")){g="/init"}if(g.startsWith("/piston/")){g="/piston"}b.ga("send","pageview",{page:g});var e=null;if(!mobileCheck()){switch(g){case"/":e=[{calltype:"async[2]",publisher:"ady624",width:160,height:600,sid:"Chitika Default"}];break;case"/register":e=[{calltype:"async[2]",publisher:"ady624",width:728,height:90,sid:"Chitika Default"}];break}}if(e){b.CHITIKA={units:e};if(b.CHITIKA_ADS){b.CHITIKA_ADS.make_it_so()}}else{delete (window.CHITIKA)}});a.bytesToSize=function(e){var g=["bytes","kB","MB","GB","TB"];if(e==0){return"0 Byte"}var f=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return(e/Math.pow(1024,f)).toFixed(f==0?0:2)+" "+g[f]}}]);Date.prototype.format=function(x,a){var r=["\x00","January","February","March","April","May","June","July","August","September","October","November","December"];var c=["\x01","Jan.","Feb.","Mar.","Apr.","May","June","July","Aug.","Sept.","Oct.","Nov.","Dec."];var b=["\x02","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var g=["\x03","Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function o(h,f){var m=h+"";f=f||2;while(m.length12?n-12:n==0?12:n;x=x.replace(/(^|[^\\])hh+/g,"$1"+o(z));x=x.replace(/(^|[^\\])h/g,"$1"+z);var u=a?this.getUTCMinutes():this.getMinutes();x=x.replace(/(^|[^\\])mm+/g,"$1"+o(u));x=x.replace(/(^|[^\\])m/g,"$1"+u);var q=a?this.getUTCSeconds():this.getSeconds();x=x.replace(/(^|[^\\])ss+/g,"$1"+o(q));x=x.replace(/(^|[^\\])s/g,"$1"+q);var A=a?this.getUTCMilliseconds():this.getMilliseconds();x=x.replace(/(^|[^\\])fff+/g,"$1"+o(A,3));A=Math.round(A/10);x=x.replace(/(^|[^\\])ff/g,"$1"+o(A));A=Math.round(A/10);x=x.replace(/(^|[^\\])f/g,"$1"+A);var e=n<12?"AM":"PM";x=x.replace(/(^|[^\\])TT+/g,"$1"+e);x=x.replace(/(^|[^\\])T/g,"$1"+e.charAt(0));var p=e.toLowerCase();x=x.replace(/(^|[^\\])tt+/g,"$1"+p);x=x.replace(/(^|[^\\])t/g,"$1"+p.charAt(0));var C=-this.getTimezoneOffset();var k=a||!C?"Z":C>0?"+":"-";if(!a){C=Math.abs(C);var D=Math.floor(C/60);var v=C%60;k+=o(D)+":"+o(v)}x=x.replace(/(^|[^\\])K/g,"$1"+k);var w=(a?this.getUTCDay():this.getDay())+1;x=x.replace(new RegExp(b[0],"g"),b[w]);x=x.replace(new RegExp(g[0],"g"),g[w]);x=x.replace(new RegExp(r[0],"g"),r[j]);x=x.replace(new RegExp(c[0],"g"),c[j]);x=x.replace(/\\(.)/g,"$1");return x};function formatTime(c){try{var a=(new Date(c)).getTime()+(window.timeOffset?window.timeOffset:0);var f=new Date(a);return f.format("h:mm TT")}catch(b){}}function currentTime(){return(new Date()).getTime()+(window.timeOffset?window.timeOffset:0)}function utcToString(a){return(new Date(a)).toLocaleString()}function utcToTimeString(a){return(new Date(a)).toLocaleTimeString()}function utcToDateString(a){return(new Date(a)).toLocaleDateString()}function timeSince(f){if(!f){return"never"}switch(typeof f){case"number":break;case"string":f=+new Date(f);break;case"object":if(f.constructor===Date){f=f.getTime()}break;default:f=+new Date()}var e=[[60,"seconds",1],[120,"1 minute ago","1 minute from now"],[3600,"minutes",60],[7200,"1 hour ago","1 hour from now"],[86400,"hours",3600],[172800,"yesterday","tomorrow"],[604800,"days",86400],[1209600,"last week","next week"],[2419200,"weeks",604800],[4838400,"last month","next month"],[29030400,"months",2419200],[58060800,"last year","next year"],[2903040000,"years",29030400],[5806080000,"last century","next century"],[58060800000,"centuries",2903040000]];var h=(+new Date()+(window.timeOffset?window.timeOffset:0)-f)/1000,b="ago",g=1;if(h==0){return"Just now"}if(h<0){h=Math.abs(h);b="from now";g=2}var a=0,c;while(c=e[a++]){if(h-20){return"pending"}f=true;g=-g}var b="";if(g>86400){b=Math.floor(g/86400).toString()+"d ";g=g%86400}var e=Math.floor(g/3600);var a=Math.floor((g-e*3600)/60);var c=g%60;b+=(e>0?(e<10?"0":"")+e.toString()+":":"")+(a<10?"0":"")+a.toString()+":"+(c<10?"0":"")+c.toString();return b}function timeLeft(c,a){if(!c){return 0}c+=window.timeOffset?window.timeOffset:0;var b=Math.round((c-(new Date().getTime()))/1000);switch(a){case"h":return Math.floor(b/3600);break;case"m":return b>=3600?60:Math.floor(b/60);break;case"s":return b>=60?60:Math.floor(b%60);break}return b}function adjustTimeOffset(a){var b=a-(new Date()).getTime();if(isNaN(window.timeOffset)||(Math.abs(b)v.d)?1:((v.d>w.d)?-1:0)};r.sortByName=function(w,v){return(w.n>v.n)?1:((v.n>w.n)?-1:0)};r.switchInstance=function(w){if(w!=r.instance.id){var v=p.getInstance(w);if(v){r.instance=null;if(j){d.cancel(j)}j=null;r.devices=null;r.init(v);r.closeNavBar()}}};r.$on("$destroy",function(){if(b){d.cancel(b)}if(f){h.cancel(f)}if(j){d.cancel(j)}});r.getDeviceData=function(v){var w={};for(a in v.a){w[v.a[a].n]=v.a[a].v}return w};r.getBatteryLevel=function(v){if(isNaN(v)){return 0}v=Math.floor(v/20);if(v<=0){return 0}if(v>=4){return 4}return v};r.renderString=function(w){var v=0;if(!w){return""}var y=function(F){var z="";while(v":z+=">";break;case"[":var E=w.indexOf("|",v);if(E>v){var B=w.substring(v+1,E);v=E+1;z+=y(B)}else{v++;z+=y()}break;case"]":if(F==undefined){return"["+z+"]"}var A=F.trim().replace(/\s/g,",").split(",");var D="";var C="";for(x in A){switch(A[x]){case"b":D+="s-b ";break;case"u":D+="s-u ";break;case"i":D+="s-i ";break;case"s":D+="s-s ";break;case"pre":D+="s-pre ";break;case"flash":D+="s-flash ";break;default:C=A[x].replace(/[^#0-9a-z]/gi,"")}}return""+z+"";default:z+=G}v++}return z};return m.trustAsHtml(y(w).replace(/\:fa-([a-z0-9\-\s]*)\:/gi,function(z){return''}))};r.onWSUpdate=function(v){if(v.isTrusted&&v.data){try{var y=JSON.parse(v.data);if(y.d&&y.n){var w=r.instance.devices[y.d];if(w){for(a in w.a){if(w.a[a].n==y.n){w.a[a].v=y.v;w.data=r.getDeviceData(w);break}}}}r.$apply()}catch(z){}}};r.getDeviceAttribute=function(y,w){for(a in y.a){var v=y.a[a];if(w==v.n){return v.v}}return""};r.openPiston=function(v){r.loading=true;r.initialized=false;g.path("piston/"+v)};r.newPiston=function(){r.loading=true;p.generateNewPistonName().then(function(v){r.loading=false;r.designer={};r.designer.author=p.loadFromStore("author.handle");r.designer.name=v.name;r.designer.page=0;r.designer.backup=!!p.loadFromStore("backup.auto");r.designer.disclaimer=!r.designer.backup;r.designer.items=[{type:"blank",name:"Create a blank piston",icon:"code",cssClass:"wide btn-default"},{type:"duplicate",name:"Create a duplicate piston",icon:"code",cssClass:"wide btn-info"},{type:"template",name:"Create a piston from a template",icon:"code",cssClass:"wide btn-success"},{type:"restore",name:"Restore a piston using a backup code",icon:"code",cssClass:"wide btn-warning"},{type:"import",name:"Import a piston from an external source",icon:"code",cssClass:"wide btn-danger"}];r.designer.dialog=o.open({template:"dialog-add-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})})};r.movePiston=function(){r.designer={pistons:[],instance:""};r.designer.dialog=o.open({template:"dialog-move-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})};r.movePistons=function(){alert("Sorry, not ready yet")};r.createPiston=function(){var v=function(w){r.closeDialog();r.initialized=false;g.path("piston/"+w.id).search({description:r.designer.description,type:r.designer.type,piston:r.designer.piston,bin:r.designer.bin})};r.loading=true;p.saveToStore("backup.auto",!!r.designer.backup);p.saveToStore("author.handle",r.designer.author);if(r.designer.backup){p.generateBackupBin().then(function(w){var y=w.data;p.createPiston(r.designer.name,r.designer.author,y).then(v)})}else{p.createPiston(r.designer.name,r.designer.author).then(v)}};r.dialogLogIn=function(v,w){if(j){d.cancel(j)}j=null;r.loading=false;r.initialized=false;r.designer={};r.designer.sender=v;r.designer.uri=w;r.designer.dialog=o.open({template:"dialog-auth",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})};r.logOut=function(){p.logout().then(function(){r.loading=true;r.initialized=false;g.path("register")})};r.initAds=function(){d(function(){if(CHITIKA_ADS){CHITIKA_ADS.make_it_so()}},1,false)};r.authenticate=function(){r.closeDialog();r.init(null,r.designer.uri,window.md5("pin:"+r.designer.password));r.designer=null};r.dialogDeleteInstance=function(v){if(v){r.loading=false;r.initialized=false;r.designer={};r.designer.sender=v.locationName+" \\ "+v.name;r.designer.instance=v;r.designer.dialog=o.open({template:"dialog-del-instance",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:r})}};r.deleteInstance=function(){r.closeDialog();p.deleteInstance(r.designer.instance);r.designer=null;r.init()};r.setDesignerType=function(v){r.designer.type=v;r.nextPage()};r.closeDialog=function(){if(r.designer.dialog){r.designer.dialog.close();r.designer.dialog=null}};r.nextPage=function(){r.designer.page++};r.prevPage=function(){if(r.designer.page){r.designer.page--}};r.getOpacity=function(v){if(!v){return 0}v=currentTime()-v;if((v<0)||(v>60000)){return 0}return 1-v/60000};r.breakList=function(v){return v.replace(/,/g,"
")};var u=function(w){var y=w.getFullYear();var z=(1+w.getMonth()).toString();z=z.length>1?z:"0"+z;var v=w.getDate().toString();v=v.length>1?v:"0"+v;return z+"/"+v+"/"+y};r.getMonth=function(v){if(v){return["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"][v.getMonth()]}};r.getDay=function(v){if(v){return("0"+v.getDate()).substr(-2)}};r.timeSince=timeSince;r.timeCounter=timeCounter;r.timeLeft=timeLeft;r.tap=function(v){p.tap(v).then(function(w){})};r.togglePiston=function(y,w){if((!y)&&(!r.viewerPiston||!r.viewerPiston.app)){return}var z=y?y.i:r.pistonId;if(z){d.cancel(tmrRefresh);var v=!(y?y.e:r.viewerPiston.app.enabled);if(y){y.e=v}else{r.viewerPiston.app.enabled=v}if(v){p.resumePiston(z).then(function(A){r.onRefresh(A)})}else{p.pausePiston(z).then(function(A){r.onRefresh(A)})}}if(w&&e.preventDefault){w.preventDefault()}if(w&&w.stopPropagation){w.stopPropagation()}};r.configurePiston=function(v){r.configuredPistonId=r.configuredPistonId==v.i?null:v.i};r.showPiston=function(v){document.body.scrollTop=0;r.viewerPiston=null;r.pistonId=v.i;r.refresh();window.onSwipeRight=r.hidePiston};r.hidePiston=function(){document.body.scrollTop=0;r.pistonId=null;window.onSwipeRight=null};r.prepareActions=function(y){var A=[];var v=[];var D=[];var E=(y.id<=0);var z=r.viewerPiston.tasks;var C=r.viewerPiston.app.actions;for(action in C){if(C[action].pid==y.id){if(C[action].t){var B=C[action].t;for(t in B){var w=0;for(task in z){if((z[task].type=="cmd")&&(z[task].ownerId==C[action].id)&&(z[task].taskId==B[t].i)){if((w==0)||(w>z[task].time)){w=z[task].time}}}B[t].time=w}}if(E){A.push(C[action])}else{if(C[action].rs==false){D.push(C[action])}else{v.push(C[action])}}}}var w=0;for(task in z){if((z[task].type=="evt")&&(z[task].ownerId==y.id)){if((w==0)||(w>z[task].time)){w=z[task].time}}}y.time=w;y.actions=A;y.trueActions=v;y.falseActions=D;y.$scope=r;if(y.children){for(child in y.children){r.prepareActions(y.children[child])}}};r.hadRecentActivity=function(v){return v&&v.le&&v.le.event&&v.le.event.date&&(timeLeft((new Date(v.le.event.date)).getTime())>-120)};r.toggleViewerOptions=function(){r.viewerPiston.showOptions=!r.viewerPiston.showOptions;r.closeNavBar()};r.getSecondaryStatementName=function(){var v=r.viewerPiston.app.mode;switch(v){case"Latching":return"BUT IF";case"Then-If":return"THEN IF";case"Else-If":return"ELSE IF";case"Or-If":return"OR IF";case"And-If":return"AND IF"}return"IF"};r.capturePiston=function(){var v=document.getElementById("viewerPanel");document.body.scrollTop=0;html2canvas(v).then(function(w){r.capturedImage=w.toDataURL("image/png");r.dialogCapture=o.open({template:"dialog-captured-image",className:"ngdialog-theme-default ngdialog-large",disableAnimation:true,scope:r,showClose:true})})};r.determineDeviceType=function(v){return p.determineDeviceType(v)};r.initSocialMedia=function(){c.FB.XFBML.parse()};var s=navigator.userAgent||navigator.vendor||window.opera;if(s.match(/Android/i)){r.android=true}r.url=window.location.href;r.mobile=window.mobileCheck();r.tablet=(!r.mobile)&&(window.mobileOrTabletCheck());r.formatTime=formatTime;r.utcToString=utcToString;r.$$postDigest(function(){c.FB.XFBML.parse()});var k=setInterval(function(){if(p.ready()){clearInterval(k);r.init()}},1)}]);config.controller("register",["$scope","$rootScope","dataService","$timeout","$interval","$location","$sce","$routeParams","ngDialog","$window",function(k,g,i,c,e,d,f,j,h,b){var a=null;k.loading=false;k.code="";k.init=function(){};k.setStatus=function(m){if(a){c.cancel(a)}a=null;k.status=m;if(k.status){a=c(function(){k.setStatus()},10000)}};k.$on("$destroy",function(){if(a){c.cancel(a)}});k.register=function(){k.loading=true;i.registerDashboard(k.code).then(function(m){if(m&&(m.length>=80)&&(m.length<=140)){d.path("/init/"+m)}else{k.setStatus("Sorry, the registration code you provided did not work...")}k.loading=false})};k.init();var l=navigator.userAgent||navigator.vendor||window.opera;if(l.match(/Android/i)){k.android=true}k.url=window.location.href;k.mobile=window.mobileCheck();k.tablet=(!k.mobile)&&(window.mobileOrTabletCheck());k.formatTime=formatTime;k.utcToString=utcToString}]);config.controller("piston",["$scope","$rootScope","dataService","$timeout","$interval","$location","$sce","$routeParams","ngDialog","$window","$animate",function(s,j,u,z,v,h,n,f,m,q,w){var y;var B;var g;var r;s.lastLogEntry=0;s.error="";s.loading=true;s.initialized=false;s.mode="view";s.logging="0";s.data=null;s.error="";s.pistonId=f.pistonId;s.piston=null;s.designer={};s.showAdvancedOptions=false;s.dk="N7zqL6a8Texs4wY5y&y2YPLzus+_dZ%s";s.params=h.search();s.insertIndexes={};s.warnings={};if(s.params){h.search({})}s.stack={undo:[],redo:[]};s.weekDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];s.yearMonths=["January","February","March","April","May","June","July","August","September","October","November","December"];s.render=function(C){if((s.mode=="view")&&(s.view.trace)){if(!r){r=v(s.render,1000)}if(s.trace){}}else{if(r){z.cancel(r)}r=null}};s.setStatus=function(C){if(C){console.log(C)}if(B){z.cancel(B)}B=null;s.status=C;if(s.status){B=z(function(){s.setStatus()},10000)}};s.version=function(){return q.version()};s.encodeEmoji=function(C){if(!C){return""}return C.replace(/([\uD83C-\uDBFF][\uDC00-\uDFFF])/g,function(D){return encodeURIComponent(D)})};s.listAllPistons=function(){var D=[];var C=u.listLocations();for(l in C){var E=u.listInstances(C[l].id);for(i in E){for(p in E[i].pistons){D.push({v:E[i].pistons[p].id,n:C[l].name+" \\ "+E[i].name+" \\ "+E[i].pistons[p].name})}}}return D};s.listAvailableContacts=function(){var D=[];for(i in s.instance.contacts){var C=s.instance.contacts[i];D.push({v:i,n:(C.f+" "+C.l).trim()+(C.p?" (PUSH)":(C.t?" ("+C.t+")":"")),an:C.an})}if(!D.length){D.push({v:"no one",n:"No available contacts"})}return D};s.getPistonName=function(E){var C=u.listLocations();for(l in C){var D=u.listInstances(C[l].id);for(i in D){for(p in D[i].pistons){if(D[i].pistons[p].id==E){return C[l].name+" \\ "+D[i].name+" \\ "+D[i].pistons[p].name}}}}return E};s.getLifxSceneName=function(C){if(!s.instance.settings.lifx_scenes){return C}var D=s.instance.settings.lifx_scenes[C];if(!D){return C}return D};s.getModeName=function(C){for(modeIndex in s.location.modes){if(s.location.modes[modeIndex].id==C){return s.location.modes[modeIndex].name}}return C};s.updateActivity=function(C){if(s.$$destroyed){return}if(s.mode!="view"){return}if(g){z.cancel(g)}if(C){g=z(s.updateActivity,10000);return}u.getActivity(s.pistonId,s.lastLogEntry).then(function(D){if(s.$$destroyed){return}if(D.error=="ERR_INVALID_ID"){s.home();return}if(D&&D.activity){if(D.activity.state){s.state=D.activity.state}if(D.activity.logs&&D.activity.logs.length){s.logs=D.activity.logs.concat(s.logs)}if(D.activity.trace){s.trace=D.activity.trace}if(D.activity.localVars){s.localVars=D.activity.localVars}if(D.activity.memory){s.memory=D.activity.memory}if(D.activity.lastExecuted){s.lastExecuted=D.activity.lastExecuted}if(D.activity.nextSchedule){s.nextSchedule=D.activity.nextSchedule}if(D.activity.schedules){s.schedules=D.activity.schedules}if(D.activity.name){s.meta.name=D.activity.name}if(s.logs&&s.logs.length){s.lastLogEntry=s.logs[0].t}if(D.activity.globalVars){s.updateGlobalVars(D.activity.globalVars)}}g=z(s.updateActivity,3000)})};s.updateGlobalVars=function(C){s.globalVars=s.globalVars instanceof Object?s.globalVars:{};for(varName in C){var D=C[varName].t;var F=C[varName].v;var E=s.globalVars[varName];if(!E){s.globalVars[varName]={t:D,v:F}}else{if(E.t!=D){E.t=D}if(E.v!=F){E.v=F}}}for(varName in s.globalVars){if(!C[varName]){delete (s.globalVars[varName])}}};s.init=function(){if(s.$$destroyed){return}u.setStatusCallback(s.setStatus);s.loading=true;if(s.piston){s.loading=true}u.getPiston(s.pistonId).then(function(C){if(s.$$destroyed){return}try{var D=s.piston?!!s.showOptions:false;if(!C||!C.data||!C.data.piston){s.error=n.trustAsHtml("Sorry, an error occurred while retrieving the piston data.");s.loading=false;return}s.piston=C.data.piston;s.validatePiston(s.piston);s.meta=C.data.meta?C.data.meta:{};s.db=C.db;s.location=u.getLocation();s.instance=u.getInstance();s.view=u.loadFromStore("view")||{variables:false,elseIfs:false,restrictions:false,whens:false,advancedStatements:false};s.subscriptions=C.data.subscriptions?C.data.subscriptions:{};s.logs=C.data.logs?C.data.logs:[];s.lastLogEntry=(s.logs&&s.logs.length)?s.logs[0].t:0;s.stats=C.data.stats?C.data.stats:{};s.state=C.data.state?C.data.state:"";s.trace=C.data.trace?C.data.trace:{};s.logging=""+(C.data.logging?C.data.logging:0);s.memory=C.data.memory?C.data.memory:0;s.lastExecuted=C.data.lastExecuted;s.nextSchedule=C.data.nextSchedule;s.schedules=C.data.schedules;s.initChart();if(s.instance&&s.instance.devices){s.anonymizeDevices(s.instance.devices)}if(s.instance&&s.instance.contacts){s.anonymizeContacts(s.instance.contacts)}s.devices=s.listAvailableDevices();s.contacts=s.listAvailableContacts();s.virtualDevices=s.listAvailableVirtualDevices();window.scope=s;s.localVars=C.data.localVars;s.globalVars=s.instance.globalVars;s.systemVars=C.data.systemVars;s.systemVarNames=[];for(name in s.systemVars){s.systemVarNames.push(name)}s.meta.build=s.meta.build?1*s.meta.build:0;if(s.piston&&(s.meta.build==0)){s.piston.z=s.params&&s.params.description?s.params.description:"";s.mode="edit";if(s.params&&s.params.type!="blank"){switch(s.params.type){case"duplicate":if(s.params.piston){s.loading=true;u.getPiston(s.params.piston).then(function(F){s.loading=false;if(F&&F.data&&F.data.piston){s.piston.o=F.data.piston.o?F.data.piston.o:{};s.piston.r=F.data.piston.r?F.data.piston.r:[];s.piston.rn=!!F.data.piston.rn;s.piston.rop=F.data.piston.rop?F.data.piston.rop:"and";s.piston.s=F.data.piston.s?F.data.piston.s:[];s.piston.v=F.data.piston.v?F.data.piston.v:[]}s.initialized=true;s.loading=false});return}break;case"restore":if(s.params.bin){s.loading=true;u.loadFromBin(s.params.bin).then(function(F){var G=F.data;s.loading=false;if(G){s.piston.o=G.o?G.o:{};s.piston.r=G.r?G.r:[];s.piston.rn=!!G.rn;s.piston.rop=G.rop?G.rop:"and";s.piston.s=G.s?G.s:[];s.piston.v=G.v?G.v:[];s.piston.z=G.z?G.z:""}s.initialized=true;s.loading=false;if(!!G&&!!G.l){s.rebuildPiston(G.l)}});return}break}}}if(s.mode=="edit"){s.loadStack()}else{s.updateActivity(true)}s.piston.o=s.piston.o?s.piston.o:{cto:0,ced:0};s.piston.r=s.piston.r?s.piston.r:[];s.piston.s=s.piston.s?s.piston.s:[];s.piston.rop=s.piston.rop?s.piston.rop:"and";s.piston.rn=!!s.piston.rn;s.piston.v=s.piston.v?s.piston.v:[];s.piston.z=s.piston.z||"";s.initialized=true;s.loading=false;s.render()}catch(E){alert(E)}})};s.initChart=function(){s.chart={type:"bar",labels:[],series:["Event delay","Load time","Execution time","Update time"],data:[[],[],[],[]],onClick:function(E,D){},datasetOverride:[{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#88bbee",borderWidth:0,backgroundColor:"#99ccff"},{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#eebb88",borderWidth:"0px",backgroundColor:"#ffcc99"},{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#ee88bb",borderWidth:"0px",backgroundColor:"#ff99cc"},{cubicInterpolationMode:"monotone",lineTension:0,yAxisID:"y-axis-1",fill:true,pointRadius:0,borderColor:"#999",borderWidth:1,backgroundColor:"#ccff99"}],options:{legend:{display:true},multiTooltipTemplate:"<%=datasetLabel%> : <%= value %>ms",showLines:true,fill:true,scales:{xAxes:[{type:"time"}],yAxes:[{id:"y-axis-1",stacked:true,type:"linear",display:true,position:"left"}]},pan:{enabled:true,mode:"x"},zoom:{enabled:true,mode:"x"}}};if(s.stats&&s.stats.timing){for(var C=0;C0){D+=" ";C--}return"/* "+D+" */"};s.range=function(C){return new Array(C)};s.wiki=function(C){s.wikiUrl=n.trustAsUrl("https://wiki.webcore.co/"+C+"?content-only");q.mydialog=m.open({template:"dialog-wiki",className:"ngdialog-theme-default ngdialog-large ngdialog-wiki",closeByDocument:true,disableAnimation:true,scope:s})};s.formatVariableValue=function(D,C){if((D.v==null)&&!!C&&s.localVars){D=s.copy(D);D.v=s.localVars[C]}if((D.v==="")||(D.v===null)||((D.v instanceof Array)&&!D.v.length)){return"(not set)"}switch(D.t){case"time":return utcToTimeString(D.v);case"datetime":return utcToString(D.v);case"date":return utcToDateString(D.v);case"contact":return s.renderContactNameList(D.v);case"device":return s.renderDeviceNameList(D.v);default:return D.v}};s.deleteDialog=function(){s.designer.dialog=m.open({template:"dialog-del-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.listDevicesWithAttributes=function(D){if(!D||!(D instanceof Array)||!D.length){return s.instance.devices}var C={};for(d in s.instance.devices){var E=s.instance.devices[d];var F=0;for(a in E.a){if(D.indexOf(E.a[a].n)>=0){F++;if(F==D.length){break}}}if(F==D.length){C[d]=E}}return C};s.rebuildPiston=function(C){if(!C){return}for(key in C){var D=C[key];D.id="";switch(D.t){case"device":D.i=s.listDevicesWithAttributes(D.a);break;case"contact":D.i=s.instance.contacts;break;case"mode":D.i=s.instance.virtualDevices.mode.o;for(i in D.i){if(D.i[i]==D.n){D.id=i;break}}break;case"routine":D.i=s.instance.virtualDevices.routine.o;break}}s.designer={legend:C};s.designer.dialog=m.open({template:"dialog-rebuild-piston",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.doRebuildPiston=function(){s.piston=s.compilePiston(s.piston,false,s.designer.legend);s.closeDialog()};s.doValidatePiston=function(){s.validatePiston(s.piston)};s.getExpressionConfig=function(){var C=[];for(attribute in s.db.attributes){C.push(": "+attribute+"]")}return{autocomplete:[{words:[]},{words:s.listAutoCompleteFunctions(),cssClass:"hl kwd"},{words:s.listAutoCompleteVariables(),cssClass:"hl var"},{words:s.listAutoCompleteDevices(),cssClass:"hl dev"},{words:C,cssClass:"hl dev"},{words:[/([0-9]+)(\.[0-9]+)?/g],cssClass:"hl num"}]}};s.removeFromArray=function(E,D){if(!(E instanceof Array)){return}var C=E.indexOf(D);if(C!==-1){E.splice(C,1)}return E};s.deleteObject=function(E,D){var C=!E;if(C){E=s.designer.$obj;D=s.designer.parent}if(!E){return}if((D instanceof Array)&&(E)){s.autoSave();D=s.removeFromArray(D,E);if(C){s.closeDialog()}}if(D&&(D.t=="action")&&(D.k instanceof Array)&&(E)){s.autoSave();D.k=s.removeFromArray(D.k,E);if(C){s.closeDialog()}}};s.getIFTTTUri=function(C){var D=u.getApiUri();if(!D){return"An error has occurred retrieving the IFTTT Maker URL"}return D+"ifttt/"+C};s.toggleAdvancedOptions=function(){s.designer.showAdvancedOptions=!s.designer.showAdvancedOptions};s.getClipboard=function(){var C=u.loadFromStore("clipboard");if(!C){C=[]}return C};s.getClipboardItems=function(E){var D=s.getClipboard();var C=[];for(i in D){if(D[i].t.startsWith(E)){C.push(D[i])}}return C};s.saveToClipboard=function(D,C){var E=s.getClipboard();E.push({s:(new Date()).getTime(),t:C,o:s.copy(D)});if(E.length>MAX_STACK_SIZE){E=E.slice(-MAX_STACK_SIZE)}u.saveToStore("clipboard",E)};s.deleteClipboardItem=function(C){var D=s.getClipboard();s.removeFromArray(s.designer.clipboard,C);for(i=0;i=0)?"1":"0";C.tcp=s.designer.tcp;C.tep=s.designer.tep;C.tsp=s.designer.tsp;C.z=s.designer.description;C.r=C.r?C.r:[];C.rop=s.designer.roperator;C.rn=s.designer.rnot=="1";C.di=s.designer.disabled=="1";switch(C.t){case"action":C.d=s.designer.devices;C.k=C.k?C.k:[];break;case"do":C.s=C.s?C.s:[];break;case"on":C.c=C.c?C.c:[];C.o="or";C.n=false;C.s=C.s?C.s:[];break;case"if":C.o=s.designer.operator;C.n=s.designer.not=="1";C.c=C.c?C.c:[];C.s=C.s?C.s:[];C.ei=C.ei?C.ei:[];C.e=C.e?C.e:[];break;case"switch":C.lo=s.designer.operand.data;C.cs=C.cs||[];C.e=C.e?C.e:[];C.ctp=s.designer.ctp;break;case"for":C.x=s.designer.x;C.lo=s.designer.operand.data;C.lo2=s.designer.operand2.data;C.lo3=s.designer.operand3.data;C.s=C.s?C.s:[];break;case"each":C.x=s.designer.x;C.lo=s.designer.operand.data;C.s=C.s?C.s:[];break;case"while":C.o=s.designer.operator;C.n=s.designer.not=="1";C.c=C.c?C.c:[];C.s=C.s?C.s:[];break;case"every":C.lo=s.designer.operand.data;C.lo2=s.designer.operand2.data;if(C.lo2.c instanceof Date){C.lo2.c=C.lo2.c.getHours()*60+C.lo2.c.getMinutes()}C.lo3=s.designer.operand3.data;C.s=C.s?C.s:[];break;case"repeat":C.o=s.designer.operator;C.n=s.designer.not=="1";C.c=C.c?C.c:[];C.s=C.s?C.s:[];break;case"break":break;case"exit":C.lo=s.designer.operand.data;break;default:C.t=null}if(C.t){C.$$html=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.s)&&(s.designer.parent.s instanceof Array)){s.designer.parent.s.push(C)}else{s.designer.parent.s=[C]}}}else{s.designer.$statement=C}}s.doValidatePiston();s.closeDialog();if(D){switch(C.t){case"action":s.addTask(C);return;case"if":s.addCondition(C.c,false,E);return;case"on":s.addEvent(C.c);return;case"while":s.addCondition(C.c);return;case"do":case"for":case"each":case"repeat":case"every":s.addStatement(C.s);return;case"switch":s.addCase(C.cs);return}}};s.upgradeStatement=function(){s.updateStatement();var C=s.designer.$statement;if(C&&C.c&&(C.c instanceof Array)){C.c=[{t:"group",n:false,o:"and",c:C.c}]}};s.addCase=function(C){return s.editCase(null,C)};s.editCase=function(C,D){if(s.mode!="edit"){return}var E=C?false:true;if(!C){C={};C.t="s";C.s=[];C.ro={};C.ro2={};C.z=""}s.designer={config:s.getExpressionConfig()};s.designer.$obj=C;s.designer.$case=C;s.designer.$new=E;s.designer.parent=D;s.designer.type=C.t;s.designer.operand={data:C.ro,multiple:false};s.designer.operand2={data:C.ro2,multiple:false};s.designer.autoDialogs=true;s.designer.description=C.z;window.designer=s.designer;s.validateOperand(s.designer.operand);s.validateOperand(s.designer.operand2);s.designer.dialog=m.open({template:"dialog-edit-case",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateCase=function(D){s.autoSave();var C=s.designer.$case;C.t=s.designer.type;C.s=C.s||[];C.ro=s.designer.operand.data;C.ro2=s.designer.operand2.data;C.z=s.designer.description;if(C.t){C.$$html=null;C.$$html2=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.cs)&&(s.designer.parent.cs instanceof Array)){s.designer.parent.cs.push(C)}else{s.designer.parent.cs=[C]}}}else{s.designer.$case=C}}s.doValidatePiston();s.closeDialog();if(D){s.addStatement(C.s);return}};s.addEvent=function(C){return s.editEvent(null,C)};s.editEvent=function(E,C){if(s.mode!="edit"){return}var D=!E;if(!E){E={};E.t="event";E.lo={t:"p",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};E.z="";E.sm="auto"}s.designer={config:s.getExpressionConfig(),clipboard:D?s.getClipboardItems("event"):[]};s.designer.$event=E;s.designer.$obj=E;s.designer.type=E.t;s.designer.$new=D;s.designer.parent=C;s.designer.comparison={event:true,type:"event",left:{data:E.lo?s.copy(E.lo):{},event:true}};s.validateComparison(s.designer.comparison,true);s.designer.smode=E.sm;s.designer.description=E.z;window.designer=s.designer;s.designer.dialog=m.open({template:"dialog-edit-event",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateEvent=function(D){s.autoSave();var C=s.designer.$new?{t:s.designer.type}:s.designer.$event;C.lo=s.fixOperand(s.designer.comparison.left.data);C.sm=s.designer.smode;C.z=s.designer.description;if(C.t){C.$$html=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.c)&&(s.designer.parent.c instanceof Array)){s.designer.parent.c.push(C)}else{s.designer.parent.c=[C]}}}else{s.designer.$event=C}}s.doValidatePiston();s.closeDialog();if(C.t&&D){s.addEvent(s.designer.parent);return}};s.addCondition=function(C,D,E){return s.editCondition(null,C,D,E)};s.editCondition=function(G,C,E,F){if(s.mode!="edit"){return}var D=!G;if(!G){G={};G.t=F;G.d=[];G.n=false;G.o="and";G.lo={t:"p",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.co=null;G.ro={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.ro2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.to={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.to2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};G.z="";G.sm="auto";G.ts=[];G.fs=[]}s.designer={config:s.getExpressionConfig(),clipboard:D?s.getClipboardItems("condition"):[]};s.designer.$condition=G;s.designer.$obj=G;s.designer.type=G.t;s.designer.$new=!F&&!!G.t?false:true;s.designer.newElseIf=E;s.designer.page=s.designer.$new&&!F?0:1;s.designer.parent=C;s.designer.devices=G.d;s.designer.not=G.n?"1":"0";s.designer.operator=G.o;s.designer.comparison={type:"condition",left:{data:G.lo?s.copy(G.lo):{},showSubDevices:true},operator:G.co,right:{data:G.ro?s.copy(G.ro):{}},right2:{data:G.ro2?s.copy(G.ro2):{}},time:{data:G.to?s.copy(G.to):{t:"c",c:0},dataType:"duration"},time2:{data:G.to2?s.copy(G.to2):{t:"c",c:0},dataType:"duration"}};s.validateComparison(s.designer.comparison,true);s.designer.smode=G.sm;s.designer.description=G.z;window.designer=s.designer;s.designer.items=[{type:"condition",name:"Condition",icon:"code",cssClass:"btn-info"},{type:"group",name:"Group",icon:"code-fork",cssClass:"btn-warning"}];s.designer.dialog=m.open({template:"dialog-edit-condition",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.fixOperand=function(C){switch(C.vt){case"time":C.c=C.c instanceof Date?C.c.getHours()*60+C.c.getMinutes():C.c;break;case"date":case"datetime":C.c=C.c instanceof Date?C.c.getTime():(new Date(C.c)).getTime();break}return C};s.updateCondition=function(D){s.autoSave();var E=s.designer.$new?{t:s.designer.type}:s.designer.$condition;switch(E.t){case"condition":E.lo=s.fixOperand(s.designer.comparison.left.data);E.co=s.designer.comparison.operator;E.ro=s.fixOperand(s.designer.comparison.right.data);E.ro2=s.fixOperand(s.designer.comparison.right2.data);E.to=s.designer.comparison.time.data;E.to2=s.designer.comparison.time2.data;break;case"group":E.c=E.c?E.c:[];E.o=s.designer.operator;E.n=s.designer.not=="1";break}E.sm=s.designer.smode;E.ts=E.ts?E.ts:[];E.fs=E.fs?E.fs:[];E.z=s.designer.description;if(E.t){E.$$html=null;if(s.designer.$new){if(s.designer.newElseIf){var C={o:"and",n:false,c:[],s:[]};C.c.push(E);s.designer.parent.push(C)}else{if(s.designer.parent instanceof Array){s.designer.parent.push(E)}else{if((s.designer.parent.c)&&(s.designer.parent.c instanceof Array)){s.designer.parent.c.push(E)}else{s.designer.parent.c=[E]}}}}else{s.designer.$condition=E}}s.doValidatePiston();s.closeDialog();if(E.t&&D){s.addCondition(E.t=="group"?E:s.designer.parent);return}};s.upgradeCondition=function(){s.updateCondition();var D=s.designer.parent;if(s.designer.$condition&&D&&(D instanceof Array)){var C=D.indexOf(s.designer.$condition);if(C>=0){var E={};E.t=s.designer.$condition.t;E.n=s.designer.$condition.n;E.o=s.designer.$condition.o;E.c=s.designer.$condition.c;s.designer.$condition={};s.designer.$condition.t="group";s.designer.$condition.n=false;s.designer.$condition.o="and";s.designer.$condition.c=[E];D[C]=s.designer.$condition}}};s.editConditionGroup=function(D,C){if(s.mode!="edit"){return}s.designer={operator:D.o||"and",not:D.n?"1":"0",description:D.z};s.designer.group=D;s.designer.$obj=D;s.designer.parent=C;window.designer=s.designer;s.designer.dialog=m.open({template:"dialog-edit-condition-group",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateConditionGroup=function(){s.autoSave();var C=s.designer.group;C.n=s.designer.not=="1";C.o=s.designer.operator;C.z=s.designer.description;s.closeDialog()};s.addRestriction=function(C){return s.editRestriction(null,C)};s.editRestriction=function(C,D){if(s.mode!="edit"){return}var E=!C;if(!C){C={};C.t=null;C.d=[];C.rn=false;C.rop="and";C.lo={t:"p",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.co=null;C.ro={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.ro2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.to={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.to2={t:"c",d:[],a:null,g:"any",v:null,c:"",x:null,e:""};C.z=""}s.designer={config:s.getExpressionConfig(),clipboard:E?s.getClipboardItems("restriction"):[]};s.designer.$restriction=C;s.designer.$obj=C;s.designer.type=C.t;s.designer.$new=C.t?false:true;s.designer.page=s.designer.$new?0:1;s.designer.parent=D;s.designer.devices=C.d;s.designer.not=C.rn?"1":"0";s.designer.operator=C.rop;s.designer.comparison={type:"restriction",left:{data:C.lo?s.copy(C.lo):{}},operator:C.co,right:{data:C.ro?s.copy(C.ro):{}},right2:{data:C.ro2?s.copy(C.ro2):{}},time:{data:C.to?s.copy(C.to):{t:"c",c:0},dataType:"duration"},time2:{data:C.to2?s.copy(C.to2):{t:"c",c:0},dataType:"duration"}};s.validateComparison(s.designer.comparison,true);s.designer.smode=C.sm;s.designer.description=C.z;window.designer=s.designer;s.designer.items=[{type:"restriction",name:"Restriction",icon:"code",cssClass:"btn-info"},{type:"group",name:"Group",icon:"code-fork",cssClass:"btn-warning"}];s.designer.dialog=m.open({template:"dialog-edit-restriction",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateRestriction=function(D){s.autoSave();var C=s.designer.$new?{t:s.designer.type}:s.designer.$restriction;switch(C.t){case"restriction":C.lo=s.fixOperand(s.designer.comparison.left.data);C.co=s.designer.comparison.operator;C.ro=s.fixOperand(s.designer.comparison.right.data);C.ro2=s.fixOperand(s.designer.comparison.right2.data);C.to=s.designer.comparison.time.data;C.to2=s.designer.comparison.time2.data;break;case"group":C.r=C.r?C.r:[];C.rop=s.designer.operator;C.rn=s.designer.not=="1";break}C.z=s.designer.description;if(C.t){C.$$html=null;if(s.designer.$new){if(s.designer.parent instanceof Array){s.designer.parent.push(C)}else{if((s.designer.parent.r)&&(s.designer.parent.r instanceof Array)){s.designer.parent.r.push(C)}else{s.designer.parent.r=[C]}}}else{s.designer.$restriction=C}}s.doValidatePiston();s.closeDialog();if(C.t&&D){s.addRestriction(C.t=="group"?C:s.designer.parent);return}};s.upgradeRestriction=function(){s.updateRestriction();var E=s.designer.parent;if(s.designer.$restriction&&E&&(E instanceof Array)){var D=E.indexOf(s.designer.$restriction);if(D>=0){var C={};C.t=s.designer.$restriction.t;C.rn=s.designer.$restriction.rn;C.rop=s.designer.$restriction.rop;C.c=s.designer.$restriction.c;s.designer.$restriction={};s.designer.$restriction.t="group";s.designer.$restriction.rn=false;s.designer.$restriction.rop="and";s.designer.$restriction.c=[C];E[D]=s.designer.$restriction}}};s.editRestrictionGroup=function(D,C){if(s.mode!="edit"){return}s.designer={operator:D.rop||"and",not:D.rn?"1":"0",description:D.z};s.designer.group=D;s.designer.$obj=D;s.designer.parent=C;window.designer=s.designer;s.designer.dialog=m.open({template:"dialog-edit-restriction-group",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateRestrictionGroup=function(){s.autoSave();var C=s.designer.group;C.rn=s.designer.not=="1";C.rop=s.designer.operator;C.z=s.designer.description;s.closeDialog()};s.addTask=function(C){return s.editTask(null,C)};s.editTask=function(D,E){if(s.mode!="edit"){return}if(!D){D={};D.c="";D.a="0";D.m="";D.z=""}var F=D.c?false:true;s.designer={clipboard:F?s.getClipboardItems("task"):[]};var C=F?s.insertIndexes[E.$$hashkey]:E.k.indexOf(D);if(isNaN(C)){C=E.k.length}s.designer.insertIndex=C;s.designer.$task=D;s.designer.$obj=D;s.designer.$new=F;s.designer.page=0;s.designer.parent=E;s.designer.command=D.c;s.designer.mode=D.m;s.designer.description=D.z;s.prepareParameters(D);window.designer=s.designer;window.scope=s;s.designer.commands=s.listAvailableCommands(E.d);$("a-ckolor-wheel").remove();s.designer.dialog=m.open({template:"dialog-edit-task",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateTask=function(G){s.autoSave();var E=s.designer.$new?{}:s.designer.$task;E.c=s.designer.command;E.a=s.designer.async;E.z=s.designer.description;E.m=s.designer.mode;if(E.c){E.$$html=null;E.p=[];for(parameterIndex in s.designer.parameters){var F=s.designer.parameters[parameterIndex].data;if(F.t=="c"){switch(F.vt){case"time":F.c=F.c instanceof Date?F.c.getHours()*60+F.c.getMinutes():F.c;break;case"date":case"datetime":F.c=F.c instanceof Date?F.c.getTime():(new Date(F.c)).getTime();break}}E.p.push(F)}if(s.designer.$new){if((s.designer.parent)&&(s.designer.parent.k instanceof Array)){s.designer.parent.k.push(E);s.insertIndexes[parent.$$hashkey]=s.designer.insertIndex+1}}else{s.designer.$task=E}}var H=s.designer.parent.k;if(H&&H.length){var D=H.indexOf(E);var C=s.designer.insertIndex;if(C>D){C--}if(C>=H.length){C=H.length-1}if(s.designer.insertIndex!=D){H.splice(C,0,H.splice(D,1)[0])}}s.doValidatePiston();s.closeDialog();if(G){s.addTask(s.designer.parent);return}};s.addVariable=function(){return s.editVariable(null)};s.editVariable=function(C){if(s.mode!="edit"){return}if(!C){C={};C.t="dynamic";C.n="";C.v={data:{}};C.a="d";C.z=""}if(C.v instanceof Array){C.v={data:{}}}s.designer={};s.designer.$variable=C;s.designer.$obj=C;s.designer.$new=C.n?false:true;s.designer.page=0;s.designer.parent=s.piston.v;s.designer.type=C.t;s.designer.assignment=C.a||"d";s.designer.name=C.n;s.designer.operand={data:C.v,multiple:false,dataType:C.t,optional:true};s.designer.description=C.z;window.designer=s.designer;window.scope=s;s.validateOperand(s.designer.operand);s.designer.dialog=m.open({template:"dialog-edit-variable",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s});s.refreshSelects()};s.updateVariable=function(E){s.autoSave();var C=s.designer.$new?{}:s.designer.$variable;C.t=s.designer.operand.dataType;C.n=s.designer.name.trim().replace(/[^a-z0-9]|\s+|\r?\n|\r/gmi,"_");C.z=s.designer.description;C.a=s.designer.assignment;var D=s.fixOperand(s.designer.operand.data);switch(D.t){case"":C.v=null;break;default:C.v=D;break}C.$$html=null;if(s.designer.$new){s.piston.v.push(C)}else{s.designer.variable=C}s.doValidatePiston();s.closeDialog();if(E){s.addVariable();return}};s.addGlobalVariable=function(){return s.editGlobalVariable(null)};s.editGlobalVariable=function(D){if(s.mode!="edit"){return}var C=s.globalVars[D];if(!C){C={t:"dynamic",v:""}}s.designer={};s.designer.$variableName=D;s.designer.$variable=C;s.designer.$obj=C;s.designer.$new=D?false:true;s.designer.name=D?""+D:"@";s.designer.type=C.t;s.designer.operand={data:{t:!C.v?"":(C.t=="device"?"d":"c"),c:C.v,d:C.v},multiple:false,dataType:C.t,optional:true,onlyAllowConstants:true};window.designer=s.designer;window.scope=s;s.validateOperand(s.designer.operand);s.designer.dialog=m.open({template:"dialog-edit-global-variable",className:"ngdialog-theme-default ngdialog-large",closeByDocument:false,disableAnimation:true,scope:s})};s.updateGlobalVariable=function(E){s.autoSave();var C=s.designer.$new?{}:s.designer.$variable;C.t=s.designer.operand.dataType;C.n=s.designer.name.trim().replace(/[^@a-z0-9]|\s+|\r?\n|\r/gmi,"_");var D=s.designer.operand.data;switch(D.t){case"":C.v=C.t=="device"?[]:null;break;case"c":C.v=D.c?D.c:"";break;case"d":C.v=D.d?D.d:[];break;default:C.v=null;break}delete (C.$$html);u.setVariable(s.designer.$variableName,C).then(function(F){if(F&&F.globalVars){s.updateGlobalVars(F.globalVars)}});s.doValidatePiston();s.closeDialog();if(E){s.addGlobalVariable();return}};s.deleteGlobalVariable=function(){if((!s.designer)||(!s.designer.$variableName)){return}u.setVariable(s.designer.$variableName,null).then(function(C){if(C&&C.globalVars){s.updateGlobalVars(C.globalVars)}});s.closeDialog()};s.validateGlobalVariableName=function(){if(!s.designer){return false}var C=s.designer.name;if(!C){return false}if(!C.startsWith("@")){C="@"+C}while(C.startsWith("@@@")){C=C.substr(1)}if(s.designer.name!=C){s.designer.name=C}return C&&(C!="@")&&(C!="@@")&&((s.designer.$variableName==C)||!(s.globalVars[C]))};s.getDeviceAttributeValue=function(E,D){for(i in E.a){if(E.a[i].n==D){var C={v:E.a[i].v,t:E.a[i].v};if(C.v==undefined){C.v=""}if((D=="battery")&&(!isNaN(C.v))){C.t=C.t+"%";C.v=Math.floor(parseInt(C.v)/20);if(C.v>4){C.v=4}}if((D=="temperature")&&(!isNaN(C.v))){C.v=Math.round(parseFloat(C.v)).toString()+"°";C.t=C.v}return C}}return{v:"",t:""}};s.renderDevice=function(E){var G=s.getDeviceAttributeValue(E,"switch");var G=G?'class="fa fa-toggle-off" switch="'+G+'"':"";var D=["temperature","battery","switch","motion","presence"];var C="
"+E.n+"
";for(a in D){var F=s.getDeviceAttributeValue(E,D[a]);C+="
'}return n.trustAsHtml(C)};s.drag=function(D,C){D.splice(C,1);s.autoSave();s.doValidatePiston()};s.setDesignerType=function(C){s.designer.type=C;s.nextPage();if(s.designer.ontypechanged){s.designer.ontypechanged(s.designer,C)}};s.closeDialog=function(){s.saveStack();if(s.designer.dialog){s.designer.dialog.close();s.designer.dialog=null}};s.nextPage=function(){s.designer.page++;s.refreshSelects()};s.prevPage=function(){if(s.designer.page){s.designer.page--}};s.selectTaskIndex=function(C){if(s.designer){s.designer.insertIndex=C}};s.initLineNumbers=function(){j.lineNumber=0};s.getLineNumber=function(){return j.lineNumber};s.mergeObjects=function(F,E){if(Object.assign){return Object.assign(F,E)}var C={};for(var D in F){C[D]=F[D]}for(var D in E){C[D]=E[D]}return C};s.clearLogs=function(){s.logs=[]};s.prepareParameters=function(C){s.designer.parameters=[];var G=s.db.commands.physical[s.designer.command]||s.db.commands.virtual[s.designer.command];s.designer.parameters=[];s.designer.custom=false;if(G){for(parameterIndex in G.p){var H=s.copy(G.p[parameterIndex]);var E={data:{},name:H.n,dataType:H.t.toLowerCase(),multiple:false,optional:((H.t!="bool")&&(H.t!="boolean"))&&!!H.d,options:H.o,strict:!!H.s};var D=s.getAttributeById(H.t);if(D){E.attribute=D;E.dataType=D.t;E.allowMuliple=false;E.options=D.o}if(C&&C.p&&(C.p.length>parameterIndex)){E.data=s.copy(C.p[parameterIndex])}s.validateOperand(E);s.designer.parameters.push(E)}}else{s.designer.custom=!!s.designer.command;for(i in C.p){var F={dataType:C.p[i].vt,data:s.copy(C.p[i])};s.validateOperand(F);s.designer.parameters.push(F)}}if(s.designer.command=="setVariable"){s.designer.parameters[0].linkedOperand=s.designer.parameters[1];s.validateOperand(s.designer.parameters[0])}s.refreshSelects()};s.renameParameters=function(){if(!s.designer.custom){return}for(i in s.designer.parameters){s.designer.parameters[i].name="Parameter #"+(parseInt(i)+1).toString()+" ("+s.designer.parameters[i].dataType+")"}s.refreshSelects()};s.addParameter=function(C){if(!s.designer.custom){return}var D={dataType:C,name:"",data:{t:"c"}};s.validateOperand(D);s.designer.parameters.push(D);s.renameParameters()};s.deleteParameter=function(D){if(!s.designer.custom){return}var C=s.designer.parameters.indexOf(D);if(C>-1){s.designer.parameters.splice(C,1)}s.renameParameters()};s.getParameterInputType=function(C){switch(C.t){case"color":case"duration":case"enum":case"boolean":return C.t;case"number":return Math.abs(C.M-C.m)>360?"number":"range"}return"text"};s.getParameterMin=function(C){switch(C.t){case"level":case"saturation":case"hue":return 0;case"colorTemperature":return 1500}return null};s.getParameterMax=function(C){switch(C.t){case"level":case"saturation":return 100;case"hue":return 360;case"colorTemperature":return 10000}return null};s.getContactById=function(C){return s.instance.contacts[C]};s.getRoutineById=function(C){if(s.instance.virtualDevices.routine&&s.instance.virtualDevices.routine.o){return s.instance.virtualDevices.routine.o[C]}return null};s.getLocationModeById=function(C){if(s.instance.virtualDevices.mode&&s.instance.virtualDevices.mode.o){return s.instance.virtualDevices.mode.o[C]}return null};s.getDeviceById=function(C){if(C==s.location.id){return{id:C,n:s.location.name,an:"Location"}}return s.instance.devices[C]};s.getDeviceByName=function(C){for(deviceIndex in s.instance.devices){if(s.instance.devices[deviceIndex].n==C){return mergeObjects({id:deviceIndex},s.instance.devices[deviceIndex])}}return null};s.getVirtualDeviceById=function(C){if(C==s.location.id){return{id:C,name:s.location.name}}return s.instance.virtualDevices[C]};s.getCapabilityById=function(C){return s.db.capabilities[C]};s.getCapabilityByName=function(C){for(capabilityIndex in s.db.capabilities){if(s.db.capabilities[capabilityIndex].n==C){return mergeObjects({id:capabilityIndex},s.db.capabilities[capabilityIndex])}}return null};s.getCommandById=function(C){return s.db.commands.physical[C]||s.db.commands.virtual[C]};s.getCommandByName=function(C){for(commandIndex in s.db.commands.physical){if(s.db.commands.physical[commandIndex].n==C){return mergeObjects({id:commandIndex},s.db.commands.physical[commandIndex])}}for(commandIndex in s.db.commands.virtual){if(s.db.commands.virtual[commandIndex].n==C){return mergeObjects({id:commandIndex},s.db.commands.virtual[commandIndex])}}return null};s.getAttributeById=function(C){return s.db.attributes[C]};s.getAttributeByName=function(C){for(attributeIndex in s.db.attributes){if(s.db.attributes[attributeIndex].n==C){return s.db.attributes[attributeIndex]}}return null};s.getDeviceAttributeById=function(D,C){if(!D){return null}for(i in D.a){if(D.a[i].n==C){return D.a[i]}}return null};s.buildName=function(D,G,C,F){if((D==null)||(D==undefined)){return""}if(D instanceof Array){return s.buildNameList(D,"or","","",false,G,C,F)}if(C||(D.length==34)){for(deviceId in s.instance.virtualDevices){var E=s.instance.virtualDevices[deviceId];if(E.o){for(id in E.o){G=G||!C;if(D==id){return(!G?"'":"")+E.o[id]+(!G?"'":"")}}}}}return(!G?"'":"")+(F?F:"")+D+(!G?"'":"")};s.buildNameList=function(H,K,O,I,C,E,J,L){var D=1;var N="";for(i in H){var G="";var F=H[i];if(F instanceof Object){O=F.t?F.t:O;G=F.a?F.a:"[unknown]";F=F.n}var M=s.buildName(F,E,J,L);N+=""+M+""+(C?"'"+(M.substr(-1)=="s"?"":"s"):"")+(D"+(D==H.length-1?(H.length>2?", ":" ")+K+" ":", ")+"
":"");D++}return N.trim()};s.buildLocationModeNameList=function(D){var C=[];if(D instanceof Array){for(modeIndex in D){C.push(s.getModeName(D[modeIndex]))}if(C.length){return s.buildNameList(C,"or","lit","",false,true)}}return""};s.buildDeviceNameList=function(C){var E=[];if(C instanceof Array){for(deviceIndex in C){var D=s.getDeviceById(C[deviceIndex]);if(D){E.push({n:D.n,a:D.an,t:"dev"})}else{E.push({n:"{"+C[deviceIndex]+"}",t:"var"})}}if(E.length){return s.buildNameList(E,"and","dev","",false,true)}}return"Location"};s.buildContactNameList=function(E){var D=[];if(E instanceof Array){for(contactIndex in E){var C=s.getContactById(E[contactIndex]);if(C){D.push({n:(C.f+" "+C.l).trim()+" ("+C.t+"/"+(C.p?"PUSH":"SMS")+")",a:C.an,t:"cnt"})}else{D.push({n:"{"+E[contactIndex]+"}",a:"Unknown Contact",t:"var"})}}if(D.length){return s.buildNameList(D,"and","cnt","",false,true)}}return"(empty)"};s.formatHour=function(C){return(!location.timeZone||location.timeZone.id.startsWith("America"))?((C%12?C%12:"12")+(C<12?"am":"pm")):("00"+C).substr(-2)};s.renderDeviceNameList=function(C){return n.trustAsHtml(s.buildDeviceNameList(C))};s.renderContactNameList=function(C){return n.trustAsHtml(s.buildContactNameList(C))};s.hasCommand=function(D,C){if(!D||!D.c){return false}return s.hasName(D.c,C)};s.hasName=function(D,C){if(!D||!D.length){return false}for(obj in D){if(D[obj]&&(D[obj].n===C)){return true}}return false};s.hasId=function(C,D){if(!C||!C.length){return false}for(obj in C){if(C[obj]&&(C[obj].id===D)){return true}}return false};s.listAvailableCommands=function(M){var E={};var J=M?M.length:0;for(deviceIndex in M){var F=M[deviceIndex]||"";var C=[];var L=false;if(F.startsWith(":")){var D=s.getDeviceById(M[deviceIndex]);if(D){C=D.c}}else{L=true;C=s.db.commands.physical}for(commandIndex in C){var H=L?commandIndex:C[commandIndex].n;if(E[H]){E[H]+=1}else{E[H]=1}}}var N={common:[],partial:[],virtual:[]};for(H in E){var G=s.db.commands.physical[H];if(!G){G={n:H+"(..)",cm:true}}if(E[H]==J){N.common.push(mergeObjects({id:H},G))}else{N.partial.push(mergeObjects({id:H},G))}}for(H in s.db.commands.virtual){var G=s.db.commands.virtual[H];if(G.r){var I=0;for(deviceIndex in M){var F=M[deviceIndex]||"";var K=false;if(F.startsWith(":")){var D=s.getDeviceById(M[deviceIndex]);K=!!D;if(K){for(req in G.r){if(!s.hasCommand(D,G.r[req])){K=false;break}}}}else{K=true}if(K){I++}}if(I>0){if(I==J){if(!s.hasId(N.common,H)){N.common.push(mergeObjects({id:H,em:true},G))}}else{if(!s.hasId(N.partial,H)){N.partial.push(mergeObjects({id:H,em:true},G))}}}}else{N.virtual.push(mergeObjects({id:H},G))}}N.common.sort(s.sortByName);N.partial.sort(s.sortByName);N.virtual.sort(s.sortByName);return N};s.listAvailableDevices=function(){var C=[];for(deviceIndex in s.instance.devices){var D=s.instance.devices[deviceIndex];var E="";for(i in D.a){E+=":"+D.a[i].n+" "}C.push(mergeObjects({id:deviceIndex,tokens:E+D.n},D))}return C.sort(s.sortByName)};s.listAvailableVirtualDevices=function(){var C=[];for(deviceIndex in s.instance.virtualDevices){var D=s.instance.virtualDevices[deviceIndex];C.push(mergeObjects({id:deviceIndex},D))}return C.sort(s.sortByName)};s.escapeRegExp=function(C){return C};s.listAutoCompleteFunctions=function(){var C=[];for(functionIndex in s.db.functions){C.push((s.db.functions[functionIndex].d?s.db.functions[functionIndex].d:functionIndex)+"(")}return C.sort()};s.listAutoCompleteDevices=function(){var C=[];for(deviceIndex in s.instance.devices){var D=s.instance.devices[deviceIndex];C.push(s.escapeRegExp("["+D.n+" :"))}return C.sort()};s.listAutoCompleteVariables=function(){var C=[];for(varIndex in s.piston.v){var D=s.piston.v[varIndex];C.push(s.escapeRegExp(D.n))}if(s.systemVars){for(varName in s.systemVars){C.push(s.escapeRegExp(varName))}}if(s.globalVars){for(varName in s.globalVars){C.push(s.escapeRegExp(varName))}}return C.sort()};s.getVariableByName=function(C){if(s.systemVars&&s.systemVars[C]){return s.systemVars[C]}if(s.globalVars&&s.globalVars[C]){return s.globalVars[C]}for(varIndex in s.piston.v){if(s.piston.v[varIndex].n==C){return s.piston.v[varIndex]}}return null};s.getVariableValue=function(D,E){if(s.localVars){var C=s.localVars[D];if(C!=undefined){if(E=="datetime"){return utcToString(C)}return""+C}}return"(not set)"};s.autoAddVariable=function(D){if(!D){return false}D=D?D.trim():"";var C=s.getVariableByName(D);s.piston.v.push({t:"dynamic",n:D})};s.hasAttribute=function(D,C){for(a in D.a){if(D.a[a].n==C){return true}}return false};s.listAvailableAttributes=function(E,J){var C=[];var H=null;if(E&&E.length){var D={};var F=E.length;for(deviceIndex in E){H=s.getDeviceById(E[deviceIndex]);if(H){for(attributeIndex in H.a){var G=H.a[attributeIndex];if(!J||(G.n==J)){if(D[G.n]){D[G.n]+=1}else{D[G.n]=1}}}}else{for(attributeName in s.db.attributes){if(!J||(attributeName==J)){if(D[attributeName]){D[attributeName]+=1}else{D[attributeName]=1}}}}}for(attributeId in D){if(D[attributeId]==F){var G=s.getAttributeById(attributeId);if(G){C.push(mergeObjects({id:attributeId},G))}else{for(a in H.a){if(H.a[a].n==attributeId){G=H.a[a];break}}if(G){var I=mergeObjects({id:attributeId,c:true},G);I.n="⌂ "+I.n;I.t=(I.t||"string").toLowerCase().replace("number","decimal");C.push(I)}}}}C.sort(s.sortByName)}return C};s.sortByDisplay=function(D,C){return(D.d>C.d)?1:((C.d>D.d)?-1:0)};s.sortByName=function(D,C){D=D.n.toLowerCase();C=C.n.toLowerCase();return(D>C)?1:((C>D)?-1:0)};s.getStackData=function(){var C=angular.toJson(s.compilePiston(s.piston));return{hash:s.md5(C),timestamp:(new Date()).getTime(),data:angular.fromJson(C)}};s.autoSave=function(C){var D=C?false:true;C=C?C:s.stack.undo;pushToStack=true;var E=s.getStackData();if(C&&C.length){if(E.hash==C[C.length-1].hash){pushToStack=false}}if(pushToStack){C.push(E);if(C.length>MAX_STACK_SIZE){C=C.slice(-MAX_STACK_SIZE)}}if(D){s.stack.redo=[]}};s.objectToArray=function(D){var C=[];for(property in D){C.push({v:property,n:D[property]})}return C};s.saveStack=function(C){s.stack.current=s.getStackData();if(C){s.stack.current.timestamp=0}s.stack.build=s.meta.build;u.saveToStore("stack"+s.pistonId,s.stack)};s.loadStack=function(){s.stack=u.loadFromStore("stack"+s.pistonId);s.stack=s.stack instanceof Object?s.stack:{};s.stack.undo=(s.stack.undo instanceof Array?s.stack.undo:[]);s.stack.redo=(s.stack.redo instanceof Array?s.stack.redo:[]);if(s.stack.current instanceof Object&&s.stack.current.data&&(s.stack.build==s.meta.build)&&(s.meta.modified1)&&((U.data.g=="all")||(U.data.g=="any"));U.error=null;U.momentary=false;U.selectedDataType="string";U.selectedOptions=[];switch(U.data.t){case"p":var K=s.db.attributes[U.data.a];if(!K){if(U.data.d.length){var S=s.getDeviceById(U.data.d[0]);if(S){for(a in S.a){if(S.a[a].n==U.data.a){K=S.a[a];break}}}}}if(K){U.momentary=K.m;U.count=0;if(U.momentary&&!!K.s){var N=K.s.split(",");for(deviceIndex in U.data.d){var F=s.getDeviceById(U.data.d[deviceIndex]);var V=0;if(F){for(i in N){var O=s.getDeviceAttributeById(F,N[i]);if((O)&&(!isNaN(O.v))){V=parseInt(O.v);if(V>U.count){U.count=V}}}}else{if(U.count<32){U.count=32}}}}if(U.count){if((U.data.i==null)||(U.data.i==undefined)){U.data.i=["1"]}s.refreshSelects()}U.selectedDataType=K.t.toLowerCase();U.selectedOptions=K.o;if(U.momentary){U.allowAll=false;U.allowAggregation=false}}else{U.selectedDataType="string"}if(U.data.d&&(U.data.d.length>1)){if(!U.data.g){U.error="Invalid aggregation method"}if(!(["any","all","least","most"].indexOf(U.data.g)>=0)){U.selectedDataType="decimal"}}break;case"v":var P=s.instance.virtualDevices[U.data.v];U.selectedDataType=(!!P&&!!P.t)?P.t:"string";if(P){U.momentary=P.m;for(o in P.o){U.selectedOptions.push({v:o,n:P.o[o]})}}break;case"x":if(U.data.x instanceof Array){if(U.data.x.length){U.selectedDataType="dynamic"}else{U.error="Invalid list of variables"}}else{var R=s.getVariableByName(U.data.x);if(R){U.selectedDataType=R.t;if(U.selectedDataType=="boolean"){U.selectedOptions=["false","true"]}}else{U.error="Invalid variable"}}break;case"u":U.selectedDataType="dynamic";break;case"c":var M=s.parseString(U.data.c,U.data.vt);U.error=M.err;U.expressionVar=M.errVar;U.data.exp=M;if(!U.options){if(!U.optional&&!U.data.c&&(U.requirePositiveNumber)){U.error="Empty value";U.expressionVar=""}}else{if((U.data.c==null)||(U.data.c==undefined)){U.error="Invalid selection";U.expressionVar=""}}U.selectedDataType=U.dataType;break;case"e":var M=s.parseExpression(U.data.e,false,U.data.vt);U.error=M.err;U.expressionVar=M.errVar;if(M.err){var I=(M.loc?M.loc:"0:"+(M.str.length-1).toString()).split(":");var H=parseInt(I[0]);var E=I.length==2?parseInt(I[1]):H;U.config.autocomplete[0]={words:[new RegExp(".(?=.{"+(M.str.length-H-1)+"}$).{"+(E-H)+"}")],cssClass:"hl err",title:M.err}}else{U.config.autocomplete[0]={words:[],cssClass:"hl err"}}U.data.exp=M;U.selectedDataType="dynamic";break}if((!U.error)&&(U.dataType=="duration")&&(!U.durationUnit)){U.error="Invalid duration unit"}if((!U.error)&&U.count&&(!U.data.i||!U.data.i.length)){U.error="Invalid sub device selection"}U.valid=(!U.error)&&(((U.data.t=="")&&(U.optional))||((U.data.t=="d")&&!!U.data.d&&!!U.data.d.length)||((U.data.t=="p")&&!!U.data.d&&!!U.data.d.length&&!!U.data.a)||((U.data.t=="v")&&!!U.data.v)||((U.data.t=="x")&&!!U.data.x&&!!U.data.x.length)||((U.data.t=="s")&&!!U.data.s)||((U.data.t=="u")&&!!U.data.u)||((U.data.t=="c")&&!((U.data.c=="Invalid Date")&&(U.data.c instanceof Object))&&!((Q=="duration")&&(isNaN(U.data.c)||(U.requirePositiveNumber&&(U.data.c<1)))))||((U.data.t=="e")&&!!U.data.e&&!!U.data.e.length));switch(U.dataType){case"integer":U.inputType="number";try{U.data.c=parseInt(U.data.c)}catch(D){U.data.c=0}break;case"duration":case"decimal":U.inputType="number";try{U.data.c=parseFloat(U.data.c)}catch(D){U.data.c=0}break;default:U.inputType=U.dataType}if(U.linkedOperand){U.linkedOperand.dataType=U.selectedDataType;U.linkedOperand.options=U.selectedOptions;s.validateOperand(U.linkedOperand,true);s.refreshSelects()}};s.refreshSelects=function(C){if(C){s.$$postDigest(function(){$("select["+C+"]").selectpicker("refresh");z(function(){$("select["+C+"]").selectpicker("refresh")},0,false)})}else{s.$$postDigest(function(){$("select").selectpicker("refresh");z(function(){$("select").selectpicker("refresh")},0,false)})}};s.getOrdinalSuffix=function(E){if(isNaN(E)){return""}E=parseInt(E);var C=E%100;var D=E%10;if(((C>3)&&(C<21))||(D==0)||(D>3)){return"th"}switch(D){case 1:return"st";case 2:return"nd";case 3:return"rd"}return"th"};s.getOrdinal=function(C){if(isNaN(C)){return""}C=parseInt(C);switch(C){case -3:return"third-last";case -2:return"second-last";case -1:return"last"}return C+s.getOrdinalSuffix(C)};s.listODM=function(){var C=s.designer.odm;var D=(!s.designer.operand.data.odw||(s.designer.operand.data.odw=="d"))?31:5;if(!C||(C.length!=(D+3))){C=[];for(i=1;i<=D;i++){C.push({v:i,n:i+s.getOrdinalSuffix(i)})}C.push({v:-1,n:"last"});C.push({v:-2,n:"second-last"});C.push({v:-3,n:"third-last"});s.designer.odm=C}return C};s.listODW=function(){var C=s.designer.odw;var D=(s.designer.operand.data.odm>5)?0:7;if(!C||(C.length!=(D+1))){C=[];C.push({v:"d",n:"day"});if(D){for(i in s.weekDays){C.push({v:i.toString(),n:s.weekDays[i]})}}s.designer.odw=C}return C};s.validateComparison=function(L,D){s.validateOperand(L.left,D,true);if((L.left.selectedDataType!=L.dataType)||(L.left.selectedMultiple!=L.selectedMultiple)||(L.left.momentary!=L.momentary)||(L.left.data.t=="v")){L.dataType=L.left.selectedDataType;L.selectedMultiple=L.left.selectedMultiple;L.momentary=L.left.momentary;var J=(L.left.data.t!="p")||((L.left.data.g!="any")&&(L.left.data.g!="all"));var C=(L.type=="restriction");var I=[];var M=[];if(!L.dataType){L.dataType="dynamic"}switch(L.dataType){case"enum":dt="s";break;case"dynamic":dt="";break;case"time":case"date":case"datetime":dt="t";break;default:dt=L.dataType.substr(0,1)}dt=(L.momentary?(L.left.data.t=="v"?"v":"m"):((dt=="n"?"d":dt)));for(conditionId in s.db.comparisons.conditions){var G=s.db.comparisons.conditions[conditionId];if(((!dt&&(G.g!="m"))||(G.g.indexOf(dt)>=0))&&(!J||!G.t)){M.push({id:conditionId,d:(L.selectedMultiple?(G.dd?G.dd:G.d):G.d),c:"Conditions"})}}I=I.concat(M.sort(s.sortByDisplay));if(!C){M=[];for(triggerId in s.db.comparisons.triggers){var E=s.db.comparisons.triggers[triggerId];if(E.g.indexOf(dt)>=0){M.push({id:triggerId,d:(L.selectedMultiple?(E.dd?E.dd:E.d):E.d),c:"Triggers"})}}I=I.concat(M.sort(s.sortByDisplay))}L.options=I}var H=s.db.comparisons.conditions[L.operator]||s.db.comparisons.triggers[L.operator];L.operatorValid=!!H;L.parameterCount=H&&H.p?H.p:0;L.multiple=H&&H.m?true:false;L.valid=L.left.valid&&L.operatorValid;L.timed=H?H.t:0;if(L.parameterCount>0){L.right.multiple=L.multiple;L.right.disableAggregation=L.multiple;L.right.dataType=L.left.selectedDataType;if(angular.toJson(L.right.options)!=angular.toJson(L.left.selectedOptions)){if((L.right.data.t=="c")&&L.right.options&&L.right.options.length&&(!L.left.selectedOptions||!L.left.selectedOptions.left)){L.right.data.c=""}L.right.options=L.left.selectedOptions}s.validateOperand(L.right,D,true);L.valid=L.valid&&L.right.valid}if(L.parameterCount>1){L.right2.multiple=L.multiple;L.right2.disableAggregation=L.multiple;L.right2.dataType=L.left.selectedDataType;if(angular.toJson(L.right2.options)!=angular.toJson(L.left.selectedOptions)){L.right2.options=L.left.selectedOptions}s.validateOperand(L.right2,D,true);L.valid=L.valid&&L.right2.valid}var F=(L.timed>0);var K=false;if(L.left.selectedDataType=="time"){F=F||(L.right.data.t!="c");K=(L.right2.data.t!="c")}if(F){L.time.requirePositiveNumber=!!L.timed;s.validateOperand(L.time,D,true);L.valid=L.valid&&L.time.valid}if(K){L.time2.requirePositiveNumber=false;L.time2.dataType="duration";s.validateOperand(L.time2,D,true);L.valid=L.valid&&L.time2.valid}};s.detectDataType=function(C){switch(typeof C){case"string":if(!isNaN(parseFloat(C))){return"number"}return"string";case"number":return"number";default:return"string"}};s.renderOperand=function(H,G,J,D){var K="";if(H){switch(H.t){case"d":if(H.d){K=s.buildDeviceNameList(H.d)}break;case"p":if(H.d&&H.a){K=s.renderDeviceList(H.d,H.a,H.g,true)+" "+H.a+""}break;case"v":var C=s.getVirtualDeviceById(H.v);K=""+(C?C.n:"(invalid virtual device)")+"";break;case"s":if(H.s){K=""+H.s+""}break;case"x":if(H.x){K="{"+H.x+"}"}break;case"c":var F="num";G=G||!isNaN(H.c);switch(H.vt){case"time":var E=s.localTimeToDate(H.c);K=""+E.toLocaleTimeString({hour:"2-digit",minute:"2-digit"})+"";break;case"date":K=""+utcToDateString(H.c)+"";break;case"datetime":K=""+utcToString(H.c)+"";break;case"piston":K=""+s.getPistonName(H.c)+"";break;case"lifxScene":K=""+s.getLifxSceneName(H.c)+"";break;case"phone":K=""+H.c+"";break;case"uri":K=""+H.c+"";break;case"contact":K=s.renderContactNameList(H.c);break;default:if(!G){if((H.vt=="boolean")||(H.vt=="enum")){G=true}F="lit"}var I=H.c;if(D&&!isNaN(I)&&parseInt(I)<0){I=-parseInt(I)}K=""+scope.buildName(I,G,J)+""}break;case"u":K=K+"{$args."+H.u+"}";break;case"e":if(H.e){K="{"+H.e+"}"}break}}K=K?K:'(empty)';return(K instanceof Object)?K:n.trustAsHtml(K)};s.renderForOperands=function(D){var C;C=""+(D.x?D.x:"$index")+" = "+s.renderOperand(D.lo)+" to "+s.renderOperand(D.lo2)+" step "+s.renderOperand(D.lo3);return n.trustAsHtml(C?C:"(invalid operands)")};s.renderForEachOperands=function(D){var C;C=""+(D.x?D.x:"$device")+" in "+s.renderOperand(D.lo);return n.trustAsHtml(C?C:"(invalid operands)")};s.renderTimeOperand=function(E){if(!E){return""}var C=(E.t=="c");var D=C&&!isNaN(E.c)?parseInt(E.c):0;if(C&&(D==0)){return""}return s.renderOperand(E,false,false,true)+" "+s.getDurationUnitName(E.vt,(D!=1))+" "+(D<0?"to":"past")+" "};s.renderComparison=function(R,O,L,S,D,T){var Y=s.db.comparisons.triggers[O];var K=!!Y;if(!Y){Y=s.db.comparisons.conditions[O]}if(!Y){return"[ERROR: Invalid comparison]"}var E=R.t=="v";var N=R&&(R.t=="p")&&R.d&&(R.d.length>1)&&(R.g=="all");var U=false;var H="";switch(R.t){case"v":switch(R.v){case"locationMode":case"shmState":U=true;break}break;case"p":var X=s.getAttributeById(R.a);if(!!X&&!!X.u){H=X.u}break}var F="";if((Y.g=="m")&&R.i&&R.i.length){F=" "+s.buildNameList(R.i,"or",null,null,false,true,false,"#")+""}var Q="";var P="";if((R.t=="v")&&(R.v=="time")){if(L&&D&&(L.t!="c")){Q=s.renderTimeOperand(D)}if(S&&T&&(S.t!="c")){P=s.renderTimeOperand(T)}}var G=s.renderOperand(R)+F+" "+(N?(Y.dd?Y.dd:Y.d):Y.d)+""+(Y.p>0?" "+Q+s.renderOperand(L,U,E):"")+(H?""+H+" ":"")+(Y.p>1?" "+(Y.d.indexOf("between")?"and":"through")+" "+P+s.renderOperand(S,U,E)+(H?""+H+" ":""):"");switch(Y.t){case 1:G+=" "+(K?"for":"in the last")+" "+s.renderOperand(D)+" "+s.getDurationUnitName(D.vt,!((D.t=="c")&&(!isNaN(D.c))&&(parseInt(D.c)==1)))+"";break;case 2:G+=" for "+(D.f=="g"?"at least":"less than")+" "+s.renderOperand(D)+" "+s.getDurationUnitName(D.vt,!((D.t=="c")&&(!isNaN(D.c))&&(parseInt(D.c)==1)))+"";break}if((R.t=="v")&&(["time","date","datetime"].indexOf(R.v)>=0)){var V=(R.odw instanceof Array)&&R.odw.length?R.odw:null;var C=(R.odm instanceof Array)&&R.odm.length?R.odm:null;var M=!C&&(R.owm instanceof Array)&&R.owm.length?R.owm:null;var W=(R.omy instanceof Array)&&R.omy.length?R.omy:null;if(!!V||!!C||!!M||!!W){var J=0;G+=", but only";var I="";if(V){for(i in V){if((i>0)&&(V.length>2)){I+=", "}if((i>0)&&(i==V.length-1)){I+=" or "}I+=""+s.weekDays[V[i]]+"s"}J++}if(M){G+=(J?",":"")+" on the ";for(i in M){if((i>0)&&(M.length>2)){G+=", "}if((i>0)&&(i==M.length-1)){G+=" or "}G+=""+s.getOrdinal(M[i])+""}G+=" "+(I?I:"week"+(M.length>1?"s":"")+"")+(W?"":" of the month");J++}else{if(I){G+=(J>1?",":"")+" on "+I}}if(C){G+=(J?",":"")+" on the ";for(i in C){if((i>0)&&(C.length>2)){G+=", "}if((i>0)&&(i==C.length-1)){G+=" or "}G+=""+s.getOrdinal(C[i])+""}G+=" day"+(C.length>1?"s":"")+(W?"":" of the month");J++}if(W){G+=" "+(M||C?"of":"in")+" ";for(i in W){if((i>0)&&(W.length>2)){G+=", "}if((i>0)&&(i==W.length-1)){G+=" or "}G+=""+s.yearMonths[W[i]-1]+""}J++}}}return n.trustAsHtml(G)};s.getWeekDayName=function(C){if(isNaN(C)){return"day"}return s.weekDays[parseInt(C)]};s.getMonthDayName=function(C){switch(C){case -1:return"last";case -2:return"second-last";case -3:return"third-last"}return C+s.getOrdinalSuffix(C)};s.getMonthName=function(C){return s.yearMonths[C]};s.getDurationUnitName=function(D,C){var E=C?"s":"";switch(D){case"ms":return"millisecond"+E;case"s":return"second"+E;case"m":return"minute"+E;case"h":return"hour"+E;case"d":return"day"+E;case"w":return"week"+E;case"n":return"month"+E;case"y":return"year"+E}return""};s.renderTimer=function(D){var S="";var F=D.lo;var O=s.getDurationUnitName(F.vt);var K=O;var C=0;switch(F.vt){case"ms":C=1;break;case"s":C=2;break;case"m":C=3;break;case"h":C=4;break;case"d":C=5;break;case"w":C=6;O=s.getWeekDayName(F.odw);break;case"n":C=7;O=s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of the month";break;case"y":C=8;O=s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of "+s.getMonthName(F.omy);break}switch(F.t){case"c":if(!isNaN(F.c)){var N=parseInt(F.c);switch(N){case 1:S=O;break;case 2:S="other "+O;break;default:S=""+N+" "+K+"s";switch(F.vt){case"n":S+=", on the "+s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of the month";break;case"y":S+=", on the "+s.getMonthDayName(F.odm)+" "+s.getWeekDayName(F.odw)+" of "+s.getMonthName(F.omy);break}}break}default:S=s.renderOperand(F)+" "+O+"s"}if(C==4){var G=("00"+D.lo.om).substr(-2);S+=", at :"+G+" past the hour"}if(C>=5){S+=", at ";if(D.lo2.t!="c"){switch(D.lo3.t){case"c":var I=isNaN(D.lo3.c)?0:parseInt(D.lo3.c);if(I==0){S+=s.renderOperand(D.lo2)}else{if(I<0){S+=""+(-I).toString()+" "+s.getDurationUnitName(D.lo3.vt,(I<-1))+" before "+s.renderOperand(D.lo2)}else{S+=""+I.toString()+" "+s.getDurationUnitName(D.lo3.vt,(I>1))+" after "+s.renderOperand(D.lo2)}}break;default:S+=s.renderOperand(D.lo2)+" ± "+s.renderOperand(D.lo3)}}else{S+=s.renderOperand(D.lo2)}}var M=(C<=2)&&(F.om instanceof Array)&&F.om.length?F.om:null;var P=(C<=3)&&(F.oh instanceof Array)&&F.oh.length?F.oh:null;var E=(C<=5)&&(F.odw instanceof Array)&&F.odw.length?F.odw:null;var L=(C<=6)&&(F.odm instanceof Array)&&F.odm.length?F.odm:null;var R=(C<=6)&&!L&&(F.owm instanceof Array)&&F.owm.length?F.owm:null;var Q=(C<=7)&&(F.omy instanceof Array)&&F.omy.length?F.omy:null;if(!!M||!!P||!!E||!!L||!!R||!!Q){var H=0;S+=", but only";if(M){S+=" at ";for(i in M){if((i>0)&&(M.length>2)){S+=", "}if((i>0)&&(i==M.length-1)){S+=" or "}S+=":"+("00"+M[i]).substr(-2)+""}S+=" minutes past the hour";H++}if(P){S+=(H?",":"")+" during the ";for(i in P){if((i>0)&&(P.length>2)){S+=", "}if((i>0)&&(i==P.length-1)){S+=" or "}S+=""+s.formatHour(P[i])+""}S+=" hour"+(P.length>1?"s":"")+"";H++}var J="";if(E){for(i in E){if((i>0)&&(E.length>2)){J+=", "}if((i>0)&&(i==E.length-1)){J+=" or "}J+=""+s.weekDays[E[i]]+"s"}H++}if(R){S+=(H?",":"")+" on the ";for(i in R){if((i>0)&&(R.length>2)){S+=", "}if((i>0)&&(i==R.length-1)){S+=" or "}S+=""+s.getOrdinal(R[i])+""}S+=" "+(J?J:"week"+(R.length>1?"s":"")+"")+(Q?"":" of the month");H++}else{if(J){S+=(H>1?",":"")+" on "+J}}if(L){S+=(H?",":"")+" on the ";for(i in L){if((i>0)&&(L.length>2)){S+=", "}if((i>0)&&(i==L.length-1)){S+=" or "}S+=""+s.getOrdinal(L[i])+""}S+=" day"+(L.length>1?"s":"")+(Q?"":" of the month");H++}if(Q){S+=" "+(R||L?"of":"in")+" ";for(i in Q){if((i>0)&&(Q.length>2)){S+=", "}if((i>0)&&(i==Q.length-1)){S+=" or "}S+=""+s.yearMonths[Q[i]-1]+""}H++}}return n.trustAsHtml(S)};s.renderString=function(D){var C=0;if(!D){return""}var E=function(L){var F="";while(C":F+=">";break;case"[":var K=D.indexOf("|",C);if(K>C){var H=D.substring(C+1,K);C=K+1;F+=E(H)}else{C++;F+=E()}break;case"]":if(L==undefined){return"["+F+"]"}var G=L.trim().replace(/\s/g,",").split(",");var J="";var I="";for(x in G){switch(G[x]){case"b":J+="s-b ";break;case"u":J+="s-u ";break;case"i":J+="s-i ";break;case"s":J+="s-s ";break;case"pre":J+="s-pre ";break;case"flash":J+="s-flash ";break;default:I=G[x].replace(/[^#0-9a-z]/gi,"")}}return""+F+"";default:F+=M}C++}return F};return n.trustAsHtml(E(D).replace(/\:fa-([a-z0-9\-\s]*)\:/gi,function(F){return''}))};s.renderTask=function(C){var F=s.getCommandById(C.c);var E;if(!F){E=C.c+"(";for(i in C.p){E+=(parseInt(i)?", ":"")+s.renderOperand(C.p[i])}E+=")"}else{E=!F.d?F.n:F.d.replace(/\{(\d)\}/g,function(H,K){var G=parseInt(K);if((G<0)||(!C.p)||(G>=C.p.length)){return" (?) "}var J="";if(F.p[G].t=="duration"){var I=s.getDurationUnitName(C.p[G].vt,true);J=s.renderOperand(C.p[G],true)+" "+I}else{if((C.p[G].t=="c")&&(!!F.p[G].d)&&(C.p[G].c=="false")){J=""}else{J=s.renderOperand(C.p[G],true)}}if(!J){J=""}if(!!J&&!!F.p[G].d){J=(!!C.p[G]&&!!C.p[G].t)?F.p[G].d.replace("{v}",J):""}return J}).replace(/(\{T\})/g,"°"+s.location.temperatureScale);var D=F.i;if(D){E=' '+E}}if(C.m){E+=" (only while "+s.buildLocationModeNameList(C.m)+")"}E+=";";return n.trustAsHtml(E)};s.renderDeviceList=function(D,G,I,J){var C="";var F=[];suffix=(I=="any"?"or":"and");var H="";if(D instanceof Array){if(D.length>1){switch(I){case"any":H="Any of ";break;case"all":H="All of ";break;case"count":H="Count of ";break;case"avg":H="Average of ";break;case"median":H="Median of ";break;case"least":H="Least occurring value of ";break;case"most":H="Most occurring value of ";break;case"stdev":H="Standard deviation of ";break;case"min":H="Minimum of ";break;case"max":H="Maximum of ";break;case"variance":H="Variance of ";break}if(!J){H=H.toLowerCase()}}for(deviceIndex in D){var E=s.getDeviceById(D[deviceIndex]);if(E){F.push({n:E.n,a:E.an,t:"dev"})}else{F.push({n:"{"+D[deviceIndex]+"}",t:"var"})}}if(F.length){C=H+s.buildNameList(F,suffix,"dev","",!!G,true)}}return n.trustAsHtml(C)};s.validatePiston=function(G){var C=0;var H=0;var D={};var F=function(I,J){if(!I){return}I.w=I.w?I.w:[];I.w.push(J)};var E=function(J,K,I,M){var L=M+1;if(J instanceof Array){for(i in J){J[i]=E(J[i],K,I,L)}return J}if(J instanceof Object){for(property in J){J[property]=E(J[property],J,J.vt?J.vt:J.t,L)}if(!!J.t){delete (J.w);switch(J.t){case"every":if(L>3){F(J,"Timers are designed to be top-level statements and should not be used inside other statements. If you need a conditional timer, please look into using a while loop instead.")}break;case"on":if(L>3){F(J,"On event statements are designed to be top-level statements and should not be used inside other statements.")}break}}}return J};G=E(G,"piston",null,0);s.warnings=D;return G};s.compilePiston=function(J,E,H){var H=H?H:{};var D=0;var F={};var C=function(K,M){if(!E){return(!!H[K]&&!!H[K].id)?H[K].id:K}if(!K){return""}var N;if(H[K]){var L=H[K];N=L.key;if(M&&M.a&&(M.a instanceof Array)&&L.value&&L.value.a&&(L.value.a instanceof Array)){for(a in M.a){if(L.value.a.indexOf(M.a[a])<0){L.value.a.push(M.a[a])}}}}else{N=":"+("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"+D).substr(-32)+":";D++;H[K]={key:N,value:M}}return N};var I=function(K,L){if(!K){return}K.w=K.w?K.w:[];K.w.push(L)};var G=function(M,V,Q){if(M instanceof Array){for(i in M){M[i]=G(M[i],V,Q)}return M}if(M instanceof Object){if(M.exp){delete (M.exp)}if(E){switch(M.vt){case"phone":var L=M.c?M.c.split(/,;\*\|/):[];var W=[];for(p in L){W.push(C(L[p],{t:"phone"}))}M.c=W.join(",");M.e="";break;case"contact":case"contacts":var U=M.c?(M.c instanceof Array?M.c:M.c.split(/,;\*|/)):[];var S=[];for(c in U){S.push(C(U[c],{t:"contact"}))}M.c=(M.c instanceof Array)?S:S[0];M.e="";break;case"uri":M.c=C(M.c,{t:"uri"});M.e="";break}}delete (M.w);for(property in M){var T=M[property];if((T===false)||(T===null)||(T==="")){delete (M[property])}else{M[property]=G(M[property],M,M.vt?M.vt:M.t)}}if(!E&&!!M&&!!M.t&&!!M.vt&&((M.t=="c")||(M.t=="e"))){switch(M.t){case"c":M.exp=s.parseString(M.c,M.vt);break;case"e":M.exp=s.parseExpression(M.e,false,M.vt);break}}return M}var R=M?M.toString():"";if(R.startsWith(":")&&R.endsWith(":")){if(E){var K=s.getDeviceById(M);if(K){M=C(M,{t:"device",n:K.an,a:!!V&&!!V.a&&(V.a.length>1)?[V.a]:[]});return M}var O=s.getLocationModeById(M);if(O){switch(O){case"Home":case"Night":case"Sleep":case"Away":case"Vacation":break;default:O="Custom Mode"}M=C(M,{t:"mode",n:O});return M}var P=s.getRoutineById(M);if(P){M=C(M,{t:"routine"});return M}var N=s.getContactById(M);if(N){M=C(M,{t:"contact"});return M}}M=C(M,{t:"unknown"});return M}return M};J=G(s.copy(J),"piston");J.l={};for(l in H){J.l[H[l].key]=H[l].value}s.warnings=F;return J};s.determineDeviceType=function(C){return u.determineDeviceType(C)};s.anonymizeDevices=function(E){var D={};for(i in E){var G=E[i];var F=u.determineDeviceType(G).replace(/([A-Z])/g," $1").replace(/^./,function(H){return H.toUpperCase()}).replace("Rgb ","RGB ");var C=D[F]?D[F]+1:1;D[F]=C;E[i].an=F+" "+C}return E};s.anonymizeContacts=function(G){var E={};for(i in G){var D=G[i];var F="John Doe";var C=E[F]?E[F]+1:1;E[F]=C;G[i].an=F+" "+C}return G};s.breakList=function(C){return C.replace(/,/g,"
")};var k=function(D){var E=D.getFullYear();var F=(1+D.getMonth()).toString();F=F.length>1?F:"0"+F;var C=D.getDate().toString();C=C.length>1?C:"0"+C;return F+"/"+C+"/"+E};s.getMonth=function(C){if(C){return["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"][C.getMonth()]}};s.getDay=function(C){if(C){return("0"+C.getDate()).substr(-2)}};s.timeSince=timeSince;s.timeCounter=timeCounter;s.timeLeft=timeLeft;s.currentTime=currentTime;s.tap=function(C){u.tap(C).then(function(D){})};s.test=function(){u.testPiston(s.pistonId)};s.togglePiston=function(E,D){if((!E)&&(!s.viewerPiston||!s.viewerPiston.app)){return}var F=E?E.i:s.pistonId;if(F){z.cancel(tmrRefresh);var C=!(E?E.e:s.viewerPiston.app.enabled);if(E){E.e=C}else{s.viewerPiston.app.enabled=C}if(C){u.resumePiston(F).then(function(G){s.onRefresh(G)})}else{u.pausePiston(F).then(function(G){s.onRefresh(G)})}}if(D&&e.preventDefault){D.preventDefault()}if(D&&D.stopPropagation){D.stopPropagation()}};s.configurePiston=function(C){s.configuredPistonId=s.configuredPistonId==C.i?null:C.i};s.showPiston=function(C){document.body.scrollTop=0;s.viewerPiston=null;s.pistonId=C.i;s.refresh();window.onSwipeRight=s.hidePiston};s.hidePiston=function(){document.body.scrollTop=0;s.pistonId=null;window.onSwipeRight=null};s.prepareActions=function(E){var G=[];var C=[];var J=[];var K=(E.id<=0);var F=s.viewerPiston.tasks;var I=s.viewerPiston.app.actions;for(action in I){if(I[action].pid==E.id){if(I[action].t){var H=I[action].t;for(t in H){var D=0;for(task in F){if((F[task].type=="cmd")&&(F[task].ownerId==I[action].id)&&(F[task].taskId==H[t].i)){if((D==0)||(D>F[task].time)){D=F[task].time}}}H[t].time=D}}if(K){G.push(I[action])}else{if(I[action].rs==false){J.push(I[action])}else{C.push(I[action])}}}}var D=0;for(task in F){if((F[task].type=="evt")&&(F[task].ownerId==E.id)){if((D==0)||(D>F[task].time)){D=F[task].time}}}E.time=D;E.actions=G;E.trueActions=C;E.falseActions=J;E.$scope=s;if(E.children){for(child in E.children){s.prepareActions(E.children[child])}}};s.hadRecentActivity=function(C){return C&&C.le&&C.le.event&&C.le.event.date&&(timeLeft((new Date(C.le.event.date)).getTime())>-120)};s.toggleViewerOptions=function(){s.viewerPiston.showOptions=!s.viewerPiston.showOptions};s.getSecondaryStatementName=function(){var C=s.viewerPiston.app.mode;switch(C){case"Latching":return"BUT IF";case"Then-If":return"THEN IF";case"Else-If":return"ELSE IF";case"Or-If":return"OR IF";case"And-If":return"AND IF"}return"IF"};s.serializeObject=function(C){return angular.toJson(C)};s.anonymizeObject=function(C,F){var E=s.serializeObject(C);var D=E.match(/(:[a-f0-9]{32}:)/g);if(D){D=D.unique()}for(i in D){E=E.replace(new RegExp(D[i],"g"),("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"+i).substr(-32))}return(F?E:angular.fromJson(E))};s.objectToBlob=function(G,N){N=N||"";var D=1024;var K=utoa(s.serializeObject(G));K+="|"+K.length.toString();var M=K.length;var J=Math.ceil(M/D);var L=new Array(J);for(var E=0;EY){var ab=O.slice(Y,K-1);var aa=parseFloat(ab.trim());if(!isNaN(aa)&&(L.test(ab.trim()))){S.push({t:(ab.indexOf(".")>=0?"decimal":"integer"),v:aa,l:Q(Y,K-2)});return true}if(typeof ab=="string"){if(["true","false"].indexOf(ab)>=0){S.push({t:"boolean",v:ab,l:Q(Y,K-2)})}else{S.push({t:"variable",x:ab,l:Q(Y,K-2)})}return true}S.push({t:"operand",v:O.slice(Y,K-1),l:Q(Y,K-2)});return true}return false}function T(ac){if(K-(ac?0:1)>Y){var ab=O.slice(Y,K-1);var aa=parseFloat(ab.trim());if((P!="phone")&&!isNaN(aa)&&(L.test(ab.trim()))){S.push({t:(ab.indexOf(".")>=0?"decimal":"integer"),v:aa,l:Q(Y,K-2)});return true}S.push({t:(["true","false"].indexOf(ab)>=0?"boolean":"string"),v:(ab=="null"?null:ab),l:Q(Y,K-2)})}}function W(){if(K-1>Y){var af=O.slice(Y,K-1);var ag=af.lastIndexOf(":");var ac=af;var ae="";if(ag>0){var ac=af.substr(0,ag).trim();ae=af.substr(ag+1).trim()}var ad=s.getDeviceByName(ac);if(ad&&ad.id){var ab=ae.toLowerCase();ae="";for(attributeIndex in ad.a){var aa=ad.a[attributeIndex];if(ab==aa.n.toLowerCase()){ae=aa.n}}if(!!ab&&!ae){ae="?"}S.push({t:"device",id:ad.id,a:ae,l:Q(Y-1,K-1)})}else{S.push({t:"device",x:ac,a:ae,l:Q(Y-1,K-1)})}}}function X(){var ac=O.slice(Y,K-1).toLowerCase();if(s.db.functions[ac]){G++;var ad=I();var aa=[];var ab=null;for(p in ad){if(!ab){ab={t:"expression",i:[]}}if((ad[p].t=="operator")&&(ad[p].o==",")){aa.push(ab);ab={t:"expression",i:[]}}else{ab.i.push(ad[p])}}if(ab){aa.push(ab)}S.push({t:"function",n:ac,i:aa,l:Q(Y,K-1)});G--}else{V();S.push({t:"expression",i:I(),l:Q(Y,K-1)});Y=K}}while(K":case"?":case":":if(J&&!D&&!E&&!H){var U=(K=","<=","<>","<<",">>"].indexOf(Z+U)>=0){K++;Z+=U}S.push({t:"operator",o:Z,l:Q(K-1,K-1)});Y=K}continue;case'"':if(J&&!D&&!E){H=!H;(H?V():T(true));Y=K}continue;case"'":if(J&&!H&&!D){E=!E;(E?V():T(true));Y=K}continue;case"(":if(J&&!D&&!H&&!E){C++;X();Y=K}continue;case")":if(J&&!D&&!H&&!E){C--;V();Y=K;return S}continue;case"[":if(J&&!H&&!E&&!D){D=true;V();Y=K}continue;case"]":if(J&&D&&!H&&!E){W();D=false;Y=K}continue;case"{":if(J==M){J++;T();Y=K;S.push({t:"expression",i:I(),l:Q(Y-1,K-1)});Y=K}else{J++;Y=K;S.push({t:"expression",i:I(),l:Q(Y-1,K-1)});Y=K}continue;case"}":V();J--;return S;continue}}K++;J?V():T();return S}var N=I();var R={t:"expression",i:N,str:O};if(J!=M){R.err="Invalid expression closure termination"}else{if(E){R.err="Invalid single quote termination"}else{if(H){R.err="Invalid double quote termination"}else{if(C){R.err="Invalid parenthesis closure termination"}}}}R.ok=!R.err;if(R.ok){R.ok=s.validateExpression(R)}return R};s.validateExpression=function(H){var E="";var C="";var G="";function D(J,M,L){if(!J){return""}J=J.toString().split(":");var N=parseInt(J[0]);var I=(J.length==2)?parseInt(J[1]):N;var K=H.str.substr(N,I-N+1);if((K.substr(0,1)=="[")&&(K.substr(-1,1)=="]")){K=K.substr(1,K.length-2)}if(M){K=K.split(M);if(L>=K.length){return""}return K[L].trim()}return K.trim()}function F(K){var I=true;var J="";var L="";if(K.i){for(subitem in K.i){I=I&&F(K.i[subitem])}}else{switch(K.t){case"device":if(!K.x&&!K.id){I=false;J="Invalid device "+D(K.l,":",0);L=K.l;break}if(!K.id&&K.x&&!((s.systemVars&&scope.systemVars[K.x])||(s.globalVars&&s.systemVars[K.x])||s.getVariableByName(K.x))){I=false;J="Invalid device variable "+D(K.l,":",0);L=K.l;break}if(K.a=="?"){I=false;J="Invalid attribute "+D(K.l,":",1);L=K.l;break}break;case"variable":if(K.x.startsWith("$args.")&&(K.x.length>6)){break}if(K.x.startsWith("$response.")&&(K.x.length>10)){break}if(s.systemVars&&s.systemVars[K.x]){break}if(s.globalVars&&s.globalVars[K.x]){break}if(!s.getVariableByName(K.x)){I=false;C=D(K.l);J="Variable "+C+" not found";L=K.l;break}break}}K.ok=I;if(J){K.err=J;if(!E){E=J;G=L}}return I}F(H);if(E){H.err=E;H.errVar=C;H.loc=G}return H.ok};s.hexToHsl=function(D){var J=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(D);if(!J){return{h:0,s:0,l:0}}var C=0+parseInt(J[1],16)/255;var H=0+parseInt(J[2],16)/255;var K=0+parseInt(J[3],16)/255;var L=Math.max(C,H,K),F=Math.min(C,H,K);var G,M,E=(L+F)/2;if(L==F){G=M=0}else{var I=L-F;M=(E>0.5)?I/(2-L-F):I/(L+F);switch(L){case C:G=(H-K)/I+(H