{"version":3,"sources":["webpack:///./src/js/modules/legacy/summerTrailsReport.js"],"names":["Module","this","dom","areasContainer","el","querySelector","breakpoint","window","matchMedia","breakpoints","tabletLandscape","fetchData","buildTable","addListener","bind","cb","dataset","endpoint","mountain","areas","Axios","method","url","params","data","console","log","openColumnHeading","unavailableMessage","unavailableLink","icons","innerHTML","map","area","name","trails","length","matches","trail","index","isOpen","difficulty","join","Component"],"mappings":"6vDAMMA,E,0WACJ,WAAgB,WACdC,KAAKC,IAAM,CACTC,eAAgBF,KAAKG,GAAGC,cAAc,iCAGxCJ,KAAKK,WAAaC,OAAOC,WAAP,sBACDC,IAAYC,gBADX,QAIlBT,KAAKU,WAAU,WACb,EAAKC,kB,0BAIT,WACEX,KAAKK,WAAWO,YAAYZ,KAAKW,WAAWE,KAAKb,S,mDAGnD,WAAgBc,GAAhB,yGACwCd,KAAKG,GAAGY,QAAtCC,EADV,EACUA,SAAUC,EADpB,EACoBA,SAAUC,EAD9B,EAC8BA,MAD9B,kBAI2BC,IAAM,CAC3BC,OAAQ,MACRC,IAAKL,EACLM,OAAQ,CACNL,WACAC,WATR,gBAIYK,EAJZ,EAIYA,KASRvB,KAAKkB,MAAQK,EAAKL,MAbtB,gDAeIM,QAAQC,IAAI,2CAfhB,yBAiBIX,IAjBJ,2E,sPAqBA,WAAa,WACX,EAIId,KAAKG,GAAGY,QAHVW,EADF,EACEA,kBACAC,EAFF,EAEEA,mBACAC,EAHF,EAGEA,gBAGIC,EAAQ,CACZ,wBAAyB,WACzB,uBAAwB,iBACxB,wBAAyB,iBACzB,+BAAgC,SAChC,uBAAwB,iBACxB,sBAAuB,gBACvB,uBAAwB,iBACxB,8BAA+B,wBAC/B,iBAAkB,WAClB,wBAAyB,iBACzB,wBAAyB,iBACzB,qBAAsB,WAGnB7B,KAAKkB,OAAWU,EACnB5B,KAAKC,IAAIC,eAAe4B,UAAxB,uBAAoDF,EAApD,qDACED,GAAsB,0BADxB,aAIA3B,KAAKC,IAAIC,eAAe4B,UAAxB,cACEH,GAAsB,0BADxB,aAKF3B,KAAKC,IAAIC,eAAe4B,UAAY9B,KAAKkB,MACtCa,KACC,SAAAC,GAAI,mFAE2CA,EAAKC,KAFhD,+IAMoBP,EANpB,gCAQIM,EAAKE,OAAOC,OAAS,GAAK,EAAK9B,WAAW+B,QAA1C,4CAEkBV,EAFlB,yBAII,GAZR,mFAiBEM,EAAKE,OACJH,KACC,SAACM,EAAOC,GAAR,kCACG,EAAKjC,WAAW+B,QAAmB,GAAT,OAD7B,6BAGGE,EAAQ,GAAM,GAAK,EAAKjC,WAAW+B,UACnC,EAAK/B,WAAW+B,QACb,OACA,GANN,iGAUMC,EAAME,OACF,6EACA,GAZV,iJAgBuBF,EAAMG,WAhB7B,+BAiBEX,EAAMQ,EAAMG,YAjBd,8GAoBgDH,EAAMJ,KApBtD,kCAsBGK,EAAQ,GAAM,GAAK,EAAKjC,WAAW+B,UACnC,EAAK/B,WAAW+B,QACb,OACA,GAzBN,uBA6BDK,KAAK,IAhDR,gEAsDLA,KAAK,S,8BAhISC,aAoIN3C","file":"75.c50a76d508028180e234.js","sourcesContent":["/* eslint-disable indent */\nimport { Component } from '@verndale/core';\nimport Axios from 'axios';\n\nimport { breakpoints } from '../../helpers/constants';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n areasContainer: this.el.querySelector('.summer-trails-report__areas')\n };\n\n this.breakpoint = window.matchMedia(\n `(min-width: ${breakpoints.tabletLandscape}px)`\n );\n\n this.fetchData(() => {\n this.buildTable();\n });\n }\n\n addListeners() {\n this.breakpoint.addListener(this.buildTable.bind(this));\n }\n\n async fetchData(cb) {\n const { endpoint, mountain, areas } = this.el.dataset;\n\n try {\n const { data } = await Axios({\n method: 'GET',\n url: endpoint,\n params: {\n mountain,\n areas\n }\n });\n\n this.areas = data.areas;\n } catch (e) {\n console.log('Error fetching Summer trail report data');\n } finally {\n cb();\n }\n }\n\n buildTable() {\n const {\n openColumnHeading,\n unavailableMessage,\n unavailableLink\n } = this.el.dataset;\n\n const icons = {\n 'Mtb - Technical Green': 'beginner',\n 'Mtb - Technical Blue': 'more-difficult',\n 'Mtb - Technical Black': 'most-difficult',\n 'Mtb - Technical Double Black': 'expert',\n 'Mtb - Freeride Green': 'freeride-green',\n 'Mtb - Freeride Blue': 'freeride-blue',\n 'Mtb - Freeride Black': 'freeride-black',\n 'Mtb - Freeride Double Black': 'freeride-double-black',\n 'Hike - Easiest': 'beginner',\n 'Hike - More Difficult': 'more-difficult',\n 'Hike - Most Difficult': 'most-difficult',\n 'Hike - Expert Only': 'expert'\n };\n\n if (!this.areas && !!unavailableLink) {\n this.dom.areasContainer.innerHTML = `<li><a href=\"${unavailableLink}\" class=\"summer-trails-report__error-cta\">${\n unavailableMessage || 'Temporarily Unavailable'\n }</a></li>`;\n } else {\n this.dom.areasContainer.innerHTML = `<li>${\n unavailableMessage || 'Temporarily Unavailable'\n }</a></li>`;\n }\n\n this.dom.areasContainer.innerHTML = this.areas\n .map(\n area => `\n <li>\n <h3 class=\"summer-trails-report__area-title\">${area.name}</h3>\n <table class=\"summer-trails-report__area-table\">\n <thead>\n <tr>\n <th colspan=\"3\">${openColumnHeading}</th>\n ${\n area.trails.length > 1 && this.breakpoint.matches\n ? `\n <th colspan=\"3\">${openColumnHeading}</th>\n `\n : ''\n }\n </tr>\n </thead>\n <tbody>\n ${area.trails\n .map(\n (trail, index) => `\n ${!this.breakpoint.matches ? '<tr>' : ''}\n ${\n (index % 2 === 0 && this.breakpoint.matches) ||\n !this.breakpoint.matches\n ? '<tr>'\n : ''\n }\n <td class=\"summer-trails-report__area-open\">\n ${\n trail.isOpen\n ? '<svg aria-label=\"Open\"><title>open</title><use xlink:href=\"#open\" /></svg>'\n : ''\n }\n </td>\n <td class=\"summer-trails-report__area-difficulty\">\n <svg aria-label=\"${trail.difficulty}\"><use xlink:href=\"#${\n icons[trail.difficulty]\n }\" /></svg>\n </td>\n <td class=\"summer-trails-report__area-name\">${trail.name}</td>\n ${\n (index % 2 !== 0 && this.breakpoint.matches) ||\n !this.breakpoint.matches\n ? '<tr>'\n : ''\n }\n `\n )\n .join('')}\n </tbody>\n </table>\n </li>\n `\n )\n .join('');\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}