From f6f253012a32bf12723298e0c6f7d7c07c0cddfb Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Thu, 16 Nov 2023 22:08:31 +0100 Subject: [PATCH] Fix for las vegas layout (#316) * Fix for las vegas layout * Version up and minify --- formulaone-card.js | 492 +-------------------- formulaone-card.js.gz | Bin 30949 -> 32595 bytes package-lock.json | 374 ++++++++++++++-- package.json | 5 +- src/directives/action-handler-directive.ts | 2 +- src/editor.ts | 5 +- src/types/formulaone-card-types.ts | 2 +- src/utils.ts | 4 +- webpack.config.js | 6 + 9 files changed, 361 insertions(+), 529 deletions(-) diff --git a/formulaone-card.js b/formulaone-card.js index bd41c2d..2ac01c7 100644 --- a/formulaone-card.js +++ b/formulaone-card.js @@ -1,492 +1,2 @@ /*! For license information please see formulaone-card.js.LICENSE.txt */ -(()=>{"use strict";var t={8455:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(6197),r=n(936),o=n(7399),a=n(6926);class s extends r.LitElement{constructor(){super(...arguments),this.controlRenderers={[o.FormControlType.Dropdown]:a.renderDropdown,[o.FormControlType.Radio]:a.renderRadio,[o.FormControlType.Checkboxes]:a.renderCheckboxes,[o.FormControlType.EntityDropdown]:a.renderDropdown,[o.FormControlType.Switch]:a.renderSwitch,[o.FormControlType.Textbox]:a.renderTextbox,[o.FormControlType.Filler]:a.renderFiller}}setConfig(t){this._config=t}set hass(t){this._hass=t}renderForm(t){return r.html` -
- ${t.map((t=>{const e=t.cssClass?`form-row ${t.cssClass}`:"form-row";return t.hidden?"":r.html` -
- - ${t.controls.map((t=>this.renderControl(t)))} -
- `}))} -
- `}renderControl(t){const e=this.controlRenderers[t.type];if(!e)throw new Error(`Unsupported control type: ${t.type}`);return e(this,t)}_valueChanged(t){if(!this._config||!this._hass)return;const e=t.target,n=t.detail;if("HA-CHECKBOX"===e.tagName){const t=this._config[e.configValue].indexOf(e.value);e.checked&&t<0?this._config[e.configValue]=[...this._config[e.configValue],e.value]:!e.checked&&t>-1&&(this._config[e.configValue]=[...this._config[e.configValue].slice(0,t),...this._config[e.configValue].slice(t+1)])}else if(e.configValue)if(e.configValue.indexOf(".")>-1){const[t,n]=e.configValue.split(".");this._config={...this._config,[t]:{...this._config[t],[n]:e.checked}}}else this._config={...this._config,[e.configValue]:void 0===e.checked&&(null==n?void 0:n.value)?e.checked||n.value:e.value||e.checked};(0,i.fireEvent)(this,"config-changed",{config:this._config},{bubbles:!0,composed:!0}),this.requestUpdate("_config")}static get styles(){return r.css` - .form-row { - margin-bottom: 10px; - } - .form-control { - display: flex; - align-items: center; - } - ha-switch { - padding: 16px 6px; - } - .side-by-side { - display: flex; - flex-flow: row wrap; - } - .side-by-side > label { - width: 100%; - } - .side-by-side > .form-control { - width: 49%; - padding: 2px; - } - ha-textfield { - width: 100%; - } - `}}e.default=s},7399:(t,e)=>{var n;Object.defineProperty(e,"__esModule",{value:!0}),e.FormControlType=void 0,function(t){t.Dropdown="dropdown",t.Checkbox="checkbox",t.Checkboxes="checkboxes",t.Radio="radio",t.Switch="switch",t.Textbox="textbox",t.Filler="filler",t.EntityDropdown="entity-dropdown"}(n||(e.FormControlType=n={}))},6926:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.renderCheckboxes=e.renderRadio=e.renderDropdown=e.renderSwitch=e.renderTextbox=e.renderEntityDropdown=e.renderFiller=void 0;const i=n(936),r=n(9049);e.renderFiller=()=>i.html`
`,e.renderEntityDropdown=(t,e)=>{var n;return i.html` -
- - -
- `},e.renderTextbox=(t,e)=>{var n;return i.html` -
- - -
- `},e.renderSwitch=(t,e)=>i.html` -
- - - -
- `,e.renderDropdown=(t,e)=>{var n;const o=null!==(n=e.items)&&void 0!==n?n:(0,r.getEntitiesByDomain)(t._hass,e.domain);return i.html` -
- -
- `},e.renderRadio=(t,e)=>i.html` -
- - ${e.items.map((n=>i.html` - - - - `))} -
- `,e.renderCheckboxes=(t,e)=>i.html` - - ${e.items.map((n=>{var r;return i.html` -
- - - -
- `}))} - `},9049:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getDropdownOptionsFromEnum=e.formatList=e.getEntitiesByDeviceClass=e.getEntitiesByDomain=void 0,e.getEntitiesByDomain=(t,n)=>Object.keys(t.states).filter((t=>t.substr(0,t.indexOf("."))===n)).map((n=>(0,e.formatList)(n,t))),e.getEntitiesByDeviceClass=(t,n,i)=>Object.keys(t.states).filter((e=>e.substr(0,e.indexOf("."))===n&&t.states[e].attributes.device_class===i)).map((n=>(0,e.formatList)(n,t))),e.formatList=(t,e)=>({label:e.states[t].attributes.friendly_name,value:t}),e.getDropdownOptionsFromEnum=t=>{const e=[];for(const[n,i]of Object.entries(t))e.push({value:i,label:n});return e}},6197:(t,e,n)=>{n.r(e),n.d(e,{DEFAULT_DOMAIN_ICON:()=>X,DEFAULT_PANEL:()=>J,DEFAULT_VIEW_ENTITY_ID:()=>st,DOMAINS_HIDE_MORE_INFO:()=>et,DOMAINS_MORE_INFO_NO_HISTORY:()=>nt,DOMAINS_TOGGLE:()=>rt,DOMAINS_WITH_CARD:()=>Z,DOMAINS_WITH_MORE_INFO:()=>tt,NumberFormat:()=>i,STATES_OFF:()=>it,TimeFormat:()=>r,UNIT_C:()=>ot,UNIT_F:()=>at,applyThemesOnElement:()=>L,computeCardSize:()=>V,computeDomain:()=>j,computeEntity:()=>H,computeRTL:()=>U,computeRTLDirection:()=>G,computeStateDisplay:()=>K,computeStateDomain:()=>B,createThing:()=>ut,debounce:()=>ht,domainIcon:()=>pt,evaluateFilter:()=>ft,fireEvent:()=>lt,fixedIcons:()=>mt,formatDate:()=>d,formatDateMonth:()=>y,formatDateMonthYear:()=>g,formatDateNumeric:()=>h,formatDateShort:()=>p,formatDateTime:()=>C,formatDateTimeNumeric:()=>A,formatDateTimeWithSeconds:()=>T,formatDateWeekday:()=>l,formatDateYear:()=>b,formatNumber:()=>Q,formatTime:()=>R,formatTimeWeekday:()=>F,formatTimeWithSeconds:()=>k,forwardHaptic:()=>gt,getLovelace:()=>At,handleAction:()=>wt,handleActionConfig:()=>bt,handleClick:()=>$t,hasAction:()=>Ct,hasConfigOrEntityChanged:()=>St,hasDoubleClick:()=>Tt,isNumericState:()=>q,navigate:()=>vt,numberFormatToLocale:()=>W,relativeTime:()=>M,round:()=>z,stateIcon:()=>Et,timerTimeRemaining:()=>P,toggleEntity:()=>_t,turnOnOffEntities:()=>Dt,turnOnOffEntity:()=>yt});var i,r,o,a=function(){return a=Object.assign||function(t){for(var e,n=1,i=arguments.length;n0)return{value:Math.round(h),unit:"year"};var m=12*h+d.getMonth()-u.getMonth();if(Math.round(Math.abs(m))>0)return{value:Math.round(m),unit:"month"};var p=r/604800;return{value:Math.round(p),unit:"week"}}(t,n);return i?function(t){return new Intl.RelativeTimeFormat(t.language,{numeric:"auto"})}(e).format(r.value,r.unit):Intl.NumberFormat(e.language,{style:"unit",unit:r.unit,unitDisplay:"long"}).format(Math.abs(r.value))};function P(t){var e,n=3600*(e=t.attributes.remaining.split(":").map(Number))[0]+60*e[1]+e[2];if("active"===t.state){var i=(new Date).getTime(),r=new Date(t.last_changed).getTime();n=Math.max(n-(i-r)/1e3,0)}return n}function I(){return(I=Object.assign||function(t){for(var e=1;e-1?t.split(".")[1].length:0;n.minimumFractionDigits=i,n.maximumFractionDigits=i}return n},K=function(t,e,n,i){var r=void 0!==i?i:e.state;if("unknown"===r||"unavailable"===r)return t("state.default."+r);if(q(e)){if("monetary"===e.attributes.device_class)try{return Q(r,n,{style:"currency",currency:e.attributes.unit_of_measurement})}catch(t){}return Q(r,n)+(e.attributes.unit_of_measurement?" "+e.attributes.unit_of_measurement:"")}var o=B(e);if("input_datetime"===o){var a;if(void 0===i)return e.attributes.has_date&&e.attributes.has_time?(a=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day,e.attributes.hour,e.attributes.minute),C(a,n)):e.attributes.has_date?(a=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day),d(a,n)):e.attributes.has_time?((a=new Date).setHours(e.attributes.hour,e.attributes.minute),R(a,n)):e.state;try{var s=i.split(" ");if(2===s.length)return C(new Date(s.join("T")),n);if(1===s.length){if(i.includes("-"))return d(new Date(i+"T00:00"),n);if(i.includes(":")){var l=new Date;return R(new Date(l.toISOString().split("T")[0]+"T"+i),n)}}return i}catch(t){return i}}return"humidifier"===o&&"on"===r&&e.attributes.humidity?e.attributes.humidity+" %":"counter"===o||"number"===o||"input_number"===o?Q(r,n):e.attributes.device_class&&t("component."+o+".state."+e.attributes.device_class+"."+r)||t("component."+o+".state._."+r)||r},X="mdi:bookmark",J="lovelace",Z=["climate","cover","configurator","input_select","input_number","input_text","lock","media_player","scene","script","timer","vacuum","water_heater","weblink"],tt=["alarm_control_panel","automation","camera","climate","configurator","cover","fan","group","history_graph","input_datetime","light","lock","media_player","script","sun","updater","vacuum","water_heater","weather"],et=["input_number","input_select","input_text","scene","weblink"],nt=["camera","configurator","history_graph","scene"],it=["closed","locked","off"],rt=new Set(["fan","input_boolean","light","switch","group","automation"]),ot="°C",at="°F",st="group.default_view",lt=function(t,e,n,i){i=i||{},n=null==n?{}:n;var r=new Event(e,{bubbles:void 0===i.bubbles||i.bubbles,cancelable:Boolean(i.cancelable),composed:void 0===i.composed||i.composed});return r.detail=n,t.dispatchEvent(r),r},ct=new Set(["call-service","divider","section","weblink","cast","select"]),dt={alert:"toggle",automation:"toggle",climate:"climate",cover:"cover",fan:"toggle",group:"group",input_boolean:"toggle",input_number:"input-number",input_select:"input-select",input_text:"input-text",light:"toggle",lock:"lock",media_player:"media-player",remote:"toggle",scene:"scene",script:"script",sensor:"sensor",timer:"timer",switch:"toggle",vacuum:"toggle",water_heater:"climate",input_datetime:"input-datetime"},ut=function(t,e){void 0===e&&(e=!1);var n=function(t,e){return i("hui-error-card",{type:"error",error:t,config:e})},i=function(t,e){var i=window.document.createElement(t);try{if(!i.setConfig)return;i.setConfig(e)}catch(i){return console.error(t,i),n(i.message,e)}return i};if(!t||"object"!=typeof t||!e&&!t.type)return n("No type defined",t);var r=t.type;if(r&&r.startsWith("custom:"))r=r.substr(7);else if(e)if(ct.has(r))r="hui-"+r+"-row";else{if(!t.entity)return n("Invalid config given.",t);var o=t.entity.split(".",1)[0];r="hui-"+(dt[o]||"text")+"-entity-row"}else r="hui-"+r+"-card";if(customElements.get(r))return i(r,t);var a=n("Custom element doesn't exist: "+t.type+".",t);a.style.display="None";var s=setTimeout((function(){a.style.display=""}),2e3);return customElements.whenDefined(t.type).then((function(){clearTimeout(s),lt(a,"ll-rebuild",{},a)})),a},ht=function(t,e,n){var i;return void 0===n&&(n=!1),function(){var r=[].slice.call(arguments),o=this,a=n&&!i;clearTimeout(i),i=setTimeout((function(){i=null,n||t.apply(o,r)}),e),a&&t.apply(o,r)}},mt={alert:"mdi:alert",automation:"mdi:playlist-play",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:settings",conversation:"mdi:text-to-speech",device_tracker:"mdi:account",fan:"mdi:fan",group:"mdi:google-circles-communities",history_graph:"mdi:chart-line",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_boolean:"mdi:drawing",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:google-pages",script:"mdi:file-document",sensor:"mdi:eye",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",switch:"mdi:flash",timer:"mdi:timer",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weblink:"mdi:open-in-new"};function pt(t,e){if(t in mt)return mt[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"mdi:bell-plus";case"armed_night":return"mdi:bell-sleep";case"disarmed":return"mdi:bell-outline";case"triggered":return"mdi:bell-ring";default:return"mdi:bell"}case"binary_sensor":return e&&"off"===e?"mdi:radiobox-blank":"mdi:checkbox-marked-circle";case"cover":return"closed"===e?"mdi:window-closed":"mdi:window-open";case"lock":return e&&"unlocked"===e?"mdi:lock-open":"mdi:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"mdi:cast-connected":"mdi:cast";case"zwave":switch(e){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),"mdi:bookmark"}}var ft=function(t,e){var n=e.value||e,i=e.attribute?t.attributes[e.attribute]:t.state;switch(e.operator||"=="){case"==":return i===n;case"<=":return i<=n;case"<":return i=":return i>=n;case">":return i>n;case"!=":return i!==n;case"regex":return i.match(n);default:return!1}},gt=function(t){lt(window,"haptic",t)},vt=function(t,e,n){void 0===n&&(n=!1),n?history.replaceState(null,"",e):history.pushState(null,"",e),lt(window,"location-changed",{replace:n})},yt=function(t,e,n){void 0===n&&(n=!0);var i,r=j(e),o="group"===r?"homeassistant":r;switch(r){case"lock":i=n?"unlock":"lock";break;case"cover":i=n?"open_cover":"close_cover";break;default:i=n?"turn_on":"turn_off"}return t.callService(o,i,{entity_id:e})},_t=function(t,e){var n=it.includes(t.states[e].state);return yt(t,e,n)},bt=function(t,e,n,i){if(i||(i={action:"more-info"}),!i.confirmation||i.confirmation.exemptions&&i.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||(gt("warning"),confirm(i.confirmation.text||"Are you sure you want to "+i.action+"?")))switch(i.action){case"more-info":(n.entity||n.camera_image)&<(t,"hass-more-info",{entityId:n.entity?n.entity:n.camera_image});break;case"navigate":i.navigation_path&&vt(0,i.navigation_path);break;case"url":i.url_path&&window.open(i.url_path);break;case"toggle":n.entity&&(_t(e,n.entity),gt("success"));break;case"call-service":if(!i.service)return void gt("failure");var r=i.service.split(".",2);e.callService(r[0],r[1],i.service_data,i.target),gt("success");break;case"fire-dom-event":lt(t,"ll-custom",i)}},wt=function(t,e,n,i){var r;"double_tap"===i&&n.double_tap_action?r=n.double_tap_action:"hold"===i&&n.hold_action?r=n.hold_action:"tap"===i&&n.tap_action&&(r=n.tap_action),bt(t,e,n,r)},$t=function(t,e,n,i,r){var o;if(r&&n.double_tap_action?o=n.double_tap_action:i&&n.hold_action?o=n.hold_action:!i&&n.tap_action&&(o=n.tap_action),o||(o={action:"more-info"}),!o.confirmation||o.confirmation.exemptions&&o.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||confirm(o.confirmation.text||"Are you sure you want to "+o.action+"?"))switch(o.action){case"more-info":(o.entity||n.entity||n.camera_image)&&(lt(t,"hass-more-info",{entityId:o.entity?o.entity:n.entity?n.entity:n.camera_image}),o.haptic&>(o.haptic));break;case"navigate":o.navigation_path&&(vt(0,o.navigation_path),o.haptic&>(o.haptic));break;case"url":o.url_path&&window.open(o.url_path),o.haptic&>(o.haptic);break;case"toggle":n.entity&&(_t(e,n.entity),o.haptic&>(o.haptic));break;case"call-service":if(!o.service)return;var a=o.service.split(".",2),s=a[0],l=a[1],c=I({},o.service_data);"entity"===c.entity_id&&(c.entity_id=n.entity),e.callService(s,l,c,o.target),o.haptic&>(o.haptic);break;case"fire-dom-event":lt(t,"ll-custom",o),o.haptic&>(o.haptic)}};function Ct(t){return void 0!==t&&"none"!==t.action}function St(t,e,n){if(e.has("config")||n)return!0;if(t.config.entity){var i=e.get("hass");return!i||i.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}function Tt(t){return void 0!==t&&"none"!==t.action}var Dt=function(t,e,n){void 0===n&&(n=!0);var i={};e.forEach((function(e){if(it.includes(t.states[e].state)===n){var r=j(e),o=["cover","lock"].includes(r)?r:"homeassistant";o in i||(i[o]=[]),i[o].push(e)}})),Object.keys(i).forEach((function(e){var r;switch(e){case"lock":r=n?"unlock":"lock";break;case"cover":r=n?"open_cover":"close_cover";break;default:r=n?"turn_on":"turn_off"}t.callService(e,r,{entity_id:i[e]})}))},At=function(){var t=document.querySelector("home-assistant");if(t=(t=(t=(t=(t=(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root")){var e=t.lovelace;return e.current_view=t.___curView,e}return null},xt={humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",temperature:"mdi:thermometer",pressure:"mdi:gauge",power:"mdi:flash",signal_strength:"mdi:wifi"},Rt={binary_sensor:function(t,e){var n="off"===t;switch(null==e?void 0:e.attributes.device_class){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:server-network-off":"mdi:server-network";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"power":case"plug":return n?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness-5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:walk":"mdi:run";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"running":return n?"mdi:stop":"mdi:play";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"mdi:garage-open":"mdi:garage";case"door":return e?"mdi:door-open":"mdi:door-closed";case"shutter":return e?"mdi:window-shutter-open":"mdi:window-shutter";case"blind":return e?"mdi:blinds-open":"mdi:blinds";case"window":return e?"mdi:window-open":"mdi:window-closed";default:return pt("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in xt)return xt[e];if("battery"===e){var n=Number(t.state);if(isNaN(n))return"mdi:battery-unknown";var i=10*Math.round(n/10);return i>=100?"mdi:battery":i<=0?"mdi:battery-alert":"hass:battery-"+i}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"mdi:thermometer":pt("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?pt("input_datetime"):"mdi:calendar":"mdi:clock"}},Et=function(t){if(!t)return"mdi:bookmark";if(t.attributes.icon)return t.attributes.icon;var e=j(t.entity_id);return e in Rt?Rt[e](t):pt(e,t.state)}},239:function(t,e){var n=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.ClientBase=void 0,e.ClientBase=class{GetData(t,e,i){return n(this,void 0,void 0,(function*(){const n=localStorage.getItem(t);if(n&&e){const t=JSON.parse(n),e=new Date;if(e.setHours(e.getHours()-i),new Date(t.created)>e)return JSON.parse(t.data)}const r=yield fetch(`${this.baseUrl}/${t}`,{headers:{Accept:"application/json"}});if(!r||!r.ok)return Promise.reject(r);const o=yield r.json(),a={data:JSON.stringify(o),created:new Date};return e&&localStorage.setItem(t,JSON.stringify(a)),o}))}}},171:function(t,e,n){var i=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const r=n(8593),o=n(239);class a extends o.ClientBase{constructor(){super(...arguments),this.baseUrl="https://ergast.com/api/f1"}GetSchedule(t){return i(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}.json`,!0,72)).MRData.RaceTable.Races}))}GetLastResult(){return i(this,void 0,void 0,(function*(){const t=(0,r.getRefreshTime)("current/last/results.json");return(yield this.GetData("current/last/results.json",!0,t)).MRData.RaceTable.Races[0]}))}GetDriverStandings(){return i(this,void 0,void 0,(function*(){const t=(0,r.getRefreshTime)("current/driverStandings.json");return(yield this.GetData("current/driverStandings.json",!0,t)).MRData.StandingsTable.StandingsLists[0].DriverStandings}))}GetConstructorStandings(){return i(this,void 0,void 0,(function*(){const t=(0,r.getRefreshTime)("current/constructorStandings.json");return(yield this.GetData("current/constructorStandings.json",!0,t)).MRData.StandingsTable.StandingsLists[0].ConstructorStandings}))}GetSprintResults(t,e){return i(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}/${e}/sprint.json`,!1,0)).MRData.RaceTable}))}GetQualifyingResults(t,e){return i(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}/${e}/qualifying.json`,!1,0)).MRData.RaceTable}))}GetResults(t,e){return i(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}/${e}/results.json`,!1,0)).MRData.RaceTable}))}GetSeasons(){return i(this,void 0,void 0,(function*(){return(yield this.GetData("seasons.json?limit=200",!0,72)).MRData.SeasonTable.Seasons}))}GetSeasonRaces(t){return i(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}.json`,!0,72)).MRData.RaceTable.Races}))}GetLastYearsResults(t){return i(this,void 0,void 0,(function*(){const e=(new Date).getFullYear()-1,n=(yield this.GetData(`${e}.json`,!0,72)).MRData.RaceTable.Races.findIndex((e=>e.Circuit.circuitName===t))+1;return(yield this.GetData(`${e}/${n}/results.json`,!1,0)).MRData.RaceTable.Races[0]}))}}e.default=a},4099:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class{GetImage(t){const e=localStorage.getItem(t);if(e){const t=JSON.parse(e),n=new Date;if(n.setHours(n.getHours()-672),new Date(t.created)>n)return t.data}return fetch(t).then((t=>t.blob())).then((e=>{const n=new FileReader;n.readAsDataURL(e),n.onloadend=function(){const e={data:n.result,created:new Date};return localStorage.setItem(t,JSON.stringify(e)),e.data}})),t}}},2930:function(t,e,n){var i=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const r=n(239);class o extends r.ClientBase{constructor(){super(...arguments),this.baseUrl="https://restcountries.com/v2"}GetAll(){return i(this,void 0,void 0,(function*(){return yield this.GetData("all",!0,730)}))}GetCountriesFromLocalStorage(){const t=localStorage.getItem("all");if(t){const e=JSON.parse(t);return JSON.parse(e.data)}return[]}}e.default=o},4820:function(t,e,n){var i=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const r=n(239);class o extends r.ClientBase{constructor(t,e){super(),this.unitGroup="metric",this.baseUrl="https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline",this.apiKey=t,this.unitGroup=null!=e?e:this.unitGroup}getWeatherData(t,e,n){return i(this,void 0,void 0,(function*(){const i=`${t},${e}/${n}?unitGroup=${this.unitGroup}&key=${this.apiKey}&contentType=json`;return yield this.GetData(i,!0,1)}))}}e.default=o},5243:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BaseCard=void 0;const i=n(171),r=n(4099),o=n(4820);e.BaseCard=class{constructor(t){var e,n;this.config=t.config,this.client=new i.default,this.hass=t._hass,this.parent=t,this.weatherClient=new o.default(null!==(n=null===(e=this.config.weather_options)||void 0===e?void 0:e.api_key)&&void 0!==n?n:""),this.imageClient=new r.default}translation(t){return!this.config.translations||Object.keys(this.config.translations).indexOf(t)<0?this.defaultTranslations[t]:this.config.translations[t]}getProperties(){var t,e;const n=null===(t=this.parent.properties)||void 0===t?void 0:t.get("cardValues");return{races:null==n?void 0:n.races,selectedRace:null==n?void 0:n.selectedRace,selectedSeason:null==n?void 0:n.selectedSeason,selectedTabIndex:null!==(e=null==n?void 0:n.selectedTabIndex)&&void 0!==e?e:0}}getParentCardValues(){var t,e;const n=null!==(t=this.parent.properties)&&void 0!==t?t:new Map;return{properties:null!==(e=n.get("cardValues"))&&void 0!==e?e:{},cardValues:n}}}},6521:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(3692),r=n(7345),o=n(8593),a=n(5243);class s extends a.BaseCard{constructor(t){super(t),this.defaultTranslations={constructor:"Constructor",points:"Pts",wins:"Wins"}}cardSize(){return 11}renderStandingRow(t){var e;return i.html` - - ${t.position} - ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_teamlogo)?i.html` `:""}${t.Constructor.name} - ${t.points} - ${t.wins} - `}render(){return i.html`${(0,r.until)(this.client.GetConstructorStandings().then((t=>i.html` - - - - - - - - - - - ${(0,o.reduceArray)(t,this.config.row_limit).map((t=>this.renderStandingRow(t)))} - -
 ${this.translation("constructor")}${this.translation("points")}${this.translation("wins")}
- `)).catch((()=>i.html`${(0,o.getApiErrorMessage)("standings")}`)),i.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=s},2765:function(t,e,n){var i=this&&this.__await||function(t){return this instanceof i?(this.v=t,this):new i(t)},r=this&&this.__asyncGenerator||function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(t,e||[]),a=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(t){o[t]&&(r[t]=function(e){return new Promise((function(n,i){a.push([t,e,n,i])>1||l(t,e)}))})}function l(t,e){try{(n=o[t](e)).value instanceof i?Promise.resolve(n.value.v).then(c,d):u(a[0][2],n)}catch(t){u(a[0][3],t)}var n}function c(t){l("next",t)}function d(t){l("throw",t)}function u(t,e){t(e),a.shift(),a.length&&l(a[0][0],a[0][1])}};Object.defineProperty(e,"__esModule",{value:!0});const o=n(3692),a=n(7345),s=n(8593),l=n(5243),c=n(530),d=n(6197),u=n(8342),h=n(9098);class m extends l.BaseCard{constructor(t){var e;super(t),this.defaultTranslations={days:"d",hours:"h",minutes:"m",seconds:"s",endofseason:"Season is over. See you next year!",racenow:"We are racing!",date:"Date",practice1:"Practice 1",practice2:"Practice 2",practice3:"Practice 3",race:"Race",racename:"Race name",circuitname:"Circuit name",location:"Location",city:"City",racetime:"Race",sprint:"Sprint",qualifying:"Qualifying",until:"Until"},this.config.countdown_type=null!==(e=this.config.countdown_type)&&void 0!==e?e:h.CountdownType.Race}cardSize(){return this.config.show_raceinfo?12:6}renderHeader(t,e){return this.config.show_raceinfo?o.html` - ${(0,s.renderRaceInfo)(this,t,e)}
${(0,s.renderHeader)(this,t,!0)}
`:null}countDownTillDate(t){return r(this,arguments,(function*(){for(;t>new Date;){const e=(new Date).getTime(),n=t.getTime()-e,r=Math.floor(n/864e5),o=Math.floor(n%864e5/36e5),a=Math.floor(n%36e5/6e4),s=Math.floor(n%6e4/1e3);yield yield i(`${r}${this.translation("days")} ${o}${this.translation("hours")} ${a}${this.translation("minutes")} ${s}${this.translation("seconds")} `),yield i(new Promise((t=>setTimeout(t,1e3))))}yield yield i(this.translation("racenow"))}))}render(){const t=t=>{this.hass&&this.config.actions&&t.detail.action&&(0,s.clickHandler)(this.parent,this.config,this.hass,t)};return o.html`${(0,a.until)(this.client.GetSchedule((new Date).getFullYear()).then((e=>{var n,i;const{nextRace:r,raceDateTime:a,countdownType:l}=this.getNextEvent(e);if(!r)return(0,s.getEndOfSeasonMessage)(this.translation("endofseason"));const h=this.countDownTillDate(a),m=void 0!==this.config.actions;return o.html` - - - - - - - ${Array.isArray(this.config.countdown_type)&&this.config.countdown_type.length>1?o.html` - - `:null} -
-

   ${r.round} : ${r.raceName}

-
-

${(0,c.asyncReplace)(h)}

-
-

${this.translation("until")} ${this.translation(l.toLowerCase())}

-
- ${this.renderHeader(r,a)}`})).catch((()=>o.html`${(0,s.getApiErrorMessage)("next race")}`)),o.html`${(0,s.getApiLoadingMessage)()}`)}`}getNextEvent(t){var e;const n=t.filter((t=>{const e=new Date(t.date+"T"+t.time);return e.setHours(e.getHours()+3),e>=new Date}))[0];let i=null,r=this.config.countdown_type;if(n){const t=this.config.countdown_type,o=[{Date:new Date(n.FirstPractice.date+"T"+n.FirstPractice.time),Type:h.CountdownType.Practice1},{Date:new Date(n.SecondPractice.date+"T"+n.SecondPractice.time),Type:h.CountdownType.Practice2},{Date:n.ThirdPractice?new Date(n.ThirdPractice.date+"T"+n.ThirdPractice.time):null,Type:h.CountdownType.Practice3},{Date:n.Sprint?new Date(n.Sprint.date+"T"+n.Sprint.time):null,Type:h.CountdownType.Sprint},{Date:new Date(n.Qualifying.date+"T"+n.Qualifying.time),Type:h.CountdownType.Qualifying},{Date:new Date(n.date+"T"+n.time),Type:h.CountdownType.Race}].filter((t=>t.Date)).filter((t=>t.Date>new Date)).sort(((t,e)=>t.Date.getTime()-e.Date.getTime())).filter((e=>null==t?void 0:t.includes(e.Type)))[0];i=null==o?void 0:o.Date,r=null!==(e=null==o?void 0:o.Type)&&void 0!==e?e:r}return{nextRace:n,raceDateTime:i,countdownType:r}}}e.default=m},9412:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(3692),r=n(7345),o=n(8593),a=n(5243);class s extends a.BaseCard{constructor(t){super(t),this.defaultTranslations={driver:"Driver",team:"Team",points:"Pts",wins:"Wins"}}cardSize(){return 12}renderStandingRow(t){var e,n;return i.html` - - ${t.position} - ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?i.html` `:""}${t.Driver.code} - ${(0,o.getDriverName)(t.Driver,this.config)} - ${(null===(n=this.config.standings)||void 0===n?void 0:n.show_team)?i.html`${(0,o.renderConstructorColumn)(this,t.Constructors[0])}`:""} - ${t.points} - ${t.wins} - `}render(){return i.html`${(0,r.until)(this.client.GetDriverStandings().then((t=>{var e;return i.html` - - - - - - ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_team)?i.html``:""} - - - - - - ${(0,o.reduceArray)(t,this.config.row_limit).map((t=>this.renderStandingRow(t)))} - -
 ${this.translation("driver")}${this.translation("team")}${this.translation("points")}${this.translation("wins")}
- `})).catch((()=>i.html`${(0,o.getApiErrorMessage)("standings")}`)),i.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=s},1958:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(3692),r=n(7345),o=n(8593),a=n(5243);class s extends a.BaseCard{constructor(t){super(t),this.defaultTranslations={driver:"Driver",grid:"Grid",points:"Points",status:"Status"}}cardSize(){return 11}renderResultRow(t){return i.html` - - ${t.position} - ${(0,o.getDriverName)(t.Driver,this.config)} - ${t.grid} - ${t.points} - ${t.status} - `}render(){return i.html`${(0,r.until)(this.client.GetLastResult().then((t=>i.html` - - - - -
${(0,o.renderHeader)(this,t)}
- - - - - - - - - - - - ${(0,o.reduceArray)(t.Results,this.config.row_limit).map((t=>this.renderResultRow(t)))} - -
 ${this.translation("driver")}${this.translation("grid")}${this.translation("points")}${this.translation("status")}
`)).catch((()=>i.html`${(0,o.getApiErrorMessage)("last result")}`)),i.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=s},1249:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(3692),r=n(7345),o=n(8593),a=n(5243),s=n(3247);class l extends a.BaseCard{constructor(){super(...arguments),this.defaultTranslations={date:"Date",practice1:"Practice 1",practice2:"Practice 2",practice3:"Practice 3",race:"Race",racename:"Race name",circuitname:"Circuit name",location:"Location",city:"City",racetime:"Race",sprint:"Sprint",qualifying:"Qualifying",endofseason:"Season is over. See you next year!"}}cardSize(){return 8}render(){return i.html`${(0,r.until)(this.client.GetSchedule((new Date).getFullYear()).then((t=>{const e=this.config.next_race_delay||0,n=t.filter((t=>{const n=new Date(t.date+"T"+t.time);return n.setHours(n.getHours()+e),n>=new Date}))[0];return n?i.html` - - - - - ${this.config.show_raceinfo?(0,o.renderRaceInfo)(this,n):this.config.only_show_date?i.html` - - `:null} - -
${(0,o.renderHeader)(this,n)}
-

${(0,s.formatDateNumeric)(new Date(n.date+"T"+n.time),this.hass.locale,this.config.date_locale)}

-
`:(0,o.getEndOfSeasonMessage)(this.translation("endofseason"))})).catch((()=>i.html`${(0,o.getApiErrorMessage)("next race")}`)),i.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=l},5903:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(3692),r=n(7345),o=n(8593),a=n(5243);class s extends a.BaseCard{constructor(t){super(t),this.defaultTranslations={driver:"Driver",grid:"Grid",team:"Team",points:"Points",status:"Status",raceheader:"Race",seasonheader:"Season",selectseason:"Select season",selectrace:"Select race",noresults:"Please select a race thats already been run.",q1:"Q1",q2:"Q2",q3:"Q3"},this.icons={sprint:"mdi:flag-checkered",qualifying:"mdi:timer-outline",results:"mdi:trophy"},this.renderTabsHtml=(t,e,n)=>n?i.html` - - ${t.filter((t=>t.content)).length>0?i.html` - - `:i.html``} -
${this.renderHeader(n)}
- this.setSelectedTabIndex(t.detail.index)} - > - ${t.filter((t=>!t.hide)).map((t=>i.html` - - - `))} - -
-
- ${t.filter((t=>!t.hide)).find(((t,n)=>n==e)).content} -
-
-
${this.translation("noresults")}
`:i.html``}cardSize(){return 12}renderTabs(t){return[{title:"Results",icon:this.icon("results"),content:this.renderResults(t),order:this.tabOrder("results")},{title:"Qualifying",icon:this.icon("qualifying"),content:this.renderQualifying(t),order:this.tabOrder("qualifying")},{title:"Sprint",icon:this.icon("sprint"),content:this.renderSprint(t),hide:!(null==t?void 0:t.SprintResults),order:this.tabOrder("sprint")}].sort(((t,e)=>t.order-e.order))}renderSprint(t){var e;return(null==t?void 0:t.SprintResults)?i.html` - - - - - ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_team)?i.html``:""} - - - - - - - ${(0,o.reduceArray)(t.SprintResults,this.config.row_limit).map((t=>this.renderResultRow(t,!1)))} - -
 ${this.translation("driver")}${this.translation("team")}${this.translation("grid")}${this.translation("points")}${this.translation("status")}
`:null}renderQualifying(t){var e;return(null==t?void 0:t.QualifyingResults)?i.html` - - - - - ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_team)?i.html``:""} - - - - - - - ${(0,o.reduceArray)(t.QualifyingResults,this.config.row_limit).map((t=>this.renderQualifyingResultRow(t)))} - -
 ${this.translation("driver")}${this.translation("team")}${this.translation("q1")}${this.translation("q2")}${this.translation("q3")}
`:null}renderResults(t){var e,n;const r=null===(e=null==t?void 0:t.Results)||void 0===e?void 0:e.filter((t=>{var e;return"1"===(null===(e=t.FastestLap)||void 0===e?void 0:e.rank)}))[0];return(null==t?void 0:t.Results)?i.html` - - - - - ${(null===(n=this.config.standings)||void 0===n?void 0:n.show_team)?i.html``:""} - - - - - - - ${(0,o.reduceArray)(t.Results,this.config.row_limit).map((t=>this.renderResultRow(t,t.position===(null==r?void 0:r.position))))} - - ${r?i.html` - - - - `:""} -
 ${this.translation("driver")}${this.translation("team")}${this.translation("grid")}${this.translation("points")}${this.translation("status")}
* Fastest lap: ${r.FastestLap.Time.time}
`:null}renderResultRow(t,e){var n,r;return i.html` - - ${t.position} - ${(null===(n=this.config.standings)||void 0===n?void 0:n.show_flag)?i.html` `:""}${(0,o.getDriverName)(t.Driver,this.config)}${e?" *":""} - ${(null===(r=this.config.standings)||void 0===r?void 0:r.show_team)?i.html`${(0,o.renderConstructorColumn)(this,t.Constructor)}`:""} - ${t.grid} - ${t.points} - ${t.status} - `}renderQualifyingResultRow(t){var e,n;return i.html` - - ${t.position} - ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?i.html` `:""}${(0,o.getDriverName)(t.Driver,this.config)} - ${(null===(n=this.config.standings)||void 0===n?void 0:n.show_team)?i.html`${(0,o.renderConstructorColumn)(this,t.Constructor)}`:""} - ${t.Q1} - ${t.Q2} - ${t.Q3} - `}renderHeader(t){return null==t||parseInt(t.season)<2018?null:(0,o.renderHeader)(this,t)}render(){const{races:t,selectedRace:e,selectedSeason:n,selectedTabIndex:a}=this.getProperties();void 0===n&&this.getLastResult();const s=t=>{this.setRaces(t)},l=this.renderTabs(e);return i.html` - - - - - -
- ${this.translation("seasonheader")}
- ${(0,r.until)(this.client.GetSeasons().then((t=>{const e=t.reverse();return i.html``})).catch((()=>i.html`${(0,o.getApiErrorMessage)("seasons")}`)),i.html`${(0,o.getApiLoadingMessage)()}`)} -
- ${this.translation("raceheader")}
- -
- ${this.renderTabsHtml(l,a,e)}`}setSelectedRace(t){const e=parseInt(t.target.value),{properties:n,cardValues:i}=this.getParentCardValues();n.selectedRound=e;const r=n.selectedSeason;Promise.all([this.client.GetResults(r,e),this.client.GetQualifyingResults(r,e),this.client.GetSprintResults(r,e),this.client.GetSchedule(r)]).then((([t,r,o,a])=>{var s;let l=t.Races[0];l?(l.QualifyingResults=r.Races[0].QualifyingResults,l.SprintResults=null===(s=null==o?void 0:o.Races[0])||void 0===s?void 0:s.SprintResults,n.selectedSeason=l.season):l=a.filter((t=>parseInt(t.round)==e))[0],n.selectedRace=l,i.set("cardValues",n),this.parent.properties=i}))}setRaces(t){const e=t.target.value,{properties:n,cardValues:i}=this.getParentCardValues();this.client.GetSeasonRaces(parseInt(e)).then((t=>{n.selectedSeason=e,n.selectedRace=void 0,n.races=t,i.set("cardValues",n),this.parent.properties=i}))}getUpcomingRace(t,e){const n=e.filter((e=>{const n=new Date(e.date+"T"+e.time),i=new Date(e.Qualifying.date+"T"+e.Qualifying.time),r=e.Sprint?new Date(e.Sprint.date+"T"+e.Sprint.time):null;return n>=t&&i0?n[0]:null}getLastResult(){const t=new Date;Promise.all([this.client.GetSchedule(t.getFullYear()),this.client.GetLastResult()]).then((([e,n])=>{const i=this.getUpcomingRace(t,e);let r=(new Date).getFullYear(),o=null!==i?parseInt(i.round):0,a={};null!==i?(a=i,o=parseInt(a.round),r=parseInt(a.season)):(a=n,o=parseInt(n.round),r=parseInt(n.season)),Promise.all([this.client.GetQualifyingResults(r,o),this.client.GetSprintResults(r,o),this.client.GetSeasonRaces(r)]).then((([t,e,n])=>{var i;const{properties:o,cardValues:s}=this.getParentCardValues();a.QualifyingResults=t.Races[0].QualifyingResults,a.SprintResults=null===(i=e.Races[0])||void 0===i?void 0:i.SprintResults,o.races=n,o.selectedRace=a,o.selectedSeason=r.toString(),s.set("cardValues",o),this.parent.properties=s}))}))}setSelectedTabIndex(t){const{properties:e,cardValues:n}=this.getParentCardValues();e.selectedTabIndex=t,n.set("cardValues",e),this.parent.properties=n}icon(t){return!this.config.icons||Object.keys(this.config.icons).indexOf(t)<0?this.icons[t]:this.config.icons[t]}tabOrder(t){var e,n;const i=null!==(n=null===(e=this.config.tabs_order)||void 0===e?void 0:e.map((t=>t.toLowerCase())))&&void 0!==n?n:["results","qualifying","sprint"];return i.indexOf(t)}}e.default=s},6496:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0});const i=n(6197),r=n(3692),o=n(7345),a=n(3247),s=n(9098),l=n(8593),c=n(5243);class d extends c.BaseCard{constructor(t){super(t),this.defaultTranslations={date:"Date",race:"Race",time:"Time",location:"Location",endofseason:"Season is over. See you next year!"}}cardSize(){return 12}renderLocation(t){var e;const n=r.html`${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?r.html` `:""}${t.Location.locality}, ${t.Location.country}`;return this.config.location_clickable?r.html`${n}`:n}renderScheduleRow(t){const e=new Date(t.date+"T"+t.time),n=this.config.previous_race&&e - ${t.round} - ${t.Circuit.circuitName} - ${this.renderLocation(t.Circuit)} - ${(0,a.formatDate)(e,this.hass.locale,this.config.date_locale)} - ${(0,i.formatTime)(e,this.hass.locale)} - `}render(){return r.html`${(0,o.until)(this.client.GetSchedule((new Date).getFullYear()).then((t=>{const e=this.config.previous_race===s.PreviousRaceDisplay.Hide?t.filter((t=>new Date(t.date+"T"+t.time)>=new Date)):t;return e.filter((t=>new Date(t.date+"T"+t.time)>=new Date))[0]?r.html` - - - - - - - - - - - ${(0,l.reduceArray)(e,this.config.row_limit).map((t=>this.renderScheduleRow(t)))} - -
 ${this.translation("race")}${this.translation("location")}${this.translation("date")}${this.translation("time")}
`:(0,l.getEndOfSeasonMessage)(this.translation("endofseason"))})).catch((()=>r.html`${(0,l.getApiErrorMessage)("schedule")}`)),r.html`${(0,l.getApiLoadingMessage)()}`)}`}}e.default=d},4312:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CARD_EDITOR_NAME=e.CARD_NAME=void 0,e.CARD_NAME="formulaone-card",e.CARD_EDITOR_NAME=`${e.CARD_NAME}-editor`},8342:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.actionHandler=e.actionHandlerBind=void 0;const i=n(6370),r=n(8082),o=n(6197),a="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.maxTouchPoints>0;class s extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:a?"100px":"50px",height:a?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((t=>{document.addEventListener(t,(()=>{clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0}),{passive:!0})}))}bind(t,e){if(t.actionHandler)return;t.actionHandler=!0,t.addEventListener("contextmenu",(t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1}));const n=t=>{let e,n;this.held=!1,t.touches?(e=t.touches[0].pageX,n=t.touches[0].pageY):(e=t.pageX,n=t.pageY),this.timer=window.setTimeout((()=>{this.startAnimation(e,n),this.held=!0}),this.holdTime)},i=n=>{n.preventDefault(),["touchend","touchcancel"].includes(n.type)&&void 0===this.timer||(clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0,this.held?(0,o.fireEvent)(t,"action",{action:"hold"}):e.hasDoubleClick?"click"===n.type&&n.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout((()=>{this.dblClickTimeout=void 0,(0,o.fireEvent)(t,"action",{action:"tap"})}),250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,(0,o.fireEvent)(t,"action",{action:"double_tap"})):(0,o.fireEvent)(t,"action",{action:"tap"}))};t.addEventListener("touchstart",n,{passive:!0}),t.addEventListener("touchend",i),t.addEventListener("touchcancel",i),t.addEventListener("mousedown",n,{passive:!0}),t.addEventListener("click",i),t.addEventListener("keyup",(t=>{13===t.keyCode&&i(t)}))}startAnimation(t,e){Object.assign(this.style,{left:`${t}px`,top:`${e}px`,display:null}),this.ripple.disabled=!1,this.ripple.active=!0,this.ripple.unbounded=!0}stopAnimation(){this.ripple.active=!1,this.ripple.disabled=!0,this.style.display="none"}}customElements.define("action-handler-formulaonecard",s),e.actionHandlerBind=(t,e)=>{const n=(()=>{const t=document.body;if(t.querySelector("action-handler-formulaonecard"))return t.querySelector("action-handler-formulaonecard");const e=document.createElement("action-handler-formulaonecard");return t.appendChild(e),e})();n&&n.bind(t,e)},e.actionHandler=(0,r.directive)(class extends r.Directive{update(t,[n]){return(0,e.actionHandlerBind)(t.element,n),i.noChange}render(t){}})},1384:function(t,e,n){var i=this&&this.__decorate||function(t,e,n,i){var r,o=arguments.length,a=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(a=(o<3?r(a):o>3?r(e,n,a):r(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a};Object.defineProperty(e,"__esModule",{value:!0}),e.FormulaOneCardEditor=void 0;const r=n(6370),o=n(3692),a=n(9662),s=n(4312),l=n(9098),c=n(8455),d=n(7399),u=n(9049);let h=class extends c.default{render(){return this._hass&&this._config?this.renderForm([{controls:[{label:"Card Type (Required)",configValue:"card_type",type:d.FormControlType.Dropdown,items:(0,u.getDropdownOptionsFromEnum)(l.FormulaOneCardType)}]},{controls:[{label:"Title",configValue:"title",type:d.FormControlType.Textbox}]},{label:"Basic configuration",cssClass:"side-by-side",controls:[{label:"Use F1 font",configValue:"f1_font",type:d.FormControlType.Switch},{label:"Image clickable",configValue:"image_clickable",type:d.FormControlType.Switch},{label:"Show carnumber",configValue:"show_carnumber",type:d.FormControlType.Switch},{label:"Location clickable",configValue:"location_clickable",type:d.FormControlType.Switch},{label:"Show race information",configValue:"show_raceinfo",type:d.FormControlType.Switch},{label:"Hide track layout",configValue:"hide_tracklayout",type:d.FormControlType.Switch},{label:"Hide race dates and times",configValue:"hide_racedatetimes",type:d.FormControlType.Switch},{label:"Show last years result",configValue:"show_lastyears_result",type:d.FormControlType.Switch},{label:"Only show date",configValue:"only_show_date",type:d.FormControlType.Switch},{type:d.FormControlType.Filler},{label:"Row limit",configValue:"row_limit",type:d.FormControlType.Textbox},{label:"Date locale",configValue:"date_locale",type:d.FormControlType.Textbox}]},{label:"Countdown Type",hidden:this._config.card_type!==l.FormulaOneCardType.Countdown,cssClass:"side-by-side",controls:[{configValue:"countdown_type",type:d.FormControlType.Checkboxes,items:(0,u.getDropdownOptionsFromEnum)(l.CountdownType)}]},{hidden:this._config.card_type!==l.FormulaOneCardType.NextRace,controls:[{label:"Next race delay",configValue:"next_race_delay",type:d.FormControlType.Textbox}]},{hidden:this._config.card_type!==l.FormulaOneCardType.Schedule,controls:[{label:"Previous race",configValue:"previous_race",type:d.FormControlType.Dropdown,items:(0,u.getDropdownOptionsFromEnum)(l.PreviousRaceDisplay)}]},{label:"Standings",hidden:this._config.card_type!==l.FormulaOneCardType.ConstructorStandings&&this._config.card_type!==l.FormulaOneCardType.DriverStandings,cssClass:"side-by-side",controls:[{label:"Show team",configValue:"standings.show_team",type:d.FormControlType.Switch},{label:"Show flag",configValue:"standings.show_flag",type:d.FormControlType.Switch},{label:"Show teamlogo",configValue:"standings.show_teamlogo",type:d.FormControlType.Switch}]},{label:"Weather",hidden:this._config.card_type!==l.FormulaOneCardType.NextRace&&this._config.card_type!==l.FormulaOneCardType.Countdown,controls:[{label:"Show weather",configValue:"show_weather",type:d.FormControlType.Switch}]},{cssClass:"side-by-side",hidden:this._config.card_type!==l.FormulaOneCardType.NextRace&&this._config.card_type!==l.FormulaOneCardType.Countdown||!this._config.show_weather,controls:[{label:"API key",configValue:"weather_options.api_key",type:d.FormControlType.Textbox},{label:"Unit",configValue:"weather_options.unit",type:d.FormControlType.Dropdown,items:(0,u.getDropdownOptionsFromEnum)(l.WeatherUnit)},{label:"Show icon",configValue:"weather_options.show_icon",type:d.FormControlType.Switch},{label:"Show precipitation",configValue:"weather_options.show_precipitation",type:d.FormControlType.Switch},{label:"Show wind",configValue:"weather_options.show_wind",type:d.FormControlType.Switch},{label:"Show temperature",configValue:"weather_options.show_temperature",type:d.FormControlType.Switch},{label:"Show cloud coverage",configValue:"weather_options.show_cloud_cover",type:d.FormControlType.Switch},{label:"Show visibility",configValue:"weather_options.show_visibility",type:d.FormControlType.Switch}]},{label:"Tabs",hidden:this._config.card_type!==l.FormulaOneCardType.Results,controls:[{label:"Tabs order",configValue:"tabs_order",type:d.FormControlType.Textbox}]}]):o.html``}static get styles(){return r.css` - .form-row { - margin-bottom: 10px; - } - .form-control { - display: flex; - align-items: center; - } - ha-switch { - padding: 16px 6px; - } - .side-by-side { - display: flex; - flex-flow: row wrap; - } - .side-by-side > label { - width: 100%; - } - .side-by-side > .form-control { - width: 49%; - padding: 2px; - } - ha-textfield { - width: 100%; - } - .hidden { - display: none; - } - @media (max-width: 600px) { - .side-by-side > .form-control { - width: 48%; - } - } - `}};h=i([(0,a.customElement)(s.CARD_EDITOR_NAME)],h),e.FormulaOneCardEditor=h},2169:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.loadCustomFonts=void 0,e.loadCustomFonts=()=>{if(window&&document.fonts){const t=new FontFace("F1Bold","url(https://www.formula1.com/etc/designs/fom-website/fonts/F1Bold/Formula1-Bold.woff)");document.fonts.add(t),t.load()}}},3607:function(t,e,n){var i=this&&this.__decorate||function(t,e,n,i){var r,o=arguments.length,a=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,i);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(a=(o<3?r(a):o>3?r(e,n,a):r(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a},r=this&&this.__awaiter||function(t,e,n,i){return new(n||(n=Promise))((function(r,o){function a(t){try{l(i.next(t))}catch(t){o(t)}}function s(t){try{l(i.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((i=i.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const o=n(4147),a=n(9662),s=n(9098),l=n(6370),c=n(8593),d=n(2169),u=n(4299),h=n(6521),m=n(9412),p=n(6496),f=n(1249),g=n(1958),v=n(2765),y=n(5903),_=n(2930),b=n(4312);console.info(`%c ${b.CARD_NAME.toUpperCase()} %c ${o.version}`,"color: cyan; background: black; font-weight: bold;","color: darkblue; background: white; font-weight: bold;"),window.customCards=window.customCards||[],window.customCards.push({type:"formulaone-card",name:"FormulaOne card",preview:!1,description:"Present the data of Formula One in a pretty way"});let w=class extends l.LitElement{set properties(t){this._cardValues=t,this.update(t)}get properties(){return this._cardValues}constructor(){super(),this.setCountryCache()}static getConfigElement(){return r(this,void 0,void 0,(function*(){return yield Promise.resolve().then((()=>n(1384))),document.createElement(b.CARD_EDITOR_NAME)}))}setConfig(t){(0,c.checkConfig)(t),this.config=Object.assign({},t)}setCountryCache(){(new _.default).GetAll().catch((()=>{this.warning="Country API is down, so flags are not available at the moment!",this.update(this._cardValues)}))}shouldUpdate(t){return(0,c.hasConfigOrCardValuesChanged)(this,t)}set hass(t){switch(this._hass=t,this.config.hass=t,this.config.card_type){case s.FormulaOneCardType.ConstructorStandings:this.card=new h.default(this);break;case s.FormulaOneCardType.DriverStandings:this.card=new m.default(this);break;case s.FormulaOneCardType.Schedule:this.card=new p.default(this);break;case s.FormulaOneCardType.NextRace:this.card=new f.default(this);break;case s.FormulaOneCardType.LastResult:this.card=new g.default(this);break;case s.FormulaOneCardType.Countdown:this.card=new v.default(this);break;case s.FormulaOneCardType.Results:this.card=new y.default(this)}}static get styles(){return(0,d.loadCustomFonts)(),u.styles}render(){if(!this._hass||!this.config)return l.html``;try{return l.html` - - ${this.warning?l.html`${this.warning}`:""} - ${this.config.title?l.html`

${this.config.title}

`:""} - ${this.card.render()} -
- `}catch(t){return l.html`${t.toString()}`}}getCardSize(){return this.card.cardSize()}};i([(0,a.property)()],w.prototype,"_hass",void 0),i([(0,a.property)()],w.prototype,"config",void 0),i([(0,a.property)()],w.prototype,"card",void 0),i([(0,a.property)()],w.prototype,"warning",void 0),i([(0,a.property)()],w.prototype,"properties",null),w=i([(0,a.customElement)(b.CARD_NAME)],w),e.default=w},5623:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TimeFormat=e.NumberFormat=e.SECONDARY_INFO_VALUES=e.TIMESTAMP_FORMATS=e.ImageConstants=void 0,e.ImageConstants={FlagCDN:"https://flagcdn.com/w320/",TeamLogoCDN:"https://www.formula1.com/content/dam/fom-website/teams/",F1CDN:"https://www.formula1.com/content/dam/fom-website/2018-redesign-assets/"},e.TIMESTAMP_FORMATS=["relative","total","date","time","datetime"],e.SECONDARY_INFO_VALUES=["entity-id","last-changed","last-updated","last-triggered","position","tilt-position","brightness"],e.NumberFormat={language:"language",system:"system",comma_decimal:"comma_decimal",decimal_comma:"decimal_comma",space_comma:"space_comma",none:"none"},e.TimeFormat={language:"language",system:"system",am_pm:"12",twenty_four:"24"}},3247:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatDateNumeric=e.formatDate=void 0,e.formatDate=(t,e,n)=>new Intl.DateTimeFormat(null!=n?n:e.language,{month:"2-digit",day:"2-digit"}).format(t),e.formatDateNumeric=(t,e,n)=>new Intl.DateTimeFormat(null!=n?n:e.language,{year:"2-digit",month:"2-digit",day:"2-digit"}).format(t)},4347:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatDateTimeRaceInfo=e.formatDateTime=void 0;const i=n(2269);e.formatDateTime=(t,e)=>new Intl.DateTimeFormat(e.language,{year:"numeric",month:"long",day:"numeric",hour:(0,i.useAmPm)(e)?"numeric":"2-digit",minute:"2-digit",hour12:(0,i.useAmPm)(e)}).format(t),e.formatDateTimeRaceInfo=(t,e)=>new Intl.DateTimeFormat(e.language,{weekday:"short",hour:"2-digit",minute:"2-digit",hour12:(0,i.useAmPm)(e)}).format(t)},2269:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.useAmPm=void 0;const i=n(5623);e.useAmPm=t=>{if(t.time_format===i.TimeFormat.language||t.time_format===i.TimeFormat.system){const e=t.time_format===i.TimeFormat.language?t.language:void 0,n=(new Date).toLocaleString(e);return n.includes("AM")||n.includes("PM")}return t.time_format===i.TimeFormat.am_pm}},4299:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.styles=void 0;const i=n(6370);e.styles=i.css` - table { - width: 100%; - border-spacing: 0; - border-collapse: separate; - padding: 0px 16px 16px; - } - table.nopadding { - padding: 0px; - width: 100%; - border-spacing: 0; - border-collapse: separate; - } - th { - background-color: var(--table-row-alternative-background-color, #eee); - } - th, td { - padding: 5px; - text-align: left; - } - tr { - color: var(--secondary-text-color); - } - tr:nth-child(even) { - background-color: var(--table-row-alternative-background-color, #eee); - } - .text-center { - text-align: center; - } - .width-40 { - width: 40px; - } - .width-50 { - width: 50px; - } - .width-60 { - width: 60px; - } - .hide { - display: none; - } - .strikethrough { - text-decoration: line-through; - } - .italic { - font-style: italic; - } - a { - text-decoration: none; - color: var(--secondary-text-color); - } - .constructor-logo { - width: 20px; - margin: auto; - display: block; - float: left; - background-color: white; - border-radius: 50%; - margin-right: 3px; - } - .clickable { - cursor: pointer; - } - .formulaone-font { - font-family: 'F1Bold'; - } - ha-icon { - color: var(--secondary-text-color); - } - .transparent { - background-color: transparent !important; - } - .weather-info { - padding: 10px; - } - - .weather-info td { - width: 33%; - } -`},9098:(t,e)=>{var n,i,r,o;Object.defineProperty(e,"__esModule",{value:!0}),e.FormulaOneCardType=e.PreviousRaceDisplay=e.CountdownType=e.WeatherUnit=void 0,(o=e.WeatherUnit||(e.WeatherUnit={})).Metric="metric",o.MilesCelsius="uk",o.MilesFahrenheit="us",(r=e.CountdownType||(e.CountdownType={})).Race="race",r.Qualifying="qualifying",r.Practice1="practice1",r.Practice2="practice2",r.Practice3="practice3",r.Sprint="sprint",(i=e.PreviousRaceDisplay||(e.PreviousRaceDisplay={})).Strikethrough="strikethrough",i.Italic="italic",i.Hide="hide",(n=e.FormulaOneCardType||(e.FormulaOneCardType={})).DriverStandings="driver_standings",n.ConstructorStandings="constructor_standings",n.NextRace="next_race",n.Schedule="schedule",n.LastResult="last_result",n.Results="results",n.Countdown="countdown"},8593:(t,e,n)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.renderConstructorColumn=e.reduceArray=e.getRefreshTime=e.calculateWindDirection=e.renderWeatherInfo=e.renderLastYearsResults=e.renderRaceInfo=e.renderHeader=e.clickHandler=e.getEndOfSeasonMessage=e.getApiLoadingMessage=e.getApiErrorMessage=e.getDriverName=e.getCircuitName=e.getTeamImage=e.checkConfig=e.getCountryFlagByName=e.getCountryFlagByNationality=e.getCountries=e.hasConfigOrCardValuesChanged=void 0;const i=n(6370),r=n(9098),o=n(4347),a=n(6197),s=n(3247),l=n(5623),c=n(8342),d=n(2930),u=n(7345);e.hasConfigOrCardValuesChanged=(t,e)=>{if(e.has("config"))return!0;const n=e.get("card");if(n&&n.parent)return n.parent.properties!==t.properties;const i=e.get("cardValues");return!!i&&i!=t.properties},e.getCountries=()=>(new d.default).GetCountriesFromLocalStorage(),e.getCountryFlagByNationality=(t,n)=>{const i=(0,e.getCountries)().filter((t=>t.demonym==n));return i.length>1?t.imageClient.GetImage(i.sort(((t,e)=>t.population>e.population?-1:1))[0].flags.png):t.imageClient.GetImage(i[0].flags.png)},e.getCountryFlagByName=(t,n)=>{const i=(0,e.getCountries)().filter((t=>{var e;return t.name==n||t.nativeName==n||(null===(e=t.altSpellings)||void 0===e?void 0:e.includes(n))}))[0];return t.imageClient.GetImage(i.flags.png)},e.checkConfig=t=>{if(void 0===t.card_type)throw new Error("Please define FormulaOne card type (card_type).")},e.getTeamImage=(t,e)=>{e=e.toLocaleLowerCase().replace("_","-");const n=[{teamName:"red-bull",corrected:"red-bull-racing"},{teamName:"alfa",corrected:"alfa-romeo"},{teamName:"haas",corrected:"haas-f1-team"}].filter((t=>t.teamName==e));return n.length>0&&(e=n[0].corrected),t.imageClient.GetImage(`${l.ImageConstants.TeamLogoCDN}/2023/${e.toLowerCase()}-logo.png.transform/2col-retina/image.png`)},e.getCircuitName=t=>{let e=t.country.replace(" ","-");const n=[{countryDashed:"UAE",name:"Abu_Dhabi"},{countryDashed:"UK",name:"Great_Britain"},{countryDashed:"Monaco",name:"Monoco"},{countryDashed:"Azerbaijan",name:"Baku"},{countryDashed:"Saudi-Arabia",name:"Saudi_Arabia"}].filter((t=>t.countryDashed==e));return n.length>0&&(e=n[0].name),"USA"==t.country&&"Austin"!=t.locality&&(e=t.locality),"Italy"==t.country&&"Imola"==t.locality&&(e="Emilia_Romagna"),e},e.getDriverName=(t,e)=>{const n="VER"==t.code?1:t.permanentNumber;return`${t.givenName} ${t.familyName}${e.show_carnumber?` #${n}`:""}`},e.getApiErrorMessage=t=>i.html`
Error getting ${t}
`,e.getApiLoadingMessage=()=>i.html`
Loading...
`,e.getEndOfSeasonMessage=t=>i.html`
${t}
`,e.clickHandler=(t,e,n,i)=>{(0,a.handleAction)(t,n,e.actions,i.detail.action)},e.renderHeader=(t,n,o=!1)=>{var s,d;const u=(0,e.getCircuitName)(n.Circuit.Location),h=t.config.image_clickable||void 0!==t.config.actions,m=n.Circuit.url;t.config.image_clickable&&!t.config.actions&&(t.config.actions={tap_action:{action:"url",url_path:m}});const p=i.html`{t.hass&&t.config.actions&&n.detail.action&&!o&&(0,e.clickHandler)(t.parent,t.config,t.hass,n)}} - .actionHandler=${(0,c.actionHandler)({hasHold:(0,a.hasAction)(null===(s=t.config.actions)||void 0===s?void 0:s.hold_action),hasDoubleClick:(0,a.hasAction)(null===(d=t.config.actions)||void 0===d?void 0:d.double_tap_action)})} class="${h?" clickable":null}" />`,f=i.html`

  ${n.round} : ${n.raceName}

`;return i.html`${t.config.card_type==r.FormulaOneCardType.Countdown?i.html``:f} ${t.config.hide_tracklayout?i.html``:p}
`},e.renderRaceInfo=(t,n,r)=>{var a;const l=t.config,c=t.hass;if(l.hide_racedatetimes)return i.html``;const d=l.show_weather&&void 0!==(null===(a=l.weather_options)||void 0===a?void 0:a.api_key)?t.weatherClient.getWeatherData(n.Circuit.Location.lat,n.Circuit.Location.long,`${n.date}T${n.time}`):Promise.resolve(null),h=l.show_lastyears_result?t.client.GetLastYearsResults(n.Circuit.circuitName):Promise.resolve(null),m=Promise.all([d,h]);return i.html`${(0,u.until)(m.then((([a,d])=>{const u=null==a?void 0:a.days[0],h=new Date(n.date+"T"+n.time),m=(0,e.renderWeatherInfo)(u,l,null!=r?r:h),p=(0,e.renderLastYearsResults)(l,d),f=(0,o.formatDateTimeRaceInfo)(new Date(n.FirstPractice.date+"T"+n.FirstPractice.time),c.locale),g=(0,o.formatDateTimeRaceInfo)(new Date(n.SecondPractice.date+"T"+n.SecondPractice.time),c.locale),v=void 0!==n.ThirdPractice?(0,o.formatDateTimeRaceInfo)(new Date(n.ThirdPractice.date+"T"+n.ThirdPractice.time),c.locale):"-",y=(0,o.formatDateTimeRaceInfo)(h,c.locale),_=(0,o.formatDateTimeRaceInfo)(new Date(n.Qualifying.date+"T"+n.Qualifying.time),c.locale),b=void 0!==n.Sprint?(0,o.formatDateTimeRaceInfo)(new Date(n.Sprint.date+"T"+n.Sprint.time),c.locale):"-";return i.html`${p}${m}${t.translation("date")}${(0,s.formatDateNumeric)(h,c.locale,l.date_locale)} ${t.translation("practice1")}${f} - ${t.translation("race")}${n.round} ${t.translation("practice2")}${g} - ${t.translation("racename")}${n.raceName} ${t.translation("practice3")}${v} - ${t.translation("circuitname")}${n.Circuit.circuitName} ${t.translation("qualifying")}${_} - ${t.translation("location")}${n.Circuit.Location.country} ${t.translation("sprint")}${b} - ${t.translation("city")}${n.Circuit.Location.locality} ${t.translation("racetime")}${y}`})))}`},e.renderLastYearsResults=(t,e)=>{var n,r;if(!e)return i.html``;const o=e.Results?e.Results[0]:null,a=null===(n=e.Results)||void 0===n?void 0:n.filter((t=>{var e;return"1"===(null===(e=t.FastestLap)||void 0===e?void 0:e.rank)}))[0];return i.html` - - - - - -
-

${new Date(e.date).getFullYear()}

-

- ${null==o?void 0:o.Driver.givenName} ${null==o?void 0:o.Driver.familyName} (${null==o?void 0:o.Constructor.name}) -

-

- ${null==a?void 0:a.Driver.givenName} ${null==a?void 0:a.Driver.familyName} (${null===(r=null==a?void 0:a.FastestLap)||void 0===r?void 0:r.Time.time}) -

-
- -  `},e.renderWeatherInfo=(t,n,o)=>{var a,s;if(!t)return i.html``;const l=(null===(a=n.weather_options)||void 0===a?void 0:a.unit)===r.WeatherUnit.Metric?"km/h":"mph",c=(null===(s=n.weather_options)||void 0===s?void 0:s.unit)===r.WeatherUnit.MilesFahrenheit?"°F":"°C",d=t.hours?t.hours[o.getHours()]:t;return i.html` - - - - - - - - - - - - -
${(0,e.calculateWindDirection)(d.winddir)} ${d.windspeed} ${l} ${d.precip} mm ${d.precipprob}%
${d.cloudcover} % ${d.temp} ${c} ${d.feelslike} ${c}
- - -  `},e.calculateWindDirection=t=>{const e=[{label:"N",range:[0,11.25]},{label:"NNE",range:[11.25,33.75]},{label:"NE",range:[33.75,56.25]},{label:"ENE",range:[56.25,78.75]},{label:"E",range:[78.75,101.25]},{label:"ESE",range:[101.25,123.75]},{label:"SE",range:[123.75,146.25]},{label:"SSE",range:[146.25,168.75]},{label:"S",range:[168.75,191.25]},{label:"SSW",range:[191.25,213.75]},{label:"SW",range:[213.75,236.25]},{label:"WSW",range:[236.25,258.75]},{label:"W",range:[258.75,281.25]},{label:"WNW",range:[281.25,303.75]},{label:"NW",range:[303.75,326.25]},{label:"NNW",range:[326.25,348.75]},{label:"N",range:[348.75,360]}];for(const{label:n,range:i}of e)if(t>=i[0]&&t<=i[1])return n},e.getRefreshTime=t=>{let e=24;const n=new Date,i=localStorage.getItem(`${n.getFullYear()}.json`);if(i){const r=JSON.parse(i),o=JSON.parse(r.data).MRData.RaceTable.Races.filter((t=>new Date(t.date).toLocaleDateString==n.toLocaleDateString));if(o.length>0){const n=o[0],i=new Date(n.date+"T"+n.time),r=localStorage.getItem(t);if(r){const t=JSON.parse(r);new Date(t.created)void 0===t?[]:e?t.slice(0,e):t,e.renderConstructorColumn=(t,n)=>i.html`${t.config.standings.show_teamlogo?i.html` `:""}${n.name}`},5674:(t,e,n)=>{n.d(e,{Nz:()=>r,Oi:()=>i,eZ:()=>o});const i=(t,e,n)=>{Object.defineProperty(e,n,t)},r=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}),o=({finisher:t,descriptor:e})=>(n,i)=>{var r;if(void 0===i){const i=null!==(r=n.originalKey)&&void 0!==r?r:n.key,o=null!=e?{kind:"method",placement:"prototype",key:i,descriptor:e(n.key)}:{...n,key:i};return null!=t&&(o.finisher=function(e){t(e,i)}),o}{const r=n.constructor;void 0!==e&&Object.defineProperty(n,i,e(i)),null==t||t(r,i)}}},5713:(t,e,n)=>{n.d(e,{M:()=>i});const i=t=>e=>"function"==typeof e?((t,e)=>(customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:n,elements:i}=e;return{kind:n,elements:i,finisher(e){customElements.define(t,e)}}})(t,e)},8829:(t,e,n)=>{n.d(e,{h:()=>r});var i=n(5674);function r(t){return(0,i.eZ)({finisher:(e,n)=>{Object.assign(e.prototype[n],t)}})}},760:(t,e,n)=>{n.d(e,{C:()=>r});const i=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,t)}};function r(t){return(e,n)=>void 0!==n?((t,e,n)=>{e.constructor.createProperty(n,t)})(t,e,n):i(t,e)}},3711:(t,e,n)=>{n.d(e,{K:()=>r});var i=n(5674);function r(t){return(0,i.eZ)({descriptor:e=>({get(){var e,n;return null!==(n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelectorAll(t))&&void 0!==n?n:[]},enumerable:!0,configurable:!0})})}},7935:(t,e,n)=>{n.d(e,{N:()=>a});var i,r=n(5674);const o=null!=(null===(i=window.HTMLSlotElement)||void 0===i?void 0:i.prototype.assignedElements)?(t,e)=>t.assignedElements(e):(t,e)=>t.assignedNodes(e).filter((t=>t.nodeType===Node.ELEMENT_NODE));function a(t){const{slot:e,selector:n}=null!=t?t:{};return(0,r.eZ)({descriptor:i=>({get(){var i;const r="slot"+(e?`[name=${e}]`:":not([name])"),a=null===(i=this.renderRoot)||void 0===i?void 0:i.querySelector(r),s=null!=a?o(a,t):[];return n?s.filter((t=>t.matches(n))):s},enumerable:!0,configurable:!0})})}},43:(t,e,n)=>{n.d(e,{v:()=>o});var i=n(5674),r=n(7935);function o(t,e,n){let o,a=t;return"object"==typeof t?(a=t.slot,o=t):o={flatten:e},n?(0,r.N)({slot:a,flatten:e,selector:n}):(0,i.eZ)({descriptor:t=>({get(){var t,e;const n="slot"+(a?`[name=${a}]`:":not([name])"),i=null===(t=this.renderRoot)||void 0===t?void 0:t.querySelector(n);return null!==(e=null==i?void 0:i.assignedNodes(o))&&void 0!==e?e:[]},enumerable:!0,configurable:!0})})}},8602:(t,e,n)=>{n.d(e,{G:()=>r});var i=n(5674);function r(t){return(0,i.eZ)({descriptor:e=>({async get(){var e;return await this.updateComplete,null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t)},enumerable:!0,configurable:!0})})}},2669:(t,e,n)=>{n.d(e,{I:()=>r});var i=n(5674);function r(t,e){return(0,i.eZ)({descriptor:n=>{const i={get(){var e,n;return null!==(n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==n?n:null},enumerable:!0,configurable:!0};if(e){const e="symbol"==typeof n?Symbol():"__"+n;i.get=function(){var n,i;return void 0===this[e]&&(this[e]=null!==(i=null===(n=this.renderRoot)||void 0===n?void 0:n.querySelector(t))&&void 0!==i?i:null),this[e]}}return i}})}},9158:(t,e,n)=>{n.d(e,{S:()=>r});var i=n(760);function r(t){return(0,i.C)({...t,state:!0})}},7898:(t,e,n)=>{n.d(e,{c3:()=>s,fl:()=>b,ec:()=>d,iv:()=>c,Ts:()=>v,i1:()=>u,Qu:()=>y,FV:()=>r,$m:()=>l});const i=window,r=i.ShadowRoot&&(void 0===i.ShadyCSS||i.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,o=Symbol(),a=new WeakMap;class s{constructor(t,e,n){if(this._$cssResult$=!0,n!==o)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(r&&void 0===t){const n=void 0!==e&&1===e.length;n&&(t=a.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),n&&a.set(e,t))}return t}toString(){return this.cssText}}const l=t=>new s("string"==typeof t?t:t+"",void 0,o),c=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,n,i)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+t[i+1]),t[0]);return new s(n,t,o)},d=(t,e)=>{r?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const n=document.createElement("style"),r=i.litNonce;void 0!==r&&n.setAttribute("nonce",r),n.textContent=e.cssText,t.appendChild(n)}))},u=r?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const n of t.cssRules)e+=n.cssText;return l(e)})(t):t;var h;const m=window,p=m.trustedTypes,f=p?p.emptyScript:"",g=m.reactiveElementPolyfillSupport,v={toAttribute(t,e){switch(e){case Boolean:t=t?f:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let n=t;switch(e){case Boolean:n=null!==t;break;case Number:n=null===t?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch(t){n=null}}return n}},y=(t,e)=>e!==t&&(e==e||t==t),_={attribute:!0,type:String,converter:v,reflect:!1,hasChanged:y};class b extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;this.finalize(),(null!==(e=this.h)&&void 0!==e?e:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,n)=>{const i=this._$Ep(n,e);void 0!==i&&(this._$Ev.set(i,n),t.push(i))})),t}static createProperty(t,e=_){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const n="symbol"==typeof t?Symbol():"__"+t,i=this.getPropertyDescriptor(t,n,e);void 0!==i&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,e,n){return{get(){return this[e]},set(i){const r=this[t];this[e]=i,this.requestUpdate(t,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||_}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const n of e)this.createProperty(n,t[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const n=new Set(t.flat(1/0).reverse());for(const t of n)e.unshift(u(t))}else void 0!==t&&e.push(u(t));return e}static _$Ep(t,e){const n=e.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,n;(null!==(e=this._$ES)&&void 0!==e?e:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(n=t.hostConnected)||void 0===n||n.call(t))}removeController(t){var e;null===(e=this._$ES)||void 0===e||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return d(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,n){this._$AK(t,n)}_$EO(t,e,n=_){var i;const r=this.constructor._$Ep(t,n);if(void 0!==r&&!0===n.reflect){const o=(void 0!==(null===(i=n.converter)||void 0===i?void 0:i.toAttribute)?n.converter:v).toAttribute(e,n.type);this._$El=t,null==o?this.removeAttribute(r):this.setAttribute(r,o),this._$El=null}}_$AK(t,e){var n;const i=this.constructor,r=i._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=i.getPropertyOptions(r),o="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(n=t.converter)||void 0===n?void 0:n.fromAttribute)?t.converter:v;this._$El=r,this[r]=o.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,n){let i=!0;void 0!==t&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||y)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===n.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,n))):i=!1),!this.isUpdatePending&&i&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,e)=>this[e]=t)),this._$Ei=void 0);let e=!1;const n=this._$AL;try{e=this.shouldUpdate(n),e?(this.willUpdate(n),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(n)):this._$Ek()}catch(t){throw e=!1,this._$Ek(),t}e&&this._$AE(n)}willUpdate(t){}_$AE(t){var e;null===(e=this._$ES)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$EO(e,this[e],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}b.finalized=!0,b.elementProperties=new Map,b.elementStyles=[],b.shadowRootOptions={mode:"open"},null==g||g({ReactiveElement:b}),(null!==(h=m.reactiveElementVersions)&&void 0!==h?h:m.reactiveElementVersions=[]).push("1.6.1")},936:(t,e,n)=>{n.r(e),n.d(e,{CSSResult:()=>i.c3,LitElement:()=>o.oi,ReactiveElement:()=>i.fl,UpdatingElement:()=>o.f4,_$LE:()=>o.uD,_$LH:()=>r._$LH,adoptStyles:()=>i.ec,css:()=>i.iv,customElement:()=>s.M,decorateProperty:()=>a.eZ,defaultConverter:()=>i.Ts,eventOptions:()=>d.h,getCompatibleStyle:()=>i.i1,html:()=>r.html,legacyPrototypeMethod:()=>a.Oi,noChange:()=>r.noChange,notEqual:()=>i.Qu,nothing:()=>r.nothing,property:()=>l.C,query:()=>u.I,queryAll:()=>h.K,queryAssignedElements:()=>p.N,queryAssignedNodes:()=>f.v,queryAsync:()=>m.G,render:()=>r.render,standardPrototypeMethod:()=>a.Nz,state:()=>c.S,supportsAdoptingStyleSheets:()=>i.FV,svg:()=>r.svg,unsafeCSS:()=>i.$m});var i=n(7898),r=n(3692),o=n(8922),a=n(5674),s=n(5713),l=n(760),c=n(9158),d=n(8829),u=n(2669),h=n(3711),m=n(8602),p=n(7935),f=n(43);console.warn("The main 'lit-element' module entrypoint is deprecated. Please update your imports to use the 'lit' package: 'lit' and 'lit/decorators.ts' or import from 'lit-element/lit-element.ts'. See https://lit.dev/msg/deprecated-import-path for more information.")},8922:(t,e,n)=>{n.d(e,{$m:()=>o.$m,Al:()=>a._$LH,FV:()=>o.FV,Jb:()=>a.noChange,Ld:()=>a.nothing,Qu:()=>o.Qu,Ts:()=>o.Ts,YP:()=>a.svg,c3:()=>o.c3,dy:()=>a.html,ec:()=>o.ec,f4:()=>s,fl:()=>o.fl,i1:()=>o.i1,iv:()=>o.iv,oi:()=>l,sY:()=>a.render,uD:()=>d});var i,r,o=n(7898),a=n(3692);const s=o.fl;class l extends o.fl{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const n=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=n.firstChild),n}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=(0,a.render)(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return a.noChange}}l.finalized=!0,l._$litElement$=!0,null===(i=globalThis.litElementHydrateSupport)||void 0===i||i.call(globalThis,{LitElement:l});const c=globalThis.litElementPolyfillSupport;null==c||c({LitElement:l});const d={_$AK:(t,e,n)=>{t._$AK(e,n)},_$AL:t=>t._$AL};(null!==(r=globalThis.litElementVersions)&&void 0!==r?r:globalThis.litElementVersions=[]).push("3.3.3")},5206:(t,e,n)=>{n.d(e,{sR:()=>u});var i=n(4232),r=n(875);const o=(t,e)=>{var n,i;const r=t._$AN;if(void 0===r)return!1;for(const t of r)null===(i=(n=t)._$AO)||void 0===i||i.call(n,e,!1),o(t,e);return!0},a=t=>{let e,n;do{if(void 0===(e=t._$AM))break;n=e._$AN,n.delete(t),t=e}while(0===(null==n?void 0:n.size))},s=t=>{for(let e;e=t._$AM;t=e){let n=e._$AN;if(void 0===n)e._$AN=n=new Set;else if(n.has(t))break;n.add(t),d(e)}};function l(t){void 0!==this._$AN?(a(this),this._$AM=t,s(this)):this._$AM=t}function c(t,e=!1,n=0){const i=this._$AH,r=this._$AN;if(void 0!==r&&0!==r.size)if(e)if(Array.isArray(i))for(let t=n;t{var e,n,i,o;t.type==r.pX.CHILD&&(null!==(e=(i=t)._$AP)&&void 0!==e||(i._$AP=c),null!==(n=(o=t)._$AQ)&&void 0!==n||(o._$AQ=l))};class u extends r.Xe{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,n){super._$AT(t,e,n),s(this),this.isConnected=t._$AU}_$AO(t,e=!0){var n,i;t!==this.isConnected&&(this.isConnected=t,t?null===(n=this.reconnected)||void 0===n||n.call(this):null===(i=this.disconnected)||void 0===i||i.call(this)),e&&(o(this,t),a(this))}setValue(t){if((0,i.OR)(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}},4232:(t,e,n)=>{n.d(e,{OR:()=>a,pt:()=>o});var i=n(3692);const{I:r}=i._$LH,o=t=>null===t||"object"!=typeof t&&"function"!=typeof t,a=t=>void 0===t.strings},875:(t,e,n)=>{n.d(e,{XM:()=>r,Xe:()=>o,pX:()=>i});const i={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},r=t=>(...e)=>({_$litDirective$:t,values:e});class o{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,n){this._$Ct=t,this._$AM=e,this._$Ci=n}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}},2069:(t,e,n)=>{n.d(e,{dS:()=>o,gw:()=>i,nX:()=>r});const i=async(t,e)=>{for await(const n of t)if(!1===await e(n))return};class r{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}}class o{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){var t;null!==(t=this.Y)&&void 0!==t||(this.Y=new Promise((t=>this.Z=t)))}resume(){var t;null===(t=this.Z)||void 0===t||t.call(this),this.Y=this.Z=void 0}}},7345:(t,e,n)=>{n.r(e),n.d(e,{UntilDirective:()=>d,until:()=>u});var i=n(3692),r=n(4232),o=n(5206),a=n(2069),s=n(875);const l=t=>!(0,r.pt)(t)&&"function"==typeof t.then,c=1073741823;class d extends o.sR{constructor(){super(...arguments),this._$C_t=c,this._$Cwt=[],this._$Cq=new a.nX(this),this._$CK=new a.dS}render(...t){var e;return null!==(e=t.find((t=>!l(t))))&&void 0!==e?e:i.noChange}update(t,e){const n=this._$Cwt;let r=n.length;this._$Cwt=e;const o=this._$Cq,a=this._$CK;this.isConnected||this.disconnected();for(let t=0;tthis._$C_t);t++){const i=e[t];if(!l(i))return this._$C_t=t,i;t{for(;a.get();)await a.get();const e=o.deref();if(void 0!==e){const n=e._$Cwt.indexOf(i);n>-1&&n{var i;n.r(e),n.d(e,{_$LH:()=>G,html:()=>T,noChange:()=>A,nothing:()=>x,render:()=>q,svg:()=>D});const r=window,o=r.trustedTypes,a=o?o.createPolicy("lit-html",{createHTML:t=>t}):void 0,s="$lit$",l=`lit$${(Math.random()+"").slice(9)}$`,c="?"+l,d=`<${c}>`,u=document,h=()=>u.createComment(""),m=t=>null===t||"object"!=typeof t&&"function"!=typeof t,p=Array.isArray,f=t=>p(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]),g="[ \t\n\f\r]",v=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,y=/-->/g,_=/>/g,b=RegExp(`>|${g}(?:([^\\s"'>=/]+)(${g}*=${g}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),w=/'/g,$=/"/g,C=/^(?:script|style|textarea|title)$/i,S=t=>(e,...n)=>({_$litType$:t,strings:e,values:n}),T=S(1),D=S(2),A=Symbol.for("lit-noChange"),x=Symbol.for("lit-nothing"),R=new WeakMap,E=u.createTreeWalker(u,129,null,!1);function k(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==a?a.createHTML(e):e}const O=(t,e)=>{const n=t.length-1,i=[];let r,o=2===e?"":"",a=v;for(let e=0;e"===u[0]?(a=null!=r?r:v,h=-1):void 0===u[1]?h=-2:(h=a.lastIndex-u[2].length,c=u[1],a=void 0===u[3]?b:'"'===u[3]?$:w):a===$||a===w?a=b:a===y||a===_?a=v:(a=b,r=void 0);const p=a===b&&t[e+1].startsWith("/>")?" ":"";o+=a===v?n+d:h>=0?(i.push(c),n.slice(0,h)+s+n.slice(h)+l+p):n+l+(-2===h?(i.push(void 0),e):p)}return[k(t,o+(t[n]||"")+(2===e?"":"")),i]};class F{constructor({strings:t,_$litType$:e},n){let i;this.parts=[];let r=0,a=0;const d=t.length-1,u=this.parts,[m,p]=O(t,e);if(this.el=F.createElement(m,n),E.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(i=E.nextNode())&&u.length0){i.textContent=o?o.emptyScript:"";for(let n=0;n2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=x}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,n,i){const r=this.strings;let o=!1;if(void 0===r)t=N(this,t,e,0),o=!m(t)||t!==this._$AH&&t!==A,o&&(this._$AH=t);else{const i=t;let a,s;for(t=r[0],a=0;a{var i,r;const o=null!==(i=null==n?void 0:n.renderBefore)&&void 0!==i?i:e;let a=o._$litPart$;if(void 0===a){const t=null!==(r=null==n?void 0:n.renderBefore)&&void 0!==r?r:null;o._$litPart$=a=new P(e.insertBefore(h(),t),t,void 0,null!=n?n:{})}return a._$AI(t),a}},9662:(t,e,n)=>{n.r(e),n.d(e,{customElement:()=>i.M,eventOptions:()=>a.h,property:()=>r.C,query:()=>s.I,queryAll:()=>l.K,queryAssignedElements:()=>d.N,queryAssignedNodes:()=>u.v,queryAsync:()=>c.G,state:()=>o.S});var i=n(5713),r=n(760),o=n(9158),a=n(8829),s=n(2669),l=n(3711),c=n(8602),d=n(7935),u=n(43)},8082:(t,e,n)=>{n.r(e),n.d(e,{Directive:()=>i.Xe,PartType:()=>i.pX,directive:()=>i.XM});var i=n(875)},530:(t,e,n)=>{n.r(e),n.d(e,{AsyncReplaceDirective:()=>s,asyncReplace:()=>l});var i=n(3692),r=n(5206),o=n(2069),a=n(875);class s extends r.sR{constructor(){super(...arguments),this._$Cq=new o.nX(this),this._$CK=new o.dS}render(t,e){return i.noChange}update(t,[e,n]){if(this.isConnected||this.disconnected(),e===this._$CX)return;this._$CX=e;let r=0;const{_$Cq:a,_$CK:s}=this;return(0,o.gw)(e,(async t=>{for(;s.get();)await s.get();const i=a.deref();if(void 0!==i){if(i._$CX!==e)return!1;void 0!==n&&(t=n(t,r)),i.commitValue(t,r),r++}return!0})),i.noChange}commitValue(t,e){this.setValue(t)}disconnected(){this._$Cq.disconnect(),this._$CK.pause()}reconnected(){this._$Cq.reconnect(this),this._$CK.resume()}}const l=(0,a.XM)(s)},6370:(t,e,n)=>{n.r(e),n.d(e,{CSSResult:()=>i.c3,LitElement:()=>i.oi,ReactiveElement:()=>i.fl,UpdatingElement:()=>i.f4,_$LE:()=>i.uD,_$LH:()=>i.Al,adoptStyles:()=>i.ec,css:()=>i.iv,defaultConverter:()=>i.Ts,getCompatibleStyle:()=>i.i1,html:()=>i.dy,isServer:()=>r,noChange:()=>i.Jb,notEqual:()=>i.Qu,nothing:()=>i.Ld,render:()=>i.sY,supportsAdoptingStyleSheets:()=>i.FV,svg:()=>i.YP,unsafeCSS:()=>i.$m}),n(7898),n(3692);var i=n(8922);const r=!1},4147:t=>{t.exports=JSON.parse('{"name":"formulaone-card","version":"1.8.8","description":"Frontend card for Home Assistant to display Formula One data","main":"index.js","scripts":{"lint":"eslint src/**/*.ts","dev":"webpack -c webpack.config.js","build":"yarn lint && webpack -c webpack.config.js","test":"jest","coverage":"jest --coverage","workflow":"jest --coverage --json --outputFile=/home/runner/work/formulaone-card/formulaone-card/jest.results.json","prebuild":"copy git-hooks\\\\pre-commit .git\\\\hooks\\\\ && echo \'hook copied\'"},"repository":{"type":"git","url":"git+https://github.com/marcokreeft87/formulaone-card.git"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/marcokreeft87/formulaone-card/issues"},"homepage":"https://github.com/marcokreeft87/formulaone-card#readme","devDependencies":{"@types/jest":"^29.5.3","@typescript-eslint/eslint-plugin":"^5.59.8","@typescript-eslint/parser":"^5.62.0","codecov":"^3.8.3","eslint":"^8.50.0","home-assistant-js-websocket":"^8.2.0","lit":"^2.8.0","typescript":"^4.9.5","webpack":"^5.88.2","webpack-cli":"^5.1.4"},"dependencies":{"@babel/plugin-transform-runtime":"^7.22.5","@babel/preset-env":"^7.22.14","@lit-labs/scoped-registry-mixin":"^1.0.1","@marcokreeft/ha-editor-formbuilder":"^2023.10.9","babel-jest":"^29.7.0","compression-webpack-plugin":"^10.0.0","custom-card-helpers":"^1.9.0","isomorphic-fetch":"^3.0.0","jest-environment-jsdom":"^29.6.2","jest-fetch-mock":"^3.0.3","jest-ts-auto-mock":"^2.1.0","ts-auto-mock":"^3.6.4","ts-jest":"^29.1.1","ts-loader":"^9.4.4","ttypescript":"^1.5.15","yarn":"^1.22.19"}}')}},e={};function n(i){var r=e[i];if(void 0!==r)return r.exports;var o=e[i]={exports:{}};return t[i].call(o.exports,o,o.exports,n),o.exports}n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n(3607)})(); \ No newline at end of file +(()=>{"use strict";var t={898:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(313),r=i(11),o=i(194),s=i(382);class a extends r.LitElement{constructor(){super(...arguments),this.controlRenderers={[o.FormControlType.Dropdown]:s.renderDropdown,[o.FormControlType.Radio]:s.renderRadio,[o.FormControlType.Checkboxes]:s.renderCheckboxes,[o.FormControlType.EntityDropdown]:s.renderDropdown,[o.FormControlType.Switch]:s.renderSwitch,[o.FormControlType.Textbox]:s.renderTextbox,[o.FormControlType.Filler]:s.renderFiller}}setConfig(t){this._config=t}set hass(t){this._hass=t}renderForm(t){return r.html`
${t.map((t=>{const e=t.cssClass?`form-row ${t.cssClass}`:"form-row";return t.hidden?"":r.html`
${t.controls.map((t=>this.renderControl(t)))}
`}))}
`}renderControl(t){const e=this.controlRenderers[t.type];if(!e)throw new Error(`Unsupported control type: ${t.type}`);return e(this,t)}_valueChanged(t){if(!this._config||!this._hass)return;const e=t.target,i=t.detail;if("HA-CHECKBOX"===e.tagName){const t=this._config[e.configValue].indexOf(e.value);e.checked&&t<0?this._config[e.configValue]=[...this._config[e.configValue],e.value]:!e.checked&&t>-1&&(this._config[e.configValue]=[...this._config[e.configValue].slice(0,t),...this._config[e.configValue].slice(t+1)])}else if(e.configValue)if(e.configValue.indexOf(".")>-1){const[t,i]=e.configValue.split(".");this._config={...this._config,[t]:{...this._config[t],[i]:e.checked}}}else this._config={...this._config,[e.configValue]:void 0===e.checked&&(null==i?void 0:i.value)?e.checked||i.value:e.value||e.checked};(0,n.fireEvent)(this,"config-changed",{config:this._config},{bubbles:!0,composed:!0}),this.requestUpdate("_config")}static get styles(){return r.css`.form-row{margin-bottom:10px}.form-control{display:flex;align-items:center}ha-switch{padding:16px 6px}.side-by-side{display:flex;flex-flow:row wrap}.side-by-side>label{width:100%}.side-by-side>.form-control{width:49%;padding:2px}ha-textfield{width:100%}`}}e.default=a},194:(t,e)=>{var i;Object.defineProperty(e,"__esModule",{value:!0}),e.FormControlType=void 0,function(t){t.Dropdown="dropdown",t.Checkbox="checkbox",t.Checkboxes="checkboxes",t.Radio="radio",t.Switch="switch",t.Textbox="textbox",t.Filler="filler",t.EntityDropdown="entity-dropdown"}(i||(e.FormControlType=i={}))},382:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.renderCheckboxes=e.renderRadio=e.renderDropdown=e.renderSwitch=e.renderTextbox=e.renderEntityDropdown=e.renderFiller=void 0;const n=i(11),r=i(429);e.renderFiller=()=>n.html`
`,e.renderEntityDropdown=(t,e)=>{var i;return n.html`
`},e.renderTextbox=(t,e)=>{var i;return n.html`
`},e.renderSwitch=(t,e)=>n.html`
`,e.renderDropdown=(t,e)=>{var i;const o=null!==(i=e.items)&&void 0!==i?i:(0,r.getEntitiesByDomain)(t._hass,e.domain);return n.html`
`},e.renderRadio=(t,e)=>n.html`
${e.items.map((i=>n.html``))}
`,e.renderCheckboxes=(t,e)=>n.html` ${e.items.map((i=>{var r;return n.html`
`}))}`},429:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getDropdownOptionsFromEnum=e.formatList=e.getEntitiesByDeviceClass=e.getEntitiesByDomain=void 0,e.getEntitiesByDomain=(t,i)=>Object.keys(t.states).filter((t=>t.substr(0,t.indexOf("."))===i)).map((i=>(0,e.formatList)(i,t))),e.getEntitiesByDeviceClass=(t,i,n)=>Object.keys(t.states).filter((e=>e.substr(0,e.indexOf("."))===i&&t.states[e].attributes.device_class===n)).map((i=>(0,e.formatList)(i,t))),e.formatList=(t,e)=>({label:e.states[t].attributes.friendly_name,value:t}),e.getDropdownOptionsFromEnum=t=>{const e=[];for(const[i,n]of Object.entries(t))e.push({value:n,label:i});return e}},313:(t,e,i)=>{i.r(e),i.d(e,{DEFAULT_DOMAIN_ICON:()=>J,DEFAULT_PANEL:()=>X,DEFAULT_VIEW_ENTITY_ID:()=>at,DOMAINS_HIDE_MORE_INFO:()=>et,DOMAINS_MORE_INFO_NO_HISTORY:()=>it,DOMAINS_TOGGLE:()=>rt,DOMAINS_WITH_CARD:()=>Z,DOMAINS_WITH_MORE_INFO:()=>tt,NumberFormat:()=>n,STATES_OFF:()=>nt,TimeFormat:()=>r,UNIT_C:()=>ot,UNIT_F:()=>st,applyThemesOnElement:()=>L,computeCardSize:()=>H,computeDomain:()=>U,computeEntity:()=>j,computeRTL:()=>V,computeRTLDirection:()=>B,computeStateDisplay:()=>K,computeStateDomain:()=>G,createThing:()=>ut,debounce:()=>ht,domainIcon:()=>pt,evaluateFilter:()=>ft,fireEvent:()=>lt,fixedIcons:()=>mt,formatDate:()=>d,formatDateMonth:()=>y,formatDateMonthYear:()=>g,formatDateNumeric:()=>h,formatDateShort:()=>p,formatDateTime:()=>C,formatDateTimeNumeric:()=>E,formatDateTimeWithSeconds:()=>S,formatDateWeekday:()=>l,formatDateYear:()=>$,formatNumber:()=>Y,formatTime:()=>x,formatTimeWeekday:()=>P,formatTimeWithSeconds:()=>k,forwardHaptic:()=>gt,getLovelace:()=>Et,handleAction:()=>bt,handleActionConfig:()=>$t,handleClick:()=>wt,hasAction:()=>Ct,hasConfigOrEntityChanged:()=>At,hasDoubleClick:()=>St,isNumericState:()=>q,navigate:()=>vt,numberFormatToLocale:()=>z,relativeTime:()=>M,round:()=>W,stateIcon:()=>Rt,timerTimeRemaining:()=>F,toggleEntity:()=>_t,turnOnOffEntities:()=>Tt,turnOnOffEntity:()=>yt});var n,r,o,s=function(){return s=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0)return{value:Math.round(h),unit:"year"};var m=12*h+d.getMonth()-u.getMonth();if(Math.round(Math.abs(m))>0)return{value:Math.round(m),unit:"month"};var p=r/604800;return{value:Math.round(p),unit:"week"}}(t,i);return n?function(t){return new Intl.RelativeTimeFormat(t.language,{numeric:"auto"})}(e).format(r.value,r.unit):Intl.NumberFormat(e.language,{style:"unit",unit:r.unit,unitDisplay:"long"}).format(Math.abs(r.value))};function F(t){var e,i=3600*(e=t.attributes.remaining.split(":").map(Number))[0]+60*e[1]+e[2];if("active"===t.state){var n=(new Date).getTime(),r=new Date(t.last_changed).getTime();i=Math.max(i-(n-r)/1e3,0)}return i}function I(){return(I=Object.assign||function(t){for(var e=1;e-1?t.split(".")[1].length:0;i.minimumFractionDigits=n,i.maximumFractionDigits=n}return i},K=function(t,e,i,n){var r=void 0!==n?n:e.state;if("unknown"===r||"unavailable"===r)return t("state.default."+r);if(q(e)){if("monetary"===e.attributes.device_class)try{return Y(r,i,{style:"currency",currency:e.attributes.unit_of_measurement})}catch(t){}return Y(r,i)+(e.attributes.unit_of_measurement?" "+e.attributes.unit_of_measurement:"")}var o=G(e);if("input_datetime"===o){var s;if(void 0===n)return e.attributes.has_date&&e.attributes.has_time?(s=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day,e.attributes.hour,e.attributes.minute),C(s,i)):e.attributes.has_date?(s=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day),d(s,i)):e.attributes.has_time?((s=new Date).setHours(e.attributes.hour,e.attributes.minute),x(s,i)):e.state;try{var a=n.split(" ");if(2===a.length)return C(new Date(a.join("T")),i);if(1===a.length){if(n.includes("-"))return d(new Date(n+"T00:00"),i);if(n.includes(":")){var l=new Date;return x(new Date(l.toISOString().split("T")[0]+"T"+n),i)}}return n}catch(t){return n}}return"humidifier"===o&&"on"===r&&e.attributes.humidity?e.attributes.humidity+" %":"counter"===o||"number"===o||"input_number"===o?Y(r,i):e.attributes.device_class&&t("component."+o+".state."+e.attributes.device_class+"."+r)||t("component."+o+".state._."+r)||r},J="mdi:bookmark",X="lovelace",Z=["climate","cover","configurator","input_select","input_number","input_text","lock","media_player","scene","script","timer","vacuum","water_heater","weblink"],tt=["alarm_control_panel","automation","camera","climate","configurator","cover","fan","group","history_graph","input_datetime","light","lock","media_player","script","sun","updater","vacuum","water_heater","weather"],et=["input_number","input_select","input_text","scene","weblink"],it=["camera","configurator","history_graph","scene"],nt=["closed","locked","off"],rt=new Set(["fan","input_boolean","light","switch","group","automation"]),ot="°C",st="°F",at="group.default_view",lt=function(t,e,i,n){n=n||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return r.detail=i,t.dispatchEvent(r),r},ct=new Set(["call-service","divider","section","weblink","cast","select"]),dt={alert:"toggle",automation:"toggle",climate:"climate",cover:"cover",fan:"toggle",group:"group",input_boolean:"toggle",input_number:"input-number",input_select:"input-select",input_text:"input-text",light:"toggle",lock:"lock",media_player:"media-player",remote:"toggle",scene:"scene",script:"script",sensor:"sensor",timer:"timer",switch:"toggle",vacuum:"toggle",water_heater:"climate",input_datetime:"input-datetime"},ut=function(t,e){void 0===e&&(e=!1);var i=function(t,e){return n("hui-error-card",{type:"error",error:t,config:e})},n=function(t,e){var n=window.document.createElement(t);try{if(!n.setConfig)return;n.setConfig(e)}catch(n){return console.error(t,n),i(n.message,e)}return n};if(!t||"object"!=typeof t||!e&&!t.type)return i("No type defined",t);var r=t.type;if(r&&r.startsWith("custom:"))r=r.substr(7);else if(e)if(ct.has(r))r="hui-"+r+"-row";else{if(!t.entity)return i("Invalid config given.",t);var o=t.entity.split(".",1)[0];r="hui-"+(dt[o]||"text")+"-entity-row"}else r="hui-"+r+"-card";if(customElements.get(r))return n(r,t);var s=i("Custom element doesn't exist: "+t.type+".",t);s.style.display="None";var a=setTimeout((function(){s.style.display=""}),2e3);return customElements.whenDefined(t.type).then((function(){clearTimeout(a),lt(s,"ll-rebuild",{},s)})),s},ht=function(t,e,i){var n;return void 0===i&&(i=!1),function(){var r=[].slice.call(arguments),o=this,s=i&&!n;clearTimeout(n),n=setTimeout((function(){n=null,i||t.apply(o,r)}),e),s&&t.apply(o,r)}},mt={alert:"mdi:alert",automation:"mdi:playlist-play",calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:settings",conversation:"mdi:text-to-speech",device_tracker:"mdi:account",fan:"mdi:fan",group:"mdi:google-circles-communities",history_graph:"mdi:chart-line",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_boolean:"mdi:drawing",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:textbox",light:"mdi:lightbulb",mailbox:"mdi:mailbox",notify:"mdi:comment-alert",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:google-pages",script:"mdi:file-document",sensor:"mdi:eye",simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",switch:"mdi:flash",timer:"mdi:timer",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weblink:"mdi:open-in-new"};function pt(t,e){if(t in mt)return mt[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"mdi:bell-plus";case"armed_night":return"mdi:bell-sleep";case"disarmed":return"mdi:bell-outline";case"triggered":return"mdi:bell-ring";default:return"mdi:bell"}case"binary_sensor":return e&&"off"===e?"mdi:radiobox-blank":"mdi:checkbox-marked-circle";case"cover":return"closed"===e?"mdi:window-closed":"mdi:window-open";case"lock":return e&&"unlocked"===e?"mdi:lock-open":"mdi:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"mdi:cast-connected":"mdi:cast";case"zwave":switch(e){case"dead":return"mdi:emoticon-dead";case"sleeping":return"mdi:sleep";case"initializing":return"mdi:timer-sand";default:return"mdi:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),"mdi:bookmark"}}var ft=function(t,e){var i=e.value||e,n=e.attribute?t.attributes[e.attribute]:t.state;switch(e.operator||"=="){case"==":return n===i;case"<=":return n<=i;case"<":return n=":return n>=i;case">":return n>i;case"!=":return n!==i;case"regex":return n.match(i);default:return!1}},gt=function(t){lt(window,"haptic",t)},vt=function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),lt(window,"location-changed",{replace:i})},yt=function(t,e,i){void 0===i&&(i=!0);var n,r=U(e),o="group"===r?"homeassistant":r;switch(r){case"lock":n=i?"unlock":"lock";break;case"cover":n=i?"open_cover":"close_cover";break;default:n=i?"turn_on":"turn_off"}return t.callService(o,n,{entity_id:e})},_t=function(t,e){var i=nt.includes(t.states[e].state);return yt(t,e,i)},$t=function(t,e,i,n){if(n||(n={action:"more-info"}),!n.confirmation||n.confirmation.exemptions&&n.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||(gt("warning"),confirm(n.confirmation.text||"Are you sure you want to "+n.action+"?")))switch(n.action){case"more-info":(i.entity||i.camera_image)&<(t,"hass-more-info",{entityId:i.entity?i.entity:i.camera_image});break;case"navigate":n.navigation_path&&vt(0,n.navigation_path);break;case"url":n.url_path&&window.open(n.url_path);break;case"toggle":i.entity&&(_t(e,i.entity),gt("success"));break;case"call-service":if(!n.service)return void gt("failure");var r=n.service.split(".",2);e.callService(r[0],r[1],n.service_data,n.target),gt("success");break;case"fire-dom-event":lt(t,"ll-custom",n)}},bt=function(t,e,i,n){var r;"double_tap"===n&&i.double_tap_action?r=i.double_tap_action:"hold"===n&&i.hold_action?r=i.hold_action:"tap"===n&&i.tap_action&&(r=i.tap_action),$t(t,e,i,r)},wt=function(t,e,i,n,r){var o;if(r&&i.double_tap_action?o=i.double_tap_action:n&&i.hold_action?o=i.hold_action:!n&&i.tap_action&&(o=i.tap_action),o||(o={action:"more-info"}),!o.confirmation||o.confirmation.exemptions&&o.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||confirm(o.confirmation.text||"Are you sure you want to "+o.action+"?"))switch(o.action){case"more-info":(o.entity||i.entity||i.camera_image)&&(lt(t,"hass-more-info",{entityId:o.entity?o.entity:i.entity?i.entity:i.camera_image}),o.haptic&>(o.haptic));break;case"navigate":o.navigation_path&&(vt(0,o.navigation_path),o.haptic&>(o.haptic));break;case"url":o.url_path&&window.open(o.url_path),o.haptic&>(o.haptic);break;case"toggle":i.entity&&(_t(e,i.entity),o.haptic&>(o.haptic));break;case"call-service":if(!o.service)return;var s=o.service.split(".",2),a=s[0],l=s[1],c=I({},o.service_data);"entity"===c.entity_id&&(c.entity_id=i.entity),e.callService(a,l,c,o.target),o.haptic&>(o.haptic);break;case"fire-dom-event":lt(t,"ll-custom",o),o.haptic&>(o.haptic)}};function Ct(t){return void 0!==t&&"none"!==t.action}function At(t,e,i){if(e.has("config")||i)return!0;if(t.config.entity){var n=e.get("hass");return!n||n.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}function St(t){return void 0!==t&&"none"!==t.action}var Tt=function(t,e,i){void 0===i&&(i=!0);var n={};e.forEach((function(e){if(nt.includes(t.states[e].state)===i){var r=U(e),o=["cover","lock"].includes(r)?r:"homeassistant";o in n||(n[o]=[]),n[o].push(e)}})),Object.keys(n).forEach((function(e){var r;switch(e){case"lock":r=i?"unlock":"lock";break;case"cover":r=i?"open_cover":"close_cover";break;default:r=i?"turn_on":"turn_off"}t.callService(e,r,{entity_id:n[e]})}))},Et=function(){var t=document.querySelector("home-assistant");if(t=(t=(t=(t=(t=(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root")){var e=t.lovelace;return e.current_view=t.___curView,e}return null},Dt={humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",temperature:"mdi:thermometer",pressure:"mdi:gauge",power:"mdi:flash",signal_strength:"mdi:wifi"},xt={binary_sensor:function(t,e){var i="off"===t;switch(null==e?void 0:e.attributes.device_class){case"battery":return i?"mdi:battery":"mdi:battery-outline";case"battery_charging":return i?"mdi:battery":"mdi:battery-charging";case"cold":return i?"mdi:thermometer":"mdi:snowflake";case"connectivity":return i?"mdi:server-network-off":"mdi:server-network";case"door":return i?"mdi:door-closed":"mdi:door-open";case"garage_door":return i?"mdi:garage":"mdi:garage-open";case"power":case"plug":return i?"mdi:power-plug-off":"mdi:power-plug";case"gas":case"problem":case"safety":case"tamper":return i?"mdi:check-circle":"mdi:alert-circle";case"smoke":return i?"mdi:check-circle":"mdi:smoke";case"heat":return i?"mdi:thermometer":"mdi:fire";case"light":return i?"mdi:brightness-5":"mdi:brightness-7";case"lock":return i?"mdi:lock":"mdi:lock-open";case"moisture":return i?"mdi:water-off":"mdi:water";case"motion":return i?"mdi:walk":"mdi:run";case"occupancy":case"presence":return i?"mdi:home-outline":"mdi:home";case"opening":return i?"mdi:square":"mdi:square-outline";case"running":return i?"mdi:stop":"mdi:play";case"sound":return i?"mdi:music-note-off":"mdi:music-note";case"update":return i?"mdi:package":"mdi:package-up";case"vibration":return i?"mdi:crop-portrait":"mdi:vibrate";case"window":return i?"mdi:window-closed":"mdi:window-open";default:return i?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"mdi:garage-open":"mdi:garage";case"door":return e?"mdi:door-open":"mdi:door-closed";case"shutter":return e?"mdi:window-shutter-open":"mdi:window-shutter";case"blind":return e?"mdi:blinds-open":"mdi:blinds";case"window":return e?"mdi:window-open":"mdi:window-closed";default:return pt("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in Dt)return Dt[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"mdi:battery-unknown";var n=10*Math.round(i/10);return n>=100?"mdi:battery":n<=0?"mdi:battery-alert":"hass:battery-"+n}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"mdi:thermometer":pt("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?pt("input_datetime"):"mdi:calendar":"mdi:clock"}},Rt=function(t){if(!t)return"mdi:bookmark";if(t.attributes.icon)return t.attributes.icon;var e=U(t.entity_id);return e in xt?xt[e](t):pt(e,t.state)}},694:function(t,e){var i=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{l(n.next(t))}catch(t){o(t)}}function a(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,a)}l((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.ClientBase=void 0,e.ClientBase=class{GetData(t,e,n){return i(this,void 0,void 0,(function*(){const i=localStorage.getItem(t);if(i&&e){const t=JSON.parse(i),e=new Date;if(e.setHours(e.getHours()-n),new Date(t.created)>e)return JSON.parse(t.data)}const r=yield fetch(`${this.baseUrl}/${t}`,{headers:{Accept:"application/json"}});if(!r||!r.ok)return Promise.reject(r);const o=yield r.json(),s={data:JSON.stringify(o),created:new Date};return e&&localStorage.setItem(t,JSON.stringify(s)),o}))}}},470:function(t,e,i){var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{l(n.next(t))}catch(t){o(t)}}function a(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,a)}l((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const r=i(438),o=i(694);class s extends o.ClientBase{constructor(){super(...arguments),this.baseUrl="https://ergast.com/api/f1"}GetSchedule(t){return n(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}.json`,!0,72)).MRData.RaceTable.Races}))}GetLastResult(){return n(this,void 0,void 0,(function*(){const t=(0,r.getRefreshTime)("current/last/results.json");return(yield this.GetData("current/last/results.json",!0,t)).MRData.RaceTable.Races[0]}))}GetDriverStandings(){return n(this,void 0,void 0,(function*(){const t=(0,r.getRefreshTime)("current/driverStandings.json");return(yield this.GetData("current/driverStandings.json",!0,t)).MRData.StandingsTable.StandingsLists[0].DriverStandings}))}GetConstructorStandings(){return n(this,void 0,void 0,(function*(){const t=(0,r.getRefreshTime)("current/constructorStandings.json");return(yield this.GetData("current/constructorStandings.json",!0,t)).MRData.StandingsTable.StandingsLists[0].ConstructorStandings}))}GetSprintResults(t,e){return n(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}/${e}/sprint.json`,!1,0)).MRData.RaceTable}))}GetQualifyingResults(t,e){return n(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}/${e}/qualifying.json`,!1,0)).MRData.RaceTable}))}GetResults(t,e){return n(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}/${e}/results.json`,!1,0)).MRData.RaceTable}))}GetSeasons(){return n(this,void 0,void 0,(function*(){return(yield this.GetData("seasons.json?limit=200",!0,72)).MRData.SeasonTable.Seasons}))}GetSeasonRaces(t){return n(this,void 0,void 0,(function*(){return(yield this.GetData(`${t}.json`,!0,72)).MRData.RaceTable.Races}))}GetLastYearsResults(t){return n(this,void 0,void 0,(function*(){const e=(new Date).getFullYear()-1,i=(yield this.GetData(`${e}.json`,!0,72)).MRData.RaceTable.Races.findIndex((e=>e.Circuit.circuitName===t))+1;return(yield this.GetData(`${e}/${i}/results.json`,!1,0)).MRData.RaceTable.Races[0]}))}}e.default=s},661:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class{GetImage(t){const e=localStorage.getItem(t);if(e){const t=JSON.parse(e),i=new Date;if(i.setHours(i.getHours()-672),new Date(t.created)>i)return t.data}return fetch(t).then((t=>t.blob())).then((e=>{const i=new FileReader;i.readAsDataURL(e),i.onloadend=function(){const e={data:i.result,created:new Date};return localStorage.setItem(t,JSON.stringify(e)),e.data}})),t}}},959:function(t,e,i){var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{l(n.next(t))}catch(t){o(t)}}function a(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,a)}l((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const r=i(694);class o extends r.ClientBase{constructor(){super(...arguments),this.baseUrl="https://restcountries.com/v2"}GetAll(){return n(this,void 0,void 0,(function*(){return yield this.GetData("all",!0,730)}))}GetCountriesFromLocalStorage(){const t=localStorage.getItem("all");if(t){const e=JSON.parse(t);return JSON.parse(e.data)}return[]}}e.default=o},267:function(t,e,i){var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{l(n.next(t))}catch(t){o(t)}}function a(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,a)}l((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const r=i(694);class o extends r.ClientBase{constructor(t,e){super(),this.unitGroup="metric",this.baseUrl="https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline",this.apiKey=t,this.unitGroup=null!=e?e:this.unitGroup}getWeatherData(t,e,i){return n(this,void 0,void 0,(function*(){const n=`${t},${e}/${i}?unitGroup=${this.unitGroup}&key=${this.apiKey}&contentType=json`;return yield this.GetData(n,!0,1)}))}}e.default=o},366:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BaseCard=void 0;const n=i(470),r=i(661),o=i(267);e.BaseCard=class{constructor(t){var e,i;this.config=t.config,this.client=new n.default,this.hass=t._hass,this.parent=t,this.weatherClient=new o.default(null!==(i=null===(e=this.config.weather_options)||void 0===e?void 0:e.api_key)&&void 0!==i?i:""),this.imageClient=new r.default}translation(t){return!this.config.translations||Object.keys(this.config.translations).indexOf(t)<0?this.defaultTranslations[t]:this.config.translations[t]}getProperties(){var t,e;const i=null===(t=this.parent.properties)||void 0===t?void 0:t.get("cardValues");return{races:null==i?void 0:i.races,selectedRace:null==i?void 0:i.selectedRace,selectedSeason:null==i?void 0:i.selectedSeason,selectedTabIndex:null!==(e=null==i?void 0:i.selectedTabIndex)&&void 0!==e?e:0}}getParentCardValues(){var t,e;const i=null!==(t=this.parent.properties)&&void 0!==t?t:new Map;return{properties:null!==(e=i.get("cardValues"))&&void 0!==e?e:{},cardValues:i}}}},169:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(639),r=i(557),o=i(438),s=i(366);class a extends s.BaseCard{constructor(t){super(t),this.defaultTranslations={constructor:"Constructor",points:"Pts",wins:"Wins"}}cardSize(){return 11}renderStandingRow(t){var e;return n.html`${t.position}${(null===(e=this.config.standings)||void 0===e?void 0:e.show_teamlogo)?n.html` `:""}${t.Constructor.name}${t.points}${t.wins}`}render(){return n.html`${(0,r.until)(this.client.GetConstructorStandings().then((t=>n.html`${(0,o.reduceArray)(t,this.config.row_limit).map((t=>this.renderStandingRow(t)))}
 ${this.translation("constructor")}${this.translation("points")}${this.translation("wins")}
`)).catch((()=>n.html`${(0,o.getApiErrorMessage)("standings")}`)),n.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=a},849:function(t,e,i){var n=this&&this.__await||function(t){return this instanceof n?(this.v=t,this):new n(t)},r=this&&this.__asyncGenerator||function(t,e,i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=i.apply(t,e||[]),s=[];return r={},a("next"),a("throw"),a("return"),r[Symbol.asyncIterator]=function(){return this},r;function a(t){o[t]&&(r[t]=function(e){return new Promise((function(i,n){s.push([t,e,i,n])>1||l(t,e)}))})}function l(t,e){try{(i=o[t](e)).value instanceof n?Promise.resolve(i.value.v).then(c,d):u(s[0][2],i)}catch(t){u(s[0][3],t)}var i}function c(t){l("next",t)}function d(t){l("throw",t)}function u(t,e){t(e),s.shift(),s.length&&l(s[0][0],s[0][1])}};Object.defineProperty(e,"__esModule",{value:!0});const o=i(639),s=i(557),a=i(438),l=i(366),c=i(810),d=i(313),u=i(22),h=i(241);class m extends l.BaseCard{constructor(t){var e;super(t),this.defaultTranslations={days:"d",hours:"h",minutes:"m",seconds:"s",endofseason:"Season is over. See you next year!",racenow:"We are racing!",date:"Date",practice1:"Practice 1",practice2:"Practice 2",practice3:"Practice 3",race:"Race",racename:"Race name",circuitname:"Circuit name",location:"Location",city:"City",racetime:"Race",sprint:"Sprint",qualifying:"Qualifying",until:"Until"},this.config.countdown_type=null!==(e=this.config.countdown_type)&&void 0!==e?e:h.CountdownType.Race}cardSize(){return this.config.show_raceinfo?12:6}renderHeader(t,e){return this.config.show_raceinfo?o.html`${(0,a.renderRaceInfo)(this,t,e)}
${(0,a.renderHeader)(this,t,!0)}
`:null}countDownTillDate(t){return r(this,arguments,(function*(){for(;t>new Date;){const e=(new Date).getTime(),i=t.getTime()-e,r=Math.floor(i/864e5),o=Math.floor(i%864e5/36e5),s=Math.floor(i%36e5/6e4),a=Math.floor(i%6e4/1e3);yield yield n(`${r}${this.translation("days")} ${o}${this.translation("hours")} ${s}${this.translation("minutes")} ${a}${this.translation("seconds")} `),yield n(new Promise((t=>setTimeout(t,1e3))))}yield yield n(this.translation("racenow"))}))}render(){const t=t=>{this.hass&&this.config.actions&&t.detail.action&&(0,a.clickHandler)(this.parent,this.config,this.hass,t)};return o.html`${(0,s.until)(this.client.GetSchedule((new Date).getFullYear()).then((e=>{var i,n;const{nextRace:r,raceDateTime:s,countdownType:l}=this.getNextEvent(e);if(!r)return(0,a.getEndOfSeasonMessage)(this.translation("endofseason"));const h=this.countDownTillDate(s),m=void 0!==this.config.actions;return o.html`${Array.isArray(this.config.countdown_type)&&this.config.countdown_type.length>1?o.html``:null}

   ${r.round} : ${r.raceName}

${(0,c.asyncReplace)(h)}

${this.translation("until")} ${this.translation(l.toLowerCase())}

${this.renderHeader(r,s)}`})).catch((()=>o.html`${(0,a.getApiErrorMessage)("next race")}`)),o.html`${(0,a.getApiLoadingMessage)()}`)}`}getNextEvent(t){var e;const i=t.filter((t=>{const e=new Date(t.date+"T"+t.time);return e.setHours(e.getHours()+3),e>=new Date}))[0];let n=null,r=this.config.countdown_type;if(i){const t=this.config.countdown_type,o=[{Date:new Date(i.FirstPractice.date+"T"+i.FirstPractice.time),Type:h.CountdownType.Practice1},{Date:new Date(i.SecondPractice.date+"T"+i.SecondPractice.time),Type:h.CountdownType.Practice2},{Date:i.ThirdPractice?new Date(i.ThirdPractice.date+"T"+i.ThirdPractice.time):null,Type:h.CountdownType.Practice3},{Date:i.Sprint?new Date(i.Sprint.date+"T"+i.Sprint.time):null,Type:h.CountdownType.Sprint},{Date:new Date(i.Qualifying.date+"T"+i.Qualifying.time),Type:h.CountdownType.Qualifying},{Date:new Date(i.date+"T"+i.time),Type:h.CountdownType.Race}].filter((t=>t.Date)).filter((t=>t.Date>new Date)).sort(((t,e)=>t.Date.getTime()-e.Date.getTime())).filter((e=>null==t?void 0:t.includes(e.Type)))[0];n=null==o?void 0:o.Date,r=null!==(e=null==o?void 0:o.Type)&&void 0!==e?e:r}return{nextRace:i,raceDateTime:n,countdownType:r}}}e.default=m},138:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(639),r=i(557),o=i(438),s=i(366);class a extends s.BaseCard{constructor(t){super(t),this.defaultTranslations={driver:"Driver",team:"Team",points:"Pts",wins:"Wins"}}cardSize(){return 12}renderStandingRow(t){var e,i;return n.html`${t.position}${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?n.html` `:""}${t.Driver.code}${(0,o.getDriverName)(t.Driver,this.config)}${(null===(i=this.config.standings)||void 0===i?void 0:i.show_team)?n.html`${(0,o.renderConstructorColumn)(this,t.Constructors[0])}`:""}${t.points}${t.wins}`}render(){return n.html`${(0,r.until)(this.client.GetDriverStandings().then((t=>{var e;return n.html`${(null===(e=this.config.standings)||void 0===e?void 0:e.show_team)?n.html``:""}${(0,o.reduceArray)(t,this.config.row_limit).map((t=>this.renderStandingRow(t)))}
 ${this.translation("driver")}${this.translation("team")}${this.translation("points")}${this.translation("wins")}
`})).catch((()=>n.html`${(0,o.getApiErrorMessage)("standings")}`)),n.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=a},507:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(639),r=i(557),o=i(438),s=i(366);class a extends s.BaseCard{constructor(t){super(t),this.defaultTranslations={driver:"Driver",grid:"Grid",points:"Points",status:"Status"}}cardSize(){return 11}renderResultRow(t){return n.html`${t.position}${(0,o.getDriverName)(t.Driver,this.config)}${t.grid}${t.points}${t.status}`}render(){return n.html`${(0,r.until)(this.client.GetLastResult().then((t=>n.html`
${(0,o.renderHeader)(this,t)}
${(0,o.reduceArray)(t.Results,this.config.row_limit).map((t=>this.renderResultRow(t)))}
 ${this.translation("driver")}${this.translation("grid")}${this.translation("points")}${this.translation("status")}
`)).catch((()=>n.html`${(0,o.getApiErrorMessage)("last result")}`)),n.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=a},840:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(639),r=i(557),o=i(438),s=i(366),a=i(300);class l extends s.BaseCard{constructor(){super(...arguments),this.defaultTranslations={date:"Date",practice1:"Practice 1",practice2:"Practice 2",practice3:"Practice 3",race:"Race",racename:"Race name",circuitname:"Circuit name",location:"Location",city:"City",racetime:"Race",sprint:"Sprint",qualifying:"Qualifying",endofseason:"Season is over. See you next year!"}}cardSize(){return 8}render(){return n.html`${(0,r.until)(this.client.GetSchedule((new Date).getFullYear()).then((t=>{const e=this.config.next_race_delay||0,i=t.filter((t=>{const i=new Date(t.date+"T"+t.time);return i.setHours(i.getHours()+e),i>=new Date}))[0];return i?n.html`${this.config.show_raceinfo?(0,o.renderRaceInfo)(this,i):this.config.only_show_date?n.html``:null}
${(0,o.renderHeader)(this,i)}

${(0,a.formatDateNumeric)(new Date(i.date+"T"+i.time),this.hass.locale,this.config.date_locale)}

`:(0,o.getEndOfSeasonMessage)(this.translation("endofseason"))})).catch((()=>n.html`${(0,o.getApiErrorMessage)("next race")}`)),n.html`${(0,o.getApiLoadingMessage)()}`)}`}}e.default=l},74:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(639),r=i(557),o=i(438),s=i(366);class a extends s.BaseCard{constructor(t){super(t),this.defaultTranslations={driver:"Driver",grid:"Grid",team:"Team",points:"Points",status:"Status",raceheader:"Race",seasonheader:"Season",selectseason:"Select season",selectrace:"Select race",noresults:"Please select a race thats already been run.",q1:"Q1",q2:"Q2",q3:"Q3"},this.icons={sprint:"mdi:flag-checkered",qualifying:"mdi:timer-outline",results:"mdi:trophy"},this.renderTabsHtml=(t,e,i)=>i?n.html`${t.filter((t=>t.content)).length>0?n.html``:n.html``}
${this.renderHeader(i)}
${t.filter((t=>!t.hide)).map((t=>n.html``))}
${t.filter((t=>!t.hide)).find(((t,i)=>i==e)).content}
${this.translation("noresults")}
`:n.html``}cardSize(){return 12}renderTabs(t){return[{title:"Results",icon:this.icon("results"),content:this.renderResults(t),order:this.tabOrder("results")},{title:"Qualifying",icon:this.icon("qualifying"),content:this.renderQualifying(t),order:this.tabOrder("qualifying")},{title:"Sprint",icon:this.icon("sprint"),content:this.renderSprint(t),hide:!(null==t?void 0:t.SprintResults),order:this.tabOrder("sprint")}].sort(((t,e)=>t.order-e.order))}renderSprint(t){var e;return(null==t?void 0:t.SprintResults)?n.html`${(null===(e=this.config.standings)||void 0===e?void 0:e.show_team)?n.html``:""}${(0,o.reduceArray)(t.SprintResults,this.config.row_limit).map((t=>this.renderResultRow(t,!1)))}
 ${this.translation("driver")}${this.translation("team")}${this.translation("grid")}${this.translation("points")}${this.translation("status")}
`:null}renderQualifying(t){var e;return(null==t?void 0:t.QualifyingResults)?n.html`${(null===(e=this.config.standings)||void 0===e?void 0:e.show_team)?n.html``:""}${(0,o.reduceArray)(t.QualifyingResults,this.config.row_limit).map((t=>this.renderQualifyingResultRow(t)))}
 ${this.translation("driver")}${this.translation("team")}${this.translation("q1")}${this.translation("q2")}${this.translation("q3")}
`:null}renderResults(t){var e,i;const r=null===(e=null==t?void 0:t.Results)||void 0===e?void 0:e.filter((t=>{var e;return"1"===(null===(e=t.FastestLap)||void 0===e?void 0:e.rank)}))[0];return(null==t?void 0:t.Results)?n.html`${(null===(i=this.config.standings)||void 0===i?void 0:i.show_team)?n.html``:""}${(0,o.reduceArray)(t.Results,this.config.row_limit).map((t=>this.renderResultRow(t,t.position===(null==r?void 0:r.position))))}${r?n.html``:""}
 ${this.translation("driver")}${this.translation("team")}${this.translation("grid")}${this.translation("points")}${this.translation("status")}
* Fastest lap: ${r.FastestLap.Time.time}
`:null}renderResultRow(t,e){var i,r;return n.html`${t.position}${(null===(i=this.config.standings)||void 0===i?void 0:i.show_flag)?n.html` `:""}${(0,o.getDriverName)(t.Driver,this.config)}${e?" *":""}${(null===(r=this.config.standings)||void 0===r?void 0:r.show_team)?n.html`${(0,o.renderConstructorColumn)(this,t.Constructor)}`:""}${t.grid}${t.points}${t.status}`}renderQualifyingResultRow(t){var e,i;return n.html`${t.position}${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?n.html` `:""}${(0,o.getDriverName)(t.Driver,this.config)}${(null===(i=this.config.standings)||void 0===i?void 0:i.show_team)?n.html`${(0,o.renderConstructorColumn)(this,t.Constructor)}`:""}${t.Q1}${t.Q2}${t.Q3}`}renderHeader(t){return null==t||parseInt(t.season)<2018?null:(0,o.renderHeader)(this,t)}render(){const{races:t,selectedRace:e,selectedSeason:i,selectedTabIndex:s}=this.getProperties();void 0===i&&this.getLastResult();const a=t=>{this.setRaces(t)},l=this.renderTabs(e);return n.html`
${this.translation("seasonheader")}
${(0,r.until)(this.client.GetSeasons().then((t=>{const e=t.reverse();return n.html``})).catch((()=>n.html`${(0,o.getApiErrorMessage)("seasons")}`)),n.html`${(0,o.getApiLoadingMessage)()}`)}
${this.translation("raceheader")}
${this.renderTabsHtml(l,s,e)}`}setSelectedRace(t){const e=parseInt(t.target.value),{properties:i,cardValues:n}=this.getParentCardValues();i.selectedRound=e;const r=i.selectedSeason;Promise.all([this.client.GetResults(r,e),this.client.GetQualifyingResults(r,e),this.client.GetSprintResults(r,e),this.client.GetSchedule(r)]).then((([t,r,o,s])=>{var a;let l=t.Races[0];l?(l.QualifyingResults=r.Races[0].QualifyingResults,l.SprintResults=null===(a=null==o?void 0:o.Races[0])||void 0===a?void 0:a.SprintResults,i.selectedSeason=l.season):l=s.filter((t=>parseInt(t.round)==e))[0],i.selectedRace=l,n.set("cardValues",i),this.parent.properties=n}))}setRaces(t){const e=t.target.value,{properties:i,cardValues:n}=this.getParentCardValues();this.client.GetSeasonRaces(parseInt(e)).then((t=>{i.selectedSeason=e,i.selectedRace=void 0,i.races=t,n.set("cardValues",i),this.parent.properties=n}))}getUpcomingRace(t,e){const i=e.filter((e=>{const i=new Date(e.date+"T"+e.time),n=new Date(e.Qualifying.date+"T"+e.Qualifying.time),r=e.Sprint?new Date(e.Sprint.date+"T"+e.Sprint.time):null;return i>=t&&n0?i[0]:null}getLastResult(){const t=new Date;Promise.all([this.client.GetSchedule(t.getFullYear()),this.client.GetLastResult()]).then((([e,i])=>{const n=this.getUpcomingRace(t,e);let r=(new Date).getFullYear(),o=null!==n?parseInt(n.round):0,s={};null!==n?(s=n,o=parseInt(s.round),r=parseInt(s.season)):(s=i,o=parseInt(i.round),r=parseInt(i.season)),Promise.all([this.client.GetQualifyingResults(r,o),this.client.GetSprintResults(r,o),this.client.GetSeasonRaces(r)]).then((([t,e,i])=>{var n;const{properties:o,cardValues:a}=this.getParentCardValues();s.QualifyingResults=t.Races[0].QualifyingResults,s.SprintResults=null===(n=e.Races[0])||void 0===n?void 0:n.SprintResults,o.races=i,o.selectedRace=s,o.selectedSeason=r.toString(),a.set("cardValues",o),this.parent.properties=a}))}))}setSelectedTabIndex(t){const{properties:e,cardValues:i}=this.getParentCardValues();e.selectedTabIndex=t,i.set("cardValues",e),this.parent.properties=i}icon(t){return!this.config.icons||Object.keys(this.config.icons).indexOf(t)<0?this.icons[t]:this.config.icons[t]}tabOrder(t){var e,i;const n=null!==(i=null===(e=this.config.tabs_order)||void 0===e?void 0:e.map((t=>t.toLowerCase())))&&void 0!==i?i:["results","qualifying","sprint"];return n.indexOf(t)}}e.default=a},465:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(313),r=i(639),o=i(557),s=i(300),a=i(241),l=i(438),c=i(366);class d extends c.BaseCard{constructor(t){super(t),this.defaultTranslations={date:"Date",race:"Race",time:"Time",location:"Location",endofseason:"Season is over. See you next year!"}}cardSize(){return 12}renderLocation(t){var e;const i=r.html`${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?r.html` `:""}${t.Location.locality}, ${t.Location.country}`;return this.config.location_clickable?r.html`${i}`:i}renderScheduleRow(t){const e=new Date(t.date+"T"+t.time),i=this.config.previous_race&&e${t.round}${t.Circuit.circuitName}${this.renderLocation(t.Circuit)}${(0,s.formatDate)(e,this.hass.locale,this.config.date_locale)}${(0,n.formatTime)(e,this.hass.locale)}`}render(){return r.html`${(0,o.until)(this.client.GetSchedule((new Date).getFullYear()).then((t=>{const e=this.config.previous_race===a.PreviousRaceDisplay.Hide?t.filter((t=>new Date(t.date+"T"+t.time)>=new Date)):t;return e.filter((t=>new Date(t.date+"T"+t.time)>=new Date))[0]?r.html`${(0,l.reduceArray)(e,this.config.row_limit).map((t=>this.renderScheduleRow(t)))}
 ${this.translation("race")}${this.translation("location")}${this.translation("date")}${this.translation("time")}
`:(0,l.getEndOfSeasonMessage)(this.translation("endofseason"))})).catch((()=>r.html`${(0,l.getApiErrorMessage)("schedule")}`)),r.html`${(0,l.getApiLoadingMessage)()}`)}`}}e.default=d},851:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CARD_EDITOR_NAME=e.CARD_NAME=void 0,e.CARD_NAME="formulaone-card",e.CARD_EDITOR_NAME=`${e.CARD_NAME}-editor`},22:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.actionHandler=e.actionHandlerBind=void 0;const n=i(395),r=i(313),o=i(11),s="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.maxTouchPoints>0;class a extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:s?"100px":"50px",height:s?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((t=>{document.addEventListener(t,(()=>{clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0}),{passive:!0})}))}bind(t,e){if(t.actionHandler)return;t.actionHandler=!0,t.addEventListener("contextmenu",(t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1}));const i=t=>{let e,i;this.held=!1,t.touches?(e=t.touches[0].pageX,i=t.touches[0].pageY):(e=t.pageX,i=t.pageY),this.timer=window.setTimeout((()=>{this.startAnimation(e,i),this.held=!0}),this.holdTime)},n=i=>{i.preventDefault(),["touchend","touchcancel"].includes(i.type)&&void 0===this.timer||(clearTimeout(this.timer),this.stopAnimation(),this.timer=void 0,this.held?(0,r.fireEvent)(t,"action",{action:"hold"}):e.hasDoubleClick?"click"===i.type&&i.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout((()=>{this.dblClickTimeout=void 0,(0,r.fireEvent)(t,"action",{action:"tap"})}),250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,(0,r.fireEvent)(t,"action",{action:"double_tap"})):(0,r.fireEvent)(t,"action",{action:"tap"}))};t.addEventListener("touchstart",i,{passive:!0}),t.addEventListener("touchend",n),t.addEventListener("touchcancel",n),t.addEventListener("mousedown",i,{passive:!0}),t.addEventListener("click",n),t.addEventListener("keyup",(t=>{13===t.keyCode&&n(t)}))}startAnimation(t,e){Object.assign(this.style,{left:`${t}px`,top:`${e}px`,display:null}),this.ripple.disabled=!1,this.ripple.active=!0,this.ripple.unbounded=!0}stopAnimation(){this.ripple.active=!1,this.ripple.disabled=!0,this.style.display="none"}}customElements.define("action-handler-formulaonecard",a),e.actionHandlerBind=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("action-handler-formulaonecard"))return t.querySelector("action-handler-formulaonecard");const e=document.createElement("action-handler-formulaonecard");return t.appendChild(e),e})();i&&i.bind(t,e)},e.actionHandler=(0,n.directive)(class extends n.Directive{update(t,[i]){return(0,e.actionHandlerBind)(t.element,i),o.noChange}render(t){}})},750:function(t,e,i){var n=this&&this.__decorate||function(t,e,i,n){var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(e,"__esModule",{value:!0}),e.FormulaOneCardEditor=void 0;const r=i(639),o=i(851),s=i(241),a=i(898),l=i(194),c=i(429),d=i(11);let u=class extends a.default{render(){return this._hass&&this._config?this.renderForm([{controls:[{label:"Card Type (Required)",configValue:"card_type",type:l.FormControlType.Dropdown,items:(0,c.getDropdownOptionsFromEnum)(s.FormulaOneCardType)}]},{controls:[{label:"Title",configValue:"title",type:l.FormControlType.Textbox}]},{label:"Basic configuration",cssClass:"side-by-side",controls:[{label:"Use F1 font",configValue:"f1_font",type:l.FormControlType.Switch},{label:"Image clickable",configValue:"image_clickable",type:l.FormControlType.Switch},{label:"Show carnumber",configValue:"show_carnumber",type:l.FormControlType.Switch},{label:"Location clickable",configValue:"location_clickable",type:l.FormControlType.Switch},{label:"Show race information",configValue:"show_raceinfo",type:l.FormControlType.Switch},{label:"Hide track layout",configValue:"hide_tracklayout",type:l.FormControlType.Switch},{label:"Hide race dates and times",configValue:"hide_racedatetimes",type:l.FormControlType.Switch},{label:"Show last years result",configValue:"show_lastyears_result",type:l.FormControlType.Switch},{label:"Only show date",configValue:"only_show_date",type:l.FormControlType.Switch},{type:l.FormControlType.Filler},{label:"Row limit",configValue:"row_limit",type:l.FormControlType.Textbox},{label:"Date locale",configValue:"date_locale",type:l.FormControlType.Textbox}]},{label:"Countdown Type",hidden:this._config.card_type!==s.FormulaOneCardType.Countdown,cssClass:"side-by-side",controls:[{configValue:"countdown_type",type:l.FormControlType.Checkboxes,items:(0,c.getDropdownOptionsFromEnum)(s.CountdownType)}]},{hidden:this._config.card_type!==s.FormulaOneCardType.NextRace,controls:[{label:"Next race delay",configValue:"next_race_delay",type:l.FormControlType.Textbox}]},{hidden:this._config.card_type!==s.FormulaOneCardType.Schedule,controls:[{label:"Previous race",configValue:"previous_race",type:l.FormControlType.Dropdown,items:(0,c.getDropdownOptionsFromEnum)(s.PreviousRaceDisplay)}]},{label:"Standings",hidden:this._config.card_type!==s.FormulaOneCardType.ConstructorStandings&&this._config.card_type!==s.FormulaOneCardType.DriverStandings,cssClass:"side-by-side",controls:[{label:"Show team",configValue:"standings.show_team",type:l.FormControlType.Switch},{label:"Show flag",configValue:"standings.show_flag",type:l.FormControlType.Switch},{label:"Show teamlogo",configValue:"standings.show_teamlogo",type:l.FormControlType.Switch}]},{label:"Weather",hidden:this._config.card_type!==s.FormulaOneCardType.NextRace&&this._config.card_type!==s.FormulaOneCardType.Countdown,controls:[{label:"Show weather",configValue:"show_weather",type:l.FormControlType.Switch}]},{cssClass:"side-by-side",hidden:this._config.card_type!==s.FormulaOneCardType.NextRace&&this._config.card_type!==s.FormulaOneCardType.Countdown||!this._config.show_weather,controls:[{label:"API key",configValue:"weather_options.api_key",type:l.FormControlType.Textbox},{label:"Unit",configValue:"weather_options.unit",type:l.FormControlType.Dropdown,items:(0,c.getDropdownOptionsFromEnum)(s.WeatherUnit)},{label:"Show icon",configValue:"weather_options.show_icon",type:l.FormControlType.Switch},{label:"Show precipitation",configValue:"weather_options.show_precipitation",type:l.FormControlType.Switch},{label:"Show wind",configValue:"weather_options.show_wind",type:l.FormControlType.Switch},{label:"Show temperature",configValue:"weather_options.show_temperature",type:l.FormControlType.Switch},{label:"Show cloud coverage",configValue:"weather_options.show_cloud_cover",type:l.FormControlType.Switch},{label:"Show visibility",configValue:"weather_options.show_visibility",type:l.FormControlType.Switch}]},{label:"Tabs",hidden:this._config.card_type!==s.FormulaOneCardType.Results,controls:[{label:"Tabs order",configValue:"tabs_order",type:l.FormControlType.Textbox}]}]):r.html``}static get styles(){return d.css`.form-row{margin-bottom:10px}.form-control{display:flex;align-items:center}ha-switch{padding:16px 6px}.side-by-side{display:flex;flex-flow:row wrap}.side-by-side>label{width:100%}.side-by-side>.form-control{width:49%;padding:2px}ha-textfield{width:100%}.hidden{display:none}@media (max-width:600px){.side-by-side>.form-control{width:48%}}`}};u=n([(0,d.customElement)(o.CARD_EDITOR_NAME)],u),e.FormulaOneCardEditor=u},657:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.loadCustomFonts=void 0,e.loadCustomFonts=()=>{if(window&&document.fonts){const t=new FontFace("F1Bold","url(https://www.formula1.com/etc/designs/fom-website/fonts/F1Bold/Formula1-Bold.woff)");document.fonts.add(t),t.load()}}},148:function(t,e,i){var n=this&&this.__decorate||function(t,e,i,n){var r,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(s=(o<3?r(s):o>3?r(e,i,s):r(e,i))||s);return o>3&&s&&Object.defineProperty(e,i,s),s},r=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))((function(r,o){function s(t){try{l(n.next(t))}catch(t){o(t)}}function a(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,a)}l((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const o=i(147),s=i(15),a=i(241),l=i(110),c=i(438),d=i(657),u=i(278),h=i(169),m=i(138),p=i(465),f=i(840),g=i(507),v=i(849),y=i(74),_=i(959),$=i(851);console.info(`%c ${$.CARD_NAME.toUpperCase()} %c ${o.version}`,"color: cyan; background: black; font-weight: bold;","color: darkblue; background: white; font-weight: bold;"),window.customCards=window.customCards||[],window.customCards.push({type:"formulaone-card",name:"FormulaOne card",preview:!1,description:"Present the data of Formula One in a pretty way"});let b=class extends l.LitElement{set properties(t){this._cardValues=t,this.update(t)}get properties(){return this._cardValues}constructor(){super(),this.setCountryCache()}static getConfigElement(){return r(this,void 0,void 0,(function*(){return yield Promise.resolve().then((()=>i(750))),document.createElement($.CARD_EDITOR_NAME)}))}setConfig(t){(0,c.checkConfig)(t),this.config=Object.assign({},t)}setCountryCache(){(new _.default).GetAll().catch((()=>{this.warning="Country API is down, so flags are not available at the moment!",this.update(this._cardValues)}))}shouldUpdate(t){return(0,c.hasConfigOrCardValuesChanged)(this,t)}set hass(t){switch(this._hass=t,this.config.hass=t,this.config.card_type){case a.FormulaOneCardType.ConstructorStandings:this.card=new h.default(this);break;case a.FormulaOneCardType.DriverStandings:this.card=new m.default(this);break;case a.FormulaOneCardType.Schedule:this.card=new p.default(this);break;case a.FormulaOneCardType.NextRace:this.card=new f.default(this);break;case a.FormulaOneCardType.LastResult:this.card=new g.default(this);break;case a.FormulaOneCardType.Countdown:this.card=new v.default(this);break;case a.FormulaOneCardType.Results:this.card=new y.default(this)}}static get styles(){return(0,d.loadCustomFonts)(),u.styles}render(){if(!this._hass||!this.config)return l.html``;try{return l.html`${this.warning?l.html`${this.warning}`:""} ${this.config.title?l.html`

${this.config.title}

`:""} ${this.card.render()}
`}catch(t){return l.html`${t.toString()}`}}getCardSize(){return this.card.cardSize()}};n([(0,s.property)()],b.prototype,"_hass",void 0),n([(0,s.property)()],b.prototype,"config",void 0),n([(0,s.property)()],b.prototype,"card",void 0),n([(0,s.property)()],b.prototype,"warning",void 0),n([(0,s.property)()],b.prototype,"properties",null),b=n([(0,s.customElement)($.CARD_NAME)],b),e.default=b},198:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.TimeFormat=e.NumberFormat=e.SECONDARY_INFO_VALUES=e.TIMESTAMP_FORMATS=e.ImageConstants=void 0,e.ImageConstants={FlagCDN:"https://flagcdn.com/w320/",TeamLogoCDN:"https://www.formula1.com/content/dam/fom-website/teams/",F1CDN:"https://www.formula1.com/content/dam/fom-website/2018-redesign-assets/"},e.TIMESTAMP_FORMATS=["relative","total","date","time","datetime"],e.SECONDARY_INFO_VALUES=["entity-id","last-changed","last-updated","last-triggered","position","tilt-position","brightness"],e.NumberFormat={language:"language",system:"system",comma_decimal:"comma_decimal",decimal_comma:"decimal_comma",space_comma:"space_comma",none:"none"},e.TimeFormat={language:"language",system:"system",am_pm:"12",twenty_four:"24"}},300:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatDateNumeric=e.formatDate=void 0,e.formatDate=(t,e,i)=>new Intl.DateTimeFormat(null!=i?i:e.language,{month:"2-digit",day:"2-digit"}).format(t),e.formatDateNumeric=(t,e,i)=>new Intl.DateTimeFormat(null!=i?i:e.language,{year:"2-digit",month:"2-digit",day:"2-digit"}).format(t)},141:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatDateTimeRaceInfo=e.formatDateTime=void 0;const n=i(975);e.formatDateTime=(t,e)=>new Intl.DateTimeFormat(e.language,{year:"numeric",month:"long",day:"numeric",hour:(0,n.useAmPm)(e)?"numeric":"2-digit",minute:"2-digit",hour12:(0,n.useAmPm)(e)}).format(t),e.formatDateTimeRaceInfo=(t,e)=>new Intl.DateTimeFormat(e.language,{weekday:"short",hour:"2-digit",minute:"2-digit",hour12:(0,n.useAmPm)(e)}).format(t)},975:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.useAmPm=void 0;const n=i(198);e.useAmPm=t=>{if(t.time_format===n.TimeFormat.language||t.time_format===n.TimeFormat.system){const e=t.time_format===n.TimeFormat.language?t.language:void 0,i=(new Date).toLocaleString(e);return i.includes("AM")||i.includes("PM")}return t.time_format===n.TimeFormat.am_pm}},278:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.styles=void 0;const n=i(110);e.styles=n.css`table{width:100%;border-spacing:0;border-collapse:separate;padding:0 16px 16px}table.nopadding{padding:0;width:100%;border-spacing:0;border-collapse:separate}th{background-color:var(--table-row-alternative-background-color,#eee)}td,th{padding:5px;text-align:left}tr{color:var(--secondary-text-color)}tr:nth-child(even){background-color:var(--table-row-alternative-background-color,#eee)}.text-center{text-align:center}.width-40{width:40px}.width-50{width:50px}.width-60{width:60px}.hide{display:none}.strikethrough{text-decoration:line-through}.italic{font-style:italic}a{text-decoration:none;color:var(--secondary-text-color)}.constructor-logo{width:20px;margin:auto;display:block;float:left;background-color:#fff;border-radius:50%;margin-right:3px}.clickable{cursor:pointer}.formulaone-font{font-family:F1Bold}ha-icon{color:var(--secondary-text-color)}.transparent{background-color:transparent!important}.weather-info{padding:10px}.weather-info td{width:33%}`},241:(t,e)=>{var i,n,r,o;Object.defineProperty(e,"__esModule",{value:!0}),e.FormulaOneCardType=e.PreviousRaceDisplay=e.CountdownType=e.WeatherUnit=void 0,(o=e.WeatherUnit||(e.WeatherUnit={})).Metric="metric",o.MilesCelsius="uk",o.MilesFahrenheit="us",(r=e.CountdownType||(e.CountdownType={})).Race="race",r.Qualifying="qualifying",r.Practice1="practice1",r.Practice2="practice2",r.Practice3="practice3",r.Sprint="sprint",(n=e.PreviousRaceDisplay||(e.PreviousRaceDisplay={})).Strikethrough="strikethrough",n.Italic="italic",n.Hide="hide",(i=e.FormulaOneCardType||(e.FormulaOneCardType={})).DriverStandings="driver_standings",i.ConstructorStandings="constructor_standings",i.NextRace="next_race",i.Schedule="schedule",i.LastResult="last_result",i.Results="results",i.Countdown="countdown"},438:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.renderConstructorColumn=e.reduceArray=e.getRefreshTime=e.calculateWindDirection=e.renderWeatherInfo=e.renderLastYearsResults=e.renderRaceInfo=e.renderHeader=e.clickHandler=e.getEndOfSeasonMessage=e.getApiLoadingMessage=e.getApiErrorMessage=e.getDriverName=e.getCircuitName=e.getTeamImage=e.checkConfig=e.getCountryFlagByName=e.getCountryFlagByNationality=e.getCountries=e.hasConfigOrCardValuesChanged=void 0;const n=i(110),r=i(241),o=i(141),s=i(313),a=i(300),l=i(198),c=i(22),d=i(959),u=i(557);e.hasConfigOrCardValuesChanged=(t,e)=>{if(e.has("config"))return!0;const i=e.get("card");if(i&&i.parent)return i.parent.properties!==t.properties;const n=e.get("cardValues");return!!n&&n!=t.properties},e.getCountries=()=>(new d.default).GetCountriesFromLocalStorage(),e.getCountryFlagByNationality=(t,i)=>{const n=(0,e.getCountries)().filter((t=>t.demonym==i));return n.length>1?t.imageClient.GetImage(n.sort(((t,e)=>t.population>e.population?-1:1))[0].flags.png):t.imageClient.GetImage(n[0].flags.png)},e.getCountryFlagByName=(t,i)=>{const n=(0,e.getCountries)().filter((t=>{var e;return t.name==i||t.nativeName==i||(null===(e=t.altSpellings)||void 0===e?void 0:e.includes(i))}))[0];return t.imageClient.GetImage(n.flags.png)},e.checkConfig=t=>{if(void 0===t.card_type)throw new Error("Please define FormulaOne card type (card_type).")},e.getTeamImage=(t,e)=>{e=e.toLocaleLowerCase().replace("_","-");const i=[{teamName:"red-bull",corrected:"red-bull-racing"},{teamName:"alfa",corrected:"alfa-romeo"},{teamName:"haas",corrected:"haas-f1-team"}].filter((t=>t.teamName==e));return i.length>0&&(e=i[0].corrected),t.imageClient.GetImage(`${l.ImageConstants.TeamLogoCDN}/2023/${e.toLowerCase()}-logo.png.transform/2col-retina/image.png`)},e.getCircuitName=t=>{let e=t.country.replace(" ","-");const i=[{countryDashed:"UAE",name:"Abu_Dhabi"},{countryDashed:"UK",name:"Great_Britain"},{countryDashed:"Monaco",name:"Monoco"},{countryDashed:"Azerbaijan",name:"Baku"},{countryDashed:"Saudi-Arabia",name:"Saudi_Arabia"}].filter((t=>t.countryDashed==e));return i.length>0&&(e=i[0].name),"USA"!=t.country&&"United States"!=t.country||"Austin"==t.locality||(e=t.locality.replace(" ","_")),"Italy"==t.country&&"Imola"==t.locality&&(e="Emilia_Romagna"),e},e.getDriverName=(t,e)=>{const i="VER"==t.code?1:t.permanentNumber;return`${t.givenName} ${t.familyName}${e.show_carnumber?` #${i}`:""}`},e.getApiErrorMessage=t=>n.html`
Error getting ${t}
`,e.getApiLoadingMessage=()=>n.html`
Loading...
`,e.getEndOfSeasonMessage=t=>n.html`
${t}
`,e.clickHandler=(t,e,i,n)=>{(0,s.handleAction)(t,i,e.actions,n.detail.action)},e.renderHeader=(t,i,o=!1)=>{var a,d;const u=(0,e.getCircuitName)(i.Circuit.Location),h=t.config.image_clickable||void 0!==t.config.actions,m=i.Circuit.url;t.config.image_clickable&&!t.config.actions&&(t.config.actions={tap_action:{action:"url",url_path:m}});const p=n.html``,f=n.html`

  ${i.round} : ${i.raceName}

`;return n.html`${t.config.card_type==r.FormulaOneCardType.Countdown?n.html``:f} ${t.config.hide_tracklayout?n.html``:p}
`},e.renderRaceInfo=(t,i,r)=>{var s;const l=t.config,c=t.hass;if(l.hide_racedatetimes)return n.html``;const d=l.show_weather&&void 0!==(null===(s=l.weather_options)||void 0===s?void 0:s.api_key)?t.weatherClient.getWeatherData(i.Circuit.Location.lat,i.Circuit.Location.long,`${i.date}T${i.time}`):Promise.resolve(null),h=l.show_lastyears_result?t.client.GetLastYearsResults(i.Circuit.circuitName):Promise.resolve(null),m=Promise.all([d,h]);return n.html`${(0,u.until)(m.then((([s,d])=>{const u=null==s?void 0:s.days[0],h=new Date(i.date+"T"+i.time),m=(0,e.renderWeatherInfo)(u,l,null!=r?r:h),p=(0,e.renderLastYearsResults)(l,d),f=(0,o.formatDateTimeRaceInfo)(new Date(i.FirstPractice.date+"T"+i.FirstPractice.time),c.locale),g=(0,o.formatDateTimeRaceInfo)(new Date(i.SecondPractice.date+"T"+i.SecondPractice.time),c.locale),v=void 0!==i.ThirdPractice?(0,o.formatDateTimeRaceInfo)(new Date(i.ThirdPractice.date+"T"+i.ThirdPractice.time),c.locale):"-",y=(0,o.formatDateTimeRaceInfo)(h,c.locale),_=(0,o.formatDateTimeRaceInfo)(new Date(i.Qualifying.date+"T"+i.Qualifying.time),c.locale),$=void 0!==i.Sprint?(0,o.formatDateTimeRaceInfo)(new Date(i.Sprint.date+"T"+i.Sprint.time),c.locale):"-";return n.html`${p}${m}${t.translation("date")}${(0,a.formatDateNumeric)(h,c.locale,l.date_locale)} ${t.translation("practice1")}${f}${t.translation("race")}${i.round} ${t.translation("practice2")}${g}${t.translation("racename")}${i.raceName} ${t.translation("practice3")}${v}${t.translation("circuitname")}${i.Circuit.circuitName} ${t.translation("qualifying")}${_}${t.translation("location")}${i.Circuit.Location.country} ${t.translation("sprint")}${$}${t.translation("city")}${i.Circuit.Location.locality} ${t.translation("racetime")}${y}`})))}`},e.renderLastYearsResults=(t,e)=>{var i,r;if(!e)return n.html``;const o=e.Results?e.Results[0]:null,s=null===(i=e.Results)||void 0===i?void 0:i.filter((t=>{var e;return"1"===(null===(e=t.FastestLap)||void 0===e?void 0:e.rank)}))[0];return n.html`

${new Date(e.date).getFullYear()}

${null==o?void 0:o.Driver.givenName} ${null==o?void 0:o.Driver.familyName} (${null==o?void 0:o.Constructor.name})

${null==s?void 0:s.Driver.givenName} ${null==s?void 0:s.Driver.familyName} (${null===(r=null==s?void 0:s.FastestLap)||void 0===r?void 0:r.Time.time})

 `},e.renderWeatherInfo=(t,i,o)=>{var s,a;if(!t)return n.html``;const l=(null===(s=i.weather_options)||void 0===s?void 0:s.unit)===r.WeatherUnit.Metric?"km/h":"mph",c=(null===(a=i.weather_options)||void 0===a?void 0:a.unit)===r.WeatherUnit.MilesFahrenheit?"°F":"°C",d=t.hours?t.hours[o.getHours()]:t;return n.html`
${(0,e.calculateWindDirection)(d.winddir)} ${d.windspeed} ${l}${d.precip} mm${d.precipprob}%
${d.cloudcover} %${d.temp} ${c}${d.feelslike} ${c}
 `},e.calculateWindDirection=t=>{const e=[{label:"N",range:[0,11.25]},{label:"NNE",range:[11.25,33.75]},{label:"NE",range:[33.75,56.25]},{label:"ENE",range:[56.25,78.75]},{label:"E",range:[78.75,101.25]},{label:"ESE",range:[101.25,123.75]},{label:"SE",range:[123.75,146.25]},{label:"SSE",range:[146.25,168.75]},{label:"S",range:[168.75,191.25]},{label:"SSW",range:[191.25,213.75]},{label:"SW",range:[213.75,236.25]},{label:"WSW",range:[236.25,258.75]},{label:"W",range:[258.75,281.25]},{label:"WNW",range:[281.25,303.75]},{label:"NW",range:[303.75,326.25]},{label:"NNW",range:[326.25,348.75]},{label:"N",range:[348.75,360]}];for(const{label:i,range:n}of e)if(t>=n[0]&&t<=n[1])return i},e.getRefreshTime=t=>{let e=24;const i=new Date,n=localStorage.getItem(`${i.getFullYear()}.json`);if(n){const r=JSON.parse(n),o=JSON.parse(r.data).MRData.RaceTable.Races.filter((t=>new Date(t.date).toLocaleDateString==i.toLocaleDateString));if(o.length>0){const i=o[0],n=new Date(i.date+"T"+i.time),r=localStorage.getItem(t);if(r){const t=JSON.parse(r);new Date(t.created)void 0===t?[]:e?t.slice(0,e):t,e.renderConstructorColumn=(t,i)=>n.html`${t.config.standings.show_teamlogo?n.html` `:""}${i.name}`},11:(t,e,i)=>{i.r(e),i.d(e,{CSSResult:()=>a,LitElement:()=>S,ReactiveElement:()=>$,UpdatingElement:()=>A,_$LE:()=>E,_$LH:()=>C._$LH,adoptStyles:()=>d,css:()=>c,customElement:()=>k,decorateProperty:()=>R,defaultConverter:()=>v,eventOptions:()=>M,getCompatibleStyle:()=>u,html:()=>C.html,legacyPrototypeMethod:()=>D,noChange:()=>C.noChange,notEqual:()=>y,nothing:()=>C.nothing,property:()=>P,query:()=>F,queryAll:()=>I,queryAssignedElements:()=>j,queryAssignedNodes:()=>V,queryAsync:()=>L,render:()=>C.render,standardPrototypeMethod:()=>x,state:()=>N,supportsAdoptingStyleSheets:()=>r,svg:()=>C.svg,unsafeCSS:()=>l});const n=window,r=n.ShadowRoot&&(void 0===n.ShadyCSS||n.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,o=Symbol(),s=new WeakMap;class a{constructor(t,e,i){if(this._$cssResult$=!0,i!==o)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(r&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=s.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&s.set(e,t))}return t}toString(){return this.cssText}}const l=t=>new a("string"==typeof t?t:t+"",void 0,o),c=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[n+1]),t[0]);return new a(i,t,o)},d=(t,e)=>{r?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),r=n.litNonce;void 0!==r&&i.setAttribute("nonce",r),i.textContent=e.cssText,t.appendChild(i)}))},u=r?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return l(e)})(t):t;var h;const m=window,p=m.trustedTypes,f=p?p.emptyScript:"",g=m.reactiveElementPolyfillSupport,v={toAttribute(t,e){switch(e){case Boolean:t=t?f:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},y=(t,e)=>e!==t&&(e==e||t==t),_={attribute:!0,type:String,converter:v,reflect:!1,hasChanged:y};class $ extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;this.finalize(),(null!==(e=this.h)&&void 0!==e?e:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const n=this._$Ep(i,e);void 0!==n&&(this._$Ev.set(n,i),t.push(n))})),t}static createProperty(t,e=_){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,n=this.getPropertyDescriptor(t,i,e);void 0!==n&&Object.defineProperty(this.prototype,t,n)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(n){const r=this[t];this[e]=n,this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||_}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(u(t))}else void 0!==t&&e.push(u(t));return e}static _$Ep(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$ES)&&void 0!==e?e:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$ES)||void 0===e||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return d(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e,i=_){var n;const r=this.constructor._$Ep(t,i);if(void 0!==r&&!0===i.reflect){const o=(void 0!==(null===(n=i.converter)||void 0===n?void 0:n.toAttribute)?i.converter:v).toAttribute(e,i.type);this._$El=t,null==o?this.removeAttribute(r):this.setAttribute(r,o),this._$El=null}}_$AK(t,e){var i;const n=this.constructor,r=n._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=n.getPropertyOptions(r),o="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(i=t.converter)||void 0===i?void 0:i.fromAttribute)?t.converter:v;this._$El=r,this[r]=o.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,i){let n=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||y)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):n=!1),!this.isUpdatePending&&n&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,e)=>this[e]=t)),this._$Ei=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$Ek()}catch(t){throw e=!1,this._$Ek(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$ES)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$EO(e,this[e],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}$.finalized=!0,$.elementProperties=new Map,$.elementStyles=[],$.shadowRootOptions={mode:"open"},null==g||g({ReactiveElement:$}),(null!==(h=m.reactiveElementVersions)&&void 0!==h?h:m.reactiveElementVersions=[]).push("1.6.1");var b,w,C=i(639);const A=$;class S extends ${constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=(0,C.render)(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return C.noChange}}S.finalized=!0,S._$litElement$=!0,null===(b=globalThis.litElementHydrateSupport)||void 0===b||b.call(globalThis,{LitElement:S});const T=globalThis.litElementPolyfillSupport;null==T||T({LitElement:S});const E={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(w=globalThis.litElementVersions)&&void 0!==w?w:globalThis.litElementVersions=[]).push("3.3.3");const D=(t,e,i)=>{Object.defineProperty(e,i,t)},x=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}),R=({finisher:t,descriptor:e})=>(i,n)=>{var r;if(void 0===n){const n=null!==(r=i.originalKey)&&void 0!==r?r:i.key,o=null!=e?{kind:"method",placement:"prototype",key:n,descriptor:e(i.key)}:{...i,key:n};return null!=t&&(o.finisher=function(e){t(e,n)}),o}{const r=i.constructor;void 0!==e&&Object.defineProperty(i,n,e(n)),null==t||t(r,n)}},k=t=>e=>"function"==typeof e?((t,e)=>(customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:n}=e;return{kind:i,elements:n,finisher(e){customElements.define(t,e)}}})(t,e),O=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function P(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):O(t,e)}function N(t){return P({...t,state:!0})}function M(t){return R({finisher:(e,i)=>{Object.assign(e.prototype[i],t)}})}function F(t,e){return R({descriptor:i=>{const n={get(){var e,i;return null!==(i=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==i?i:null},enumerable:!0,configurable:!0};if(e){const e="symbol"==typeof i?Symbol():"__"+i;n.get=function(){var i,n;return void 0===this[e]&&(this[e]=null!==(n=null===(i=this.renderRoot)||void 0===i?void 0:i.querySelector(t))&&void 0!==n?n:null),this[e]}}return n}})}function I(t){return R({descriptor:e=>({get(){var e,i;return null!==(i=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelectorAll(t))&&void 0!==i?i:[]},enumerable:!0,configurable:!0})})}function L(t){return R({descriptor:e=>({async get(){var e;return await this.updateComplete,null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t)},enumerable:!0,configurable:!0})})}var H;const U=null!=(null===(H=window.HTMLSlotElement)||void 0===H?void 0:H.prototype.assignedElements)?(t,e)=>t.assignedElements(e):(t,e)=>t.assignedNodes(e).filter((t=>t.nodeType===Node.ELEMENT_NODE));function j(t){const{slot:e,selector:i}=null!=t?t:{};return R({descriptor:n=>({get(){var n;const r="slot"+(e?`[name=${e}]`:":not([name])"),o=null===(n=this.renderRoot)||void 0===n?void 0:n.querySelector(r),s=null!=o?U(o,t):[];return i?s.filter((t=>t.matches(i))):s},enumerable:!0,configurable:!0})})}function V(t,e,i){let n,r=t;return"object"==typeof t?(r=t.slot,n=t):n={flatten:e},i?j({slot:r,flatten:e,selector:i}):R({descriptor:t=>({get(){var t,e;const i="slot"+(r?`[name=${r}]`:":not([name])"),o=null===(t=this.renderRoot)||void 0===t?void 0:t.querySelector(i);return null!==(e=null==o?void 0:o.assignedNodes(n))&&void 0!==e?e:[]},enumerable:!0,configurable:!0})})}console.warn("The main 'lit-element' module entrypoint is deprecated. Please update your imports to use the 'lit' package: 'lit' and 'lit/decorators.ts' or import from 'lit-element/lit-element.ts'. See https://lit.dev/msg/deprecated-import-path for more information.")},557:(t,e,i)=>{i.r(e),i.d(e,{UntilDirective:()=>v,until:()=>y});var n=i(639);const{I:r}=n._$LH;class o{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}const s=(t,e)=>{var i,n;const r=t._$AN;if(void 0===r)return!1;for(const t of r)null===(n=(i=t)._$AO)||void 0===n||n.call(i,e,!1),s(t,e);return!0},a=t=>{let e,i;do{if(void 0===(e=t._$AM))break;i=e._$AN,i.delete(t),t=e}while(0===(null==i?void 0:i.size))},l=t=>{for(let e;e=t._$AM;t=e){let i=e._$AN;if(void 0===i)e._$AN=i=new Set;else if(i.has(t))break;i.add(t),u(e)}};function c(t){void 0!==this._$AN?(a(this),this._$AM=t,l(this)):this._$AM=t}function d(t,e=!1,i=0){const n=this._$AH,r=this._$AN;if(void 0!==r&&0!==r.size)if(e)if(Array.isArray(n))for(let t=i;t{var e,i,n,r;2==t.type&&(null!==(e=(n=t)._$AP)&&void 0!==e||(n._$AP=d),null!==(i=(r=t)._$AQ)&&void 0!==i||(r._$AQ=c))};class h extends o{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),l(this),this.isConnected=t._$AU}_$AO(t,e=!0){var i,n;t!==this.isConnected&&(this.isConnected=t,t?null===(i=this.reconnected)||void 0===i||i.call(this):null===(n=this.disconnected)||void 0===n||n.call(this)),e&&(s(this,t),a(this))}setValue(t){if((t=>void 0===this._$Ct.strings)())this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}class m{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}}class p{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){var t;null!==(t=this.Y)&&void 0!==t||(this.Y=new Promise((t=>this.Z=t)))}resume(){var t;null===(t=this.Z)||void 0===t||t.call(this),this.Y=this.Z=void 0}}const f=t=>!(t=>null===t||"object"!=typeof t&&"function"!=typeof t)(t)&&"function"==typeof t.then,g=1073741823;class v extends h{constructor(){super(...arguments),this._$C_t=g,this._$Cwt=[],this._$Cq=new m(this),this._$CK=new p}render(...t){var e;return null!==(e=t.find((t=>!f(t))))&&void 0!==e?e:n.noChange}update(t,e){const i=this._$Cwt;let r=i.length;this._$Cwt=e;const o=this._$Cq,s=this._$CK;this.isConnected||this.disconnected();for(let t=0;tthis._$C_t);t++){const n=e[t];if(!f(n))return this._$C_t=t,n;t{for(;s.get();)await s.get();const e=o.deref();if(void 0!==e){const i=e._$Cwt.indexOf(n);i>-1&&i({_$litDirective$:_,values:t}));var _},639:(t,e,i)=>{var n;i.r(e),i.d(e,{_$LH:()=>B,html:()=>S,noChange:()=>E,nothing:()=>D,render:()=>q,svg:()=>T});const r=window,o=r.trustedTypes,s=o?o.createPolicy("lit-html",{createHTML:t=>t}):void 0,a="$lit$",l=`lit$${(Math.random()+"").slice(9)}$`,c="?"+l,d=`<${c}>`,u=document,h=()=>u.createComment(""),m=t=>null===t||"object"!=typeof t&&"function"!=typeof t,p=Array.isArray,f=t=>p(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]),g="[ \t\n\f\r]",v=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,y=/-->/g,_=/>/g,$=RegExp(`>|${g}(?:([^\\s"'>=/]+)(${g}*=${g}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),b=/'/g,w=/"/g,C=/^(?:script|style|textarea|title)$/i,A=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),S=A(1),T=A(2),E=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),x=new WeakMap,R=u.createTreeWalker(u,129,null,!1);function k(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==s?s.createHTML(e):e}const O=(t,e)=>{const i=t.length-1,n=[];let r,o=2===e?"":"",s=v;for(let e=0;e"===u[0]?(s=null!=r?r:v,h=-1):void 0===u[1]?h=-2:(h=s.lastIndex-u[2].length,c=u[1],s=void 0===u[3]?$:'"'===u[3]?w:b):s===w||s===b?s=$:s===y||s===_?s=v:(s=$,r=void 0);const p=s===$&&t[e+1].startsWith("/>")?" ":"";o+=s===v?i+d:h>=0?(n.push(c),i.slice(0,h)+a+i.slice(h)+l+p):i+l+(-2===h?(n.push(void 0),e):p)}return[k(t,o+(t[i]||"")+(2===e?"":"")),n]};class P{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,s=0;const d=t.length-1,u=this.parts,[m,p]=O(t,e);if(this.el=P.createElement(m,i),R.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=R.nextNode())&&u.length0){n.textContent=o?o.emptyScript:"";for(let i=0;i2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=D}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(void 0===r)t=N(this,t,e,0),o=!m(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const n=t;let s,a;for(t=r[0],s=0;s{var n,r;const o=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let s=o._$litPart$;if(void 0===s){const t=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;o._$litPart$=s=new F(e.insertBefore(h(),t),t,void 0,null!=i?i:{})}return s._$AI(t),s}},15:(t,e,i)=>{i.r(e),i.d(e,{customElement:()=>n,eventOptions:()=>c,property:()=>a,query:()=>u,queryAll:()=>m,queryAssignedElements:()=>f,queryAssignedNodes:()=>g,queryAsync:()=>p,standardProperty:()=>s,state:()=>l});const n=t=>(e,i)=>{void 0!==i?i.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};var r=i(548);const o={attribute:!0,type:String,converter:r.Ts,reflect:!1,hasChanged:r.Qu},s=(t=o,e,i)=>{const{kind:n,metadata:r}=i;let s=globalThis.litPropertyMetadata.get(r);if(void 0===s&&globalThis.litPropertyMetadata.set(r,s=new Map),s.set(i.name,t),"accessor"===n){const{name:n}=i;return{set(i){const r=e.get.call(this);e.set.call(this,i),this.requestUpdate(n,r,t)},init(e){return void 0!==e&&this.C(n,void 0,t),e}}}if("setter"===n){const{name:n}=i;return function(i){const r=this[n];e.call(this,i),this.requestUpdate(n,r,t)}}throw Error("Unsupported decorator location: "+n)};function a(t){return(e,i)=>"object"==typeof i?s(t,e,i):((t,e,i)=>{const n=e.hasOwnProperty(i);return e.constructor.createProperty(i,n?{...t,wrapped:!0}:t),n?Object.getOwnPropertyDescriptor(e,i):void 0})(t,e,i)}function l(t){return a({...t,state:!0,attribute:!1})}function c(t){return(e,i)=>{const n="function"==typeof e?e:e[i];Object.assign(n,t)}}const d=(t,e,i)=>(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof e&&Object.defineProperty(t,e,i),i);function u(t,e){return(i,n,r)=>{const o=e=>e.renderRoot?.querySelector(t)??null;if(e){const{get:t,set:e}="object"==typeof n?i:r??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return d(i,n,{get(){let i=t.call(this);return void 0===i&&(i=o(this),(null!==i||this.hasUpdated)&&e.call(this,i)),i}})}return d(i,n,{get(){return o(this)}})}}let h;function m(t){return(e,i)=>d(e,i,{get(){return(this.renderRoot??(h??=document.createDocumentFragment())).querySelectorAll(t)}})}function p(t){return(e,i)=>d(e,i,{async get(){return await this.updateComplete,this.renderRoot?.querySelector(t)??null}})}function f(t){return(e,i)=>{const{slot:n,selector:r}=t??{},o="slot"+(n?`[name=${n}]`:":not([name])");return d(e,i,{get(){const e=this.renderRoot?.querySelector(o),i=e?.assignedElements(t)??[];return void 0===r?i:i.filter((t=>t.matches(r)))}})}}function g(t){return(e,i)=>{const{slot:n}=t??{},r="slot"+(n?`[name=${n}]`:":not([name])");return d(e,i,{get(){const e=this.renderRoot?.querySelector(r);return e?.assignedNodes(t)??[]}})}}},395:(t,e,i)=>{i.r(e),i.d(e,{Directive:()=>n.Xe,PartType:()=>n.pX,directive:()=>n.XM});var n=i(126)},810:(t,e,i)=>{i.r(e),i.d(e,{AsyncReplaceDirective:()=>f,asyncReplace:()=>g});var n=i(605);const{D:r}=n._$LH;var o=i(126);const s=(t,e)=>{const i=t._$AN;if(void 0===i)return!1;for(const t of i)t._$AO?.(e,!1),s(t,e);return!0},a=t=>{let e,i;do{if(void 0===(e=t._$AM))break;i=e._$AN,i.delete(t),t=e}while(0===i?.size)},l=t=>{for(let e;e=t._$AM;t=e){let i=e._$AN;if(void 0===i)e._$AN=i=new Set;else if(i.has(t))break;i.add(t),u(e)}};function c(t){void 0!==this._$AN?(a(this),this._$AM=t,l(this)):this._$AM=t}function d(t,e=!1,i=0){const n=this._$AH,r=this._$AN;if(void 0!==r&&0!==r.size)if(e)if(Array.isArray(n))for(let t=i;t{t.type==o.pX.CHILD&&(t._$AP??=d,t._$AQ??=c)};class h extends o.Xe{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),l(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(s(this,t),a(this))}setValue(t){if((t=>void 0===this._$Ct.strings)())this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}class m{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}}class p{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise((t=>this.Z=t))}resume(){this.Z?.(),this.Y=this.Z=void 0}}class f extends h{constructor(){super(...arguments),this._$Cq=new m(this),this._$CK=new p}render(t,e){return n.Jb}update(t,[e,i]){if(this.isConnected||this.disconnected(),e===this._$CX)return;this._$CX=e;let r=0;const{_$Cq:o,_$CK:s}=this;return(async(t,e)=>{for await(const i of t)if(!1===await e(i))return})(e,(async t=>{for(;s.get();)await s.get();const n=o.deref();if(void 0!==n){if(n._$CX!==e)return!1;void 0!==i&&(t=i(t,r)),n.commitValue(t,r),r++}return!0})),n.Jb}commitValue(t,e){this.setValue(t)}disconnected(){this._$Cq.disconnect(),this._$CK.pause()}reconnected(){this._$Cq.reconnect(this),this._$CK.resume()}}const g=(0,o.XM)(f)},110:(t,e,i)=>{i.r(e),i.d(e,{CSSResult:()=>n.c3,LitElement:()=>o,ReactiveElement:()=>n.fl,_$LE:()=>a,_$LH:()=>r._$LH,adoptStyles:()=>n.ec,css:()=>n.iv,defaultConverter:()=>n.Ts,getCompatibleStyle:()=>n.i1,html:()=>r.dy,isServer:()=>l,noChange:()=>r.Jb,notEqual:()=>n.Qu,nothing:()=>r.Ld,render:()=>r.sY,supportsAdoptingStyleSheets:()=>n.FV,svg:()=>r.YP,unsafeCSS:()=>n.$m});var n=i(548),r=i(605);class o extends n.fl{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=(0,r.sY)(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r.Jb}}o._$litElement$=!0,o.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:o});const s=globalThis.litElementPolyfillSupport;s?.({LitElement:o});const a={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push("4.0.2");const l=!1},548:(t,e,i)=>{i.d(e,{c3:()=>a,fl:()=>T,ec:()=>d,iv:()=>c,Ts:()=>C,i1:()=>u,Qu:()=>A,FV:()=>r,$m:()=>l});const n=globalThis,r=n.ShadowRoot&&(void 0===n.ShadyCSS||n.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,o=Symbol(),s=new WeakMap;class a{constructor(t,e,i){if(this._$cssResult$=!0,i!==o)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(r&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=s.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&s.set(e,t))}return t}toString(){return this.cssText}}const l=t=>new a("string"==typeof t?t:t+"",void 0,o),c=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[n+1]),t[0]);return new a(i,t,o)},d=(t,e)=>{if(r)t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const i of e){const e=document.createElement("style"),r=n.litNonce;void 0!==r&&e.setAttribute("nonce",r),e.textContent=i.cssText,t.appendChild(e)}},u=r?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return l(e)})(t):t,{is:h,defineProperty:m,getOwnPropertyDescriptor:p,getOwnPropertyNames:f,getOwnPropertySymbols:g,getPrototypeOf:v}=Object,y=globalThis,_=y.trustedTypes,$=_?_.emptyScript:"",b=y.reactiveElementPolyfillSupport,w=(t,e)=>t,C={toAttribute(t,e){switch(e){case Boolean:t=t?$:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},A=(t,e)=>!h(t,e),S={attribute:!0,type:String,converter:C,reflect:!1,hasChanged:A};Symbol.metadata??=Symbol("metadata"),y.litPropertyMetadata??=new WeakMap;class T extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=S){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){const i=Symbol(),n=this.getPropertyDescriptor(t,i,e);void 0!==n&&m(this.prototype,t,n)}}static getPropertyDescriptor(t,e,i){const{get:n,set:r}=p(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get(){return n?.call(this)},set(e){const o=n?.call(this);r.call(this,e),this.requestUpdate(t,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??S}static _$Ei(){if(this.hasOwnProperty(w("elementProperties")))return;const t=v(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(w("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(w("properties"))){const t=this.properties,e=[...f(t),...g(t)];for(const i of e)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,i]of e)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const i=this._$Eu(t,e);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(u(t))}else void 0!==t&&e.push(u(t));return e}static _$Eu(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,e=this.constructor.elementProperties;for(const i of e.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return d(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e){const i=this.constructor.elementProperties.get(t),n=this.constructor._$Eu(t,i);if(void 0!==n&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:C).toAttribute(e,i.type);this._$Em=t,null==r?this.removeAttribute(n):this.setAttribute(n,r),this._$Em=null}}_$AK(t,e){const i=this.constructor,n=i._$Eh.get(t);if(void 0!==n&&this._$Em!==n){const t=i.getPropertyOptions(n),r="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:C;this._$Em=n,this[n]=r.fromAttribute(e,t.type),this._$Em=null}}requestUpdate(t,e,i,n=!1,r){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??A)(n?r:this[t],e))return;this.C(t,e,i)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,e,i){this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,i]of t)!0!==i.wrapped||this._$AL.has(e)||void 0===this[e]||this.C(e,this[e],i)}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$ET()}catch(e){throw t=!1,this._$ET(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}}T.elementStyles=[],T.shadowRootOptions={mode:"open"},T[w("elementProperties")]=new Map,T[w("finalized")]=new Map,b?.({ReactiveElement:T}),(y.reactiveElementVersions??=[]).push("2.0.2")},126:(t,e,i)=>{i.d(e,{XM:()=>r,Xe:()=>o,pX:()=>n});const n={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},r=t=>(...e)=>({_$litDirective$:t,values:e});class o{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}},605:(t,e,i)=>{i.d(e,{Jb:()=>T,Ld:()=>E,YP:()=>S,_$LH:()=>j,dy:()=>A,sY:()=>B});const n=globalThis,r=n.trustedTypes,o=r?r.createPolicy("lit-html",{createHTML:t=>t}):void 0,s="$lit$",a=`lit$${(Math.random()+"").slice(9)}$`,l="?"+a,c=`<${l}>`,d=document,u=()=>d.createComment(""),h=t=>null===t||"object"!=typeof t&&"function"!=typeof t,m=Array.isArray,p=t=>m(t)||"function"==typeof t?.[Symbol.iterator],f="[ \t\n\f\r]",g=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,v=/-->/g,y=/>/g,_=RegExp(`>|${f}(?:([^\\s"'>=/]+)(${f}*=${f}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),$=/'/g,b=/"/g,w=/^(?:script|style|textarea|title)$/i,C=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),A=C(1),S=C(2),T=Symbol.for("lit-noChange"),E=Symbol.for("lit-nothing"),D=new WeakMap,x=d.createTreeWalker(d,129);function R(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==o?o.createHTML(e):e}const k=(t,e)=>{const i=t.length-1,n=[];let r,o=2===e?"":"",l=g;for(let e=0;e"===u[0]?(l=r??g,h=-1):void 0===u[1]?h=-2:(h=l.lastIndex-u[2].length,d=u[1],l=void 0===u[3]?_:'"'===u[3]?b:$):l===b||l===$?l=_:l===v||l===y?l=g:(l=_,r=void 0);const p=l===_&&t[e+1].startsWith("/>")?" ":"";o+=l===g?i+c:h>=0?(n.push(d),i.slice(0,h)+s+i.slice(h)+a+p):i+a+(-2===h?e:p)}return[R(t,o+(t[i]||"")+(2===e?"":"")),n]};class O{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let o=0,c=0;const d=t.length-1,h=this.parts,[m,p]=k(t,e);if(this.el=O.createElement(m,i),x.currentNode=this.el.content,2===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(n=x.nextNode())&&h.length0){n.textContent=r?r.emptyScript:"";for(let i=0;i2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=E}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(void 0===r)t=P(this,t,e,0),o=!h(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const n=t;let s,a;for(t=r[0],s=0;s{const n=i?.renderBefore??e;let r=n._$litPart$;if(void 0===r){const t=i?.renderBefore??null;n._$litPart$=r=new M(e.insertBefore(u(),t),t,void 0,i??{})}return r._$AI(t),r}},147:t=>{t.exports=JSON.parse('{"name":"formulaone-card","version":"1.8.9","description":"Frontend card for Home Assistant to display Formula One data","main":"index.js","scripts":{"lint":"eslint src/**/*.ts","dev":"webpack -c webpack.config.js","build":"yarn lint && webpack -c webpack.config.js","test":"jest","coverage":"jest --coverage","workflow":"jest --coverage --json --outputFile=/home/runner/work/formulaone-card/formulaone-card/jest.results.json","prebuild":"copy git-hooks\\\\pre-commit .git\\\\hooks\\\\ && echo \'hook copied\'"},"repository":{"type":"git","url":"git+https://github.com/marcokreeft87/formulaone-card.git"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/marcokreeft87/formulaone-card/issues"},"homepage":"https://github.com/marcokreeft87/formulaone-card#readme","devDependencies":{"@types/jest":"^29.5.3","@typescript-eslint/eslint-plugin":"^5.59.8","@typescript-eslint/parser":"^5.62.0","codecov":"^3.8.3","eslint":"^8.52.0","home-assistant-js-websocket":"^9.1.0","lit":"^3.0.2","lit-element":"^3.3.3","minify-html-literals-loader":"^1.1.1","typescript":"^4.9.5","webpack":"^5.88.2","webpack-cli":"^5.1.4"},"dependencies":{"@babel/plugin-transform-runtime":"^7.22.5","@babel/preset-env":"^7.22.14","@lit-labs/scoped-registry-mixin":"^1.0.1","@marcokreeft/ha-editor-formbuilder":"^2023.10.9","babel-jest":"^29.7.0","compression-webpack-plugin":"^10.0.0","custom-card-helpers":"^1.9.0","isomorphic-fetch":"^3.0.0","jest-environment-jsdom":"^29.6.2","jest-fetch-mock":"^3.0.3","jest-ts-auto-mock":"^2.1.0","minify-html-literals-loader":"^1.1.1","ts-auto-mock":"^3.6.4","ts-jest":"^29.1.1","ts-loader":"^9.5.0","ttypescript":"^1.5.15","yarn":"^1.22.19"}}')}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,i),o.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i(148)})(); \ No newline at end of file diff --git a/formulaone-card.js.gz b/formulaone-card.js.gz index c297b2aa28224f0b3c9797b7a6fbf7e758e62383..1a2d6628443eab4df443e19d016485fb32036e5c 100644 GIT binary patch literal 32595 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 z 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 diff --git a/package-lock.json b/package-lock.json index 01d70a8..38c2594 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "formulaone-card", - "version": "1.8.8", + "version": "1.8.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "formulaone-card", - "version": "1.8.8", + "version": "1.8.9", "license": "ISC", "dependencies": { "@babel/plugin-transform-runtime": "^7.22.5", @@ -20,6 +20,7 @@ "jest-environment-jsdom": "^29.6.2", "jest-fetch-mock": "^3.0.3", "jest-ts-auto-mock": "^2.1.0", + "minify-html-literals-loader": "^1.1.1", "ts-auto-mock": "^3.6.4", "ts-jest": "^29.1.1", "ts-loader": "^9.5.0", @@ -34,6 +35,7 @@ "eslint": "^8.52.0", "home-assistant-js-websocket": "^9.1.0", "lit": "^3.0.2", + "lit-element": "^3.3.3", "typescript": "^4.9.5", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" @@ -2647,6 +2649,15 @@ "@babel/types": "^7.3.0" } }, + "node_modules/@types/clean-css": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.10.tgz", + "integrity": "sha512-/wop6SNAATELCIvTQEbPdxaIvXQDS+Gewx2rtkB1h8PrttLpYVDI18nH9927fIMO1dJsV01JEm0go4vTimpDxQ==", + "dependencies": { + "@types/node": "*", + "source-map": "^0.6.0" + } + }, "node_modules/@types/eslint": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", @@ -2678,6 +2689,16 @@ "@types/node": "*" } }, + "node_modules/@types/html-minifier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg==", + "dependencies": { + "@types/clean-css": "*", + "@types/relateurl": "*", + "@types/uglify-js": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -2735,6 +2756,11 @@ "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "peer": true }, + "node_modules/@types/relateurl": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.32.tgz", + "integrity": "sha512-S3RXiF4jV2ECprVGfKLyRHbObSV2UOfpml1pHzqSgBLj/jd79siRtyR1Qyv/I57P079DVHaMOj4UwDOqYh3vQA==" + }, "node_modules/@types/semver": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", @@ -2756,6 +2782,14 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, + "node_modules/@types/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==", + "dependencies": { + "source-map": "^0.6.1" + } + }, "node_modules/@types/yargs": { "version": "17.0.13", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", @@ -3765,6 +3799,15 @@ "node": ">=6" } }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -3846,6 +3889,17 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "peer": true }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -5128,6 +5182,14 @@ "node": ">=8" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, "node_modules/home-assistant-js-websocket": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/home-assistant-js-websocket/-/home-assistant-js-websocket-9.1.0.tgz", @@ -5151,6 +5213,26 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "peer": true }, + "node_modules/html-minifier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "dependencies": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -6322,14 +6404,14 @@ "peer": true }, "node_modules/lit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.0.2.tgz", - "integrity": "sha512-ZoVUPGgXOQocP4OvxehEOBmC4rWB4cRYDPaz7aFmH8DFytsCi/NeACbr4C6vNPGDEC07BrhUos7uVNayDKLQ2Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", "dev": true, "dependencies": { "@lit/reactive-element": "^2.0.0", "lit-element": "^4.0.0", - "lit-html": "^3.0.0" + "lit-html": "^3.1.0" } }, "node_modules/lit-element": { @@ -6351,29 +6433,29 @@ } }, "node_modules/lit/node_modules/@lit/reactive-element": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.1.tgz", - "integrity": "sha512-eu50SQXHRthFwWJMp0oAFg95Rvm6MTPjxSXWuvAu7It90WVFLFpNBoIno7XOXSDvVgTrtKnUV4OLJqys2Svn4g==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.2.tgz", + "integrity": "sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==", "dev": true, "dependencies": { "@lit-labs/ssr-dom-shim": "^1.1.2" } }, "node_modules/lit/node_modules/lit-element": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.1.tgz", - "integrity": "sha512-OxRMJem4HKZt0320HplLkBPoi4KHiEHoPHKd8Lzf07ZQVAOKIjZ32yPLRKRDEolFU1RgrQBfSHQMoxKZ72V3Kw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.2.tgz", + "integrity": "sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==", "dev": true, "dependencies": { "@lit-labs/ssr-dom-shim": "^1.1.2", "@lit/reactive-element": "^2.0.0", - "lit-html": "^3.0.0" + "lit-html": "^3.1.0" } }, "node_modules/lit/node_modules/lit-html": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.0.2.tgz", - "integrity": "sha512-Q1A5lHza3bnmxoWJn6yS6vQZQdExl4fghk8W1G+jnAEdoFNYo5oeBBb/Ol7zSEdKd3TR7+r0zsJQyuWEVguiyQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.0.tgz", + "integrity": "sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==", "dev": true, "dependencies": { "@types/trusted-types": "^2.0.2" @@ -6431,6 +6513,11 @@ "triple-beam": "^1.3.0" } }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6442,6 +6529,14 @@ "node": ">=10" } }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -6533,6 +6628,26 @@ "node": ">=6" } }, + "node_modules/minify-html-literals": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/minify-html-literals/-/minify-html-literals-1.3.5.tgz", + "integrity": "sha512-p8T8ryePRR8FVfJZLVFmM53WY25FL0moCCTycUDuAu6rf9GMLwy0gNjXBGNin3Yun7Y+tIWd28axOf0t2EpAlQ==", + "dependencies": { + "@types/html-minifier": "^3.5.3", + "clean-css": "^4.2.1", + "html-minifier": "^4.0.0", + "magic-string": "^0.25.0", + "parse-literals": "^1.2.1" + } + }, + "node_modules/minify-html-literals-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/minify-html-literals-loader/-/minify-html-literals-loader-1.1.1.tgz", + "integrity": "sha512-uetSI66d347Kwqrrs4JXIdTenvRpa35PBH2Lpb7t6iR3lOwd+fmXGP2xmPWOZKCf2AgXb9cYdbRjA19eabuQAg==", + "dependencies": { + "minify-html-literals": "^1.3.5" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -6565,6 +6680,14 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dependencies": { + "lower-case": "^1.1.1" + } + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -6719,6 +6842,14 @@ "node": ">=6" } }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dependencies": { + "no-case": "^2.2.0" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6749,6 +6880,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-literals": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/parse-literals/-/parse-literals-1.2.1.tgz", + "integrity": "sha512-Ml0w104Ph2wwzuRdxrg9booVWsngXbB4bZ5T2z6WyF8b5oaNkUmBiDtahi34yUIpXD8Y13JjAK6UyIyApJ73RQ==", + "dependencies": { + "typescript": "^2.9.2 || ^3.0.0 || ^4.0.0" + } + }, "node_modules/parse5": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", @@ -7024,6 +7163,14 @@ "jsesc": "bin/jsesc" } }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7309,6 +7456,12 @@ "source-map": "^0.6.0" } }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -7900,6 +8053,17 @@ "node": ">=4.2.0" } }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -7973,6 +8137,11 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==" + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -10359,6 +10528,15 @@ "@babel/types": "^7.3.0" } }, + "@types/clean-css": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.10.tgz", + "integrity": "sha512-/wop6SNAATELCIvTQEbPdxaIvXQDS+Gewx2rtkB1h8PrttLpYVDI18nH9927fIMO1dJsV01JEm0go4vTimpDxQ==", + "requires": { + "@types/node": "*", + "source-map": "^0.6.0" + } + }, "@types/eslint": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", @@ -10390,6 +10568,16 @@ "@types/node": "*" } }, + "@types/html-minifier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg==", + "requires": { + "@types/clean-css": "*", + "@types/relateurl": "*", + "@types/uglify-js": "*" + } + }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -10447,6 +10635,11 @@ "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "peer": true }, + "@types/relateurl": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.32.tgz", + "integrity": "sha512-S3RXiF4jV2ECprVGfKLyRHbObSV2UOfpml1pHzqSgBLj/jd79siRtyR1Qyv/I57P079DVHaMOj4UwDOqYh3vQA==" + }, "@types/semver": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", @@ -10468,6 +10661,14 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, + "@types/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==", + "requires": { + "source-map": "^0.6.1" + } + }, "@types/yargs": { "version": "17.0.13", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", @@ -11171,6 +11372,15 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -11222,6 +11432,14 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "peer": true }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "requires": { + "source-map": "~0.6.0" + } + }, "cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -12208,6 +12426,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, "home-assistant-js-websocket": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/home-assistant-js-websocket/-/home-assistant-js-websocket-9.1.0.tgz", @@ -12228,6 +12451,20 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "peer": true }, + "html-minifier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "requires": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + } + }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -13122,40 +13359,40 @@ "peer": true }, "lit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.0.2.tgz", - "integrity": "sha512-ZoVUPGgXOQocP4OvxehEOBmC4rWB4cRYDPaz7aFmH8DFytsCi/NeACbr4C6vNPGDEC07BrhUos7uVNayDKLQ2Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", "dev": true, "requires": { "@lit/reactive-element": "^2.0.0", "lit-element": "^4.0.0", - "lit-html": "^3.0.0" + "lit-html": "^3.1.0" }, "dependencies": { "@lit/reactive-element": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.1.tgz", - "integrity": "sha512-eu50SQXHRthFwWJMp0oAFg95Rvm6MTPjxSXWuvAu7It90WVFLFpNBoIno7XOXSDvVgTrtKnUV4OLJqys2Svn4g==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.2.tgz", + "integrity": "sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==", "dev": true, "requires": { "@lit-labs/ssr-dom-shim": "^1.1.2" } }, "lit-element": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.1.tgz", - "integrity": "sha512-OxRMJem4HKZt0320HplLkBPoi4KHiEHoPHKd8Lzf07ZQVAOKIjZ32yPLRKRDEolFU1RgrQBfSHQMoxKZ72V3Kw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.2.tgz", + "integrity": "sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==", "dev": true, "requires": { "@lit-labs/ssr-dom-shim": "^1.1.2", "@lit/reactive-element": "^2.0.0", - "lit-html": "^3.0.0" + "lit-html": "^3.1.0" } }, "lit-html": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.0.2.tgz", - "integrity": "sha512-Q1A5lHza3bnmxoWJn6yS6vQZQdExl4fghk8W1G+jnAEdoFNYo5oeBBb/Ol7zSEdKd3TR7+r0zsJQyuWEVguiyQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.0.tgz", + "integrity": "sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==", "dev": true, "requires": { "@types/trusted-types": "^2.0.2" @@ -13227,6 +13464,11 @@ "triple-beam": "^1.3.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==" + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -13235,6 +13477,14 @@ "yallist": "^4.0.0" } }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -13304,6 +13554,26 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "peer": true }, + "minify-html-literals": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/minify-html-literals/-/minify-html-literals-1.3.5.tgz", + "integrity": "sha512-p8T8ryePRR8FVfJZLVFmM53WY25FL0moCCTycUDuAu6rf9GMLwy0gNjXBGNin3Yun7Y+tIWd28axOf0t2EpAlQ==", + "requires": { + "@types/html-minifier": "^3.5.3", + "clean-css": "^4.2.1", + "html-minifier": "^4.0.0", + "magic-string": "^0.25.0", + "parse-literals": "^1.2.1" + } + }, + "minify-html-literals-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/minify-html-literals-loader/-/minify-html-literals-loader-1.1.1.tgz", + "integrity": "sha512-uetSI66d347Kwqrrs4JXIdTenvRpa35PBH2Lpb7t6iR3lOwd+fmXGP2xmPWOZKCf2AgXb9cYdbRjA19eabuQAg==", + "requires": { + "minify-html-literals": "^1.3.5" + } + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -13333,6 +13603,14 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -13451,6 +13729,14 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "requires": { + "no-case": "^2.2.0" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -13472,6 +13758,14 @@ "lines-and-columns": "^1.1.6" } }, + "parse-literals": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/parse-literals/-/parse-literals-1.2.1.tgz", + "integrity": "sha512-Ml0w104Ph2wwzuRdxrg9booVWsngXbB4bZ5T2z6WyF8b5oaNkUmBiDtahi34yUIpXD8Y13JjAK6UyIyApJ73RQ==", + "requires": { + "typescript": "^2.9.2 || ^3.0.0 || ^4.0.0" + } + }, "parse5": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", @@ -13674,6 +13968,11 @@ } } }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -13860,6 +14159,11 @@ "source-map": "^0.6.0" } }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -14249,6 +14553,11 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==" + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -14287,6 +14596,11 @@ "picocolors": "^1.0.0" } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==" + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 97e93aa..a7f1cc8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "formulaone-card", - "version": "1.8.8", + "version": "1.8.9", "description": "Frontend card for Home Assistant to display Formula One data", "main": "index.js", "scripts": { @@ -31,6 +31,8 @@ "eslint": "^8.52.0", "home-assistant-js-websocket": "^9.1.0", "lit": "^3.0.2", + "lit-element": "^3.3.3", + "minify-html-literals-loader": "^1.1.1", "typescript": "^4.9.5", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" @@ -47,6 +49,7 @@ "jest-environment-jsdom": "^29.6.2", "jest-fetch-mock": "^3.0.3", "jest-ts-auto-mock": "^2.1.0", + "minify-html-literals-loader": "^1.1.1", "ts-auto-mock": "^3.6.4", "ts-jest": "^29.1.1", "ts-loader": "^9.5.0", diff --git a/src/directives/action-handler-directive.ts b/src/directives/action-handler-directive.ts index e648f11..4c59a46 100644 --- a/src/directives/action-handler-directive.ts +++ b/src/directives/action-handler-directive.ts @@ -1,9 +1,9 @@ /* istanbul ignore file */ -import { noChange } from 'lit'; import { AttributePart, directive, Directive, DirectiveParameters } from 'lit/directive.js'; import { ActionHandlerDetail, ActionHandlerOptions } from 'custom-card-helpers/dist/types'; import { fireEvent } from 'custom-card-helpers'; import { ActionHandlerElement } from '../types/formulaone-card-types'; +import { noChange } from 'lit-element'; const isTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.maxTouchPoints > 0; diff --git a/src/editor.ts b/src/editor.ts index c8d0102..9205e62 100644 --- a/src/editor.ts +++ b/src/editor.ts @@ -1,11 +1,10 @@ -import { css } from "lit"; import { html, TemplateResult } from "lit-html"; -import { customElement } from 'lit/decorators.js'; import { CARD_EDITOR_NAME } from "./consts"; import { CountdownType, FormulaOneCardType, PreviousRaceDisplay, WeatherUnit } from "./types/formulaone-card-types"; import EditorForm from '@marcokreeft/ha-editor-formbuilder' import { FormControlType } from "@marcokreeft/ha-editor-formbuilder/dist/interfaces"; import { getDropdownOptionsFromEnum } from "@marcokreeft/ha-editor-formbuilder/dist/utils/entities"; +import { css, CSSResult, customElement } from "lit-element"; @customElement(CARD_EDITOR_NAME) export class FormulaOneCardEditor extends EditorForm { @@ -93,7 +92,7 @@ export class FormulaOneCardEditor extends EditorForm { ]); } - static get styles() { + static get styles() : CSSResult { return css` .form-row { margin-bottom: 10px; diff --git a/src/types/formulaone-card-types.ts b/src/types/formulaone-card-types.ts index 0326a7c..7218af0 100644 --- a/src/types/formulaone-card-types.ts +++ b/src/types/formulaone-card-types.ts @@ -1,5 +1,5 @@ import { ActionConfig, ActionHandlerOptions, HomeAssistant, LovelaceCardConfig } from 'custom-card-helpers'; -import { HTMLTemplateResult } from 'lit'; +import { HTMLTemplateResult } from 'lit-element'; export interface FormulaOneCardConfig extends LovelaceCardConfig { show_icon?: boolean; diff --git a/src/utils.ts b/src/utils.ts index b2cfc27..67579fd 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -87,9 +87,9 @@ export const getCircuitName = (location: Location) => { circuitName = exception[0].name; } - if(location.country == 'USA' && location.locality != 'Austin') + if((location.country == 'USA' || location.country == 'United States') && location.locality != 'Austin') { - circuitName = location.locality; + circuitName = location.locality.replace(" ","_"); } if(location.country == 'Italy' && location.locality == 'Imola') diff --git a/webpack.config.js b/webpack.config.js index 32c0e47..9f2e0cd 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -24,6 +24,12 @@ module.exports = { }, }, }, + { + test: /\.(js|jsx|ts|tsx)$/, + use: [ + { loader: 'minify-html-literals-loader' } + ], + }, { test: /\.tsx?$/, loader: "ts-loader" } ], },