{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./src/components/Companies/CompanyStatistics.vue","webpack:///src/components/Companies/CompanyStatistics.vue","webpack:///./src/components/Companies/CompanyStatistics.vue?9779","webpack:///./src/components/Companies/CompanyStatistics.vue?0ed0"],"names":["$","uncurryThis","notARegExp","requireObjectCoercible","toString","correctIsRegExpLogic","stringIndexOf","indexOf","target","proto","forced","includes","searchString","this","arguments","length","undefined","isRegExp","$TypeError","TypeError","module","exports","it","wellKnownSymbol","MATCH","METHOD_NAME","regexp","error1","error2","render","_vm","_c","_self","isLoading","key","company","staticClass","_v","_s","Name","attrs","Number","companyId","locationId","$t","chartDataNumberOfReservations","options","height","position","montlyStatsLoaded","chartDataMontlyStats","options2","chartDataAverageReservationSeats","chartDataAverageReservationRevenue","_e","staticRenderFns","components","ReservationYearStats","BarChart","LineChart","props","default","type","data","$route","params","allDates","reservationYearStats","dataLoaded","showChart","yearLabels","pageState","$store","getters","labels","datasets","responsive","maintainAspectRatio","aspectRatio","scales","x","stacked","y","plugins","legend","tension","display","computed","_objectSpread","mapState","created","getLocationReservationYearStats","methods","mapActions","mapMutations","_this","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","statsProvider","then","response","status","reverse","datasetAllReservations","datasetCancelledReservations","datasetAverageReservationSeats","datasetFinalReservations","datasetAverageReservationRevenue","datasetChurn","i","push","Year","AllReservations","CancelledReservations","NrOfReservations","ChurnRate","round","TotalSeats","TotalRevenueExclTax","label","fill","borderColor","backgroundColor","borderWidth","finally","searchReservations","a","loading","startYear","endYear","startDate","Date","endDate","reservations","page","reachedEnd","searchTerm","statusId","itemsPerPage","getMonthlyStats","_this2","isSearching","reservationProvider","getLocationReservations","channelId","profileId","meetingtypeId","format","MorePages","morePages","Results","setReservationsPageState","monthlyReservations","monthlyDatasets","sortedData","sort","b","StartDate","map","r","months","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Okt","Nov","Dec","datasetNumberOfReservationsJan","datasetNumberOfReservationsFeb","datasetNumberOfReservationsMar","datasetNumberOfReservationsApr","datasetNumberOfReservationsMay","datasetNumberOfReservationsJun","datasetNumberOfReservationsJul","datasetNumberOfReservationsAug","datasetNumberOfReservationsSep","datasetNumberOfReservationsOkt","datasetNumberOfReservationsNov","datasetNumberOfReservationsDec","datasetFullYear","num","Math","component"],"mappings":"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","file":"js/chunk-57dd1883.js?id=66abeb27c97a303e6267","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~stringIndexOf(\n      toString(requireObjectCoercible(this)),\n      toString(notARegExp(searchString)),\n      arguments.length > 1 ? arguments[1] : undefined\n    );\n  }\n});\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw new $TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (error1) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (error2) { /* empty */ }\n  } return false;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.isLoading)?_c('ui-loader',{key:\"loader\"}):(_vm.company && !_vm.isLoading)?_c('div',{key:\"details\"},[_c('p',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.company.Name))]),_c('div',[_c('ReservationYearStats',{attrs:{\"companyId\":Number(_vm.companyId),\"locationId\":Number(_vm.locationId),\"yearsToShow\":8}})],1),_c('div',[_c('p',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Companies.CompanyStats.Title_StatsPerYear'))+\" \")]),_c('BarChart',{attrs:{\"chartdata\":_vm.chartDataNumberOfReservations,\"options\":_vm.options,\"styles\":{\n          height: '200px',\n          position: 'relative',\n        }}})],1),_c('div',[(!_vm.montlyStatsLoaded)?_c('ui-loader',{key:\"loader\"}):_c('div',[_c('p',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Companies.CompanyStats.Title_ResPerMonth'))+\" \")]),_c('LineChart',{attrs:{\"chartdata\":_vm.chartDataMontlyStats,\"options\":_vm.options2,\"styles\":{\n            height: '200px',\n            position: 'relative',\n          }}})],1)],1),_c('div',[_c('p',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Companies.CompanyStats.Title_AverageSeats'))+\" \")]),_c('LineChart',{attrs:{\"chartdata\":_vm.chartDataAverageReservationSeats,\"options\":_vm.options2,\"styles\":{\n          height: '200px',\n          position: 'relative',\n        }}})],1),_c('div',[_c('p',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Companies.CompanyStats.Title_AverageRevenue'))+\" \")]),_c('LineChart',{attrs:{\"chartdata\":_vm.chartDataAverageReservationRevenue,\"options\":_vm.options2,\"styles\":{\n          height: '200px',\n          position: 'relative',\n        }}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <ui-loader v-if=\"isLoading\" key=\"loader\" />\n\n    <div v-else-if=\"company && !isLoading\" key=\"details\">\n      <p class=\"title\">{{ company.Name }}</p>\n\n      <div>\n        <ReservationYearStats\n          :companyId=\"Number(companyId)\"\n          :locationId=\"Number(locationId)\"\n          :yearsToShow=\"8\"\n        />\n      </div>\n\n      <div>\n        <p class=\"title\">\n          {{ $t('Components.Companies.CompanyStats.Title_StatsPerYear') }}\n        </p>\n        <BarChart\n          :chartdata=\"chartDataNumberOfReservations\"\n          :options=\"options\"\n          :styles=\"{\n            height: '200px',\n            position: 'relative',\n          }\"\n        />\n      </div>\n\n      <div>\n        <ui-loader v-if=\"!montlyStatsLoaded\" key=\"loader\" />\n\n        <div v-else>\n          <p class=\"title\">\n            {{ $t('Components.Companies.CompanyStats.Title_ResPerMonth') }}\n          </p>\n          <LineChart\n            :chartdata=\"chartDataMontlyStats\"\n            :options=\"options2\"\n            :styles=\"{\n              height: '200px',\n              position: 'relative',\n            }\"\n          />\n        </div>\n      </div>\n\n      <div>\n        <p class=\"title\">\n          {{ $t('Components.Companies.CompanyStats.Title_AverageSeats') }}\n        </p>\n        <LineChart\n          :chartdata=\"chartDataAverageReservationSeats\"\n          :options=\"options2\"\n          :styles=\"{\n            height: '200px',\n            position: 'relative',\n          }\"\n        />\n      </div>\n\n      <div>\n        <p class=\"title\">\n          {{ $t('Components.Companies.CompanyStats.Title_AverageRevenue') }}\n        </p>\n        <LineChart\n          :chartdata=\"chartDataAverageReservationRevenue\"\n          :options=\"options2\"\n          :styles=\"{\n            height: '200px',\n            position: 'relative',\n          }\"\n        />\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapState, mapActions, mapMutations } from 'vuex'\nimport statsProvider from '@/providers/stats'\nimport reservationProvider from '@/providers/reservation'\nimport { format } from 'date-fns'\n\nexport default {\n  components: {\n    ReservationYearStats: () => import(/* webpackChunkName: \"company-statistics\" */ '@/components/Dashboards/ReservationYearStats'),\n    BarChart: () => import(/* webpackChunkName: \"company-statistics\" */ '@/components/UI/Charts/BarChart'),\n    LineChart: () => import(/* webpackChunkName: \"company-statistics\" */ '@/components/UI/Charts/LineChart'),\n  },\n\n  props: {\n    companyId: {\n      default: 0,\n      type: Number,\n    },\n  },\n\n  data() {\n    return {\n      locationId: Number(this.$route.params.locationId),\n      isLoading: false,\n      montlyStatsLoaded: false,\n      allDates: null,\n      reservationYearStats: [],\n      dataLoaded: false,\n      showChart: false,\n      yearLabels: [],\n      pageState:\n        this.$store.getters['reservationStore/getReservationsPageState'],\n\n      chartDataNumberOfReservations: {\n        labels: [],\n        datasets: [],\n      },\n\n      chartDataAverageReservationRevenue: {\n        labels: [],\n        datasets: [],\n      },\n\n      chartDataAverageReservationSeats: {\n        labels: [],\n        datasets: [],\n      },\n\n      chartDataMontlyStats: {\n        labels: [],\n        datasets: [],\n      },\n\n      options: {\n        responsive: true,\n        maintainAspectRatio: true,\n        aspectRatio: 3 / 1,\n        scales: {\n          x: {\n            stacked: true,\n          },\n          y: {\n            stacked: false,\n          },\n        },\n        plugins: {\n          legend: {\n            position: 'bottom',\n          },\n        },\n      },\n\n      options2: {\n        responsive: true,\n        maintainAspectRatio: true,\n        aspectRatio: 3 / 1,\n        tension: 0.3,\n        scales: {\n          x: {\n            stacked: true,\n          },\n          y: {\n            stacked: false,\n          },\n        },\n        plugins: {\n          legend: {\n            display: false,\n          },\n        },\n      },\n    }\n  },\n\n  computed: {\n    ...mapState('companyStore', ['company']),\n  },\n\n  created() {\n    this.getLocationReservationYearStats()\n  },\n\n  methods: {\n    ...mapActions('reservationStore', ['resetReservationPageState']),\n    ...mapMutations('reservationStore', ['setReservationsPageState']),\n\n    async getLocationReservationYearStats() {\n      this.isLoading = true\n      await statsProvider.methods\n        .getLocationReservationYearStats(this.locationId, this.companyId)\n        .then((response) => {\n          if (response.status === 200) {\n            this.data = response.data.reverse() // reverse the array to get a chronological order.\n\n            this.yearLabels = []\n\n            let datasetAllReservations = []\n            let datasetCancelledReservations = []\n            let datasetAverageReservationSeats = []\n            let datasetFinalReservations = []\n            let datasetAverageReservationRevenue = []\n\n            let datasetChurn = []\n\n            for (let i = 0; i < this.data.length; i++) {\n              this.yearLabels.push(this.data[i].Year)\n              datasetAllReservations.push(\n                this.data[i].AllReservations < 0\n                  ? 0\n                  : this.data[i].AllReservations\n              )\n              datasetCancelledReservations.push(\n                this.data[i].CancelledReservations\n              )\n              datasetFinalReservations.push(this.data[i].NrOfReservations)\n              datasetChurn.push(this.data[i].ChurnRate)\n\n              datasetAverageReservationSeats.push(\n                this.round(\n                  this.data[i].TotalSeats / this.data[i].NrOfReservations\n                )\n              )\n\n              datasetAverageReservationRevenue.push(\n                this.round(\n                  this.data[i].TotalRevenueExclTax /\n                    this.data[i].NrOfReservations\n                )\n              )\n            }\n\n            this.chartDataNumberOfReservations.labels = this.yearLabels\n            this.chartDataAverageReservationSeats.labels = this.yearLabels\n            this.chartDataAverageReservationRevenue.labels = this.yearLabels\n            this.chartDataNumberOfReservations.labels = this.yearLabels\n            // this.chartDataChurn.labels = this.yearLabels\n\n            this.chartDataNumberOfReservations.datasets.push({\n              label: 'Cancelled reservations',\n              data: datasetCancelledReservations,\n              fill: false,\n              borderColor: 'rgba(184, 107, 255, 1)',\n              backgroundColor: 'rgba(184, 107, 255, 0.3)',\n              borderWidth: 1,\n            })\n\n            this.chartDataNumberOfReservations.datasets.push({\n              label: 'Final reservations',\n              data: datasetFinalReservations,\n              fill: false,\n              borderColor: 'rgba(2, 186, 255, 1)',\n              backgroundColor: 'rgba(190, 234, 255, 1)',\n              borderWidth: 1,\n            })\n\n            this.chartDataNumberOfReservations.datasets.push({\n              label: 'All reservations',\n              data: datasetAllReservations,\n              fill: false,\n              borderColor: 'rgba(168, 205, 76, 1)',\n              backgroundColor: 'rgba(223, 236, 191, 1)',\n              borderWidth: 1,\n            })\n\n            this.chartDataAverageReservationSeats.datasets.push({\n              label: 'Average seats per reservation',\n              data: datasetAverageReservationSeats,\n              fill: false,\n              borderColor: 'rgba(2, 186, 255, 1)',\n              backgroundColor: 'rgba(190, 234, 255, 1)',\n              borderWidth: 1,\n            })\n\n            this.chartDataAverageReservationRevenue.datasets.push({\n              label: 'Average reservation revenue',\n              data: datasetAverageReservationRevenue,\n              fill: false,\n              borderColor: 'rgba(2, 186, 255, 1)',\n              backgroundColor: 'rgba(190, 234, 255, 1)',\n              borderWidth: 1,\n            })\n\n            this.showChart = true\n          }\n        })\n        .finally(() => {\n          this.dataLoaded = true\n\n          this.searchReservations()\n        })\n    },\n\n    searchReservations() {\n      this.loading = true\n\n      let startYear = this.yearLabels[0]\n      let endYear = this.yearLabels[this.yearLabels.length - 1]\n      let startDate = new Date(startYear, 0, 1)\n      let endDate = new Date(endYear, 11, 31)\n\n      this.isLoading = true\n      this.pageState.reservations = []\n      this.pageState.page = 1\n      this.pageState.reachedEnd = false\n      ;(this.pageState.searchTerm = ''), (this.pageState.startDate = startDate)\n      this.pageState.endDate = endDate\n      this.pageState.statusId = 2\n      this.pageState.itemsPerPage = 999\n      this.getMonthlyStats()\n    },\n\n    getMonthlyStats() {\n      this.isLoading = true\n\n      if (!this.isSearching && !this.pageState.reachedEnd) {\n        this.isSearching = true\n        this.reservations = []\n\n        reservationProvider.methods\n          .getLocationReservations(\n            this.pageState.searchTerm,\n            this.pageState.channelId,\n            this.locationId,\n            this.profileId,\n            this.companyId,\n            this.pageState.meetingtypeId,\n            this.pageState.statusId,\n            format(this.pageState.startDate, 'yyyy-MM-dd'),\n            format(this.pageState.endDate, 'yyyy-MM-dd'),\n            this.pageState.page,\n            this.pageState.itemsPerPage\n          )\n          .then((response) => {\n            if (response.status === 200) {\n              if (response.data.MorePages === 0) {\n                this.pageState.reachedEnd = true\n              }\n\n              this.pageState.morePages = response.data.MorePages\n              this.pageState.reservations = response.data.Results\n              this.setReservationsPageState(this.pageState)\n              this.monthlyReservations = response.data.Results\n              this.monthlyDatasets()\n            }\n          })\n          .finally(() => {\n            this.isSearching = false\n          })\n      }\n    },\n\n    monthlyDatasets() {\n      this.isLoading = true\n\n      let data = this.monthlyReservations\n      let sortedData = data.sort((a, b) => b.StartDate - a.StartDate)\n      this.allDates = sortedData.map((r) => r.StartDate)\n\n      let months = {\n        Jan: [],\n        Feb: [],\n        Mar: [],\n        Apr: [],\n        May: [],\n        Jun: [],\n        Jul: [],\n        Aug: [],\n        Sep: [],\n        Okt: [],\n        Nov: [],\n        Dec: [],\n      }\n\n      for (let i = 0; i < data.length; i++) {\n        if (data[i].Date.includes('-01-')) {\n          months.Jan.push(data[i])\n        }\n        if (data[i].Date.includes('-02-')) {\n          months.Feb.push(data[i])\n        }\n        if (data[i].Date.includes('-03-')) {\n          months.Mar.push(data[i])\n        }\n        if (data[i].Date.includes('-04-')) {\n          months.Apr.push(data[i])\n        }\n        if (data[i].Date.includes('-05-')) {\n          months.May.push(data[i])\n        }\n        if (data[i].Date.includes('-06-')) {\n          months.Jun.push(data[i])\n        }\n        if (data[i].Date.includes('-07-')) {\n          months.Jul.push(data[i])\n        }\n        if (data[i].Date.includes('-08-')) {\n          months.Aug.push(data[i])\n        }\n        if (data[i].Date.includes('-09-')) {\n          months.Sep.push(data[i])\n        }\n        if (data[i].Date.includes('-10-')) {\n          months.Okt.push(data[i])\n        }\n        if (data[i].Date.includes('-11-')) {\n          months.Nov.push(data[i])\n        }\n        if (data[i].Date.includes('-12-')) {\n          months.Dec.push(data[i])\n        }\n      }\n\n      let datasetNumberOfReservationsJan = months.Jan.length\n      let datasetTotalSeatsJan = 0\n\n      let datasetNumberOfReservationsFeb = months.Feb.length\n      let datasetTotalSeatsFeb = 0\n\n      let datasetNumberOfReservationsMar = months.Mar.length\n      let datasetTotalSeatsMar = 0\n\n      let datasetNumberOfReservationsApr = months.Apr.length\n      let datasetTotalSeatsApr = 0\n\n      let datasetNumberOfReservationsMay = months.May.length\n      let datasetTotalSeatsMay = 0\n\n      let datasetNumberOfReservationsJun = months.Jun.length\n      let datasetTotalSeatsJun = 0\n\n      let datasetNumberOfReservationsJul = months.Jul.length\n      let datasetTotalSeatsJul = 0\n\n      let datasetNumberOfReservationsAug = months.Aug.length\n      let datasetTotalSeatsAug = 0\n\n      let datasetNumberOfReservationsSep = months.Sep.length\n      let datasetTotalSeatsSep = 0\n\n      let datasetNumberOfReservationsOkt = months.Okt.length\n      let datasetTotalSeatsOkt = 0\n\n      let datasetNumberOfReservationsNov = months.Nov.length\n      let datasetTotalSeatsNov = 0\n\n      let datasetNumberOfReservationsDec = months.Dec.length\n      let datasetTotalSeatsDec = 0\n\n      for (let i = 0; i < months.Jan.length; i++) {\n        datasetTotalSeatsJan + months.Jan[i].TotalSeats\n      }\n      for (let i = 0; i < months.Feb.length; i++) {\n        datasetTotalSeatsFeb + months.Feb[i].TotalSeats\n      }\n      for (let i = 0; i < months.Mar.length; i++) {\n        datasetTotalSeatsMar + months.Mar[i].TotalSeats\n      }\n      for (let i = 0; i < months.Apr.length; i++) {\n        datasetTotalSeatsApr + months.Apr[i].TotalSeats\n      }\n      for (let i = 0; i < months.May.length; i++) {\n        datasetTotalSeatsMay + months.May[i].TotalSeats\n      }\n      for (let i = 0; i < months.Jun.length; i++) {\n        datasetTotalSeatsJun + months.Jun[i].TotalSeats\n      }\n      for (let i = 0; i < months.Jul.length; i++) {\n        datasetTotalSeatsJul + months.Jul[i].TotalSeats\n      }\n      for (let i = 0; i < months.Aug.length; i++) {\n        datasetTotalSeatsAug + months.Aug[i].TotalSeats\n      }\n      for (let i = 0; i < months.Sep.length; i++) {\n        datasetTotalSeatsSep + months.Sep[i].TotalSeats\n      }\n      for (let i = 0; i < months.Okt.length; i++) {\n        datasetTotalSeatsOkt + months.Okt[i].TotalSeats\n      }\n      for (let i = 0; i < months.Nov.length; i++) {\n        datasetTotalSeatsNov + months.Nov[i].TotalSeats\n      }\n      for (let i = 0; i < months.Dec.length; i++) {\n        datasetTotalSeatsDec + months.Dec[i].TotalSeats\n      }\n\n      let datasetFullYear = [\n        datasetNumberOfReservationsJan,\n        datasetNumberOfReservationsFeb,\n        datasetNumberOfReservationsMar,\n        datasetNumberOfReservationsApr,\n        datasetNumberOfReservationsMay,\n        datasetNumberOfReservationsJun,\n        datasetNumberOfReservationsJul,\n        datasetNumberOfReservationsAug,\n        datasetNumberOfReservationsSep,\n        datasetNumberOfReservationsOkt,\n        datasetNumberOfReservationsNov,\n        datasetNumberOfReservationsDec,\n      ]\n\n      let labels = [\n        'Jan',\n        'Feb',\n        'Mar',\n        'Apr',\n        'May',\n        'Jun',\n        'Jul',\n        'Aug',\n        'Sep',\n        'Okt',\n        'Nov',\n        'Dec',\n      ]\n      this.chartDataMontlyStats.labels = labels\n\n      this.chartDataMontlyStats.datasets.push({\n        label: 'Montly stats',\n        data: datasetFullYear,\n        fill: false,\n        borderColor: 'rgba(2, 186, 255, 1)',\n        backgroundColor: 'rgba(190, 234, 255, 1)',\n        borderWidth: 1,\n      })\n\n      this.isLoading = false\n      this.montlyStatsLoaded = true\n    },\n\n    round(num) {\n      return +(Math.round(num + 'e+2') + 'e-2')\n    },\n  },\n}\n</script>\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanyStatistics.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompanyStatistics.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CompanyStatistics.vue?vue&type=template&id=0542f670\"\nimport script from \"./CompanyStatistics.vue?vue&type=script&lang=js\"\nexport * from \"./CompanyStatistics.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}