extra-map-card 1.4.2 β 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extra-map-card-bundle.js +5 -5
- package/dist/index.js +4 -4
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function e(e,t,i,r){var n,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,r);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(o<3?n(a):o>3?n(t,i,a):n(t,i))||a);return o>3&&a&&Object.defineProperty(t,i,a),a}console.groupCollapsed("%cπ EXTRA-MAP-CARD πΊοΈ%cv1.
|
|
1
|
+
function e(e,t,i,r){var n,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,r);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(o<3?n(a):o>3?n(t,i,a):n(t,i))||a);return o>3&&a&&Object.defineProperty(t,i,a),a}console.groupCollapsed("%cπ EXTRA-MAP-CARD πΊοΈ%cv1.5.0","background-color: #434347;color: #fff;padding: 2px 4px;border: 1px solid #434347;border-radius: 2px 0 0 2px;font-family: Roboto,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)","background-color: transparent;color: #434347;padding: 2px 3px;border: 1px solid #434347; border-radius: 0 2px 2px 0;font-family: Roboto,Verdana,Geneva,sans-serif"),console.info("Lovelace custom map card for Home Assistant"),console.info("Github: git+https://github.com/ngocjohn/extra-map-card.git"),console.info("If you like the card, consider supporting the developer: https://github.com/sponsors/ngocjohn"),console.groupEnd(),"function"==typeof SuppressedError&&SuppressedError;const t=(e,t)=>e&&e.config.components.includes(t);function i(){let e=document.querySelector("home-assistant");if(e=e&&e.shadowRoot,e=e&&e.querySelector("home-assistant-main"),e=e&&e.shadowRoot,e=e&&e.querySelector("app-drawer-layout partial-panel-resolver, ha-drawer partial-panel-resolver"),e=e&&e.shadowRoot||e,e=e&&e.querySelector("ha-panel-lovelace"),e=e&&e.shadowRoot,e=e&&e.querySelector("hui-root"),e){const t=e.lovelace;return t.current_view=e.___curView,t}return null}const r=e=>{let t=e;for(;t;){if("HUI-CARD-OPTIONS"===t.tagName)return t;t=t.parentNode}return t};function n(e){const t=i();return t?(t.setEditMode(!0),new Promise((i=>{setTimeout((()=>{const n=r(e.parentNode);if(!n)return t.setEditMode(!1),void i(null);const o=n.__path,a=`${n.lovelace.urlPath}-${o.join("-")}`;t.setEditMode(!1),i(a)}),100)}))):Promise.reject("Lovelace not found")}const o=e=>2===e.length?{viewIndex:e[0],cardIndex:e[1]}:{viewIndex:e[0],sectionIndex:e[1],cardIndex:e[2]},a=e=>1===e.length?{viewIndex:e[0]}:{viewIndex:e[0],sectionIndex:e[1]},s=e=>e.slice(0,-1),l=(e,t)=>{var i;const{viewIndex:r,sectionIndex:n}=a(t),o=e.views[r];if(!o)throw new Error("View does not exist");if(void 0===n)return o;if(g(o))throw new Error("Can not find section in a strategy view");const s=null===(i=o.sections)||void 0===i?void 0:i[n];if(!s)throw new Error("Section does not exist");return s},c=(e,t)=>{var i;const{viewIndex:r,sectionIndex:n}=a(t),o=e.views[r];if(!o)throw new Error("View does not exist");if(g(o))throw new Error("Can not find cards in a strategy view");if(void 0===n)return o.cards;const s=null===(i=o.sections)||void 0===i?void 0:i[n];if(!s)throw new Error("Section does not exist");if(y(s))throw new Error("Can not find cards in a strategy section");return s.cards},u=(e,t,i)=>{const{viewIndex:r,sectionIndex:n}=a(t);let o=!1;const s=e.views.map(((e,t)=>{if(t!==r)return e;if(void 0===n)return o=!0,i;if(g(e))throw new Error("Can not update section in a strategy view");if(void 0===e.sections)throw new Error("Section does not exist");const a=e.sections.map(((e,t)=>t!==n?e:(o=!0,i)));return Object.assign(Object.assign({},e),{sections:a})}));if(!o)throw new Error("Can not update cards in a non-existing view/section");return Object.assign(Object.assign({},e),{views:s})},h=(e,t,i)=>{const{viewIndex:r,sectionIndex:n}=a(t);let o=!1;const s=e.views.map(((e,t)=>{if(t!==r)return e;if(g(e))throw new Error("Can not update cards in a strategy view");if(void 0===n)return o=!0,Object.assign(Object.assign({},e),{cards:i});if(void 0===e.sections)throw new Error("Section does not exist");const a=e.sections.map(((e,t)=>{if(t!==n)return e;if(y(e))throw new Error("Can not update cards in a strategy section");return o=!0,Object.assign(Object.assign({},e),{cards:i})}));return Object.assign(Object.assign({},e),{sections:a})}));if(!o)throw new Error("Can not update cards in a non-existing view/section");return Object.assign(Object.assign({},e),{views:s})};function p(e){return"strategy"in e}const d=(e,t,i)=>e.sendMessagePromise({type:"lovelace/config",url_path:t,force:i}),f=(e,t,i)=>e.callWS({type:"lovelace/config/save",url_path:t,config:i}),m=(e,t)=>e.callWS({type:"lovelace/config/delete",url_path:t});function g(e){return"strategy"in e}function y(e){return"strategy"in e}const _=e=>"string"==typeof e?{type:"entity",entity:e,show_name:!0}:"type"in e&&e.type?e:Object.assign({type:"entity"},e),v=e=>e.sendMessagePromise({type:"lovelace/resources"}),b=(e,t)=>e.callWS(Object.assign({type:"lovelace/resources/create"},t)),x=(e,t,i)=>e.callWS(Object.assign({type:"lovelace/resources/update",resource_id:t},i)),w=(e,t)=>e.callWS({type:"lovelace/resources/delete",resource_id:t}),C=(e,t,i,r)=>{r=r||{},i=null==i?{}:i;const n=new Event(t,{bubbles:void 0===r.bubbles||r.bubbles,cancelable:Boolean(r.cancelable),composed:void 0===r.composed||r.composed});return n.detail=i,e.dispatchEvent(n),n},T=(e,t,i)=>e.subscribeMessage((e=>t(e)),Object.assign({type:"render_template"},i));var A,S;!function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(A||(A={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(S||(S={}));var M=function(e){if(e.time_format===S.language||e.time_format===S.system){var t=e.time_format===S.language?e.language:void 0,i=(new Date).toLocaleString(t);return i.includes("AM")||i.includes("PM")}return e.time_format===S.am_pm},E=function(e,t){return P(t).format(e)},P=function(e){return new Intl.DateTimeFormat(e.language,{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"2-digit",hour12:M(e)})},I=function(e,t){return k(t).format(e)},k=function(e){return new Intl.DateTimeFormat(e.language,{hour:M(e)?"numeric":"2-digit",minute:"2-digit",second:"2-digit",hour12:M(e)})};function z(e){return e.substr(0,e.indexOf("."))}function L(e){return z(e.entity_id)}const D=["climate","humidifier","input_datetime","thermostat","water_heater","person","device_tracker"];class F{constructor(e,t){this.hass=e,this.hoursToShow=t,this.combinedHistory={}}processMessage(e){if(!this.combinedHistory||!Object.keys(this.combinedHistory).length)return this.combinedHistory=e.states,this.combinedHistory;if(!Object.keys(e.states).length)return this.combinedHistory;const t=this.hoursToShow?((new Date).getTime()-3600*this.hoursToShow*1e3)/1e3:void 0,i={};for(const e of Object.keys(this.combinedHistory))i[e]=[];for(const t of Object.keys(e.states))i[t]=[];for(const r of Object.keys(i)){if(r in this.combinedHistory&&r in e.states){const t=this.combinedHistory[r],n=t[t.length-1];i[r]=t.concat(e.states[r]),e.states[r][0].lu<n.lu&&(i[r]=i[r].sort(((e,t)=>e.lu-t.lu)))}else r in this.combinedHistory?i[r]=this.combinedHistory[r]:i[r]=e.states[r];if(t&&r in this.combinedHistory){const e=i[r].filter((e=>e.lu<t));if(!e.length)continue;if(i[r]=i[r].filter((e=>e.lu>=t)),i[r].length&&i[r][0].lu===t)continue;const n=e[e.length-1];n.lu=t,i[r].unshift(n)}}return this.combinedHistory=i,this.combinedHistory}}const R=(e,t)=>!e.states[t]||D.includes(z(t)),B=(e,t,i,r)=>{const n={type:"history/history_during_period",start_time:t.toISOString(),end_time:i.toISOString(),minimal_response:!0,no_attributes:!r.some((t=>R(e,t)))};return 0!==r.length?e.callWS(Object.assign(Object.assign({},n),{entity_ids:r})):e.callWS(n)},O=(e,t,i,r,n,o=!0,a=!0)=>{const s={type:"history/stream",entity_ids:r,start_time:new Date((new Date).getTime()-3600*i*1e3).toISOString(),minimal_response:o,significant_changes_only:a,no_attributes:null!=n?n:!r.some((t=>R(e,t)))},l=new F(e,i);return e.connection.subscribeMessage((e=>t(l.processMessage(e))),s)},j=(e,t,i,r,n)=>{const o={type:"history/stream",entity_ids:n,start_time:i.toISOString(),end_time:r.toISOString(),minimal_response:!1,no_attributes:!1,significant_changes_only:!1},a=new F(e);return e.connection.subscribeMessage((e=>t(a.processMessage(e))),o)},$=globalThis,N=$.ShadowRoot&&(void 0===$.ShadyCSS||$.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,V=Symbol(),U=new WeakMap;let q=class{constructor(e,t,i){if(this._$cssResult$=!0,i!==V)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(N&&void 0===e){const i=void 0!==t&&1===t.length;i&&(e=U.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),i&&U.set(t,e))}return e}toString(){return this.cssText}};const Z=e=>new q("string"==typeof e?e:e+"",void 0,V),G=(e,...t)=>{const i=1===e.length?e[0]:t.reduce(((t,i,r)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+e[r+1]),e[0]);return new q(i,e,V)},H=(e,t)=>{if(N)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const i of t){const t=document.createElement("style"),r=$.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=i.cssText,e.appendChild(t)}},W=N?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const i of e.cssRules)t+=i.cssText;return Z(t)})(e):e
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2017 Google LLC
|
|
@@ -221,7 +221,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
221
221
|
font-weight: 300;
|
|
222
222
|
font-size: 16px;
|
|
223
223
|
max-width: calc(100% - 80px);
|
|
224
|
-
}`,Wh=6371008.8,Kh={centimeters:100*Wh,centimetres:100*Wh,degrees:360/(2*Math.PI),feet:3.28084*Wh,inches:39.37*Wh,kilometers:Wh/1e3,kilometres:Wh/1e3,meters:Wh,metres:Wh,miles:Wh/1609.344,millimeters:1e3*Wh,millimetres:1e3*Wh,nauticalmiles:Wh/1852,radians:1,yards:1.0936*Wh};function Xh(e,t,i={}){const r={type:"Feature"};return(0===i.id||i.id)&&(r.id=i.id),i.bbox&&(r.bbox=i.bbox),r.properties=t||{},r.geometry=e,r}function Yh(e,t,i={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!ip(e[0])||!ip(e[1]))throw new Error("coordinates must contain numbers");return Xh({type:"Point",coordinates:e},t,i)}function Jh(e,t,i={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return Xh({type:"Polygon",coordinates:e},t,i)}function Qh(e,t="kilometers"){const i=Kh[t];if(!i)throw new Error(t+" units is invalid");return e/i}function ep(e){return 180*(e%(2*Math.PI))/Math.PI}function tp(e){return e%360*Math.PI/180}function ip(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function rp(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function np(e,t,i,r={}){const n=rp(e),o=tp(n[0]),a=tp(n[1]),s=tp(i),l=Qh(t,r.units),c=Math.asin(Math.sin(a)*Math.cos(l)+Math.cos(a)*Math.sin(l)*Math.cos(s));return Yh([ep(o+Math.atan2(Math.sin(s)*Math.sin(l)*Math.cos(a),Math.cos(l)-Math.sin(a)*Math.sin(c))),ep(c)],r.properties)}function op(e,t,i={}){const r=i.steps||64,n=i.properties?i.properties:!Array.isArray(e)&&"Feature"===e.type&&e.properties?e.properties:{},o=[];for(let n=0;n<r;n++)o.push(np(e,t,-360*n/r,i).geometry.coordinates);return o.push(o[0]),Jh([o],n)}var ap="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",sp="M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z",lp="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z",cp="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",up="1.4.2";const hp=up,pp=[{name:"Navigation and city exploration",selector:{select:{options:["STREETS","STREETS.DARK","STREETS.LIGHT","STREETS.PASTEL"]}}},{name:"Data visualization",selector:{select:{options:["DATAVIZ","DATAVIZ.DARK","DATAVIZ.LIGHT"]}}},{name:"Minimalist and general purpose",selector:{select:{options:["BASIC","BASIC.DARK","BASIC.LIGHT"]}}},{name:"High contrast navigation",selector:{select:{options:["BRIGHT","BRIGHT.DARK","BRIGHT.LIGHT","BRIGHT.PASTEL"]}}},{name:"Topographic study",selector:{select:{options:["TOPO","TOPO.SHINY","TOPO.PASTEL","TOPO.TOPOGRAPHIQUE"]}}},{name:"Minimalist",selector:{select:{options:["VOYAGER","VOYAGER.DARK","VOYAGER.LIGHT","VOYAGER.VINTAGE"]}}},{name:"High contrast",selector:{select:{options:["TONER","TONER.BACKGROUND","TONER.LITE","TONER.LINES"]}}},{name:"Neutral greyscale style with hillshading",selector:{select:{options:["BACKDROP","BACKDROP.DARK","BACKDROP.LIGHT"]}}},{name:"Other",selector:{select:{options:["OPENSTREETMAP","OUTDOOR","WINTER","SATELLITE","HYBRID"]}}}],dp=["STREETS","BASIC","BRIGHT","DATAVIZ","VOYAGER","BACKDROP"],fp=()=>pp.reduce(((e,t)=>{const i=t.selector.select.options;return e.concat(i.map((e=>({value:e,label:e}))))}),[]),mp=fp(),gp=0,yp=13,_p=["auto","light","dark"],vp=[{name:"aspect_ratio",label:"Aspect Ratio",selector:{text:{}}},{name:"default_zoom",label:"Default Zoom",default:yp,selector:{number:{mode:"box",min:0}}},{name:"theme_mode",label:"Theme Mode",default:"auto",selector:{select:{mode:"dropdown",options:_p.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"hours_to_show",label:"Hours to Show",default:0,selector:{number:{mode:"box",min:0}}},{name:"history_period",label:"History Period",default:"",selector:{select:{mode:"dropdown",options:[{value:"today",label:"Today"},{value:"yesterday",label:"Yesterday"}]}}},{name:"auto_fit",label:"Auto Fit",default:!1,selector:{boolean:{}}},{name:"fit_zones",label:"Fit Zones",default:!1,selector:{boolean:{}}},{name:"use_more_info",label:"Marker more info",default:!1,selector:{boolean:{}}}],bp={name:"custom_styles",type:"expandable",iconPath:lp,title:"Custom Styles",schema:[{name:"",type:"grid",schema:[{name:"light",label:"Light Style",selector:{select:{mode:"dropdown",options:mp}}},{name:"dark",label:"Dark Style",selector:{select:{mode:"dropdown",options:mp}}}]}]},xp=lt((e=>[{name:"",type:"expandable",iconPath:lp,title:e("ui.panel.lovelace.editor.card.map.appearance"),schema:[{name:"",type:"grid",schema:[...vp]},bp]}])),wp=lt((()=>[{name:"title",label:"Title",selector:{text:{type:"text"}}},{name:"api_key",label:"MapTiler API Key (required)",required:!0,selector:{text:{type:"text"}}}])),Cp=lt((e=>[...wp(),...xp(e)])),Tp=Symbol.for("constructDateFrom");function Ap(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&Tp in e?e[Tp](t):e instanceof Date?new e.constructor(t):new Date(t)}function Sp(e,t){return Ap(e,e)}function Mp(e,...t){const i=Ap.bind(null,t.find((e=>"object"==typeof e)));return t.map(i)}function Ep(e,t){const i=Sp(e);return i.setHours(0,0,0,0),i}function Pp(e){return Ap(e,Date.now())}function Ip(e,t,i){const[r,n]=Mp(i?.in,e,t);return+Ep(r)==+Ep(n)}function kp(e,t){return Ip(Ap(e,e),Pp(e))}const zp=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Lp=1,Dp=8;class Fp{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,i]=new Uint8Array(e,0,2);if(219!==t)throw new Error("Data does not appear to be in a KDBush format.");const r=i>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const n=zp[15&i];if(!n)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(e,2,1),[a]=new Uint32Array(e,4,1);return new Fp(a,o,n,e)}constructor(e,t=64,i=Float64Array,r){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=i,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const n=zp.indexOf(this.ArrayType),o=2*e*this.ArrayType.BYTES_PER_ELEMENT,a=e*this.IndexArrayType.BYTES_PER_ELEMENT,s=(8-a%8)%8;if(n<0)throw new Error(`Unexpected typed array class: ${i}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+o+a+s),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+n]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=e,this.coords[this._pos++]=t,i}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Rp(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,i,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:o,nodeSize:a}=this,s=[0,n.length-1,0],l=[];for(;s.length;){const c=s.pop()||0,u=s.pop()||0,h=s.pop()||0;if(u-h<=a){for(let a=h;a<=u;a++){const s=o[2*a],c=o[2*a+1];s>=e&&s<=i&&c>=t&&c<=r&&l.push(n[a])}continue}const p=h+u>>1,d=o[2*p],f=o[2*p+1];d>=e&&d<=i&&f>=t&&f<=r&&l.push(n[p]),(0===c?e<=d:t<=f)&&(s.push(h),s.push(p-1),s.push(1-c)),(0===c?i>=d:r>=f)&&(s.push(p+1),s.push(u),s.push(1-c))}return l}within(e,t,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:n,nodeSize:o}=this,a=[0,r.length-1,0],s=[],l=i*i;for(;a.length;){const c=a.pop()||0,u=a.pop()||0,h=a.pop()||0;if(u-h<=o){for(let i=h;i<=u;i++)$p(n[2*i],n[2*i+1],e,t)<=l&&s.push(r[i]);continue}const p=h+u>>1,d=n[2*p],f=n[2*p+1];$p(d,f,e,t)<=l&&s.push(r[p]),(0===c?e-i<=d:t-i<=f)&&(a.push(h),a.push(p-1),a.push(1-c)),(0===c?e+i>=d:t+i>=f)&&(a.push(p+1),a.push(u),a.push(1-c))}return s}}function Rp(e,t,i,r,n,o){if(n-r<=i)return;const a=r+n>>1;Bp(e,t,a,r,n,o),Rp(e,t,i,r,a-1,1-o),Rp(e,t,i,a+1,n,1-o)}function Bp(e,t,i,r,n,o){for(;n>r;){if(n-r>600){const a=n-r+1,s=i-r+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(s-a/2<0?-1:1);Bp(e,t,i,Math.max(r,Math.floor(i-s*c/a+u)),Math.min(n,Math.floor(i+(a-s)*c/a+u)),o)}const a=t[2*i+o];let s=r,l=n;for(Op(e,t,r,i),t[2*n+o]>a&&Op(e,t,r,n);s<l;){for(Op(e,t,s,l),s++,l--;t[2*s+o]<a;)s++;for(;t[2*l+o]>a;)l--}t[2*r+o]===a?Op(e,t,r,l):(l++,Op(e,t,l,n)),l<=i&&(r=l+1),i<=l&&(n=l-1)}}function Op(e,t,i,r){jp(e,i,r),jp(t,2*i,2*r),jp(t,2*i+1,2*r+1)}function jp(e,t,i){const r=e[t];e[t]=e[i],e[i]=r}function $p(e,t,i,r){const n=e-i,o=t-r;return n*n+o*o}const Np={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},Vp=Math.fround||(e=>t=>(e[0]=+t,e[0]))(new Float32Array(1)),Up=2,qp=3,Zp=4,Gp=5,Hp=6;class Wp{constructor(e){this.options=Object.assign(Object.create(Np),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:i,maxZoom:r}=this.options;t&&console.time("total time");const n=`prepare ${e.length} points`;t&&console.time(n),this.points=e;const o=[];for(let t=0;t<e.length;t++){const i=e[t];if(!i.geometry)continue;const[r,n]=i.geometry.coordinates,a=Vp(Yp(r)),s=Vp(Jp(n));o.push(a,s,1/0,t,-1,1),this.options.reduce&&o.push(0)}let a=this.trees[r+1]=this._createTree(o);t&&console.timeEnd(n);for(let e=r;e>=i;e--){Date.now();a=this.trees[e]=this._createTree(this._cluster(a,e))}return t&&console.timeEnd("total time"),this}getClusters(e,t){let i=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let n=180===e[2]?180:((e[2]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)i=-180,n=180;else if(i>n){const e=this.getClusters([i,r,180,o],t),a=this.getClusters([-180,r,n,o],t);return e.concat(a)}const a=this.trees[this._limitZoom(t)],s=a.range(Yp(i),Jp(o),Yp(n),Jp(r)),l=a.data,c=[];for(const e of s){const t=this.stride*e;c.push(l[t+5]>1?Kp(l,t,this.clusterProps):this.points[l[t+3]])}return c}getChildren(e){const t=this._getOriginId(e),i=this._getOriginZoom(e),r="No cluster with the specified id.",n=this.trees[i];if(!n)throw new Error(r);const o=n.data;if(t*this.stride>=o.length)throw new Error(r);const a=this.options.radius/(this.options.extent*Math.pow(2,i-1)),s=o[t*this.stride],l=o[t*this.stride+1],c=n.within(s,l,a),u=[];for(const t of c){const i=t*this.stride;o[i+4]===e&&u.push(o[i+5]>1?Kp(o,i,this.clusterProps):this.points[o[i+3]])}if(0===u.length)throw new Error(r);return u}getLeaves(e,t,i){t=t||10,i=i||0;const r=[];return this._appendLeaves(r,e,t,i,0),r}getTile(e,t,i){const r=this.trees[this._limitZoom(e)],n=Math.pow(2,e),{extent:o,radius:a}=this.options,s=a/o,l=(i-s)/n,c=(i+1+s)/n,u={features:[]};return this._addTileFeatures(r.range((t-s)/n,l,(t+1+s)/n,c),r.data,t,i,n,u),0===t&&this._addTileFeatures(r.range(1-s/n,l,1,c),r.data,n,i,n,u),t===n-1&&this._addTileFeatures(r.range(0,l,s/n,c),r.data,-1,i,n,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const i=this.getChildren(e);if(t++,1!==i.length)break;e=i[0].properties.cluster_id}return t}_appendLeaves(e,t,i,r,n){const o=this.getChildren(t);for(const t of o){const o=t.properties;if(o&&o.cluster?n+o.point_count<=r?n+=o.point_count:n=this._appendLeaves(e,o.cluster_id,i,r,n):n<r?n++:e.push(t),e.length===i)break}return n}_createTree(e){const t=new Fp(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let i=0;i<e.length;i+=this.stride)t.add(e[i],e[i+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,i,r,n,o){for(const a of e){const e=a*this.stride,s=t[e+5]>1;let l,c,u;if(s)l=Xp(t,e,this.clusterProps),c=t[e],u=t[e+1];else{const i=this.points[t[e+3]];l=i.properties;const[r,n]=i.geometry.coordinates;c=Yp(r),u=Jp(n)}const h={type:1,geometry:[[Math.round(this.options.extent*(c*n-i)),Math.round(this.options.extent*(u*n-r))]],tags:l};let p;p=s||this.options.generateId?t[e+3]:this.points[t[e+3]].id,void 0!==p&&(h.id=p),o.features.push(h)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:i,extent:r,reduce:n,minPoints:o}=this.options,a=i/(r*Math.pow(2,t)),s=e.data,l=[],c=this.stride;for(let i=0;i<s.length;i+=c){if(s[i+2]<=t)continue;s[i+2]=t;const r=s[i],u=s[i+1],h=e.within(s[i],s[i+1],a),p=s[i+5];let d=p;for(const e of h){const i=e*c;s[i+2]>t&&(d+=s[i+5])}if(d>p&&d>=o){let e,o=r*p,a=u*p,f=-1;const m=(i/c<<5)+(t+1)+this.points.length;for(const r of h){const l=r*c;if(s[l+2]<=t)continue;s[l+2]=t;const u=s[l+5];o+=s[l]*u,a+=s[l+1]*u,s[l+4]=m,n&&(e||(e=this._map(s,i,!0),f=this.clusterProps.length,this.clusterProps.push(e)),n(e,this._map(s,l)))}s[i+4]=m,l.push(o/d,a/d,1/0,m,-1,d),n&&l.push(f)}else{for(let e=0;e<c;e++)l.push(s[i+e]);if(d>1)for(const e of h){const i=e*c;if(!(s[i+2]<=t)){s[i+2]=t;for(let e=0;e<c;e++)l.push(s[i+e])}}}}return l}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,i){if(e[t+5]>1){const r=this.clusterProps[e[t+6]];return i?Object.assign({},r):r}const r=this.points[e[t+3]].properties,n=this.options.map(r);return i&&n===r?Object.assign({},n):n}}function Kp(e,t,i){return{type:"Feature",id:e[t+3],properties:Xp(e,t,i),geometry:{type:"Point",coordinates:[Qp(e[t]),ed(e[t+1])]}}}function Xp(e,t,i){const r=e[t+5],n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,o=e[t+6],a=-1===o?{}:Object.assign({},i[o]);return Object.assign(a,{cluster:!0,cluster_id:e[t+3],point_count:r,point_count_abbreviated:n})}function Yp(e){return e/360+.5}function Jp(e){const t=Math.sin(e*Math.PI/180),i=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return i<0?0:i>1?1:i}function Qp(e){return 360*(e-.5)}function ed(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}var td,id,rd,nd,od,ad,sd,ld;!function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(td||(td={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(id||(id={})),function(e){e.local="local",e.server="server"}(rd||(rd={})),function(e){e.language="language",e.system="system",e.DMY="DMY",e.MDY="MDY",e.YMD="YMD"}(nd||(nd={})),function(e){e.language="language",e.monday="monday",e.tuesday="tuesday",e.wednesday="wednesday",e.thursday="thursday",e.friday="friday",e.saturday="saturday",e.sunday="sunday"}(od||(od={}));const cd=e=>"string"==typeof e?e:e.entity_id,ud=lt((async(e,t,i)=>{const r={address:"streetName",locality:"sublocality",municipality:"city"},n=`https://api.maptiler.com/geocoding/${t},${e}.json?key=${i}`;try{const e=await fetch(n);if(!e.ok)throw new Error("Failed to fetch address from MapTiler");const t=await e.json();if(t&&t.features&&t.features.length>0){let e={};if(t.features.forEach((t=>{const i=t.place_type[0];if(r[i]){const n=r[i],o=t.text;"address"===i&&(e.streetNumber=t.address?`${t.address}`:""),e[n]=`${o}`}})),e.streetName&&e.city)return e}return null}catch(e){return console.warn("Error fetching address from MapTiler:",e),null}})),hd=null===(ld=null===(ad=Intl.DateTimeFormat)||void 0===ad?void 0:(sd=ad.call(Intl)).resolvedOptions)||void 0===ld?void 0:ld.call(sd).timeZone,pd=null!=hd?hd:"UTC",dd=(e,t)=>e===rd.local&&hd?pd:t,fd=lt((e=>{if(e.time_format===id.language||e.time_format===id.system){const t=e.time_format===id.language?e.language:void 0;return new Date("January 1, 2023 22:00:00").toLocaleString(t).includes("10")}return e.time_format===id.am_pm})),md=(e,t,i)=>gd(t,i.time_zone).format(e),gd=lt(((e,t)=>new Intl.DateTimeFormat(e.language,{weekday:"long",hour:fd(e)?"numeric":"2-digit",minute:"2-digit",hour12:fd(e),timeZone:dd(e.time_zone,t)}))),yd={ATTRIBUTE:1,CHILD:2},_d=e=>(...t)=>({_$litDirective$:e,values:t});let vd=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};
|
|
224
|
+
}`,Wh=6371008.8,Kh={centimeters:100*Wh,centimetres:100*Wh,degrees:360/(2*Math.PI),feet:3.28084*Wh,inches:39.37*Wh,kilometers:Wh/1e3,kilometres:Wh/1e3,meters:Wh,metres:Wh,miles:Wh/1609.344,millimeters:1e3*Wh,millimetres:1e3*Wh,nauticalmiles:Wh/1852,radians:1,yards:1.0936*Wh};function Xh(e,t,i={}){const r={type:"Feature"};return(0===i.id||i.id)&&(r.id=i.id),i.bbox&&(r.bbox=i.bbox),r.properties=t||{},r.geometry=e,r}function Yh(e,t,i={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!ip(e[0])||!ip(e[1]))throw new Error("coordinates must contain numbers");return Xh({type:"Point",coordinates:e},t,i)}function Jh(e,t,i={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return Xh({type:"Polygon",coordinates:e},t,i)}function Qh(e,t="kilometers"){const i=Kh[t];if(!i)throw new Error(t+" units is invalid");return e/i}function ep(e){return 180*(e%(2*Math.PI))/Math.PI}function tp(e){return e%360*Math.PI/180}function ip(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function rp(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function np(e,t,i,r={}){const n=rp(e),o=tp(n[0]),a=tp(n[1]),s=tp(i),l=Qh(t,r.units),c=Math.asin(Math.sin(a)*Math.cos(l)+Math.cos(a)*Math.sin(l)*Math.cos(s));return Yh([ep(o+Math.atan2(Math.sin(s)*Math.sin(l)*Math.cos(a),Math.cos(l)-Math.sin(a)*Math.sin(c))),ep(c)],r.properties)}function op(e,t,i={}){const r=i.steps||64,n=i.properties?i.properties:!Array.isArray(e)&&"Feature"===e.type&&e.properties?e.properties:{},o=[];for(let n=0;n<r;n++)o.push(np(e,t,-360*n/r,i).geometry.coordinates);return o.push(o[0]),Jh([o],n)}var ap="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",sp="M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z",lp="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z",cp="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",up="1.5.0";const hp=up,pp=[{name:"Navigation and city exploration",selector:{select:{options:["STREETS","STREETS.DARK","STREETS.LIGHT","STREETS.PASTEL"]}}},{name:"Data visualization",selector:{select:{options:["DATAVIZ","DATAVIZ.DARK","DATAVIZ.LIGHT"]}}},{name:"Minimalist and general purpose",selector:{select:{options:["BASIC","BASIC.DARK","BASIC.LIGHT"]}}},{name:"High contrast navigation",selector:{select:{options:["BRIGHT","BRIGHT.DARK","BRIGHT.LIGHT","BRIGHT.PASTEL"]}}},{name:"Topographic study",selector:{select:{options:["TOPO","TOPO.SHINY","TOPO.PASTEL","TOPO.TOPOGRAPHIQUE"]}}},{name:"Minimalist",selector:{select:{options:["VOYAGER","VOYAGER.DARK","VOYAGER.LIGHT","VOYAGER.VINTAGE"]}}},{name:"High contrast",selector:{select:{options:["TONER","TONER.BACKGROUND","TONER.LITE","TONER.LINES"]}}},{name:"Neutral greyscale style with hillshading",selector:{select:{options:["BACKDROP","BACKDROP.DARK","BACKDROP.LIGHT"]}}},{name:"Other",selector:{select:{options:["OPENSTREETMAP","OUTDOOR","WINTER","SATELLITE","HYBRID"]}}}],dp=["STREETS","BASIC","BRIGHT","DATAVIZ","VOYAGER","BACKDROP"],fp=()=>pp.reduce(((e,t)=>{const i=t.selector.select.options;return e.concat(i.map((e=>({value:e,label:e}))))}),[]),mp=fp(),gp=0,yp=13,_p=["auto","light","dark"],vp=[{name:"aspect_ratio",label:"Aspect Ratio",selector:{text:{}}},{name:"default_zoom",label:"Default Zoom",default:yp,selector:{number:{mode:"box",min:0}}},{name:"theme_mode",label:"Theme Mode",default:"auto",selector:{select:{mode:"dropdown",options:_p.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"hours_to_show",label:"Hours to Show",default:0,selector:{number:{mode:"box",min:0}}},{name:"history_period",label:"History Period",default:"",selector:{select:{mode:"dropdown",options:[{value:"today",label:"Today"},{value:"yesterday",label:"Yesterday"}]}}},{name:"auto_fit",label:"Auto Fit",default:!1,selector:{boolean:{}}},{name:"fit_zones",label:"Fit Zones",default:!1,selector:{boolean:{}}},{name:"use_more_info",label:"Marker more info",default:!1,selector:{boolean:{}}}],bp={name:"custom_styles",type:"expandable",iconPath:lp,title:"Custom Styles",schema:[{name:"",type:"grid",schema:[{name:"light",label:"Light Style",selector:{select:{mode:"dropdown",options:mp}}},{name:"dark",label:"Dark Style",selector:{select:{mode:"dropdown",options:mp}}}]}]},xp=lt((e=>[{name:"",type:"expandable",iconPath:lp,title:e("ui.panel.lovelace.editor.card.map.appearance"),schema:[{name:"",type:"grid",schema:[...vp]},bp]}])),wp=lt((()=>[{name:"title",label:"Title",selector:{text:{type:"text"}}},{name:"api_key",label:"MapTiler API Key (required)",required:!0,selector:{text:{type:"text"}}}])),Cp=lt((e=>[...wp(),...xp(e)])),Tp=Symbol.for("constructDateFrom");function Ap(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&Tp in e?e[Tp](t):e instanceof Date?new e.constructor(t):new Date(t)}function Sp(e,t){return Ap(e,e)}function Mp(e,...t){const i=Ap.bind(null,t.find((e=>"object"==typeof e)));return t.map(i)}function Ep(e,t){const i=Sp(e);return i.setHours(0,0,0,0),i}function Pp(e){return Ap(e,Date.now())}function Ip(e,t,i){const[r,n]=Mp(i?.in,e,t);return+Ep(r)==+Ep(n)}function kp(e,t){return Ip(Ap(e,e),Pp(e))}const zp=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Lp=1,Dp=8;class Fp{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,i]=new Uint8Array(e,0,2);if(219!==t)throw new Error("Data does not appear to be in a KDBush format.");const r=i>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const n=zp[15&i];if(!n)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(e,2,1),[a]=new Uint32Array(e,4,1);return new Fp(a,o,n,e)}constructor(e,t=64,i=Float64Array,r){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=i,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const n=zp.indexOf(this.ArrayType),o=2*e*this.ArrayType.BYTES_PER_ELEMENT,a=e*this.IndexArrayType.BYTES_PER_ELEMENT,s=(8-a%8)%8;if(n<0)throw new Error(`Unexpected typed array class: ${i}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+o+a+s),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+n]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=e,this.coords[this._pos++]=t,i}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Rp(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,i,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:o,nodeSize:a}=this,s=[0,n.length-1,0],l=[];for(;s.length;){const c=s.pop()||0,u=s.pop()||0,h=s.pop()||0;if(u-h<=a){for(let a=h;a<=u;a++){const s=o[2*a],c=o[2*a+1];s>=e&&s<=i&&c>=t&&c<=r&&l.push(n[a])}continue}const p=h+u>>1,d=o[2*p],f=o[2*p+1];d>=e&&d<=i&&f>=t&&f<=r&&l.push(n[p]),(0===c?e<=d:t<=f)&&(s.push(h),s.push(p-1),s.push(1-c)),(0===c?i>=d:r>=f)&&(s.push(p+1),s.push(u),s.push(1-c))}return l}within(e,t,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:n,nodeSize:o}=this,a=[0,r.length-1,0],s=[],l=i*i;for(;a.length;){const c=a.pop()||0,u=a.pop()||0,h=a.pop()||0;if(u-h<=o){for(let i=h;i<=u;i++)$p(n[2*i],n[2*i+1],e,t)<=l&&s.push(r[i]);continue}const p=h+u>>1,d=n[2*p],f=n[2*p+1];$p(d,f,e,t)<=l&&s.push(r[p]),(0===c?e-i<=d:t-i<=f)&&(a.push(h),a.push(p-1),a.push(1-c)),(0===c?e+i>=d:t+i>=f)&&(a.push(p+1),a.push(u),a.push(1-c))}return s}}function Rp(e,t,i,r,n,o){if(n-r<=i)return;const a=r+n>>1;Bp(e,t,a,r,n,o),Rp(e,t,i,r,a-1,1-o),Rp(e,t,i,a+1,n,1-o)}function Bp(e,t,i,r,n,o){for(;n>r;){if(n-r>600){const a=n-r+1,s=i-r+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(s-a/2<0?-1:1);Bp(e,t,i,Math.max(r,Math.floor(i-s*c/a+u)),Math.min(n,Math.floor(i+(a-s)*c/a+u)),o)}const a=t[2*i+o];let s=r,l=n;for(Op(e,t,r,i),t[2*n+o]>a&&Op(e,t,r,n);s<l;){for(Op(e,t,s,l),s++,l--;t[2*s+o]<a;)s++;for(;t[2*l+o]>a;)l--}t[2*r+o]===a?Op(e,t,r,l):(l++,Op(e,t,l,n)),l<=i&&(r=l+1),i<=l&&(n=l-1)}}function Op(e,t,i,r){jp(e,i,r),jp(t,2*i,2*r),jp(t,2*i+1,2*r+1)}function jp(e,t,i){const r=e[t];e[t]=e[i],e[i]=r}function $p(e,t,i,r){const n=e-i,o=t-r;return n*n+o*o}const Np={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},Vp=Math.fround||(e=>t=>(e[0]=+t,e[0]))(new Float32Array(1)),Up=2,qp=3,Zp=4,Gp=5,Hp=6;class Wp{constructor(e){this.options=Object.assign(Object.create(Np),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:i,maxZoom:r}=this.options;t&&console.time("total time");const n=`prepare ${e.length} points`;t&&console.time(n),this.points=e;const o=[];for(let t=0;t<e.length;t++){const i=e[t];if(!i.geometry)continue;const[r,n]=i.geometry.coordinates,a=Vp(Yp(r)),s=Vp(Jp(n));o.push(a,s,1/0,t,-1,1),this.options.reduce&&o.push(0)}let a=this.trees[r+1]=this._createTree(o);t&&console.timeEnd(n);for(let e=r;e>=i;e--){Date.now();a=this.trees[e]=this._createTree(this._cluster(a,e))}return t&&console.timeEnd("total time"),this}getClusters(e,t){let i=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let n=180===e[2]?180:((e[2]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)i=-180,n=180;else if(i>n){const e=this.getClusters([i,r,180,o],t),a=this.getClusters([-180,r,n,o],t);return e.concat(a)}const a=this.trees[this._limitZoom(t)],s=a.range(Yp(i),Jp(o),Yp(n),Jp(r)),l=a.data,c=[];for(const e of s){const t=this.stride*e;c.push(l[t+5]>1?Kp(l,t,this.clusterProps):this.points[l[t+3]])}return c}getChildren(e){const t=this._getOriginId(e),i=this._getOriginZoom(e),r="No cluster with the specified id.",n=this.trees[i];if(!n)throw new Error(r);const o=n.data;if(t*this.stride>=o.length)throw new Error(r);const a=this.options.radius/(this.options.extent*Math.pow(2,i-1)),s=o[t*this.stride],l=o[t*this.stride+1],c=n.within(s,l,a),u=[];for(const t of c){const i=t*this.stride;o[i+4]===e&&u.push(o[i+5]>1?Kp(o,i,this.clusterProps):this.points[o[i+3]])}if(0===u.length)throw new Error(r);return u}getLeaves(e,t,i){t=t||10,i=i||0;const r=[];return this._appendLeaves(r,e,t,i,0),r}getTile(e,t,i){const r=this.trees[this._limitZoom(e)],n=Math.pow(2,e),{extent:o,radius:a}=this.options,s=a/o,l=(i-s)/n,c=(i+1+s)/n,u={features:[]};return this._addTileFeatures(r.range((t-s)/n,l,(t+1+s)/n,c),r.data,t,i,n,u),0===t&&this._addTileFeatures(r.range(1-s/n,l,1,c),r.data,n,i,n,u),t===n-1&&this._addTileFeatures(r.range(0,l,s/n,c),r.data,-1,i,n,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const i=this.getChildren(e);if(t++,1!==i.length)break;e=i[0].properties.cluster_id}return t}_appendLeaves(e,t,i,r,n){const o=this.getChildren(t);for(const t of o){const o=t.properties;if(o&&o.cluster?n+o.point_count<=r?n+=o.point_count:n=this._appendLeaves(e,o.cluster_id,i,r,n):n<r?n++:e.push(t),e.length===i)break}return n}_createTree(e){const t=new Fp(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let i=0;i<e.length;i+=this.stride)t.add(e[i],e[i+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,i,r,n,o){for(const a of e){const e=a*this.stride,s=t[e+5]>1;let l,c,u;if(s)l=Xp(t,e,this.clusterProps),c=t[e],u=t[e+1];else{const i=this.points[t[e+3]];l=i.properties;const[r,n]=i.geometry.coordinates;c=Yp(r),u=Jp(n)}const h={type:1,geometry:[[Math.round(this.options.extent*(c*n-i)),Math.round(this.options.extent*(u*n-r))]],tags:l};let p;p=s||this.options.generateId?t[e+3]:this.points[t[e+3]].id,void 0!==p&&(h.id=p),o.features.push(h)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:i,extent:r,reduce:n,minPoints:o}=this.options,a=i/(r*Math.pow(2,t)),s=e.data,l=[],c=this.stride;for(let i=0;i<s.length;i+=c){if(s[i+2]<=t)continue;s[i+2]=t;const r=s[i],u=s[i+1],h=e.within(s[i],s[i+1],a),p=s[i+5];let d=p;for(const e of h){const i=e*c;s[i+2]>t&&(d+=s[i+5])}if(d>p&&d>=o){let e,o=r*p,a=u*p,f=-1;const m=(i/c<<5)+(t+1)+this.points.length;for(const r of h){const l=r*c;if(s[l+2]<=t)continue;s[l+2]=t;const u=s[l+5];o+=s[l]*u,a+=s[l+1]*u,s[l+4]=m,n&&(e||(e=this._map(s,i,!0),f=this.clusterProps.length,this.clusterProps.push(e)),n(e,this._map(s,l)))}s[i+4]=m,l.push(o/d,a/d,1/0,m,-1,d),n&&l.push(f)}else{for(let e=0;e<c;e++)l.push(s[i+e]);if(d>1)for(const e of h){const i=e*c;if(!(s[i+2]<=t)){s[i+2]=t;for(let e=0;e<c;e++)l.push(s[i+e])}}}}return l}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,i){if(e[t+5]>1){const r=this.clusterProps[e[t+6]];return i?Object.assign({},r):r}const r=this.points[e[t+3]].properties,n=this.options.map(r);return i&&n===r?Object.assign({},n):n}}function Kp(e,t,i){return{type:"Feature",id:e[t+3],properties:Xp(e,t,i),geometry:{type:"Point",coordinates:[Qp(e[t]),ed(e[t+1])]}}}function Xp(e,t,i){const r=e[t+5],n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,o=e[t+6],a=-1===o?{}:Object.assign({},i[o]);return Object.assign(a,{cluster:!0,cluster_id:e[t+3],point_count:r,point_count_abbreviated:n})}function Yp(e){return e/360+.5}function Jp(e){const t=Math.sin(e*Math.PI/180),i=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return i<0?0:i>1?1:i}function Qp(e){return 360*(e-.5)}function ed(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}var td,id,rd,nd,od,ad,sd,ld;!function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(td||(td={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(id||(id={})),function(e){e.local="local",e.server="server"}(rd||(rd={})),function(e){e.language="language",e.system="system",e.DMY="DMY",e.MDY="MDY",e.YMD="YMD"}(nd||(nd={})),function(e){e.language="language",e.monday="monday",e.tuesday="tuesday",e.wednesday="wednesday",e.thursday="thursday",e.friday="friday",e.saturday="saturday",e.sunday="sunday"}(od||(od={}));const cd=e=>"string"==typeof e?e:e.entity_id,ud=lt((async(e,t,i)=>{const r={address:"streetName",locality:"sublocality",municipality:"city"},n=`https://api.maptiler.com/geocoding/${t},${e}.json?key=${i}`;try{const e=await fetch(n);if(!e.ok)throw new Error("Failed to fetch address from MapTiler");const t=await e.json();if(t&&t.features&&t.features.length>0){let e={};if(t.features.forEach((t=>{const i=t.place_type[0];if(r[i]){const n=r[i],o=t.text;"address"===i&&(e.streetNumber=t.address?`${t.address}`:""),e[n]=`${o}`}})),e.streetName&&e.city)return e}return null}catch(e){return console.warn("Error fetching address from MapTiler:",e),null}})),hd=null===(ld=null===(ad=Intl.DateTimeFormat)||void 0===ad?void 0:(sd=ad.call(Intl)).resolvedOptions)||void 0===ld?void 0:ld.call(sd).timeZone,pd=null!=hd?hd:"UTC",dd=(e,t)=>e===rd.local&&hd?pd:t,fd=lt((e=>{if(e.time_format===id.language||e.time_format===id.system){const t=e.time_format===id.language?e.language:void 0;return new Date("January 1, 2023 22:00:00").toLocaleString(t).includes("10")}return e.time_format===id.am_pm})),md=(e,t,i)=>gd(t,i.time_zone).format(e),gd=lt(((e,t)=>new Intl.DateTimeFormat(e.language,{weekday:"long",hour:fd(e)?"numeric":"2-digit",minute:"2-digit",hour12:fd(e),timeZone:dd(e.time_zone,t)}))),yd={ATTRIBUTE:1,CHILD:2},_d=e=>(...t)=>({_$litDirective$:e,values:t});let vd=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};
|
|
225
225
|
/**
|
|
226
226
|
* @license
|
|
227
227
|
* Copyright 2018 Google LLC
|
|
@@ -516,7 +516,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
516
516
|
font-size: var(--ha-font-size-s);
|
|
517
517
|
color: var(--secondary-text-color);
|
|
518
518
|
}
|
|
519
|
-
`,e([tt({attribute:!1})],Wd.prototype,"hass",void 0),e([tt({attribute:!1})],Wd.prototype,"entities",void 0),e([tt({attribute:!1})],Wd.prototype,"entityFilter",void 0),e([tt()],Wd.prototype,"label",void 0),customElements.define("emc-entity-editor",Wd);var Xd=/^\s+/,Yd=/\s+$/;function Jd(e,t){if(t=t||{},(e=e||"")instanceof Jd)return e;if(!(this instanceof Jd))return new Jd(e,t);var i=Qd(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||i.format,this._gradientType=t.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._ok=i.ok}function Qd(e){var t={r:0,g:0,b:0},i=1,r=null,n=null,o=null,a=!1,s=!1;return"string"==typeof e&&(e=Rf(e)),"object"==Kd(e)&&(Ff(e.r)&&Ff(e.g)&&Ff(e.b)?(t=ef(e.r,e.g,e.b),a=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):Ff(e.h)&&Ff(e.s)&&Ff(e.v)?(r=kf(e.s),n=kf(e.v),t=of(e.h,r,n),a=!0,s="hsv"):Ff(e.h)&&Ff(e.s)&&Ff(e.l)&&(r=kf(e.s),o=kf(e.l),t=rf(e.h,r,o),a=!0,s="hsl"),e.hasOwnProperty("a")&&(i=e.a)),i=Tf(i),{ok:a,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:i}}function ef(e,t,i){return{r:255*Af(e,255),g:255*Af(t,255),b:255*Af(i,255)}}function tf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=(o+a)/2;if(o==a)r=n=0;else{var l=o-a;switch(n=s>.5?l/(2-o-a):l/(o+a),o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,l:s}}function rf(e,t,i){var r,n,o;function a(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}if(e=Af(e,360),t=Af(t,100),i=Af(i,100),0===t)r=n=o=i;else{var s=i<.5?i*(1+t):i+t-i*t,l=2*i-s;r=a(l,s,e+1/3),n=a(l,s,e),o=a(l,s,e-1/3)}return{r:255*r,g:255*n,b:255*o}}function nf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=o,l=o-a;if(n=0===o?0:l/o,o==a)r=0;else{switch(o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,v:s}}function of(e,t,i){e=6*Af(e,360),t=Af(t,100),i=Af(i,100);var r=Math.floor(e),n=e-r,o=i*(1-t),a=i*(1-n*t),s=i*(1-(1-n)*t),l=r%6;return{r:255*[i,a,o,o,s,i][l],g:255*[s,i,i,a,o,o][l],b:255*[o,o,s,i,i,a][l]}}function af(e,t,i,r){var n=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}function sf(e,t,i,r,n){var o=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16)),If(zf(r))];return n&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}function lf(e,t,i,r){return[If(zf(r)),If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))].join("")}function cf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s-=t/100,i.s=Sf(i.s),Jd(i)}function uf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s+=t/100,i.s=Sf(i.s),Jd(i)}function hf(e){return Jd(e).desaturate(100)}function pf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l+=t/100,i.l=Sf(i.l),Jd(i)}function df(e,t){t=0===t?0:t||10;var i=Jd(e).toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-t/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-t/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-t/100*255))),Jd(i)}function ff(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l-=t/100,i.l=Sf(i.l),Jd(i)}function mf(e,t){var i=Jd(e).toHsl(),r=(i.h+t)%360;return i.h=r<0?360+r:r,Jd(i)}function gf(e){var t=Jd(e).toHsl();return t.h=(t.h+180)%360,Jd(t)}function yf(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var i=Jd(e).toHsl(),r=[Jd(e)],n=360/t,o=1;o<t;o++)r.push(Jd({h:(i.h+o*n)%360,s:i.s,l:i.l}));return r}function _f(e){var t=Jd(e).toHsl(),i=t.h;return[Jd(e),Jd({h:(i+72)%360,s:t.s,l:t.l}),Jd({h:(i+216)%360,s:t.s,l:t.l})]}function vf(e,t,i){t=t||6,i=i||30;var r=Jd(e).toHsl(),n=360/i,o=[Jd(e)];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(Jd(r));return o}function bf(e,t){t=t||6;for(var i=Jd(e).toHsv(),r=i.h,n=i.s,o=i.v,a=[],s=1/t;t--;)a.push(Jd({h:r,s:n,v:o})),o=(o+s)%1;return a}Jd.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,i,r=this.toRgb();return e=r.r/255,t=r.g/255,i=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))},setAlpha:function(e){return this._a=Tf(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=nf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=nf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+i+"%, "+r+"%)":"hsva("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=tf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=tf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+i+"%, "+r+"%)":"hsla("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return af(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return sf(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*Af(this._r,255))+"%",g:Math.round(100*Af(this._g,255))+"%",b:Math.round(100*Af(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%)":"rgba("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(wf[af(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+lf(this._r,this._g,this._b,this._a),i=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var n=Jd(e);i="#"+lf(n._r,n._g,n._b,n._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+i+")"},toString:function(e){var t=!!e;e=e||this._format;var i=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(i=this.toRgbString()),"prgb"===e&&(i=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(i=this.toHexString()),"hex3"===e&&(i=this.toHexString(!0)),"hex4"===e&&(i=this.toHex8String(!0)),"hex8"===e&&(i=this.toHex8String()),"name"===e&&(i=this.toName()),"hsl"===e&&(i=this.toHslString()),"hsv"===e&&(i=this.toHsvString()),i||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Jd(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(pf,arguments)},brighten:function(){return this._applyModification(df,arguments)},darken:function(){return this._applyModification(ff,arguments)},desaturate:function(){return this._applyModification(cf,arguments)},saturate:function(){return this._applyModification(uf,arguments)},greyscale:function(){return this._applyModification(hf,arguments)},spin:function(){return this._applyModification(mf,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vf,arguments)},complement:function(){return this._applyCombination(gf,arguments)},monochromatic:function(){return this._applyCombination(bf,arguments)},splitcomplement:function(){return this._applyCombination(_f,arguments)},triad:function(){return this._applyCombination(yf,[3])},tetrad:function(){return this._applyCombination(yf,[4])}},Jd.fromRatio=function(e,t){if("object"==Kd(e)){var i={};for(var r in e)e.hasOwnProperty(r)&&(i[r]="a"===r?e[r]:kf(e[r]));e=i}return Jd(e,t)},Jd.equals=function(e,t){return!(!e||!t)&&Jd(e).toRgbString()==Jd(t).toRgbString()},Jd.random=function(){return Jd.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Jd.mix=function(e,t,i){i=0===i?0:i||50;var r=Jd(e).toRgb(),n=Jd(t).toRgb(),o=i/100;return Jd({r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a})},Jd.readability=function(e,t){var i=Jd(e),r=Jd(t);return(Math.max(i.getLuminance(),r.getLuminance())+.05)/(Math.min(i.getLuminance(),r.getLuminance())+.05)},Jd.isReadable=function(e,t,i){var r,n,o=Jd.readability(e,t);switch(n=!1,(r=Bf(i)).level+r.size){case"AAsmall":case"AAAlarge":n=o>=4.5;break;case"AAlarge":n=o>=3;break;case"AAAsmall":n=o>=7}return n},Jd.mostReadable=function(e,t,i){var r,n,o,a,s=null,l=0;n=(i=i||{}).includeFallbackColors,o=i.level,a=i.size;for(var c=0;c<t.length;c++)(r=Jd.readability(e,t[c]))>l&&(l=r,s=Jd(t[c]));return Jd.isReadable(e,s,{level:o,size:a})||!n?s:(i.includeFallbackColors=!1,Jd.mostReadable(e,["#fff","#000"],i))};var xf=Jd.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},wf=Jd.hexNames=Cf(xf);function Cf(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[e[i]]=i);return t}function Tf(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Af(e,t){Ef(e)&&(e="100%");var i=Pf(e);return e=Math.min(t,Math.max(0,parseFloat(e))),i&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Sf(e){return Math.min(1,Math.max(0,e))}function Mf(e){return parseInt(e,16)}function Ef(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function Pf(e){return"string"==typeof e&&-1!=e.indexOf("%")}function If(e){return 1==e.length?"0"+e:""+e}function kf(e){return e<=1&&(e=100*e+"%"),e}function zf(e){return Math.round(255*parseFloat(e)).toString(16)}function Lf(e){return Mf(e)/255}var Df=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",i="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Ff(e){return!!Df.CSS_UNIT.exec(e)}function Rf(e){e=e.replace(Xd,"").replace(Yd,"").toLowerCase();var t,i=!1;if(xf[e])e=xf[e],i=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(t=Df.rgb.exec(e))?{r:t[1],g:t[2],b:t[3]}:(t=Df.rgba.exec(e))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Df.hsl.exec(e))?{h:t[1],s:t[2],l:t[3]}:(t=Df.hsla.exec(e))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Df.hsv.exec(e))?{h:t[1],s:t[2],v:t[3]}:(t=Df.hsva.exec(e))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Df.hex8.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),a:Lf(t[4]),format:i?"name":"hex8"}:(t=Df.hex6.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),format:i?"name":"hex"}:(t=Df.hex4.exec(e))?{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),a:Lf(t[4]+""+t[4]),format:i?"name":"hex8"}:!!(t=Df.hex3.exec(e))&&{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),format:i?"name":"hex"}}function Bf(e){var t,i;return"AA"!==(t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==t&&(t="AA"),"small"!==(i=(e.size||"small").toLowerCase())&&"large"!==i&&(i="small"),{level:t,size:i}}const Of=["name","state","icon","attribute"],jf=lt(((e,t,i)=>[{name:"entity",lebel:"Entity",selector:{entity:{filter:{domain:["device_tracker","person","zone"]}}}},{name:"",type:"grid",schema:[{name:"name",label:"Name",default:"",type:"string"},{name:"icon",label:"Icon",selector:{icon:{}}},...e?[]:[{name:"label_mode",label:"Label Mode",selector:{select:{mode:"dropdown",options:Of.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"attribute",label:"Attribute",disabled:i,selector:{attribute:{entity_id:t}}}],{name:"focus",label:"Focus",required:!1,type:"boolean"}]}]));let $f=class extends Xe{constructor(){super(...arguments),this._rgbColor=[0,0,0],this._computeLabel=e=>e.label||"",this._colorToRgb=e=>{const t=Jd(e);if(!t.isValid())return[0,0,0];const{r:i,g:r,b:n}=t.toRgb();return[i,r,n]}}firstUpdated(){var e;if(null===(e=this.config.elementConfig)||void 0===e?void 0:e.color){const e=this._colorToRgb(this.config.elementConfig.color);this._rgbColor=e}else{const e=ut(this.config.index||0),t=this._colorToRgb(e);this._rgbColor=t}}render(){return ke`
|
|
519
|
+
`,e([tt({attribute:!1})],Wd.prototype,"hass",void 0),e([tt({attribute:!1})],Wd.prototype,"entities",void 0),e([tt({attribute:!1})],Wd.prototype,"entityFilter",void 0),e([tt()],Wd.prototype,"label",void 0);var Xd=/^\s+/,Yd=/\s+$/;function Jd(e,t){if(t=t||{},(e=e||"")instanceof Jd)return e;if(!(this instanceof Jd))return new Jd(e,t);var i=Qd(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||i.format,this._gradientType=t.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._ok=i.ok}function Qd(e){var t={r:0,g:0,b:0},i=1,r=null,n=null,o=null,a=!1,s=!1;return"string"==typeof e&&(e=Rf(e)),"object"==Kd(e)&&(Ff(e.r)&&Ff(e.g)&&Ff(e.b)?(t=ef(e.r,e.g,e.b),a=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):Ff(e.h)&&Ff(e.s)&&Ff(e.v)?(r=kf(e.s),n=kf(e.v),t=of(e.h,r,n),a=!0,s="hsv"):Ff(e.h)&&Ff(e.s)&&Ff(e.l)&&(r=kf(e.s),o=kf(e.l),t=rf(e.h,r,o),a=!0,s="hsl"),e.hasOwnProperty("a")&&(i=e.a)),i=Tf(i),{ok:a,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:i}}function ef(e,t,i){return{r:255*Af(e,255),g:255*Af(t,255),b:255*Af(i,255)}}function tf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=(o+a)/2;if(o==a)r=n=0;else{var l=o-a;switch(n=s>.5?l/(2-o-a):l/(o+a),o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,l:s}}function rf(e,t,i){var r,n,o;function a(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}if(e=Af(e,360),t=Af(t,100),i=Af(i,100),0===t)r=n=o=i;else{var s=i<.5?i*(1+t):i+t-i*t,l=2*i-s;r=a(l,s,e+1/3),n=a(l,s,e),o=a(l,s,e-1/3)}return{r:255*r,g:255*n,b:255*o}}function nf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=o,l=o-a;if(n=0===o?0:l/o,o==a)r=0;else{switch(o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,v:s}}function of(e,t,i){e=6*Af(e,360),t=Af(t,100),i=Af(i,100);var r=Math.floor(e),n=e-r,o=i*(1-t),a=i*(1-n*t),s=i*(1-(1-n)*t),l=r%6;return{r:255*[i,a,o,o,s,i][l],g:255*[s,i,i,a,o,o][l],b:255*[o,o,s,i,i,a][l]}}function af(e,t,i,r){var n=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}function sf(e,t,i,r,n){var o=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16)),If(zf(r))];return n&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}function lf(e,t,i,r){return[If(zf(r)),If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))].join("")}function cf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s-=t/100,i.s=Sf(i.s),Jd(i)}function uf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s+=t/100,i.s=Sf(i.s),Jd(i)}function hf(e){return Jd(e).desaturate(100)}function pf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l+=t/100,i.l=Sf(i.l),Jd(i)}function df(e,t){t=0===t?0:t||10;var i=Jd(e).toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-t/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-t/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-t/100*255))),Jd(i)}function ff(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l-=t/100,i.l=Sf(i.l),Jd(i)}function mf(e,t){var i=Jd(e).toHsl(),r=(i.h+t)%360;return i.h=r<0?360+r:r,Jd(i)}function gf(e){var t=Jd(e).toHsl();return t.h=(t.h+180)%360,Jd(t)}function yf(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var i=Jd(e).toHsl(),r=[Jd(e)],n=360/t,o=1;o<t;o++)r.push(Jd({h:(i.h+o*n)%360,s:i.s,l:i.l}));return r}function _f(e){var t=Jd(e).toHsl(),i=t.h;return[Jd(e),Jd({h:(i+72)%360,s:t.s,l:t.l}),Jd({h:(i+216)%360,s:t.s,l:t.l})]}function vf(e,t,i){t=t||6,i=i||30;var r=Jd(e).toHsl(),n=360/i,o=[Jd(e)];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(Jd(r));return o}function bf(e,t){t=t||6;for(var i=Jd(e).toHsv(),r=i.h,n=i.s,o=i.v,a=[],s=1/t;t--;)a.push(Jd({h:r,s:n,v:o})),o=(o+s)%1;return a}Jd.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,i,r=this.toRgb();return e=r.r/255,t=r.g/255,i=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))},setAlpha:function(e){return this._a=Tf(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=nf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=nf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+i+"%, "+r+"%)":"hsva("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=tf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=tf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+i+"%, "+r+"%)":"hsla("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return af(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return sf(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*Af(this._r,255))+"%",g:Math.round(100*Af(this._g,255))+"%",b:Math.round(100*Af(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%)":"rgba("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(wf[af(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+lf(this._r,this._g,this._b,this._a),i=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var n=Jd(e);i="#"+lf(n._r,n._g,n._b,n._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+i+")"},toString:function(e){var t=!!e;e=e||this._format;var i=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(i=this.toRgbString()),"prgb"===e&&(i=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(i=this.toHexString()),"hex3"===e&&(i=this.toHexString(!0)),"hex4"===e&&(i=this.toHex8String(!0)),"hex8"===e&&(i=this.toHex8String()),"name"===e&&(i=this.toName()),"hsl"===e&&(i=this.toHslString()),"hsv"===e&&(i=this.toHsvString()),i||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Jd(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(pf,arguments)},brighten:function(){return this._applyModification(df,arguments)},darken:function(){return this._applyModification(ff,arguments)},desaturate:function(){return this._applyModification(cf,arguments)},saturate:function(){return this._applyModification(uf,arguments)},greyscale:function(){return this._applyModification(hf,arguments)},spin:function(){return this._applyModification(mf,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vf,arguments)},complement:function(){return this._applyCombination(gf,arguments)},monochromatic:function(){return this._applyCombination(bf,arguments)},splitcomplement:function(){return this._applyCombination(_f,arguments)},triad:function(){return this._applyCombination(yf,[3])},tetrad:function(){return this._applyCombination(yf,[4])}},Jd.fromRatio=function(e,t){if("object"==Kd(e)){var i={};for(var r in e)e.hasOwnProperty(r)&&(i[r]="a"===r?e[r]:kf(e[r]));e=i}return Jd(e,t)},Jd.equals=function(e,t){return!(!e||!t)&&Jd(e).toRgbString()==Jd(t).toRgbString()},Jd.random=function(){return Jd.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Jd.mix=function(e,t,i){i=0===i?0:i||50;var r=Jd(e).toRgb(),n=Jd(t).toRgb(),o=i/100;return Jd({r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a})},Jd.readability=function(e,t){var i=Jd(e),r=Jd(t);return(Math.max(i.getLuminance(),r.getLuminance())+.05)/(Math.min(i.getLuminance(),r.getLuminance())+.05)},Jd.isReadable=function(e,t,i){var r,n,o=Jd.readability(e,t);switch(n=!1,(r=Bf(i)).level+r.size){case"AAsmall":case"AAAlarge":n=o>=4.5;break;case"AAlarge":n=o>=3;break;case"AAAsmall":n=o>=7}return n},Jd.mostReadable=function(e,t,i){var r,n,o,a,s=null,l=0;n=(i=i||{}).includeFallbackColors,o=i.level,a=i.size;for(var c=0;c<t.length;c++)(r=Jd.readability(e,t[c]))>l&&(l=r,s=Jd(t[c]));return Jd.isReadable(e,s,{level:o,size:a})||!n?s:(i.includeFallbackColors=!1,Jd.mostReadable(e,["#fff","#000"],i))};var xf=Jd.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},wf=Jd.hexNames=Cf(xf);function Cf(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[e[i]]=i);return t}function Tf(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Af(e,t){Ef(e)&&(e="100%");var i=Pf(e);return e=Math.min(t,Math.max(0,parseFloat(e))),i&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Sf(e){return Math.min(1,Math.max(0,e))}function Mf(e){return parseInt(e,16)}function Ef(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function Pf(e){return"string"==typeof e&&-1!=e.indexOf("%")}function If(e){return 1==e.length?"0"+e:""+e}function kf(e){return e<=1&&(e=100*e+"%"),e}function zf(e){return Math.round(255*parseFloat(e)).toString(16)}function Lf(e){return Mf(e)/255}var Df=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",i="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Ff(e){return!!Df.CSS_UNIT.exec(e)}function Rf(e){e=e.replace(Xd,"").replace(Yd,"").toLowerCase();var t,i=!1;if(xf[e])e=xf[e],i=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(t=Df.rgb.exec(e))?{r:t[1],g:t[2],b:t[3]}:(t=Df.rgba.exec(e))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Df.hsl.exec(e))?{h:t[1],s:t[2],l:t[3]}:(t=Df.hsla.exec(e))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Df.hsv.exec(e))?{h:t[1],s:t[2],v:t[3]}:(t=Df.hsva.exec(e))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Df.hex8.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),a:Lf(t[4]),format:i?"name":"hex8"}:(t=Df.hex6.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),format:i?"name":"hex"}:(t=Df.hex4.exec(e))?{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),a:Lf(t[4]+""+t[4]),format:i?"name":"hex8"}:!!(t=Df.hex3.exec(e))&&{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),format:i?"name":"hex"}}function Bf(e){var t,i;return"AA"!==(t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==t&&(t="AA"),"small"!==(i=(e.size||"small").toLowerCase())&&"large"!==i&&(i="small"),{level:t,size:i}}const Of=["name","state","icon","attribute"],jf=lt(((e,t,i)=>[{name:"entity",lebel:"Entity",selector:{entity:{filter:{domain:["device_tracker","person","zone"]}}}},{name:"",type:"grid",schema:[{name:"name",label:"Name",default:"",type:"string"},{name:"icon",label:"Icon",selector:{icon:{}}},...e?[]:[{name:"label_mode",label:"Label Mode",selector:{select:{mode:"dropdown",options:Of.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"attribute",label:"Attribute",disabled:i,selector:{attribute:{entity_id:t}}}],{name:"focus",label:"Focus",required:!1,type:"boolean"}]}]));class $f extends Xe{constructor(){super(...arguments),this._rgbColor=[0,0,0],this._computeLabel=e=>e.label||"",this._colorToRgb=e=>{const t=Jd(e);if(!t.isValid())return[0,0,0];const{r:i,g:r,b:n}=t.toRgb();return[i,r,n]}}firstUpdated(){var e;if(null===(e=this.config.elementConfig)||void 0===e?void 0:e.color){const e=this._colorToRgb(this.config.elementConfig.color);this._rgbColor=e}else{const e=ut(this.config.index||0),t=this._colorToRgb(e);this._rgbColor=t}}render(){return ke`
|
|
520
520
|
<div class="header">
|
|
521
521
|
<div class="back-title">
|
|
522
522
|
<ha-icon-button-prev
|
|
@@ -543,7 +543,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
543
543
|
.required=${!1}
|
|
544
544
|
@value-changed=${this._colorChanged}
|
|
545
545
|
></ha-selector>
|
|
546
|
-
`}_goBack(){C(this,"go-back")}_colorChanged(e){if(e.stopPropagation(),!this.config)return;const t=e.detail.value,i=Jd(`rgb(${t.join(",")})`).toHexString(),r=Object.assign({},this.config.elementConfig);r.color=i,this.config=Object.assign(Object.assign({},this.config),{elementConfig:Object.assign(Object.assign({},r),{entity:r.entity||""})}),C(this,"config-changed",{config:this.config}),this._rgbColor=t}_valueChanged(e){e.stopPropagation();let t=e.detail.value;this.config.elementConfig=Object.assign(Object.assign({},this.config.elementConfig),t),C(this,"config-changed",{config:this.config}),this.requestUpdate()}}
|
|
546
|
+
`}_goBack(){C(this,"go-back")}_colorChanged(e){if(e.stopPropagation(),!this.config)return;const t=e.detail.value,i=Jd(`rgb(${t.join(",")})`).toHexString(),r=Object.assign({},this.config.elementConfig);r.color=i,this.config=Object.assign(Object.assign({},this.config),{elementConfig:Object.assign(Object.assign({},r),{entity:r.entity||""})}),C(this,"config-changed",{config:this.config}),this._rgbColor=t}_valueChanged(e){e.stopPropagation();let t=e.detail.value;this.config.elementConfig=Object.assign(Object.assign({},this.config.elementConfig),t),C(this,"config-changed",{config:this.config}),this.requestUpdate()}}$f.styles=G`
|
|
547
547
|
.header {
|
|
548
548
|
display: flex;
|
|
549
549
|
justify-content: space-between;
|
|
@@ -554,7 +554,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
554
554
|
align-items: center;
|
|
555
555
|
font-size: var(--ha-font-size-l);
|
|
556
556
|
}
|
|
557
|
-
`,e([tt({attribute:!1})],$f.prototype,"hass",void 0),e([tt({attribute:!1})],$f.prototype,"config",void 0),e([it()],$f.prototype,"_rgbColor",void 0)
|
|
557
|
+
`,e([tt({attribute:!1})],$f.prototype,"hass",void 0),e([tt({attribute:!1})],$f.prototype,"config",void 0),e([it()],$f.prototype,"_rgbColor",void 0);const Nf=()=>{var e,t,i,r,n;customElements.get("ha-form")||null===(e=customElements.get("hui-button-card"))||void 0===e||e.getConfigElement(),customElements.get("ha-entity-picker")||null===(t=customElements.get("hui-entities-card"))||void 0===t||t.getConfigElement(),customElements.get("ha-card-conditions-editor")||null===(i=customElements.get("hui-conditional-card"))||void 0===i||i.getConfigElement(),customElements.get("ha-form-multi_select")||null===(r=customElements.get("hui-entities-card"))||void 0===r||r.getConfigElement(),customElements.get("hui-entity-editor")||null===(n=customElements.get("hui-glance-card"))||void 0===n||n.getConfigElement()};let Vf=class extends Xe{constructor(){super(...arguments),this._computeLabelCallback=e=>{var t,i;let r=null===(t=this.hass)||void 0===t?void 0:t.localize(`ui.panel.lovelace.editor.card.generic.${e.name}`);return r||(r=null===(i=this.hass)||void 0===i?void 0:i.localize(`ui.panel.lovelace.editor.card.${e.label}`),r||e.label)}}connectedCallback(){super.connectedCallback(),Nf(),window.ExtraMapEditor=this}disconnectedCallback(){super.disconnectedCallback()}setConfig(e){this._config=e,this._configEntities=e.entities?Ed(e.entities):[]}render(){var e;if(!this.hass||!this._config)return Le;if(this._subEntityEditorConfig)return ke`
|
|
558
558
|
<emc-sub-entity-editor
|
|
559
559
|
.hass=${this.hass}
|
|
560
560
|
.config=${this._subEntityEditorConfig}
|
package/dist/index.js
CHANGED
|
@@ -221,7 +221,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
221
221
|
font-weight: 300;
|
|
222
222
|
font-size: 16px;
|
|
223
223
|
max-width: calc(100% - 80px);
|
|
224
|
-
}`,Wh=6371008.8,Kh={centimeters:100*Wh,centimetres:100*Wh,degrees:360/(2*Math.PI),feet:3.28084*Wh,inches:39.37*Wh,kilometers:Wh/1e3,kilometres:Wh/1e3,meters:Wh,metres:Wh,miles:Wh/1609.344,millimeters:1e3*Wh,millimetres:1e3*Wh,nauticalmiles:Wh/1852,radians:1,yards:1.0936*Wh};function Xh(e,t,i={}){const r={type:"Feature"};return(0===i.id||i.id)&&(r.id=i.id),i.bbox&&(r.bbox=i.bbox),r.properties=t||{},r.geometry=e,r}function Yh(e,t,i={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!ip(e[0])||!ip(e[1]))throw new Error("coordinates must contain numbers");return Xh({type:"Point",coordinates:e},t,i)}function Jh(e,t,i={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return Xh({type:"Polygon",coordinates:e},t,i)}function Qh(e,t="kilometers"){const i=Kh[t];if(!i)throw new Error(t+" units is invalid");return e/i}function ep(e){return 180*(e%(2*Math.PI))/Math.PI}function tp(e){return e%360*Math.PI/180}function ip(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function rp(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function np(e,t,i,r={}){const n=rp(e),o=tp(n[0]),a=tp(n[1]),s=tp(i),l=Qh(t,r.units),c=Math.asin(Math.sin(a)*Math.cos(l)+Math.cos(a)*Math.sin(l)*Math.cos(s));return Yh([ep(o+Math.atan2(Math.sin(s)*Math.sin(l)*Math.cos(a),Math.cos(l)-Math.sin(a)*Math.sin(c))),ep(c)],r.properties)}function op(e,t,i={}){const r=i.steps||64,n=i.properties?i.properties:!Array.isArray(e)&&"Feature"===e.type&&e.properties?e.properties:{},o=[];for(let n=0;n<r;n++)o.push(np(e,t,-360*n/r,i).geometry.coordinates);return o.push(o[0]),Jh([o],n)}var ap="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",sp="M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z",lp="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z",cp="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",up="1.4.2";const hp=up,pp=[{name:"Navigation and city exploration",selector:{select:{options:["STREETS","STREETS.DARK","STREETS.LIGHT","STREETS.PASTEL"]}}},{name:"Data visualization",selector:{select:{options:["DATAVIZ","DATAVIZ.DARK","DATAVIZ.LIGHT"]}}},{name:"Minimalist and general purpose",selector:{select:{options:["BASIC","BASIC.DARK","BASIC.LIGHT"]}}},{name:"High contrast navigation",selector:{select:{options:["BRIGHT","BRIGHT.DARK","BRIGHT.LIGHT","BRIGHT.PASTEL"]}}},{name:"Topographic study",selector:{select:{options:["TOPO","TOPO.SHINY","TOPO.PASTEL","TOPO.TOPOGRAPHIQUE"]}}},{name:"Minimalist",selector:{select:{options:["VOYAGER","VOYAGER.DARK","VOYAGER.LIGHT","VOYAGER.VINTAGE"]}}},{name:"High contrast",selector:{select:{options:["TONER","TONER.BACKGROUND","TONER.LITE","TONER.LINES"]}}},{name:"Neutral greyscale style with hillshading",selector:{select:{options:["BACKDROP","BACKDROP.DARK","BACKDROP.LIGHT"]}}},{name:"Other",selector:{select:{options:["OPENSTREETMAP","OUTDOOR","WINTER","SATELLITE","HYBRID"]}}}],dp=["STREETS","BASIC","BRIGHT","DATAVIZ","VOYAGER","BACKDROP"],fp=()=>pp.reduce(((e,t)=>{const i=t.selector.select.options;return e.concat(i.map((e=>({value:e,label:e}))))}),[]),mp=fp(),gp=0,yp=13,_p=["auto","light","dark"],vp=[{name:"aspect_ratio",label:"Aspect Ratio",selector:{text:{}}},{name:"default_zoom",label:"Default Zoom",default:yp,selector:{number:{mode:"box",min:0}}},{name:"theme_mode",label:"Theme Mode",default:"auto",selector:{select:{mode:"dropdown",options:_p.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"hours_to_show",label:"Hours to Show",default:0,selector:{number:{mode:"box",min:0}}},{name:"history_period",label:"History Period",default:"",selector:{select:{mode:"dropdown",options:[{value:"today",label:"Today"},{value:"yesterday",label:"Yesterday"}]}}},{name:"auto_fit",label:"Auto Fit",default:!1,selector:{boolean:{}}},{name:"fit_zones",label:"Fit Zones",default:!1,selector:{boolean:{}}},{name:"use_more_info",label:"Marker more info",default:!1,selector:{boolean:{}}}],bp={name:"custom_styles",type:"expandable",iconPath:lp,title:"Custom Styles",schema:[{name:"",type:"grid",schema:[{name:"light",label:"Light Style",selector:{select:{mode:"dropdown",options:mp}}},{name:"dark",label:"Dark Style",selector:{select:{mode:"dropdown",options:mp}}}]}]},xp=lt((e=>[{name:"",type:"expandable",iconPath:lp,title:e("ui.panel.lovelace.editor.card.map.appearance"),schema:[{name:"",type:"grid",schema:[...vp]},bp]}])),wp=lt((()=>[{name:"title",label:"Title",selector:{text:{type:"text"}}},{name:"api_key",label:"MapTiler API Key (required)",required:!0,selector:{text:{type:"text"}}}])),Cp=lt((e=>[...wp(),...xp(e)])),Tp=Symbol.for("constructDateFrom");function Ap(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&Tp in e?e[Tp](t):e instanceof Date?new e.constructor(t):new Date(t)}function Sp(e,t){return Ap(e,e)}function Mp(e,...t){const i=Ap.bind(null,t.find((e=>"object"==typeof e)));return t.map(i)}function Ep(e,t){const i=Sp(e);return i.setHours(0,0,0,0),i}function Pp(e){return Ap(e,Date.now())}function Ip(e,t,i){const[r,n]=Mp(i?.in,e,t);return+Ep(r)==+Ep(n)}function kp(e,t){return Ip(Ap(e,e),Pp(e))}const zp=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Lp=1,Dp=8;class Fp{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,i]=new Uint8Array(e,0,2);if(219!==t)throw new Error("Data does not appear to be in a KDBush format.");const r=i>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const n=zp[15&i];if(!n)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(e,2,1),[a]=new Uint32Array(e,4,1);return new Fp(a,o,n,e)}constructor(e,t=64,i=Float64Array,r){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=i,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const n=zp.indexOf(this.ArrayType),o=2*e*this.ArrayType.BYTES_PER_ELEMENT,a=e*this.IndexArrayType.BYTES_PER_ELEMENT,s=(8-a%8)%8;if(n<0)throw new Error(`Unexpected typed array class: ${i}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+o+a+s),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+n]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=e,this.coords[this._pos++]=t,i}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Rp(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,i,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:o,nodeSize:a}=this,s=[0,n.length-1,0],l=[];for(;s.length;){const c=s.pop()||0,u=s.pop()||0,h=s.pop()||0;if(u-h<=a){for(let a=h;a<=u;a++){const s=o[2*a],c=o[2*a+1];s>=e&&s<=i&&c>=t&&c<=r&&l.push(n[a])}continue}const p=h+u>>1,d=o[2*p],f=o[2*p+1];d>=e&&d<=i&&f>=t&&f<=r&&l.push(n[p]),(0===c?e<=d:t<=f)&&(s.push(h),s.push(p-1),s.push(1-c)),(0===c?i>=d:r>=f)&&(s.push(p+1),s.push(u),s.push(1-c))}return l}within(e,t,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:n,nodeSize:o}=this,a=[0,r.length-1,0],s=[],l=i*i;for(;a.length;){const c=a.pop()||0,u=a.pop()||0,h=a.pop()||0;if(u-h<=o){for(let i=h;i<=u;i++)$p(n[2*i],n[2*i+1],e,t)<=l&&s.push(r[i]);continue}const p=h+u>>1,d=n[2*p],f=n[2*p+1];$p(d,f,e,t)<=l&&s.push(r[p]),(0===c?e-i<=d:t-i<=f)&&(a.push(h),a.push(p-1),a.push(1-c)),(0===c?e+i>=d:t+i>=f)&&(a.push(p+1),a.push(u),a.push(1-c))}return s}}function Rp(e,t,i,r,n,o){if(n-r<=i)return;const a=r+n>>1;Bp(e,t,a,r,n,o),Rp(e,t,i,r,a-1,1-o),Rp(e,t,i,a+1,n,1-o)}function Bp(e,t,i,r,n,o){for(;n>r;){if(n-r>600){const a=n-r+1,s=i-r+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(s-a/2<0?-1:1);Bp(e,t,i,Math.max(r,Math.floor(i-s*c/a+u)),Math.min(n,Math.floor(i+(a-s)*c/a+u)),o)}const a=t[2*i+o];let s=r,l=n;for(Op(e,t,r,i),t[2*n+o]>a&&Op(e,t,r,n);s<l;){for(Op(e,t,s,l),s++,l--;t[2*s+o]<a;)s++;for(;t[2*l+o]>a;)l--}t[2*r+o]===a?Op(e,t,r,l):(l++,Op(e,t,l,n)),l<=i&&(r=l+1),i<=l&&(n=l-1)}}function Op(e,t,i,r){jp(e,i,r),jp(t,2*i,2*r),jp(t,2*i+1,2*r+1)}function jp(e,t,i){const r=e[t];e[t]=e[i],e[i]=r}function $p(e,t,i,r){const n=e-i,o=t-r;return n*n+o*o}const Np={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},Vp=Math.fround||(e=>t=>(e[0]=+t,e[0]))(new Float32Array(1)),Up=2,qp=3,Zp=4,Gp=5,Hp=6;class Wp{constructor(e){this.options=Object.assign(Object.create(Np),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:i,maxZoom:r}=this.options;t&&console.time("total time");const n=`prepare ${e.length} points`;t&&console.time(n),this.points=e;const o=[];for(let t=0;t<e.length;t++){const i=e[t];if(!i.geometry)continue;const[r,n]=i.geometry.coordinates,a=Vp(Yp(r)),s=Vp(Jp(n));o.push(a,s,1/0,t,-1,1),this.options.reduce&&o.push(0)}let a=this.trees[r+1]=this._createTree(o);t&&console.timeEnd(n);for(let e=r;e>=i;e--){Date.now();a=this.trees[e]=this._createTree(this._cluster(a,e))}return t&&console.timeEnd("total time"),this}getClusters(e,t){let i=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let n=180===e[2]?180:((e[2]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)i=-180,n=180;else if(i>n){const e=this.getClusters([i,r,180,o],t),a=this.getClusters([-180,r,n,o],t);return e.concat(a)}const a=this.trees[this._limitZoom(t)],s=a.range(Yp(i),Jp(o),Yp(n),Jp(r)),l=a.data,c=[];for(const e of s){const t=this.stride*e;c.push(l[t+5]>1?Kp(l,t,this.clusterProps):this.points[l[t+3]])}return c}getChildren(e){const t=this._getOriginId(e),i=this._getOriginZoom(e),r="No cluster with the specified id.",n=this.trees[i];if(!n)throw new Error(r);const o=n.data;if(t*this.stride>=o.length)throw new Error(r);const a=this.options.radius/(this.options.extent*Math.pow(2,i-1)),s=o[t*this.stride],l=o[t*this.stride+1],c=n.within(s,l,a),u=[];for(const t of c){const i=t*this.stride;o[i+4]===e&&u.push(o[i+5]>1?Kp(o,i,this.clusterProps):this.points[o[i+3]])}if(0===u.length)throw new Error(r);return u}getLeaves(e,t,i){t=t||10,i=i||0;const r=[];return this._appendLeaves(r,e,t,i,0),r}getTile(e,t,i){const r=this.trees[this._limitZoom(e)],n=Math.pow(2,e),{extent:o,radius:a}=this.options,s=a/o,l=(i-s)/n,c=(i+1+s)/n,u={features:[]};return this._addTileFeatures(r.range((t-s)/n,l,(t+1+s)/n,c),r.data,t,i,n,u),0===t&&this._addTileFeatures(r.range(1-s/n,l,1,c),r.data,n,i,n,u),t===n-1&&this._addTileFeatures(r.range(0,l,s/n,c),r.data,-1,i,n,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const i=this.getChildren(e);if(t++,1!==i.length)break;e=i[0].properties.cluster_id}return t}_appendLeaves(e,t,i,r,n){const o=this.getChildren(t);for(const t of o){const o=t.properties;if(o&&o.cluster?n+o.point_count<=r?n+=o.point_count:n=this._appendLeaves(e,o.cluster_id,i,r,n):n<r?n++:e.push(t),e.length===i)break}return n}_createTree(e){const t=new Fp(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let i=0;i<e.length;i+=this.stride)t.add(e[i],e[i+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,i,r,n,o){for(const a of e){const e=a*this.stride,s=t[e+5]>1;let l,c,u;if(s)l=Xp(t,e,this.clusterProps),c=t[e],u=t[e+1];else{const i=this.points[t[e+3]];l=i.properties;const[r,n]=i.geometry.coordinates;c=Yp(r),u=Jp(n)}const h={type:1,geometry:[[Math.round(this.options.extent*(c*n-i)),Math.round(this.options.extent*(u*n-r))]],tags:l};let p;p=s||this.options.generateId?t[e+3]:this.points[t[e+3]].id,void 0!==p&&(h.id=p),o.features.push(h)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:i,extent:r,reduce:n,minPoints:o}=this.options,a=i/(r*Math.pow(2,t)),s=e.data,l=[],c=this.stride;for(let i=0;i<s.length;i+=c){if(s[i+2]<=t)continue;s[i+2]=t;const r=s[i],u=s[i+1],h=e.within(s[i],s[i+1],a),p=s[i+5];let d=p;for(const e of h){const i=e*c;s[i+2]>t&&(d+=s[i+5])}if(d>p&&d>=o){let e,o=r*p,a=u*p,f=-1;const m=(i/c<<5)+(t+1)+this.points.length;for(const r of h){const l=r*c;if(s[l+2]<=t)continue;s[l+2]=t;const u=s[l+5];o+=s[l]*u,a+=s[l+1]*u,s[l+4]=m,n&&(e||(e=this._map(s,i,!0),f=this.clusterProps.length,this.clusterProps.push(e)),n(e,this._map(s,l)))}s[i+4]=m,l.push(o/d,a/d,1/0,m,-1,d),n&&l.push(f)}else{for(let e=0;e<c;e++)l.push(s[i+e]);if(d>1)for(const e of h){const i=e*c;if(!(s[i+2]<=t)){s[i+2]=t;for(let e=0;e<c;e++)l.push(s[i+e])}}}}return l}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,i){if(e[t+5]>1){const r=this.clusterProps[e[t+6]];return i?Object.assign({},r):r}const r=this.points[e[t+3]].properties,n=this.options.map(r);return i&&n===r?Object.assign({},n):n}}function Kp(e,t,i){return{type:"Feature",id:e[t+3],properties:Xp(e,t,i),geometry:{type:"Point",coordinates:[Qp(e[t]),ed(e[t+1])]}}}function Xp(e,t,i){const r=e[t+5],n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,o=e[t+6],a=-1===o?{}:Object.assign({},i[o]);return Object.assign(a,{cluster:!0,cluster_id:e[t+3],point_count:r,point_count_abbreviated:n})}function Yp(e){return e/360+.5}function Jp(e){const t=Math.sin(e*Math.PI/180),i=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return i<0?0:i>1?1:i}function Qp(e){return 360*(e-.5)}function ed(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}var td,id,rd,nd,od,ad,sd,ld;!function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(td||(td={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(id||(id={})),function(e){e.local="local",e.server="server"}(rd||(rd={})),function(e){e.language="language",e.system="system",e.DMY="DMY",e.MDY="MDY",e.YMD="YMD"}(nd||(nd={})),function(e){e.language="language",e.monday="monday",e.tuesday="tuesday",e.wednesday="wednesday",e.thursday="thursday",e.friday="friday",e.saturday="saturday",e.sunday="sunday"}(od||(od={}));const cd=e=>"string"==typeof e?e:e.entity_id,ud=lt((async(e,t,i)=>{const r={address:"streetName",locality:"sublocality",municipality:"city"},n=`https://api.maptiler.com/geocoding/${t},${e}.json?key=${i}`;try{const e=await fetch(n);if(!e.ok)throw new Error("Failed to fetch address from MapTiler");const t=await e.json();if(t&&t.features&&t.features.length>0){let e={};if(t.features.forEach((t=>{const i=t.place_type[0];if(r[i]){const n=r[i],o=t.text;"address"===i&&(e.streetNumber=t.address?`${t.address}`:""),e[n]=`${o}`}})),e.streetName&&e.city)return e}return null}catch(e){return console.warn("Error fetching address from MapTiler:",e),null}})),hd=null===(ld=null===(ad=Intl.DateTimeFormat)||void 0===ad?void 0:(sd=ad.call(Intl)).resolvedOptions)||void 0===ld?void 0:ld.call(sd).timeZone,pd=null!=hd?hd:"UTC",dd=(e,t)=>e===rd.local&&hd?pd:t,fd=lt((e=>{if(e.time_format===id.language||e.time_format===id.system){const t=e.time_format===id.language?e.language:void 0;return new Date("January 1, 2023 22:00:00").toLocaleString(t).includes("10")}return e.time_format===id.am_pm})),md=(e,t,i)=>gd(t,i.time_zone).format(e),gd=lt(((e,t)=>new Intl.DateTimeFormat(e.language,{weekday:"long",hour:fd(e)?"numeric":"2-digit",minute:"2-digit",hour12:fd(e),timeZone:dd(e.time_zone,t)}))),yd={ATTRIBUTE:1,CHILD:2},_d=e=>(...t)=>({_$litDirective$:e,values:t});let vd=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};
|
|
224
|
+
}`,Wh=6371008.8,Kh={centimeters:100*Wh,centimetres:100*Wh,degrees:360/(2*Math.PI),feet:3.28084*Wh,inches:39.37*Wh,kilometers:Wh/1e3,kilometres:Wh/1e3,meters:Wh,metres:Wh,miles:Wh/1609.344,millimeters:1e3*Wh,millimetres:1e3*Wh,nauticalmiles:Wh/1852,radians:1,yards:1.0936*Wh};function Xh(e,t,i={}){const r={type:"Feature"};return(0===i.id||i.id)&&(r.id=i.id),i.bbox&&(r.bbox=i.bbox),r.properties=t||{},r.geometry=e,r}function Yh(e,t,i={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!ip(e[0])||!ip(e[1]))throw new Error("coordinates must contain numbers");return Xh({type:"Point",coordinates:e},t,i)}function Jh(e,t,i={}){for(const t of e){if(t.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(t[t.length-1].length!==t[0].length)throw new Error("First and last Position are not equivalent.");for(let e=0;e<t[t.length-1].length;e++)if(t[t.length-1][e]!==t[0][e])throw new Error("First and last Position are not equivalent.")}return Xh({type:"Polygon",coordinates:e},t,i)}function Qh(e,t="kilometers"){const i=Kh[t];if(!i)throw new Error(t+" units is invalid");return e/i}function ep(e){return 180*(e%(2*Math.PI))/Math.PI}function tp(e){return e%360*Math.PI/180}function ip(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function rp(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return[...e.geometry.coordinates];if("Point"===e.type)return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function np(e,t,i,r={}){const n=rp(e),o=tp(n[0]),a=tp(n[1]),s=tp(i),l=Qh(t,r.units),c=Math.asin(Math.sin(a)*Math.cos(l)+Math.cos(a)*Math.sin(l)*Math.cos(s));return Yh([ep(o+Math.atan2(Math.sin(s)*Math.sin(l)*Math.cos(a),Math.cos(l)-Math.sin(a)*Math.sin(c))),ep(c)],r.properties)}function op(e,t,i={}){const r=i.steps||64,n=i.properties?i.properties:!Array.isArray(e)&&"Feature"===e.type&&e.properties?e.properties:{},o=[];for(let n=0;n<r;n++)o.push(np(e,t,-360*n/r,i).geometry.coordinates);return o.push(o[0]),Jh([o],n)}var ap="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",sp="M7,19V17H9V19H7M11,19V17H13V19H11M15,19V17H17V19H15M7,15V13H9V15H7M11,15V13H13V15H11M15,15V13H17V15H15M7,11V9H9V11H7M11,11V9H13V11H11M15,11V9H17V11H15M7,7V5H9V7H7M11,7V5H13V7H11M15,7V5H17V7H15Z",lp="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z",cp="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",up="1.5.0";const hp=up,pp=[{name:"Navigation and city exploration",selector:{select:{options:["STREETS","STREETS.DARK","STREETS.LIGHT","STREETS.PASTEL"]}}},{name:"Data visualization",selector:{select:{options:["DATAVIZ","DATAVIZ.DARK","DATAVIZ.LIGHT"]}}},{name:"Minimalist and general purpose",selector:{select:{options:["BASIC","BASIC.DARK","BASIC.LIGHT"]}}},{name:"High contrast navigation",selector:{select:{options:["BRIGHT","BRIGHT.DARK","BRIGHT.LIGHT","BRIGHT.PASTEL"]}}},{name:"Topographic study",selector:{select:{options:["TOPO","TOPO.SHINY","TOPO.PASTEL","TOPO.TOPOGRAPHIQUE"]}}},{name:"Minimalist",selector:{select:{options:["VOYAGER","VOYAGER.DARK","VOYAGER.LIGHT","VOYAGER.VINTAGE"]}}},{name:"High contrast",selector:{select:{options:["TONER","TONER.BACKGROUND","TONER.LITE","TONER.LINES"]}}},{name:"Neutral greyscale style with hillshading",selector:{select:{options:["BACKDROP","BACKDROP.DARK","BACKDROP.LIGHT"]}}},{name:"Other",selector:{select:{options:["OPENSTREETMAP","OUTDOOR","WINTER","SATELLITE","HYBRID"]}}}],dp=["STREETS","BASIC","BRIGHT","DATAVIZ","VOYAGER","BACKDROP"],fp=()=>pp.reduce(((e,t)=>{const i=t.selector.select.options;return e.concat(i.map((e=>({value:e,label:e}))))}),[]),mp=fp(),gp=0,yp=13,_p=["auto","light","dark"],vp=[{name:"aspect_ratio",label:"Aspect Ratio",selector:{text:{}}},{name:"default_zoom",label:"Default Zoom",default:yp,selector:{number:{mode:"box",min:0}}},{name:"theme_mode",label:"Theme Mode",default:"auto",selector:{select:{mode:"dropdown",options:_p.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"hours_to_show",label:"Hours to Show",default:0,selector:{number:{mode:"box",min:0}}},{name:"history_period",label:"History Period",default:"",selector:{select:{mode:"dropdown",options:[{value:"today",label:"Today"},{value:"yesterday",label:"Yesterday"}]}}},{name:"auto_fit",label:"Auto Fit",default:!1,selector:{boolean:{}}},{name:"fit_zones",label:"Fit Zones",default:!1,selector:{boolean:{}}},{name:"use_more_info",label:"Marker more info",default:!1,selector:{boolean:{}}}],bp={name:"custom_styles",type:"expandable",iconPath:lp,title:"Custom Styles",schema:[{name:"",type:"grid",schema:[{name:"light",label:"Light Style",selector:{select:{mode:"dropdown",options:mp}}},{name:"dark",label:"Dark Style",selector:{select:{mode:"dropdown",options:mp}}}]}]},xp=lt((e=>[{name:"",type:"expandable",iconPath:lp,title:e("ui.panel.lovelace.editor.card.map.appearance"),schema:[{name:"",type:"grid",schema:[...vp]},bp]}])),wp=lt((()=>[{name:"title",label:"Title",selector:{text:{type:"text"}}},{name:"api_key",label:"MapTiler API Key (required)",required:!0,selector:{text:{type:"text"}}}])),Cp=lt((e=>[...wp(),...xp(e)])),Tp=Symbol.for("constructDateFrom");function Ap(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&Tp in e?e[Tp](t):e instanceof Date?new e.constructor(t):new Date(t)}function Sp(e,t){return Ap(e,e)}function Mp(e,...t){const i=Ap.bind(null,t.find((e=>"object"==typeof e)));return t.map(i)}function Ep(e,t){const i=Sp(e);return i.setHours(0,0,0,0),i}function Pp(e){return Ap(e,Date.now())}function Ip(e,t,i){const[r,n]=Mp(i?.in,e,t);return+Ep(r)==+Ep(n)}function kp(e,t){return Ip(Ap(e,e),Pp(e))}const zp=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Lp=1,Dp=8;class Fp{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,i]=new Uint8Array(e,0,2);if(219!==t)throw new Error("Data does not appear to be in a KDBush format.");const r=i>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const n=zp[15&i];if(!n)throw new Error("Unrecognized array type.");const[o]=new Uint16Array(e,2,1),[a]=new Uint32Array(e,4,1);return new Fp(a,o,n,e)}constructor(e,t=64,i=Float64Array,r){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=i,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const n=zp.indexOf(this.ArrayType),o=2*e*this.ArrayType.BYTES_PER_ELEMENT,a=e*this.IndexArrayType.BYTES_PER_ELEMENT,s=(8-a%8)%8;if(n<0)throw new Error(`Unexpected typed array class: ${i}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+o+a+s),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+a+s,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+n]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=e)}add(e,t){const i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=e,this.coords[this._pos++]=t,i}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Rp(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,i,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:o,nodeSize:a}=this,s=[0,n.length-1,0],l=[];for(;s.length;){const c=s.pop()||0,u=s.pop()||0,h=s.pop()||0;if(u-h<=a){for(let a=h;a<=u;a++){const s=o[2*a],c=o[2*a+1];s>=e&&s<=i&&c>=t&&c<=r&&l.push(n[a])}continue}const p=h+u>>1,d=o[2*p],f=o[2*p+1];d>=e&&d<=i&&f>=t&&f<=r&&l.push(n[p]),(0===c?e<=d:t<=f)&&(s.push(h),s.push(p-1),s.push(1-c)),(0===c?i>=d:r>=f)&&(s.push(p+1),s.push(u),s.push(1-c))}return l}within(e,t,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:n,nodeSize:o}=this,a=[0,r.length-1,0],s=[],l=i*i;for(;a.length;){const c=a.pop()||0,u=a.pop()||0,h=a.pop()||0;if(u-h<=o){for(let i=h;i<=u;i++)$p(n[2*i],n[2*i+1],e,t)<=l&&s.push(r[i]);continue}const p=h+u>>1,d=n[2*p],f=n[2*p+1];$p(d,f,e,t)<=l&&s.push(r[p]),(0===c?e-i<=d:t-i<=f)&&(a.push(h),a.push(p-1),a.push(1-c)),(0===c?e+i>=d:t+i>=f)&&(a.push(p+1),a.push(u),a.push(1-c))}return s}}function Rp(e,t,i,r,n,o){if(n-r<=i)return;const a=r+n>>1;Bp(e,t,a,r,n,o),Rp(e,t,i,r,a-1,1-o),Rp(e,t,i,a+1,n,1-o)}function Bp(e,t,i,r,n,o){for(;n>r;){if(n-r>600){const a=n-r+1,s=i-r+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(s-a/2<0?-1:1);Bp(e,t,i,Math.max(r,Math.floor(i-s*c/a+u)),Math.min(n,Math.floor(i+(a-s)*c/a+u)),o)}const a=t[2*i+o];let s=r,l=n;for(Op(e,t,r,i),t[2*n+o]>a&&Op(e,t,r,n);s<l;){for(Op(e,t,s,l),s++,l--;t[2*s+o]<a;)s++;for(;t[2*l+o]>a;)l--}t[2*r+o]===a?Op(e,t,r,l):(l++,Op(e,t,l,n)),l<=i&&(r=l+1),i<=l&&(n=l-1)}}function Op(e,t,i,r){jp(e,i,r),jp(t,2*i,2*r),jp(t,2*i+1,2*r+1)}function jp(e,t,i){const r=e[t];e[t]=e[i],e[i]=r}function $p(e,t,i,r){const n=e-i,o=t-r;return n*n+o*o}const Np={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},Vp=Math.fround||(e=>t=>(e[0]=+t,e[0]))(new Float32Array(1)),Up=2,qp=3,Zp=4,Gp=5,Hp=6;class Wp{constructor(e){this.options=Object.assign(Object.create(Np),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(e){const{log:t,minZoom:i,maxZoom:r}=this.options;t&&console.time("total time");const n=`prepare ${e.length} points`;t&&console.time(n),this.points=e;const o=[];for(let t=0;t<e.length;t++){const i=e[t];if(!i.geometry)continue;const[r,n]=i.geometry.coordinates,a=Vp(Yp(r)),s=Vp(Jp(n));o.push(a,s,1/0,t,-1,1),this.options.reduce&&o.push(0)}let a=this.trees[r+1]=this._createTree(o);t&&console.timeEnd(n);for(let e=r;e>=i;e--){Date.now();a=this.trees[e]=this._createTree(this._cluster(a,e))}return t&&console.timeEnd("total time"),this}getClusters(e,t){let i=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let n=180===e[2]?180:((e[2]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)i=-180,n=180;else if(i>n){const e=this.getClusters([i,r,180,o],t),a=this.getClusters([-180,r,n,o],t);return e.concat(a)}const a=this.trees[this._limitZoom(t)],s=a.range(Yp(i),Jp(o),Yp(n),Jp(r)),l=a.data,c=[];for(const e of s){const t=this.stride*e;c.push(l[t+5]>1?Kp(l,t,this.clusterProps):this.points[l[t+3]])}return c}getChildren(e){const t=this._getOriginId(e),i=this._getOriginZoom(e),r="No cluster with the specified id.",n=this.trees[i];if(!n)throw new Error(r);const o=n.data;if(t*this.stride>=o.length)throw new Error(r);const a=this.options.radius/(this.options.extent*Math.pow(2,i-1)),s=o[t*this.stride],l=o[t*this.stride+1],c=n.within(s,l,a),u=[];for(const t of c){const i=t*this.stride;o[i+4]===e&&u.push(o[i+5]>1?Kp(o,i,this.clusterProps):this.points[o[i+3]])}if(0===u.length)throw new Error(r);return u}getLeaves(e,t,i){t=t||10,i=i||0;const r=[];return this._appendLeaves(r,e,t,i,0),r}getTile(e,t,i){const r=this.trees[this._limitZoom(e)],n=Math.pow(2,e),{extent:o,radius:a}=this.options,s=a/o,l=(i-s)/n,c=(i+1+s)/n,u={features:[]};return this._addTileFeatures(r.range((t-s)/n,l,(t+1+s)/n,c),r.data,t,i,n,u),0===t&&this._addTileFeatures(r.range(1-s/n,l,1,c),r.data,n,i,n,u),t===n-1&&this._addTileFeatures(r.range(0,l,s/n,c),r.data,-1,i,n,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const i=this.getChildren(e);if(t++,1!==i.length)break;e=i[0].properties.cluster_id}return t}_appendLeaves(e,t,i,r,n){const o=this.getChildren(t);for(const t of o){const o=t.properties;if(o&&o.cluster?n+o.point_count<=r?n+=o.point_count:n=this._appendLeaves(e,o.cluster_id,i,r,n):n<r?n++:e.push(t),e.length===i)break}return n}_createTree(e){const t=new Fp(e.length/this.stride|0,this.options.nodeSize,Float32Array);for(let i=0;i<e.length;i+=this.stride)t.add(e[i],e[i+1]);return t.finish(),t.data=e,t}_addTileFeatures(e,t,i,r,n,o){for(const a of e){const e=a*this.stride,s=t[e+5]>1;let l,c,u;if(s)l=Xp(t,e,this.clusterProps),c=t[e],u=t[e+1];else{const i=this.points[t[e+3]];l=i.properties;const[r,n]=i.geometry.coordinates;c=Yp(r),u=Jp(n)}const h={type:1,geometry:[[Math.round(this.options.extent*(c*n-i)),Math.round(this.options.extent*(u*n-r))]],tags:l};let p;p=s||this.options.generateId?t[e+3]:this.points[t[e+3]].id,void 0!==p&&(h.id=p),o.features.push(h)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:i,extent:r,reduce:n,minPoints:o}=this.options,a=i/(r*Math.pow(2,t)),s=e.data,l=[],c=this.stride;for(let i=0;i<s.length;i+=c){if(s[i+2]<=t)continue;s[i+2]=t;const r=s[i],u=s[i+1],h=e.within(s[i],s[i+1],a),p=s[i+5];let d=p;for(const e of h){const i=e*c;s[i+2]>t&&(d+=s[i+5])}if(d>p&&d>=o){let e,o=r*p,a=u*p,f=-1;const m=(i/c<<5)+(t+1)+this.points.length;for(const r of h){const l=r*c;if(s[l+2]<=t)continue;s[l+2]=t;const u=s[l+5];o+=s[l]*u,a+=s[l+1]*u,s[l+4]=m,n&&(e||(e=this._map(s,i,!0),f=this.clusterProps.length,this.clusterProps.push(e)),n(e,this._map(s,l)))}s[i+4]=m,l.push(o/d,a/d,1/0,m,-1,d),n&&l.push(f)}else{for(let e=0;e<c;e++)l.push(s[i+e]);if(d>1)for(const e of h){const i=e*c;if(!(s[i+2]<=t)){s[i+2]=t;for(let e=0;e<c;e++)l.push(s[i+e])}}}}return l}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t,i){if(e[t+5]>1){const r=this.clusterProps[e[t+6]];return i?Object.assign({},r):r}const r=this.points[e[t+3]].properties,n=this.options.map(r);return i&&n===r?Object.assign({},n):n}}function Kp(e,t,i){return{type:"Feature",id:e[t+3],properties:Xp(e,t,i),geometry:{type:"Point",coordinates:[Qp(e[t]),ed(e[t+1])]}}}function Xp(e,t,i){const r=e[t+5],n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,o=e[t+6],a=-1===o?{}:Object.assign({},i[o]);return Object.assign(a,{cluster:!0,cluster_id:e[t+3],point_count:r,point_count_abbreviated:n})}function Yp(e){return e/360+.5}function Jp(e){const t=Math.sin(e*Math.PI/180),i=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return i<0?0:i>1?1:i}function Qp(e){return 360*(e-.5)}function ed(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}var td,id,rd,nd,od,ad,sd,ld;!function(e){e.language="language",e.system="system",e.comma_decimal="comma_decimal",e.decimal_comma="decimal_comma",e.space_comma="space_comma",e.none="none"}(td||(td={})),function(e){e.language="language",e.system="system",e.am_pm="12",e.twenty_four="24"}(id||(id={})),function(e){e.local="local",e.server="server"}(rd||(rd={})),function(e){e.language="language",e.system="system",e.DMY="DMY",e.MDY="MDY",e.YMD="YMD"}(nd||(nd={})),function(e){e.language="language",e.monday="monday",e.tuesday="tuesday",e.wednesday="wednesday",e.thursday="thursday",e.friday="friday",e.saturday="saturday",e.sunday="sunday"}(od||(od={}));const cd=e=>"string"==typeof e?e:e.entity_id,ud=lt((async(e,t,i)=>{const r={address:"streetName",locality:"sublocality",municipality:"city"},n=`https://api.maptiler.com/geocoding/${t},${e}.json?key=${i}`;try{const e=await fetch(n);if(!e.ok)throw new Error("Failed to fetch address from MapTiler");const t=await e.json();if(t&&t.features&&t.features.length>0){let e={};if(t.features.forEach((t=>{const i=t.place_type[0];if(r[i]){const n=r[i],o=t.text;"address"===i&&(e.streetNumber=t.address?`${t.address}`:""),e[n]=`${o}`}})),e.streetName&&e.city)return e}return null}catch(e){return console.warn("Error fetching address from MapTiler:",e),null}})),hd=null===(ld=null===(ad=Intl.DateTimeFormat)||void 0===ad?void 0:(sd=ad.call(Intl)).resolvedOptions)||void 0===ld?void 0:ld.call(sd).timeZone,pd=null!=hd?hd:"UTC",dd=(e,t)=>e===rd.local&&hd?pd:t,fd=lt((e=>{if(e.time_format===id.language||e.time_format===id.system){const t=e.time_format===id.language?e.language:void 0;return new Date("January 1, 2023 22:00:00").toLocaleString(t).includes("10")}return e.time_format===id.am_pm})),md=(e,t,i)=>gd(t,i.time_zone).format(e),gd=lt(((e,t)=>new Intl.DateTimeFormat(e.language,{weekday:"long",hour:fd(e)?"numeric":"2-digit",minute:"2-digit",hour12:fd(e),timeZone:dd(e.time_zone,t)}))),yd={ATTRIBUTE:1,CHILD:2},_d=e=>(...t)=>({_$litDirective$:e,values:t});let vd=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,i){this._$Ct=e,this._$AM=t,this._$Ci=i}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};
|
|
225
225
|
/**
|
|
226
226
|
* @license
|
|
227
227
|
* Copyright 2018 Google LLC
|
|
@@ -516,7 +516,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
516
516
|
font-size: var(--ha-font-size-s);
|
|
517
517
|
color: var(--secondary-text-color);
|
|
518
518
|
}
|
|
519
|
-
`,e([tt({attribute:!1})],Wd.prototype,"hass",void 0),e([tt({attribute:!1})],Wd.prototype,"entities",void 0),e([tt({attribute:!1})],Wd.prototype,"entityFilter",void 0),e([tt()],Wd.prototype,"label",void 0),customElements.define("emc-entity-editor",Wd);var Xd=/^\s+/,Yd=/\s+$/;function Jd(e,t){if(t=t||{},(e=e||"")instanceof Jd)return e;if(!(this instanceof Jd))return new Jd(e,t);var i=Qd(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||i.format,this._gradientType=t.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._ok=i.ok}function Qd(e){var t={r:0,g:0,b:0},i=1,r=null,n=null,o=null,a=!1,s=!1;return"string"==typeof e&&(e=Rf(e)),"object"==Kd(e)&&(Ff(e.r)&&Ff(e.g)&&Ff(e.b)?(t=ef(e.r,e.g,e.b),a=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):Ff(e.h)&&Ff(e.s)&&Ff(e.v)?(r=kf(e.s),n=kf(e.v),t=of(e.h,r,n),a=!0,s="hsv"):Ff(e.h)&&Ff(e.s)&&Ff(e.l)&&(r=kf(e.s),o=kf(e.l),t=rf(e.h,r,o),a=!0,s="hsl"),e.hasOwnProperty("a")&&(i=e.a)),i=Tf(i),{ok:a,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:i}}function ef(e,t,i){return{r:255*Af(e,255),g:255*Af(t,255),b:255*Af(i,255)}}function tf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=(o+a)/2;if(o==a)r=n=0;else{var l=o-a;switch(n=s>.5?l/(2-o-a):l/(o+a),o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,l:s}}function rf(e,t,i){var r,n,o;function a(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}if(e=Af(e,360),t=Af(t,100),i=Af(i,100),0===t)r=n=o=i;else{var s=i<.5?i*(1+t):i+t-i*t,l=2*i-s;r=a(l,s,e+1/3),n=a(l,s,e),o=a(l,s,e-1/3)}return{r:255*r,g:255*n,b:255*o}}function nf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=o,l=o-a;if(n=0===o?0:l/o,o==a)r=0;else{switch(o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,v:s}}function of(e,t,i){e=6*Af(e,360),t=Af(t,100),i=Af(i,100);var r=Math.floor(e),n=e-r,o=i*(1-t),a=i*(1-n*t),s=i*(1-(1-n)*t),l=r%6;return{r:255*[i,a,o,o,s,i][l],g:255*[s,i,i,a,o,o][l],b:255*[o,o,s,i,i,a][l]}}function af(e,t,i,r){var n=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}function sf(e,t,i,r,n){var o=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16)),If(zf(r))];return n&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}function lf(e,t,i,r){return[If(zf(r)),If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))].join("")}function cf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s-=t/100,i.s=Sf(i.s),Jd(i)}function uf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s+=t/100,i.s=Sf(i.s),Jd(i)}function hf(e){return Jd(e).desaturate(100)}function pf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l+=t/100,i.l=Sf(i.l),Jd(i)}function df(e,t){t=0===t?0:t||10;var i=Jd(e).toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-t/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-t/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-t/100*255))),Jd(i)}function ff(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l-=t/100,i.l=Sf(i.l),Jd(i)}function mf(e,t){var i=Jd(e).toHsl(),r=(i.h+t)%360;return i.h=r<0?360+r:r,Jd(i)}function gf(e){var t=Jd(e).toHsl();return t.h=(t.h+180)%360,Jd(t)}function yf(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var i=Jd(e).toHsl(),r=[Jd(e)],n=360/t,o=1;o<t;o++)r.push(Jd({h:(i.h+o*n)%360,s:i.s,l:i.l}));return r}function _f(e){var t=Jd(e).toHsl(),i=t.h;return[Jd(e),Jd({h:(i+72)%360,s:t.s,l:t.l}),Jd({h:(i+216)%360,s:t.s,l:t.l})]}function vf(e,t,i){t=t||6,i=i||30;var r=Jd(e).toHsl(),n=360/i,o=[Jd(e)];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(Jd(r));return o}function bf(e,t){t=t||6;for(var i=Jd(e).toHsv(),r=i.h,n=i.s,o=i.v,a=[],s=1/t;t--;)a.push(Jd({h:r,s:n,v:o})),o=(o+s)%1;return a}Jd.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,i,r=this.toRgb();return e=r.r/255,t=r.g/255,i=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))},setAlpha:function(e){return this._a=Tf(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=nf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=nf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+i+"%, "+r+"%)":"hsva("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=tf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=tf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+i+"%, "+r+"%)":"hsla("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return af(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return sf(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*Af(this._r,255))+"%",g:Math.round(100*Af(this._g,255))+"%",b:Math.round(100*Af(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%)":"rgba("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(wf[af(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+lf(this._r,this._g,this._b,this._a),i=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var n=Jd(e);i="#"+lf(n._r,n._g,n._b,n._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+i+")"},toString:function(e){var t=!!e;e=e||this._format;var i=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(i=this.toRgbString()),"prgb"===e&&(i=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(i=this.toHexString()),"hex3"===e&&(i=this.toHexString(!0)),"hex4"===e&&(i=this.toHex8String(!0)),"hex8"===e&&(i=this.toHex8String()),"name"===e&&(i=this.toName()),"hsl"===e&&(i=this.toHslString()),"hsv"===e&&(i=this.toHsvString()),i||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Jd(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(pf,arguments)},brighten:function(){return this._applyModification(df,arguments)},darken:function(){return this._applyModification(ff,arguments)},desaturate:function(){return this._applyModification(cf,arguments)},saturate:function(){return this._applyModification(uf,arguments)},greyscale:function(){return this._applyModification(hf,arguments)},spin:function(){return this._applyModification(mf,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vf,arguments)},complement:function(){return this._applyCombination(gf,arguments)},monochromatic:function(){return this._applyCombination(bf,arguments)},splitcomplement:function(){return this._applyCombination(_f,arguments)},triad:function(){return this._applyCombination(yf,[3])},tetrad:function(){return this._applyCombination(yf,[4])}},Jd.fromRatio=function(e,t){if("object"==Kd(e)){var i={};for(var r in e)e.hasOwnProperty(r)&&(i[r]="a"===r?e[r]:kf(e[r]));e=i}return Jd(e,t)},Jd.equals=function(e,t){return!(!e||!t)&&Jd(e).toRgbString()==Jd(t).toRgbString()},Jd.random=function(){return Jd.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Jd.mix=function(e,t,i){i=0===i?0:i||50;var r=Jd(e).toRgb(),n=Jd(t).toRgb(),o=i/100;return Jd({r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a})},Jd.readability=function(e,t){var i=Jd(e),r=Jd(t);return(Math.max(i.getLuminance(),r.getLuminance())+.05)/(Math.min(i.getLuminance(),r.getLuminance())+.05)},Jd.isReadable=function(e,t,i){var r,n,o=Jd.readability(e,t);switch(n=!1,(r=Bf(i)).level+r.size){case"AAsmall":case"AAAlarge":n=o>=4.5;break;case"AAlarge":n=o>=3;break;case"AAAsmall":n=o>=7}return n},Jd.mostReadable=function(e,t,i){var r,n,o,a,s=null,l=0;n=(i=i||{}).includeFallbackColors,o=i.level,a=i.size;for(var c=0;c<t.length;c++)(r=Jd.readability(e,t[c]))>l&&(l=r,s=Jd(t[c]));return Jd.isReadable(e,s,{level:o,size:a})||!n?s:(i.includeFallbackColors=!1,Jd.mostReadable(e,["#fff","#000"],i))};var xf=Jd.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},wf=Jd.hexNames=Cf(xf);function Cf(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[e[i]]=i);return t}function Tf(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Af(e,t){Ef(e)&&(e="100%");var i=Pf(e);return e=Math.min(t,Math.max(0,parseFloat(e))),i&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Sf(e){return Math.min(1,Math.max(0,e))}function Mf(e){return parseInt(e,16)}function Ef(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function Pf(e){return"string"==typeof e&&-1!=e.indexOf("%")}function If(e){return 1==e.length?"0"+e:""+e}function kf(e){return e<=1&&(e=100*e+"%"),e}function zf(e){return Math.round(255*parseFloat(e)).toString(16)}function Lf(e){return Mf(e)/255}var Df=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",i="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Ff(e){return!!Df.CSS_UNIT.exec(e)}function Rf(e){e=e.replace(Xd,"").replace(Yd,"").toLowerCase();var t,i=!1;if(xf[e])e=xf[e],i=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(t=Df.rgb.exec(e))?{r:t[1],g:t[2],b:t[3]}:(t=Df.rgba.exec(e))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Df.hsl.exec(e))?{h:t[1],s:t[2],l:t[3]}:(t=Df.hsla.exec(e))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Df.hsv.exec(e))?{h:t[1],s:t[2],v:t[3]}:(t=Df.hsva.exec(e))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Df.hex8.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),a:Lf(t[4]),format:i?"name":"hex8"}:(t=Df.hex6.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),format:i?"name":"hex"}:(t=Df.hex4.exec(e))?{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),a:Lf(t[4]+""+t[4]),format:i?"name":"hex8"}:!!(t=Df.hex3.exec(e))&&{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),format:i?"name":"hex"}}function Bf(e){var t,i;return"AA"!==(t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==t&&(t="AA"),"small"!==(i=(e.size||"small").toLowerCase())&&"large"!==i&&(i="small"),{level:t,size:i}}const Of=["name","state","icon","attribute"],jf=lt(((e,t,i)=>[{name:"entity",lebel:"Entity",selector:{entity:{filter:{domain:["device_tracker","person","zone"]}}}},{name:"",type:"grid",schema:[{name:"name",label:"Name",default:"",type:"string"},{name:"icon",label:"Icon",selector:{icon:{}}},...e?[]:[{name:"label_mode",label:"Label Mode",selector:{select:{mode:"dropdown",options:Of.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"attribute",label:"Attribute",disabled:i,selector:{attribute:{entity_id:t}}}],{name:"focus",label:"Focus",required:!1,type:"boolean"}]}]));let $f=class extends Xe{constructor(){super(...arguments),this._rgbColor=[0,0,0],this._computeLabel=e=>e.label||"",this._colorToRgb=e=>{const t=Jd(e);if(!t.isValid())return[0,0,0];const{r:i,g:r,b:n}=t.toRgb();return[i,r,n]}}firstUpdated(){var e;if(null===(e=this.config.elementConfig)||void 0===e?void 0:e.color){const e=this._colorToRgb(this.config.elementConfig.color);this._rgbColor=e}else{const e=ut(this.config.index||0),t=this._colorToRgb(e);this._rgbColor=t}}render(){return ke`
|
|
519
|
+
`,e([tt({attribute:!1})],Wd.prototype,"hass",void 0),e([tt({attribute:!1})],Wd.prototype,"entities",void 0),e([tt({attribute:!1})],Wd.prototype,"entityFilter",void 0),e([tt()],Wd.prototype,"label",void 0);var Xd=/^\s+/,Yd=/\s+$/;function Jd(e,t){if(t=t||{},(e=e||"")instanceof Jd)return e;if(!(this instanceof Jd))return new Jd(e,t);var i=Qd(e);this._originalInput=e,this._r=i.r,this._g=i.g,this._b=i.b,this._a=i.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||i.format,this._gradientType=t.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._ok=i.ok}function Qd(e){var t={r:0,g:0,b:0},i=1,r=null,n=null,o=null,a=!1,s=!1;return"string"==typeof e&&(e=Rf(e)),"object"==Kd(e)&&(Ff(e.r)&&Ff(e.g)&&Ff(e.b)?(t=ef(e.r,e.g,e.b),a=!0,s="%"===String(e.r).substr(-1)?"prgb":"rgb"):Ff(e.h)&&Ff(e.s)&&Ff(e.v)?(r=kf(e.s),n=kf(e.v),t=of(e.h,r,n),a=!0,s="hsv"):Ff(e.h)&&Ff(e.s)&&Ff(e.l)&&(r=kf(e.s),o=kf(e.l),t=rf(e.h,r,o),a=!0,s="hsl"),e.hasOwnProperty("a")&&(i=e.a)),i=Tf(i),{ok:a,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:i}}function ef(e,t,i){return{r:255*Af(e,255),g:255*Af(t,255),b:255*Af(i,255)}}function tf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=(o+a)/2;if(o==a)r=n=0;else{var l=o-a;switch(n=s>.5?l/(2-o-a):l/(o+a),o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,l:s}}function rf(e,t,i){var r,n,o;function a(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}if(e=Af(e,360),t=Af(t,100),i=Af(i,100),0===t)r=n=o=i;else{var s=i<.5?i*(1+t):i+t-i*t,l=2*i-s;r=a(l,s,e+1/3),n=a(l,s,e),o=a(l,s,e-1/3)}return{r:255*r,g:255*n,b:255*o}}function nf(e,t,i){e=Af(e,255),t=Af(t,255),i=Af(i,255);var r,n,o=Math.max(e,t,i),a=Math.min(e,t,i),s=o,l=o-a;if(n=0===o?0:l/o,o==a)r=0;else{switch(o){case e:r=(t-i)/l+(t<i?6:0);break;case t:r=(i-e)/l+2;break;case i:r=(e-t)/l+4}r/=6}return{h:r,s:n,v:s}}function of(e,t,i){e=6*Af(e,360),t=Af(t,100),i=Af(i,100);var r=Math.floor(e),n=e-r,o=i*(1-t),a=i*(1-n*t),s=i*(1-(1-n)*t),l=r%6;return{r:255*[i,a,o,o,s,i][l],g:255*[s,i,i,a,o,o][l],b:255*[o,o,s,i,i,a][l]}}function af(e,t,i,r){var n=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}function sf(e,t,i,r,n){var o=[If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16)),If(zf(r))];return n&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}function lf(e,t,i,r){return[If(zf(r)),If(Math.round(e).toString(16)),If(Math.round(t).toString(16)),If(Math.round(i).toString(16))].join("")}function cf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s-=t/100,i.s=Sf(i.s),Jd(i)}function uf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.s+=t/100,i.s=Sf(i.s),Jd(i)}function hf(e){return Jd(e).desaturate(100)}function pf(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l+=t/100,i.l=Sf(i.l),Jd(i)}function df(e,t){t=0===t?0:t||10;var i=Jd(e).toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-t/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-t/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-t/100*255))),Jd(i)}function ff(e,t){t=0===t?0:t||10;var i=Jd(e).toHsl();return i.l-=t/100,i.l=Sf(i.l),Jd(i)}function mf(e,t){var i=Jd(e).toHsl(),r=(i.h+t)%360;return i.h=r<0?360+r:r,Jd(i)}function gf(e){var t=Jd(e).toHsl();return t.h=(t.h+180)%360,Jd(t)}function yf(e,t){if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");for(var i=Jd(e).toHsl(),r=[Jd(e)],n=360/t,o=1;o<t;o++)r.push(Jd({h:(i.h+o*n)%360,s:i.s,l:i.l}));return r}function _f(e){var t=Jd(e).toHsl(),i=t.h;return[Jd(e),Jd({h:(i+72)%360,s:t.s,l:t.l}),Jd({h:(i+216)%360,s:t.s,l:t.l})]}function vf(e,t,i){t=t||6,i=i||30;var r=Jd(e).toHsl(),n=360/i,o=[Jd(e)];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,o.push(Jd(r));return o}function bf(e,t){t=t||6;for(var i=Jd(e).toHsv(),r=i.h,n=i.s,o=i.v,a=[],s=1/t;t--;)a.push(Jd({h:r,s:n,v:o})),o=(o+s)%1;return a}Jd.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,i,r=this.toRgb();return e=r.r/255,t=r.g/255,i=r.b/255,.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.0722*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))},setAlpha:function(e){return this._a=Tf(e),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var e=nf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=nf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?"hsv("+t+", "+i+"%, "+r+"%)":"hsva("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=tf(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=tf(this._r,this._g,this._b),t=Math.round(360*e.h),i=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?"hsl("+t+", "+i+"%, "+r+"%)":"hsla("+t+", "+i+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return af(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return sf(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*Af(this._r,255))+"%",g:Math.round(100*Af(this._g,255))+"%",b:Math.round(100*Af(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%)":"rgba("+Math.round(100*Af(this._r,255))+"%, "+Math.round(100*Af(this._g,255))+"%, "+Math.round(100*Af(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(wf[af(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+lf(this._r,this._g,this._b,this._a),i=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var n=Jd(e);i="#"+lf(n._r,n._g,n._b,n._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+i+")"},toString:function(e){var t=!!e;e=e||this._format;var i=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(i=this.toRgbString()),"prgb"===e&&(i=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(i=this.toHexString()),"hex3"===e&&(i=this.toHexString(!0)),"hex4"===e&&(i=this.toHex8String(!0)),"hex8"===e&&(i=this.toHex8String()),"name"===e&&(i=this.toName()),"hsl"===e&&(i=this.toHslString()),"hsv"===e&&(i=this.toHsvString()),i||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return Jd(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(pf,arguments)},brighten:function(){return this._applyModification(df,arguments)},darken:function(){return this._applyModification(ff,arguments)},desaturate:function(){return this._applyModification(cf,arguments)},saturate:function(){return this._applyModification(uf,arguments)},greyscale:function(){return this._applyModification(hf,arguments)},spin:function(){return this._applyModification(mf,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(vf,arguments)},complement:function(){return this._applyCombination(gf,arguments)},monochromatic:function(){return this._applyCombination(bf,arguments)},splitcomplement:function(){return this._applyCombination(_f,arguments)},triad:function(){return this._applyCombination(yf,[3])},tetrad:function(){return this._applyCombination(yf,[4])}},Jd.fromRatio=function(e,t){if("object"==Kd(e)){var i={};for(var r in e)e.hasOwnProperty(r)&&(i[r]="a"===r?e[r]:kf(e[r]));e=i}return Jd(e,t)},Jd.equals=function(e,t){return!(!e||!t)&&Jd(e).toRgbString()==Jd(t).toRgbString()},Jd.random=function(){return Jd.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},Jd.mix=function(e,t,i){i=0===i?0:i||50;var r=Jd(e).toRgb(),n=Jd(t).toRgb(),o=i/100;return Jd({r:(n.r-r.r)*o+r.r,g:(n.g-r.g)*o+r.g,b:(n.b-r.b)*o+r.b,a:(n.a-r.a)*o+r.a})},Jd.readability=function(e,t){var i=Jd(e),r=Jd(t);return(Math.max(i.getLuminance(),r.getLuminance())+.05)/(Math.min(i.getLuminance(),r.getLuminance())+.05)},Jd.isReadable=function(e,t,i){var r,n,o=Jd.readability(e,t);switch(n=!1,(r=Bf(i)).level+r.size){case"AAsmall":case"AAAlarge":n=o>=4.5;break;case"AAlarge":n=o>=3;break;case"AAAsmall":n=o>=7}return n},Jd.mostReadable=function(e,t,i){var r,n,o,a,s=null,l=0;n=(i=i||{}).includeFallbackColors,o=i.level,a=i.size;for(var c=0;c<t.length;c++)(r=Jd.readability(e,t[c]))>l&&(l=r,s=Jd(t[c]));return Jd.isReadable(e,s,{level:o,size:a})||!n?s:(i.includeFallbackColors=!1,Jd.mostReadable(e,["#fff","#000"],i))};var xf=Jd.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},wf=Jd.hexNames=Cf(xf);function Cf(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[e[i]]=i);return t}function Tf(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Af(e,t){Ef(e)&&(e="100%");var i=Pf(e);return e=Math.min(t,Math.max(0,parseFloat(e))),i&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Sf(e){return Math.min(1,Math.max(0,e))}function Mf(e){return parseInt(e,16)}function Ef(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function Pf(e){return"string"==typeof e&&-1!=e.indexOf("%")}function If(e){return 1==e.length?"0"+e:""+e}function kf(e){return e<=1&&(e=100*e+"%"),e}function zf(e){return Math.round(255*parseFloat(e)).toString(16)}function Lf(e){return Mf(e)/255}var Df=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",i="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Ff(e){return!!Df.CSS_UNIT.exec(e)}function Rf(e){e=e.replace(Xd,"").replace(Yd,"").toLowerCase();var t,i=!1;if(xf[e])e=xf[e],i=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(t=Df.rgb.exec(e))?{r:t[1],g:t[2],b:t[3]}:(t=Df.rgba.exec(e))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Df.hsl.exec(e))?{h:t[1],s:t[2],l:t[3]}:(t=Df.hsla.exec(e))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Df.hsv.exec(e))?{h:t[1],s:t[2],v:t[3]}:(t=Df.hsva.exec(e))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Df.hex8.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),a:Lf(t[4]),format:i?"name":"hex8"}:(t=Df.hex6.exec(e))?{r:Mf(t[1]),g:Mf(t[2]),b:Mf(t[3]),format:i?"name":"hex"}:(t=Df.hex4.exec(e))?{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),a:Lf(t[4]+""+t[4]),format:i?"name":"hex8"}:!!(t=Df.hex3.exec(e))&&{r:Mf(t[1]+""+t[1]),g:Mf(t[2]+""+t[2]),b:Mf(t[3]+""+t[3]),format:i?"name":"hex"}}function Bf(e){var t,i;return"AA"!==(t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==t&&(t="AA"),"small"!==(i=(e.size||"small").toLowerCase())&&"large"!==i&&(i="small"),{level:t,size:i}}const Of=["name","state","icon","attribute"],jf=lt(((e,t,i)=>[{name:"entity",lebel:"Entity",selector:{entity:{filter:{domain:["device_tracker","person","zone"]}}}},{name:"",type:"grid",schema:[{name:"name",label:"Name",default:"",type:"string"},{name:"icon",label:"Icon",selector:{icon:{}}},...e?[]:[{name:"label_mode",label:"Label Mode",selector:{select:{mode:"dropdown",options:Of.map((e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})))}}},{name:"attribute",label:"Attribute",disabled:i,selector:{attribute:{entity_id:t}}}],{name:"focus",label:"Focus",required:!1,type:"boolean"}]}]));class $f extends Xe{constructor(){super(...arguments),this._rgbColor=[0,0,0],this._computeLabel=e=>e.label||"",this._colorToRgb=e=>{const t=Jd(e);if(!t.isValid())return[0,0,0];const{r:i,g:r,b:n}=t.toRgb();return[i,r,n]}}firstUpdated(){var e;if(null===(e=this.config.elementConfig)||void 0===e?void 0:e.color){const e=this._colorToRgb(this.config.elementConfig.color);this._rgbColor=e}else{const e=ut(this.config.index||0),t=this._colorToRgb(e);this._rgbColor=t}}render(){return ke`
|
|
520
520
|
<div class="header">
|
|
521
521
|
<div class="back-title">
|
|
522
522
|
<ha-icon-button-prev
|
|
@@ -543,7 +543,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
543
543
|
.required=${!1}
|
|
544
544
|
@value-changed=${this._colorChanged}
|
|
545
545
|
></ha-selector>
|
|
546
|
-
`}_goBack(){C(this,"go-back")}_colorChanged(e){if(e.stopPropagation(),!this.config)return;const t=e.detail.value,i=Jd(`rgb(${t.join(",")})`).toHexString(),r=Object.assign({},this.config.elementConfig);r.color=i,this.config=Object.assign(Object.assign({},this.config),{elementConfig:Object.assign(Object.assign({},r),{entity:r.entity||""})}),C(this,"config-changed",{config:this.config}),this._rgbColor=t}_valueChanged(e){e.stopPropagation();let t=e.detail.value;this.config.elementConfig=Object.assign(Object.assign({},this.config.elementConfig),t),C(this,"config-changed",{config:this.config}),this.requestUpdate()}}
|
|
546
|
+
`}_goBack(){C(this,"go-back")}_colorChanged(e){if(e.stopPropagation(),!this.config)return;const t=e.detail.value,i=Jd(`rgb(${t.join(",")})`).toHexString(),r=Object.assign({},this.config.elementConfig);r.color=i,this.config=Object.assign(Object.assign({},this.config),{elementConfig:Object.assign(Object.assign({},r),{entity:r.entity||""})}),C(this,"config-changed",{config:this.config}),this._rgbColor=t}_valueChanged(e){e.stopPropagation();let t=e.detail.value;this.config.elementConfig=Object.assign(Object.assign({},this.config.elementConfig),t),C(this,"config-changed",{config:this.config}),this.requestUpdate()}}$f.styles=G`
|
|
547
547
|
.header {
|
|
548
548
|
display: flex;
|
|
549
549
|
justify-content: space-between;
|
|
@@ -554,7 +554,7 @@ const Je=e=>(t,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(e,t)
|
|
|
554
554
|
align-items: center;
|
|
555
555
|
font-size: var(--ha-font-size-l);
|
|
556
556
|
}
|
|
557
|
-
`,e([tt({attribute:!1})],$f.prototype,"hass",void 0),e([tt({attribute:!1})],$f.prototype,"config",void 0),e([it()],$f.prototype,"_rgbColor",void 0)
|
|
557
|
+
`,e([tt({attribute:!1})],$f.prototype,"hass",void 0),e([tt({attribute:!1})],$f.prototype,"config",void 0),e([it()],$f.prototype,"_rgbColor",void 0);const Nf=()=>{var e,t,i,r,n;customElements.get("ha-form")||null===(e=customElements.get("hui-button-card"))||void 0===e||e.getConfigElement(),customElements.get("ha-entity-picker")||null===(t=customElements.get("hui-entities-card"))||void 0===t||t.getConfigElement(),customElements.get("ha-card-conditions-editor")||null===(i=customElements.get("hui-conditional-card"))||void 0===i||i.getConfigElement(),customElements.get("ha-form-multi_select")||null===(r=customElements.get("hui-entities-card"))||void 0===r||r.getConfigElement(),customElements.get("hui-entity-editor")||null===(n=customElements.get("hui-glance-card"))||void 0===n||n.getConfigElement()};let Vf=class extends Xe{constructor(){super(...arguments),this._computeLabelCallback=e=>{var t,i;let r=null===(t=this.hass)||void 0===t?void 0:t.localize(`ui.panel.lovelace.editor.card.generic.${e.name}`);return r||(r=null===(i=this.hass)||void 0===i?void 0:i.localize(`ui.panel.lovelace.editor.card.${e.label}`),r||e.label)}}connectedCallback(){super.connectedCallback(),Nf(),window.ExtraMapEditor=this}disconnectedCallback(){super.disconnectedCallback()}setConfig(e){this._config=e,this._configEntities=e.entities?Ed(e.entities):[]}render(){var e;if(!this.hass||!this._config)return Le;if(this._subEntityEditorConfig)return ke`
|
|
558
558
|
<emc-sub-entity-editor
|
|
559
559
|
.hass=${this.hass}
|
|
560
560
|
.config=${this._subEntityEditorConfig}
|