From 00a210a8674cf1a164e7396dabded2be4b5767e1 Mon Sep 17 00:00:00 2001 From: MHA Date: Thu, 17 Jun 2021 00:50:10 +0200 Subject: [PATCH 1/3] feat: add lock controller --- src/controllers/get-controller.ts | 2 ++ src/controllers/lock-controller.ts | 34 ++++++++++++++++++++++++++++++ src/types.ts | 10 +++++++++ 3 files changed, 46 insertions(+) create mode 100644 src/controllers/lock-controller.ts diff --git a/src/controllers/get-controller.ts b/src/controllers/get-controller.ts index 20c990a..8d49cff 100644 --- a/src/controllers/get-controller.ts +++ b/src/controllers/get-controller.ts @@ -5,6 +5,7 @@ import { CoverController } from './cover-controller'; import { FanController } from './fan-controller'; import { InputBooleanController } from './input-boolean-controller'; import { LightController } from './light-controller'; +import { LockController } from './lock-controller'; import { SwitchController } from './switch-controller'; export class ControllerFactory { @@ -16,6 +17,7 @@ export class ControllerFactory { [Domain.SWITCH]: SwitchController, [Domain.COVER]: CoverController, [Domain.INPUT_BOOLEAN]: InputBooleanController, + [Domain.LOCK]: LockController, }; if (typeof mapping[domain] === 'undefined') { throw new Error(`Unsupported entity type: ${domain}`) diff --git a/src/controllers/lock-controller.ts b/src/controllers/lock-controller.ts new file mode 100644 index 0000000..211b48f --- /dev/null +++ b/src/controllers/lock-controller.ts @@ -0,0 +1,34 @@ +import { STATES_OFF } from 'custom-card-helpers'; +import { Controller } from './controller'; + +export class LockController extends Controller { + _min = 0; + _max = 1; + _targetValue; + + get _value(): number { + return !STATES_OFF.includes(this.stateObj.state) + ? 1 + : 0; + } + + set _value(value) { + const service = value > 0 ? 'lock' : 'unlock'; + this._hass.callService('lock', service, { + // eslint-disable-next-line @typescript-eslint/camelcase + entity_id: this.stateObj.entity_id + }); + } + + get _step(): number { + return 1; + } + + get label(): string { + if (this.percentage > 0) { + return this._hass.localize('component.lock.state._.locked'); + } + return this._hass.localize('component.lock.state._.unlocked'); + } + +} diff --git a/src/types.ts b/src/types.ts index dad0812..92e1279 100644 --- a/src/types.ts +++ b/src/types.ts @@ -80,6 +80,7 @@ export enum Domain { FAN = 'fan', COVER = 'cover', INPUT_BOOLEAN = 'input_boolean', + LOCK = 'lock', } export const ActionButtonConfigDefault: ActionButtonConfig = { @@ -157,4 +158,13 @@ export const SliderConfigDefaultDomain: Map = new Map([ show_track: false, force_square: false, }], + [Domain.LOCK, { + percentage: true, + direction: SliderDirections.LEFT_RIGHT, + background: SliderBackground.SOLID, + use_state_color: false, + use_percentage_bg_opacity: false, + show_track: false, + force_square: false, + }], ]) From 9748d00aabdf479404047bb70b6ba2c69dd1dc0a Mon Sep 17 00:00:00 2001 From: MHA Date: Thu, 17 Jun 2021 01:45:43 +0200 Subject: [PATCH 2/3] fix: reverse label --- dist/slider-button-card.js | 264 ++++++++++++++++------------- src/controllers/lock-controller.ts | 4 +- 2 files changed, 144 insertions(+), 124 deletions(-) diff --git a/dist/slider-button-card.js b/dist/slider-button-card.js index 0137701..720a613 100644 --- a/dist/slider-button-card.js +++ b/dist/slider-button-card.js @@ -12,7 +12,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ -function t(t,e,i,s){var r,n=arguments.length,a=n<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(a=(n<3?r(a):n>3?r(e,i,a):r(e,i))||a);return n>3&&a&&Object.defineProperty(e,i,a),a}var e=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,i="[^\\s]+",s=/\[([^]*?)\]/gm;function r(t,e){for(var i=[],s=0,r=t.length;s-1?s:null}};function a(t){for(var e=[],i=1;i3?0:(t-t%10!=10?1:0)*t%10]}},d=a({},h),u=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+u(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+u(Math.floor(Math.abs(e)/60),2)+":"+u(Math.abs(e)%60,2)}},g=function(t){return+t-1},f=[null,"[1-9]\\d?"],b=[null,i],m=["isPm",i,function(t,e){var i=t.toLowerCase();return i===e.amPm[0]?0:i===e.amPm[1]?1:null}],v=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var i=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?i:-i}return 0}],_=(n("monthNamesShort"),n("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var y=function(t,i,r){if(void 0===i&&(i=_.default),void 0===r&&(r={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var n=[];i=(i=_[i]||i).replace(s,(function(t,e){return n.push(e),"@@@"}));var o=a(a({},d),r);return(i=i.replace(e,(function(e){return p[e](t,o)}))).replace(/@@@/g,(function(){return n.shift()}))};(function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}})(),function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}}();function w(t){return t.substr(0,t.indexOf("."))}function S(t){return w(t.entity_id)}var x="hass:bookmark",k=["closed","locked","off"],O=function(t,e,i,s){s=s||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===s.bubbles||s.bubbles,cancelable:Boolean(s.cancelable),composed:void 0===s.composed||s.composed});return r.detail=i,t.dispatchEvent(r),r},T={alert:"hass:alert",automation:"hass:playlist-play",calendar:"hass:calendar",camera:"hass:video",climate:"hass:thermostat",configurator:"hass:settings",conversation:"hass:text-to-speech",device_tracker:"hass:account",fan:"hass:fan",group:"hass:google-circles-communities",history_graph:"hass:chart-line",homeassistant:"hass:home-assistant",homekit:"hass:home-automation",image_processing:"hass:image-filter-frames",input_boolean:"hass:drawing",input_datetime:"hass:calendar-clock",input_number:"hass:ray-vertex",input_select:"hass:format-list-bulleted",input_text:"hass:textbox",light:"hass:lightbulb",mailbox:"hass:mailbox",notify:"hass:comment-alert",person:"hass:account",plant:"hass:flower",proximity:"hass:apple-safari",remote:"hass:remote",scene:"hass:google-pages",script:"hass:file-document",sensor:"hass:eye",simple_alarm:"hass:bell",sun:"hass:white-balance-sunny",switch:"hass:flash",timer:"hass:timer",updater:"hass:cloud-upload",vacuum:"hass:robot-vacuum",water_heater:"hass:thermometer",weblink:"hass:open-in-new"};function M(t,e){if(t in T)return T[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"hass:bell-plus";case"armed_night":return"hass:bell-sleep";case"disarmed":return"hass:bell-outline";case"triggered":return"hass:bell-ring";default:return"hass:bell"}case"binary_sensor":return e&&"off"===e?"hass:radiobox-blank":"hass:checkbox-marked-circle";case"cover":return"closed"===e?"hass:window-closed":"hass:window-open";case"lock":return e&&"unlocked"===e?"hass:lock-open":"hass:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"hass:cast-connected":"hass:cast";case"zwave":switch(e){case"dead":return"hass:emoticon-dead";case"sleeping":return"hass:sleep";case"initializing":return"hass:timer-sand";default:return"hass:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),x}}var C=function(t){O(window,"haptic",t)},$=function(t,e){return function(t,e,i){void 0===i&&(i=!0);var s,r=w(e),n="group"===r?"homeassistant":r;switch(r){case"lock":s=i?"unlock":"lock";break;case"cover":s=i?"open_cover":"close_cover";break;default:s=i?"turn_on":"turn_off"}return t.callService(n,s,{entity_id:e})}(t,e,k.includes(t.states[e].state))},A=function(t,e,i,s){if(s||(s={action:"more-info"}),!s.confirmation||s.confirmation.exemptions&&s.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||(C("warning"),confirm(s.confirmation.text||"Are you sure you want to "+s.action+"?")))switch(s.action){case"more-info":(i.entity||i.camera_image)&&O(t,"hass-more-info",{entityId:i.entity?i.entity:i.camera_image});break;case"navigate":s.navigation_path&&function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),O(window,"location-changed",{replace:i})}(0,s.navigation_path);break;case"url":s.url_path&&window.open(s.url_path);break;case"toggle":i.entity&&($(e,i.entity),C("success"));break;case"call-service":if(!s.service)return void C("failure");var r=s.service.split(".",2);e.callService(r[0],r[1],s.service_data),C("success");break;case"fire-dom-event":O(t,"ll-custom",s)}},P=function(t,e,i,s){var r;"double_tap"===s&&i.double_tap_action?r=i.double_tap_action:"hold"===s&&i.hold_action?r=i.hold_action:"tap"===s&&i.tap_action&&(r=i.tap_action),A(t,e,i,r)};var E={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi"},j={binary_sensor:function(t){var e=t.state&&"off"===t.state;switch(t.attributes.device_class){case"battery":return e?"hass:battery":"hass:battery-outline";case"cold":return e?"hass:thermometer":"hass:snowflake";case"connectivity":return e?"hass:server-network-off":"hass:server-network";case"door":return e?"hass:door-closed":"hass:door-open";case"garage_door":return e?"hass:garage":"hass:garage-open";case"gas":case"power":case"problem":case"safety":case"smoke":return e?"hass:shield-check":"hass:alert";case"heat":return e?"hass:thermometer":"hass:fire";case"light":return e?"hass:brightness-5":"hass:brightness-7";case"lock":return e?"hass:lock":"hass:lock-open";case"moisture":return e?"hass:water-off":"hass:water";case"motion":return e?"hass:walk":"hass:run";case"occupancy":return e?"hass:home-outline":"hass:home";case"opening":return e?"hass:square":"hass:square-outline";case"plug":return e?"hass:power-plug-off":"hass:power-plug";case"presence":return e?"hass:home-outline":"hass:home";case"sound":return e?"hass:music-note-off":"hass:music-note";case"vibration":return e?"hass:crop-portrait":"hass:vibrate";case"window":return e?"hass:window-closed":"hass:window-open";default:return e?"hass:radiobox-blank":"hass:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"hass:garage-open":"hass:garage";case"door":return e?"hass:door-open":"hass:door-closed";case"shutter":return e?"hass:window-shutter-open":"hass:window-shutter";case"blind":return e?"hass:blinds-open":"hass:blinds";case"window":return e?"hass:window-open":"hass:window-closed";default:return M("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in E)return E[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"hass:battery-unknown";var s=10*Math.round(i/10);return s>=100?"hass:battery":s<=0?"hass:battery-alert":"hass:battery-"+s}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"hass:thermometer":M("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?M("input_datetime"):"hass:calendar":"hass:clock"}}; +function t(t,e,i,s){var r,o=arguments.length,n=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,s);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(n=(o<3?r(n):o>3?r(e,i,n):r(e,i))||n);return o>3&&n&&Object.defineProperty(e,i,n),n}var e=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,i="[^\\s]+",s=/\[([^]*?)\]/gm;function r(t,e){for(var i=[],s=0,r=t.length;s-1?s:null}};function n(t){for(var e=[],i=1;i3?0:(t-t%10!=10?1:0)*t%10]}},d=n({},h),u=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+u(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+u(Math.floor(Math.abs(e)/60),2)+":"+u(Math.abs(e)%60,2)}},g=function(t){return+t-1},f=[null,"[1-9]\\d?"],b=[null,i],m=["isPm",i,function(t,e){var i=t.toLowerCase();return i===e.amPm[0]?0:i===e.amPm[1]?1:null}],_=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var i=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?i:-i}return 0}],v=(o("monthNamesShort"),o("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var y=function(t,i,r){if(void 0===i&&(i=v.default),void 0===r&&(r={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var o=[];i=(i=v[i]||i).replace(s,(function(t,e){return o.push(e),"@@@"}));var a=n(n({},d),r);return(i=i.replace(e,(function(e){return p[e](t,a)}))).replace(/@@@/g,(function(){return o.shift()}))};(function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}})(),function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}}();function w(t){return t.substr(0,t.indexOf("."))}function S(t){return w(t.entity_id)}var x="hass:bookmark",k=["closed","locked","off"],O=function(t,e,i,s){s=s||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===s.bubbles||s.bubbles,cancelable:Boolean(s.cancelable),composed:void 0===s.composed||s.composed});return r.detail=i,t.dispatchEvent(r),r},T={alert:"hass:alert",automation:"hass:playlist-play",calendar:"hass:calendar",camera:"hass:video",climate:"hass:thermostat",configurator:"hass:settings",conversation:"hass:text-to-speech",device_tracker:"hass:account",fan:"hass:fan",group:"hass:google-circles-communities",history_graph:"hass:chart-line",homeassistant:"hass:home-assistant",homekit:"hass:home-automation",image_processing:"hass:image-filter-frames",input_boolean:"hass:drawing",input_datetime:"hass:calendar-clock",input_number:"hass:ray-vertex",input_select:"hass:format-list-bulleted",input_text:"hass:textbox",light:"hass:lightbulb",mailbox:"hass:mailbox",notify:"hass:comment-alert",person:"hass:account",plant:"hass:flower",proximity:"hass:apple-safari",remote:"hass:remote",scene:"hass:google-pages",script:"hass:file-document",sensor:"hass:eye",simple_alarm:"hass:bell",sun:"hass:white-balance-sunny",switch:"hass:flash",timer:"hass:timer",updater:"hass:cloud-upload",vacuum:"hass:robot-vacuum",water_heater:"hass:thermometer",weblink:"hass:open-in-new"};function C(t,e){if(t in T)return T[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"hass:bell-plus";case"armed_night":return"hass:bell-sleep";case"disarmed":return"hass:bell-outline";case"triggered":return"hass:bell-ring";default:return"hass:bell"}case"binary_sensor":return e&&"off"===e?"hass:radiobox-blank":"hass:checkbox-marked-circle";case"cover":return"closed"===e?"hass:window-closed":"hass:window-open";case"lock":return e&&"unlocked"===e?"hass:lock-open":"hass:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"hass:cast-connected":"hass:cast";case"zwave":switch(e){case"dead":return"hass:emoticon-dead";case"sleeping":return"hass:sleep";case"initializing":return"hass:timer-sand";default:return"hass:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),x}}var M=function(t){O(window,"haptic",t)},$=function(t,e){return function(t,e,i){void 0===i&&(i=!0);var s,r=w(e),o="group"===r?"homeassistant":r;switch(r){case"lock":s=i?"unlock":"lock";break;case"cover":s=i?"open_cover":"close_cover";break;default:s=i?"turn_on":"turn_off"}return t.callService(o,s,{entity_id:e})}(t,e,k.includes(t.states[e].state))},A=function(t,e,i,s){if(s||(s={action:"more-info"}),!s.confirmation||s.confirmation.exemptions&&s.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||(M("warning"),confirm(s.confirmation.text||"Are you sure you want to "+s.action+"?")))switch(s.action){case"more-info":(i.entity||i.camera_image)&&O(t,"hass-more-info",{entityId:i.entity?i.entity:i.camera_image});break;case"navigate":s.navigation_path&&function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),O(window,"location-changed",{replace:i})}(0,s.navigation_path);break;case"url":s.url_path&&window.open(s.url_path);break;case"toggle":i.entity&&($(e,i.entity),M("success"));break;case"call-service":if(!s.service)return void M("failure");var r=s.service.split(".",2);e.callService(r[0],r[1],s.service_data),M("success");break;case"fire-dom-event":O(t,"ll-custom",s)}},P=function(t,e,i,s){var r;"double_tap"===s&&i.double_tap_action?r=i.double_tap_action:"hold"===s&&i.hold_action?r=i.hold_action:"tap"===s&&i.tap_action&&(r=i.tap_action),A(t,e,i,r)};var E={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi"},j={binary_sensor:function(t){var e=t.state&&"off"===t.state;switch(t.attributes.device_class){case"battery":return e?"hass:battery":"hass:battery-outline";case"cold":return e?"hass:thermometer":"hass:snowflake";case"connectivity":return e?"hass:server-network-off":"hass:server-network";case"door":return e?"hass:door-closed":"hass:door-open";case"garage_door":return e?"hass:garage":"hass:garage-open";case"gas":case"power":case"problem":case"safety":case"smoke":return e?"hass:shield-check":"hass:alert";case"heat":return e?"hass:thermometer":"hass:fire";case"light":return e?"hass:brightness-5":"hass:brightness-7";case"lock":return e?"hass:lock":"hass:lock-open";case"moisture":return e?"hass:water-off":"hass:water";case"motion":return e?"hass:walk":"hass:run";case"occupancy":return e?"hass:home-outline":"hass:home";case"opening":return e?"hass:square":"hass:square-outline";case"plug":return e?"hass:power-plug-off":"hass:power-plug";case"presence":return e?"hass:home-outline":"hass:home";case"sound":return e?"hass:music-note-off":"hass:music-note";case"vibration":return e?"hass:crop-portrait":"hass:vibrate";case"window":return e?"hass:window-closed":"hass:window-open";default:return e?"hass:radiobox-blank":"hass:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"hass:garage-open":"hass:garage";case"door":return e?"hass:door-open":"hass:door-closed";case"shutter":return e?"hass:window-shutter-open":"hass:window-shutter";case"blind":return e?"hass:blinds-open":"hass:blinds";case"window":return e?"hass:window-open":"hass:window-closed";default:return C("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in E)return E[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"hass:battery-unknown";var s=10*Math.round(i/10);return s>=100?"hass:battery":s<=0?"hass:battery-alert":"hass:battery-"+s}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"hass:thermometer":C("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?C("input_datetime"):"hass:calendar":"hass:clock"}}; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -25,7 +25,7 @@ function t(t,e,i,s){var r,n=arguments.length,a=n<3?e:null===s?s=Object.getOwnPro * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */const V="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,N=(t,e,i=null)=>{for(;e!==i;){const i=e.nextSibling;t.removeChild(e),e=i}},R=`{{lit-${String(Math.random()).slice(2)}}}`,H=`\x3c!--${R}--\x3e`,D=new RegExp(`${R}|${H}`);class U{constructor(t,e){this.parts=[],this.element=e;const i=[],s=[],r=document.createTreeWalker(e.content,133,null,!1);let n=0,a=-1,o=0;const{strings:l,values:{length:c}}=t;for(;o0;){const e=l[o],i=F.exec(e)[2],s=i.toLowerCase()+"$lit$",r=t.getAttribute(s);t.removeAttribute(s);const n=r.split(D);this.parts.push({type:"attribute",index:a,name:i,strings:n}),o+=n.length-1}}"TEMPLATE"===t.tagName&&(s.push(t),r.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(R)>=0){const s=t.parentNode,r=e.split(D),n=r.length-1;for(let e=0;e{const i=t.length-e.length;return i>=0&&t.slice(i)===e},z=t=>-1!==t.index,L=()=>document.createComment(""),F=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function q(t,e){const{element:{content:i},parts:s}=t,r=document.createTreeWalker(i,133,null,!1);let n=B(s),a=s[n],o=-1,l=0;const c=[];let h=null;for(;r.nextNode();){o++;const t=r.currentNode;for(t.previousSibling===h&&(h=null),e.has(t)&&(c.push(t),null===h&&(h=t)),null!==h&&l++;void 0!==a&&a.index===o;)a.index=null!==h?-1:a.index-l,n=B(s,n),a=s[n]}c.forEach(t=>t.parentNode.removeChild(t))}const Y=t=>{let e=11===t.nodeType?0:1;const i=document.createTreeWalker(t,133,null,!1);for(;i.nextNode();)e++;return e},B=(t,e=-1)=>{for(let i=e+1;i{for(;e!==i;){const i=e.nextSibling;t.removeChild(e),e=i}},R=`{{lit-${String(Math.random()).slice(2)}}}`,D=`\x3c!--${R}--\x3e`,H=new RegExp(`${R}|${D}`);class I{constructor(t,e){this.parts=[],this.element=e;const i=[],s=[],r=document.createTreeWalker(e.content,133,null,!1);let o=0,n=-1,a=0;const{strings:c,values:{length:l}}=t;for(;a0;){const e=c[a],i=F.exec(e)[2],s=i.toLowerCase()+"$lit$",r=t.getAttribute(s);t.removeAttribute(s);const o=r.split(H);this.parts.push({type:"attribute",index:n,name:i,strings:o}),a+=o.length-1}}"TEMPLATE"===t.tagName&&(s.push(t),r.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(R)>=0){const s=t.parentNode,r=e.split(H),o=r.length-1;for(let e=0;e{const i=t.length-e.length;return i>=0&&t.slice(i)===e},U=t=>-1!==t.index,z=()=>document.createComment(""),F=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function q(t,e){const{element:{content:i},parts:s}=t,r=document.createTreeWalker(i,133,null,!1);let o=B(s),n=s[o],a=-1,c=0;const l=[];let h=null;for(;r.nextNode();){a++;const t=r.currentNode;for(t.previousSibling===h&&(h=null),e.has(t)&&(l.push(t),null===h&&(h=t)),null!==h&&c++;void 0!==n&&n.index===a;)n.index=null!==h?-1:n.index-c,o=B(s,o),n=s[o]}l.forEach(t=>t.parentNode.removeChild(t))}const Y=t=>{let e=11===t.nodeType?0:1;const i=document.createTreeWalker(t,133,null,!1);for(;i.nextNode();)e++;return e},B=(t,e=-1)=>{for(let i=e+1;i(...e)=>{const i=t(...e);return W.set(i,!0),i},J=t=>"function"==typeof t&&W.has(t),Z={},X={}; +const G=new WeakMap,W=t=>(...e)=>{const i=t(...e);return G.set(i,!0),i},J=t=>"function"==typeof t&&G.has(t),Z={},X={}; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -53,7 +53,7 @@ const W=new WeakMap,G=t=>(...e)=>{const i=t(...e);return W.set(i,!0),i},J=t=>"fu * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -class K{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this.options=i}update(t){let e=0;for(const i of this.__parts)void 0!==i&&i.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=V?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],i=this.template.parts,s=document.createTreeWalker(t,133,null,!1);let r,n=0,a=0,o=s.nextNode();for(;nt}),tt=` ${R} `;class et{constructor(t,e,i,s){this.strings=t,this.values=e,this.type=i,this.processor=s}getHTML(){const t=this.strings.length-1;let e="",i=!1;for(let s=0;s-1||i)&&-1===t.indexOf("--\x3e",r+1);const n=F.exec(t);e+=null===n?t+(i?tt:H):t.substr(0,n.index)+n[1]+n[2]+"$lit$"+n[3]+R}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==Q&&(e=Q.createHTML(e)),t.innerHTML=e,t}} + */const Q=window.trustedTypes&&trustedTypes.createPolicy("lit-html",{createHTML:t=>t}),tt=` ${R} `;class et{constructor(t,e,i,s){this.strings=t,this.values=e,this.type=i,this.processor=s}getHTML(){const t=this.strings.length-1;let e="",i=!1;for(let s=0;s-1||i)&&-1===t.indexOf("--\x3e",r+1);const o=F.exec(t);e+=null===o?t+(i?tt:D):t.substr(0,o.index)+o[1]+o[2]+"$lit$"+o[3]+R}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==Q&&(e=Q.createHTML(e)),t.innerHTML=e,t}} /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -79,7 +79,7 @@ class K{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */const it=t=>null===t||!("object"==typeof t||"function"==typeof t),st=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class rt{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let t=0;t{try{const t={get capture(){return ht=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class dt{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;J(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Z,t(this)}if(this.__pendingValue===Z)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=ut(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=Z}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const ut=t=>t&&(ht?{capture:t.capture,passive:t.passive,once:t.once}:t.capture) + */const it=t=>null===t||!("object"==typeof t||"function"==typeof t),st=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class rt{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let t=0;t{try{const t={get capture(){return ht=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class dt{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;J(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Z,t(this)}if(this.__pendingValue===Z)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=ut(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=Z}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const ut=t=>t&&(ht?{capture:t.capture,passive:t.passive,once:t.once}:t.capture) /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -92,7 +92,7 @@ class K{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */;function pt(t){let e=gt.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},gt.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const s=t.strings.join(R);return i=e.keyString.get(s),void 0===i&&(i=new U(t,t.getTemplateElement()),e.keyString.set(s,i)),e.stringsArray.set(t.strings,i),i}const gt=new Map,ft=new WeakMap; + */;function pt(t){let e=gt.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},gt.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const s=t.strings.join(R);return i=e.keyString.get(s),void 0===i&&(i=new I(t,t.getTemplateElement()),e.keyString.set(s,i)),e.stringsArray.set(t.strings,i),i}const gt=new Map,ft=new WeakMap; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -119,7 +119,7 @@ class K{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new lt(t,e.slice(1),i).parts}if("@"===r)return[new dt(t,e.slice(1),s.eventContext)];if("?"===r)return[new ot(t,e.slice(1),i)];return new rt(t,e,i).parts}handleTextExpression(t){return new at(t)}}; +class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new ct(t,e.slice(1),i).parts}if("@"===r)return[new dt(t,e.slice(1),s.eventContext)];if("?"===r)return[new at(t,e.slice(1),i)];return new rt(t,e,i).parts}handleTextExpression(t){return new nt(t)}}; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -145,7 +145,7 @@ class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new lt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */,vt=(t,e)=>`${t}--${e}`;let _t=!0;void 0===window.ShadyCSS?_t=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),_t=!1);const yt=t=>e=>{const i=vt(e.type,t);let s=gt.get(i);void 0===s&&(s={stringsArray:new WeakMap,keyString:new Map},gt.set(i,s));let r=s.stringsArray.get(e.strings);if(void 0!==r)return r;const n=e.strings.join(R);if(r=s.keyString.get(n),void 0===r){const i=e.getTemplateElement();_t&&window.ShadyCSS.prepareTemplateDom(i,t),r=new U(e,i),s.keyString.set(n,r)}return s.stringsArray.set(e.strings,r),r},wt=["html","svg"],St=new Set,xt=(t,e,i)=>{St.add(t);const s=i?i.element:document.createElement("template"),r=e.querySelectorAll("style"),{length:n}=r;if(0===n)return void window.ShadyCSS.prepareTemplateStyles(s,t);const a=document.createElement("style");for(let t=0;t{wt.forEach(e=>{const i=gt.get(vt(e,t));void 0!==i&&i.keyString.forEach(t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{i.add(t)}),q(t,i)})})})(t);const o=s.content;i?function(t,e,i=null){const{element:{content:s},parts:r}=t;if(null==i)return void s.appendChild(e);const n=document.createTreeWalker(s,133,null,!1);let a=B(r),o=0,l=-1;for(;n.nextNode();){l++;for(n.currentNode===i&&(o=Y(e),i.parentNode.insertBefore(e,i));-1!==a&&r[a].index===l;){if(o>0){for(;-1!==a;)r[a].index+=o,a=B(r,a);return}a=B(r,a)}}}(i,a,o.firstChild):o.insertBefore(a,o.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const l=o.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){o.insertBefore(a,o.firstChild);const t=new Set;t.add(a),q(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const kt={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},Ot=(t,e)=>e!==t&&(e==e||t==t),Tt={attribute:!0,type:String,converter:kt,reflect:!1,hasChanged:Ot};class Mt extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,i)=>{const s=this._attributeNameForProperty(i,e);void 0!==s&&(this._attributeToPropertyMap.set(s,i),t.push(s))}),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach((t,e)=>this._classProperties.set(e,t))}}static createProperty(t,e=Tt){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():"__"+t,s=this.getPropertyDescriptor(t,i,e);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(s){const r=this[t];this[e]=s,this.requestUpdateInternal(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||Tt}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=Ot){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,s=e.converter||kt,r="function"==typeof s?s:s.fromAttribute;return r?r(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,s=e.converter;return(s&&s.toAttribute||kt.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise(t=>this._enableUpdatingResolver=t),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}})}_applyInstanceProperties(){this._instanceProperties.forEach((t,e)=>this[e]=t),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=Tt){const s=this.constructor,r=s._attributeNameForProperty(t,i);if(void 0!==r){const t=s._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(r):this.setAttribute(r,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,s=i._attributeToPropertyMap.get(t);if(void 0!==s){const t=i.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let s=!0;if(void 0!==t){const r=this.constructor;i=i||r.getPropertyOptions(t),r._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):s=!1}!this._hasRequestedUpdate&&s&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((t,e)=>this._propertyToAttribute(e,this[e],t)),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}Mt.finalized=!0; + */,_t=(t,e)=>`${t}--${e}`;let vt=!0;void 0===window.ShadyCSS?vt=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),vt=!1);const yt=t=>e=>{const i=_t(e.type,t);let s=gt.get(i);void 0===s&&(s={stringsArray:new WeakMap,keyString:new Map},gt.set(i,s));let r=s.stringsArray.get(e.strings);if(void 0!==r)return r;const o=e.strings.join(R);if(r=s.keyString.get(o),void 0===r){const i=e.getTemplateElement();vt&&window.ShadyCSS.prepareTemplateDom(i,t),r=new I(e,i),s.keyString.set(o,r)}return s.stringsArray.set(e.strings,r),r},wt=["html","svg"],St=new Set,xt=(t,e,i)=>{St.add(t);const s=i?i.element:document.createElement("template"),r=e.querySelectorAll("style"),{length:o}=r;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(s,t);const n=document.createElement("style");for(let t=0;t{wt.forEach(e=>{const i=gt.get(_t(e,t));void 0!==i&&i.keyString.forEach(t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{i.add(t)}),q(t,i)})})})(t);const a=s.content;i?function(t,e,i=null){const{element:{content:s},parts:r}=t;if(null==i)return void s.appendChild(e);const o=document.createTreeWalker(s,133,null,!1);let n=B(r),a=0,c=-1;for(;o.nextNode();){c++;for(o.currentNode===i&&(a=Y(e),i.parentNode.insertBefore(e,i));-1!==n&&r[n].index===c;){if(a>0){for(;-1!==n;)r[n].index+=a,n=B(r,n);return}n=B(r,n)}}}(i,n,a.firstChild):a.insertBefore(n,a.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const c=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==c)e.insertBefore(c.cloneNode(!0),e.firstChild);else if(i){a.insertBefore(n,a.firstChild);const t=new Set;t.add(n),q(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const kt={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},Ot=(t,e)=>e!==t&&(e==e||t==t),Tt={attribute:!0,type:String,converter:kt,reflect:!1,hasChanged:Ot};class Ct extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,i)=>{const s=this._attributeNameForProperty(i,e);void 0!==s&&(this._attributeToPropertyMap.set(s,i),t.push(s))}),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach((t,e)=>this._classProperties.set(e,t))}}static createProperty(t,e=Tt){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():"__"+t,s=this.getPropertyDescriptor(t,i,e);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(s){const r=this[t];this[e]=s,this.requestUpdateInternal(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||Tt}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=Ot){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,s=e.converter||kt,r="function"==typeof s?s:s.fromAttribute;return r?r(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,s=e.converter;return(s&&s.toAttribute||kt.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise(t=>this._enableUpdatingResolver=t),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}})}_applyInstanceProperties(){this._instanceProperties.forEach((t,e)=>this[e]=t),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=Tt){const s=this.constructor,r=s._attributeNameForProperty(t,i);if(void 0!==r){const t=s._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(r):this.setAttribute(r,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,s=i._attributeToPropertyMap.get(t);if(void 0!==s){const t=i.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let s=!0;if(void 0!==t){const r=this.constructor;i=i||r.getPropertyOptions(t),r._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):s=!1}!this._hasRequestedUpdate&&s&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((t,e)=>this._propertyToAttribute(e,this[e],t)),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}Ct.finalized=!0; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -159,7 +159,7 @@ class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new lt * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -const Ct=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:s}=e;return{kind:i,elements:s,finisher(e){window.customElements.define(t,e)}}})(t,e),$t=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function At(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):$t(t,e)}function Pt(t){return At({attribute:!1,hasChanged:null==t?void 0:t.hasChanged})}function Et(t,e){return(i,s)=>{const r={get(){return this.renderRoot.querySelector(t)},enumerable:!0,configurable:!0};if(e){const e=void 0!==s?s:i.key,n="symbol"==typeof e?Symbol():"__"+e;r.get=function(){return void 0===this[n]&&(this[n]=this.renderRoot.querySelector(t)),this[n]}}return void 0!==s?jt(r,i,s):Vt(r,i)}}const jt=(t,e,i)=>{Object.defineProperty(e,i,t)},Vt=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}) +const Mt=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:s}=e;return{kind:i,elements:s,finisher(e){window.customElements.define(t,e)}}})(t,e),$t=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function At(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):$t(t,e)}function Pt(t){return At({attribute:!1,hasChanged:null==t?void 0:t.hasChanged})}function Et(t,e){return(i,s)=>{const r={get(){return this.renderRoot.querySelector(t)},enumerable:!0,configurable:!0};if(e){const e=void 0!==s?s:i.key,o="symbol"==typeof e?Symbol():"__"+e;r.get=function(){return void 0===this[o]&&(this[o]=this.renderRoot.querySelector(t)),this[o]}}return void 0!==s?jt(r,i,s):Nt(r,i)}}const jt=(t,e,i)=>{Object.defineProperty(e,i,t)},Nt=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}) /** @license Copyright (c) 2019 The Polymer Project Authors. All rights reserved. @@ -169,7 +169,7 @@ http://polymer.github.io/AUTHORS.txt The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt -*/,Nt=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Rt=Symbol();class Ht{constructor(t,e){if(e!==Rt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(Nt?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const Dt=(t,...e)=>{const i=e.reduce((e,i,s)=>e+(t=>{if(t instanceof Ht)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(i)+t[s+1],t[0]);return new Ht(i,Rt)}; +*/,Vt=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Rt=Symbol();class Dt{constructor(t,e){if(e!==Rt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(Vt?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const Ht=(t,...e)=>{const i=e.reduce((e,i,s)=>e+(t=>{if(t instanceof Dt)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(i)+t[s+1],t[0]);return new Dt(i,Rt)}; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -183,7 +183,7 @@ found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -(window.litElementVersions||(window.litElementVersions=[])).push("2.5.1");const Ut={};class It extends Mt{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t),i),i=e(t,new Set),s=[];i.forEach(t=>s.unshift(t)),this._styles=s}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map(t=>{if(t instanceof CSSStyleSheet&&!Nt){const e=Array.prototype.slice.call(t.cssRules).reduce((t,e)=>t+e.cssText,"");return new Ht(String(e),Rt)}return t})}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow(this.constructor.shadowRootOptions)}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?Nt?this.renderRoot.adoptedStyleSheets=t.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==Ut&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){return Ut}}It.finalized=!0,It.render=(t,e,i)=>{if(!i||"object"!=typeof i||!i.scopeName)throw new Error("The `scopeName` option is required.");const s=i.scopeName,r=ft.has(e),n=_t&&11===e.nodeType&&!!e.host,a=n&&!St.has(s),o=a?document.createDocumentFragment():e;if(((t,e,i)=>{let s=ft.get(e);void 0===s&&(N(e,e.firstChild),ft.set(e,s=new at(Object.assign({templateFactory:pt},i))),s.appendInto(e)),s.setValue(t),s.commit()})(t,o,Object.assign({templateFactory:yt(s)},i)),a){const t=ft.get(o);ft.delete(o);const i=t.value instanceof K?t.value.template:void 0;xt(s,o,i),N(e,e.firstChild),e.appendChild(o),ft.set(e,t)}!r&&n&&window.ShadyCSS.styleElement(e.host)},It.shadowRootOptions={mode:"open"}; +(window.litElementVersions||(window.litElementVersions=[])).push("2.5.1");const It={};class Lt extends Ct{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t),i),i=e(t,new Set),s=[];i.forEach(t=>s.unshift(t)),this._styles=s}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map(t=>{if(t instanceof CSSStyleSheet&&!Vt){const e=Array.prototype.slice.call(t.cssRules).reduce((t,e)=>t+e.cssText,"");return new Dt(String(e),Rt)}return t})}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow(this.constructor.shadowRootOptions)}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?Vt?this.renderRoot.adoptedStyleSheets=t.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==It&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){return It}}Lt.finalized=!0,Lt.render=(t,e,i)=>{if(!i||"object"!=typeof i||!i.scopeName)throw new Error("The `scopeName` option is required.");const s=i.scopeName,r=ft.has(e),o=vt&&11===e.nodeType&&!!e.host,n=o&&!St.has(s),a=n?document.createDocumentFragment():e;if(((t,e,i)=>{let s=ft.get(e);void 0===s&&(V(e,e.firstChild),ft.set(e,s=new nt(Object.assign({templateFactory:pt},i))),s.appendInto(e)),s.setValue(t),s.commit()})(t,a,Object.assign({templateFactory:yt(s)},i)),n){const t=ft.get(a);ft.delete(a);const i=t.value instanceof K?t.value.template:void 0;xt(s,a,i),V(e,e.firstChild),e.appendChild(a),ft.set(e,t)}!r&&o&&window.ShadyCSS.styleElement(e.host)},Lt.shadowRootOptions={mode:"open"}; /** * @license * Copyright (c) 2018 The Polymer Project Authors. All rights reserved. @@ -197,38 +197,38 @@ found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;const e=(t.getAttribute("class")||"").split(/\s+/);for(const t of e)this.classes.add(t)}add(t){this.classes.add(t),this.changed=!0}remove(t){this.classes.delete(t),this.changed=!0}commit(){if(this.changed){let t="";this.classes.forEach(e=>t+=e+" "),this.element.setAttribute("class",t)}}}const Lt=new WeakMap,Ft=G(t=>e=>{if(!(e instanceof nt)||e instanceof ct||"class"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");const{committer:i}=e,{element:s}=i;let r=Lt.get(e);void 0===r&&(s.setAttribute("class",i.strings.join(" ")),Lt.set(e,r=new Set));const n=s.classList||new zt(s);r.forEach(e=>{e in t||(n.remove(e),r.delete(e))});for(const e in t){const i=t[e];i!=r.has(e)&&(i?(n.add(e),r.add(e)):(n.remove(e),r.delete(e)))}"function"==typeof n.commit&&n.commit()}),qt=new WeakMap,Yt=G(t=>e=>{const i=qt.get(e);if(void 0===t&&e instanceof nt){if(void 0!==i||!qt.has(e)){const t=e.committer.name;e.committer.element.removeAttribute(t)}}else t!==i&&e.setValue(t);qt.set(e,t)}),Bt=new WeakMap,Wt=G(t=>e=>{if(!(e instanceof nt)||e instanceof ct||"style"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `styleMap` directive must be used in the style attribute and must be the only part in the attribute.");const{committer:i}=e,{style:s}=i.element;let r=Bt.get(e);void 0===r&&(s.cssText=i.strings.join(" "),Bt.set(e,r=new Set)),r.forEach(e=>{e in t||(r.delete(e),-1===e.indexOf("-")?s[e]=null:s.removeProperty(e))});for(const e in t)r.add(e),-1===e.indexOf("-")?s[e]=t[e]:s.setProperty(e,t[e])}),Gt="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;class Jt extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:Gt?"100px":"50px",height:Gt?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach(t=>{document.addEventListener(t,()=>{clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0},{passive:!0})})}bind(t,e){if(t.actionHandler)return;t.actionHandler=!0,t.addEventListener("contextmenu",t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1});const i=t=>{let e,i;this.held=!1,t.touches?(e=t.touches[0].pageX,i=t.touches[0].pageY):(e=t.pageX,i=t.pageY),this.timer=window.setTimeout(()=>{this.startAnimation(e,i),this.held=!0},this.holdTime)},s=i=>{i.preventDefault(),["touchend","touchcancel"].includes(i.type)&&void 0===this.timer||(clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0,this.held?O(t,"action",{action:"hold"}):e.hasDoubleClick?"click"===i.type&&i.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout(()=>{this.dblClickTimeout=void 0,O(t,"action",{action:"tap"})},250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,O(t,"action",{action:"double_tap"})):O(t,"action",{action:"tap"}))};t.addEventListener("touchstart",i,{passive:!0}),t.addEventListener("touchend",s),t.addEventListener("touchcancel",s),t.addEventListener("mousedown",i,{passive:!0}),t.addEventListener("click",s),t.addEventListener("keyup",t=>{13===t.keyCode&&s(t)})}startAnimation(t,e){Object.assign(this.style,{left:t+"px",top:e+"px",display:null}),this.ripple.disabled=!1,this.ripple.active=!0,this.ripple.unbounded=!0}stopAnimation(){this.ripple.active=!1,this.ripple.disabled=!0,this.style.display="none"}}customElements.define("action-handler-slider-button",Jt);const Zt=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("action-handler-slider-button"))return t.querySelector("action-handler-slider-button");const e=document.createElement("action-handler-slider-button");return t.appendChild(e),e})();i&&i.bind(t,e)},Xt=G((t={})=>e=>{Zt(e.committer.element,t)});var Kt,Qt,te,ee;!function(t){t.TOGGLE="toggle",t.CUSTOM="custom"}(Kt||(Kt={})),function(t){t.LEFT_RIGHT="left-right",t.TOP_BOTTOM="top-bottom",t.BOTTOM_TOP="bottom-top"}(Qt||(Qt={})),function(t){t.SOLID="solid",t.GRADIENT="gradient",t.TRIANGLE="triangle",t.STRIPED="striped",t.CUSTOM="custom"}(te||(te={})),function(t){t.LIGHT="light",t.SWITCH="switch",t.FAN="fan",t.COVER="cover",t.INPUT_BOOLEAN="input_boolean"}(ee||(ee={}));const ie={mode:Kt.TOGGLE,icon:"mdi:power",show:!0,show_spinner:!0,tap_action:{action:"toggle"}},se={show:!0,use_state_color:!0,rotate:!1,tap_action:{action:"more-info"}},re={percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_percentage_bg_opacity:!1,use_state_color:!1,show_track:!1,force_square:!1},ne=new Map([[ee.LIGHT,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.GRADIENT,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.FAN,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.SWITCH,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.COVER,{percentage:!0,direction:Qt.TOP_BOTTOM,background:te.STRIPED,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.INPUT_BOOLEAN,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}]]);function ae(t,e){(function(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var i=function(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function oe(t){return Math.min(1,Math.max(0,t))}function le(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function ce(t){return t<=1?100*Number(t)+"%":t}function he(t){return 1===t.length?"0"+t:String(t)}function de(t,e,i){t=ae(t,255),e=ae(e,255),i=ae(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),n=0,a=0,o=(s+r)/2;if(s===r)a=0,n=0;else{var l=s-r;switch(a=o>.5?l/(2-s-r):l/(s+r),s){case t:n=(e-i)/l+(e1&&(i-=1),i<1/6?t+6*i*(e-t):i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function pe(t,e,i){t=ae(t,255),e=ae(e,255),i=ae(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),n=0,a=s,o=s-r,l=0===s?0:o/s;if(s===r)n=0;else{switch(s){case t:n=(e-i)/o+(e>16,g:(65280&t)>>8,b:255&t}}(e)),this.originalInput=e;var r=ve(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(s=i.format)&&void 0!==s?s:r.format,this.gradientType=i.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},t.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,i=t.g/255,s=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.0722*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(t){return this.a=le(t),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var t=pe(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},t.prototype.toHsvString=function(){var t=pe(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+i+"%, "+s+"%)":"hsva("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHsl=function(){var t=de(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},t.prototype.toHslString=function(){var t=de(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+i+"%, "+s+"%)":"hsla("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHex=function(t){return void 0===t&&(t=!1),ge(this.r,this.g,this.b,t)},t.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},t.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,i,s,r){var n,a=[he(Math.round(t).toString(16)),he(Math.round(e).toString(16)),he(Math.round(i).toString(16)),he((n=s,Math.round(255*parseFloat(n)).toString(16)))];return r&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+i+")":"rgba("+t+", "+e+", "+i+", "+this.roundA+")"},t.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*ae(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*ae(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+ge(this.r,this.g,this.b,!1),e=0,i=Object.entries(me);e=0;return e||!s||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l+=e/100,i.l=oe(i.l),new t(i)},t.prototype.brighten=function(e){void 0===e&&(e=10);var i=this.toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-e/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-e/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-e/100*255))),new t(i)},t.prototype.darken=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l-=e/100,i.l=oe(i.l),new t(i)},t.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},t.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},t.prototype.desaturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s-=e/100,i.s=oe(i.s),new t(i)},t.prototype.saturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s+=e/100,i.s=oe(i.s),new t(i)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var i=this.toHsl(),s=(i.h+e)%360;return i.h=s<0?360+s:s,new t(i)},t.prototype.mix=function(e,i){void 0===i&&(i=50);var s=this.toRgb(),r=new t(e).toRgb(),n=i/100;return new t({r:(r.r-s.r)*n+s.r,g:(r.g-s.g)*n+s.g,b:(r.b-s.b)*n+s.b,a:(r.a-s.a)*n+s.a})},t.prototype.analogous=function(e,i){void 0===e&&(e=6),void 0===i&&(i=30);var s=this.toHsl(),r=360/i,n=[this];for(s.h=(s.h-(r*e>>1)+720)%360;--e;)s.h=(s.h+r)%360,n.push(new t(s));return n},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){void 0===e&&(e=6);for(var i=this.toHsv(),s=i.h,r=i.s,n=i.v,a=[],o=1/e;e--;)a.push(new t({h:s,s:r,v:n})),n=(n+o)%1;return a},t.prototype.splitcomplement=function(){var e=this.toHsl(),i=e.h;return[this,new t({h:(i+72)%360,s:e.s,l:e.l}),new t({h:(i+216)%360,s:e.s,l:e.l})]},t.prototype.onBackground=function(e){var i=this.toRgb(),s=new t(e).toRgb();return new t({r:s.r+(i.r-s.r)*i.a,g:s.g+(i.g-s.g)*i.a,b:s.b+(i.b-s.b)*i.a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var i=this.toHsl(),s=i.h,r=[this],n=360/e,a=1;at[e]).filter(t=>"string"==typeof t)}function Me(t,e,i){return"string"==typeof e?Me(t,e.split("."),i):1==e.length&&void 0!==i?t[e[0]]=i:0==e.length?t:Me(t[e[0]],e.slice(1),i)}function Ce(t){const e=w(t)||ee.LIGHT;return ne.get(e)||re}function $e(t,e,i){return(t-e)/i*100}class Ae{constructor(t){this._sliderPrevColor="",this._config=t}set hass(t){this._hass=t}get stateObj(){return this._hass.states[this._config.entity]}get domain(){return S(this.stateObj)}get name(){var t,e;return this._config.name?this._config.name:(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.friendly_name)?this.stateObj.attributes.friendly_name:""}get icon(){var t,e,i;return"string"==typeof(null===(t=this._config.icon)||void 0===t?void 0:t.icon)&&(null===(e=this._config.icon)||void 0===e?void 0:e.icon.length)?this._config.icon.icon:(null===(i=this.stateObj.attributes)||void 0===i?void 0:i.icon)?this.stateObj.attributes.icon:M(this.domain,this.stateObj.state)}get value(){return this._value?Math.round(this._value/this.step)*this.step:0}set value(t){t!==this.value&&(this._value=t)}get targetValue(){return 0===this._targetValue?0:this._targetValue?Math.round(this._targetValue/this.step)*this.step:this.value?this.value:0}set targetValue(t){t!==this.targetValue&&(this._targetValue=Math.round(t/this.step)*this.step)}get label(){return""+this.targetValue}get hidden(){return!1}get hasSlider(){return!0}get hasToggle(){var t,e;return null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.toggle_on_click)&&void 0!==e&&e}get toggleValue(){return this.value===this.min?this.max:this.min}get state(){return this.stateObj.state}get isOff(){return 0===this.percentage}get isUnavailable(){return!this.state||"unavailable"===this.state}get isSliderDisabled(){return this.isUnavailable?this.isUnavailable:this.hasToggle}get min(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.min)&&void 0!==e?e:this._min)&&void 0!==i?i:0}get max(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.max)&&void 0!==e?e:this._max)&&void 0!==i?i:100}get step(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.step)&&void 0!==e?e:this._step)&&void 0!==i?i:5}get percentage(){return Math.round(100*(this.targetValue-this.min)/(this.max-this.min))}get style(){return{icon:{filter:this.iconFilter,color:this.iconColor,rotateSpeed:this.iconRotateSpeed},slider:{filter:this.sliderFilter,color:this.sliderColor}}}get iconFilter(){var t;return(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color)&&0!==this.percentage?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get iconColor(){var t;if(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color){if(!this.stateObj.attributes.hs_color)return this.percentage>0?"var(--paper-item-icon-active-color, #fdd835)":"var(--paper-item-icon-color, #44739e)";{const[t,e]=this.stateObj.attributes.hs_color;if(e>10)return`hsl(${t}, 100%, ${100-e/2}%)`}}return""}get iconRotateSpeed(){return"0s"}get sliderFilter(){var t;return(null===(t=this._config.slider)||void 0===t?void 0:t.use_percentage_bg_opacity)&&0!==this.percentage&&this._config.slider.background!==te.GRADIENT?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get sliderColor(){var t;if(null===(t=this._config.slider)||void 0===t?void 0:t.use_state_color)if(this.stateObj.attributes.hs_color){const[t,e]=this.stateObj.attributes.hs_color;if(e>10){const i=`hsl(${t}, 100%, ${100-e/2}%)`;return this._sliderPrevColor=i,i}}else{if(this.stateObj.attributes.color_temp&&this.stateObj.attributes.min_mireds&&this.stateObj.attributes.max_mireds){const t=function(t,e,i){const s=new ke("rgb(255, 160, 0)"),r=new ke("rgb(166, 209, 255)"),n=new ke("white"),a=(t-e)/(i-e)*100;return a<50?Oe(r).mix(n,2*a).toRgbString():Oe(n).mix(s,2*(a-50)).toRgbString()}(this.stateObj.attributes.color_temp,this.stateObj.attributes.min_mireds,this.stateObj.attributes.max_mireds);return this._sliderPrevColor=t,t}if(this._sliderPrevColor.startsWith("hsl")||this._sliderPrevColor.startsWith("rgb"))return this._sliderPrevColor}return"inherit"}applyStep(t){return Math.round(t/this.step)*this.step}log(t="",e=""){this._config.debug&&console.log(`${this._config.entity}: ${t}`,e)}}class Pe extends Ae{constructor(){super(...arguments),this._min=0}get attribute(){return this._config.attribute||"position"}get _value(){switch(this.attribute){case"position":return"closed"===this.stateObj.state?0:this.stateObj.attributes.current_position;case"tilt":return this.stateObj.attributes.current_tilt_position;default:return 0}}set _value(t){if(this.hasSlider)switch(this.attribute){case"position":this._hass.callService("cover","set_cover_position",{entity_id:this.stateObj.entity_id,position:t});break;case"tilt":this._hass.callService("cover","set_cover_tilt_position",{entity_id:this.stateObj.entity_id,tilt_position:t})}else{const e=t>0?"open_cover":"close_cover";this._hass.callService("cover",e,{entity_id:this.stateObj.entity_id})}}get _step(){return 1}get label(){const t=this._hass.localize("component.cover.state._."+this.state);if(!this.hasSlider)return t;switch(this.attribute){case"position":return 0===this.percentage?this._hass.localize("component.cover.state._.closed"):100===this.percentage?this._hass.localize("component.cover.state._.open"):this.percentage+"%";case"tilt":return""+this.percentage}return t}get hasSlider(){switch(this.attribute){case"position":if("current_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&4&this.stateObj.attributes.supported_features)return!0;break;case"tilt":if("current_tilt_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&128&this.stateObj.attributes.supported_features)return!0;break;default:return!1}return!1}get _max(){return this.hasSlider?100:1}}class Ee extends Ae{constructor(){super(...arguments),this._min=0}get _value(){return k.includes(this.stateObj.state)?0:this.stateObj.attributes.percentage}set _value(t){t>0?this._hass.callService("fan","set_percentage",{entity_id:this.stateObj.entity_id,percentage:t}):this._hass.callService("fan","turn_off",{entity_id:this.stateObj.entity_id})}get _step(){return this.stateObj.attributes.percentage_step}get label(){return this.percentage>0?this.hasSlider?this.percentage+"%":this._hass.localize("component.fan.state._.on"):this._hass.localize("component.fan.state._.off")}get hasSlider(){return"speed"in this.stateObj.attributes}get _max(){return this.hasSlider?100:1}get iconRotateSpeed(){let t=0;return this.percentage>0&&(t=3-this.percentage/100*2),t+"s"}}class je extends Ae{constructor(){super(...arguments),this._min=0,this._max=1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("input_boolean",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.input_boolean.state._.on"):this._hass.localize("component.input_boolean.state._.off")}}const Ve={red:0,green:1,blue:2},Ne={hue:0,saturation:1};class Re extends Ae{get attribute(){var t;return(null===(t=this._config.slider)||void 0===t?void 0:t.attribute)||"brightness_pct"}get _value(){if(!this.stateObj||k.includes(this.stateObj.state))return 0;const t=this.stateObj.attributes;switch(this.attribute){case"color_temp":return Math.round(t.color_temp);case"white_value":return Math.round(t.white_value);case"brightness":return Math.round(t.brightness);case"brightness_pct":return Math.round(100*t.brightness/255);case"red":case"green":case"blue":return t.rgb_color?Math.round(t.rgb_color[Ve[this.attribute]]):0;case"hue":case"saturation":return t.hs_color?Math.round(t.hs_color[Ne[this.attribute]]):0;case"effect":return t.effect_list?t.effect_list.indexOf(t.effect):0;default:return 0}}set _value(t){if(!this.stateObj)return;let e,i=this.attribute,s=!0;switch(i){case"brightness":case"brightness_pct":(t="brightness"===i?Math.round(t):Math.round(t/100*255))||(s=!1),i="brightness";break;case"red":case"green":case"blue":e=this.stateObj.attributes.rgb_color||[0,0,0],e[Ve[i]]=t,t=e,i="rgb_color";break;case"hue":case"saturation":e=this.stateObj.attributes.hs_color||[0,0],e[Ne[i]]=t,t=e,i="hs_color";break;case"effect":t=this.stateObj.attributes.effect_list[t],i="effect"}s?this._hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,[i]:t}):this._hass.callService("light","turn_off",{entity_id:this.stateObj.entity_id})}get _step(){switch(this.attribute){case"effect":default:return 1}}get _min(){switch(this.attribute){case"color_temp":return this.stateObj?this.stateObj.attributes.min_mireds:0;default:return 0}}get _max(){switch(this.attribute){case"color_temp":return this.stateObj?this.stateObj.attributes.max_mireds:0;case"red":case"green":case"blue":case"white_value":case"brightness":return 255;case"hue":return 360;case"effect":return this.stateObj&&this.stateObj.attributes.effect_list?this.stateObj.attributes.effect_list.length-1:0;default:return 100}}get label(){if(0===this.percentage)return this._hass.localize("component.light.state._.off");switch(this.attribute){case"color_temp":case"brightness":return""+this.targetValue;case"brightness_pct":case"saturation":return this.targetValue+"%";case"hue":return this.targetValue+"°";case"effect":return this.stateObj?this.stateObj.attributes.effect:"";default:return""+this.targetValue}}get hasSlider(){var t,e;if(!this.stateObj)return!1;switch(this.attribute){case"brightness":case"brightness_pct":return"brightness"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&1&(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.supported_features));case"color_temp":return"color_temp"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&2&this.stateObj.attributes.supported_features);case"white_value":return"white_value"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&128&this.stateObj.attributes.supported_features);case"red":case"green":case"blue":return"rgb_color"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&16&this.stateObj.attributes.supported_features);case"hue":case"saturation":return"hs_color"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&16&this.stateObj.attributes.supported_features);case"effect":return"effect"in this.stateObj.attributes;default:return!1}}}class He extends Ae{constructor(){super(...arguments),this._min=0,this._max=1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("switch",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.switch.state._.on"):this._hass.localize("component.switch.state._.off")}}var De={version:"v",invalid_configuration:"Invalid configuration",show_warning:"Show Warning",show_error:"Show Error"},Ue={general:{title:"General",entity:"Entity (Required)",name:"Name (Optional)",show_name:"Show name?",show_state:"Show state?"},icon:{title:"Icon",icon:"Icon (Optional)",show_icon:"Show icon?",use_state_color:"Use state color?",tap_action:"Tap action"},slider:{title:"Slider",direction:"Direction",background:"Background",use_brightness:"Use brightness?",show_track:"Show track?",force_square:"Force square?"},action_button:{title:"Action button",mode:"Mode",icon:"Icon",show_button:"Show button?",show_spinner:"Show spinner?",tap_action:"Tap action"}},Ie={off:"Off",on:"On"},ze={"left-right":"Left to right","top-bottom":"Top to bottom","bottom-top":"Bottom to top"},Le={striped:"Striped",gradient:"Gradient",solid:"Solid",triangle:"Triangle",custom:"Custom"},Fe={toggle:"Toggle",custom:"Custom"},qe={common:De,tabs:Ue,state:Ie,direction:ze,background:Le,mode:Fe},Ye={version:"v",invalid_configuration:"Ongeldige configuratie",show_warning:"Toon waarschuwing",show_error:"Toon fout"},Be={general:{title:"Algemeen",entity:"Entiteit (Verplicht)",name:"Naam (Optioneel)",show_name:"Toon naam?",show_state:"Toon status?"},icon:{title:"Icoon",icon:"Icoon (Optioneel)",show_icon:"Toon icoon?",use_state_color:"Gebruik status kleur?",tap_action:"Tap actie"},slider:{title:"Schuifregelaar",direction:"Richting",background:"Actergrond",use_brightness:"Gebruik helderheid?",show_track:"Toon spoor?",force_square:"Forceer vierkant?"},action_button:{title:"Actie button",mode:"Modus",icon:"Icoon",show_button:"Toon button?",show_spinner:"Toon spinner?",tap_action:"Tap actie"}},We={off:"Uit",on:"Aan"},Ge={"left-right":"Links naar rechts","top-bottom":"Boven naar onder","bottom-top":"Onder naar boven"},Je={striped:"Gestreept",gradient:"Verloop",solid:"Vast",triangle:"Driehoek",custom:"Aangepast"},Ze={toggle:"Schakelaar",custom:"Aangepast"},Xe={common:Ye,tabs:Be,state:We,direction:Ge,background:Je,mode:Ze};const Ke={en:Object.freeze({__proto__:null,common:De,tabs:Ue,state:Ie,direction:ze,background:Le,mode:Fe,default:qe}),nl:Object.freeze({__proto__:null,common:Ye,tabs:Be,state:We,direction:Ge,background:Je,mode:Ze,default:Xe})};function Qe(t,e="",i=""){const s=(localStorage.getItem("selectedLanguage")||"en").replace(/['"]+/g,"").replace("-","_");let r;try{r=t.split(".").reduce((t,e)=>t[e],Ke[s])}catch(e){r=t.split(".").reduce((t,e)=>t[e],Ke.en)}return void 0===r&&(r=t.split(".").reduce((t,e)=>t[e],Ke.en)),""!==e&&""!==i&&(r=r.replace(e,i)),r}let ti=class extends It{constructor(){super(...arguments),this._initialized=!1,this.directions=Te(Qt),this.backgrounds=Te(te),this.actionModes=Te(Kt)}setConfig(t){this._config=t,this.loadCardHelpers()}shouldUpdate(){return this._initialized||this._initialize(),!0}get _name(){var t;return(null===(t=this._config)||void 0===t?void 0:t.name)||""}get _show_name(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_name)||(null===(e=this._config)||void 0===e?void 0:e.show_name)}get _show_state(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_state)||(null===(e=this._config)||void 0===e?void 0:e.show_state)}get _entity(){var t;return(null===(t=this._config)||void 0===t?void 0:t.entity)||""}get _icon(){var t;return(null===(t=this._config)||void 0===t?void 0:t.icon)||se}get _slider(){var t;return(null===(t=this._config)||void 0===t?void 0:t.slider)||re}get _action_button(){var t;return(null===(t=this._config)||void 0===t?void 0:t.action_button)||ie}render(){var t;if(!this.hass||!this._helpers)return mt``;const e=["more-info","toggle","navigate","url","call-service","none"];return this._helpers.importMoreInfoControl("climate"),mt` +class Ut{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;const e=(t.getAttribute("class")||"").split(/\s+/);for(const t of e)this.classes.add(t)}add(t){this.classes.add(t),this.changed=!0}remove(t){this.classes.delete(t),this.changed=!0}commit(){if(this.changed){let t="";this.classes.forEach(e=>t+=e+" "),this.element.setAttribute("class",t)}}}const zt=new WeakMap,Ft=W(t=>e=>{if(!(e instanceof ot)||e instanceof lt||"class"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");const{committer:i}=e,{element:s}=i;let r=zt.get(e);void 0===r&&(s.setAttribute("class",i.strings.join(" ")),zt.set(e,r=new Set));const o=s.classList||new Ut(s);r.forEach(e=>{e in t||(o.remove(e),r.delete(e))});for(const e in t){const i=t[e];i!=r.has(e)&&(i?(o.add(e),r.add(e)):(o.remove(e),r.delete(e)))}"function"==typeof o.commit&&o.commit()}),qt=new WeakMap,Yt=W(t=>e=>{const i=qt.get(e);if(void 0===t&&e instanceof ot){if(void 0!==i||!qt.has(e)){const t=e.committer.name;e.committer.element.removeAttribute(t)}}else t!==i&&e.setValue(t);qt.set(e,t)}),Bt=new WeakMap,Gt=W(t=>e=>{if(!(e instanceof ot)||e instanceof lt||"style"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `styleMap` directive must be used in the style attribute and must be the only part in the attribute.");const{committer:i}=e,{style:s}=i.element;let r=Bt.get(e);void 0===r&&(s.cssText=i.strings.join(" "),Bt.set(e,r=new Set)),r.forEach(e=>{e in t||(r.delete(e),-1===e.indexOf("-")?s[e]=null:s.removeProperty(e))});for(const e in t)r.add(e),-1===e.indexOf("-")?s[e]=t[e]:s.setProperty(e,t[e])}),Wt="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;class Jt extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:Wt?"100px":"50px",height:Wt?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach(t=>{document.addEventListener(t,()=>{clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0},{passive:!0})})}bind(t,e){if(t.actionHandler)return;t.actionHandler=!0,t.addEventListener("contextmenu",t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1});const i=t=>{let e,i;this.held=!1,t.touches?(e=t.touches[0].pageX,i=t.touches[0].pageY):(e=t.pageX,i=t.pageY),this.timer=window.setTimeout(()=>{this.startAnimation(e,i),this.held=!0},this.holdTime)},s=i=>{i.preventDefault(),["touchend","touchcancel"].includes(i.type)&&void 0===this.timer||(clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0,this.held?O(t,"action",{action:"hold"}):e.hasDoubleClick?"click"===i.type&&i.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout(()=>{this.dblClickTimeout=void 0,O(t,"action",{action:"tap"})},250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,O(t,"action",{action:"double_tap"})):O(t,"action",{action:"tap"}))};t.addEventListener("touchstart",i,{passive:!0}),t.addEventListener("touchend",s),t.addEventListener("touchcancel",s),t.addEventListener("mousedown",i,{passive:!0}),t.addEventListener("click",s),t.addEventListener("keyup",t=>{13===t.keyCode&&s(t)})}startAnimation(t,e){Object.assign(this.style,{left:t+"px",top:e+"px",display:null}),this.ripple.disabled=!1,this.ripple.active=!0,this.ripple.unbounded=!0}stopAnimation(){this.ripple.active=!1,this.ripple.disabled=!0,this.style.display="none"}}customElements.define("action-handler-slider-button",Jt);const Zt=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("action-handler-slider-button"))return t.querySelector("action-handler-slider-button");const e=document.createElement("action-handler-slider-button");return t.appendChild(e),e})();i&&i.bind(t,e)},Xt=W((t={})=>e=>{Zt(e.committer.element,t)});var Kt,Qt,te,ee;!function(t){t.TOGGLE="toggle",t.CUSTOM="custom"}(Kt||(Kt={})),function(t){t.LEFT_RIGHT="left-right",t.TOP_BOTTOM="top-bottom",t.BOTTOM_TOP="bottom-top"}(Qt||(Qt={})),function(t){t.SOLID="solid",t.GRADIENT="gradient",t.TRIANGLE="triangle",t.STRIPED="striped",t.CUSTOM="custom"}(te||(te={})),function(t){t.LIGHT="light",t.SWITCH="switch",t.FAN="fan",t.COVER="cover",t.INPUT_BOOLEAN="input_boolean",t.LOCK="lock"}(ee||(ee={}));const ie={mode:Kt.TOGGLE,icon:"mdi:power",show:!0,show_spinner:!0,tap_action:{action:"toggle"}},se={show:!0,use_state_color:!0,rotate:!1,tap_action:{action:"more-info"}},re={percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_percentage_bg_opacity:!1,use_state_color:!1,show_track:!1,force_square:!1},oe=new Map([[ee.LIGHT,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.GRADIENT,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.FAN,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.SWITCH,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.COVER,{percentage:!0,direction:Qt.TOP_BOTTOM,background:te.STRIPED,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.INPUT_BOOLEAN,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}],[ee.LOCK,{percentage:!0,direction:Qt.LEFT_RIGHT,background:te.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,force_square:!1}]]);function ne(t,e){(function(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var i=function(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function ae(t){return Math.min(1,Math.max(0,t))}function ce(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function le(t){return t<=1?100*Number(t)+"%":t}function he(t){return 1===t.length?"0"+t:String(t)}function de(t,e,i){t=ne(t,255),e=ne(e,255),i=ne(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),o=0,n=0,a=(s+r)/2;if(s===r)n=0,o=0;else{var c=s-r;switch(n=a>.5?c/(2-s-r):c/(s+r),s){case t:o=(e-i)/c+(e1&&(i-=1),i<1/6?t+6*i*(e-t):i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function pe(t,e,i){t=ne(t,255),e=ne(e,255),i=ne(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),o=0,n=s,a=s-r,c=0===s?0:a/s;if(s===r)o=0;else{switch(s){case t:o=(e-i)/a+(e>16,g:(65280&t)>>8,b:255&t}}(e)),this.originalInput=e;var r=_e(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(s=i.format)&&void 0!==s?s:r.format,this.gradientType=i.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},t.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,i=t.g/255,s=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.0722*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(t){return this.a=ce(t),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var t=pe(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},t.prototype.toHsvString=function(){var t=pe(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+i+"%, "+s+"%)":"hsva("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHsl=function(){var t=de(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},t.prototype.toHslString=function(){var t=de(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+i+"%, "+s+"%)":"hsla("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHex=function(t){return void 0===t&&(t=!1),ge(this.r,this.g,this.b,t)},t.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},t.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,i,s,r){var o,n=[he(Math.round(t).toString(16)),he(Math.round(e).toString(16)),he(Math.round(i).toString(16)),he((o=s,Math.round(255*parseFloat(o)).toString(16)))];return r&&n[0].startsWith(n[0].charAt(1))&&n[1].startsWith(n[1].charAt(1))&&n[2].startsWith(n[2].charAt(1))&&n[3].startsWith(n[3].charAt(1))?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0)+n[3].charAt(0):n.join("")}(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+i+")":"rgba("+t+", "+e+", "+i+", "+this.roundA+")"},t.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*ne(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*ne(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+ge(this.r,this.g,this.b,!1),e=0,i=Object.entries(me);e=0;return e||!s||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l+=e/100,i.l=ae(i.l),new t(i)},t.prototype.brighten=function(e){void 0===e&&(e=10);var i=this.toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-e/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-e/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-e/100*255))),new t(i)},t.prototype.darken=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l-=e/100,i.l=ae(i.l),new t(i)},t.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},t.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},t.prototype.desaturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s-=e/100,i.s=ae(i.s),new t(i)},t.prototype.saturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s+=e/100,i.s=ae(i.s),new t(i)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var i=this.toHsl(),s=(i.h+e)%360;return i.h=s<0?360+s:s,new t(i)},t.prototype.mix=function(e,i){void 0===i&&(i=50);var s=this.toRgb(),r=new t(e).toRgb(),o=i/100;return new t({r:(r.r-s.r)*o+s.r,g:(r.g-s.g)*o+s.g,b:(r.b-s.b)*o+s.b,a:(r.a-s.a)*o+s.a})},t.prototype.analogous=function(e,i){void 0===e&&(e=6),void 0===i&&(i=30);var s=this.toHsl(),r=360/i,o=[this];for(s.h=(s.h-(r*e>>1)+720)%360;--e;)s.h=(s.h+r)%360,o.push(new t(s));return o},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){void 0===e&&(e=6);for(var i=this.toHsv(),s=i.h,r=i.s,o=i.v,n=[],a=1/e;e--;)n.push(new t({h:s,s:r,v:o})),o=(o+a)%1;return n},t.prototype.splitcomplement=function(){var e=this.toHsl(),i=e.h;return[this,new t({h:(i+72)%360,s:e.s,l:e.l}),new t({h:(i+216)%360,s:e.s,l:e.l})]},t.prototype.onBackground=function(e){var i=this.toRgb(),s=new t(e).toRgb();return new t({r:s.r+(i.r-s.r)*i.a,g:s.g+(i.g-s.g)*i.a,b:s.b+(i.b-s.b)*i.a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var i=this.toHsl(),s=i.h,r=[this],o=360/e,n=1;nt[e]).filter(t=>"string"==typeof t)}function Ce(t,e,i){return"string"==typeof e?Ce(t,e.split("."),i):1==e.length&&void 0!==i?t[e[0]]=i:0==e.length?t:Ce(t[e[0]],e.slice(1),i)}function Me(t){const e=w(t)||ee.LIGHT;return oe.get(e)||re}function $e(t,e,i){return(t-e)/i*100}class Ae{constructor(t){this._sliderPrevColor="",this._config=t}set hass(t){this._hass=t}get stateObj(){return this._hass.states[this._config.entity]}get domain(){return S(this.stateObj)}get name(){var t,e;return this._config.name?this._config.name:(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.friendly_name)?this.stateObj.attributes.friendly_name:""}get icon(){var t,e,i;return"string"==typeof(null===(t=this._config.icon)||void 0===t?void 0:t.icon)&&(null===(e=this._config.icon)||void 0===e?void 0:e.icon.length)?this._config.icon.icon:(null===(i=this.stateObj.attributes)||void 0===i?void 0:i.icon)?this.stateObj.attributes.icon:C(this.domain,this.stateObj.state)}get value(){return this._value?Math.round(this._value/this.step)*this.step:0}set value(t){t!==this.value&&(this._value=t)}get targetValue(){return 0===this._targetValue?0:this._targetValue?Math.round(this._targetValue/this.step)*this.step:this.value?this.value:0}set targetValue(t){t!==this.targetValue&&(this._targetValue=Math.round(t/this.step)*this.step)}get label(){return""+this.targetValue}get hidden(){return!1}get hasSlider(){return!0}get hasToggle(){var t,e;return null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.toggle_on_click)&&void 0!==e&&e}get toggleValue(){return this.value===this.min?this.max:this.min}get state(){return this.stateObj.state}get isOff(){return 0===this.percentage}get isUnavailable(){return!this.state||"unavailable"===this.state}get isSliderDisabled(){return this.isUnavailable?this.isUnavailable:this.hasToggle}get min(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.min)&&void 0!==e?e:this._min)&&void 0!==i?i:0}get max(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.max)&&void 0!==e?e:this._max)&&void 0!==i?i:100}get step(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.step)&&void 0!==e?e:this._step)&&void 0!==i?i:5}get percentage(){return Math.round(100*(this.targetValue-this.min)/(this.max-this.min))}get style(){return{icon:{filter:this.iconFilter,color:this.iconColor,rotateSpeed:this.iconRotateSpeed},slider:{filter:this.sliderFilter,color:this.sliderColor}}}get iconFilter(){var t;return(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color)&&0!==this.percentage?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get iconColor(){var t;if(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color){if(!this.stateObj.attributes.hs_color)return this.percentage>0?"var(--paper-item-icon-active-color, #fdd835)":"var(--paper-item-icon-color, #44739e)";{const[t,e]=this.stateObj.attributes.hs_color;if(e>10)return`hsl(${t}, 100%, ${100-e/2}%)`}}return""}get iconRotateSpeed(){return"0s"}get sliderFilter(){var t;return(null===(t=this._config.slider)||void 0===t?void 0:t.use_percentage_bg_opacity)&&0!==this.percentage&&this._config.slider.background!==te.GRADIENT?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get sliderColor(){var t;if(null===(t=this._config.slider)||void 0===t?void 0:t.use_state_color)if(this.stateObj.attributes.hs_color){const[t,e]=this.stateObj.attributes.hs_color;if(e>10){const i=`hsl(${t}, 100%, ${100-e/2}%)`;return this._sliderPrevColor=i,i}}else{if(this.stateObj.attributes.color_temp&&this.stateObj.attributes.min_mireds&&this.stateObj.attributes.max_mireds){const t=function(t,e,i){const s=new ke("rgb(255, 160, 0)"),r=new ke("rgb(166, 209, 255)"),o=new ke("white"),n=(t-e)/(i-e)*100;return n<50?Oe(r).mix(o,2*n).toRgbString():Oe(o).mix(s,2*(n-50)).toRgbString()}(this.stateObj.attributes.color_temp,this.stateObj.attributes.min_mireds,this.stateObj.attributes.max_mireds);return this._sliderPrevColor=t,t}if(this._sliderPrevColor.startsWith("hsl")||this._sliderPrevColor.startsWith("rgb"))return this._sliderPrevColor}return"inherit"}applyStep(t){return Math.round(t/this.step)*this.step}log(t="",e=""){this._config.debug&&console.log(`${this._config.entity}: ${t}`,e)}}class Pe extends Ae{constructor(){super(...arguments),this._min=0}get attribute(){return this._config.attribute||"position"}get _value(){switch(this.attribute){case"position":return"closed"===this.stateObj.state?0:this.stateObj.attributes.current_position;case"tilt":return this.stateObj.attributes.current_tilt_position;default:return 0}}set _value(t){if(this.hasSlider)switch(this.attribute){case"position":this._hass.callService("cover","set_cover_position",{entity_id:this.stateObj.entity_id,position:t});break;case"tilt":this._hass.callService("cover","set_cover_tilt_position",{entity_id:this.stateObj.entity_id,tilt_position:t})}else{const e=t>0?"open_cover":"close_cover";this._hass.callService("cover",e,{entity_id:this.stateObj.entity_id})}}get _step(){return 1}get label(){const t=this._hass.localize("component.cover.state._."+this.state);if(!this.hasSlider)return t;switch(this.attribute){case"position":return 0===this.percentage?this._hass.localize("component.cover.state._.closed"):100===this.percentage?this._hass.localize("component.cover.state._.open"):this.percentage+"%";case"tilt":return""+this.percentage}return t}get hasSlider(){switch(this.attribute){case"position":if("current_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&4&this.stateObj.attributes.supported_features)return!0;break;case"tilt":if("current_tilt_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&128&this.stateObj.attributes.supported_features)return!0;break;default:return!1}return!1}get _max(){return this.hasSlider?100:1}}class Ee extends Ae{constructor(){super(...arguments),this._min=0}get _value(){return k.includes(this.stateObj.state)?0:this.stateObj.attributes.percentage}set _value(t){t>0?this._hass.callService("fan","set_percentage",{entity_id:this.stateObj.entity_id,percentage:t}):this._hass.callService("fan","turn_off",{entity_id:this.stateObj.entity_id})}get _step(){return this.stateObj.attributes.percentage_step}get label(){return this.percentage>0?this.hasSlider?this.percentage+"%":this._hass.localize("component.fan.state._.on"):this._hass.localize("component.fan.state._.off")}get hasSlider(){return"speed"in this.stateObj.attributes}get _max(){return this.hasSlider?100:1}get iconRotateSpeed(){let t=0;return this.percentage>0&&(t=3-this.percentage/100*2),t+"s"}}class je extends Ae{constructor(){super(...arguments),this._min=0,this._max=1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("input_boolean",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.input_boolean.state._.on"):this._hass.localize("component.input_boolean.state._.off")}}const Ne={red:0,green:1,blue:2},Ve={hue:0,saturation:1};class Re extends Ae{get attribute(){var t;return(null===(t=this._config.slider)||void 0===t?void 0:t.attribute)||"brightness_pct"}get _value(){if(!this.stateObj||k.includes(this.stateObj.state))return 0;const t=this.stateObj.attributes;switch(this.attribute){case"color_temp":return Math.round(t.color_temp);case"white_value":return Math.round(t.white_value);case"brightness":return Math.round(t.brightness);case"brightness_pct":return Math.round(100*t.brightness/255);case"red":case"green":case"blue":return t.rgb_color?Math.round(t.rgb_color[Ne[this.attribute]]):0;case"hue":case"saturation":return t.hs_color?Math.round(t.hs_color[Ve[this.attribute]]):0;case"effect":return t.effect_list?t.effect_list.indexOf(t.effect):0;default:return 0}}set _value(t){if(!this.stateObj)return;let e,i=this.attribute,s=!0;switch(i){case"brightness":case"brightness_pct":(t="brightness"===i?Math.round(t):Math.round(t/100*255))||(s=!1),i="brightness";break;case"red":case"green":case"blue":e=this.stateObj.attributes.rgb_color||[0,0,0],e[Ne[i]]=t,t=e,i="rgb_color";break;case"hue":case"saturation":e=this.stateObj.attributes.hs_color||[0,0],e[Ve[i]]=t,t=e,i="hs_color";break;case"effect":t=this.stateObj.attributes.effect_list[t],i="effect"}s?this._hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,[i]:t}):this._hass.callService("light","turn_off",{entity_id:this.stateObj.entity_id})}get _step(){switch(this.attribute){case"effect":default:return 1}}get _min(){switch(this.attribute){case"color_temp":return this.stateObj?this.stateObj.attributes.min_mireds:0;default:return 0}}get _max(){switch(this.attribute){case"color_temp":return this.stateObj?this.stateObj.attributes.max_mireds:0;case"red":case"green":case"blue":case"white_value":case"brightness":return 255;case"hue":return 360;case"effect":return this.stateObj&&this.stateObj.attributes.effect_list?this.stateObj.attributes.effect_list.length-1:0;default:return 100}}get label(){if(0===this.percentage)return this._hass.localize("component.light.state._.off");switch(this.attribute){case"color_temp":case"brightness":return""+this.targetValue;case"brightness_pct":case"saturation":return this.targetValue+"%";case"hue":return this.targetValue+"°";case"effect":return this.stateObj?this.stateObj.attributes.effect:"";default:return""+this.targetValue}}get hasSlider(){var t,e;if(!this.stateObj)return!1;switch(this.attribute){case"brightness":case"brightness_pct":return"brightness"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&1&(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.supported_features));case"color_temp":return"color_temp"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&2&this.stateObj.attributes.supported_features);case"white_value":return"white_value"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&128&this.stateObj.attributes.supported_features);case"red":case"green":case"blue":return"rgb_color"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&16&this.stateObj.attributes.supported_features);case"hue":case"saturation":return"hs_color"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&16&this.stateObj.attributes.supported_features);case"effect":return"effect"in this.stateObj.attributes;default:return!1}}}class De extends Ae{constructor(){super(...arguments),this._min=0,this._max=1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"lock":"unlock";this._hass.callService("lock",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.lock.state._.unlocked"):this._hass.localize("component.lock.state._.locked")}}class He extends Ae{constructor(){super(...arguments),this._min=0,this._max=1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("switch",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.switch.state._.on"):this._hass.localize("component.switch.state._.off")}}var Ie={version:"v",invalid_configuration:"Invalid configuration",show_warning:"Show Warning",show_error:"Show Error"},Le={general:{title:"General",entity:"Entity (Required)",name:"Name (Optional)",show_name:"Show name?",show_state:"Show state?"},icon:{title:"Icon",icon:"Icon (Optional)",show_icon:"Show icon?",use_state_color:"Use state color?",tap_action:"Tap action"},slider:{title:"Slider",direction:"Direction",background:"Background",use_brightness:"Use brightness?",show_track:"Show track?",force_square:"Force square?"},action_button:{title:"Action button",mode:"Mode",icon:"Icon",show_button:"Show button?",show_spinner:"Show spinner?",tap_action:"Tap action"}},Ue={off:"Off",on:"On"},ze={"left-right":"Left to right","top-bottom":"Top to bottom","bottom-top":"Bottom to top"},Fe={striped:"Striped",gradient:"Gradient",solid:"Solid",triangle:"Triangle",custom:"Custom"},qe={toggle:"Toggle",custom:"Custom"},Ye={common:Ie,tabs:Le,state:Ue,direction:ze,background:Fe,mode:qe},Be={version:"v",invalid_configuration:"תצורה לא חוקית",show_warning:"הצג אזהרה",show_error:"הצג שגיאה"},Ge={general:{title:"כללי",entity:"ישיות (נדרש)",name:"שם (אופציונלי)",show_name:"להציג שם?",show_state:"להציג מצב?"},icon:{title:"סמליל",icon:"סמליל (אופציונלי)",show_icon:"להציג סמליל?",use_state_color:"להשתמש בצבע מצב?",tap_action:"פעולה בהקשה"},slider:{title:"גלילה",direction:"כיוון",background:"רקע",use_brightness:"להשתמש בבהירות?",show_track:"להציג מסלול?",force_square:"כוח מרובע?"},action_button:{title:"כפתור פעולה",mode:"מצב",icon:"סמליל",show_button:"להציג כפתור?",show_spinner:"להציג ספינר?",tap_action:"פעולה בהקשה"}},We={off:"כבוי",on:"פועל"},Je={"left-right":"שמאל לימין","top-bottom":"מלמעלה למטה","bottom-top":"מלמטה למעלה"},Ze={striped:"מפוספס",gradient:"שיפוע",solid:"מוצק",triangle:"משולש",custom:"מותאם אישית"},Xe={toggle:"החלפה",custom:"מותאם אישית"},Ke={common:Be,tabs:Ge,state:We,direction:Je,background:Ze,mode:Xe},Qe={version:"v",invalid_configuration:"Ongeldige configuratie",show_warning:"Toon waarschuwing",show_error:"Toon fout"},ti={general:{title:"Algemeen",entity:"Entiteit (Verplicht)",name:"Naam (Optioneel)",show_name:"Toon naam?",show_state:"Toon status?"},icon:{title:"Icoon",icon:"Icoon (Optioneel)",show_icon:"Toon icoon?",use_state_color:"Gebruik status kleur?",tap_action:"Tap actie"},slider:{title:"Schuifregelaar",direction:"Richting",background:"Actergrond",use_brightness:"Gebruik helderheid?",show_track:"Toon spoor?",force_square:"Forceer vierkant?"},action_button:{title:"Actie button",mode:"Modus",icon:"Icoon",show_button:"Toon button?",show_spinner:"Toon spinner?",tap_action:"Tap actie"}},ei={off:"Uit",on:"Aan"},ii={"left-right":"Links naar rechts","top-bottom":"Boven naar onder","bottom-top":"Onder naar boven"},si={striped:"Gestreept",gradient:"Verloop",solid:"Vast",triangle:"Driehoek",custom:"Aangepast"},ri={toggle:"Schakelaar",custom:"Aangepast"},oi={common:Qe,tabs:ti,state:ei,direction:ii,background:si,mode:ri};const ni={en:Object.freeze({__proto__:null,common:Ie,tabs:Le,state:Ue,direction:ze,background:Fe,mode:qe,default:Ye}),he:Object.freeze({__proto__:null,common:Be,tabs:Ge,state:We,direction:Je,background:Ze,mode:Xe,default:Ke}),nl:Object.freeze({__proto__:null,common:Qe,tabs:ti,state:ei,direction:ii,background:si,mode:ri,default:oi})};function ai(t,e="",i=""){const s=(localStorage.getItem("selectedLanguage")||"en").replace(/['"]+/g,"").replace("-","_");let r;try{r=t.split(".").reduce((t,e)=>t[e],ni[s])}catch(e){r=t.split(".").reduce((t,e)=>t[e],ni.en)}return void 0===r&&(r=t.split(".").reduce((t,e)=>t[e],ni.en)),""!==e&&""!==i&&(r=r.replace(e,i)),r}let ci=class extends Lt{constructor(){super(...arguments),this._initialized=!1,this.directions=Te(Qt),this.backgrounds=Te(te),this.actionModes=Te(Kt)}setConfig(t){this._config=t,this.loadCardHelpers()}shouldUpdate(){return this._initialized||this._initialize(),!0}get _name(){var t;return(null===(t=this._config)||void 0===t?void 0:t.name)||""}get _show_name(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_name)||(null===(e=this._config)||void 0===e?void 0:e.show_name)}get _show_state(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_state)||(null===(e=this._config)||void 0===e?void 0:e.show_state)}get _entity(){var t;return(null===(t=this._config)||void 0===t?void 0:t.entity)||""}get _icon(){var t;return(null===(t=this._config)||void 0===t?void 0:t.icon)||se}get _slider(){var t;return(null===(t=this._config)||void 0===t?void 0:t.slider)||re}get _action_button(){var t;return(null===(t=this._config)||void 0===t?void 0:t.action_button)||ie}render(){var t;if(!this.hass||!this._helpers)return mt``;const e=["more-info","toggle","navigate","url","call-service","none"];return this._helpers.importMoreInfoControl("climate"),mt`
- +
- + - + - +
- + - +
${this.directions.map(t=>mt` - ${Qe("direction."+t)} + ${ai("direction."+t)} `)} ${this.backgrounds.map(t=>mt` - ${Qe("background."+t)} + ${ai("background."+t)} `)} @@ -312,14 +312,14 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons
${this.renderBrightness("slider")} ${this.renderStateColor("slider")} - + - + - +
${this.actionModes.map(t=>mt` - ${Qe("mode."+t)} + ${ai("mode."+t)} `)} ${this._action_button.mode===Kt.CUSTOM?mt` `:""}
- + ${this._action_button.mode===Kt.CUSTOM?mt` - + ${this._action_button.mode===Kt.CUSTOM?mt`
`}renderBrightness(t){const e=this["_"+t];return mt` - + `}renderStateColor(t){const e=this["_"+t];return mt` - + - `}_initialize(){void 0!==this.hass&&void 0!==this._config&&void 0!==this._helpers&&(this._initialized=!0)}async loadCardHelpers(){this._helpers=await window.loadCardHelpers()}_valueChangedSelect(t){var e;const i=t.detail.value;i&&this._changeValue(null===(e=i.parentElement)||void 0===e?void 0:e.configValue,i.itemValue)}_valueChangedEntity(t){var e,i;const s=t.target,r=null===(e=t.detail)||void 0===e?void 0:e.value,n=w(r)!==w((null===(i=this._config)||void 0===i?void 0:i.entity)||"light.dummy");this._changeValue("name",""),this._changeValue("icon.icon",""),this._changeValue(s.configValue,r),n&&(Me(this._config,"slider",Ce(r)),O(this,"config-changed",{config:this._config}))}_valueChanged(t){var e;const i=t.target,s=null===(e=t.detail)||void 0===e?void 0:e.value;this._changeValue(i.configValue,void 0!==i.checked?i.checked:s)}_changeValue(t,e){if(this._config&&this.hass&&(void 0===this["_"+t]||this["_"+t]!==e)){if(t){const i=this._config;Me(i,t,e),this._config=i,""===e&&delete this._config[t]}O(this,"config-changed",{config:this._config})}}static get styles(){return Dt` + `}_initialize(){void 0!==this.hass&&void 0!==this._config&&void 0!==this._helpers&&(this._initialized=!0)}async loadCardHelpers(){this._helpers=await window.loadCardHelpers()}_valueChangedSelect(t){var e;const i=t.detail.value;i&&this._changeValue(null===(e=i.parentElement)||void 0===e?void 0:e.configValue,i.itemValue)}_valueChangedEntity(t){var e,i;const s=t.target,r=null===(e=t.detail)||void 0===e?void 0:e.value,o=w(r)!==w((null===(i=this._config)||void 0===i?void 0:i.entity)||"light.dummy");this._changeValue("name",""),this._changeValue("icon.icon",""),this._changeValue(s.configValue,r),o&&(Ce(this._config,"slider",Me(r)),O(this,"config-changed",{config:this._config}))}_valueChanged(t){var e;const i=t.target,s=null===(e=t.detail)||void 0===e?void 0:e.value;this._changeValue(i.configValue,void 0!==i.checked?i.checked:s)}_changeValue(t,e){if(this._config&&this.hass&&(void 0===this["_"+t]||this["_"+t]!==e)){if(t){const i=this._config;Ce(i,t,e),this._config=i,""===e&&delete this._config[t]}O(this,"config-changed",{config:this._config})}}static get styles(){return Ht` ha-switch { padding: 16px 6px; } @@ -479,14 +479,14 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons max-height: 100vh; padding: 1em; } - `}};t([At({attribute:!1})],ti.prototype,"hass",void 0),t([Pt()],ti.prototype,"_config",void 0),t([Pt()],ti.prototype,"_helpers",void 0),ti=t([Ct("slider-button-card-editor")],ti),console.info(`%c SLIDER-BUTTON-CARD %c ${Qe("common.version")}1.1.0 %c`,"background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border: 1px solid #555;border-radius: 3px 0 0 3px;font-family: Roboto,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: transparent;color: #555;padding: 3px 3px 3px 2px;border: 1px solid #555; border-radius: 0 3px 3px 0;font-family: Roboto,Verdana,Geneva,sans-serif","background-color: transparent"),window.customCards=window.customCards||[],window.customCards.push({type:"slider-button-card",name:"Slider button Card",description:"A button card with slider",preview:!0});let ei=class extends It{constructor(){super(...arguments),this.changing=!1,this.changed=!1}static async getConfigElement(){return document.createElement("slider-button-card-editor")}static getStubConfig(t,e){const i=e.find(t=>t.startsWith("light"))||"";return{entity:i,slider:Ce(i),show_name:!0,show_state:!0,icon:se,action_button:ie}}getCardSize(){return 0}setConfig(t){if(!t)throw new Error(Qe("common.invalid_configuration"));if(!t.entity)throw new Error(Qe("common.invalid_configuration"));t.test_gui&&function(){var t=document.querySelector("home-assistant");if(t=(t=(t=(t=(t=(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root")){var e=t.lovelace;return e.current_view=t.___curView,e}return null}().setEditMode(!0),this.config=Object.assign({slider:Ce(t.entity),icon:se,show_name:!0,show_state:!0,action_button:ie,debug:!1},t),this.ctrl=class{static getInstance(t){const e=w(t.entity),i={[ee.LIGHT]:Re,[ee.FAN]:Ee,[ee.SWITCH]:He,[ee.COVER]:Pe,[ee.INPUT_BOOLEAN]:je};if(void 0===i[e])throw new Error("Unsupported entity type: "+e);return new i[e](t)}}.getInstance(this.config)}shouldUpdate(t){if(!this.config)return!1;const e=t.get("hass");return!e||e.themes!==this.hass.themes||e.language!==this.hass.language||function(t,e,i){if(e.has("config")||i)return!0;if(t.config.entity){var s=e.get("hass");return!s||s.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t,!1)}updated(t){this.updateValue(this.ctrl.value,!1),this.animateActionEnd();const e=t.get("hass"),i=t.get("_config");e&&i&&e.themes===this.hass.themes&&i.theme===this.config.theme||function(t,e,i,s){void 0===s&&(s=!1),t._themes||(t._themes={});var r=e.default_theme;("default"===i||i&&e.themes[i])&&(r=i);var n=Object.assign({},t._themes);if("default"!==r){var a=e.themes[r];Object.keys(a).forEach((function(e){var i="--"+e;t._themes[i]="",n[i]=a[e]}))}if(t.updateStyles?t.updateStyles(n):window.ShadyCSS&&window.ShadyCSS.styleSubtree(t,n),s){var o=document.querySelector("meta[name=theme-color]");if(o){o.hasAttribute("default-content")||o.setAttribute("default-content",o.getAttribute("content"));var l=n["--primary-color"]||o.getAttribute("default-content");o.setAttribute("content",l)}}}(this,this.hass.themes,this.config.theme),this.ctrl.log("UPDATED",this.ctrl.value)}firstUpdated(t){super.firstUpdated(t)}render(){var t,e,i,s;return this.ctrl.hass=this.hass,this.ctrl.stateObj?(this.ctrl.log("RENDER",this.ctrl.value),mt` + `}};t([At({attribute:!1})],ci.prototype,"hass",void 0),t([Pt()],ci.prototype,"_config",void 0),t([Pt()],ci.prototype,"_helpers",void 0),ci=t([Mt("slider-button-card-editor")],ci),console.info(`%c SLIDER-BUTTON-CARD %c ${ai("common.version")}1.3.0 %c`,"background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border: 1px solid #555;border-radius: 3px 0 0 3px;font-family: Roboto,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: transparent;color: #555;padding: 3px 3px 3px 2px;border: 1px solid #555; border-radius: 0 3px 3px 0;font-family: Roboto,Verdana,Geneva,sans-serif","background-color: transparent"),window.customCards=window.customCards||[],window.customCards.push({type:"slider-button-card",name:"Slider button Card",description:"A button card with slider",preview:!0});let li=class extends Lt{constructor(){super(...arguments),this.changing=!1,this.changed=!1}static async getConfigElement(){return document.createElement("slider-button-card-editor")}static getStubConfig(t,e){const i=e.find(t=>t.startsWith("light"))||"";return{entity:i,slider:Me(i),show_name:!0,show_state:!0,icon:se,action_button:ie}}getCardSize(){return 0}setConfig(t){if(!t)throw new Error(ai("common.invalid_configuration"));if(!t.entity)throw new Error(ai("common.invalid_configuration"));t.test_gui&&function(){var t=document.querySelector("home-assistant");if(t=(t=(t=(t=(t=(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root")){var e=t.lovelace;return e.current_view=t.___curView,e}return null}().setEditMode(!0),this.config=Object.assign({slider:Me(t.entity),icon:se,show_name:!0,show_state:!0,action_button:ie,debug:!1},t),this.ctrl=class{static getInstance(t){const e=w(t.entity),i={[ee.LIGHT]:Re,[ee.FAN]:Ee,[ee.SWITCH]:He,[ee.COVER]:Pe,[ee.INPUT_BOOLEAN]:je,[ee.LOCK]:De};if(void 0===i[e])throw new Error("Unsupported entity type: "+e);return new i[e](t)}}.getInstance(this.config)}shouldUpdate(t){if(!this.config)return!1;const e=t.get("hass");return!e||e.themes!==this.hass.themes||e.language!==this.hass.language||function(t,e,i){if(e.has("config")||i)return!0;if(t.config.entity){var s=e.get("hass");return!s||s.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t,!1)}updated(t){this.updateValue(this.ctrl.value,!1),this.animateActionEnd();const e=t.get("hass"),i=t.get("_config");e&&i&&e.themes===this.hass.themes&&i.theme===this.config.theme||function(t,e,i,s){void 0===s&&(s=!1),t._themes||(t._themes={});var r=e.default_theme;("default"===i||i&&e.themes[i])&&(r=i);var o=Object.assign({},t._themes);if("default"!==r){var n=e.themes[r];Object.keys(n).forEach((function(e){var i="--"+e;t._themes[i]="",o[i]=n[e]}))}if(t.updateStyles?t.updateStyles(o):window.ShadyCSS&&window.ShadyCSS.styleSubtree(t,o),s){var a=document.querySelector("meta[name=theme-color]");if(a){a.hasAttribute("default-content")||a.setAttribute("default-content",a.getAttribute("content"));var c=o["--primary-color"]||a.getAttribute("default-content");a.setAttribute("content",c)}}}(this,this.hass.themes,this.config.theme),this.ctrl.log("UPDATED",this.ctrl.value)}firstUpdated(t){super.firstUpdated(t)}render(){var t,e,i,s;return this.ctrl.hass=this.hass,this.ctrl.stateObj?(this.ctrl.log("RENDER",this.ctrl.value),mt`
- `):this._showError(Qe("common.show_error"))}renderText(){return this.config.show_name||this.config.show_state?mt` + `):this._showError(ai("common.show_error"))}renderText(){return this.config.show_name||this.config.show_state?mt`
${this.config.show_name?mt`
${this.ctrl.name}
@@ -560,7 +560,7 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons
`}setTargetValue(t){this.updateValue(t)}_handleAction(t,e){var i;this.hass&&this.config&&t.detail.action&&("toggle"===(null===(i=e.tap_action)||void 0===i?void 0:i.action)&&this.animateActionStart(),P(this,this.hass,Object.assign(Object.assign({},e),{entity:this.config.entity}),t.detail.action))}handleClick(t){this.ctrl.hasToggle&&!this.ctrl.isUnavailable&&(t.preventDefault(),this.setStateValue(this.ctrl.toggleValue))}_toggle(){this.hass&&this.config&&P(this,this.hass,{tap_action:{action:"toggle"},entity:this.config.entity},"tap")}setStateValue(t){this.updateValue(t,!1),this.ctrl.value=t,this.ctrl.log("setStateValue",t),this.animateActionStart()}animateActionStart(){this.animateActionEnd(),this.action&&this.action.classList.add("loading")}animateActionEnd(){this.action&&(clearTimeout(this.actionTimeout),this.actionTimeout=setTimeout(()=>{this.action.classList.remove("loading")},750))}updateValue(t,e=!0){var i;this.changing=e,this.changed=!e,this.ctrl.log("updateValue",t),this.ctrl.targetValue=t,this.button&&(this.button.classList.remove("off"),e?this.button.classList.add("changing"):(this.button.classList.remove("changing"),this.ctrl.isOff&&this.button.classList.add("off")),this.stateText&&(this.stateText.innerHTML=this.ctrl.isUnavailable?""+this.hass.localize("state.default.unavailable"):this.ctrl.label),this.button.style.setProperty("--slider-value",this.ctrl.percentage+"%"),this.button.style.setProperty("--slider-bg-filter",this.ctrl.style.slider.filter),this.button.style.setProperty("--icon-filter",this.ctrl.style.icon.filter),this.button.style.setProperty("--icon-color",this.ctrl.style.icon.color),(null===(i=this.config.icon)||void 0===i?void 0:i.rotate)&&this.button.style.setProperty("--icon-rotate-speed",this.ctrl.style.icon.rotateSpeed||"0s"))}_showError(t){const e=document.createElement("hui-error-card");return e.setConfig({type:"error",error:t,origConfig:this.config}),mt` ${e} - `}getColorFromVariable(t){if(void 0!==t&&"var"===t.substring(0,3)){let e=window.getComputedStyle(this).getPropertyValue(t.substring(4).slice(0,-1)).trim();return e.length||(e=window.getComputedStyle(document.documentElement).getPropertyValue(t.substring(4).slice(0,-1)).trim()),e}return t}onPointerDown(t){t.preventDefault(),t.stopPropagation(),this.ctrl.isSliderDisabled||this.slider.setPointerCapture(t.pointerId)}onPointerUp(){this.ctrl.isSliderDisabled||(this.ctrl.log("onPointerUp",this.ctrl.targetValue),this.setStateValue(this.ctrl.targetValue))}onPointerMove(t){var e,i,s;if(this.ctrl.isSliderDisabled)return;if(!t.target.hasPointerCapture(t.pointerId))return;const{left:r,top:n,width:a,height:o}=this.slider.getBoundingClientRect();let l;(null===(e=this.config.slider)||void 0===e?void 0:e.direction)===Qt.LEFT_RIGHT?l=$e(t.clientX,r,a):(null===(i=this.config.slider)||void 0===i?void 0:i.direction)===Qt.TOP_BOTTOM?l=$e(t.clientY,n,o):(null===(s=this.config.slider)||void 0===s?void 0:s.direction)===Qt.BOTTOM_TOP&&(l=100-$e(t.clientY,n,o)),l=this.ctrl.applyStep(l),l<0&&(l=0),l>100&&(l=100),this.ctrl.log("onPointerMove",l),this.updateValue(l)}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback()}static get styles(){return Dt` + `}getColorFromVariable(t){if(void 0!==t&&"var"===t.substring(0,3)){let e=window.getComputedStyle(this).getPropertyValue(t.substring(4).slice(0,-1)).trim();return e.length||(e=window.getComputedStyle(document.documentElement).getPropertyValue(t.substring(4).slice(0,-1)).trim()),e}return t}onPointerDown(t){t.preventDefault(),t.stopPropagation(),this.ctrl.isSliderDisabled||this.slider.setPointerCapture(t.pointerId)}onPointerUp(){this.ctrl.isSliderDisabled||(this.ctrl.log("onPointerUp",this.ctrl.targetValue),this.setStateValue(this.ctrl.targetValue))}onPointerMove(t){var e,i,s;if(this.ctrl.isSliderDisabled)return;if(!t.target.hasPointerCapture(t.pointerId))return;const{left:r,top:o,width:n,height:a}=this.slider.getBoundingClientRect();let c;(null===(e=this.config.slider)||void 0===e?void 0:e.direction)===Qt.LEFT_RIGHT?c=$e(t.clientX,r,n):(null===(i=this.config.slider)||void 0===i?void 0:i.direction)===Qt.TOP_BOTTOM?c=$e(t.clientY,o,a):(null===(s=this.config.slider)||void 0===s?void 0:s.direction)===Qt.BOTTOM_TOP&&(c=100-$e(t.clientY,o,a)),c=this.ctrl.applyStep(c),c<0&&(c=0),c>100&&(c=100),this.ctrl.log("onPointerMove",c),this.updateValue(c)}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback()}static get styles(){return Ht` ha-card { box-sizing: border-box; height: 100%; @@ -600,6 +600,8 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons --action-icon-color-off: var(--paper-item-icon-color, black); --action-spinner-color: var(--label-badge-text-color, white); } + /* --- BUTTON --- */ + .button { position: relative; padding: 0.8rem; @@ -615,6 +617,9 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons .button.off { background-color: var(--btn-bg-color-off); } + + /* --- ICON --- */ + .icon { position: relative; cursor: pointer; @@ -631,6 +636,9 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons color: var(--icon-color); transition: color 0.4s ease-in-out 0s, filter 0.2s linear 0s; } + + /* --- TEXT --- */ + .text { position: absolute; bottom: 0; @@ -643,6 +651,9 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons max-width: calc(100% - 2em); /*text-shadow: rgb(255 255 255 / 10%) -1px -1px 1px, rgb(0 0 0 / 50%) 1px 1px 1px;*/ } + + /* --- LABEL --- */ + .name { color: var(--label-color-on); text-overflow: ellipsis; @@ -653,6 +664,9 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons .off .name { color: var(--label-color-off); } + + /* --- STATE --- */ + .state { color: var(--state-color-on, var(--label-badge-text-color, white)); text-overflow: ellipsis; @@ -666,6 +680,9 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons .off .state { color: var(--state-color-off, var(--disabled-text-color)); } + + /* --- SLIDER --- */ + .slider { position: absolute; top: 0px; @@ -676,6 +693,18 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons cursor: ew-resize; z-index: 0; } + .slider[data-mode="bottom-top"] { + cursor: ns-resize; + } + .slider[data-mode="top-bottom"] { + cursor: ns-resize; + } + .slider:active { + cursor: grabbing; + } + + /* --- SLIDER OVERLAY --- */ + .slider .toggle-overlay { position: absolute; top: 0px; @@ -686,6 +715,9 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons opacity: 0; z-index: 999; } + + /* --- SLIDER BACKGROUND --- */ + .slider-bg { position: absolute; top: 0; @@ -698,6 +730,47 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons background-position: var(--slider-bg-position, 0 0); filter: var(--slider-bg-filter, brightness(100%)); } + .off .slider .slider-bg { + background-color: var( --ha-card-background, var(--card-background-color, var(--btn-bg-color-off, black)) ); + } + .slider[data-background="solid"] .slider-bg { + --slider-bg-color: var(--slider-color); + } + .slider[data-background="triangle"] .slider-bg { + --slider-bg-direction: to bottom right; + --slider-bg: linear-gradient(var(--slider-bg-direction), transparent 0%, transparent 50%, var(--slider-color) 50%, var(--slider-color) 100%); + border-right: 0px solid; + } + .slider[data-background="triangle"][data-mode="bottom-top"] .slider-bg { + --slider-bg-direction: to top left; + } + .slider[data-background="triangle"][data-mode="top-bottom"] .slider-bg { + --slider-bg-direction: to bottom left; + } + .slider[data-background="custom"] .slider-bg { + --slider-bg: repeating-linear-gradient(-45deg, var(--slider-color) 0, var(--slider-color) 1px, var(--slider-color) 0, transparent 10%); + --slider-bg-size: 30px 30px; + } + .slider[data-background="gradient"] .slider-bg { + --slider-bg: linear-gradient(var(--slider-bg-direction), rgba(255, 0, 0, 0) -10%, var(--slider-color) 100%); + } + .slider[data-background="striped"] .slider-bg { + --slider-bg: linear-gradient(var(--slider-bg-direction), var(--slider-color), var(--slider-color) 50%, transparent 50%, transparent); + --slider-bg-size: 4px 100%; + } + .slider[data-background="striped"][data-mode="bottom-top"] .slider-bg, + .slider[data-background="striped"][data-mode="top-bottom"] .slider-bg { + --slider-bg-size: 100% 4px; + } + .slider[data-mode="bottom-top"] .slider-bg { + --slider-bg-direction: to top; + } + .slider[data-mode="top-bottom"] .slider-bg { + --slider-bg-direction: to bottom; + } + + /* --- SLIDER THUMB --- */ + .slider-thumb { position: relative; width: 100%; @@ -706,12 +779,16 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons background: transparent; transition: transform var(--slider-transition-duration) ease-in; } + .changing .slider .slider-thumb { + transition: none; + } .slider[data-mode="top-bottom"] .slider-thumb { transform: translateY(var(--slider-value)) !important; } .slider[data-mode="bottom-top"] .slider-thumb { transform: translateY(calc(var(--slider-value) * -1)) !important; } + .slider-thumb:after { content: ''; position: absolute; @@ -725,76 +802,12 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons .slider[data-show-track="true"] .slider-thumb:after { opacity: 0.9; } - .off .slider[data-show-track="true"] .slider-thumb:after { opacity: 1; } - - .changing .slider .slider-thumb { - transition: none; - } - - .off .slider .slider-bg { - background-color: var( --ha-card-background, var(--card-background-color, var(--btn-bg-color-off, black)) ); - } - - .slider[data-mode="bottom-top"] { - cursor: ns-resize; - - } - .slider[data-mode="top-bottom"] { - cursor: ns-resize; - } - - .unavailable .slider .toggle-overlay, - .unavailable .action, - .unavailable .action ha-switch, - .unavailable .slider { - cursor: not-allowed !important; - } - - @media (pointer: coarse) { - .range-holder .range::-webkit-slider-thumb { - transform: scaleX(2.5); - } - } - - .slider:active { - cursor: grabbing; - } - - .slider[data-background="solid"] .slider-bg { - --slider-bg-color: var(--slider-color); - } - .slider[data-background="triangle"] .slider-bg { - --slider-bg: linear-gradient(to bottom right, transparent 0%, transparent 50%, var(--slider-color) 50%, var(--slider-color) 100%); - border-right: 0px solid; - } - .slider[data-background="custom"] .slider-bg { - --slider-bg: repeating-linear-gradient(-45deg, var(--slider-color) 0, var(--slider-color) 1px, var(--slider-color) 0, transparent 10%); - --slider-bg-size: 30px 30px; - /*--slider-bg: radial-gradient(circle at 100% 150%, silver 24%, white 24%, white 28%, silver 28%, silver 36%, white 36%, white 40%, transparent 40%, transparent), radial-gradient(circle at 0 150%, silver 24%, white 24%, white 28%, silver 28%, silver 36%, white 36%, white 40%, transparent 40%, transparent), radial-gradient(circle at 50% 100%, white 10%, silver 10%, silver 23%, white 23%, white 30%, silver 30%, silver 43%, white 43%, white 50%, silver 50%, silver 63%, white 63%, white 71%, transparent 71%, transparent), radial-gradient(circle at 100% 50%, white 5%, silver 5%, silver 15%, white 15%, white 20%, silver 20%, silver 29%, white 29%, white 34%, silver 34%, silver 44%, white 44%, white 49%, transparent 49%, transparent), radial-gradient(circle at 0 50%, white 5%, silver 5%, silver 15%, white 15%, white 20%, silver 20%, silver 29%, white 29%, white 34%, silver 34%, silver 44%, white 44%, white 49%, transparent 49%, transparent); - --slider-bg-size: 100px 50px;*/ - } - .slider[data-background="gradient"] .slider-bg { - --slider-bg: linear-gradient(var(--slider-bg-direction), rgba(255, 0, 0, 0) -10%, var(--slider-color) 100%); - } - .slider[data-background="striped"] .slider-bg { - --slider-bg: linear-gradient(var(--slider-bg-direction), var(--slider-color), var(--slider-color) 50%, transparent 50%, transparent); - --slider-bg-size: 4px 100%; - } - .slider[data-mode="bottom-top"] .slider-bg { - --slider-bg-direction: to top; - } - .slider[data-mode="top-bottom"] .slider-bg { - --slider-bg-direction: to bottom; - } - - .slider[data-background="striped"][data-mode="bottom-top"] .slider-bg, - .slider[data-background="striped"][data-mode="top-bottom"] .slider-bg { - --slider-bg-size: 100% 4px; - } - + + /* --- ACTION BUTTON --- */ + .action { position: relative; float: right; @@ -804,22 +817,16 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; - } - + } .action ha-switch { position: absolute; right: 0; top: 5px; - } - + } .off .action { color: var(--action-icon-color-off); } - .action.loading .circular-loader { - opacity: 1; - } - .circular-loader { position: absolute; left: -8px; @@ -829,8 +836,11 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons opacity: 0; transition: opacity 0.2s ease-in-out; animation: rotate 2s linear infinite; - } - + } + .action.loading .circular-loader { + opacity: 1; + } + .loader-path { fill: none; stroke-width: 2px; @@ -839,6 +849,16 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons stroke-linecap: round; } + /* --- MISC --- */ + + .unavailable .slider .toggle-overlay, + .unavailable .action, + .unavailable .action ha-switch, + .unavailable .slider { + cursor: not-allowed !important; + } + + @keyframes rotate { 100% { transform: rotate(360deg); @@ -859,4 +879,4 @@ class zt{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons stroke-dashoffset: -124; } } - `}};var ii;t([At({attribute:!1})],ei.prototype,"hass",void 0),t([Pt(ii)],ei.prototype,"config",void 0),t([Et(".state")],ei.prototype,"stateText",void 0),t([Et(".button")],ei.prototype,"button",void 0),t([Et(".action")],ei.prototype,"action",void 0),t([Et(".slider")],ei.prototype,"slider",void 0),ei=t([Ct("slider-button-card")],ei);export{ei as SliderButtonCard}; + `}};var hi;t([At({attribute:!1})],li.prototype,"hass",void 0),t([Pt(hi)],li.prototype,"config",void 0),t([Et(".state")],li.prototype,"stateText",void 0),t([Et(".button")],li.prototype,"button",void 0),t([Et(".action")],li.prototype,"action",void 0),t([Et(".slider")],li.prototype,"slider",void 0),li=t([Mt("slider-button-card")],li);export{li as SliderButtonCard}; diff --git a/src/controllers/lock-controller.ts b/src/controllers/lock-controller.ts index 211b48f..84ef3eb 100644 --- a/src/controllers/lock-controller.ts +++ b/src/controllers/lock-controller.ts @@ -26,9 +26,9 @@ export class LockController extends Controller { get label(): string { if (this.percentage > 0) { - return this._hass.localize('component.lock.state._.locked'); + return this._hass.localize('component.lock.state._.unlocked'); } - return this._hass.localize('component.lock.state._.unlocked'); + return this._hass.localize('component.lock.state._.locked'); } } From 5b7ab934303e91d0414e2b79bc4ba9d1a6a2ecfb Mon Sep 17 00:00:00 2001 From: MHA Date: Fri, 2 Jul 2021 23:39:30 +0200 Subject: [PATCH 3/3] chore: update readme with lock examples --- README.md | 37 +++++++++++++- assets/examples/lock.gif | Bin 0 -> 316910 bytes dist/slider-button-card.js | 78 ++++++++++++++--------------- src/controllers/lock-controller.ts | 1 + 4 files changed, 75 insertions(+), 41 deletions(-) create mode 100644 assets/examples/lock.gif diff --git a/README.md b/README.md index f7bba83..a66b74a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![GitHub Release][releases-shield]][releases] [![hacs_badge](https://img.shields.io/badge/HACS-default-orange.svg?style=for-the-badge)](https://github.com/custom-components/hacs) -A button card with integrated slider for `light, switch, fan, cover, input_boolean, media_player, climate` entities. +A button card with integrated slider for `light, switch, fan, cover, input_boolean, media_player, climate, lock` entities. ![Preview][preview] @@ -33,6 +33,7 @@ A button card with integrated slider for `light, switch, fan, cover, input_boole - [Cover](#cover) - [Media player](#media-player) - [Climate](#climate) + - [Lock](#lock) - [In a grid](#grid) - [Known issues](#known-issues) - [Languages](#languages) @@ -68,7 +69,7 @@ Slider Button Card supports Lovelace's Visual Editor. | Name | Type | Requirement | Description | Default | | ----------------- | ------- | ------------ | ------------------------------------------- | ------------------- | | type | string | **Required** | `custom:slider-button-card` | -| entity | string | **Required** | HA entity ID from domain `light, switch, fan, cover, input_boolean, media_player, climate` | | +| entity | string | **Required** | HA entity ID from domain `light, switch, fan, cover, input_boolean, media_player, climate, lock` | | | name | string | **Optional** | Name | `entity.friendly_name` | | show_name | boolean | **Optional** | Show name | `true` | | show_state | boolean | **Optional** | Show state | `true` | @@ -587,6 +588,38 @@ name: Airco +#### Lock +Default behavior: `slider.toggle_on_click: true` + + + + + + + + + +
Action button hidden +
+ + +```yaml +type: custom:slider-button-card +entity: lock.virtual_lock +slider: + direction: left-right + background: solid + toggle_on_click: true +icon: + use_state_color: true + tap_action: + action: more-info +action_button: + show: false +name: Lock +``` +
+ #### Grid diff --git a/assets/examples/lock.gif b/assets/examples/lock.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b13cde6d4aaa5b44b34163ffda0a5281d4be7fe GIT binary patch literal 316910 zcmeFa2T+q+yT1*gg(igFNkSFrAfTeO(0dc4cabImlwJZMgkF_i0!SC>B29W1!Geg0 z6e$WKO{&B%>fZb8_dWZ}cV^C5lZV7{o-xC9t>0R?)iu@RF4+eWxDgx@ z{2YXYga815h=_=on3#lwgp`z&jEoEj1d@}JQ&3P)Qc_Y;QBhMaBy;Ra&d8Sb8~~iUPg+h6F zczAhv`S|$w`S}F|1Ox>I&!0apBqVg5CUH%E-vb%F4>g$z8g1>GI{vSFT)Z8s4*dA>1NUy+5%PmlPu0X&Mae)_QdFFX5che291|0e z;2wp4emH)9ObCEj0#5F3lotu-ZOC3t)x)jHu z*-$!?E~qM_HDUzTNTprgca&x>;F^Ymyt7+XJQY{hcm*KintVV(1 zzid)b^}5=;(e3?cbM>1?rql=$_X>~RNG?th3Wj0Br;ojtNAtBG*S>EL*!%pR@=X?x zB7))CRhHoy%f3On3pV4e^~*ykJlX|ww;NXay*WvgbBAfcT}3MKT)HP-U==iw$-$|$ zY2!_u^{MJJK@eu9)pw)CJ0;q}ohNhamF1Qn z^f=pnR-c?<;oRJB+V3vkJ3V&ijqNxcebKYQsPOpA@-z+k^pTfvmwQ>nwjmjJ?)%4u zcg~yzKDb7WOAN9&$qNoel3mMO@P9zEyTIb$cT~iJ(2&%OW;$Wcv5)PSP~$+%k)b&p zhY@JY{ZzTR=(U{zE^ZnMfEmx3s|G2z%;gxK=paofIj7Srh*_{-f_+S=>b$Fi%~JCk z6Nii3+c%bXQ$RzZTGzARrG~top<(q1IB&)c8dQCd{Rop?YUP}_=wjuaq*Q*70>y;p zx|4+<<+#IJ<;n@KnR>ugc*dHWA56Gg#CoeDb&%D?&jQ7Iv!Z^G%`H!YG&OBH(Ag&K zRqD+$tXqGM8e8cEn|qC`baqu0V*bWZP2H%_=ZF1OQ!BL%4}&s!v;o>4Wu>DO!fZoO zZMFwNQwX*CTSbcx**rY7J({QEP@Xok*T&RXoy4D@S|6ubin^{X-P?MYyR~y2dZ!Ll zQy)ChZr17lo_&MOnfHZ$aBK#lST~@sqNbCk+7M;sgk-zj4O&*MvnF+SLqQH0B?tR< z?{4n&lPDw%vicse40EvEuG#Gtj{3gc?gEn=WMwQ5@wMiD&Sx|Hq5!T|*Ftf1|IVd1 zjFNRGeY4U-`eUZj)^}dj+RLy7>jSF@w8UV!ONPDd`#bO6 z-@+nOTd40m@@Lv5<3=)1sB@za?T@&lkG{w(_#YdW@p^GSev_BfM|N!e<<7ZMYwV<1 z;Ht$_PP27Pdco#uRpxNe#xqaqcCUu#NtRz)`cT1J)sDl#n`J*T=QESOhCK{BY4-f? zioUd@u{%okBZtR-&OUIb>?>rz^Y+C^bLZYCuPxkPeZb6oyYZ&>>fxu<@Hq#IclKeY zeF_h;2P@B3uDTqXeds)z3eLBhR+m@uMi9#l_d$i;kev@%0EUSt{NSi3<7MEF=xV1V zT&4p;*AcXcIsg}wJ(U6rh9-KUj|MxLd}RiM)M*8i`kG`?_wv!$nD<)}fcjtoN;KH# zzA&!cNt)y1MWAp^;aNkBLMv}ErDBLSq@Y{w{L!MwJ*h#?)&*kuev(k3cJ9-Yo&KwG zj}(k59Eit!$u1B$P=?WR?_X}Y*ys8P{-qDodqN1LJTaijGPF8AS&TV9=aS?X!cLM4 zMpuhNY1JoHAb=hcd4drd*ftU5#DJKot&TgfJBpbKF^qma#S*+7L3T|sl2!u)¥+ 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[a])&&(n=(o<3?r(n):o>3?r(e,i,n):r(e,i))||n);return o>3&&n&&Object.defineProperty(e,i,n),n}var e=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,i="[^\\s]+",s=/\[([^]*?)\]/gm;function r(t,e){for(var i=[],s=0,r=t.length;s-1?s:null}};function n(t){for(var e=[],i=1;i3?0:(t-t%10!=10?1:0)*t%10]}},d=n({},h),u=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+u(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+u(Math.floor(Math.abs(e)/60),2)+":"+u(Math.abs(e)%60,2)}},g=function(t){return+t-1},f=[null,"[1-9]\\d?"],b=[null,i],m=["isPm",i,function(t,e){var i=t.toLowerCase();return i===e.amPm[0]?0:i===e.amPm[1]?1:null}],_=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var i=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?i:-i}return 0}],v=(o("monthNamesShort"),o("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var y=function(t,i,r){if(void 0===i&&(i=v.default),void 0===r&&(r={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var o=[];i=(i=v[i]||i).replace(s,(function(t,e){return o.push(e),"@@@"}));var a=n(n({},d),r);return(i=i.replace(e,(function(e){return p[e](t,a)}))).replace(/@@@/g,(function(){return o.shift()}))};(function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}})(),function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}}();function w(t){return t.substr(0,t.indexOf("."))}function S(t){return w(t.entity_id)}var x="hass:bookmark",k=["closed","locked","off"],O=function(t,e,i,s){s=s||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===s.bubbles||s.bubbles,cancelable:Boolean(s.cancelable),composed:void 0===s.composed||s.composed});return r.detail=i,t.dispatchEvent(r),r},T={alert:"hass:alert",automation:"hass:playlist-play",calendar:"hass:calendar",camera:"hass:video",climate:"hass:thermostat",configurator:"hass:settings",conversation:"hass:text-to-speech",device_tracker:"hass:account",fan:"hass:fan",group:"hass:google-circles-communities",history_graph:"hass:chart-line",homeassistant:"hass:home-assistant",homekit:"hass:home-automation",image_processing:"hass:image-filter-frames",input_boolean:"hass:drawing",input_datetime:"hass:calendar-clock",input_number:"hass:ray-vertex",input_select:"hass:format-list-bulleted",input_text:"hass:textbox",light:"hass:lightbulb",mailbox:"hass:mailbox",notify:"hass:comment-alert",person:"hass:account",plant:"hass:flower",proximity:"hass:apple-safari",remote:"hass:remote",scene:"hass:google-pages",script:"hass:file-document",sensor:"hass:eye",simple_alarm:"hass:bell",sun:"hass:white-balance-sunny",switch:"hass:flash",timer:"hass:timer",updater:"hass:cloud-upload",vacuum:"hass:robot-vacuum",water_heater:"hass:thermometer",weblink:"hass:open-in-new"};function C(t,e){if(t in T)return T[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"hass:bell-plus";case"armed_night":return"hass:bell-sleep";case"disarmed":return"hass:bell-outline";case"triggered":return"hass:bell-ring";default:return"hass:bell"}case"binary_sensor":return e&&"off"===e?"hass:radiobox-blank":"hass:checkbox-marked-circle";case"cover":return"closed"===e?"hass:window-closed":"hass:window-open";case"lock":return e&&"unlocked"===e?"hass:lock-open":"hass:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"hass:cast-connected":"hass:cast";case"zwave":switch(e){case"dead":return"hass:emoticon-dead";case"sleeping":return"hass:sleep";case"initializing":return"hass:timer-sand";default:return"hass:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),x}}var P=function(t){O(window,"haptic",t)},M=function(t,e){return function(t,e,i){void 0===i&&(i=!0);var s,r=w(e),o="group"===r?"homeassistant":r;switch(r){case"lock":s=i?"unlock":"lock";break;case"cover":s=i?"open_cover":"close_cover";break;default:s=i?"turn_on":"turn_off"}return t.callService(o,s,{entity_id:e})}(t,e,k.includes(t.states[e].state))},E=function(t,e,i,s){if(s||(s={action:"more-info"}),!s.confirmation||s.confirmation.exemptions&&s.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||(P("warning"),confirm(s.confirmation.text||"Are you sure you want to "+s.action+"?")))switch(s.action){case"more-info":(i.entity||i.camera_image)&&O(t,"hass-more-info",{entityId:i.entity?i.entity:i.camera_image});break;case"navigate":s.navigation_path&&function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),O(window,"location-changed",{replace:i})}(0,s.navigation_path);break;case"url":s.url_path&&window.open(s.url_path);break;case"toggle":i.entity&&(M(e,i.entity),P("success"));break;case"call-service":if(!s.service)return void P("failure");var r=s.service.split(".",2);e.callService(r[0],r[1],s.service_data),P("success");break;case"fire-dom-event":O(t,"ll-custom",s)}},A=function(t,e,i,s){var r;"double_tap"===s&&i.double_tap_action?r=i.double_tap_action:"hold"===s&&i.hold_action?r=i.hold_action:"tap"===s&&i.tap_action&&(r=i.tap_action),E(t,e,i,r)};var $={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi"},N={binary_sensor:function(t){var e=t.state&&"off"===t.state;switch(t.attributes.device_class){case"battery":return e?"hass:battery":"hass:battery-outline";case"cold":return e?"hass:thermometer":"hass:snowflake";case"connectivity":return e?"hass:server-network-off":"hass:server-network";case"door":return e?"hass:door-closed":"hass:door-open";case"garage_door":return e?"hass:garage":"hass:garage-open";case"gas":case"power":case"problem":case"safety":case"smoke":return e?"hass:shield-check":"hass:alert";case"heat":return e?"hass:thermometer":"hass:fire";case"light":return e?"hass:brightness-5":"hass:brightness-7";case"lock":return e?"hass:lock":"hass:lock-open";case"moisture":return e?"hass:water-off":"hass:water";case"motion":return e?"hass:walk":"hass:run";case"occupancy":return e?"hass:home-outline":"hass:home";case"opening":return e?"hass:square":"hass:square-outline";case"plug":return e?"hass:power-plug-off":"hass:power-plug";case"presence":return e?"hass:home-outline":"hass:home";case"sound":return e?"hass:music-note-off":"hass:music-note";case"vibration":return e?"hass:crop-portrait":"hass:vibrate";case"window":return e?"hass:window-closed":"hass:window-open";default:return e?"hass:radiobox-blank":"hass:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"hass:garage-open":"hass:garage";case"door":return e?"hass:door-open":"hass:door-closed";case"shutter":return e?"hass:window-shutter-open":"hass:window-shutter";case"blind":return e?"hass:blinds-open":"hass:blinds";case"window":return e?"hass:window-open":"hass:window-closed";default:return C("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in $)return $[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"hass:battery-unknown";var s=10*Math.round(i/10);return s>=100?"hass:battery":s<=0?"hass:battery-alert":"hass:battery-"+s}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"hass:thermometer":C("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?C("input_datetime"):"hass:calendar":"hass:clock"}},j=function(t){if(!t)return x;if(t.attributes.icon)return t.attributes.icon;var e=w(t.entity_id);return e in N?N[e](t):C(e,t.state)},R=Function.prototype.toString,I=Object.create,V=Object.defineProperty,H=Object.getOwnPropertyDescriptor,U=Object.getOwnPropertyNames,L=Object.getOwnPropertySymbols,z=Object.getPrototypeOf,F=Object.prototype,D=F.hasOwnProperty,B=F.propertyIsEnumerable,q="function"==typeof L,G="function"==typeof WeakMap,Y=function(t,e){if(!t.constructor)return I(null);var i=t.constructor,s=t.__proto__||z(t);if(i===e.Object)return s===e.Object.prototype?{}:I(s);if(~R.call(i).indexOf("[native code]"))try{return new i}catch(t){}return I(s)},W=function(t,e,i,s){var r=Y(t,e);for(var o in s.set(t,r),t)D.call(t,o)&&(r[o]=i(t[o],s));if(q){var n=L(t),a=n.length;if(a)for(var l=0,c=void 0;l=0;a--)(r=t[a])&&(n=(o<3?r(n):o>3?r(e,i,n):r(e,i))||n);return o>3&&n&&Object.defineProperty(e,i,n),n}var e=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,i="[^\\s]+",s=/\[([^]*?)\]/gm;function r(t,e){for(var i=[],s=0,r=t.length;s-1?s:null}};function n(t){for(var e=[],i=1;i3?0:(t-t%10!=10?1:0)*t%10]}},d=n({},h),u=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+u(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+u(Math.floor(Math.abs(e)/60),2)+":"+u(Math.abs(e)%60,2)}},g=function(t){return+t-1},f=[null,"[1-9]\\d?"],b=[null,i],m=["isPm",i,function(t,e){var i=t.toLowerCase();return i===e.amPm[0]?0:i===e.amPm[1]?1:null}],_=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var i=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?i:-i}return 0}],v=(o("monthNamesShort"),o("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var y=function(t,i,r){if(void 0===i&&(i=v.default),void 0===r&&(r={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var o=[];i=(i=v[i]||i).replace(s,(function(t,e){return o.push(e),"@@@"}));var a=n(n({},d),r);return(i=i.replace(e,(function(e){return p[e](t,a)}))).replace(/@@@/g,(function(){return o.shift()}))};(function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}})(),function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}}();function w(t){return t.substr(0,t.indexOf("."))}function S(t){return w(t.entity_id)}var k="hass:bookmark",x=["closed","locked","off"],O=function(t,e,i,s){s=s||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===s.bubbles||s.bubbles,cancelable:Boolean(s.cancelable),composed:void 0===s.composed||s.composed});return r.detail=i,t.dispatchEvent(r),r},T={alert:"hass:alert",automation:"hass:playlist-play",calendar:"hass:calendar",camera:"hass:video",climate:"hass:thermostat",configurator:"hass:settings",conversation:"hass:text-to-speech",device_tracker:"hass:account",fan:"hass:fan",group:"hass:google-circles-communities",history_graph:"hass:chart-line",homeassistant:"hass:home-assistant",homekit:"hass:home-automation",image_processing:"hass:image-filter-frames",input_boolean:"hass:drawing",input_datetime:"hass:calendar-clock",input_number:"hass:ray-vertex",input_select:"hass:format-list-bulleted",input_text:"hass:textbox",light:"hass:lightbulb",mailbox:"hass:mailbox",notify:"hass:comment-alert",person:"hass:account",plant:"hass:flower",proximity:"hass:apple-safari",remote:"hass:remote",scene:"hass:google-pages",script:"hass:file-document",sensor:"hass:eye",simple_alarm:"hass:bell",sun:"hass:white-balance-sunny",switch:"hass:flash",timer:"hass:timer",updater:"hass:cloud-upload",vacuum:"hass:robot-vacuum",water_heater:"hass:thermometer",weblink:"hass:open-in-new"};function C(t,e){if(t in T)return T[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"hass:bell-plus";case"armed_night":return"hass:bell-sleep";case"disarmed":return"hass:bell-outline";case"triggered":return"hass:bell-ring";default:return"hass:bell"}case"binary_sensor":return e&&"off"===e?"hass:radiobox-blank":"hass:checkbox-marked-circle";case"cover":return"closed"===e?"hass:window-closed":"hass:window-open";case"lock":return e&&"unlocked"===e?"hass:lock-open":"hass:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"hass:cast-connected":"hass:cast";case"zwave":switch(e){case"dead":return"hass:emoticon-dead";case"sleeping":return"hass:sleep";case"initializing":return"hass:timer-sand";default:return"hass:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),k}}var P=function(t){O(window,"haptic",t)},M=function(t,e){return function(t,e,i){void 0===i&&(i=!0);var s,r=w(e),o="group"===r?"homeassistant":r;switch(r){case"lock":s=i?"unlock":"lock";break;case"cover":s=i?"open_cover":"close_cover";break;default:s=i?"turn_on":"turn_off"}return t.callService(o,s,{entity_id:e})}(t,e,x.includes(t.states[e].state))},E=function(t,e,i,s){if(s||(s={action:"more-info"}),!s.confirmation||s.confirmation.exemptions&&s.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||(P("warning"),confirm(s.confirmation.text||"Are you sure you want to "+s.action+"?")))switch(s.action){case"more-info":(i.entity||i.camera_image)&&O(t,"hass-more-info",{entityId:i.entity?i.entity:i.camera_image});break;case"navigate":s.navigation_path&&function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),O(window,"location-changed",{replace:i})}(0,s.navigation_path);break;case"url":s.url_path&&window.open(s.url_path);break;case"toggle":i.entity&&(M(e,i.entity),P("success"));break;case"call-service":if(!s.service)return void P("failure");var r=s.service.split(".",2);e.callService(r[0],r[1],s.service_data),P("success");break;case"fire-dom-event":O(t,"ll-custom",s)}},A=function(t,e,i,s){var r;"double_tap"===s&&i.double_tap_action?r=i.double_tap_action:"hold"===s&&i.hold_action?r=i.hold_action:"tap"===s&&i.tap_action&&(r=i.tap_action),E(t,e,i,r)};var $={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi"},N={binary_sensor:function(t){var e=t.state&&"off"===t.state;switch(t.attributes.device_class){case"battery":return e?"hass:battery":"hass:battery-outline";case"cold":return e?"hass:thermometer":"hass:snowflake";case"connectivity":return e?"hass:server-network-off":"hass:server-network";case"door":return e?"hass:door-closed":"hass:door-open";case"garage_door":return e?"hass:garage":"hass:garage-open";case"gas":case"power":case"problem":case"safety":case"smoke":return e?"hass:shield-check":"hass:alert";case"heat":return e?"hass:thermometer":"hass:fire";case"light":return e?"hass:brightness-5":"hass:brightness-7";case"lock":return e?"hass:lock":"hass:lock-open";case"moisture":return e?"hass:water-off":"hass:water";case"motion":return e?"hass:walk":"hass:run";case"occupancy":return e?"hass:home-outline":"hass:home";case"opening":return e?"hass:square":"hass:square-outline";case"plug":return e?"hass:power-plug-off":"hass:power-plug";case"presence":return e?"hass:home-outline":"hass:home";case"sound":return e?"hass:music-note-off":"hass:music-note";case"vibration":return e?"hass:crop-portrait":"hass:vibrate";case"window":return e?"hass:window-closed":"hass:window-open";default:return e?"hass:radiobox-blank":"hass:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"hass:garage-open":"hass:garage";case"door":return e?"hass:door-open":"hass:door-closed";case"shutter":return e?"hass:window-shutter-open":"hass:window-shutter";case"blind":return e?"hass:blinds-open":"hass:blinds";case"window":return e?"hass:window-open":"hass:window-closed";default:return C("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in $)return $[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"hass:battery-unknown";var s=10*Math.round(i/10);return s>=100?"hass:battery":s<=0?"hass:battery-alert":"hass:battery-"+s}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"hass:thermometer":C("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?C("input_datetime"):"hass:calendar":"hass:clock"}},j=function(t){if(!t)return k;if(t.attributes.icon)return t.attributes.icon;var e=w(t.entity_id);return e in N?N[e](t):C(e,t.state)},R=Function.prototype.toString,I=Object.create,V=Object.defineProperty,H=Object.getOwnPropertyDescriptor,L=Object.getOwnPropertyNames,U=Object.getOwnPropertySymbols,z=Object.getPrototypeOf,F=Object.prototype,D=F.hasOwnProperty,B=F.propertyIsEnumerable,q="function"==typeof U,G="function"==typeof WeakMap,Y=function(t,e){if(!t.constructor)return I(null);var i=t.constructor,s=t.__proto__||z(t);if(i===e.Object)return s===e.Object.prototype?{}:I(s);if(~R.call(i).indexOf("[native code]"))try{return new i}catch(t){}return I(s)},W=function(t,e,i,s){var r=Y(t,e);for(var o in s.set(t,r),t)D.call(t,o)&&(r[o]=i(t[o],s));if(q){var n=U(t),a=n.length;if(a)for(var l=0,c=void 0;lnull===t||!("object"==typeof t||"function"==typeof t),St=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class xt{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let t=0;t{try{const t={get capture(){return Mt=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class Et{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;gt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=ft,t(this)}if(this.__pendingValue===ft)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=At(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=ft}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const At=t=>t&&(Mt?{capture:t.capture,passive:t.passive,once:t.once}:t.capture) + */const wt=t=>null===t||!("object"==typeof t||"function"==typeof t),St=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class kt{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let t=0;t{try{const t={get capture(){return Mt=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class Et{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;gt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=ft,t(this)}if(this.__pendingValue===ft)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=At(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=ft}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const At=t=>t&&(Mt?{capture:t.capture,passive:t.passive,once:t.once}:t.capture) /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -120,7 +120,7 @@ class mt{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,thi * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new Ct(t,e.slice(1),i).parts}if("@"===r)return[new Et(t,e.slice(1),s.eventContext)];if("?"===r)return[new Tt(t,e.slice(1),i)];return new xt(t,e,i).parts}handleTextExpression(t){return new Ot(t)}}; +class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new Ct(t,e.slice(1),i).parts}if("@"===r)return[new Et(t,e.slice(1),s.eventContext)];if("?"===r)return[new Tt(t,e.slice(1),i)];return new kt(t,e,i).parts}handleTextExpression(t){return new Ot(t)}}; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -146,7 +146,7 @@ class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new Ct * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */,Vt=(t,e)=>`${t}--${e}`;let Ht=!0;void 0===window.ShadyCSS?Ht=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),Ht=!1);const Ut=t=>e=>{const i=Vt(e.type,t);let s=Nt.get(i);void 0===s&&(s={stringsArray:new WeakMap,keyString:new Map},Nt.set(i,s));let r=s.stringsArray.get(e.strings);if(void 0!==r)return r;const o=e.strings.join(et);if(r=s.keyString.get(o),void 0===r){const i=e.getTemplateElement();Ht&&window.ShadyCSS.prepareTemplateDom(i,t),r=new rt(e,i),s.keyString.set(o,r)}return s.stringsArray.set(e.strings,r),r},Lt=["html","svg"],zt=new Set,Ft=(t,e,i)=>{zt.add(t);const s=i?i.element:document.createElement("template"),r=e.querySelectorAll("style"),{length:o}=r;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(s,t);const n=document.createElement("style");for(let t=0;t{Lt.forEach(e=>{const i=Nt.get(Vt(e,t));void 0!==i&&i.keyString.forEach(t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{i.add(t)}),ct(t,i)})})})(t);const a=s.content;i?function(t,e,i=null){const{element:{content:s},parts:r}=t;if(null==i)return void s.appendChild(e);const o=document.createTreeWalker(s,133,null,!1);let n=dt(r),a=0,l=-1;for(;o.nextNode();){l++;for(o.currentNode===i&&(a=ht(e),i.parentNode.insertBefore(e,i));-1!==n&&r[n].index===l;){if(a>0){for(;-1!==n;)r[n].index+=a,n=dt(r,n);return}n=dt(r,n)}}}(i,n,a.firstChild):a.insertBefore(n,a.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){a.insertBefore(n,a.firstChild);const t=new Set;t.add(n),ct(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const Dt={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},Bt=(t,e)=>e!==t&&(e==e||t==t),qt={attribute:!0,type:String,converter:Dt,reflect:!1,hasChanged:Bt};class Gt extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,i)=>{const s=this._attributeNameForProperty(i,e);void 0!==s&&(this._attributeToPropertyMap.set(s,i),t.push(s))}),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach((t,e)=>this._classProperties.set(e,t))}}static createProperty(t,e=qt){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():"__"+t,s=this.getPropertyDescriptor(t,i,e);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(s){const r=this[t];this[e]=s,this.requestUpdateInternal(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||qt}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=Bt){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,s=e.converter||Dt,r="function"==typeof s?s:s.fromAttribute;return r?r(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,s=e.converter;return(s&&s.toAttribute||Dt.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise(t=>this._enableUpdatingResolver=t),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}})}_applyInstanceProperties(){this._instanceProperties.forEach((t,e)=>this[e]=t),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=qt){const s=this.constructor,r=s._attributeNameForProperty(t,i);if(void 0!==r){const t=s._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(r):this.setAttribute(r,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,s=i._attributeToPropertyMap.get(t);if(void 0!==s){const t=i.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let s=!0;if(void 0!==t){const r=this.constructor;i=i||r.getPropertyOptions(t),r._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):s=!1}!this._hasRequestedUpdate&&s&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((t,e)=>this._propertyToAttribute(e,this[e],t)),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}Gt.finalized=!0; + */,Vt=(t,e)=>`${t}--${e}`;let Ht=!0;void 0===window.ShadyCSS?Ht=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),Ht=!1);const Lt=t=>e=>{const i=Vt(e.type,t);let s=Nt.get(i);void 0===s&&(s={stringsArray:new WeakMap,keyString:new Map},Nt.set(i,s));let r=s.stringsArray.get(e.strings);if(void 0!==r)return r;const o=e.strings.join(et);if(r=s.keyString.get(o),void 0===r){const i=e.getTemplateElement();Ht&&window.ShadyCSS.prepareTemplateDom(i,t),r=new rt(e,i),s.keyString.set(o,r)}return s.stringsArray.set(e.strings,r),r},Ut=["html","svg"],zt=new Set,Ft=(t,e,i)=>{zt.add(t);const s=i?i.element:document.createElement("template"),r=e.querySelectorAll("style"),{length:o}=r;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(s,t);const n=document.createElement("style");for(let t=0;t{Ut.forEach(e=>{const i=Nt.get(Vt(e,t));void 0!==i&&i.keyString.forEach(t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{i.add(t)}),ct(t,i)})})})(t);const a=s.content;i?function(t,e,i=null){const{element:{content:s},parts:r}=t;if(null==i)return void s.appendChild(e);const o=document.createTreeWalker(s,133,null,!1);let n=dt(r),a=0,l=-1;for(;o.nextNode();){l++;for(o.currentNode===i&&(a=ht(e),i.parentNode.insertBefore(e,i));-1!==n&&r[n].index===l;){if(a>0){for(;-1!==n;)r[n].index+=a,n=dt(r,n);return}n=dt(r,n)}}}(i,n,a.firstChild):a.insertBefore(n,a.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){a.insertBefore(n,a.firstChild);const t=new Set;t.add(n),ct(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const Dt={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},Bt=(t,e)=>e!==t&&(e==e||t==t),qt={attribute:!0,type:String,converter:Dt,reflect:!1,hasChanged:Bt};class Gt extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,i)=>{const s=this._attributeNameForProperty(i,e);void 0!==s&&(this._attributeToPropertyMap.set(s,i),t.push(s))}),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach((t,e)=>this._classProperties.set(e,t))}}static createProperty(t,e=qt){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():"__"+t,s=this.getPropertyDescriptor(t,i,e);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(s){const r=this[t];this[e]=s,this.requestUpdateInternal(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||qt}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=Bt){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,s=e.converter||Dt,r="function"==typeof s?s:s.fromAttribute;return r?r(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,s=e.converter;return(s&&s.toAttribute||Dt.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise(t=>this._enableUpdatingResolver=t),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}})}_applyInstanceProperties(){this._instanceProperties.forEach((t,e)=>this[e]=t),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=qt){const s=this.constructor,r=s._attributeNameForProperty(t,i);if(void 0!==r){const t=s._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(r):this.setAttribute(r,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,s=i._attributeToPropertyMap.get(t);if(void 0!==s){const t=i.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let s=!0;if(void 0!==t){const r=this.constructor;i=i||r.getPropertyOptions(t),r._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):s=!1}!this._hasRequestedUpdate&&s&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((t,e)=>this._propertyToAttribute(e,this[e],t)),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}Gt.finalized=!0; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -160,7 +160,7 @@ class{handleAttributeExpressions(t,e,i,s){const r=e[0];if("."===r){return new Ct * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -const Yt=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:s}=e;return{kind:i,elements:s,finisher(e){window.customElements.define(t,e)}}})(t,e),Wt=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function Zt(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):Wt(t,e)}const Jt=t=>function(t){return Zt({attribute:!1,hasChanged:null==t?void 0:t.hasChanged})}(t);function Xt(t,e){return(i,s)=>{const r={get(){return this.renderRoot.querySelector(t)},enumerable:!0,configurable:!0};if(e){const e=void 0!==s?s:i.key,o="symbol"==typeof e?Symbol():"__"+e;r.get=function(){return void 0===this[o]&&(this[o]=this.renderRoot.querySelector(t)),this[o]}}return void 0!==s?Kt(r,i,s):Qt(r,i)}}const Kt=(t,e,i)=>{Object.defineProperty(e,i,t)},Qt=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}) +const Yt=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:s}=e;return{kind:i,elements:s,finisher(e){window.customElements.define(t,e)}}})(t,e),Wt=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function Zt(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):Wt(t,e)}const Jt=t=>function(t){return Zt({attribute:!1,hasChanged:null==t?void 0:t.hasChanged})}(t);function Kt(t,e){return(i,s)=>{const r={get(){return this.renderRoot.querySelector(t)},enumerable:!0,configurable:!0};if(e){const e=void 0!==s?s:i.key,o="symbol"==typeof e?Symbol():"__"+e;r.get=function(){return void 0===this[o]&&(this[o]=this.renderRoot.querySelector(t)),this[o]}}return void 0!==s?Xt(r,i,s):Qt(r,i)}}const Xt=(t,e,i)=>{Object.defineProperty(e,i,t)},Qt=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}) /** @license Copyright (c) 2019 The Polymer Project Authors. All rights reserved. @@ -184,7 +184,7 @@ found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -(window.litElementVersions||(window.litElementVersions=[])).push("2.5.1");const re={};class oe extends Gt{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t),i),i=e(t,new Set),s=[];i.forEach(t=>s.unshift(t)),this._styles=s}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map(t=>{if(t instanceof CSSStyleSheet&&!te){const e=Array.prototype.slice.call(t.cssRules).reduce((t,e)=>t+e.cssText,"");return new ie(String(e),ee)}return t})}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow(this.constructor.shadowRootOptions)}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?te?this.renderRoot.adoptedStyleSheets=t.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==re&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){return re}}oe.finalized=!0,oe.render=(t,e,i)=>{if(!i||"object"!=typeof i||!i.scopeName)throw new Error("The `scopeName` option is required.");const s=i.scopeName,r=jt.has(e),o=Ht&&11===e.nodeType&&!!e.host,n=o&&!zt.has(s),a=n?document.createDocumentFragment():e;if(((t,e,i)=>{let s=jt.get(e);void 0===s&&(tt(e,e.firstChild),jt.set(e,s=new Ot(Object.assign({templateFactory:$t},i))),s.appendInto(e)),s.setValue(t),s.commit()})(t,a,Object.assign({templateFactory:Ut(s)},i)),n){const t=jt.get(a);jt.delete(a);const i=t.value instanceof mt?t.value.template:void 0;Ft(s,a,i),tt(e,e.firstChild),e.appendChild(a),jt.set(e,t)}!r&&o&&window.ShadyCSS.styleElement(e.host)},oe.shadowRootOptions={mode:"open"}; +(window.litElementVersions||(window.litElementVersions=[])).push("2.5.1");const re={};class oe extends Gt{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t),i),i=e(t,new Set),s=[];i.forEach(t=>s.unshift(t)),this._styles=s}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map(t=>{if(t instanceof CSSStyleSheet&&!te){const e=Array.prototype.slice.call(t.cssRules).reduce((t,e)=>t+e.cssText,"");return new ie(String(e),ee)}return t})}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow(this.constructor.shadowRootOptions)}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?te?this.renderRoot.adoptedStyleSheets=t.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==re&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){return re}}oe.finalized=!0,oe.render=(t,e,i)=>{if(!i||"object"!=typeof i||!i.scopeName)throw new Error("The `scopeName` option is required.");const s=i.scopeName,r=jt.has(e),o=Ht&&11===e.nodeType&&!!e.host,n=o&&!zt.has(s),a=n?document.createDocumentFragment():e;if(((t,e,i)=>{let s=jt.get(e);void 0===s&&(tt(e,e.firstChild),jt.set(e,s=new Ot(Object.assign({templateFactory:$t},i))),s.appendInto(e)),s.setValue(t),s.commit()})(t,a,Object.assign({templateFactory:Lt(s)},i)),n){const t=jt.get(a);jt.delete(a);const i=t.value instanceof mt?t.value.template:void 0;Ft(s,a,i),tt(e,e.firstChild),e.appendChild(a),jt.set(e,t)}!r&&o&&window.ShadyCSS.styleElement(e.host)},oe.shadowRootOptions={mode:"open"}; /** * @license * Copyright (c) 2018 The Polymer Project Authors. All rights reserved. @@ -198,45 +198,45 @@ found at http://polymer.github.io/PATENTS.txt * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -class ne{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;const e=(t.getAttribute("class")||"").split(/\s+/);for(const t of e)this.classes.add(t)}add(t){this.classes.add(t),this.changed=!0}remove(t){this.classes.delete(t),this.changed=!0}commit(){if(this.changed){let t="";this.classes.forEach(e=>t+=e+" "),this.element.setAttribute("class",t)}}}const ae=new WeakMap,le=pt(t=>e=>{if(!(e instanceof kt)||e instanceof Pt||"class"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");const{committer:i}=e,{element:s}=i;let r=ae.get(e);void 0===r&&(s.setAttribute("class",i.strings.join(" ")),ae.set(e,r=new Set));const o=s.classList||new ne(s);r.forEach(e=>{e in t||(o.remove(e),r.delete(e))});for(const e in t){const i=t[e];i!=r.has(e)&&(i?(o.add(e),r.add(e)):(o.remove(e),r.delete(e)))}"function"==typeof o.commit&&o.commit()}),ce=new WeakMap,he=pt(t=>e=>{const i=ce.get(e);if(void 0===t&&e instanceof kt){if(void 0!==i||!ce.has(e)){const t=e.committer.name;e.committer.element.removeAttribute(t)}}else t!==i&&e.setValue(t);ce.set(e,t)}),de=new WeakMap,ue=pt(t=>e=>{if(!(e instanceof kt)||e instanceof Pt||"style"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `styleMap` directive must be used in the style attribute and must be the only part in the attribute.");const{committer:i}=e,{style:s}=i.element;let r=de.get(e);void 0===r&&(s.cssText=i.strings.join(" "),de.set(e,r=new Set)),r.forEach(e=>{e in t||(r.delete(e),-1===e.indexOf("-")?s[e]=null:s.removeProperty(e))});for(const e in t)r.add(e),-1===e.indexOf("-")?s[e]=t[e]:s.setProperty(e,t[e])}),pe="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;class ge extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:pe?"100px":"50px",height:pe?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach(t=>{document.addEventListener(t,()=>{clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0},{passive:!0})})}bind(t,e){if(t.actionHandler)return;t.actionHandler=!0,t.addEventListener("contextmenu",t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1});const i=t=>{let e,i;this.held=!1,t.touches?(e=t.touches[0].pageX,i=t.touches[0].pageY):(e=t.pageX,i=t.pageY),this.timer=window.setTimeout(()=>{this.startAnimation(e,i),this.held=!0},this.holdTime)},s=i=>{i.preventDefault(),["touchend","touchcancel"].includes(i.type)&&void 0===this.timer||(clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0,this.held?O(t,"action",{action:"hold"}):e.hasDoubleClick?"click"===i.type&&i.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout(()=>{this.dblClickTimeout=void 0,O(t,"action",{action:"tap"})},250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,O(t,"action",{action:"double_tap"})):O(t,"action",{action:"tap"}))};t.addEventListener("touchstart",i,{passive:!0}),t.addEventListener("touchend",s),t.addEventListener("touchcancel",s),t.addEventListener("mousedown",i,{passive:!0}),t.addEventListener("click",s),t.addEventListener("keyup",t=>{13===t.keyCode&&s(t)})}startAnimation(t,e){Object.assign(this.style,{left:t+"px",top:e+"px",display:null}),this.ripple.disabled=!1,this.ripple.active=!0,this.ripple.unbounded=!0}stopAnimation(){this.ripple.active=!1,this.ripple.disabled=!0,this.style.display="none"}}customElements.define("action-handler-slider-button",ge);const fe=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("action-handler-slider-button"))return t.querySelector("action-handler-slider-button");const e=document.createElement("action-handler-slider-button");return t.appendChild(e),e})();i&&i.bind(t,e)},be=pt((t={})=>e=>{fe(e.committer.element,t)});var me,_e,ve,ye;!function(t){t.TOGGLE="toggle",t.CUSTOM="custom"}(me||(me={})),function(t){t.LEFT_RIGHT="left-right",t.TOP_BOTTOM="top-bottom",t.BOTTOM_TOP="bottom-top"}(_e||(_e={})),function(t){t.SOLID="solid",t.GRADIENT="gradient",t.TRIANGLE="triangle",t.STRIPED="striped",t.CUSTOM="custom"}(ve||(ve={})),function(t){t.LIGHT="light",t.SWITCH="switch",t.FAN="fan",t.COVER="cover",t.INPUT_BOOLEAN="input_boolean",t.MEDIA_PLAYER="media_player",t.CLIMATE="climate"}(ye||(ye={}));const we={mode:me.TOGGLE,icon:"mdi:power",show:!0,show_spinner:!0,tap_action:{action:"toggle"}},Se={show:!0,use_state_color:!0,tap_action:{action:"more-info"}},xe={direction:_e.LEFT_RIGHT,background:ve.SOLID,use_percentage_bg_opacity:!1,use_state_color:!1,show_track:!1,toggle_on_click:!1,force_square:!1},ke=new Map([[ye.LIGHT,{direction:_e.LEFT_RIGHT,background:ve.GRADIENT,use_state_color:!0,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!1,force_square:!1}],[ye.FAN,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!1,force_square:!1}],[ye.SWITCH,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!0,force_square:!1}],[ye.COVER,{direction:_e.TOP_BOTTOM,background:ve.STRIPED,use_state_color:!1,use_percentage_bg_opacity:!1,toggle_on_click:!1,show_track:!1,force_square:!1,invert:!0}],[ye.INPUT_BOOLEAN,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!0,force_square:!1}],[ye.MEDIA_PLAYER,{direction:_e.LEFT_RIGHT,background:ve.TRIANGLE,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!0,toggle_on_click:!1,force_square:!1}],[ye.CLIMATE,{direction:_e.LEFT_RIGHT,background:ve.TRIANGLE,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!0,toggle_on_click:!1,force_square:!1}]]);var Oe,Te,Ce;function Pe(t,e){(function(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var i=function(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function Me(t){return Math.min(1,Math.max(0,t))}function Ee(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function Ae(t){return t<=1?100*Number(t)+"%":t}function $e(t){return 1===t.length?"0"+t:String(t)}function Ne(t,e,i){t=Pe(t,255),e=Pe(e,255),i=Pe(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),o=0,n=0,a=(s+r)/2;if(s===r)n=0,o=0;else{var l=s-r;switch(n=a>.5?l/(2-s-r):l/(s+r),s){case t:o=(e-i)/l+(e1&&(i-=1),i<1/6?t+6*i*(e-t):i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function Re(t,e,i){t=Pe(t,255),e=Pe(e,255),i=Pe(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),o=0,n=s,a=s-r,l=0===s?0:a/s;if(s===r)o=0;else{switch(s){case t:o=(e-i)/a+(e>16,g:(65280&t)>>8,b:255&t}}(e)),this.originalInput=e;var r=Le(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(s=i.format)&&void 0!==s?s:r.format,this.gradientType=i.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},t.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,i=t.g/255,s=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.0722*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(t){return this.a=Ee(t),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var t=Re(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},t.prototype.toHsvString=function(){var t=Re(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+i+"%, "+s+"%)":"hsva("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHsl=function(){var t=Ne(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},t.prototype.toHslString=function(){var t=Ne(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+i+"%, "+s+"%)":"hsla("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHex=function(t){return void 0===t&&(t=!1),Ie(this.r,this.g,this.b,t)},t.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},t.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,i,s,r){var o,n=[$e(Math.round(t).toString(16)),$e(Math.round(e).toString(16)),$e(Math.round(i).toString(16)),$e((o=s,Math.round(255*parseFloat(o)).toString(16)))];return r&&n[0].startsWith(n[0].charAt(1))&&n[1].startsWith(n[1].charAt(1))&&n[2].startsWith(n[2].charAt(1))&&n[3].startsWith(n[3].charAt(1))?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0)+n[3].charAt(0):n.join("")}(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+i+")":"rgba("+t+", "+e+", "+i+", "+this.roundA+")"},t.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*Pe(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*Pe(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+Ie(this.r,this.g,this.b,!1),e=0,i=Object.entries(Ue);e=0;return e||!s||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l+=e/100,i.l=Me(i.l),new t(i)},t.prototype.brighten=function(e){void 0===e&&(e=10);var i=this.toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-e/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-e/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-e/100*255))),new t(i)},t.prototype.darken=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l-=e/100,i.l=Me(i.l),new t(i)},t.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},t.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},t.prototype.desaturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s-=e/100,i.s=Me(i.s),new t(i)},t.prototype.saturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s+=e/100,i.s=Me(i.s),new t(i)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var i=this.toHsl(),s=(i.h+e)%360;return i.h=s<0?360+s:s,new t(i)},t.prototype.mix=function(e,i){void 0===i&&(i=50);var s=this.toRgb(),r=new t(e).toRgb(),o=i/100;return new t({r:(r.r-s.r)*o+s.r,g:(r.g-s.g)*o+s.g,b:(r.b-s.b)*o+s.b,a:(r.a-s.a)*o+s.a})},t.prototype.analogous=function(e,i){void 0===e&&(e=6),void 0===i&&(i=30);var s=this.toHsl(),r=360/i,o=[this];for(s.h=(s.h-(r*e>>1)+720)%360;--e;)s.h=(s.h+r)%360,o.push(new t(s));return o},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){void 0===e&&(e=6);for(var i=this.toHsv(),s=i.h,r=i.s,o=i.v,n=[],a=1/e;e--;)n.push(new t({h:s,s:r,v:o})),o=(o+a)%1;return n},t.prototype.splitcomplement=function(){var e=this.toHsl(),i=e.h;return[this,new t({h:(i+72)%360,s:e.s,l:e.l}),new t({h:(i+216)%360,s:e.s,l:e.l})]},t.prototype.onBackground=function(e){var i=this.toRgb(),s=new t(e).toRgb();return new t({r:s.r+(i.r-s.r)*i.a,g:s.g+(i.g-s.g)*i.a,b:s.b+(i.b-s.b)*i.a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var i=this.toHsl(),s=i.h,r=[this],o=360/e,n=1;nt[e]).filter(t=>"string"==typeof t)}const Ze=(t,e,i)=>{if(1!==e.length)return t[e[0]]||(t[e[0]]={}),Ze(t[e[0]],e.slice(1),i);t[e[0]]=i};function Je(t){const e=w(t)||ye.LIGHT;return K(ke.get(e)||xe)}function Xe(t,e,i){const s=new Ge("rgb(255, 160, 0)"),r=new Ge("rgb(166, 209, 255)"),o=new Ge("white"),n=(t-e)/(i-e)*100;return n<50?Ye(r).mix(o,2*n).toRgbString():Ye(o).mix(s,2*(n-50)).toRgbString()}function Ke(t,e,i){return(t-e)/i*100}function Qe(t,e,i){return Math.floor(t*(i-e)/100+e)}class ti{constructor(t){this._sliderPrevColor="",this._config=t}set hass(t){this._hass=t}get stateObj(){return this._hass.states[this._config.entity]}get domain(){return S(this.stateObj)}get name(){var t,e;return this._config.name?this._config.name:(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.friendly_name)?this.stateObj.attributes.friendly_name:""}get icon(){var t,e,i;return"string"==typeof(null===(t=this._config.icon)||void 0===t?void 0:t.icon)&&(null===(e=this._config.icon)||void 0===e?void 0:e.icon.length)?this._config.icon.icon:(null===(i=this.stateObj.attributes)||void 0===i?void 0:i.icon)?this.stateObj.attributes.icon:C(this.domain,this.stateObj.state)}get value(){return this._value?Math.round(this._value/this.step)*this.step:this.min}set value(t){t!==this.value&&(this._value=t)}get targetValue(){return 0===this._targetValue?0:this._targetValue?Math.round(this._targetValue/this.step)*this.step:this.value?this.value:0}set targetValue(t){t!==this.targetValue&&(this._targetValue=t)}get label(){return""+this.targetValue}get hidden(){return!1}get hasSlider(){return!0}get hasToggle(){var t,e;return null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.toggle_on_click)&&void 0!==e&&e}get toggleValue(){return this.value===this.min?this.max:this.min}get state(){var t;return null===(t=this.stateObj)||void 0===t?void 0:t.state}get isOff(){return 0===this.percentage}get isUnavailable(){return!this.state||"unavailable"===this.state}get isSliderDisabled(){return this.isUnavailable?this.isUnavailable:this.hasToggle}get min(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.min)&&void 0!==e?e:this._min)&&void 0!==i?i:0}get max(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.max)&&void 0!==e?e:this._max)&&void 0!==i?i:100}get step(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.step)&&void 0!==e?e:this._step)&&void 0!==i?i:5}get invert(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.invert)&&void 0!==e?e:this._invert)&&void 0!==i&&i}get isValuePercentage(){return!0}get percentage(){return Math.round(100*(this.targetValue-(this.invert?this.max:this.min))/(this.max-this.min)*(this.invert?-1:1))}get valueFromPercentage(){return Qe(this.percentage,this.min,this.max)}get allowedAttributes(){return[]}get style(){return{icon:{filter:this.iconFilter,color:this.iconColor,rotateSpeed:this.iconRotateSpeed},slider:{filter:this.sliderFilter,color:this.sliderColor}}}get iconFilter(){var t;return(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color)&&0!==this.percentage?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get iconColor(){var t;if(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color){if(!this.stateObj.attributes.hs_color)return this.percentage>0?"var(--paper-item-icon-active-color, #fdd835)":"var(--paper-item-icon-color, #44739e)";{const[t,e]=this.stateObj.attributes.hs_color;if(e>10)return`hsl(${t}, 100%, ${100-e/2}%)`}}return""}get iconRotateSpeed(){return"0s"}get sliderFilter(){var t;return(null===(t=this._config.slider)||void 0===t?void 0:t.use_percentage_bg_opacity)&&0!==this.percentage&&this._config.slider.background!==ve.GRADIENT?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get sliderColor(){var t;if(null===(t=this._config.slider)||void 0===t?void 0:t.use_state_color)if(this.stateObj.attributes.hs_color){const[t,e]=this.stateObj.attributes.hs_color;if(e>10){const i=`hsl(${t}, 100%, ${100-e/2}%)`;return this._sliderPrevColor=i,i}}else{if(this.stateObj.attributes.color_temp&&this.stateObj.attributes.min_mireds&&this.stateObj.attributes.max_mireds){const t=Xe(this.stateObj.attributes.color_temp,this.stateObj.attributes.min_mireds,this.stateObj.attributes.max_mireds);return this._sliderPrevColor=t,t}if(this._sliderPrevColor.startsWith("hsl")||this._sliderPrevColor.startsWith("rgb"))return this._sliderPrevColor}return"inherit"}moveSlider(t,{left:e,top:i,width:s,height:r}){let o=this.calcMovementPercentage(t,{left:e,top:i,width:s,height:r});var n,a,l;return o=this.applyStep(o),n=o,a=0,l=100,o=isNaN(n)||isNaN(a)||isNaN(l)?0:n>l?l:n0?"open_cover":"close_cover";this._hass.callService("cover",e,{entity_id:this.stateObj.entity_id})}}get _step(){return 1}get label(){const t=this._hass.localize("component.cover.state._."+this.state),e=this._hass.localize("component.cover.state._.closed"),i=this._hass.localize("component.cover.state._.open");if(!this.hasSlider)return t;switch(this.attribute){case Ce.POSITION:return 0===this.percentage?this.invert?i:e:100===this.percentage?this.invert?e:i:this.percentage+"%";case Ce.TILT:return""+this.percentage}return t}get hasSlider(){switch(this.attribute){case Ce.POSITION:if("current_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&4&this.stateObj.attributes.supported_features)return!0;break;case Ce.TILT:if("current_tilt_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&128&this.stateObj.attributes.supported_features)return!0;break;default:return!1}return!1}get _max(){return this.hasSlider?100:1}}class si extends ti{constructor(){super(...arguments),this._min=0,this._invert=!1}get _value(){return this.isUnavailable||k.includes(this.state)?0:this.hasSlider?this.stateObj.attributes.percentage:1}set _value(t){const e=t>0?"turn_on":"turn_off";t>0&&this.hasSlider?this._hass.callService("fan","set_percentage",{entity_id:this.stateObj.entity_id,percentage:t}):this._hass.callService("fan",e,{entity_id:this.stateObj.entity_id})}get _step(){return this.stateObj.attributes.percentage_step}get label(){return this.percentage>0?this.hasSlider?this.percentage+"%":this._hass.localize("component.fan.state._.on"):this._hass.localize("component.fan.state._.off")}get hasSlider(){return"speed"in this.stateObj.attributes}get _max(){return this.hasSlider?100:1}get iconRotateSpeed(){let t=0;return this.percentage>0&&(t=3-this.percentage/100*2),t+"s"}}class ri extends ti{constructor(){super(...arguments),this._min=0,this._max=1,this._invert=!1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("input_boolean",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.input_boolean.state._.on"):this._hass.localize("component.input_boolean.state._.off")}}const oi={hue:0,saturation:1};class ni extends ti{constructor(){super(...arguments),this._step=1,this._invert=!1}get attribute(){var t,e,i,s,r;const o=null===(t=this._config.slider)||void 0===t?void 0:t.attribute;let n=Oe.BRIGHTNESS_PCT,a=[];if(Array.isArray(null===(i=null===(e=this.stateObj)||void 0===e?void 0:e.attributes)||void 0===i?void 0:i.supported_color_modes)&&(a=null===(r=null===(s=this.stateObj)||void 0===s?void 0:s.attributes)||void 0===r?void 0:r.supported_color_modes),1===a.length&&a[0]===Oe.ON_OFF&&(n=Oe.ON_OFF),(null==o?void 0:o.length)&&this.allowedAttributes.includes(o))switch(n=o,o){case Oe.COLOR_TEMP:a.includes("color_temp")||(n=Oe.BRIGHTNESS_PCT);break;case Oe.HUE:case Oe.SATURATION:a.includes("hs")||(n=Oe.BRIGHTNESS_PCT)}return n}get allowedAttributes(){return We(Oe)}get colorMode(){var t,e;return null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.color_mode}get _value(){if(!this.stateObj||k.includes(this.state))return this.isValuePercentage?0:this.min;const t=this.stateObj.attributes;switch(this.attribute){case Oe.COLOR_TEMP:return t.color_temp?Math.round(t.color_temp):this.min;case Oe.BRIGHTNESS:return Math.round(t.brightness);case Oe.BRIGHTNESS_PCT:return Math.round(100*t.brightness/255);case Oe.ON_OFF:return 1;case Oe.HUE:case Oe.SATURATION:return t.hs_color?Math.round(t.hs_color[oi[this.attribute]]):0;default:return 0}}set _value(t){if(!this.stateObj)return;let e,i=this.attribute,s=t>0?"turn_on":"turn_off",r={entity_id:this.stateObj.entity_id};switch(i){case Oe.BRIGHTNESS:case Oe.BRIGHTNESS_PCT:(t=i===Oe.BRIGHTNESS?Math.round(t):Math.round(t/100*255))?(i="brightness",r=Object.assign(Object.assign({},r),{[i]:t})):s="turn_off";break;case Oe.HUE:case Oe.SATURATION:e=this.stateObj.attributes.hs_color||[0,0],e[oi[i]]=t,t=e,i="hs_color",s="turn_on",r=Object.assign(Object.assign({},r),{[i]:t});break;case Oe.COLOR_TEMP:i="color_temp",s="turn_on",r=Object.assign(Object.assign({},r),{[i]:t})}this._hass.callService("light",s,Object.assign({},r))}get _min(){var t;switch(this.attribute){case Oe.COLOR_TEMP:return this.stateObj&&(null===(t=this.stateObj.attributes)||void 0===t?void 0:t.min_mireds)?this.stateObj.attributes.min_mireds:153;default:return 0}}get _max(){var t;switch(this.attribute){case Oe.COLOR_TEMP:return this.stateObj&&(null===(t=this.stateObj.attributes)||void 0===t?void 0:t.max_mireds)?this.stateObj.attributes.max_mireds:500;case Oe.BRIGHTNESS:return 255;case Oe.HUE:return 360;case Oe.ON_OFF:return 1;default:return 100}}get isValuePercentage(){switch(this.attribute){case Oe.COLOR_TEMP:case Oe.HUE:case Oe.BRIGHTNESS:return!1;default:return!0}}get isOff(){switch(this.attribute){case Oe.COLOR_TEMP:case Oe.HUE:case Oe.SATURATION:case Oe.BRIGHTNESS:case Oe.ON_OFF:return k.includes(this.state);default:return this.colorMode===Te.ON_OFF?k.includes(this.state):0===this.percentage}}get label(){if(this.isOff)return this._hass.localize("component.light.state._.off");if(this.colorMode===Te.ON_OFF)return this._hass.localize("component.light.state._.on");switch(this.attribute){case Oe.ON_OFF:return this._hass.localize("component.light.state._.on");case Oe.COLOR_TEMP:case Oe.BRIGHTNESS:return""+this.targetValue;case Oe.BRIGHTNESS_PCT:case Oe.SATURATION:return this.targetValue+"%";case Oe.HUE:return this.targetValue+"°";default:return""+this.targetValue}}get hasToggle(){var t,e,i,s,r,o;let n=[];return Array.isArray(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.supported_color_modes)&&(n=null===(s=null===(i=this.stateObj)||void 0===i?void 0:i.attributes)||void 0===s?void 0:s.supported_color_modes),1===n.length&&n[0]===Oe.ON_OFF||null!==(o=null===(r=this._config.slider)||void 0===r?void 0:r.toggle_on_click)&&void 0!==o&&o}get hasSlider(){var t,e;if(!this.stateObj)return!1;switch(this.attribute){case Oe.ON_OFF:return!1;case Oe.BRIGHTNESS:case Oe.BRIGHTNESS_PCT:return"brightness"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&1&(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.supported_features));case Oe.COLOR_TEMP:return"color_temp"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&2&this.stateObj.attributes.supported_features);case Oe.HUE:case Oe.SATURATION:return"hs_color"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&16&this.stateObj.attributes.supported_features);default:return!1}}get sliderColor(){var t;let e="inherit";if(null===(t=this._config.slider)||void 0===t?void 0:t.use_state_color)if(this.stateObj.attributes.hs_color&&this.attribute!==Oe.COLOR_TEMP){const[t,i]=this.stateObj.attributes.hs_color;let s=t,r=i;switch(this.attribute){case Oe.HUE:s=this.valueFromPercentage;break;case Oe.SATURATION:r=this.percentage}r>10&&(e=`hsl(${s}, 100%, ${100-r/2}%)`,this._sliderPrevColor=e)}else if(this.attribute===Oe.HUE||this.attribute===Oe.SATURATION){let t=0,i=20;switch(this.attribute){case Oe.HUE:t=this.valueFromPercentage;break;case Oe.SATURATION:i=this.percentage}i>10&&(e=`hsl(${t}, 100%, ${100-i/2}%)`,this._sliderPrevColor=e)}else this.stateObj.attributes.color_temp&&this.stateObj.attributes.min_mireds&&this.stateObj.attributes.max_mireds?(e=Xe(this.attribute===Oe.COLOR_TEMP?this.valueFromPercentage:this.stateObj.attributes.color_temp,this.stateObj.attributes.min_mireds,this.stateObj.attributes.max_mireds),this._sliderPrevColor=e):this.attribute===Oe.COLOR_TEMP?(e=Xe(this.valueFromPercentage,153,500),this._sliderPrevColor=e):(this._sliderPrevColor.startsWith("hsl")||this._sliderPrevColor.startsWith("rgb"))&&(e=this._sliderPrevColor);return e}}class ai extends ti{constructor(){super(...arguments),this._min=0,this._max=100,this._step=1,this._invert=!1}get _value(){var t,e;return this.isUnavailable||(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.is_volume_muted)?0:Math.floor(100*parseFloat(Number.parseFloat(this.stateObj.attributes.volume_level).toPrecision(2)))}set _value(t){t/=100,this._hass.callService("media_player","volume_set",{entity_id:this.stateObj.entity_id,volume_level:t}),t&&this._hass.callService("media_player","volume_mute",{entity_id:this.stateObj.entity_id,is_volume_muted:!1})}get isOff(){return"off"===this.stateObj.state}get label(){return this.stateObj.attributes.is_volume_muted?"-":this.stateObj.attributes.volume_level?this.percentage+"%":this._hass.localize("component.media_player.state._."+this.state)}}class li extends ti{constructor(){super(...arguments),this._min=0,this._max=1,this._invert=!1}get _value(){return k.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("switch",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.switch.state._.on"):this._hass.localize("component.switch.state._.off")}}var ci={version:"v",invalid_configuration:"Invalid configuration",show_warning:"Show Warning",show_error:"Show Error"},hi={general:{title:"General",entity:"Entity (Required)",name:"Name (Optional)",show_name:"Show name?",show_state:"Show state?",compact:"Compact?"},icon:{title:"Icon",icon:"Icon (Optional)",show_icon:"Show icon?",use_state_color:"Use state color?",tap_action:"Tap action"},slider:{title:"Slider",direction:"Direction",background:"Background",use_brightness:"Use brightness?",show_track:"Show track?",toggle_on_click:"Act as a toggle (disable sliding)",force_square:"Force square?"},action_button:{title:"Action button",mode:"Mode",icon:"Icon",show_button:"Show button?",show_spinner:"Show spinner?",tap_action:"Tap action"}},di={off:"Off",on:"On"},ui={"left-right":"Left to right","top-bottom":"Top to bottom","bottom-top":"Bottom to top"},pi={striped:"Striped",gradient:"Gradient",solid:"Solid",triangle:"Triangle",custom:"Custom"},gi={toggle:"Toggle",custom:"Custom"},fi={common:ci,tabs:hi,state:di,direction:ui,background:pi,mode:gi},bi={version:"v",invalid_configuration:"תצורה לא חוקית",show_warning:"הצג אזהרה",show_error:"הצג שגיאה"},mi={general:{title:"כללי",entity:"ישיות (נדרש)",name:"שם (אופציונלי)",show_name:"להציג שם?",show_state:"להציג מצב?",compact:"קוֹמפָּקטִי?"},icon:{title:"סמליל",icon:"סמליל (אופציונלי)",show_icon:"להציג סמליל?",use_state_color:"להשתמש בצבע מצב?",tap_action:"פעולה בהקשה"},slider:{title:"גלילה",direction:"כיוון",background:"רקע",use_brightness:"להשתמש בבהירות?",show_track:"להציג מסלול?",toggle_on_click:"פעל כמתג (השבת החלקה)",force_square:"כוח מרובע?"},action_button:{title:"כפתור פעולה",mode:"מצב",icon:"סמליל",show_button:"להציג כפתור?",show_spinner:"להציג ספינר?",tap_action:"פעולה בהקשה"}},_i={off:"כבוי",on:"פועל"},vi={"left-right":"שמאל לימין","top-bottom":"מלמעלה למטה","bottom-top":"מלמטה למעלה"},yi={striped:"מפוספס",gradient:"שיפוע",solid:"מוצק",triangle:"משולש",custom:"מותאם אישית"},wi={toggle:"החלפה",custom:"מותאם אישית"},Si={common:bi,tabs:mi,state:_i,direction:vi,background:yi,mode:wi},xi={version:"v",invalid_configuration:"Ongeldige configuratie",show_warning:"Toon waarschuwing",show_error:"Toon fout"},ki={general:{title:"Algemeen",entity:"Entiteit (Verplicht)",name:"Naam (Optioneel)",show_name:"Toon naam?",show_state:"Toon status?",compact:"Compact?"},icon:{title:"Icoon",icon:"Icoon (Optioneel)",show_icon:"Toon icoon?",use_state_color:"Gebruik status kleur?",tap_action:"Tap actie"},slider:{title:"Schuifregelaar",direction:"Richting",background:"Actergrond",use_brightness:"Gebruik helderheid?",show_track:"Toon spoor?",toggle_on_click:"Fungeren als een schakelaar (schuiven uitschakelen)",force_square:"Forceer vierkant?"},action_button:{title:"Actie button",mode:"Modus",icon:"Icoon",show_button:"Toon button?",show_spinner:"Toon spinner?",tap_action:"Tap actie"}},Oi={off:"Uit",on:"Aan"},Ti={"left-right":"Links naar rechts","top-bottom":"Boven naar onder","bottom-top":"Onder naar boven"},Ci={striped:"Gestreept",gradient:"Verloop",solid:"Vast",triangle:"Driehoek",custom:"Aangepast"},Pi={toggle:"Schakelaar",custom:"Aangepast"},Mi={common:xi,tabs:ki,state:Oi,direction:Ti,background:Ci,mode:Pi},Ei={version:"v",invalid_configuration:"Nieprawidłowa konfiguracja",show_warning:"Pokaż ostrzeżenia",show_error:"Pokaż błędy"},Ai={general:{title:"Ogólne",entity:"Encja (Wymagana)",name:"Nazwa (Opcjonalna)",show_name:"Pokazać nazwę?",show_state:"Pokazać stan?",compact:"Kompaktowy?"},icon:{title:"Ikona",icon:"Ikona (Opcjonalna)",show_icon:"Pokazać ikonę?",use_state_color:"Uzyć kolor stanu?",tap_action:"Akcja kliknięcia"},slider:{title:"Suwak",direction:"Kierunek",background:"Tło",use_brightness:"Użyć jasności?",show_track:"Pokazać ślad?",toggle_on_click:"Działaj jako przełącznik (wyłącz przesuwanie)",force_square:"Wymusić kwadrat?"},action_button:{title:"Przycisk akcji",mode:"Tryb",icon:"Ikona",show_button:"Pokazać przycisk?",show_spinner:"Pokazać spinner?",tap_action:"Akcja kliknięcia"}},$i={off:"Wyłączony",on:"Włączony"},Ni={"left-right":"Z lewej do prawej","top-bottom":"Z góry na dół","bottom-top":"Z dołu do góry"},ji={striped:"W paski",gradient:"Gradient",solid:"Pełne tło",triangle:"Trójkąt",custom:"Ustawienia własne"},Ri={toggle:"Przełącznik",custom:"Ustawienia własne"},Ii={common:Ei,tabs:Ai,state:$i,direction:Ni,background:ji,mode:Ri},Vi={version:"v",invalid_configuration:"Неверная конфигурация",show_warning:"Показать предупреждения",show_error:"Показать ошибки"},Hi={general:{title:"Общие",entity:"Объект (обязательно)",name:"Имя (Опционально)",show_name:"Отображать имя?",show_state:"Отображать статус?",compact:"Компактный?"},icon:{title:"Иконка",icon:"Иконка (Опционально)",show_icon:"Показать иконку?",use_state_color:"Использовать цвет статуса?",tap_action:"Действие по нажатию"},slider:{title:"Слайдер",direction:"Направление",background:"Фон",use_brightness:"Использовать яркость?",show_track:"Показать трек?",toggle_on_click:"Действовать как переключатель (отключить скольжение)",force_square:"Отображать квадратным?"},action_button:{title:"Кнопка действия",mode:"Режим",icon:"Иконка",show_button:"Отобразить кнопку?",show_spinner:"Отобразить спиннер?",tap_action:"Действие по нажатию"}},Ui={off:"Выкл",on:"Вкл"},Li={"left-right":"Слева направо","top-bottom":"Сверху вниз","bottom-top":"Снизу вверх"},zi={striped:"Полосатый",gradient:"Градиент",solid:"Сплошной цвет",triangle:"Треугольник",custom:"Свои настройки"},Fi={toggle:"Переключатель",custom:"Свои настройки"},Di={common:Vi,tabs:Hi,state:Ui,direction:Li,background:zi,mode:Fi};const Bi={en:Object.freeze({__proto__:null,common:ci,tabs:hi,state:di,direction:ui,background:pi,mode:gi,default:fi}),he:Object.freeze({__proto__:null,common:bi,tabs:mi,state:_i,direction:vi,background:yi,mode:wi,default:Si}),nl:Object.freeze({__proto__:null,common:xi,tabs:ki,state:Oi,direction:Ti,background:Ci,mode:Pi,default:Mi}),pl:Object.freeze({__proto__:null,common:Ei,tabs:Ai,state:$i,direction:Ni,background:ji,mode:Ri,default:Ii}),ru:Object.freeze({__proto__:null,common:Vi,tabs:Hi,state:Ui,direction:Li,background:zi,mode:Fi,default:Di})};function qi(t,e="",i=""){const s=(localStorage.getItem("selectedLanguage")||"en").replace(/['"]+/g,"").replace("-","_");let r;try{r=t.split(".").reduce((t,e)=>t[e],Bi[s])}catch(e){r=t.split(".").reduce((t,e)=>t[e],Bi.en)}return void 0===r&&(r=t.split(".").reduce((t,e)=>t[e],Bi.en)),""!==e&&""!==i&&(r=r.replace(e,i)),r}let Gi=class extends oe{constructor(){super(...arguments),this._initialized=!1,this.directions=We(_e),this.backgrounds=We(ve),this.actionModes=We(me),this.actions=["more-info","toggle","navigate","url","call-service","none"]}async setConfig(t){this._config=t,void 0===this._helpers&&await this.loadCardHelpers()}shouldUpdate(){return this._initialized||this._initialize(),!0}get _name(){var t;return(null===(t=this._config)||void 0===t?void 0:t.name)||""}get _show_name(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_name)||(null===(e=this._config)||void 0===e?void 0:e.show_name)}get _show_state(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_state)||(null===(e=this._config)||void 0===e?void 0:e.show_state)}get _compact(){var t,e;return"boolean"==typeof(null===(t=this._config)||void 0===t?void 0:t.compact)&&(null===(e=this._config)||void 0===e?void 0:e.compact)}get _entity(){var t;return(null===(t=this._config)||void 0===t?void 0:t.entity)||""}get _icon(){var t;return(null===(t=this._config)||void 0===t?void 0:t.icon)||Se}get _slider(){var t;return(null===(t=this._config)||void 0===t?void 0:t.slider)||xe}get _action_button(){var t;return(null===(t=this._config)||void 0===t?void 0:t.action_button)||we}render(){var t,e;return this.hass&&this._helpers?(this._helpers.importMoreInfoControl("climate"),It` +class ne{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;const e=(t.getAttribute("class")||"").split(/\s+/);for(const t of e)this.classes.add(t)}add(t){this.classes.add(t),this.changed=!0}remove(t){this.classes.delete(t),this.changed=!0}commit(){if(this.changed){let t="";this.classes.forEach(e=>t+=e+" "),this.element.setAttribute("class",t)}}}const ae=new WeakMap,le=pt(t=>e=>{if(!(e instanceof xt)||e instanceof Pt||"class"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");const{committer:i}=e,{element:s}=i;let r=ae.get(e);void 0===r&&(s.setAttribute("class",i.strings.join(" ")),ae.set(e,r=new Set));const o=s.classList||new ne(s);r.forEach(e=>{e in t||(o.remove(e),r.delete(e))});for(const e in t){const i=t[e];i!=r.has(e)&&(i?(o.add(e),r.add(e)):(o.remove(e),r.delete(e)))}"function"==typeof o.commit&&o.commit()}),ce=new WeakMap,he=pt(t=>e=>{const i=ce.get(e);if(void 0===t&&e instanceof xt){if(void 0!==i||!ce.has(e)){const t=e.committer.name;e.committer.element.removeAttribute(t)}}else t!==i&&e.setValue(t);ce.set(e,t)}),de=new WeakMap,ue=pt(t=>e=>{if(!(e instanceof xt)||e instanceof Pt||"style"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `styleMap` directive must be used in the style attribute and must be the only part in the attribute.");const{committer:i}=e,{style:s}=i.element;let r=de.get(e);void 0===r&&(s.cssText=i.strings.join(" "),de.set(e,r=new Set)),r.forEach(e=>{e in t||(r.delete(e),-1===e.indexOf("-")?s[e]=null:s.removeProperty(e))});for(const e in t)r.add(e),-1===e.indexOf("-")?s[e]=t[e]:s.setProperty(e,t[e])}),pe="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;class ge extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:pe?"100px":"50px",height:pe?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach(t=>{document.addEventListener(t,()=>{clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0},{passive:!0})})}bind(t,e){if(t.actionHandler)return;t.actionHandler=!0,t.addEventListener("contextmenu",t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1});const i=t=>{let e,i;this.held=!1,t.touches?(e=t.touches[0].pageX,i=t.touches[0].pageY):(e=t.pageX,i=t.pageY),this.timer=window.setTimeout(()=>{this.startAnimation(e,i),this.held=!0},this.holdTime)},s=i=>{i.preventDefault(),["touchend","touchcancel"].includes(i.type)&&void 0===this.timer||(clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0,this.held?O(t,"action",{action:"hold"}):e.hasDoubleClick?"click"===i.type&&i.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout(()=>{this.dblClickTimeout=void 0,O(t,"action",{action:"tap"})},250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,O(t,"action",{action:"double_tap"})):O(t,"action",{action:"tap"}))};t.addEventListener("touchstart",i,{passive:!0}),t.addEventListener("touchend",s),t.addEventListener("touchcancel",s),t.addEventListener("mousedown",i,{passive:!0}),t.addEventListener("click",s),t.addEventListener("keyup",t=>{13===t.keyCode&&s(t)})}startAnimation(t,e){Object.assign(this.style,{left:t+"px",top:e+"px",display:null}),this.ripple.disabled=!1,this.ripple.active=!0,this.ripple.unbounded=!0}stopAnimation(){this.ripple.active=!1,this.ripple.disabled=!0,this.style.display="none"}}customElements.define("action-handler-slider-button",ge);const fe=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("action-handler-slider-button"))return t.querySelector("action-handler-slider-button");const e=document.createElement("action-handler-slider-button");return t.appendChild(e),e})();i&&i.bind(t,e)},be=pt((t={})=>e=>{fe(e.committer.element,t)});var me,_e,ve,ye;!function(t){t.TOGGLE="toggle",t.CUSTOM="custom"}(me||(me={})),function(t){t.LEFT_RIGHT="left-right",t.TOP_BOTTOM="top-bottom",t.BOTTOM_TOP="bottom-top"}(_e||(_e={})),function(t){t.SOLID="solid",t.GRADIENT="gradient",t.TRIANGLE="triangle",t.STRIPED="striped",t.CUSTOM="custom"}(ve||(ve={})),function(t){t.LIGHT="light",t.SWITCH="switch",t.FAN="fan",t.COVER="cover",t.INPUT_BOOLEAN="input_boolean",t.MEDIA_PLAYER="media_player",t.CLIMATE="climate",t.LOCK="lock"}(ye||(ye={}));const we={mode:me.TOGGLE,icon:"mdi:power",show:!0,show_spinner:!0,tap_action:{action:"toggle"}},Se={show:!0,use_state_color:!0,tap_action:{action:"more-info"}},ke={direction:_e.LEFT_RIGHT,background:ve.SOLID,use_percentage_bg_opacity:!1,use_state_color:!1,show_track:!1,toggle_on_click:!1,force_square:!1},xe=new Map([[ye.LIGHT,{direction:_e.LEFT_RIGHT,background:ve.GRADIENT,use_state_color:!0,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!1,force_square:!1}],[ye.FAN,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!1,force_square:!1}],[ye.SWITCH,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!0,force_square:!1}],[ye.COVER,{direction:_e.TOP_BOTTOM,background:ve.STRIPED,use_state_color:!1,use_percentage_bg_opacity:!1,toggle_on_click:!1,show_track:!1,force_square:!1,invert:!0}],[ye.INPUT_BOOLEAN,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!0,force_square:!1}],[ye.MEDIA_PLAYER,{direction:_e.LEFT_RIGHT,background:ve.TRIANGLE,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!0,toggle_on_click:!1,force_square:!1}],[ye.LOCK,{direction:_e.LEFT_RIGHT,background:ve.SOLID,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!1,toggle_on_click:!0,force_square:!1}],[ye.CLIMATE,{direction:_e.LEFT_RIGHT,background:ve.TRIANGLE,use_state_color:!1,use_percentage_bg_opacity:!1,show_track:!0,toggle_on_click:!1,force_square:!1}]]);var Oe,Te,Ce;function Pe(t,e){(function(t){return"string"==typeof t&&-1!==t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var i=function(t){return"string"==typeof t&&-1!==t.indexOf("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function Me(t){return Math.min(1,Math.max(0,t))}function Ee(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function Ae(t){return t<=1?100*Number(t)+"%":t}function $e(t){return 1===t.length?"0"+t:String(t)}function Ne(t,e,i){t=Pe(t,255),e=Pe(e,255),i=Pe(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),o=0,n=0,a=(s+r)/2;if(s===r)n=0,o=0;else{var l=s-r;switch(n=a>.5?l/(2-s-r):l/(s+r),s){case t:o=(e-i)/l+(e1&&(i-=1),i<1/6?t+6*i*(e-t):i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function Re(t,e,i){t=Pe(t,255),e=Pe(e,255),i=Pe(i,255);var s=Math.max(t,e,i),r=Math.min(t,e,i),o=0,n=s,a=s-r,l=0===s?0:a/s;if(s===r)o=0;else{switch(s){case t:o=(e-i)/a+(e>16,g:(65280&t)>>8,b:255&t}}(e)),this.originalInput=e;var r=Ue(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(s=i.format)&&void 0!==s?s:r.format,this.gradientType=i.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},t.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,i=t.g/255,s=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.0722*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(t){return this.a=Ee(t),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var t=Re(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},t.prototype.toHsvString=function(){var t=Re(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+i+"%, "+s+"%)":"hsva("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHsl=function(){var t=Ne(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},t.prototype.toHslString=function(){var t=Ne(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),s=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+i+"%, "+s+"%)":"hsla("+e+", "+i+"%, "+s+"%, "+this.roundA+")"},t.prototype.toHex=function(t){return void 0===t&&(t=!1),Ie(this.r,this.g,this.b,t)},t.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},t.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,i,s,r){var o,n=[$e(Math.round(t).toString(16)),$e(Math.round(e).toString(16)),$e(Math.round(i).toString(16)),$e((o=s,Math.round(255*parseFloat(o)).toString(16)))];return r&&n[0].startsWith(n[0].charAt(1))&&n[1].startsWith(n[1].charAt(1))&&n[2].startsWith(n[2].charAt(1))&&n[3].startsWith(n[3].charAt(1))?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0)+n[3].charAt(0):n.join("")}(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+i+")":"rgba("+t+", "+e+", "+i+", "+this.roundA+")"},t.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*Pe(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*Pe(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+Ie(this.r,this.g,this.b,!1),e=0,i=Object.entries(Le);e=0;return e||!s||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l+=e/100,i.l=Me(i.l),new t(i)},t.prototype.brighten=function(e){void 0===e&&(e=10);var i=this.toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-e/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-e/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-e/100*255))),new t(i)},t.prototype.darken=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l-=e/100,i.l=Me(i.l),new t(i)},t.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},t.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},t.prototype.desaturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s-=e/100,i.s=Me(i.s),new t(i)},t.prototype.saturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s+=e/100,i.s=Me(i.s),new t(i)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var i=this.toHsl(),s=(i.h+e)%360;return i.h=s<0?360+s:s,new t(i)},t.prototype.mix=function(e,i){void 0===i&&(i=50);var s=this.toRgb(),r=new t(e).toRgb(),o=i/100;return new t({r:(r.r-s.r)*o+s.r,g:(r.g-s.g)*o+s.g,b:(r.b-s.b)*o+s.b,a:(r.a-s.a)*o+s.a})},t.prototype.analogous=function(e,i){void 0===e&&(e=6),void 0===i&&(i=30);var s=this.toHsl(),r=360/i,o=[this];for(s.h=(s.h-(r*e>>1)+720)%360;--e;)s.h=(s.h+r)%360,o.push(new t(s));return o},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){void 0===e&&(e=6);for(var i=this.toHsv(),s=i.h,r=i.s,o=i.v,n=[],a=1/e;e--;)n.push(new t({h:s,s:r,v:o})),o=(o+a)%1;return n},t.prototype.splitcomplement=function(){var e=this.toHsl(),i=e.h;return[this,new t({h:(i+72)%360,s:e.s,l:e.l}),new t({h:(i+216)%360,s:e.s,l:e.l})]},t.prototype.onBackground=function(e){var i=this.toRgb(),s=new t(e).toRgb();return new t({r:s.r+(i.r-s.r)*i.a,g:s.g+(i.g-s.g)*i.a,b:s.b+(i.b-s.b)*i.a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var i=this.toHsl(),s=i.h,r=[this],o=360/e,n=1;nt[e]).filter(t=>"string"==typeof t)}const Ze=(t,e,i)=>{if(1!==e.length)return t[e[0]]||(t[e[0]]={}),Ze(t[e[0]],e.slice(1),i);t[e[0]]=i};function Je(t){const e=w(t)||ye.LIGHT;return X(xe.get(e)||ke)}function Ke(t,e,i){const s=new Ge("rgb(255, 160, 0)"),r=new Ge("rgb(166, 209, 255)"),o=new Ge("white"),n=(t-e)/(i-e)*100;return n<50?Ye(r).mix(o,2*n).toRgbString():Ye(o).mix(s,2*(n-50)).toRgbString()}function Xe(t,e,i){return(t-e)/i*100}function Qe(t,e,i){return Math.floor(t*(i-e)/100+e)}class ti{constructor(t){this._sliderPrevColor="",this._config=t}set hass(t){this._hass=t}get stateObj(){return this._hass.states[this._config.entity]}get domain(){return S(this.stateObj)}get name(){var t,e;return this._config.name?this._config.name:(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.friendly_name)?this.stateObj.attributes.friendly_name:""}get icon(){var t,e,i;return"string"==typeof(null===(t=this._config.icon)||void 0===t?void 0:t.icon)&&(null===(e=this._config.icon)||void 0===e?void 0:e.icon.length)?this._config.icon.icon:(null===(i=this.stateObj.attributes)||void 0===i?void 0:i.icon)?this.stateObj.attributes.icon:C(this.domain,this.stateObj.state)}get value(){return this._value?Math.round(this._value/this.step)*this.step:this.min}set value(t){t!==this.value&&(this._value=t)}get targetValue(){return 0===this._targetValue?0:this._targetValue?Math.round(this._targetValue/this.step)*this.step:this.value?this.value:0}set targetValue(t){t!==this.targetValue&&(this._targetValue=t)}get label(){return""+this.targetValue}get hidden(){return!1}get hasSlider(){return!0}get hasToggle(){var t,e;return null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.toggle_on_click)&&void 0!==e&&e}get toggleValue(){return this.value===this.min?this.max:this.min}get state(){var t;return null===(t=this.stateObj)||void 0===t?void 0:t.state}get isOff(){return 0===this.percentage}get isUnavailable(){return!this.state||"unavailable"===this.state}get isSliderDisabled(){return this.isUnavailable?this.isUnavailable:this.hasToggle}get min(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.min)&&void 0!==e?e:this._min)&&void 0!==i?i:0}get max(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.max)&&void 0!==e?e:this._max)&&void 0!==i?i:100}get step(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.step)&&void 0!==e?e:this._step)&&void 0!==i?i:5}get invert(){var t,e,i;return null!==(i=null!==(e=null===(t=this._config.slider)||void 0===t?void 0:t.invert)&&void 0!==e?e:this._invert)&&void 0!==i&&i}get isValuePercentage(){return!0}get percentage(){return Math.round(100*(this.targetValue-(this.invert?this.max:this.min))/(this.max-this.min)*(this.invert?-1:1))}get valueFromPercentage(){return Qe(this.percentage,this.min,this.max)}get allowedAttributes(){return[]}get style(){return{icon:{filter:this.iconFilter,color:this.iconColor,rotateSpeed:this.iconRotateSpeed},slider:{filter:this.sliderFilter,color:this.sliderColor}}}get iconFilter(){var t;return(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color)&&0!==this.percentage?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get iconColor(){var t;if(null===(t=this._config.icon)||void 0===t?void 0:t.use_state_color){if(!this.stateObj.attributes.hs_color)return this.percentage>0?"var(--paper-item-icon-active-color, #fdd835)":"var(--paper-item-icon-color, #44739e)";{const[t,e]=this.stateObj.attributes.hs_color;if(e>10)return`hsl(${t}, 100%, ${100-e/2}%)`}}return""}get iconRotateSpeed(){return"0s"}get sliderFilter(){var t;return(null===(t=this._config.slider)||void 0===t?void 0:t.use_percentage_bg_opacity)&&0!==this.percentage&&this._config.slider.background!==ve.GRADIENT?`brightness(${(this.percentage+100)/2}%)`:"brightness(100%)"}get sliderColor(){var t;if(null===(t=this._config.slider)||void 0===t?void 0:t.use_state_color)if(this.stateObj.attributes.hs_color){const[t,e]=this.stateObj.attributes.hs_color;if(e>10){const i=`hsl(${t}, 100%, ${100-e/2}%)`;return this._sliderPrevColor=i,i}}else{if(this.stateObj.attributes.color_temp&&this.stateObj.attributes.min_mireds&&this.stateObj.attributes.max_mireds){const t=Ke(this.stateObj.attributes.color_temp,this.stateObj.attributes.min_mireds,this.stateObj.attributes.max_mireds);return this._sliderPrevColor=t,t}if(this._sliderPrevColor.startsWith("hsl")||this._sliderPrevColor.startsWith("rgb"))return this._sliderPrevColor}return"inherit"}moveSlider(t,{left:e,top:i,width:s,height:r}){let o=this.calcMovementPercentage(t,{left:e,top:i,width:s,height:r});var n,a,l;return o=this.applyStep(o),n=o,a=0,l=100,o=isNaN(n)||isNaN(a)||isNaN(l)?0:n>l?l:n0?"open_cover":"close_cover";this._hass.callService("cover",e,{entity_id:this.stateObj.entity_id})}}get _step(){return 1}get label(){const t=this._hass.localize("component.cover.state._."+this.state),e=this._hass.localize("component.cover.state._.closed"),i=this._hass.localize("component.cover.state._.open");if(!this.hasSlider)return t;switch(this.attribute){case Ce.POSITION:return 0===this.percentage?this.invert?i:e:100===this.percentage?this.invert?e:i:this.percentage+"%";case Ce.TILT:return""+this.percentage}return t}get hasSlider(){switch(this.attribute){case Ce.POSITION:if("current_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&4&this.stateObj.attributes.supported_features)return!0;break;case Ce.TILT:if("current_tilt_position"in this.stateObj.attributes)return!0;if("supported_features"in this.stateObj.attributes&&128&this.stateObj.attributes.supported_features)return!0;break;default:return!1}return!1}get _max(){return this.hasSlider?100:1}}class si extends ti{constructor(){super(...arguments),this._min=0,this._invert=!1}get _value(){return this.isUnavailable||x.includes(this.state)?0:this.hasSlider?this.stateObj.attributes.percentage:1}set _value(t){const e=t>0?"turn_on":"turn_off";t>0&&this.hasSlider?this._hass.callService("fan","set_percentage",{entity_id:this.stateObj.entity_id,percentage:t}):this._hass.callService("fan",e,{entity_id:this.stateObj.entity_id})}get _step(){return this.stateObj.attributes.percentage_step}get label(){return this.percentage>0?this.hasSlider?this.percentage+"%":this._hass.localize("component.fan.state._.on"):this._hass.localize("component.fan.state._.off")}get hasSlider(){return"speed"in this.stateObj.attributes}get _max(){return this.hasSlider?100:1}get iconRotateSpeed(){let t=0;return this.percentage>0&&(t=3-this.percentage/100*2),t+"s"}}class ri extends ti{constructor(){super(...arguments),this._min=0,this._max=1,this._invert=!1}get _value(){return x.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("input_boolean",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.input_boolean.state._.on"):this._hass.localize("component.input_boolean.state._.off")}}const oi={hue:0,saturation:1};class ni extends ti{constructor(){super(...arguments),this._step=1,this._invert=!1}get attribute(){var t,e,i,s,r;const o=null===(t=this._config.slider)||void 0===t?void 0:t.attribute;let n=Oe.BRIGHTNESS_PCT,a=[];if(Array.isArray(null===(i=null===(e=this.stateObj)||void 0===e?void 0:e.attributes)||void 0===i?void 0:i.supported_color_modes)&&(a=null===(r=null===(s=this.stateObj)||void 0===s?void 0:s.attributes)||void 0===r?void 0:r.supported_color_modes),1===a.length&&a[0]===Oe.ON_OFF&&(n=Oe.ON_OFF),(null==o?void 0:o.length)&&this.allowedAttributes.includes(o))switch(n=o,o){case Oe.COLOR_TEMP:a.includes("color_temp")||(n=Oe.BRIGHTNESS_PCT);break;case Oe.HUE:case Oe.SATURATION:a.includes("hs")||(n=Oe.BRIGHTNESS_PCT)}return n}get allowedAttributes(){return We(Oe)}get colorMode(){var t,e;return null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.color_mode}get _value(){if(!this.stateObj||x.includes(this.state))return this.isValuePercentage?0:this.min;const t=this.stateObj.attributes;switch(this.attribute){case Oe.COLOR_TEMP:return t.color_temp?Math.round(t.color_temp):this.min;case Oe.BRIGHTNESS:return Math.round(t.brightness);case Oe.BRIGHTNESS_PCT:return Math.round(100*t.brightness/255);case Oe.ON_OFF:return 1;case Oe.HUE:case Oe.SATURATION:return t.hs_color?Math.round(t.hs_color[oi[this.attribute]]):0;default:return 0}}set _value(t){if(!this.stateObj)return;let e,i=this.attribute,s=t>0?"turn_on":"turn_off",r={entity_id:this.stateObj.entity_id};switch(i){case Oe.BRIGHTNESS:case Oe.BRIGHTNESS_PCT:(t=i===Oe.BRIGHTNESS?Math.round(t):Math.round(t/100*255))?(i="brightness",r=Object.assign(Object.assign({},r),{[i]:t})):s="turn_off";break;case Oe.HUE:case Oe.SATURATION:e=this.stateObj.attributes.hs_color||[0,0],e[oi[i]]=t,t=e,i="hs_color",s="turn_on",r=Object.assign(Object.assign({},r),{[i]:t});break;case Oe.COLOR_TEMP:i="color_temp",s="turn_on",r=Object.assign(Object.assign({},r),{[i]:t})}this._hass.callService("light",s,Object.assign({},r))}get _min(){var t;switch(this.attribute){case Oe.COLOR_TEMP:return this.stateObj&&(null===(t=this.stateObj.attributes)||void 0===t?void 0:t.min_mireds)?this.stateObj.attributes.min_mireds:153;default:return 0}}get _max(){var t;switch(this.attribute){case Oe.COLOR_TEMP:return this.stateObj&&(null===(t=this.stateObj.attributes)||void 0===t?void 0:t.max_mireds)?this.stateObj.attributes.max_mireds:500;case Oe.BRIGHTNESS:return 255;case Oe.HUE:return 360;case Oe.ON_OFF:return 1;default:return 100}}get isValuePercentage(){switch(this.attribute){case Oe.COLOR_TEMP:case Oe.HUE:case Oe.BRIGHTNESS:return!1;default:return!0}}get isOff(){switch(this.attribute){case Oe.COLOR_TEMP:case Oe.HUE:case Oe.SATURATION:case Oe.BRIGHTNESS:case Oe.ON_OFF:return x.includes(this.state);default:return this.colorMode===Te.ON_OFF?x.includes(this.state):0===this.percentage}}get label(){if(this.isOff)return this._hass.localize("component.light.state._.off");if(this.colorMode===Te.ON_OFF)return this._hass.localize("component.light.state._.on");switch(this.attribute){case Oe.ON_OFF:return this._hass.localize("component.light.state._.on");case Oe.COLOR_TEMP:case Oe.BRIGHTNESS:return""+this.targetValue;case Oe.BRIGHTNESS_PCT:case Oe.SATURATION:return this.targetValue+"%";case Oe.HUE:return this.targetValue+"°";default:return""+this.targetValue}}get hasToggle(){var t,e,i,s,r,o;let n=[];return Array.isArray(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.supported_color_modes)&&(n=null===(s=null===(i=this.stateObj)||void 0===i?void 0:i.attributes)||void 0===s?void 0:s.supported_color_modes),1===n.length&&n[0]===Oe.ON_OFF||null!==(o=null===(r=this._config.slider)||void 0===r?void 0:r.toggle_on_click)&&void 0!==o&&o}get hasSlider(){var t,e;if(!this.stateObj)return!1;switch(this.attribute){case Oe.ON_OFF:return!1;case Oe.BRIGHTNESS:case Oe.BRIGHTNESS_PCT:return"brightness"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&1&(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.supported_features));case Oe.COLOR_TEMP:return"color_temp"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&2&this.stateObj.attributes.supported_features);case Oe.HUE:case Oe.SATURATION:return"hs_color"in this.stateObj.attributes||!!("supported_features"in this.stateObj.attributes&&16&this.stateObj.attributes.supported_features);default:return!1}}get sliderColor(){var t;let e="inherit";if(null===(t=this._config.slider)||void 0===t?void 0:t.use_state_color)if(this.stateObj.attributes.hs_color&&this.attribute!==Oe.COLOR_TEMP){const[t,i]=this.stateObj.attributes.hs_color;let s=t,r=i;switch(this.attribute){case Oe.HUE:s=this.valueFromPercentage;break;case Oe.SATURATION:r=this.percentage}r>10&&(e=`hsl(${s}, 100%, ${100-r/2}%)`,this._sliderPrevColor=e)}else if(this.attribute===Oe.HUE||this.attribute===Oe.SATURATION){let t=0,i=20;switch(this.attribute){case Oe.HUE:t=this.valueFromPercentage;break;case Oe.SATURATION:i=this.percentage}i>10&&(e=`hsl(${t}, 100%, ${100-i/2}%)`,this._sliderPrevColor=e)}else this.stateObj.attributes.color_temp&&this.stateObj.attributes.min_mireds&&this.stateObj.attributes.max_mireds?(e=Ke(this.attribute===Oe.COLOR_TEMP?this.valueFromPercentage:this.stateObj.attributes.color_temp,this.stateObj.attributes.min_mireds,this.stateObj.attributes.max_mireds),this._sliderPrevColor=e):this.attribute===Oe.COLOR_TEMP?(e=Ke(this.valueFromPercentage,153,500),this._sliderPrevColor=e):(this._sliderPrevColor.startsWith("hsl")||this._sliderPrevColor.startsWith("rgb"))&&(e=this._sliderPrevColor);return e}}class ai extends ti{constructor(){super(...arguments),this._min=0,this._max=1,this._invert=!1}get _value(){return x.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"lock":"unlock";this._hass.callService("lock",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.lock.state._.unlocked"):this._hass.localize("component.lock.state._.locked")}}class li extends ti{constructor(){super(...arguments),this._min=0,this._max=100,this._step=1,this._invert=!1}get _value(){var t,e;return this.isUnavailable||(null===(e=null===(t=this.stateObj)||void 0===t?void 0:t.attributes)||void 0===e?void 0:e.is_volume_muted)?0:Math.floor(100*parseFloat(Number.parseFloat(this.stateObj.attributes.volume_level).toPrecision(2)))}set _value(t){t/=100,this._hass.callService("media_player","volume_set",{entity_id:this.stateObj.entity_id,volume_level:t}),t&&this._hass.callService("media_player","volume_mute",{entity_id:this.stateObj.entity_id,is_volume_muted:!1})}get isOff(){return"off"===this.stateObj.state}get label(){return this.stateObj.attributes.is_volume_muted?"-":this.stateObj.attributes.volume_level?this.percentage+"%":this._hass.localize("component.media_player.state._."+this.state)}}class ci extends ti{constructor(){super(...arguments),this._min=0,this._max=1,this._invert=!1}get _value(){return x.includes(this.stateObj.state)?0:1}set _value(t){const e=t>0?"turn_on":"turn_off";this._hass.callService("switch",e,{entity_id:this.stateObj.entity_id})}get _step(){return 1}get label(){return this.percentage>0?this._hass.localize("component.switch.state._.on"):this._hass.localize("component.switch.state._.off")}}var hi={version:"v",invalid_configuration:"Invalid configuration",show_warning:"Show Warning",show_error:"Show Error"},di={general:{title:"General",entity:"Entity (Required)",name:"Name (Optional)",show_name:"Show name?",show_state:"Show state?",compact:"Compact?"},icon:{title:"Icon",icon:"Icon (Optional)",show_icon:"Show icon?",use_state_color:"Use state color?",tap_action:"Tap action"},slider:{title:"Slider",direction:"Direction",background:"Background",use_brightness:"Use brightness?",show_track:"Show track?",toggle_on_click:"Act as a toggle (disable sliding)",force_square:"Force square?"},action_button:{title:"Action button",mode:"Mode",icon:"Icon",show_button:"Show button?",show_spinner:"Show spinner?",tap_action:"Tap action"}},ui={off:"Off",on:"On"},pi={"left-right":"Left to right","top-bottom":"Top to bottom","bottom-top":"Bottom to top"},gi={striped:"Striped",gradient:"Gradient",solid:"Solid",triangle:"Triangle",custom:"Custom"},fi={toggle:"Toggle",custom:"Custom"},bi={common:hi,tabs:di,state:ui,direction:pi,background:gi,mode:fi},mi={version:"v",invalid_configuration:"תצורה לא חוקית",show_warning:"הצג אזהרה",show_error:"הצג שגיאה"},_i={general:{title:"כללי",entity:"ישיות (נדרש)",name:"שם (אופציונלי)",show_name:"להציג שם?",show_state:"להציג מצב?",compact:"קוֹמפָּקטִי?"},icon:{title:"סמליל",icon:"סמליל (אופציונלי)",show_icon:"להציג סמליל?",use_state_color:"להשתמש בצבע מצב?",tap_action:"פעולה בהקשה"},slider:{title:"גלילה",direction:"כיוון",background:"רקע",use_brightness:"להשתמש בבהירות?",show_track:"להציג מסלול?",toggle_on_click:"פעל כמתג (השבת החלקה)",force_square:"כוח מרובע?"},action_button:{title:"כפתור פעולה",mode:"מצב",icon:"סמליל",show_button:"להציג כפתור?",show_spinner:"להציג ספינר?",tap_action:"פעולה בהקשה"}},vi={off:"כבוי",on:"פועל"},yi={"left-right":"שמאל לימין","top-bottom":"מלמעלה למטה","bottom-top":"מלמטה למעלה"},wi={striped:"מפוספס",gradient:"שיפוע",solid:"מוצק",triangle:"משולש",custom:"מותאם אישית"},Si={toggle:"החלפה",custom:"מותאם אישית"},ki={common:mi,tabs:_i,state:vi,direction:yi,background:wi,mode:Si},xi={version:"v",invalid_configuration:"Ongeldige configuratie",show_warning:"Toon waarschuwing",show_error:"Toon fout"},Oi={general:{title:"Algemeen",entity:"Entiteit (Verplicht)",name:"Naam (Optioneel)",show_name:"Toon naam?",show_state:"Toon status?",compact:"Compact?"},icon:{title:"Icoon",icon:"Icoon (Optioneel)",show_icon:"Toon icoon?",use_state_color:"Gebruik status kleur?",tap_action:"Tap actie"},slider:{title:"Schuifregelaar",direction:"Richting",background:"Actergrond",use_brightness:"Gebruik helderheid?",show_track:"Toon spoor?",toggle_on_click:"Fungeren als een schakelaar (schuiven uitschakelen)",force_square:"Forceer vierkant?"},action_button:{title:"Actie button",mode:"Modus",icon:"Icoon",show_button:"Toon button?",show_spinner:"Toon spinner?",tap_action:"Tap actie"}},Ti={off:"Uit",on:"Aan"},Ci={"left-right":"Links naar rechts","top-bottom":"Boven naar onder","bottom-top":"Onder naar boven"},Pi={striped:"Gestreept",gradient:"Verloop",solid:"Vast",triangle:"Driehoek",custom:"Aangepast"},Mi={toggle:"Schakelaar",custom:"Aangepast"},Ei={common:xi,tabs:Oi,state:Ti,direction:Ci,background:Pi,mode:Mi},Ai={version:"v",invalid_configuration:"Nieprawidłowa konfiguracja",show_warning:"Pokaż ostrzeżenia",show_error:"Pokaż błędy"},$i={general:{title:"Ogólne",entity:"Encja (Wymagana)",name:"Nazwa (Opcjonalna)",show_name:"Pokazać nazwę?",show_state:"Pokazać stan?",compact:"Kompaktowy?"},icon:{title:"Ikona",icon:"Ikona (Opcjonalna)",show_icon:"Pokazać ikonę?",use_state_color:"Uzyć kolor stanu?",tap_action:"Akcja kliknięcia"},slider:{title:"Suwak",direction:"Kierunek",background:"Tło",use_brightness:"Użyć jasności?",show_track:"Pokazać ślad?",toggle_on_click:"Działaj jako przełącznik (wyłącz przesuwanie)",force_square:"Wymusić kwadrat?"},action_button:{title:"Przycisk akcji",mode:"Tryb",icon:"Ikona",show_button:"Pokazać przycisk?",show_spinner:"Pokazać spinner?",tap_action:"Akcja kliknięcia"}},Ni={off:"Wyłączony",on:"Włączony"},ji={"left-right":"Z lewej do prawej","top-bottom":"Z góry na dół","bottom-top":"Z dołu do góry"},Ri={striped:"W paski",gradient:"Gradient",solid:"Pełne tło",triangle:"Trójkąt",custom:"Ustawienia własne"},Ii={toggle:"Przełącznik",custom:"Ustawienia własne"},Vi={common:Ai,tabs:$i,state:Ni,direction:ji,background:Ri,mode:Ii},Hi={version:"v",invalid_configuration:"Неверная конфигурация",show_warning:"Показать предупреждения",show_error:"Показать ошибки"},Li={general:{title:"Общие",entity:"Объект (обязательно)",name:"Имя (Опционально)",show_name:"Отображать имя?",show_state:"Отображать статус?",compact:"Компактный?"},icon:{title:"Иконка",icon:"Иконка (Опционально)",show_icon:"Показать иконку?",use_state_color:"Использовать цвет статуса?",tap_action:"Действие по нажатию"},slider:{title:"Слайдер",direction:"Направление",background:"Фон",use_brightness:"Использовать яркость?",show_track:"Показать трек?",toggle_on_click:"Действовать как переключатель (отключить скольжение)",force_square:"Отображать квадратным?"},action_button:{title:"Кнопка действия",mode:"Режим",icon:"Иконка",show_button:"Отобразить кнопку?",show_spinner:"Отобразить спиннер?",tap_action:"Действие по нажатию"}},Ui={off:"Выкл",on:"Вкл"},zi={"left-right":"Слева направо","top-bottom":"Сверху вниз","bottom-top":"Снизу вверх"},Fi={striped:"Полосатый",gradient:"Градиент",solid:"Сплошной цвет",triangle:"Треугольник",custom:"Свои настройки"},Di={toggle:"Переключатель",custom:"Свои настройки"},Bi={common:Hi,tabs:Li,state:Ui,direction:zi,background:Fi,mode:Di};const qi={en:Object.freeze({__proto__:null,common:hi,tabs:di,state:ui,direction:pi,background:gi,mode:fi,default:bi}),he:Object.freeze({__proto__:null,common:mi,tabs:_i,state:vi,direction:yi,background:wi,mode:Si,default:ki}),nl:Object.freeze({__proto__:null,common:xi,tabs:Oi,state:Ti,direction:Ci,background:Pi,mode:Mi,default:Ei}),pl:Object.freeze({__proto__:null,common:Ai,tabs:$i,state:Ni,direction:ji,background:Ri,mode:Ii,default:Vi}),ru:Object.freeze({__proto__:null,common:Hi,tabs:Li,state:Ui,direction:zi,background:Fi,mode:Di,default:Bi})};function Gi(t,e="",i=""){const s=(localStorage.getItem("selectedLanguage")||"en").replace(/['"]+/g,"").replace("-","_");let r;try{r=t.split(".").reduce((t,e)=>t[e],qi[s])}catch(e){r=t.split(".").reduce((t,e)=>t[e],qi.en)}return void 0===r&&(r=t.split(".").reduce((t,e)=>t[e],qi.en)),""!==e&&""!==i&&(r=r.replace(e,i)),r}let Yi=class extends oe{constructor(){super(...arguments),this._initialized=!1,this.directions=We(_e),this.backgrounds=We(ve),this.actionModes=We(me),this.actions=["more-info","toggle","navigate","url","call-service","none"]}async setConfig(t){this._config=t,void 0===this._helpers&&await this.loadCardHelpers()}shouldUpdate(){return this._initialized||this._initialize(),!0}get _name(){var t;return(null===(t=this._config)||void 0===t?void 0:t.name)||""}get _show_name(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_name)||(null===(e=this._config)||void 0===e?void 0:e.show_name)}get _show_state(){var t,e;return void 0===(null===(t=this._config)||void 0===t?void 0:t.show_state)||(null===(e=this._config)||void 0===e?void 0:e.show_state)}get _compact(){var t,e;return"boolean"==typeof(null===(t=this._config)||void 0===t?void 0:t.compact)&&(null===(e=this._config)||void 0===e?void 0:e.compact)}get _entity(){var t;return(null===(t=this._config)||void 0===t?void 0:t.entity)||""}get _icon(){var t;return(null===(t=this._config)||void 0===t?void 0:t.icon)||Se}get _slider(){var t;return(null===(t=this._config)||void 0===t?void 0:t.slider)||ke}get _action_button(){var t;return(null===(t=this._config)||void 0===t?void 0:t.action_button)||we}render(){var t,e;return this.hass&&this._helpers?(this._helpers.importMoreInfoControl("climate"),It`

- +
- + - + - + - +
- + - +
${this.directions.map(t=>It` - ${qi("direction."+t)} + ${Gi("direction."+t)} `)} ${this.backgrounds.map(t=>It` - ${qi("background."+t)} + ${Gi("background."+t)} `)} @@ -320,21 +320,21 @@ class ne{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons
${this.renderBrightness("slider")} ${this.renderStateColor("slider")} - + - + - + - +
${this.actionModes.map(t=>It` - ${qi("mode."+t)} + ${Gi("mode."+t)} `)} ${this._action_button.mode===me.CUSTOM?It` `:""}
- + ${this._action_button.mode===me.CUSTOM?It` - + ${this._action_button.mode===me.CUSTOM?It`
`):It``}renderBrightness(t){const e=this["_"+t];return It` - + `}renderStateColor(t){const e=this["_"+t];return It` - + - `}_initialize(){void 0!==this.hass&&void 0!==this._config&&void 0!==this._helpers&&(this._initialized=!0)}async loadCardHelpers(){this._helpers=await window.loadCardHelpers()}_valueChangedSelect(t){var e;const i=t.detail.value;i&&this._changeValue(null===(e=i.parentElement)||void 0===e?void 0:e.configValue,i.itemValue)}_valueChangedEntity(t){var e,i;const s=t.target,r=null===(e=t.detail)||void 0===e?void 0:e.value,o=w(r)!==w((null===(i=this._config)||void 0===i?void 0:i.entity)||"light.dummy");if(this._changeValue("name",""),this._changeValue("icon.icon",""),this._changeValue(s.configValue,r),o){const t=K(this._config);Ze(t,["slider"],Je(r)),this._config=t,O(this,"config-changed",{config:this._config})}}_valueChanged(t){var e;const i=t.target,s=null===(e=t.detail)||void 0===e?void 0:e.value;this._changeValue(i.configValue,void 0!==i.checked?i.checked:s)}_changeValue(t,e){if(this._config&&this.hass&&(void 0===this["_"+t]||this["_"+t]!==e)){if(t){const i=K(this._config);Ze(i,[...t.split(".")],e),this._config=i,""===e&&delete this._config[t]}O(this,"config-changed",{config:this._config})}}static get styles(){return se` + `}_initialize(){void 0!==this.hass&&void 0!==this._config&&void 0!==this._helpers&&(this._initialized=!0)}async loadCardHelpers(){this._helpers=await window.loadCardHelpers()}_valueChangedSelect(t){var e;const i=t.detail.value;i&&this._changeValue(null===(e=i.parentElement)||void 0===e?void 0:e.configValue,i.itemValue)}_valueChangedEntity(t){var e,i;const s=t.target,r=null===(e=t.detail)||void 0===e?void 0:e.value,o=w(r)!==w((null===(i=this._config)||void 0===i?void 0:i.entity)||"light.dummy");if(this._changeValue("name",""),this._changeValue("icon.icon",""),this._changeValue(s.configValue,r),o){const t=X(this._config);Ze(t,["slider"],Je(r)),this._config=t,O(this,"config-changed",{config:this._config})}}_valueChanged(t){var e;const i=t.target,s=null===(e=t.detail)||void 0===e?void 0:e.value;this._changeValue(i.configValue,void 0!==i.checked?i.checked:s)}_changeValue(t,e){if(this._config&&this.hass&&(void 0===this["_"+t]||this["_"+t]!==e)){if(t){const i=X(this._config);Ze(i,[...t.split(".")],e),this._config=i,""===e&&delete this._config[t]}O(this,"config-changed",{config:this._config})}}static get styles(){return se` ha-switch { padding: 16px 6px; } @@ -494,7 +494,7 @@ class ne{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons max-height: 100vh; padding: 1em; } - `}};t([Zt({attribute:!1})],Gi.prototype,"hass",void 0),t([Jt()],Gi.prototype,"_config",void 0),t([Jt()],Gi.prototype,"_helpers",void 0),Gi=t([Yt("slider-button-card-editor")],Gi),console.info(`%c SLIDER-BUTTON-CARD %c ${qi("common.version")}1.8.0 %c`,"background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border: 1px solid #555;border-radius: 3px 0 0 3px;font-family: Roboto,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: transparent;color: #555;padding: 3px 3px 3px 2px;border: 1px solid #555; border-radius: 0 3px 3px 0;font-family: Roboto,Verdana,Geneva,sans-serif","background-color: transparent"),window.customCards=window.customCards||[],window.customCards.push({type:"slider-button-card",name:"Slider button Card",description:"A button card with slider",preview:!0});let Yi=class extends oe{constructor(){super(...arguments),this.changing=!1,this.changed=!1}static async getConfigElement(){return document.createElement("slider-button-card-editor")}static getStubConfig(t,e){const i=e.find(t=>t.startsWith("light"))||"";return{entity:i,slider:Je(i),show_name:!0,show_state:!0,compact:!1,icon:K(Se),action_button:K(we)}}getCardSize(){return 0}setConfig(t){if(!t)throw new Error(qi("common.invalid_configuration"));if(!t.entity)throw new Error(qi("common.invalid_configuration"));this.config=Object.assign({slider:Je(t.entity),icon:K(Se),show_name:!0,show_state:!0,compact:!1,action_button:K(we),debug:!1},t),this.ctrl=class{static getInstance(t){const e=w(t.entity),i={[ye.LIGHT]:ni,[ye.FAN]:si,[ye.SWITCH]:li,[ye.COVER]:ii,[ye.INPUT_BOOLEAN]:ri,[ye.MEDIA_PLAYER]:ai,[ye.CLIMATE]:ei};if(void 0===i[e])throw new Error("Unsupported entity type: "+e);return new i[e](t)}}.getInstance(this.config)}shouldUpdate(t){if(!this.config)return!1;const e=t.get("hass");return e&&e.themes===this.hass.themes&&e.language===this.hass.language?function(t,e,i){if(e.has("config")||i)return!0;if(t.config.entity){var s=e.get("hass");return!s||s.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t,!1):(this.ctrl.log("shouldUpdate","forced true"),!0)}updated(t){this.updateValue(this.ctrl.value,!1),this.animateActionEnd();const e=t.get("hass"),i=t.get("config");(null==e?void 0:e.themes)===this.hass.themes&&(null==i?void 0:i.theme)===this.config.theme||(this.ctrl.log("Theme","updated"),function(t,e,i,s){void 0===s&&(s=!1),t._themes||(t._themes={});var r=e.default_theme;("default"===i||i&&e.themes[i])&&(r=i);var o=Object.assign({},t._themes);if("default"!==r){var n=e.themes[r];Object.keys(n).forEach((function(e){var i="--"+e;t._themes[i]="",o[i]=n[e]}))}if(t.updateStyles?t.updateStyles(o):window.ShadyCSS&&window.ShadyCSS.styleSubtree(t,o),s){var a=document.querySelector("meta[name=theme-color]");if(a){a.hasAttribute("default-content")||a.setAttribute("default-content",a.getAttribute("content"));var l=o["--primary-color"]||a.getAttribute("default-content");a.setAttribute("content",l)}}}(this,this.hass.themes,this.config.theme)),this.ctrl.log("Updated",this.ctrl.value)}firstUpdated(t){super.firstUpdated(t)}render(){var t,e,i,s,r;return this.ctrl.hass=this.hass,this.ctrl.stateObj?It` + `}};t([Zt({attribute:!1})],Yi.prototype,"hass",void 0),t([Jt()],Yi.prototype,"_config",void 0),t([Jt()],Yi.prototype,"_helpers",void 0),Yi=t([Yt("slider-button-card-editor")],Yi),console.info(`%c SLIDER-BUTTON-CARD %c ${Gi("common.version")}1.9.0 %c`,"background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border: 1px solid #555;border-radius: 3px 0 0 3px;font-family: Roboto,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: transparent;color: #555;padding: 3px 3px 3px 2px;border: 1px solid #555; border-radius: 0 3px 3px 0;font-family: Roboto,Verdana,Geneva,sans-serif","background-color: transparent"),window.customCards=window.customCards||[],window.customCards.push({type:"slider-button-card",name:"Slider button Card",description:"A button card with slider",preview:!0});let Wi=class extends oe{constructor(){super(...arguments),this.changing=!1,this.changed=!1}static async getConfigElement(){return document.createElement("slider-button-card-editor")}static getStubConfig(t,e){const i=e.find(t=>t.startsWith("light"))||"";return{entity:i,slider:Je(i),show_name:!0,show_state:!0,compact:!1,icon:X(Se),action_button:X(we)}}getCardSize(){return 0}setConfig(t){if(!t)throw new Error(Gi("common.invalid_configuration"));if(!t.entity)throw new Error(Gi("common.invalid_configuration"));this.config=Object.assign({slider:Je(t.entity),icon:X(Se),show_name:!0,show_state:!0,compact:!1,action_button:X(we),debug:!1},t),this.ctrl=class{static getInstance(t){const e=w(t.entity),i={[ye.LIGHT]:ni,[ye.FAN]:si,[ye.SWITCH]:ci,[ye.COVER]:ii,[ye.INPUT_BOOLEAN]:ri,[ye.MEDIA_PLAYER]:li,[ye.CLIMATE]:ei,[ye.LOCK]:ai};if(void 0===i[e])throw new Error("Unsupported entity type: "+e);return new i[e](t)}}.getInstance(this.config)}shouldUpdate(t){if(!this.config)return!1;const e=t.get("hass");return e&&e.themes===this.hass.themes&&e.language===this.hass.language?function(t,e,i){if(e.has("config")||i)return!0;if(t.config.entity){var s=e.get("hass");return!s||s.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t,!1):(this.ctrl.log("shouldUpdate","forced true"),!0)}updated(t){this.updateValue(this.ctrl.value,!1),this.animateActionEnd();const e=t.get("hass"),i=t.get("config");(null==e?void 0:e.themes)===this.hass.themes&&(null==i?void 0:i.theme)===this.config.theme||(this.ctrl.log("Theme","updated"),function(t,e,i,s){void 0===s&&(s=!1),t._themes||(t._themes={});var r=e.default_theme;("default"===i||i&&e.themes[i])&&(r=i);var o=Object.assign({},t._themes);if("default"!==r){var n=e.themes[r];Object.keys(n).forEach((function(e){var i="--"+e;t._themes[i]="",o[i]=n[e]}))}if(t.updateStyles?t.updateStyles(o):window.ShadyCSS&&window.ShadyCSS.styleSubtree(t,o),s){var a=document.querySelector("meta[name=theme-color]");if(a){a.hasAttribute("default-content")||a.setAttribute("default-content",a.getAttribute("content"));var l=o["--primary-color"]||a.getAttribute("default-content");a.setAttribute("content",l)}}}(this,this.hass.themes,this.config.theme)),this.ctrl.log("Updated",this.ctrl.value)}firstUpdated(t){super.firstUpdated(t)}render(){var t,e,i,s,r;return this.ctrl.hass=this.hass,this.ctrl.stateObj?It` - `:this._showError(qi("common.show_error"))}renderText(){return this.config.show_name||this.config.show_state?It` + `:this._showError(Gi("common.show_error"))}renderText(){return this.config.show_name||this.config.show_state?It`
${this.config.show_name?It`
${this.ctrl.name}
@@ -555,7 +555,7 @@ class ne{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons
@@ -975,4 +975,4 @@ class ne{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;cons stroke-dashoffset: -124; } } - `}};t([Zt({attribute:!1})],Yi.prototype,"hass",void 0),t([Jt()],Yi.prototype,"config",void 0),t([Xt(".state")],Yi.prototype,"stateText",void 0),t([Xt(".button")],Yi.prototype,"button",void 0),t([Xt(".action")],Yi.prototype,"action",void 0),t([Xt(".slider")],Yi.prototype,"slider",void 0),Yi=t([Yt("slider-button-card")],Yi);export{Yi as SliderButtonCard}; + `}};t([Zt({attribute:!1})],Wi.prototype,"hass",void 0),t([Jt()],Wi.prototype,"config",void 0),t([Kt(".state")],Wi.prototype,"stateText",void 0),t([Kt(".button")],Wi.prototype,"button",void 0),t([Kt(".action")],Wi.prototype,"action",void 0),t([Kt(".slider")],Wi.prototype,"slider",void 0),Wi=t([Yt("slider-button-card")],Wi);export{Wi as SliderButtonCard}; diff --git a/src/controllers/lock-controller.ts b/src/controllers/lock-controller.ts index 84ef3eb..e3eaf28 100644 --- a/src/controllers/lock-controller.ts +++ b/src/controllers/lock-controller.ts @@ -5,6 +5,7 @@ export class LockController extends Controller { _min = 0; _max = 1; _targetValue; + _invert = false; get _value(): number { return !STATES_OFF.includes(this.stateObj.state)