{"version":3,"file":"transportation-D-co3YUk.js","sources":["../../src/scripts/modules/transportation.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport { ConditionalDisplay } from '../helpers/global';\nimport { ReplaceHeading } from '../helpers/global';\n\nclass Transportation extends Component {\n setupDefaults() {\n this.dom = {\n barWrapper: this.el.querySelectorAll('.v-transportation__bar-wrapper'),\n smBar: this.el.querySelectorAll('.v-transportation__sm-bar-wrapper'),\n heading: this.el.querySelectorAll('.v-transportation__heading')\n };\n if (ConditionalDisplay(this.el.id)) {\n this.el.style.display = 'none';\n }\n this.updateBarValues();\n this.updateSmBarValues();\n\n (this.dom.heading as NodeListOf).forEach(heading => {\n ReplaceHeading(heading);\n });\n\n const mobileQuery = window.matchMedia('(max-width: 767px)');\n\n mobileQuery.addEventListener('change', () => this.updateSmBarValues());\n }\n\n updateBarValues() {\n (this.dom.barWrapper as NodeListOf).forEach(bar => {\n const value = bar.querySelector('.v-transportation__bar-value') as HTMLElement;\n const barFill = bar.querySelector('.v-transportation__progress-bar');\n if (barFill && value) {\n (barFill as HTMLElement).style.setProperty(\n 'inset-inline-end',\n `calc(100% - ${value.innerText})`\n );\n }\n });\n }\n\n capitalizeFirstLetter(text: string) {\n return text\n .split(' ')\n .map(word => {\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n })\n .join(' ');\n }\n\n updateSmBarValues() {\n const mobile = window.innerWidth < 768;\n let largestValue = 0;\n const miles = document.body.dataset.metric === 'miles' ? true : false;\n (this.dom.smBar as NodeListOf).forEach(bar => {\n const value = bar.querySelector('.v-transportation__sm-value');\n if (!value) return;\n\n const valueInt = parseInt(value.innerHTML.replace(/[^0-9.-]+/g, ''));\n\n if (miles) {\n value.innerHTML = `${(valueInt * 0.621371).toFixed(1)} mi`;\n } else {\n const heading = bar.querySelector('.v-transportation__bar-heading');\n if (heading) {\n heading.textContent = this.capitalizeFirstLetter(heading.textContent as string);\n }\n }\n if (valueInt > largestValue) {\n largestValue = valueInt;\n }\n });\n\n (this.dom.smBar as NodeListOf).forEach(bar => {\n const value = bar.querySelector('.v-transportation__sm-value');\n if (!value) return;\n const valueInt = parseInt(value.innerHTML.replace(/[^0-9.-]+/g, ''));\n let percentage = 0;\n\n if (miles) {\n percentage = (valueInt / 0.621371 / largestValue) * (mobile ? 80 : 60);\n } else {\n percentage = (valueInt / largestValue) * (mobile ? 80 : 60);\n }\n const barFill = bar.querySelector('.v-transportation__bar');\n if (barFill && percentage) {\n (barFill as HTMLElement).style.setProperty('flex-basis', `${percentage}%`);\n }\n });\n }\n}\n\nexport default Transportation;\n"],"names":["Transportation","Component","ConditionalDisplay","heading","ReplaceHeading","bar","value","barFill","text","word","mobile","largestValue","miles","valueInt","percentage"],"mappings":"qFAIA,MAAMA,UAAuBC,CAAU,CACrC,eAAgB,CACd,KAAK,IAAM,CACT,WAAY,KAAK,GAAG,iBAAiB,gCAAgC,EACrE,MAAO,KAAK,GAAG,iBAAiB,mCAAmC,EACnE,QAAS,KAAK,GAAG,iBAAiB,4BAA4B,CAAA,EAE5DC,EAAmB,KAAK,GAAG,EAAE,IAC1B,KAAA,GAAG,MAAM,QAAU,QAE1B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEtB,KAAK,IAAI,QAAoC,QAAmBC,GAAA,CAC/DC,EAAeD,CAAO,CAAA,CACvB,EAEmB,OAAO,WAAW,oBAAoB,EAE9C,iBAAiB,SAAU,IAAM,KAAK,kBAAmB,CAAA,CACvE,CAEA,iBAAkB,CACf,KAAK,IAAI,WAAuC,QAAeE,GAAA,CACxD,MAAAC,EAAQD,EAAI,cAAc,8BAA8B,EACxDE,EAAUF,EAAI,cAAc,iCAAiC,EAC/DE,GAAWD,GACZC,EAAwB,MAAM,YAC7B,mBACA,eAAeD,EAAM,SAAS,GAAA,CAElC,CACD,CACH,CAEA,sBAAsBE,EAAc,CAClC,OAAOA,EACJ,MAAM,GAAG,EACT,IAAYC,GACJA,EAAK,OAAO,CAAC,EAAE,YAAA,EAAgBA,EAAK,MAAM,CAAC,EAAE,aACrD,EACA,KAAK,GAAG,CACb,CAEA,mBAAoB,CACZ,MAAAC,EAAS,OAAO,WAAa,IACnC,IAAIC,EAAe,EACnB,MAAMC,EAAQ,SAAS,KAAK,QAAQ,SAAW,QAC9C,KAAK,IAAI,MAAkC,QAAeP,GAAA,CACnD,MAAAC,EAAQD,EAAI,cAAc,6BAA6B,EAC7D,GAAI,CAACC,EAAO,OAEZ,MAAMO,EAAW,SAASP,EAAM,UAAU,QAAQ,aAAc,EAAE,CAAC,EAEnE,GAAIM,EACFN,EAAM,UAAY,IAAIO,EAAW,SAAU,QAAQ,CAAC,CAAC,UAChD,CACC,MAAAV,EAAUE,EAAI,cAAc,gCAAgC,EAC9DF,IACFA,EAAQ,YAAc,KAAK,sBAAsBA,EAAQ,WAAqB,EAElF,CACIU,EAAWF,IACEA,EAAAE,EACjB,CACD,EAEA,KAAK,IAAI,MAAkC,QAAeR,GAAA,CACnD,MAAAC,EAAQD,EAAI,cAAc,6BAA6B,EAC7D,GAAI,CAACC,EAAO,OACZ,MAAMO,EAAW,SAASP,EAAM,UAAU,QAAQ,aAAc,EAAE,CAAC,EACnE,IAAIQ,EAAa,EAEbF,EACFE,EAAcD,EAAW,QAAWF,GAAiBD,EAAS,GAAK,IAErDI,EAAAD,EAAWF,GAAiBD,EAAS,GAAK,IAEpD,MAAAH,EAAUF,EAAI,cAAc,wBAAwB,EACtDE,GAAWO,GACZP,EAAwB,MAAM,YAAY,aAAc,GAAGO,CAAU,GAAG,CAC3E,CACD,CACH,CACF"}