From 9cca493a134d8f231fba743bfa692dea38b8e396 Mon Sep 17 00:00:00 2001 From: Marco Kreeft Date: Sun, 1 Jan 2023 17:46:53 +0100 Subject: [PATCH] Fixed country flag and added more tests (#46) --- formulaone-card.js | 14 +++++++------- formulaone-card.js.gz | Bin 20104 -> 20106 bytes package-lock.json | 4 ++-- package.json | 2 +- src/cards/driver-standings.ts | 11 ++--------- src/cards/last-result.ts | 4 ++-- src/cards/next-race.ts | 4 ++-- src/utils.ts | 13 +++++++++++++ tests/cards/last-result.test.ts | 6 +++--- tests/cards/next-race.test.ts | 10 +++++----- tests/utils/getCountryFlagUrl.test.ts | 18 +++++++++++++++++- 11 files changed, 54 insertions(+), 32 deletions(-) diff --git a/formulaone-card.js b/formulaone-card.js index 31e91c9..dd4de3a 100644 --- a/formulaone-card.js +++ b/formulaone-card.js @@ -1,5 +1,5 @@ /*! For license information please see formulaone-card.js.LICENSE.txt */ -(()=>{"use strict";var t={197:(t,e,i)=>{i.r(e),i.d(e,{DEFAULT_DOMAIN_ICON:()=>J,DEFAULT_PANEL:()=>Q,DEFAULT_VIEW_ENTITY_ID:()=>st,DOMAINS_HIDE_MORE_INFO:()=>et,DOMAINS_MORE_INFO_NO_HISTORY:()=>it,DOMAINS_TOGGLE:()=>rt,DOMAINS_WITH_CARD:()=>X,DOMAINS_WITH_MORE_INFO:()=>tt,NumberFormat:()=>n,STATES_OFF:()=>nt,TimeFormat:()=>r,UNIT_C:()=>at,UNIT_F:()=>ot,applyThemesOnElement:()=>F,computeCardSize:()=>L,computeDomain:()=>B,computeEntity:()=>H,computeRTL:()=>j,computeRTLDirection:()=>z,computeStateDisplay:()=>Z,computeStateDomain:()=>K,createThing:()=>dt,debounce:()=>ht,domainIcon:()=>yt,evaluateFilter:()=>pt,fireEvent:()=>lt,fixedIcons:()=>mt,formatDate:()=>u,formatDateMonth:()=>v,formatDateMonthYear:()=>f,formatDateNumeric:()=>h,formatDateShort:()=>y,formatDateTime:()=>w,formatDateTimeNumeric:()=>A,formatDateTimeWithSeconds:()=>N,formatDateWeekday:()=>l,formatDateYear:()=>C,formatNumber:()=>V,formatTime:()=>E,formatTimeWeekday:()=>D,formatTimeWithSeconds:()=>x,forwardHaptic:()=>ft,getLovelace:()=>At,handleAction:()=>bt,handleActionConfig:()=>Ct,handleClick:()=>St,hasAction:()=>wt,hasConfigOrEntityChanged:()=>$t,hasDoubleClick:()=>Nt,isNumericState:()=>W,navigate:()=>gt,numberFormatToLocale:()=>q,relativeTime:()=>P,round:()=>G,stateIcon:()=>Tt,timerTimeRemaining:()=>R,toggleEntity:()=>_t,turnOnOffEntities:()=>Ot,turnOnOffEntity:()=>vt});var n,r,a,o=function(){return o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0)return{value:Math.round(h),unit:"year"};var m=12*h+u.getMonth()-d.getMonth();if(Math.round(Math.abs(m))>0)return{value:Math.round(m),unit:"month"};var y=r/604800;return{value:Math.round(y),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 R(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 U(){return(U=Object.assign||function(t){for(var e=1;e-1?t.split(".")[1].length:0;i.minimumFractionDigits=n,i.maximumFractionDigits=n}return i},Z=function(t,e,i,n){var r=void 0!==n?n:e.state;if("unknown"===r||"unavailable"===r)return t("state.default."+r);if(W(e)){if("monetary"===e.attributes.device_class)try{return V(r,i,{style:"currency",currency:e.attributes.unit_of_measurement})}catch(t){}return V(r,i)+(e.attributes.unit_of_measurement?" "+e.attributes.unit_of_measurement:"")}var a=K(e);if("input_datetime"===a){var o;if(void 0===n)return e.attributes.has_date&&e.attributes.has_time?(o=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day,e.attributes.hour,e.attributes.minute),w(o,i)):e.attributes.has_date?(o=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day),u(o,i)):e.attributes.has_time?((o=new Date).setHours(e.attributes.hour,e.attributes.minute),E(o,i)):e.state;try{var s=n.split(" ");if(2===s.length)return w(new Date(s.join("T")),i);if(1===s.length){if(n.includes("-"))return u(new Date(n+"T00:00"),i);if(n.includes(":")){var l=new Date;return E(new Date(l.toISOString().split("T")[0]+"T"+n),i)}}return n}catch(t){return n}}return"humidifier"===a&&"on"===r&&e.attributes.humidity?e.attributes.humidity+" %":"counter"===a||"number"===a||"input_number"===a?V(r,i):e.attributes.device_class&&t("component."+a+".state."+e.attributes.device_class+"."+r)||t("component."+a+".state._."+r)||r},J="mdi:bookmark",Q="lovelace",X=["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"]),at="°C",ot="°F",st="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"]),ut={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"},dt=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("custom:".length);else if(e)if(ct.has(r))r="hui-"+r+"-row";else{if(!t.entity)return i("Invalid config given.",t);var a=t.entity.split(".",1)[0];r="hui-"+(ut[a]||"text")+"-entity-row"}else r="hui-"+r+"-card";if(customElements.get(r))return n(r,t);var o=i("Custom element doesn't exist: "+t.type+".",t);o.style.display="None";var s=setTimeout((function(){o.style.display=""}),2e3);return customElements.whenDefined(t.type).then((function(){clearTimeout(s),lt(o,"ll-rebuild",{},o)})),o},ht=function(t,e,i){var n;return void 0===i&&(i=!1),function(){var r=[].slice.call(arguments),a=this,o=function(){n=null,i||t.apply(a,r)},s=i&&!n;clearTimeout(n),n=setTimeout(o,e),s&&t.apply(a,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 yt(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 pt=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}},ft=function(t){lt(window,"haptic",t)},gt=function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),lt(window,"location-changed",{replace:i})},vt=function(t,e,i){void 0===i&&(i=!0);var n,r=B(e),a="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(a,n,{entity_id:e})},_t=function(t,e){var i=nt.includes(t.states[e].state);return vt(t,e,i)},Ct=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}))||(ft("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&>(0,n.navigation_path);break;case"url":n.url_path&&window.open(n.url_path);break;case"toggle":i.entity&&(_t(e,i.entity),ft("success"));break;case"call-service":if(!n.service)return void ft("failure");var r=n.service.split(".",2);e.callService(r[0],r[1],n.service_data,n.target),ft("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),Ct(t,e,i,r)},St=function(t,e,i,n,r){var a;if(r&&i.double_tap_action?a=i.double_tap_action:n&&i.hold_action?a=i.hold_action:!n&&i.tap_action&&(a=i.tap_action),a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?"))switch(a.action){case"more-info":(a.entity||i.entity||i.camera_image)&&(lt(t,"hass-more-info",{entityId:a.entity?a.entity:i.entity?i.entity:i.camera_image}),a.haptic&&ft(a.haptic));break;case"navigate":a.navigation_path&&(gt(0,a.navigation_path),a.haptic&&ft(a.haptic));break;case"url":a.url_path&&window.open(a.url_path),a.haptic&&ft(a.haptic);break;case"toggle":i.entity&&(_t(e,i.entity),a.haptic&&ft(a.haptic));break;case"call-service":if(!a.service)return;var o=a.service.split(".",2),s=o[0],l=o[1],c=U({},a.service_data);"entity"===c.entity_id&&(c.entity_id=i.entity),e.callService(s,l,c,a.target),a.haptic&&ft(a.haptic);break;case"fire-dom-event":lt(t,"ll-custom",a),a.haptic&&ft(a.haptic)}};function wt(t){return void 0!==t&&"none"!==t.action}function $t(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 Nt(t){return void 0!==t&&"none"!==t.action}var Ot=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=B(e),a=["cover","lock"].includes(r)?r:"homeassistant";a in n||(n[a]=[]),n[a].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]})}))},At=function(){var t=document.querySelector("home-assistant");if(t=(t=(t=(t=(t=(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root")){var e=t.lovelace;return e.current_view=t.___curView,e}return null},It={humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",temperature:"mdi:thermometer",pressure:"mdi:gauge",power:"mdi:flash",signal_strength:"mdi:wifi"},Et={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 yt("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in It)return It[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":yt("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?yt("input_datetime"):"mdi:calendar":"mdi:clock"}},Tt=function(t){if(!t)return"mdi:bookmark";if(t.attributes.icon)return t.attributes.icon;var e=B(t.entity_id);return e in Et?Et[e](t):yt(e,t.state)}},243:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BaseCard=void 0,e.BaseCard=class{constructor(t,e,i){this.sensor_entity_id=t,this.hass=e,this.config=i,this.sensor=this.getSensor()}getSensor(){const t=this.hass.states[this.sensor_entity_id];return{last_update:new Date(t.attributes.last_update),data:t.attributes.data}}translation(t){return!this.config.translations||Object.keys(this.config.translations).indexOf(t)<0?this.defaultTranslations[t]:this.config.translations[t]}}},521:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(243);class a extends r.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={constructor:"Constructor",points:"Pts",wins:"Wins"}}cardSize(){const t=this.sensor.data;return t?1+(0==t.length?1:t.length/2):2}renderStandingRow(t){return n.html` +(()=>{"use strict";var t={197:(t,e,i)=>{i.r(e),i.d(e,{DEFAULT_DOMAIN_ICON:()=>J,DEFAULT_PANEL:()=>Q,DEFAULT_VIEW_ENTITY_ID:()=>st,DOMAINS_HIDE_MORE_INFO:()=>et,DOMAINS_MORE_INFO_NO_HISTORY:()=>it,DOMAINS_TOGGLE:()=>rt,DOMAINS_WITH_CARD:()=>X,DOMAINS_WITH_MORE_INFO:()=>tt,NumberFormat:()=>n,STATES_OFF:()=>nt,TimeFormat:()=>r,UNIT_C:()=>at,UNIT_F:()=>ot,applyThemesOnElement:()=>U,computeCardSize:()=>L,computeDomain:()=>B,computeEntity:()=>H,computeRTL:()=>j,computeRTLDirection:()=>z,computeStateDisplay:()=>Z,computeStateDomain:()=>K,createThing:()=>dt,debounce:()=>ht,domainIcon:()=>yt,evaluateFilter:()=>pt,fireEvent:()=>lt,fixedIcons:()=>mt,formatDate:()=>u,formatDateMonth:()=>v,formatDateMonthYear:()=>f,formatDateNumeric:()=>h,formatDateShort:()=>y,formatDateTime:()=>w,formatDateTimeNumeric:()=>A,formatDateTimeWithSeconds:()=>N,formatDateWeekday:()=>l,formatDateYear:()=>C,formatNumber:()=>V,formatTime:()=>E,formatTimeWeekday:()=>D,formatTimeWithSeconds:()=>x,forwardHaptic:()=>ft,getLovelace:()=>At,handleAction:()=>bt,handleActionConfig:()=>Ct,handleClick:()=>St,hasAction:()=>wt,hasConfigOrEntityChanged:()=>$t,hasDoubleClick:()=>Nt,isNumericState:()=>W,navigate:()=>gt,numberFormatToLocale:()=>q,relativeTime:()=>P,round:()=>G,stateIcon:()=>Tt,timerTimeRemaining:()=>R,toggleEntity:()=>_t,turnOnOffEntities:()=>Ot,turnOnOffEntity:()=>vt});var n,r,a,o=function(){return o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0)return{value:Math.round(h),unit:"year"};var m=12*h+u.getMonth()-d.getMonth();if(Math.round(Math.abs(m))>0)return{value:Math.round(m),unit:"month"};var y=r/604800;return{value:Math.round(y),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 R(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 F(){return(F=Object.assign||function(t){for(var e=1;e-1?t.split(".")[1].length:0;i.minimumFractionDigits=n,i.maximumFractionDigits=n}return i},Z=function(t,e,i,n){var r=void 0!==n?n:e.state;if("unknown"===r||"unavailable"===r)return t("state.default."+r);if(W(e)){if("monetary"===e.attributes.device_class)try{return V(r,i,{style:"currency",currency:e.attributes.unit_of_measurement})}catch(t){}return V(r,i)+(e.attributes.unit_of_measurement?" "+e.attributes.unit_of_measurement:"")}var a=K(e);if("input_datetime"===a){var o;if(void 0===n)return e.attributes.has_date&&e.attributes.has_time?(o=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day,e.attributes.hour,e.attributes.minute),w(o,i)):e.attributes.has_date?(o=new Date(e.attributes.year,e.attributes.month-1,e.attributes.day),u(o,i)):e.attributes.has_time?((o=new Date).setHours(e.attributes.hour,e.attributes.minute),E(o,i)):e.state;try{var s=n.split(" ");if(2===s.length)return w(new Date(s.join("T")),i);if(1===s.length){if(n.includes("-"))return u(new Date(n+"T00:00"),i);if(n.includes(":")){var l=new Date;return E(new Date(l.toISOString().split("T")[0]+"T"+n),i)}}return n}catch(t){return n}}return"humidifier"===a&&"on"===r&&e.attributes.humidity?e.attributes.humidity+" %":"counter"===a||"number"===a||"input_number"===a?V(r,i):e.attributes.device_class&&t("component."+a+".state."+e.attributes.device_class+"."+r)||t("component."+a+".state._."+r)||r},J="mdi:bookmark",Q="lovelace",X=["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"]),at="°C",ot="°F",st="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"]),ut={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"},dt=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("custom:".length);else if(e)if(ct.has(r))r="hui-"+r+"-row";else{if(!t.entity)return i("Invalid config given.",t);var a=t.entity.split(".",1)[0];r="hui-"+(ut[a]||"text")+"-entity-row"}else r="hui-"+r+"-card";if(customElements.get(r))return n(r,t);var o=i("Custom element doesn't exist: "+t.type+".",t);o.style.display="None";var s=setTimeout((function(){o.style.display=""}),2e3);return customElements.whenDefined(t.type).then((function(){clearTimeout(s),lt(o,"ll-rebuild",{},o)})),o},ht=function(t,e,i){var n;return void 0===i&&(i=!1),function(){var r=[].slice.call(arguments),a=this,o=function(){n=null,i||t.apply(a,r)},s=i&&!n;clearTimeout(n),n=setTimeout(o,e),s&&t.apply(a,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 yt(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 pt=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}},ft=function(t){lt(window,"haptic",t)},gt=function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),lt(window,"location-changed",{replace:i})},vt=function(t,e,i){void 0===i&&(i=!0);var n,r=B(e),a="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(a,n,{entity_id:e})},_t=function(t,e){var i=nt.includes(t.states[e].state);return vt(t,e,i)},Ct=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}))||(ft("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&>(0,n.navigation_path);break;case"url":n.url_path&&window.open(n.url_path);break;case"toggle":i.entity&&(_t(e,i.entity),ft("success"));break;case"call-service":if(!n.service)return void ft("failure");var r=n.service.split(".",2);e.callService(r[0],r[1],n.service_data,n.target),ft("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),Ct(t,e,i,r)},St=function(t,e,i,n,r){var a;if(r&&i.double_tap_action?a=i.double_tap_action:n&&i.hold_action?a=i.hold_action:!n&&i.tap_action&&(a=i.tap_action),a||(a={action:"more-info"}),!a.confirmation||a.confirmation.exemptions&&a.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||confirm(a.confirmation.text||"Are you sure you want to "+a.action+"?"))switch(a.action){case"more-info":(a.entity||i.entity||i.camera_image)&&(lt(t,"hass-more-info",{entityId:a.entity?a.entity:i.entity?i.entity:i.camera_image}),a.haptic&&ft(a.haptic));break;case"navigate":a.navigation_path&&(gt(0,a.navigation_path),a.haptic&&ft(a.haptic));break;case"url":a.url_path&&window.open(a.url_path),a.haptic&&ft(a.haptic);break;case"toggle":i.entity&&(_t(e,i.entity),a.haptic&&ft(a.haptic));break;case"call-service":if(!a.service)return;var o=a.service.split(".",2),s=o[0],l=o[1],c=F({},a.service_data);"entity"===c.entity_id&&(c.entity_id=i.entity),e.callService(s,l,c,a.target),a.haptic&&ft(a.haptic);break;case"fire-dom-event":lt(t,"ll-custom",a),a.haptic&&ft(a.haptic)}};function wt(t){return void 0!==t&&"none"!==t.action}function $t(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 Nt(t){return void 0!==t&&"none"!==t.action}var Ot=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=B(e),a=["cover","lock"].includes(r)?r:"homeassistant";a in n||(n[a]=[]),n[a].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]})}))},At=function(){var t=document.querySelector("home-assistant");if(t=(t=(t=(t=(t=(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root")){var e=t.lovelace;return e.current_view=t.___curView,e}return null},It={humidity:"mdi:water-percent",illuminance:"mdi:brightness-5",temperature:"mdi:thermometer",pressure:"mdi:gauge",power:"mdi:flash",signal_strength:"mdi:wifi"},Et={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 yt("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in It)return It[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":yt("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?yt("input_datetime"):"mdi:calendar":"mdi:clock"}},Tt=function(t){if(!t)return"mdi:bookmark";if(t.attributes.icon)return t.attributes.icon;var e=B(t.entity_id);return e in Et?Et[e](t):yt(e,t.state)}},243:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BaseCard=void 0,e.BaseCard=class{constructor(t,e,i){this.sensor_entity_id=t,this.hass=e,this.config=i,this.sensor=this.getSensor()}getSensor(){const t=this.hass.states[this.sensor_entity_id];return{last_update:new Date(t.attributes.last_update),data:t.attributes.data}}translation(t){return!this.config.translations||Object.keys(this.config.translations).indexOf(t)<0?this.defaultTranslations[t]:this.config.translations[t]}}},521:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(243);class a extends r.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={constructor:"Constructor",points:"Pts",wins:"Wins"}}cardSize(){const t=this.sensor.data;return t?1+(0==t.length?1:t.length/2):2}renderStandingRow(t){return n.html` ${t.position} ${t.Constructor.name} @@ -19,10 +19,10 @@ ${t.map((t=>this.renderStandingRow(t)))} - `}}e.default=a},412:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(593),a=i(243),o=i(634);class s extends a.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={driver:"Driver",team:"Team",points:"Pts",wins:"Wins"},this.getCountryFlag=t=>{const e=o.filter((e=>e.Nationality===t))[0];return(0,r.getCountryFlagUrl)(e.Code)}}cardSize(){const t=this.sensor.data;return t?1+(0==t.length?1:t.length/2):2}renderStandingRow(t){var e,i;return n.html` + `}}e.default=a},412:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(593),a=i(243);class o extends a.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={driver:"Driver",team:"Team",points:"Pts",wins:"Wins"}}cardSize(){const t=this.sensor.data;return t?1+(0==t.length?1:t.length/2):2}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} + ${(null===(e=this.config.standings)||void 0===e?void 0:e.show_flag)?n.html` `:""}${t.Driver.code} ${(0,r.getDriverName)(t.Driver,this.config)} ${(null===(i=this.config.standings)||void 0===i?void 0:i.show_team)?n.html`${t.Constructors[0].name}`:""} ${t.points} @@ -42,14 +42,14 @@ ${e.map((t=>this.renderStandingRow(t)))} - `}}e.default=s},958:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(593),a=i(243);class o extends a.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={driver:"Driver",grid:"Grid",points:"Points",status:"Status"}}cardSize(){const t=this.sensor.data;return t&&t.Results?1+(0==t.Results.length?1:t.Results.length/2):2}renderResultRow(t){return n.html` + `}}e.default=o},958:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(593),a=i(243);class o extends a.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={driver:"Driver",grid:"Grid",points:"Points",status:"Status"}}cardSize(){const t=this.sensor.data;return t&&t.Results?1+(0==t.Results.length?1:t.Results.length/2):2}renderResultRow(t){return n.html` ${t.position} ${(0,r.getDriverName)(t.Driver,this.config)} ${t.grid} ${t.points} ${t.status} - `}renderHeader(){const t=this.sensor.data,e=t.Circuit.Location.country.replace(" ","-"),i=(0,r.getCircuitName)(e),a=n.html``,o=this.config.image_clickable?n.html`${a}`:a;return n.html`

  ${t.round} : ${t.raceName}

${o}
`}render(){const t=this.sensor.data;if(!this.sensor_entity_id.endsWith("_last_result")||void 0===t)throw new Error("Please pass the correct sensor (last_result)");return n.html` + `}renderHeader(){const t=this.sensor.data,e=t.Circuit.Location.country.replace(" ","-"),i=(0,r.getCircuitName)(e),a=n.html``,o=this.config.image_clickable?n.html`${a}`:a;return n.html`

  ${t.round} : ${t.raceName}

${o}
`}render(){const t=this.sensor.data;if(!this.sensor_entity_id.endsWith("_last_result")||void 0===t)throw new Error("Please pass the correct sensor (last_result)");return n.html` @@ -70,7 +70,7 @@ ${t.Results.map((t=>this.renderResultRow(t)))}
- `}}e.default=o},249:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(247),a=i(347),o=i(593),s=i(243);class l extends s.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={date:"Date",practice1:"Practice 1",practice2:"Practice 2",practice3:"Practice 3",race:"Race",racename:"Race name",circuitname:"Circuit name",location:"Location",racetime:"Race",sprint:"Sprint",qualifying:"Qualifying",endofseason:"Season is over. See you next year!"};const n=this.hass.states[this.sensor_entity_id];this.next_race=n.attributes.next_race}cardSize(){return this.next_race?8:2}renderHeader(){const t=this.next_race.Circuit.Location.country.replace(" ","-"),e=(0,o.getCircuitName)(t),i=n.html``,r=this.config.image_clickable?n.html`${i}`:i;return n.html`

  ${this.next_race.round} : ${this.next_race.raceName}

${r}
`}renderSeasonEnded(){return n.html`
${this.translation("endofseason")}
`}render(){if(!this.sensor_entity_id.endsWith("_races")||void 0===this.next_race)throw new Error("Please pass the correct sensor (races)");if(!this.next_race)return this.renderSeasonEnded();const t=new Date(this.next_race.date+"T"+this.next_race.time),e=(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.FirstPractice.date+"T"+this.next_race.FirstPractice.time),this.hass.locale),i=(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.SecondPractice.date+"T"+this.next_race.SecondPractice.time),this.hass.locale),o=void 0!==this.next_race.ThirdPractice?(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.ThirdPractice.date+"T"+this.next_race.ThirdPractice.time),this.hass.locale):"-",s=(0,a.formatDateTimeRaceInfo)(t,this.hass.locale),l=void 0!==this.next_race.Qualifying?(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.Qualifying.date+"T"+this.next_race.Qualifying.time),this.hass.locale):"-",c=void 0!==this.next_race.Sprint?(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.Sprint.date+"T"+this.next_race.Sprint.time),this.hass.locale):"-";return n.html` + `}}e.default=o},249:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0});const n=i(692),r=i(247),a=i(347),o=i(593),s=i(243);class l extends s.BaseCard{constructor(t,e,i){super(t,e,i),this.defaultTranslations={date:"Date",practice1:"Practice 1",practice2:"Practice 2",practice3:"Practice 3",race:"Race",racename:"Race name",circuitname:"Circuit name",location:"Location",racetime:"Race",sprint:"Sprint",qualifying:"Qualifying",endofseason:"Season is over. See you next year!"};const n=this.hass.states[this.sensor_entity_id];this.next_race=n.attributes.next_race}cardSize(){return this.next_race?8:2}renderHeader(){const t=this.next_race.Circuit.Location.country.replace(" ","-"),e=(0,o.getCircuitName)(t),i=n.html``,r=this.config.image_clickable?n.html`${i}`:i;return n.html`

  ${this.next_race.round} : ${this.next_race.raceName}

${r}
`}renderSeasonEnded(){return n.html`
${this.translation("endofseason")}
`}render(){if(!this.sensor_entity_id.endsWith("_races")||void 0===this.next_race)throw new Error("Please pass the correct sensor (races)");if(!this.next_race)return this.renderSeasonEnded();const t=new Date(this.next_race.date+"T"+this.next_race.time),e=(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.FirstPractice.date+"T"+this.next_race.FirstPractice.time),this.hass.locale),i=(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.SecondPractice.date+"T"+this.next_race.SecondPractice.time),this.hass.locale),o=void 0!==this.next_race.ThirdPractice?(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.ThirdPractice.date+"T"+this.next_race.ThirdPractice.time),this.hass.locale):"-",s=(0,a.formatDateTimeRaceInfo)(t,this.hass.locale),l=void 0!==this.next_race.Qualifying?(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.Qualifying.date+"T"+this.next_race.Qualifying.time),this.hass.locale):"-",c=void 0!==this.next_race.Sprint?(0,a.formatDateTimeRaceInfo)(new Date(this.next_race.Sprint.date+"T"+this.next_race.Sprint.time),this.hass.locale):"-";return n.html` @@ -157,4 +157,4 @@ text-decoration: none; color: var(--secondary-text-color); } -`},98:(t,e)=>{var i,n;Object.defineProperty(e,"__esModule",{value:!0}),e.FormulaOneCardType=e.PreviousRaceDisplay=void 0,(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"},593:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getDriverName=e.getCircuitName=e.getCountryFlagUrl=e.checkConfig=e.hasConfigOrEntitiesChanged=void 0,e.hasConfigOrEntitiesChanged=(t,e)=>{if(e.has("config"))return!0;const i=e.get("_hass");return!!i&&i.states[t.sensor]!==t.hass.states[t.sensor]},e.checkConfig=t=>{if(void 0===t.card_type)throw new Error("Please define FormulaOne card type (card_type).");if(void 0===t.sensor)throw new Error("Please define FormulaOne sensor.")},e.getCountryFlagUrl=t=>{const e=[{countryCode:"USA",corrected:"US"},{countryCode:"UAE",corrected:"AE"}].filter((e=>e.countryCode==t));return e.length>0&&(t=e[0].corrected),`https://flagcdn.com/w40/${t.toLowerCase()}.png`},e.getCircuitName=t=>{const e=[{countryDashed:"UAE",name:"Abu_Dhabi"}].filter((e=>e.countryDashed==t));return e.length>0&&(t=e[0].name),t},e.getDriverName=(t,e)=>{const i="VER"==t.code?1:t.permanentNumber;return`${t.givenName} ${t.familyName}${e.show_carnumber?` #${i}`:""}`}},692:(t,e,i)=>{var n;i.r(e),i.d(e,{_$LH:()=>H,html:()=>w,noChange:()=>N,nothing:()=>O,render:()=>I,svg:()=>$});const r=window,a=r.trustedTypes,o=a?a.createPolicy("lit-html",{createHTML:t=>t}):void 0,s=`lit$${(Math.random()+"").slice(9)}$`,l="?"+s,c=`<${l}>`,u=document,d=(t="")=>u.createComment(t),h=t=>null===t||"object"!=typeof t&&"function"!=typeof t,m=Array.isArray,y=t=>m(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]),p=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,f=/-->/g,g=/>/g,v=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),_=/'/g,C=/"/g,b=/^(?:script|style|textarea|title)$/i,S=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),w=S(1),$=S(2),N=Symbol.for("lit-noChange"),O=Symbol.for("lit-nothing"),A=new WeakMap,I=(t,e,i)=>{var n,r;const a=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let o=a._$litPart$;if(void 0===o){const t=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;a._$litPart$=o=new M(e.insertBefore(d(),t),t,void 0,null!=i?i:{})}return o._$AI(t),o},E=u.createTreeWalker(u,129,null,!1),T=(t,e)=>{const i=t.length-1,n=[];let r,a=2===e?"":"",l=p;for(let e=0;e"===u[0]?(l=null!=r?r:p,d=-1):void 0===u[1]?d=-2:(d=l.lastIndex-u[2].length,o=u[1],l=void 0===u[3]?v:'"'===u[3]?C:_):l===C||l===_?l=v:l===f||l===g?l=p:(l=v,r=void 0);const m=l===v&&t[e+1].startsWith("/>")?" ":"";a+=l===p?i+c:d>=0?(n.push(o),i.slice(0,d)+"$lit$"+i.slice(d)+s+m):i+s+(-2===d?(n.push(void 0),e):m)}const u=a+(t[i]||"")+(2===e?"":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==o?o.createHTML(u):u,n]};class x{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const c=t.length-1,u=this.parts,[h,m]=T(t,e);if(this.el=x.createElement(h,i),E.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=E.nextNode())&&u.length0){n.textContent=a?a.emptyScript:"";for(let i=0;i2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=O}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let a=!1;if(void 0===r)t=k(this,t,e,0),a=!h(t)||t!==this._$AH&&t!==N,a&&(this._$AH=t);else{const n=t;let o,s;for(t=r[0],o=0;o{i.r(e),i.d(e,{customElement:()=>n,eventOptions:()=>l,property:()=>a,query:()=>c,queryAll:()=>u,queryAssignedElements:()=>y,queryAssignedNodes:()=>p,queryAsync:()=>d,state:()=>o});const n=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),r=(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 a(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):r(t,e)}function o(t){return a({...t,state:!0})}const s=({finisher:t,descriptor:e})=>(i,n)=>{var r;if(void 0===n){const n=null!==(r=i.originalKey)&&void 0!==r?r:i.key,a=null!=e?{kind:"method",placement:"prototype",key:n,descriptor:e(i.key)}:{...i,key:n};return null!=t&&(a.finisher=function(e){t(e,n)}),a}{const r=i.constructor;void 0!==e&&Object.defineProperty(i,n,e(n)),null==t||t(r,n)}};function l(t){return s({finisher:(e,i)=>{Object.assign(e.prototype[i],t)}})}function c(t,e){return s({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 u(t){return s({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 d(t){return s({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 m=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 y(t){const{slot:e,selector:i}=null!=t?t:{};return s({descriptor:n=>({get(){var n;const r="slot"+(e?`[name=${e}]`:":not([name])"),a=null===(n=this.renderRoot)||void 0===n?void 0:n.querySelector(r),o=null!=a?m(a,t):[];return i?o.filter((t=>t.matches(i))):o},enumerable:!0,configurable:!0})})}function p(t,e,i){let n,r=t;return"object"==typeof t?(r=t.slot,n=t):n={flatten:e},i?y({slot:r,flatten:e,selector:i}):s({descriptor:t=>({get(){var t,e;const i="slot"+(r?`[name=${r}]`:":not([name])"),a=null===(t=this.renderRoot)||void 0===t?void 0:t.querySelector(i);return null!==(e=null==a?void 0:a.assignedNodes(n))&&void 0!==e?e:[]},enumerable:!0,configurable:!0})})}},392:(t,e,i)=>{i.r(e),i.d(e,{CSSResult:()=>s,LitElement:()=>N,ReactiveElement:()=>C,UpdatingElement:()=>$,_$LE:()=>A,_$LH:()=>w._$LH,adoptStyles:()=>u,css:()=>c,defaultConverter:()=>g,getCompatibleStyle:()=>d,html:()=>w.html,noChange:()=>w.noChange,notEqual:()=>v,nothing:()=>w.nothing,render:()=>w.render,supportsAdoptingStyleSheets:()=>r,svg:()=>w.svg,unsafeCSS:()=>l});const n=window,r=n.ShadowRoot&&(void 0===n.ShadyCSS||n.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),o=new WeakMap;class s{constructor(t,e,i){if(this._$cssResult$=!0,i!==a)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=o.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&o.set(e,t))}return t}toString(){return this.cssText}}const l=t=>new s("string"==typeof t?t:t+"",void 0,a),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 s(i,t,a)},u=(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)}))},d=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,y=m.trustedTypes,p=y?y.emptyScript:"",f=m.reactiveElementPolyfillSupport,g={toAttribute(t,e){switch(e){case Boolean:t=t?p: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}},v=(t,e)=>e!==t&&(e==e||t==t),_={attribute:!0,type:String,converter:g,reflect:!1,hasChanged:v};class C extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;null!==(e=this.h)&&void 0!==e||(this.h=[]),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(),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(d(t))}else void 0!==t&&e.push(d(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 u(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 a=(void 0!==(null===(n=i.converter)||void 0===n?void 0:n.toAttribute)?i.converter:g).toAttribute(e,i.type);this._$El=t,null==a?this.removeAttribute(r):this.setAttribute(r,a),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),a="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(i=t.converter)||void 0===i?void 0:i.fromAttribute)?t.converter:g;this._$El=r,this[r]=a.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,i){let n=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||v)(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){}}C.finalized=!0,C.elementProperties=new Map,C.elementStyles=[],C.shadowRootOptions={mode:"open"},null==f||f({ReactiveElement:C}),(null!==(h=m.reactiveElementVersions)&&void 0!==h?h:m.reactiveElementVersions=[]).push("1.4.1");var b,S,w=i(692);const $=C;class N extends C{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,w.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 w.noChange}}N.finalized=!0,N._$litElement$=!0,null===(b=globalThis.litElementHydrateSupport)||void 0===b||b.call(globalThis,{LitElement:N});const O=globalThis.litElementPolyfillSupport;null==O||O({LitElement:N});const A={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(S=globalThis.litElementVersions)&&void 0!==S?S:globalThis.litElementVersions=[]).push("3.2.2")},147:t=>{t.exports=JSON.parse('{"name":"formulaone-card","version":"0.2.1","description":"Frontend card for hass-formulaoneapi","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"},"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.1.1","@typescript-eslint/eslint-plugin":"^5.39.0","@typescript-eslint/parser":"^5.39.0","eslint":"^8.24.0","home-assistant-js-websocket":"^8.0.0","lit":"^2.3.1","typescript":"^4.8.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"dependencies":{"@babel/plugin-transform-runtime":"^7.19.1","@babel/preset-env":"^7.19.3","@lit-labs/scoped-registry-mixin":"^1.0.1","babel-jest":"^29.1.2","compression-webpack-plugin":"^10.0.0","custom-card-helpers":"^1.9.0","jest-environment-jsdom":"^29.1.2","jest-ts-auto-mock":"^2.1.0","ts-auto-mock":"^3.6.2","ts-jest":"^29.0.3","ts-loader":"^9.4.1","ttypescript":"^1.5.13","yarn":"^1.22.19"}}')},634:t=>{t.exports=JSON.parse('[{"Code":"AD","Country":"Andorra","ISO":"53","Nationality":"Andorian"},{"Code":"AE","Country":"United Arab Emirates","ISO":"126","Nationality":"Emirian"},{"Code":"AF","Country":"Afghanistan","ISO":"133","Nationality":"Afghani"},{"Code":"AI","Country":"Anguilla","ISO":"55","Nationality":"Anguillan"},{"Code":"AM","Country":"Armenia","ISO":"58","Nationality":"Armenian"},{"Code":"AO","Country":"Angola","ISO":"54","Nationality":"Angolian"},{"Code":"AQ","Country":"Antarctica","ISO":"55","Nationality":"Antarctic"},{"Code":"AR","Country":"Argentina","ISO":"57","Nationality":"Argentine"},{"Code":"AS","Country":"Austria","ISO":"3","Nationality":"Austrian"},{"Code":"AU","Country":"Australia","ISO":"2","Nationality":"Australian"},{"Code":"AW","Country":"Aruba","ISO":"59","Nationality":"Arubian"},{"Code":"BA","Country":"Bangladesh","ISO":"45","Nationality":"Bangladeshi"},{"Code":"BB","Country":"Barbados","ISO":"63","Nationality":"Barbadian"},{"Code":"BE","Country":"Belgium","ISO":"4","Nationality":"Belgian"},{"Code":"BH","Country":"Bahrain","ISO":"62","Nationality":"Bahrainian"},{"Code":"BM","Country":"Bermuda","ISO":"67","Nationality":"Bermuda"},{"Code":"BO","Country":"Bolivia","ISO":"69","Nationality":"Bolivian"},{"Code":"BR","Country":"Brazil","ISO":"43","Nationality":"Brazilian"},{"Code":"BS","Country":"Bahamas","ISO":"61","Nationality":"Bahameese"},{"Code":"BT","Country":"Bhutan","ISO":"68","Nationality":"Bhutanese"},{"Code":"BU","Country":"Bulgaria","ISO":"44","Nationality":"Bulgarian"},{"Code":"BY","Country":"Belarus","ISO":"64","Nationality":"Belarusian"},{"Code":"BZ","Country":"Belize","ISO":"65","Nationality":"Belizean"},{"Code":"CA","Country":"Canada","ISO":"6","Nationality":"Canadian"},{"Code":"CG","Country":"Congo","ISO":"72","Nationality":"Congolese"},{"Code":"CN","Country":"China","ISO":"51","Nationality":"Chinese"},{"Code":"CH","Country":"Switzerland","ISO":"35","Nationality":"Swiss"},{"Code":"CL","Country":"Chile","ISO":"71","Nationality":"Chilean"},{"Code":"CM","Country":"Cambodia","ISO":"5","Nationality":"Cambodian"},{"Code":"CM","Country":"Cameroon","ISO":"70","Nationality":"Cameroonian"},{"Code":"CO","Country":"Columbia","ISO":"46","Nationality":"Columbian"},{"Code":"CR","Country":"Czech Republic","ISO":"50","Nationality":"Czech"},{"Code":"CR","Country":"Costa Rica","ISO":"73","Nationality":"Costa Rican"},{"Code":"CU","Country":"Cuba","ISO":"75","Nationality":"Cuban"},{"Code":"CY","Country":"Cyprus","ISO":"76","Nationality":"Cypriot"},{"Code":"DE","Country":"Germany","ISO":"10","Nationality":"German"},{"Code":"DK","Country":"Denmark","ISO":"7","Nationality":"Danish"},{"Code":"DM","Country":"Dominica","ISO":"77","Nationality":"Dominican"},{"Code":"EC","Country":"Ecuador","ISO":"78","Nationality":"Ecuadorean"},{"Code":"EE","Country":"Estonia","ISO":"79","Nationality":"Estonian"},{"Code":"EG","Country":"Egypt","ISO":"8","Nationality":"Egyptian"},{"Code":"ET","Country":"Ethiopia","ISO":"80","Nationality":"Ethiopian"},{"Code":"FI","Country":"Finland","ISO":"82","Nationality":"Finnish"},{"Code":"FJ","Country":"Fiji","ISO":"81","Nationality":"Fijian"},{"Code":"FR","Country":"France","ISO":"9","Nationality":"French"},{"Code":"GB","Country":"United Kingdom","ISO":"39","Nationality":"British"},{"Code":"GE","Country":"Georgia","ISO":"83","Nationality":"Georgian"},{"Code":"GH","Country":"Ghana","ISO":"84","Nationality":"Ghanaian"},{"Code":"GN","Country":"Guinea","ISO":"86","Nationality":"Guinean"},{"Code":"GR","Country":"Greece","ISO":"11","Nationality":"Greek"},{"Code":"GY","Country":"Guyana","ISO":"87","Nationality":"Guyanese"},{"Code":"HK","Country":"Hong Kong","ISO":"13","Nationality":"Chinese"},{"Code":"HR","Country":"Croatia","ISO":"74","Nationality":"Croatian"},{"Code":"HU","Country":"Hungary","ISO":"14","Nationality":"Hungarian"},{"Code":"ID","Country":"Indonesia","ISO":"16","Nationality":"Indonesian"},{"Code":"IE","Country":"Ireland","ISO":"90","Nationality":"Irish"},{"Code":"IN","Country":"India","ISO":"15","Nationality":"Indian"},{"Code":"IQ","Country":"Iraq","ISO":"89","Nationality":"Iraqi"},{"Code":"IR","Country":"Iran","ISO":"17","Nationality":"Iranian"},{"Code":"IS","Country":"Israel","ISO":"18","Nationality":"Israeli"},{"Code":"IS","Country":"Iceland","ISO":"88","Nationality":"Icelander"},{"Code":"IT","Country":"Italy","ISO":"19","Nationality":"Italian"},{"Code":"JM","Country":"Jamaica","ISO":"91","Nationality":"Jamaican"},{"Code":"JO","Country":"Jordan","ISO":"92","Nationality":"Jordanian"},{"Code":"JP","Country":"Japan","ISO":"20","Nationality":"Japanese"},{"Code":"KE","Country":"Kenya","ISO":"94","Nationality":"Kenyan"},{"Code":"KO","Country":"Korea","ISO":"21","Nationality":"Korean"},{"Code":"KW","Country":"Kuwait","ISO":"95","Nationality":"Kuwaiti"},{"Code":"KZ","Country":"Kazakhstan","ISO":"134","Nationality":"Kazakhstani"},{"Code":"KZ","Country":"Kazakhstan","ISO":"93","Nationality":"Kazakhstani"},{"Code":"LB","Country":"Lebanon","ISO":"96","Nationality":"Lebanese"},{"Code":"LK","Country":"Sri Lanka","ISO":"33","Nationality":"Sri Lankan"},{"Code":"LT","Country":"Lithuania","ISO":"97","Nationality":"Lithuanian"},{"Code":"LU","Country":"Luxembourg","ISO":"98","Nationality":"Luxembourger"},{"Code":"MA","Country":"Morocco","ISO":"104","Nationality":"Moroccan"},{"Code":"MC","Country":"Monaco","ISO":"102","Nationality":"Monegasque"},{"Code":"MX","Country":"Mexico","ISO":"47","Nationality":"Mexican"},{"Code":"MM","Country":"Myanmar","ISO":"105","Nationality":"Mayanmarese"},{"Code":"MN","Country":"Mongolia","ISO":"103","Nationality":"Mongolian"},{"Code":"MO","Country":"Macau","ISO":"42","Nationality":"Macau"},{"Code":"MU","Country":"Mauritius","ISO":"100","Nationality":"Mauritian"},{"Code":"MV","Country":"Maldives","ISO":"99","Nationality":"Maldivan"},{"Code":"MY","Country":"Malaysia","ISO":"22","Nationality":"Malaysian"},{"Code":"NA","Country":"Namibia","ISO":"106","Nationality":"Namibian"},{"Code":"NG","Country":"Nigeria","ISO":"108","Nationality":"Nigerian"},{"Code":"NL","Country":"Netherlands","ISO":"12","Nationality":"Dutch"},{"Code":"NO","Country":"Norway","ISO":"24","Nationality":"Norwegian"},{"Code":"NP","Country":"Nepal","ISO":"107","Nationality":"Nepalese"},{"Code":"NZ","Country":"New Zealand","ISO":"23","Nationality":"New Zealander"},{"Code":"OM","Country":"Oman","ISO":"109","Nationality":"Omani"},{"Code":"PA","Country":"Panama","ISO":"110","Nationality":"Panamanian"},{"Code":"PE","Country":"Peru","ISO":"112","Nationality":"Peruvian"},{"Code":"PH","Country":"Philippines","ISO":"27","Nationality":"Filipino"},{"Code":"PK","Country":"Pakistan","ISO":"26","Nationality":"Pakistani"},{"Code":"PO","Country":"Poland","ISO":"28","Nationality":"Polish"},{"Code":"PT","Country":"Portugal","ISO":"113","Nationality":"Portugees"},{"Code":"PY","Country":"Paraguay","ISO":"111","Nationality":"Paraguayan"},{"Code":"QA","Country":"Qatar","ISO":"115","Nationality":"Qatari"},{"Code":"RO","Country":"Romania","ISO":"48","Nationality":"Romanian"},{"Code":"RU","Country":"Russia","ISO":"29","Nationality":"Russian"},{"Code":"SA","Country":"Saudi Arabia","ISO":"116","Nationality":"Saudi Arabian"},{"Code":"SC","Country":"Seychelles","ISO":"119","Nationality":"Seychellois"},{"Code":"SE","Country":"Sweden","ISO":"34","Nationality":"Swedish"},{"Code":"SG","Country":"Singapore","ISO":"30","Nationality":"Singaporean"},{"Code":"SK","Country":"Slovakia","ISO":"120","Nationality":"Slovakian"},{"Code":"SN","Country":"Senegal","ISO":"117","Nationality":"Senegalese"},{"Code":"SO","Country":"Somalia","ISO":"121","Nationality":"Somali"},{"Code":"ES","Country":"Spain","ISO":"32","Nationality":"Spanish"},{"Code":"TH","Country":"Thailand","ISO":"37","Nationality":"Thai"},{"Code":"TN","Country":"Tunisia","ISO":"123","Nationality":"Tunisian"},{"Code":"TR","Country":"Turkey","ISO":"38","Nationality":"Turkish"},{"Code":"TW","Country":"Taiwan","ISO":"36","Nationality":"Taiwanese"},{"Code":"TZ","Country":"Tanzania","ISO":"122","Nationality":"Tanzanian"},{"Code":"UA","Country":"Ukraine","ISO":"125","Nationality":"Ukrainian"},{"Code":"UG","Country":"Uganda","ISO":"124","Nationality":"Ugandan"},{"Code":"US","Country":"United States of America","ISO":"40","Nationality":"American"},{"Code":"UY","Country":"Uruguay","ISO":"127","Nationality":"Uruguayan"},{"Code":"UZ","Country":"Uzbekistan","ISO":"128","Nationality":"Uzbekistani"},{"Code":"VE","Country":"Venezuela","ISO":"49","Nationality":"Venezuelan"},{"Code":"VN","Country":"Vietnam","ISO":"1","Nationality":"Vietnamese"},{"Code":"YE","Country":"Yemen","ISO":"130","Nationality":"Yemeni"},{"Code":"ZA","Country":"South Africa","ISO":"31","Nationality":"South African"},{"Code":"ZM","Country":"Zambia","ISO":"131","Nationality":"Zambian"},{"Code":"ZW","Country":"Zimbabwe","ISO":"132","Nationality":"Zimbabwean"}]')}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var a=e[n]={exports:{}};return t[n].call(a.exports,a,a.exports,i),a.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(607)})(); \ No newline at end of file +`},98:(t,e)=>{var i,n;Object.defineProperty(e,"__esModule",{value:!0}),e.FormulaOneCardType=e.PreviousRaceDisplay=void 0,(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"},593:(t,e,i)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getDriverName=e.getCircuitName=e.getCountryFlagUrl=e.checkConfig=e.getCountryFlagByName=e.getCountryFlagByNationality=e.hasConfigOrEntitiesChanged=void 0;const n=i(634);e.hasConfigOrEntitiesChanged=(t,e)=>{if(e.has("config"))return!0;const i=e.get("_hass");return!!i&&i.states[t.sensor]!==t.hass.states[t.sensor]},e.getCountryFlagByNationality=t=>{const i=n.filter((e=>e.Nationality===t))[0];return(0,e.getCountryFlagUrl)(i.Code)},e.getCountryFlagByName=t=>{const i=n.filter((e=>e.Country===t))[0];return(0,e.getCountryFlagUrl)(i.Code)},e.checkConfig=t=>{if(void 0===t.card_type)throw new Error("Please define FormulaOne card type (card_type).");if(void 0===t.sensor)throw new Error("Please define FormulaOne sensor.")},e.getCountryFlagUrl=t=>{const e=[{countryCode:"USA",corrected:"US"},{countryCode:"UAE",corrected:"AE"}].filter((e=>e.countryCode==t));return e.length>0&&(t=e[0].corrected),`https://flagcdn.com/w40/${t.toLowerCase()}.png`},e.getCircuitName=t=>{const e=[{countryDashed:"UAE",name:"Abu_Dhabi"}].filter((e=>e.countryDashed==t));return e.length>0&&(t=e[0].name),t},e.getDriverName=(t,e)=>{const i="VER"==t.code?1:t.permanentNumber;return`${t.givenName} ${t.familyName}${e.show_carnumber?` #${i}`:""}`}},692:(t,e,i)=>{var n;i.r(e),i.d(e,{_$LH:()=>H,html:()=>w,noChange:()=>N,nothing:()=>O,render:()=>I,svg:()=>$});const r=window,a=r.trustedTypes,o=a?a.createPolicy("lit-html",{createHTML:t=>t}):void 0,s=`lit$${(Math.random()+"").slice(9)}$`,l="?"+s,c=`<${l}>`,u=document,d=(t="")=>u.createComment(t),h=t=>null===t||"object"!=typeof t&&"function"!=typeof t,m=Array.isArray,y=t=>m(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]),p=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,f=/-->/g,g=/>/g,v=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),_=/'/g,C=/"/g,b=/^(?:script|style|textarea|title)$/i,S=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),w=S(1),$=S(2),N=Symbol.for("lit-noChange"),O=Symbol.for("lit-nothing"),A=new WeakMap,I=(t,e,i)=>{var n,r;const a=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let o=a._$litPart$;if(void 0===o){const t=null!==(r=null==i?void 0:i.renderBefore)&&void 0!==r?r:null;a._$litPart$=o=new M(e.insertBefore(d(),t),t,void 0,null!=i?i:{})}return o._$AI(t),o},E=u.createTreeWalker(u,129,null,!1),T=(t,e)=>{const i=t.length-1,n=[];let r,a=2===e?"":"",l=p;for(let e=0;e"===u[0]?(l=null!=r?r:p,d=-1):void 0===u[1]?d=-2:(d=l.lastIndex-u[2].length,o=u[1],l=void 0===u[3]?v:'"'===u[3]?C:_):l===C||l===_?l=v:l===f||l===g?l=p:(l=v,r=void 0);const m=l===v&&t[e+1].startsWith("/>")?" ":"";a+=l===p?i+c:d>=0?(n.push(o),i.slice(0,d)+"$lit$"+i.slice(d)+s+m):i+s+(-2===d?(n.push(void 0),e):m)}const u=a+(t[i]||"")+(2===e?"":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==o?o.createHTML(u):u,n]};class x{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const c=t.length-1,u=this.parts,[h,m]=T(t,e);if(this.el=x.createElement(h,i),E.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=E.nextNode())&&u.length0){n.textContent=a?a.emptyScript:"";for(let i=0;i2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=O}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let a=!1;if(void 0===r)t=k(this,t,e,0),a=!h(t)||t!==this._$AH&&t!==N,a&&(this._$AH=t);else{const n=t;let o,s;for(t=r[0],o=0;o{i.r(e),i.d(e,{customElement:()=>n,eventOptions:()=>l,property:()=>a,query:()=>c,queryAll:()=>u,queryAssignedElements:()=>y,queryAssignedNodes:()=>p,queryAsync:()=>d,state:()=>o});const n=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),r=(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 a(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):r(t,e)}function o(t){return a({...t,state:!0})}const s=({finisher:t,descriptor:e})=>(i,n)=>{var r;if(void 0===n){const n=null!==(r=i.originalKey)&&void 0!==r?r:i.key,a=null!=e?{kind:"method",placement:"prototype",key:n,descriptor:e(i.key)}:{...i,key:n};return null!=t&&(a.finisher=function(e){t(e,n)}),a}{const r=i.constructor;void 0!==e&&Object.defineProperty(i,n,e(n)),null==t||t(r,n)}};function l(t){return s({finisher:(e,i)=>{Object.assign(e.prototype[i],t)}})}function c(t,e){return s({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 u(t){return s({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 d(t){return s({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 m=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 y(t){const{slot:e,selector:i}=null!=t?t:{};return s({descriptor:n=>({get(){var n;const r="slot"+(e?`[name=${e}]`:":not([name])"),a=null===(n=this.renderRoot)||void 0===n?void 0:n.querySelector(r),o=null!=a?m(a,t):[];return i?o.filter((t=>t.matches(i))):o},enumerable:!0,configurable:!0})})}function p(t,e,i){let n,r=t;return"object"==typeof t?(r=t.slot,n=t):n={flatten:e},i?y({slot:r,flatten:e,selector:i}):s({descriptor:t=>({get(){var t,e;const i="slot"+(r?`[name=${r}]`:":not([name])"),a=null===(t=this.renderRoot)||void 0===t?void 0:t.querySelector(i);return null!==(e=null==a?void 0:a.assignedNodes(n))&&void 0!==e?e:[]},enumerable:!0,configurable:!0})})}},392:(t,e,i)=>{i.r(e),i.d(e,{CSSResult:()=>s,LitElement:()=>N,ReactiveElement:()=>C,UpdatingElement:()=>$,_$LE:()=>A,_$LH:()=>w._$LH,adoptStyles:()=>u,css:()=>c,defaultConverter:()=>g,getCompatibleStyle:()=>d,html:()=>w.html,noChange:()=>w.noChange,notEqual:()=>v,nothing:()=>w.nothing,render:()=>w.render,supportsAdoptingStyleSheets:()=>r,svg:()=>w.svg,unsafeCSS:()=>l});const n=window,r=n.ShadowRoot&&(void 0===n.ShadyCSS||n.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,a=Symbol(),o=new WeakMap;class s{constructor(t,e,i){if(this._$cssResult$=!0,i!==a)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=o.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&o.set(e,t))}return t}toString(){return this.cssText}}const l=t=>new s("string"==typeof t?t:t+"",void 0,a),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 s(i,t,a)},u=(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)}))},d=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,y=m.trustedTypes,p=y?y.emptyScript:"",f=m.reactiveElementPolyfillSupport,g={toAttribute(t,e){switch(e){case Boolean:t=t?p: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}},v=(t,e)=>e!==t&&(e==e||t==t),_={attribute:!0,type:String,converter:g,reflect:!1,hasChanged:v};class C extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;null!==(e=this.h)&&void 0!==e||(this.h=[]),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(),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(d(t))}else void 0!==t&&e.push(d(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 u(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 a=(void 0!==(null===(n=i.converter)||void 0===n?void 0:n.toAttribute)?i.converter:g).toAttribute(e,i.type);this._$El=t,null==a?this.removeAttribute(r):this.setAttribute(r,a),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),a="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(i=t.converter)||void 0===i?void 0:i.fromAttribute)?t.converter:g;this._$El=r,this[r]=a.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,i){let n=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||v)(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){}}C.finalized=!0,C.elementProperties=new Map,C.elementStyles=[],C.shadowRootOptions={mode:"open"},null==f||f({ReactiveElement:C}),(null!==(h=m.reactiveElementVersions)&&void 0!==h?h:m.reactiveElementVersions=[]).push("1.4.1");var b,S,w=i(692);const $=C;class N extends C{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,w.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 w.noChange}}N.finalized=!0,N._$litElement$=!0,null===(b=globalThis.litElementHydrateSupport)||void 0===b||b.call(globalThis,{LitElement:N});const O=globalThis.litElementPolyfillSupport;null==O||O({LitElement:N});const A={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(S=globalThis.litElementVersions)&&void 0!==S?S:globalThis.litElementVersions=[]).push("3.2.2")},147:t=>{t.exports=JSON.parse('{"name":"formulaone-card","version":"0.2.2","description":"Frontend card for hass-formulaoneapi","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"},"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.1.1","@typescript-eslint/eslint-plugin":"^5.39.0","@typescript-eslint/parser":"^5.39.0","eslint":"^8.24.0","home-assistant-js-websocket":"^8.0.0","lit":"^2.3.1","typescript":"^4.8.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"dependencies":{"@babel/plugin-transform-runtime":"^7.19.1","@babel/preset-env":"^7.19.3","@lit-labs/scoped-registry-mixin":"^1.0.1","babel-jest":"^29.1.2","compression-webpack-plugin":"^10.0.0","custom-card-helpers":"^1.9.0","jest-environment-jsdom":"^29.1.2","jest-ts-auto-mock":"^2.1.0","ts-auto-mock":"^3.6.2","ts-jest":"^29.0.3","ts-loader":"^9.4.1","ttypescript":"^1.5.13","yarn":"^1.22.19"}}')},634:t=>{t.exports=JSON.parse('[{"Code":"AD","Country":"Andorra","ISO":"53","Nationality":"Andorian"},{"Code":"AE","Country":"United Arab Emirates","ISO":"126","Nationality":"Emirian"},{"Code":"AF","Country":"Afghanistan","ISO":"133","Nationality":"Afghani"},{"Code":"AI","Country":"Anguilla","ISO":"55","Nationality":"Anguillan"},{"Code":"AM","Country":"Armenia","ISO":"58","Nationality":"Armenian"},{"Code":"AO","Country":"Angola","ISO":"54","Nationality":"Angolian"},{"Code":"AQ","Country":"Antarctica","ISO":"55","Nationality":"Antarctic"},{"Code":"AR","Country":"Argentina","ISO":"57","Nationality":"Argentine"},{"Code":"AS","Country":"Austria","ISO":"3","Nationality":"Austrian"},{"Code":"AU","Country":"Australia","ISO":"2","Nationality":"Australian"},{"Code":"AW","Country":"Aruba","ISO":"59","Nationality":"Arubian"},{"Code":"BA","Country":"Bangladesh","ISO":"45","Nationality":"Bangladeshi"},{"Code":"BB","Country":"Barbados","ISO":"63","Nationality":"Barbadian"},{"Code":"BE","Country":"Belgium","ISO":"4","Nationality":"Belgian"},{"Code":"BH","Country":"Bahrain","ISO":"62","Nationality":"Bahrainian"},{"Code":"BM","Country":"Bermuda","ISO":"67","Nationality":"Bermuda"},{"Code":"BO","Country":"Bolivia","ISO":"69","Nationality":"Bolivian"},{"Code":"BR","Country":"Brazil","ISO":"43","Nationality":"Brazilian"},{"Code":"BS","Country":"Bahamas","ISO":"61","Nationality":"Bahameese"},{"Code":"BT","Country":"Bhutan","ISO":"68","Nationality":"Bhutanese"},{"Code":"BU","Country":"Bulgaria","ISO":"44","Nationality":"Bulgarian"},{"Code":"BY","Country":"Belarus","ISO":"64","Nationality":"Belarusian"},{"Code":"BZ","Country":"Belize","ISO":"65","Nationality":"Belizean"},{"Code":"CA","Country":"Canada","ISO":"6","Nationality":"Canadian"},{"Code":"CG","Country":"Congo","ISO":"72","Nationality":"Congolese"},{"Code":"CN","Country":"China","ISO":"51","Nationality":"Chinese"},{"Code":"CH","Country":"Switzerland","ISO":"35","Nationality":"Swiss"},{"Code":"CL","Country":"Chile","ISO":"71","Nationality":"Chilean"},{"Code":"CM","Country":"Cambodia","ISO":"5","Nationality":"Cambodian"},{"Code":"CM","Country":"Cameroon","ISO":"70","Nationality":"Cameroonian"},{"Code":"CO","Country":"Columbia","ISO":"46","Nationality":"Columbian"},{"Code":"CR","Country":"Czech Republic","ISO":"50","Nationality":"Czech"},{"Code":"CR","Country":"Costa Rica","ISO":"73","Nationality":"Costa Rican"},{"Code":"CU","Country":"Cuba","ISO":"75","Nationality":"Cuban"},{"Code":"CY","Country":"Cyprus","ISO":"76","Nationality":"Cypriot"},{"Code":"DE","Country":"Germany","ISO":"10","Nationality":"German"},{"Code":"DK","Country":"Denmark","ISO":"7","Nationality":"Danish"},{"Code":"DM","Country":"Dominica","ISO":"77","Nationality":"Dominican"},{"Code":"EC","Country":"Ecuador","ISO":"78","Nationality":"Ecuadorean"},{"Code":"EE","Country":"Estonia","ISO":"79","Nationality":"Estonian"},{"Code":"EG","Country":"Egypt","ISO":"8","Nationality":"Egyptian"},{"Code":"ET","Country":"Ethiopia","ISO":"80","Nationality":"Ethiopian"},{"Code":"FI","Country":"Finland","ISO":"82","Nationality":"Finnish"},{"Code":"FJ","Country":"Fiji","ISO":"81","Nationality":"Fijian"},{"Code":"FR","Country":"France","ISO":"9","Nationality":"French"},{"Code":"GB","Country":"United Kingdom","ISO":"39","Nationality":"British"},{"Code":"GE","Country":"Georgia","ISO":"83","Nationality":"Georgian"},{"Code":"GH","Country":"Ghana","ISO":"84","Nationality":"Ghanaian"},{"Code":"GN","Country":"Guinea","ISO":"86","Nationality":"Guinean"},{"Code":"GR","Country":"Greece","ISO":"11","Nationality":"Greek"},{"Code":"GY","Country":"Guyana","ISO":"87","Nationality":"Guyanese"},{"Code":"HK","Country":"Hong Kong","ISO":"13","Nationality":"Chinese"},{"Code":"HR","Country":"Croatia","ISO":"74","Nationality":"Croatian"},{"Code":"HU","Country":"Hungary","ISO":"14","Nationality":"Hungarian"},{"Code":"ID","Country":"Indonesia","ISO":"16","Nationality":"Indonesian"},{"Code":"IE","Country":"Ireland","ISO":"90","Nationality":"Irish"},{"Code":"IN","Country":"India","ISO":"15","Nationality":"Indian"},{"Code":"IQ","Country":"Iraq","ISO":"89","Nationality":"Iraqi"},{"Code":"IR","Country":"Iran","ISO":"17","Nationality":"Iranian"},{"Code":"IS","Country":"Israel","ISO":"18","Nationality":"Israeli"},{"Code":"IS","Country":"Iceland","ISO":"88","Nationality":"Icelander"},{"Code":"IT","Country":"Italy","ISO":"19","Nationality":"Italian"},{"Code":"JM","Country":"Jamaica","ISO":"91","Nationality":"Jamaican"},{"Code":"JO","Country":"Jordan","ISO":"92","Nationality":"Jordanian"},{"Code":"JP","Country":"Japan","ISO":"20","Nationality":"Japanese"},{"Code":"KE","Country":"Kenya","ISO":"94","Nationality":"Kenyan"},{"Code":"KO","Country":"Korea","ISO":"21","Nationality":"Korean"},{"Code":"KW","Country":"Kuwait","ISO":"95","Nationality":"Kuwaiti"},{"Code":"KZ","Country":"Kazakhstan","ISO":"134","Nationality":"Kazakhstani"},{"Code":"KZ","Country":"Kazakhstan","ISO":"93","Nationality":"Kazakhstani"},{"Code":"LB","Country":"Lebanon","ISO":"96","Nationality":"Lebanese"},{"Code":"LK","Country":"Sri Lanka","ISO":"33","Nationality":"Sri Lankan"},{"Code":"LT","Country":"Lithuania","ISO":"97","Nationality":"Lithuanian"},{"Code":"LU","Country":"Luxembourg","ISO":"98","Nationality":"Luxembourger"},{"Code":"MA","Country":"Morocco","ISO":"104","Nationality":"Moroccan"},{"Code":"MC","Country":"Monaco","ISO":"102","Nationality":"Monegasque"},{"Code":"MX","Country":"Mexico","ISO":"47","Nationality":"Mexican"},{"Code":"MM","Country":"Myanmar","ISO":"105","Nationality":"Mayanmarese"},{"Code":"MN","Country":"Mongolia","ISO":"103","Nationality":"Mongolian"},{"Code":"MO","Country":"Macau","ISO":"42","Nationality":"Macau"},{"Code":"MU","Country":"Mauritius","ISO":"100","Nationality":"Mauritian"},{"Code":"MV","Country":"Maldives","ISO":"99","Nationality":"Maldivan"},{"Code":"MY","Country":"Malaysia","ISO":"22","Nationality":"Malaysian"},{"Code":"NA","Country":"Namibia","ISO":"106","Nationality":"Namibian"},{"Code":"NG","Country":"Nigeria","ISO":"108","Nationality":"Nigerian"},{"Code":"NL","Country":"Netherlands","ISO":"12","Nationality":"Dutch"},{"Code":"NO","Country":"Norway","ISO":"24","Nationality":"Norwegian"},{"Code":"NP","Country":"Nepal","ISO":"107","Nationality":"Nepalese"},{"Code":"NZ","Country":"New Zealand","ISO":"23","Nationality":"New Zealander"},{"Code":"OM","Country":"Oman","ISO":"109","Nationality":"Omani"},{"Code":"PA","Country":"Panama","ISO":"110","Nationality":"Panamanian"},{"Code":"PE","Country":"Peru","ISO":"112","Nationality":"Peruvian"},{"Code":"PH","Country":"Philippines","ISO":"27","Nationality":"Filipino"},{"Code":"PK","Country":"Pakistan","ISO":"26","Nationality":"Pakistani"},{"Code":"PO","Country":"Poland","ISO":"28","Nationality":"Polish"},{"Code":"PT","Country":"Portugal","ISO":"113","Nationality":"Portugees"},{"Code":"PY","Country":"Paraguay","ISO":"111","Nationality":"Paraguayan"},{"Code":"QA","Country":"Qatar","ISO":"115","Nationality":"Qatari"},{"Code":"RO","Country":"Romania","ISO":"48","Nationality":"Romanian"},{"Code":"RU","Country":"Russia","ISO":"29","Nationality":"Russian"},{"Code":"SA","Country":"Saudi Arabia","ISO":"116","Nationality":"Saudi Arabian"},{"Code":"SC","Country":"Seychelles","ISO":"119","Nationality":"Seychellois"},{"Code":"SE","Country":"Sweden","ISO":"34","Nationality":"Swedish"},{"Code":"SG","Country":"Singapore","ISO":"30","Nationality":"Singaporean"},{"Code":"SK","Country":"Slovakia","ISO":"120","Nationality":"Slovakian"},{"Code":"SN","Country":"Senegal","ISO":"117","Nationality":"Senegalese"},{"Code":"SO","Country":"Somalia","ISO":"121","Nationality":"Somali"},{"Code":"ES","Country":"Spain","ISO":"32","Nationality":"Spanish"},{"Code":"TH","Country":"Thailand","ISO":"37","Nationality":"Thai"},{"Code":"TN","Country":"Tunisia","ISO":"123","Nationality":"Tunisian"},{"Code":"TR","Country":"Turkey","ISO":"38","Nationality":"Turkish"},{"Code":"TW","Country":"Taiwan","ISO":"36","Nationality":"Taiwanese"},{"Code":"TZ","Country":"Tanzania","ISO":"122","Nationality":"Tanzanian"},{"Code":"UA","Country":"Ukraine","ISO":"125","Nationality":"Ukrainian"},{"Code":"UG","Country":"Uganda","ISO":"124","Nationality":"Ugandan"},{"Code":"US","Country":"United States of America","ISO":"40","Nationality":"American"},{"Code":"UY","Country":"Uruguay","ISO":"127","Nationality":"Uruguayan"},{"Code":"UZ","Country":"Uzbekistan","ISO":"128","Nationality":"Uzbekistani"},{"Code":"VE","Country":"Venezuela","ISO":"49","Nationality":"Venezuelan"},{"Code":"VN","Country":"Vietnam","ISO":"1","Nationality":"Vietnamese"},{"Code":"YE","Country":"Yemen","ISO":"130","Nationality":"Yemeni"},{"Code":"ZA","Country":"South Africa","ISO":"31","Nationality":"South African"},{"Code":"ZM","Country":"Zambia","ISO":"131","Nationality":"Zambian"},{"Code":"ZW","Country":"Zimbabwe","ISO":"132","Nationality":"Zimbabwean"}]')}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var a=e[n]={exports:{}};return t[n].call(a.exports,a,a.exports,i),a.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(607)})(); \ No newline at end of file diff --git a/formulaone-card.js.gz b/formulaone-card.js.gz index 7c1fc31df5f22a67922eb9819800cc1538bb4075..a2602dcd71fb2285995c79349fb1dbeb0179fc8a 100644 GIT binary patch literal 20106 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 v-Yat)OqOF { - const country = countries.filter(x => x.Nationality === nationality)[0]; - - return getCountryFlagUrl(country.Code); - } renderStandingRow(standing: DriverStanding): HTMLTemplateResult { return html` - + ${(this.config.standings?.show_team ? html`` : '')} diff --git a/src/cards/last-result.ts b/src/cards/last-result.ts index 3ba0f10..4d5128e 100644 --- a/src/cards/last-result.ts +++ b/src/cards/last-result.ts @@ -1,7 +1,7 @@ import { HomeAssistant } from "custom-card-helpers"; import { html, HTMLTemplateResult } from "lit-html"; import { FormulaOneCardConfig, Race, Result } from "../types/formulaone-card-types"; -import { getCircuitName, getCountryFlagUrl, getDriverName } from "../utils"; +import { getCircuitName, getCountryFlagByName, getDriverName } from "../utils"; import { BaseCard } from "./base-card"; export default class LastResult extends BaseCard { @@ -46,7 +46,7 @@ export default class LastResult extends BaseCard { const imageHtml = html``; const imageWithLinkHtml = this.config.image_clickable ? html`${imageHtml}` : imageHtml; - return html`

  ${data.round} : ${data.raceName}

${imageWithLinkHtml}
` + return html`

  ${data.round} : ${data.raceName}

${imageWithLinkHtml}
` } render() : HTMLTemplateResult { diff --git a/src/cards/next-race.ts b/src/cards/next-race.ts index 9c851c0..36bdbe6 100644 --- a/src/cards/next-race.ts +++ b/src/cards/next-race.ts @@ -3,7 +3,7 @@ import { html, HTMLTemplateResult } from "lit-html"; import { formatDateNumeric } from "../lib/format_date"; import { formatDateTimeRaceInfo } from "../lib/format_date_time"; import { FormulaOneCardConfig, Race } from "../types/formulaone-card-types"; -import { getCircuitName, getCountryFlagUrl } from "../utils"; +import { getCircuitName, getCountryFlagByName } from "../utils"; import { BaseCard } from "./base-card"; export default class NextRace extends BaseCard { @@ -50,7 +50,7 @@ export default class NextRace extends BaseCard { const imageHtml = html``; const imageWithLinkHtml = this.config.image_clickable ? html`${imageHtml}` : imageHtml; - return html`

  ${this.next_race.round} : ${this.next_race.raceName}

${imageWithLinkHtml}
` + return html`

  ${this.next_race.round} : ${this.next_race.raceName}

${imageWithLinkHtml}
` } renderSeasonEnded(): HTMLTemplateResult { diff --git a/src/utils.ts b/src/utils.ts index 63bdb8a..cb9d7a3 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,6 +1,7 @@ import { HomeAssistant } from "custom-card-helpers"; import { PropertyValues } from "lit"; import { Driver, FormulaOneCardConfig } from "./types/formulaone-card-types"; +import * as countries from './data/countries.json'; export const hasConfigOrEntitiesChanged = (node: FormulaOneCardConfig, changedProps: PropertyValues) => { if (changedProps.has('config')) { @@ -14,6 +15,18 @@ export const hasConfigOrEntitiesChanged = (node: FormulaOneCardConfig, changedPr return false; }; +export const getCountryFlagByNationality = (nationality: string) => { + const country = countries.filter(x => x.Nationality === nationality)[0]; + + return getCountryFlagUrl(country.Code); +} + +export const getCountryFlagByName = (countryName: string) => { + const country = countries.filter(x => x.Country === countryName)[0]; + + return getCountryFlagUrl(country.Code); +} + export const checkConfig = (config: FormulaOneCardConfig) => { if (config.card_type === undefined) { throw new Error('Please define FormulaOne card type (card_type).'); diff --git a/tests/cards/last-result.test.ts b/tests/cards/last-result.test.ts index a86b937..9b4cd51 100644 --- a/tests/cards/last-result.test.ts +++ b/tests/cards/last-result.test.ts @@ -40,7 +40,7 @@ describe('Testing last-result file', () => { const result = card.render(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('
${standing.position}${(this.config.standings?.show_flag ? html` ` : '')}${standing.Driver.code}${(this.config.standings?.show_flag ? html` ` : '')}${standing.Driver.code} ${getDriverName(standing.Driver, this.config)}${standing.Constructors[0].name}${standing.points}

  17 : Singapore Grand Prix


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

  17 : Singapore Grand Prix


  Driver Grid Points Status
1 Sergio Pérez 2 25 Finished
2 Charles Leclerc 1 18 Finished
3 Carlos Sainz 4 15 Finished
4 Lando Norris 6 12 Finished
5 Daniel Ricciardo 16 10 Finished
6 Lance Stroll 11 8 Finished
7 Max Verstappen 8 6 Finished
8 Sebastian Vettel 13 4 Finished
9 Lewis Hamilton 3 2 Finished
10 Pierre Gasly 7 1 Finished
11 Valtteri Bottas 15 0 Finished
12 Kevin Magnussen 9 0 Finished
13 Mick Schumacher 12 0 +1 Lap
14 George Russell 0 0 +2 Laps
15 Yuki Tsunoda 10 0 Accident
16 Esteban Ocon 17 0 Engine
17 Alexander Albon 18 0 Collision damage
18 Fernando Alonso 5 0 Engine
19 Nicholas Latifi 19 0 Collision damage
20 Guanyu Zhou 14 0 Collision
'); }), test('Calling renderHeader with hass and wrong sensor', () => { hass.states = { @@ -53,7 +53,7 @@ describe('Testing last-result file', () => { const result = card.renderHeader(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  17 : Singapore Grand Prix


'); + expect(htmlResult).toMatch('

  17 : Singapore Grand Prix


'); }), test('Calling renderHeader clickable image with hass and wrong sensor', () => { hass.states = { @@ -66,7 +66,7 @@ describe('Testing last-result file', () => { const result = card.renderHeader(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  17 : Singapore Grand Prix


'); + expect(htmlResult).toMatch('

  17 : Singapore Grand Prix


'); }), test('Calling cardSize with hass and sensor', () => { diff --git a/tests/cards/next-race.test.ts b/tests/cards/next-race.test.ts index 0c4e9c3..366d7c2 100644 --- a/tests/cards/next-race.test.ts +++ b/tests/cards/next-race.test.ts @@ -46,7 +46,7 @@ describe('Testing next-race file', () => { const result = card.render(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


Date20-03-22 Practice 1vr 13:00
Race1 Practice 2vr 16:00
Race nameBahrain Grand Prix Practice 3za 13:00
Circuit nameBahrain International Circuit Qualifyingza 16:00
LocationBahrain Sprint-
CitySakhir Racezo 16:00
'); + expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


Date20-03-22 Practice 1vr 13:00
Race1 Practice 2vr 16:00
Race nameBahrain Grand Prix Practice 3za 13:00
Circuit nameBahrain International Circuit Qualifyingza 16:00
LocationBahrain Sprint-
CitySakhir Racezo 16:00
'); }), test('Calling renderHeader with hass and wrong sensor', () => { hass.states = { @@ -59,7 +59,7 @@ describe('Testing next-race file', () => { const result = card.renderHeader(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


'); + expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


'); }), test('Calling renderHeader clickable image with hass and wrong sensor', () => { hass.states = { @@ -72,7 +72,7 @@ describe('Testing next-race file', () => { const result = card.renderHeader(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


'); + expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


'); }), test('Calling render without Qualifying with hass and sensor', () => { const raceData = data as Race; @@ -86,7 +86,7 @@ describe('Testing next-race file', () => { const result = card.render(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


Date20-03-22 Practice 1vr 13:00
Race1 Practice 2vr 16:00
Race nameBahrain Grand Prix Practice 3za 13:00
Circuit nameBahrain International Circuit Qualifying-
LocationBahrain Sprint-
CitySakhir Racezo 16:00
'); + expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


Date20-03-22 Practice 1vr 13:00
Race1 Practice 2vr 16:00
Race nameBahrain Grand Prix Practice 3za 13:00
Circuit nameBahrain International Circuit Qualifying-
LocationBahrain Sprint-
CitySakhir Racezo 16:00
'); }), test('Calling render with Sprint with hass and sensor', () => { const raceData = data as Race; @@ -104,7 +104,7 @@ describe('Testing next-race file', () => { const result = card.render(); const htmlResult = getRenderString(result); - expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


Date20-03-22 Practice 1vr 13:00
Race1 Practice 2vr 16:00
Race nameBahrain Grand Prix Practice 3-
Circuit nameBahrain International Circuit Qualifying-
LocationBahrain Sprintzo 10:00
CitySakhir Racezo 16:00
'); + expect(htmlResult).toMatch('

  1 : Bahrain Grand Prix


Date20-03-22 Practice 1vr 13:00
Race1 Practice 2vr 16:00
Race nameBahrain Grand Prix Practice 3-
Circuit nameBahrain International Circuit Qualifying-
LocationBahrain Sprintzo 10:00
CitySakhir Racezo 16:00
'); }), test('Calling render with hass and sensor when season ended', () => { hassEntity.attributes['next_race'] = null; diff --git a/tests/utils/getCountryFlagUrl.test.ts b/tests/utils/getCountryFlagUrl.test.ts index d24cc3d..17e4221 100644 --- a/tests/utils/getCountryFlagUrl.test.ts +++ b/tests/utils/getCountryFlagUrl.test.ts @@ -1,6 +1,8 @@ -import { getCountryFlagUrl } from '../../src/utils'; +import { getCountryFlagByName, getCountryFlagByNationality, getCountryFlagUrl } from '../../src/utils'; +import * as countries from '../../src/data/countries.json'; describe('Testing util file function getCountryFlagUrl', () => { + test('Passing Japan should return expected flag url', () => { expect(getCountryFlagUrl('Japan')).toBe('https://flagcdn.com/w40/japan.png') }), @@ -13,4 +15,18 @@ describe('Testing util file function getCountryFlagUrl', () => { test('Passing Saudi Arabia should return expected flag url', () => { expect(getCountryFlagUrl('Saudi-Arabia')).toBe('https://flagcdn.com/w40/saudi-arabia.png') }) + + countries.forEach(country => { + if(country.Code == "HK") { + country.Code = "CN"; + } + + test(`Passing ${country.Nationality} to getCountryFlagByNationality should return correct flag url`, () => { + expect(getCountryFlagByNationality(country.Nationality)).toBe(`https://flagcdn.com/w40/${country.Code.toLowerCase()}.png`) + }) + + test(`Passing ${country.Country} to getCountryFlagByName should return correct flag url`, () => { + expect(getCountryFlagByName(country.Country)).toBe(`https://flagcdn.com/w40/${country.Code.toLowerCase()}.png`) + }) + }); }) \ No newline at end of file