From d024778eb90ecb33850b3c0f56af3098cfd60ff5 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Fri, 22 Mar 2024 08:53:06 +0100 Subject: [PATCH] Added new team logos (#348) --- formulaone-card.js | 2 +- formulaone-card.js.gz | Bin 32751 -> 32766 bytes package.json | 2 +- src/utils.ts | 4 ++-- tests/cards/constructor-standings.test.ts | 2 +- tests/cards/driver-standings.test.ts | 2 +- tests/cards/results.test.ts | 10 +++++----- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/formulaone-card.js b/formulaone-card.js index 55bea6b..ccb3748 100644 --- a/formulaone-card.js +++ b/formulaone-card.js @@ -1,2 +1,2 @@ /*! For license information please see formulaone-card.js.LICENSE.txt */ -(()=>{"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:()=>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:()=>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=B(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]}))}RefreshCache(){return n(this,void 0,void 0,(function*(){yield this.GetData("current.json",!0,0),yield this.GetData("current/last/results.json",!0,0),yield this.GetData("current/driverStandings.json",!0,0),yield this.GetData("current/constructorStandings.json",!0,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.renderRefreshButton()} ${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()}renderRefreshButton(){return this.config.show_refresh?l.html`
`:null}refreshCache(t){console.log("Refreshing cache..."),this.card.client.RefreshCache()}};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%}.refresh-cache{position:absolute;right:10px;top:10px}`},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:()=>G,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:()=>G});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.9.1","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.89.0","webpack-cli":"^5.1.4"},"dependencies":{"@babel/plugin-transform-runtime":"^7.22.5","@babel/preset-env":"^7.23.8","@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.1","ttypescript":"^1.5.15","yarn":"^1.22.21"}}')}},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 +(()=>{"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:()=>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:()=>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=B(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]}))}RefreshCache(){return n(this,void 0,void 0,(function*(){yield this.GetData("current.json",!0,0),yield this.GetData("current/last/results.json",!0,0),yield this.GetData("current/driverStandings.json",!0,0),yield this.GetData("current/constructorStandings.json",!0,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.renderRefreshButton()} ${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()}renderRefreshButton(){return this.config.show_refresh?l.html`
`:null}refreshCache(t){console.log("Refreshing cache..."),this.card.client.RefreshCache()}};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%}.refresh-cache{position:absolute;right:10px;top:10px}`},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"},{teamName:"sauber",corrected:"kick-sauber"}].filter((t=>t.teamName==e));return i.length>0&&(e=i[0].corrected),t.imageClient.GetImage(`${l.ImageConstants.TeamLogoCDN}/2024/${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:()=>G,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:()=>G});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.9.2","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.89.0","webpack-cli":"^5.1.4"},"dependencies":{"@babel/plugin-transform-runtime":"^7.22.5","@babel/preset-env":"^7.23.8","@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.1","ttypescript":"^1.5.15","yarn":"^1.22.21"}}')}},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 2865bde652f5e74d8742d7739b87f5a2506d9bc5..9e0e796de2f8bf876d3962fdc34cb4a694ed800d 100644 GIT binary patch delta 31378 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

pp04Py!81RRQs5x zYvZBv76sr6p+u8vdYFvUiCdE`e;j|s@C0iUU|^Wjy%A~7jdHPCn7|7zGbQp9hOv3% zGl+5OM;_XRTP~h>2sL9Nj28k6WXg5`XE8Wx;NyfIn=lz;c4PQip`WOOP0SHc)J|k2 z;(O&qRT delta 31347 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 z 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 G+W`Q=z(bJ$ diff --git a/package.json b/package.json index 72075b5..015a3df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "formulaone-card", - "version": "1.9.1", + "version": "1.9.2", "description": "Frontend card for Home Assistant to display Formula One data", "main": "index.js", "scripts": { diff --git a/src/utils.ts b/src/utils.ts index 67579fd..525cf52 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -64,7 +64,7 @@ export const checkConfig = (config: FormulaOneCardConfig) => { export const getTeamImage = (card: BaseCard, teamName: string) => { teamName = teamName.toLocaleLowerCase().replace('_', '-'); - const exceptions = [{ teamName: 'red-bull', corrected: 'red-bull-racing'}, { teamName: 'alfa', corrected: 'alfa-romeo'}, { teamName: 'haas', corrected: 'haas-f1-team'}]; + const exceptions = [{ teamName: 'red-bull', corrected: 'red-bull-racing'}, { teamName: 'alfa', corrected: 'alfa-romeo'}, { teamName: 'haas', corrected: 'haas-f1-team'}, { teamName: 'sauber', corrected: 'kick-sauber'}]; const exception = exceptions.filter(exception => exception.teamName == teamName); if(exception.length > 0) @@ -72,7 +72,7 @@ export const getTeamImage = (card: BaseCard, teamName: string) => { teamName = exception[0].corrected; } - return card.imageClient.GetImage(`${ImageConstants.TeamLogoCDN}/2023/${teamName.toLowerCase()}-logo.png.transform/2col-retina/image.png`); + return card.imageClient.GetImage(`${ImageConstants.TeamLogoCDN}/2024/${teamName.toLowerCase()}-logo.png.transform/2col-retina/image.png`); } export const getCircuitName = (location: Location) => { diff --git a/tests/cards/constructor-standings.test.ts b/tests/cards/constructor-standings.test.ts index 807d6ad..6d9714c 100644 --- a/tests/cards/constructor-standings.test.ts +++ b/tests/cards/constructor-standings.test.ts @@ -55,7 +55,7 @@ describe('Testing constructor-standings file', () => { // Assert const htmlResult = await getRenderStringAsync(result); - expect(htmlResult).toMatch('
  Constructor Pts Wins
1  Red Bull 576 13
2  Ferrari 439 4
3  Mercedes 373 0
4  McLaren 129 0
5  Alpine F1 Team 125 0
6  Alfa Romeo 52 0
7  Aston Martin 37 0
8  Haas F1 Team 34 0
9  AlphaTauri 34 0
10  Williams 6 0
'); + expect(htmlResult).toMatch('
  Constructor Pts Wins
1  Red Bull 576 13
2  Ferrari 439 4
3  Mercedes 373 0
4  McLaren 129 0
5  Alpine F1 Team 125 0
6  Alfa Romeo 52 0
7  Aston Martin 37 0
8  Haas F1 Team 34 0
9  AlphaTauri 34 0
10  Williams 6 0
'); }), test('Calling render with api not returning data', async () => { // Arrange diff --git a/tests/cards/driver-standings.test.ts b/tests/cards/driver-standings.test.ts index fc6b939..67b6145 100644 --- a/tests/cards/driver-standings.test.ts +++ b/tests/cards/driver-standings.test.ts @@ -86,7 +86,7 @@ describe('Testing driver-standings file', () => { // Assert const htmlResult = await getRenderStringAsync(result); - expect(htmlResult).toMatch('
  Driver Team Pts Wins
1  VER Max Verstappen  Red Bull 341 11
2  LEC Charles Leclerc  Ferrari 237 3
3  PER Sergio Pérez  Red Bull 235 2
4  RUS George Russell  Mercedes 203 0
5  SAI Carlos Sainz  Ferrari 202 1
6  HAM Lewis Hamilton  Mercedes 170 0
7  NOR Lando Norris  McLaren 100 0
8  OCO Esteban Ocon  Alpine F1 Team 66 0
9  ALO Fernando Alonso  Alpine F1 Team 59 0
10  BOT Valtteri Bottas  Alfa Romeo 46 0
11  RIC Daniel Ricciardo  McLaren 29 0
12  VET Sebastian Vettel  Aston Martin 24 0
13  GAS Pierre Gasly  AlphaTauri 23 0
14  MAG Kevin Magnussen  Haas F1 Team 22 0
15  STR Lance Stroll  Aston Martin 13 0
16  MSC Mick Schumacher  Haas F1 Team 12 0
17  TSU Yuki Tsunoda  AlphaTauri 11 0
18  ZHO Guanyu Zhou  Alfa Romeo 6 0
19  ALB Alexander Albon  Williams 4 0
20  DEV Nyck de Vries  Williams 2 0
21  LAT Nicholas Latifi  Williams 0 0
22  HUL Nico Hülkenberg  Aston Martin 0 0
'); + expect(htmlResult).toMatch('
  Driver Team Pts Wins
1  VER Max Verstappen  Red Bull 341 11
2  LEC Charles Leclerc  Ferrari 237 3
3  PER Sergio Pérez  Red Bull 235 2
4  RUS George Russell  Mercedes 203 0
5  SAI Carlos Sainz  Ferrari 202 1
6  HAM Lewis Hamilton  Mercedes 170 0
7  NOR Lando Norris  McLaren 100 0
8  OCO Esteban Ocon  Alpine F1 Team 66 0
9  ALO Fernando Alonso  Alpine F1 Team 59 0
10  BOT Valtteri Bottas  Alfa Romeo 46 0
11  RIC Daniel Ricciardo  McLaren 29 0
12  VET Sebastian Vettel  Aston Martin 24 0
13  GAS Pierre Gasly  AlphaTauri 23 0
14  MAG Kevin Magnussen  Haas F1 Team 22 0
15  STR Lance Stroll  Aston Martin 13 0
16  MSC Mick Schumacher  Haas F1 Team 12 0
17  TSU Yuki Tsunoda  AlphaTauri 11 0
18  ZHO Guanyu Zhou  Alfa Romeo 6 0
19  ALB Alexander Albon  Williams 4 0
20  DEV Nyck de Vries  Williams 2 0
21  LAT Nicholas Latifi  Williams 0 0
22  HUL Nico Hülkenberg  Aston Martin 0 0
'); }), test('Calling render with api not returning data', async () => { // Arrange diff --git a/tests/cards/results.test.ts b/tests/cards/results.test.ts index a44398c..cdeba29 100644 --- a/tests/cards/results.test.ts +++ b/tests/cards/results.test.ts @@ -132,7 +132,7 @@ describe('Testing results file', () => { // Assert const htmlResult = await getRenderString(result); - expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Sergio Pérez  Red Bull 2 25 Finished
2  Charles Leclerc  Ferrari 1 18 Finished
3  Carlos Sainz  Ferrari 4 15 Finished
4  Lando Norris  McLaren 6 12 Finished
5  Daniel Ricciardo  McLaren 16 10 Finished
6  Lance Stroll  Aston Martin 11 8 Finished
7  Max Verstappen  Red Bull 8 6 Finished
8  Sebastian Vettel  Aston Martin 13 4 Finished
9  Lewis Hamilton  Mercedes 3 2 Finished
10  Pierre Gasly  AlphaTauri 7 1 Finished
11  Valtteri Bottas  Alfa Romeo 15 0 Finished
12  Kevin Magnussen  Haas F1 Team 9 0 Finished
13  Mick Schumacher  Haas F1 Team 12 0 +1 Lap
14  George Russell *  Mercedes 0 0 +2 Laps
15  Yuki Tsunoda  AlphaTauri 10 0 Accident
16  Esteban Ocon  Alpine F1 Team 17 0 Engine
17  Alexander Albon  Williams 18 0 Collision damage
18  Fernando Alonso  Alpine F1 Team 5 0 Engine
19  Nicholas Latifi  Williams 19 0 Collision damage
20  Guanyu Zhou  Alfa Romeo 14 0 Collision
* Fastest lap: 1:46.458
'); + expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Sergio Pérez  Red Bull 2 25 Finished
2  Charles Leclerc  Ferrari 1 18 Finished
3  Carlos Sainz  Ferrari 4 15 Finished
4  Lando Norris  McLaren 6 12 Finished
5  Daniel Ricciardo  McLaren 16 10 Finished
6  Lance Stroll  Aston Martin 11 8 Finished
7  Max Verstappen  Red Bull 8 6 Finished
8  Sebastian Vettel  Aston Martin 13 4 Finished
9  Lewis Hamilton  Mercedes 3 2 Finished
10  Pierre Gasly  AlphaTauri 7 1 Finished
11  Valtteri Bottas  Alfa Romeo 15 0 Finished
12  Kevin Magnussen  Haas F1 Team 9 0 Finished
13  Mick Schumacher  Haas F1 Team 12 0 +1 Lap
14  George Russell *  Mercedes 0 0 +2 Laps
15  Yuki Tsunoda  AlphaTauri 10 0 Accident
16  Esteban Ocon  Alpine F1 Team 17 0 Engine
17  Alexander Albon  Williams 18 0 Collision damage
18  Fernando Alonso  Alpine F1 Team 5 0 Engine
19  Nicholas Latifi  Williams 19 0 Collision damage
20  Guanyu Zhou  Alfa Romeo 14 0 Collision
* Fastest lap: 1:46.458
'); }), test('Calling render with selected season and selected race with standings', async () => { // Arrange @@ -179,7 +179,7 @@ describe('Testing results file', () => { // Assert const htmlResult = await getRenderString(result); - expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Sergio Pérez  Red Bull 2 25 Finished
2  Charles Leclerc  Ferrari 1 18 Finished
3  Carlos Sainz  Ferrari 4 15 Finished
4  Lando Norris  McLaren 6 12 Finished
5  Daniel Ricciardo  McLaren 16 10 Finished
6  Lance Stroll  Aston Martin 11 8 Finished
7  Max Verstappen  Red Bull 8 6 Finished
8  Sebastian Vettel  Aston Martin 13 4 Finished
9  Lewis Hamilton  Mercedes 3 2 Finished
10  Pierre Gasly  AlphaTauri 7 1 Finished
11  Valtteri Bottas  Alfa Romeo 15 0 Finished
12  Kevin Magnussen  Haas F1 Team 9 0 Finished
13  Mick Schumacher  Haas F1 Team 12 0 +1 Lap
14  George Russell *  Mercedes 0 0 +2 Laps
15  Yuki Tsunoda  AlphaTauri 10 0 Accident
16  Esteban Ocon  Alpine F1 Team 17 0 Engine
17  Alexander Albon  Williams 18 0 Collision damage
18  Fernando Alonso  Alpine F1 Team 5 0 Engine
19  Nicholas Latifi  Williams 19 0 Collision damage
20  Guanyu Zhou  Alfa Romeo 14 0 Collision
* Fastest lap: 1:46.458
'); + expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Sergio Pérez  Red Bull 2 25 Finished
2  Charles Leclerc  Ferrari 1 18 Finished
3  Carlos Sainz  Ferrari 4 15 Finished
4  Lando Norris  McLaren 6 12 Finished
5  Daniel Ricciardo  McLaren 16 10 Finished
6  Lance Stroll  Aston Martin 11 8 Finished
7  Max Verstappen  Red Bull 8 6 Finished
8  Sebastian Vettel  Aston Martin 13 4 Finished
9  Lewis Hamilton  Mercedes 3 2 Finished
10  Pierre Gasly  AlphaTauri 7 1 Finished
11  Valtteri Bottas  Alfa Romeo 15 0 Finished
12  Kevin Magnussen  Haas F1 Team 9 0 Finished
13  Mick Schumacher  Haas F1 Team 12 0 +1 Lap
14  George Russell *  Mercedes 0 0 +2 Laps
15  Yuki Tsunoda  AlphaTauri 10 0 Accident
16  Esteban Ocon  Alpine F1 Team 17 0 Engine
17  Alexander Albon  Williams 18 0 Collision damage
18  Fernando Alonso  Alpine F1 Team 5 0 Engine
19  Nicholas Latifi  Williams 19 0 Collision damage
20  Guanyu Zhou  Alfa Romeo 14 0 Collision
* Fastest lap: 1:46.458
'); }), test('Calling render with selected season and selected race with standings and qualifying results with sprint', async () => { // Arrange @@ -202,7 +202,7 @@ describe('Testing results file', () => { // Assert const htmlResult = await getRenderString(result); - expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Max Verstappen  Red Bull 1 8 Finished
2  Charles Leclerc  Ferrari 2 7 Finished
3  Sergio Pérez  Red Bull 7 6 Finished
4  Carlos Sainz  Ferrari 10 5 Finished
5  Lando Norris  McLaren 3 4 Finished
6  Daniel Ricciardo  McLaren 6 3 Finished
7  Valtteri Bottas  Alfa Romeo 8 2 Finished
8  Kevin Magnussen  Haas F1 Team 4 1 Finished
9  Fernando Alonso  Alpine F1 Team 5 0 Finished
10  Mick Schumacher  Haas F1 Team 12 0 Finished
11  George Russell  Mercedes 11 0 Finished
12  Yuki Tsunoda  AlphaTauri 16 0 Finished
13  Sebastian Vettel  Aston Martin 9 0 Finished
14  Lewis Hamilton  Mercedes 13 0 Finished
15  Lance Stroll  Aston Martin 15 0 Finished
16  Esteban Ocon  Alpine F1 Team 19 0 Finished
17  Pierre Gasly  AlphaTauri 17 0 Finished
18  Alexander Albon  Williams 20 0 Finished
19  Nicholas Latifi  Williams 18 0 Finished
20  Guanyu Zhou  Alfa Romeo 0 0 Retired
'); + expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Max Verstappen  Red Bull 1 8 Finished
2  Charles Leclerc  Ferrari 2 7 Finished
3  Sergio Pérez  Red Bull 7 6 Finished
4  Carlos Sainz  Ferrari 10 5 Finished
5  Lando Norris  McLaren 3 4 Finished
6  Daniel Ricciardo  McLaren 6 3 Finished
7  Valtteri Bottas  Alfa Romeo 8 2 Finished
8  Kevin Magnussen  Haas F1 Team 4 1 Finished
9  Fernando Alonso  Alpine F1 Team 5 0 Finished
10  Mick Schumacher  Haas F1 Team 12 0 Finished
11  George Russell  Mercedes 11 0 Finished
12  Yuki Tsunoda  AlphaTauri 16 0 Finished
13  Sebastian Vettel  Aston Martin 9 0 Finished
14  Lewis Hamilton  Mercedes 13 0 Finished
15  Lance Stroll  Aston Martin 15 0 Finished
16  Esteban Ocon  Alpine F1 Team 19 0 Finished
17  Pierre Gasly  AlphaTauri 17 0 Finished
18  Alexander Albon  Williams 20 0 Finished
19  Nicholas Latifi  Williams 18 0 Finished
20  Guanyu Zhou  Alfa Romeo 0 0 Retired
'); }), test('Calling render with selected season and selected race with standings and qualifying results with sprint failing service', async () => { // Arrange @@ -225,7 +225,7 @@ describe('Testing results file', () => { // Assert const htmlResult = await getRenderString(result); - expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Max Verstappen  Red Bull 1 8 Finished
2  Charles Leclerc  Ferrari 2 7 Finished
3  Sergio Pérez  Red Bull 7 6 Finished
4  Carlos Sainz  Ferrari 10 5 Finished
5  Lando Norris  McLaren 3 4 Finished
6  Daniel Ricciardo  McLaren 6 3 Finished
7  Valtteri Bottas  Alfa Romeo 8 2 Finished
8  Kevin Magnussen  Haas F1 Team 4 1 Finished
9  Fernando Alonso  Alpine F1 Team 5 0 Finished
10  Mick Schumacher  Haas F1 Team 12 0 Finished
11  George Russell  Mercedes 11 0 Finished
12  Yuki Tsunoda  AlphaTauri 16 0 Finished
13  Sebastian Vettel  Aston Martin 9 0 Finished
14  Lewis Hamilton  Mercedes 13 0 Finished
15  Lance Stroll  Aston Martin 15 0 Finished
16  Esteban Ocon  Alpine F1 Team 19 0 Finished
17  Pierre Gasly  AlphaTauri 17 0 Finished
18  Alexander Albon  Williams 20 0 Finished
19  Nicholas Latifi  Williams 18 0 Finished
20  Guanyu Zhou  Alfa Romeo 0 0 Retired
'); + expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Max Verstappen  Red Bull 1 8 Finished
2  Charles Leclerc  Ferrari 2 7 Finished
3  Sergio Pérez  Red Bull 7 6 Finished
4  Carlos Sainz  Ferrari 10 5 Finished
5  Lando Norris  McLaren 3 4 Finished
6  Daniel Ricciardo  McLaren 6 3 Finished
7  Valtteri Bottas  Alfa Romeo 8 2 Finished
8  Kevin Magnussen  Haas F1 Team 4 1 Finished
9  Fernando Alonso  Alpine F1 Team 5 0 Finished
10  Mick Schumacher  Haas F1 Team 12 0 Finished
11  George Russell  Mercedes 11 0 Finished
12  Yuki Tsunoda  AlphaTauri 16 0 Finished
13  Sebastian Vettel  Aston Martin 9 0 Finished
14  Lewis Hamilton  Mercedes 13 0 Finished
15  Lance Stroll  Aston Martin 15 0 Finished
16  Esteban Ocon  Alpine F1 Team 19 0 Finished
17  Pierre Gasly  AlphaTauri 17 0 Finished
18  Alexander Albon  Williams 20 0 Finished
19  Nicholas Latifi  Williams 18 0 Finished
20  Guanyu Zhou  Alfa Romeo 0 0 Retired
'); }), test('Calling selectedSeasonChanged should change parent properties', async () => { // Arrange @@ -484,7 +484,7 @@ describe('Testing results file', () => { // Assert const htmlResult = await getRenderString(result); - expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Sergio Pérez  Red Bull 2 25 Finished
2  Charles Leclerc  Ferrari 1 18 Finished
3  Carlos Sainz  Ferrari 4 15 Finished
4  Lando Norris  McLaren 6 12 Finished
5  Daniel Ricciardo  McLaren 16 10 Finished
6  Lance Stroll  Aston Martin 11 8 Finished
7  Max Verstappen  Red Bull 8 6 Finished
8  Sebastian Vettel  Aston Martin 13 4 Finished
9  Lewis Hamilton  Mercedes 3 2 Finished
10  Pierre Gasly  AlphaTauri 7 1 Finished
11  Valtteri Bottas  Alfa Romeo 15 0 Finished
12  Kevin Magnussen  Haas F1 Team 9 0 Finished
13  Mick Schumacher  Haas F1 Team 12 0 +1 Lap
14  George Russell  Mercedes 0 0 +2 Laps
15  Yuki Tsunoda  AlphaTauri 10 0 Accident
16  Esteban Ocon  Alpine F1 Team 17 0 Engine
17  Alexander Albon  Williams 18 0 Collision damage
18  Fernando Alonso  Alpine F1 Team 5 0 Engine
19  Nicholas Latifi  Williams 19 0 Collision damage
20  Guanyu Zhou  Alfa Romeo 14 0 Collision
'); + expect(htmlResult).toMatch('
Season
Race

  1 : Singapore Grand Prix


  Driver Team Grid Points Status
1  Sergio Pérez  Red Bull 2 25 Finished
2  Charles Leclerc  Ferrari 1 18 Finished
3  Carlos Sainz  Ferrari 4 15 Finished
4  Lando Norris  McLaren 6 12 Finished
5  Daniel Ricciardo  McLaren 16 10 Finished
6  Lance Stroll  Aston Martin 11 8 Finished
7  Max Verstappen  Red Bull 8 6 Finished
8  Sebastian Vettel  Aston Martin 13 4 Finished
9  Lewis Hamilton  Mercedes 3 2 Finished
10  Pierre Gasly  AlphaTauri 7 1 Finished
11  Valtteri Bottas  Alfa Romeo 15 0 Finished
12  Kevin Magnussen  Haas F1 Team 9 0 Finished
13  Mick Schumacher  Haas F1 Team 12 0 +1 Lap
14  George Russell  Mercedes 0 0 +2 Laps
15  Yuki Tsunoda  AlphaTauri 10 0 Accident
16  Esteban Ocon  Alpine F1 Team 17 0 Engine
17  Alexander Albon  Williams 18 0 Collision damage
18  Fernando Alonso  Alpine F1 Team 5 0 Engine
19  Nicholas Latifi  Williams 19 0 Collision damage
20  Guanyu Zhou  Alfa Romeo 14 0 Collision
'); }), test('Calling render without tab_order should arrange tabs in given order', async () => { // Arrange