{"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":""}