{"version":3,"sources":["webpack:///./src/js/time-savings-calculator/template.vue","webpack:///./src/js/time-savings-calculator/component.js"],"names":["module","exports","component","props","planeType","type","String","required","planeTrips","Array","planeDisclaimers","template","data","selected_region","selected_trip","travel_times","savings_time","showTimeSavings","regions","cities","watch","this","map","trip","region","push","computed","disableButton","mounted","initialMethod","methods","temp","indexOf","item","includes","getTimeSavings","console","log","savings_data","car","hours","undefined","parseInt","minutes","aircraft","time_in_minutes","time","Math","floor","floatLabelCheck","event","ref","$refs","currentTarget","id","value","length","classList","remove","add","floatLabelFocus"],"mappings":"0EAGAA,EAAOC,QAFI,goF,gCCDX,mBAEA,MAAMC,EAAY,CAChBC,MAAO,CACLC,UAAW,CACTC,KAAMC,OACNC,UAAU,GAEZC,WAAY,CACVH,KAAMI,MACNF,UAAU,GAEZG,iBAAkB,CAChBL,KAAMC,OACNC,UAAU,IAGdI,SAjBF,MAiBEA,GACAC,KAAMA,KAAA,CACJC,gBAAiB,GACjBC,eAAe,EACfC,aAAc,KACdC,aAAc,KACdC,iBAAiB,EACjBC,QAAS,GACTC,OAAQ,KAEVC,MAAO,CACLP,gBAAiB,WACfQ,KAAKF,OAAS,GACdE,KAAKb,WAAWc,IAAKC,IACfA,EAAKC,SAAWH,KAAKR,iBACvBQ,KAAKF,OAAOM,KAAKF,OAKzBG,SAAU,CACRC,cAAe,WACb,OAA8B,IAAvBN,KAAKP,gBAGhBc,UACEP,KAAKQ,iBAEPC,QAAS,CACPD,cAAe,WACb,IASIE,EAAO,GACXV,KAAKb,WAAWc,IAAKC,KACgB,IAA/BQ,EAAKC,QAAQT,EAAKC,SACpBO,EAAKN,KAAKF,EAAKC,UAZH,CACd,gBACA,SACA,OACA,kBACA,SACA,UACA,iBAQQF,IAAKW,IACTF,EAAKG,SAASD,IAChBZ,KAAKH,QAAQO,KAAKQ,MAIxBE,eAAgB,WAEd,GADAC,QAAQC,IAAI,6BACe,IAAvBhB,KAAKP,cACPO,KAAKJ,iBAAkB,MAClB,CACL,MAAMqB,EAAejB,KAAKF,OAAOE,KAAKP,eACtCsB,QAAQC,IAAIC,EAA0C,4BAAS,OAE/DjB,KAAKN,aAAe,CAClBwB,IAAK,CACHC,WACsDC,IAApDH,EAAqC,uBAAS,MAC1C,EACAI,SAASJ,EAAqC,uBAAS,OAC7DK,aACwDF,IAAtDH,EAAqC,uBAAW,QAC5C,EACAI,SAASJ,EAAqC,uBAAW,UAEjEM,SAAU,CACRJ,WAC2DC,IAAzDH,EAA0C,4BAAS,MAC/C,EACAI,SACEJ,EAA0C,4BAAS,OAE3DK,aAEEF,IADAH,EAA0C,4BAAW,QAEjD,EACAI,SACEJ,EAA0C,4BAAW,WAKjEF,QAAQC,IAAIhB,KAAKN,cACjB,MAAM8B,EAAkB,CACtBN,IAAmC,GAA9BlB,KAAKN,aAAawB,IAAIC,MAAanB,KAAKN,aAAawB,IAAII,QAC9DC,SACqC,GAAnCvB,KAAKN,aAAa6B,SAASJ,MAC3BnB,KAAKN,aAAa6B,SAASD,SAG/BP,QAAQC,IAAIQ,GACZ,MAAMC,EAAOD,EAAgBN,IAAMM,EAAgBD,SAEnDvB,KAAKL,aAAe,CAClBwB,MAAOO,KAAKC,MAAMF,EAAO,IACzBH,QAASG,EAAO,IAElBV,QAAQC,IAAIhB,KAAKL,cACjBK,KAAKJ,iBAAkB,IAG3BgC,gBAAiB,SAAUC,GACzB,MAAMC,EAAM9B,KAAK+B,MAAMF,EAAMG,cAAcC,GAAK,UAET,IAArCJ,EAAMG,cAAcE,MAAMC,QACI,KAA9BN,EAAMG,cAAcE,OACU,MAA9BL,EAAMG,cAAcE,OACnBL,EAAMG,cAAcE,MAIrBJ,EAAIM,UAAUC,OAAO,sBAFrBP,EAAIM,UAAUE,IAAI,uBAKtBC,gBAAiB,SAAUV,GACb7B,KAAK+B,MAAMF,EAAMG,cAAcC,GAAK,UAC5CG,UAAUC,OAAO,yBAKZxD","file":"js/9-2cc53bc81848da0c4e9a.js","sourcesContent":["// Module\nvar code = \"<div class=\\\"time-savings-calculator-container container\\\"> <form class=\\\"float-labels row align-items-center justify-content-center\\\" @submit.prevent=\\\"getTimeSavings\\\"> <div class=\\\"col-12 col-md-9 col-lg-7 text-center\\\"> <div class=\\\"float-label-input-container\\\"> <label ref=\\\"regions_label\\\" for=\\\"regions\\\" class=\\\"float-label-active\\\">Select a Region</label> <select v-model=\\\"selected_region\\\" v-on:change=\\\"floatLabelCheck\\\" v-on:focus=\\\"floatLabelFocus\\\" v-on:blur=\\\"floatLabelCheck\\\" name=\\\"trips\\\" id=\\\"regions\\\" style=\\\"text-transform:capitalize\\\"> <option :selected=\\\"true\\\" value=\\\"\\\"></option> <option v-for=\\\"(trip, index) in regions\\\" :key=\\\"index\\\" :value=\\\"trip\\\"> {{ trip }} </option> </select> </div> <div class=\\\"float-label-input-container\\\"> <label ref=\\\"trips_label\\\" for=\\\"trips\\\" class=\\\"float-label-active\\\">Select a Trip</label> <select v-model=\\\"selected_trip\\\" v-on:change=\\\"floatLabelCheck\\\" v-on:focus=\\\"floatLabelFocus\\\" v-on:blur=\\\"floatLabelCheck\\\" name=\\\"trips\\\" id=\\\"trips\\\"> <option :selected=\\\"true\\\" value=\\\"\\\"></option> <option v-for=\\\"(trip,index) in cities\\\" :key=\\\"index\\\" :value=\\\"index\\\"> {{ trip.departure.city }} ({{ trip.departure.airport }}) to {{ trip.destination.city }} ({{ trip.destination.airport }}) </option> </select> </div> </div> <div class=\\\"col-12 col-md-1 text-center mt-7 mt-md-0 go-button\\\"> <button type=\\\"submit\\\" class=\\\"button button--medium button--inverted button--block--sm\\\" :disabled=\\\"disableButton\\\">Go</button> </div> </form> <transition name=\\\"fade\\\"> <div v-if=\\\"showTimeSavings\\\" class=\\\"time-savings row mt-5\\\"> <h4 class=\\\"col-12 title\\\">Time Savings</h4> <table class=\\\"col-12\\\" style=\\\"max-height:100px\\\"> <tr> <th>Travel Time in Car</th> <th>Travel Time in <br>{{ planeType }}</th> <th>Time Saved</th> </tr> <tr> <td> <span v-if=\\\"travel_times.car.hours > 0\\\">{{ travel_times.car.hours | pluralize('hour', { includeNumber: true } ) }}</span> <br> <span v-if=\\\"travel_times.car.minutes > 0\\\">{{ travel_times.car.minutes | pluralize('minute', { includeNumber: true } ) }}</span> </td> <td> <span v-if=\\\"travel_times.aircraft.hours > 0\\\">{{ travel_times.aircraft.hours | pluralize('hour', { includeNumber: true } ) }}</span> <br> <span v-if=\\\"travel_times.aircraft.minutes > 0\\\">{{ travel_times.aircraft.minutes | pluralize('minute', { includeNumber: true } ) }}</span> <br> </td> <td> <strong> <span v-if=\\\"savings_time.hours > 0\\\">{{ savings_time.hours | pluralize('hour', { includeNumber: true } ) }}</span> <br> <span v-if=\\\"savings_time.minutes > 0\\\">{{ savings_time.minutes | pluralize('minute', { includeNumber: true } ) }}</span> </strong> </td> </tr> </table> <div class=\\\"col-12 disclaimers mt-5\\\"> <p><small v-html=\\\"planeDisclaimers\\\"></small></p> </div> </div> </transition> </div>\";\n// Exports\nmodule.exports = code;","import template from \"./template.vue\";\n\nconst component = {\n  props: {\n    planeType: {\n      type: String,\n      required: true,\n    },\n    planeTrips: {\n      type: Array,\n      required: true,\n    },\n    planeDisclaimers: {\n      type: String,\n      required: true,\n    },\n  },\n  template,\n  data: () => ({\n    selected_region: \"\",\n    selected_trip: false,\n    travel_times: null,\n    savings_time: null,\n    showTimeSavings: false,\n    regions: [],\n    cities: [],\n  }),\n  watch: {\n    selected_region: function () {\n      this.cities = [];\n      this.planeTrips.map((trip) => {\n        if (trip.region === this.selected_region) {\n          this.cities.push(trip);\n        }\n      });\n    },\n  },\n  computed: {\n    disableButton: function () {\n      return this.selected_trip === false;\n    },\n  },\n  mounted() {\n    this.initialMethod();\n  },\n  methods: {\n    initialMethod: function () {\n      let sortOrder = [\n        \"North America\",\n        \"Africa\",\n        \"Asia\",\n        \"Central America\",\n        \"Europe\",\n        \"Oceania\",\n        \"South America\",\n      ];\n      let temp = [];\n      this.planeTrips.map((trip) => {\n        if (temp.indexOf(trip.region) === -1) {\n          temp.push(trip.region);\n        }\n      });\n      sortOrder.map((item) => {\n        if (temp.includes(item)) {\n          this.regions.push(item);\n        }\n      });\n    },\n    getTimeSavings: function () {\n      console.log(\"getTimeSavings is called\");\n      if (this.selected_trip === false) {\n        this.showTimeSavings = false;\n      } else {\n        const savings_data = this.cities[this.selected_trip];\n        console.log(savings_data[\"total_trip_time_in_aircraft\"][\"hours\"]);\n\n        this.travel_times = {\n          car: {\n            hours:\n              savings_data[\"total_trip_time_in_car\"][\"hours\"] === undefined\n                ? 0\n                : parseInt(savings_data[\"total_trip_time_in_car\"][\"hours\"]),\n            minutes:\n              savings_data[\"total_trip_time_in_car\"][\"minutes\"] === undefined\n                ? 0\n                : parseInt(savings_data[\"total_trip_time_in_car\"][\"minutes\"]),\n          },\n          aircraft: {\n            hours:\n              savings_data[\"total_trip_time_in_aircraft\"][\"hours\"] === undefined\n                ? 0\n                : parseInt(\n                    savings_data[\"total_trip_time_in_aircraft\"][\"hours\"]\n                  ),\n            minutes:\n              savings_data[\"total_trip_time_in_aircraft\"][\"minutes\"] ===\n              undefined\n                ? 0\n                : parseInt(\n                    savings_data[\"total_trip_time_in_aircraft\"][\"minutes\"]\n                  ),\n          },\n        };\n\n        console.log(this.travel_times);\n        const time_in_minutes = {\n          car: this.travel_times.car.hours * 60 + this.travel_times.car.minutes,\n          aircraft:\n            this.travel_times.aircraft.hours * 60 +\n            this.travel_times.aircraft.minutes,\n        };\n\n        console.log(time_in_minutes);\n        const time = time_in_minutes.car - time_in_minutes.aircraft;\n\n        this.savings_time = {\n          hours: Math.floor(time / 60),\n          minutes: time % 60,\n        };\n        console.log(this.savings_time);\n        this.showTimeSavings = true;\n      }\n    },\n    floatLabelCheck: function (event) {\n      const ref = this.$refs[event.currentTarget.id + \"_label\"];\n      if (\n        event.currentTarget.value.length === 0 ||\n        event.currentTarget.value === \"\" ||\n        event.currentTarget.value === \" \" ||\n        !event.currentTarget.value\n      ) {\n        ref.classList.add(\"float-label-active\");\n      } else {\n        ref.classList.remove(\"float-label-active\");\n      }\n    },\n    floatLabelFocus: function (event) {\n      const ref = this.$refs[event.currentTarget.id + \"_label\"];\n      ref.classList.remove(\"float-label-active\");\n    },\n  },\n};\n\nexport default component;\n"],"sourceRoot":""}