{"version":3,"sources":["webpack:///./src/components/Dashboards/LeadSourceSplit.vue","webpack:///src/components/Dashboards/LeadSourceSplit.vue","webpack:///./src/components/Dashboards/LeadSourceSplit.vue?c4d0","webpack:///./src/components/Dashboards/LeadSourceSplit.vue?78a2","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./src/components/UI/Charts/Doughnut.vue","webpack:///src/components/UI/Charts/Doughnut.vue","webpack:///./src/components/UI/Charts/Doughnut.vue?0a32","webpack:///./src/components/UI/Charts/Doughnut.vue?e945","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./src/components/Dashboards/StatsMonthYear.vue","webpack:///src/components/Dashboards/StatsMonthYear.vue","webpack:///./src/components/Dashboards/StatsMonthYear.vue?42e3","webpack:///./src/components/Dashboards/StatsMonthYear.vue?4f34","webpack:///./src/components/Dashboards/StatsMonthYear.vue?b830","webpack:///./src/components/Dashboards/ReservationInvoiceSplit.vue","webpack:///src/components/Dashboards/ReservationInvoiceSplit.vue","webpack:///./src/components/Dashboards/ReservationInvoiceSplit.vue?bbd6","webpack:///./src/components/Dashboards/ReservationInvoiceSplit.vue?0457","webpack:///./src/components/UI/Charts/Doughnut.vue?dbaa","webpack:///./src/components/Dashboards/ReservationsStatusSplit.vue","webpack:///src/components/Dashboards/ReservationsStatusSplit.vue","webpack:///./src/components/Dashboards/ReservationsStatusSplit.vue?34d2","webpack:///./src/components/Dashboards/ReservationsStatusSplit.vue?1805","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./src/views/Reservations/Dashboard.vue","webpack:///src/views/Reservations/Dashboard.vue","webpack:///./src/views/Reservations/Dashboard.vue?f3c9","webpack:///./src/views/Reservations/Dashboard.vue?000a","webpack:///./src/components/Dashboards/ReservationGroupsizeSplit.vue","webpack:///src/components/Dashboards/ReservationGroupsizeSplit.vue","webpack:///./src/components/Dashboards/ReservationGroupsizeSplit.vue?38e6","webpack:///./src/components/Dashboards/ReservationGroupsizeSplit.vue?efd8","webpack:///./src/components/UI/Message.vue","webpack:///src/components/UI/Message.vue","webpack:///./src/components/UI/Message.vue?5d20","webpack:///./src/components/UI/Message.vue?fb09"],"names":["render","_vm","this","_c","_self","showDetail","attrs","locationId","endDate","startDate","hideModal","_e","hideHeader","staticClass","_v","_s","$t","hideDetail","on","setShowDetail","dataLoaded","noData","chartData","options","staticRenderFns","components","Doughnut","Message","ModalLeadSourceSplit","props","type","Boolean","default","Date","Number","data","isLoading","labels","datasets","plugins","legend","position","cutout","responsive","maintainAspectRatio","aspectRatio","computed","totalSeats","map","i","NrOfReservations","reduce","a","b","watch","immediate","handler","getLeadsSplitData","created","mounted","window","addEventListener","windowResizeListener","beforeDestroy","removeEventListener","methods","el","$el","getBoundingClientRect","Object","assign","width","self","statsProvider","getLeadsSplit","$options","filters","dateObjectIsoDateString","then","response","status","prepData","finally","backgroundColors","borderColors","length","lead","push","LeadName","hexToRgbA","Colour","borderWidth","borderColor","backgroundColor","timestamp","getTime","hex","replace","split","s","join","rgba","match","parseInt","parseFloat","toFixed","component","toIntegerOrInfinity","toString","requireObjectCoercible","$RangeError","RangeError","module","exports","count","str","result","n","Infinity","ref","Chart","register","ArcElement","DoughnutController","CategoryScale","LinearScale","Decimation","Legend","Title","Tooltip","chartdata","chartBar","deep","val","update","$refs","destroy","call","uncurryThis","fixRegExpWellKnownSymbolLogic","anObject","isObject","toLength","getMethod","advanceStringIndex","getRegExpFlags","regExpExec","stringIndexOf","indexOf","MATCH","nativeMatch","maybeCallNative","regexp","O","matcher","undefined","RegExp","string","rx","S","res","done","value","flags","fullUnicode","lastIndex","A","matchStr","showTypeSelector","mType","directives","name","rawName","expression","$event","$$selectedVal","Array","prototype","filter","target","o","selected","_value","multiple","getData","domProps","title","showChannelSelector","selectedChannelId","_l","channels","channel","key","id","text","years","index","Year","month","_f","Month","Years","year","class","valueIsCurrency","Value","Percentage","channelId","hideMonthRows","_objectSpread","mapState","locationState","Channels","ChannelId","ChannelName","_this","stats","getReservationsPerYearPerMonth","nrOfDecimals","prefix","getFeeInvoiceTotalPerYearPerMonth","getSearchQueriesPerYearPerMonth","getRevenuePerYearPerMonth","getSeatsPerYearPerMonth","meetingtypeId","reservations","display","getReservationInvoiceSplitData","getLocationReservationInvoiceSplit","data1","find","r","HasInvoice","nrReservationsHasInvoice","data2","nrReservationsHasNoInvoice","fixLegendPosition","companyId","voucherId","customerId","leadId","showDatesLabel","searchTerm","String","convertedData","filteredReservation","Status","getReservationStatusSplitData","reservationProvider","getLocationReservationStatusCount","format","statusColor","getStatusColour","$","thisNumberValue","$repeat","fails","$String","floor","Math","repeat","stringSlice","slice","nativeToFixed","pow","x","acc","log","x2","multiply","c","c2","divide","dataToString","t","FORCED","proto","forced","fractionDigits","e","z","j","k","number","fractDigits","sign","isLoadingLeft","isLoadingRight","monthYearSelected","defaultChannel","pageState","MonthYearSelector","ReservationInvoiceSplit","ReservationStatusSplit","StatsMonthYear","ReservationGroupsizeSplit","LeadSourceSplit","isSearching","$route","params","getFullYear","$store","getters","isAdmin","Settings","currentDate","setReservationsPageState","mapMutations","datesChanged","searchQuery","page","reachedEnd","direction","showMonthYearSelector","mMonth","mYear","groupsizes","groupsize","Category","CategoryPercentage","TotalSeats","TotalRevenueExcl","CreateFrontendPercentage","CreateBackendPercentage","EditFrontendPercentage","EditBackendPercentage","newVal","oldVal","getLocationReservationGroupsizeSplit","getLocationReservationgroupsizeSplit","combindedClass","message","_t","size"],"mappings":"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","file":"js/dashboard-reservations.js?id=1d4487c3bd105f838d11","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.showDetail)?_c('ModalLeadSourceSplit',{attrs:{\"showModal\":_vm.showDetail,\"locationId\":_vm.locationId,\"endDate\":_vm.endDate,\"startDate\":_vm.startDate,\"hideHeader\":true,\"hideDetail\":true,\"onClickCancel\":_vm.hideModal}}):_vm._e(),(!_vm.hideHeader)?_c('div',{staticClass:\"level\"},[_c('div',{staticClass:\"level-left\"},[_c('div',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Dashboards.LeadSourceSplit.Subtitle_SourceSplit'))+\" \")])]),_c('div',{staticClass:\"level-right is-hidden-print\"},[(!_vm.hideDetail)?_c('a',{staticClass:\"has-icon\",on:{\"click\":_vm.setShowDetail}},[_c('span',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fa', 'search-plus']}})],1)]):_vm._e()])]):_vm._e(),(_vm.dataLoaded && !_vm.noData)?_c('Doughnut',{attrs:{\"chartdata\":_vm.chartData,\"options\":_vm.options}}):_vm._e(),(_vm.dataLoaded && _vm.noData)?_c('Message',{staticClass:\"has-margin-top\",attrs:{\"message\":'No reservations found.'}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <ModalLeadSourceSplit\n      v-if=\"showDetail\"\n      :showModal=\"showDetail\"\n      :locationId=\"locationId\" \n      :endDate=\"endDate\" \n      :startDate=\"startDate\"\n      :hideHeader=\"true\"\n      :hideDetail=\"true\"\n      :onClickCancel=\"hideModal\"\n    />\n\n    <div v-if=\"!hideHeader\" class=\"level\">\n      <div class=\"level-left\">\n        <div class=\"subtitle\">\n          {{ $t('Components.Dashboards.LeadSourceSplit.Subtitle_SourceSplit') }}\n        </div>\n      </div>\n      <div class=\"level-right is-hidden-print\">\n        <a\n          v-if=\"!hideDetail\"\n          @click=\"setShowDetail\"\n          class=\"has-icon\"\n        >\n          <span class=\"icon\">\n            <font-awesome-icon :icon=\"['fa', 'search-plus']\" />\n          </span>\n        </a>\n\n      </div>\n    </div>\n\n    <Doughnut\n      v-if=\"dataLoaded && !noData\"\n      :chartdata=\"chartData\"\n      :options=\"options\"\n    />\n\n    <Message\n      v-if=\"dataLoaded && noData\"\n      class=\"has-margin-top\"\n      :message=\"'No reservations found.'\"\n    />\n  </div>\n</template>\n<script>\nimport statsProvider from '@/providers/stats'\n\nexport default {\n  components: {\n    Doughnut: () => import('@/components/UI/Charts/Doughnut'),\n    Message: () => import('@/components/UI/Message'),\n    ModalLeadSourceSplit: () => import('@/components/Dashboards/ModalLeadSourceSplit')\n  },\n\n  props: {\n    hideHeader: {\n      type: Boolean,\n      default: false,\n    },\n\n    hideDetail: {\n      type: Boolean,\n      default: false,\n    },\n\n    endDate: {\n      default: function() {\n        return new Date()\n      },\n      type: Date,\n    },\n\n    startDate: {\n      default: function() {\n        return new Date()\n      },\n      type: Date,\n    },\n\n    locationId: {\n      default: 0,\n      type: Number,\n    },\n  },\n\n  data() {\n    return {\n      dataLoaded: false,\n      data: null,\n      isLoading: false,\n\n      chartData: {\n        labels: [],\n        datasets: [],\n      },\n\n      options: {\n        plugins: {\n          legend: {\n            position: 'right',\n          }\n        },\n        cutout: '75%',\n        responsive: true,\n        maintainAspectRatio: true,\n        aspectRatio: 16 / 9\n      },\n      showDetail: false\n    }\n  },\n\n  computed: {\n    noData() {\n      let totalSeats = 0\n\n      if (this.data) {\n        totalSeats = this.data.map(i=>i.NrOfReservations).reduce((a,b)=>a+b)\n      }\n\n      return totalSeats === 0\n    }\n  },\n\n  watch: {\n    endDate: {\n      immediate: true,\n      handler: function () {\n        this.getLeadsSplitData()\n      },\n    },\n\n    startDate: {\n      immediate: true,\n      handler: function () {\n        this.getLeadsSplitData()\n      },\n    },\n  },\n\n  created() {\n    this.getLeadsSplitData()\n  },\n\n  mounted() {\n    window.addEventListener('resize', this.windowResizeListener);\n    this.windowResizeListener()\n  },\n\n  beforeDestroy() {\n    window.removeEventListener('resize', this.windowResizeListener)\n  },\n\n  methods: {\n    windowResizeListener() {\n      const el = this.$el.getBoundingClientRect()\n      this.options = Object.assign(this.options, {\n        plugins: {\n          legend: {\n            position: el.width < 340 ? 'bottom' : 'right'\n          }\n        },\n        aspectRatio: el.width < 340 ? 4 / 3 : 16 / 9\n      })\n    },\n\n    getLeadsSplitData() {\n      let self = this\n\n      if (!self.isLoading) {\n         self.isLoading = true\n\n        statsProvider.methods\n          .getLeadsSplit(\n            self.locationId,\n            self.$options.filters.dateObjectIsoDateString(self.startDate),\n            self.$options.filters.dateObjectIsoDateString(self.endDate)\n          )\n          .then((response) => {\n            if (response.status === 200) {\n              self.data = response.data\n              self.prepData()\n            }\n          })\n          .finally(() => {\n            self.isLoading = false\n          })\n      }\n    },\n\n    prepData() {\n      let self = this\n\n      let labels = []\n      let backgroundColors = []\n      let borderColors = []\n      let data = []\n\n      for (let i = 0; i < self.data.length; i++) {\n        let lead = self.data[i]\n\n        labels.push(lead.LeadName)\n        data.push(lead.NrOfReservations)\n        backgroundColors.push(this.hexToRgbA('#' + lead.Colour))\n        borderColors.push(this.hexToRgbA('#' + lead.Colour))\n      }\n\n      if (this.noData) {\n        this.chartData.labels = [\n          this.$t(\n            'Components.Dashboards.ReservationInvoiceSplit.Label_NoReservations'\n          ),\n        ]\n        this.chartData.datasets.push({\n          borderWidth: 1,\n          borderColor: ['rgba(16, 16, 16, .5)'],\n          backgroundColor: ['rgba(16, 16, 16, 0.3)'],\n          data: [100],\n        })\n      } else {\n        this.chartData.labels = labels\n        this.chartData.datasets.push({\n          borderWidth: 1,\n          borderColor: borderColors,\n          backgroundColor: backgroundColors,\n          data: data,\n        })\n      }\n\n      self.timestamp = new Date().getTime()\n      self.dataLoaded = true\n    },\n\n    hexToRgbA(hex) {\n      // remove invalid characters\n      hex = hex.replace(/[^0-9a-fA-F]/g, '');\n\n      if (hex.length < 5) { \n          // 3, 4 characters double-up\n          hex = hex.split('').map(s => s + s).join('');\n      }\n\n      // parse pairs of two\n      let rgba = hex.match(/.{1,2}/g).map(s => parseInt(s, 16));\n\n      // alpha code between 0 & 1 / default 1\n      rgba[3] = rgba.length > 3 ? parseFloat(rgba[3] / 255).toFixed(2): 1;\n\n      return 'rgba(' + rgba.join(', ') + ')';\n    },\n\n    // hexToRgbA(hex, transparancy){\n    //   var c;\n    //   hex= hex.replace('#', '')\n    //   if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){\n    //     c= hex.substring(1).split('');\n    //     if(c.length== 3){\n    //         c= [c[0], c[0], c[1], c[1], c[2], c[2]];\n    //     }\n    //     c= '0x'+c.join('');\n    //     return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',' + transparancy +')';\n    //   }\n    //   throw new Error('Bad Hex');\n    // },\n    \n    setShowDetail() {\n      this.showDetail = true;\n    },\n\n    hideModal() {\n      this.showDetail = false;\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!./LeadSourceSplit.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!./LeadSourceSplit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LeadSourceSplit.vue?vue&type=template&id=4a7cefb4\"\nimport script from \"./LeadSourceSplit.vue?vue&type=script&lang=js\"\nexport * from \"./LeadSourceSplit.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","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n  var str = toString(requireObjectCoercible(this));\n  var result = '';\n  var n = toIntegerOrInfinity(count);\n  if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('canvas',{ref:\"chartWrapper\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <canvas ref=\"chartWrapper\"></canvas>\n  </div>\n</template>\n\n<script>\nimport {\n  Chart,\n  ArcElement,\n  DoughnutController,\n  CategoryScale,\n  LinearScale,\n  Decimation,\n  Legend,\n  Title,\n  Tooltip\n} from 'chart.js'\nChart.register(\n  ArcElement,\n  DoughnutController,\n  CategoryScale,\n  LinearScale,\n  Decimation,\n  Legend,\n  Title,\n  Tooltip\n)\n\nexport default {\n  props: {\n    chartdata: {\n      type: Object,\n      default: null,\n    },\n    options: {\n      type: Object,\n      default: null,\n    },\n  },\n\n  data() {\n    return {\n      chartBar: null,\n    }\n  },\n\n  watch: {\n    'chartdata': {\n      deep: true,\n      handler: function(val) {\n        this.chartBar.data = val\n        this.chartBar.update();\n      }\n    }\n  },\n\n  mounted() {\n    this.chartBar = new Chart(this.$refs['chartWrapper'], {\n      type: 'doughnut',\n      data: this.chartdata,\n      options: this.options\n    })\n  },\n\n  beforeDestroy() {\n    this.chartBar.destroy();\n  },\n}\n</script>\n\n<style lang=\"scss\" scoped>\ncanvas {\n  width: 100% !important;\n}\n</style>","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!./Doughnut.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!./Doughnut.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Doughnut.vue?vue&type=template&id=c7f9f4c4&scoped=true\"\nimport script from \"./Doughnut.vue?vue&type=script&lang=js\"\nexport * from \"./Doughnut.vue?vue&type=script&lang=js\"\nimport style0 from \"./Doughnut.vue?vue&type=style&index=0&id=c7f9f4c4&prod&lang=scss&scoped=true\"\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  \"c7f9f4c4\",\n  null\n  \n)\n\nexport default component.exports","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = isObject(regexp) ? getMethod(regexp, MATCH) : undefined;\n      return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeMatch, rx, S);\n\n      if (res.done) return res.value;\n\n      var flags = toString(getRegExpFlags(rx));\n\n      if (stringIndexOf(flags, 'g') === -1) return regExpExec(rx, S);\n\n      var fullUnicode = stringIndexOf(flags, 'u') !== -1;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = toString(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column is-12\"},[_c('div',[(_vm.showTypeSelector && _vm.mType === -1)?_c('article',{staticClass:\"message is-info\"},[_c('div',{staticClass:\"message-body\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Message_SelectStatisticsBelow' ))+\" \")])]):_vm._e(),(_vm.showTypeSelector)?_c('div',{staticClass:\"select\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mType),expression:\"mType\"}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.mType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.getData]}},[_c('option',{domProps:{\"value\":-1,\"selected\":_vm.mType === -1}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_MeetingspacePickQuerry' ))+\" \")]),_c('optgroup',{attrs:{\"label\":_vm.$t('Components.Dashboards.StatsMonthYear.Label_Meetingspace')}},[_c('option',{domProps:{\"value\":0,\"selected\":_vm.mType === 0}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_MeetingspaceNrReservations' ))+\" \")]),_c('option',{domProps:{\"value\":3,\"selected\":_vm.mType === 3}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_MeetingspaceNrSearch' ))+\" \")]),_c('option',{domProps:{\"value\":5,\"selected\":_vm.mType === 5}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_MeetingspaceRevenue' ))+\" \")]),_c('option',{domProps:{\"value\":7,\"selected\":_vm.mType === 7}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_MeetingspaceNrSeats' ))+\" \")])]),_c('optgroup',{attrs:{\"label\":_vm.$t('Components.Dashboards.StatsMonthYear.Label_Workspace')}},[_c('option',{domProps:{\"value\":1,\"selected\":_vm.mType === 1}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_WorkspaceNrReservations' ))+\" \")]),_c('option',{domProps:{\"value\":4,\"selected\":_vm.mType === 4}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_WorkspaceNrSearch' ))+\" \")]),_c('option',{domProps:{\"value\":6,\"selected\":_vm.mType === 6}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_WorkspaceRevenue' ))+\" \")]),_c('option',{domProps:{\"value\":8,\"selected\":_vm.mType === 8}},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.StatsMonthYear.Option_WorkspaceNrSeats' ))+\" \")])])])]):_vm._e(),(_vm.isLoading)?_c('div',[_c('ui-loader')],1):_vm._e(),(!_vm.isLoading)?_c('div',[_c('p',{staticClass:\"subtitle mb-4\"},[_vm._v(_vm._s(_vm.title))]),(_vm.showChannelSelector)?_c('div',{staticClass:\"select is-small mb-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedChannelId),expression:\"selectedChannelId\"}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedChannelId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.getData]}},_vm._l((_vm.channels),function(channel){return _c('option',{key:channel.id,domProps:{\"value\":channel.id,\"selected\":channel.id === _vm.selectedChannelId}},[_vm._v(\" \"+_vm._s(channel.text)+\" \")])}),0)]):_vm._e(),_c('div',{staticClass:\"card-table\"},[_c('div',{staticClass:\"content\"},[_c('table',{staticClass:\"table is-fullwidth is-striped is-narrow is-size-7\"},[_c('thead',[_c('tr',[_c('th',{attrs:{\"width\":\"5%\"}},[_vm._v(\" \")]),_c('th',[_c('div',{staticClass:\"columns\"},_vm._l((_vm.years),function(val,index){return _c('span',{key:index,staticClass:\"column has-text-right\"},[_vm._v(_vm._s(val.Year))])}),0)])])]),_c('tbody',_vm._l((_vm.data),function(month,index){return _c('tr',{key:index},[_c('td',{staticClass:\"has-text-weight-bold\",attrs:{\"width\":\"5%\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"getMonthName\")(Number(month.Month) === 13 ? 'Total' : month.Month))+\" \")]),_c('td',[_c('div',{staticClass:\"columns\"},_vm._l((month.Years),function(year,index){return _c('span',{key:index,staticClass:\"column has-text-right\",class:{\n                          'has-text-weight-bold': Number(month.Month) === 13,\n                        }},[(!_vm.valueIsCurrency)?_c('span',[_vm._v(_vm._s(year.Value))]):_vm._e(),(_vm.valueIsCurrency)?_c('span',[_vm._v(_vm._s(_vm._f(\"toCurrency\")(year.Value)))]):_vm._e(),_c('span',{class:{\n                            'has-text-success': year.Percentage > 0,\n                            'has-text-danger': year.Percentage < 0,\n                          }},[_c('span',{staticClass:\"has-tooltip-arrow\",attrs:{\"data-tooltip\":year.Percentage + '%'}},[(\n                                year.Percentage > 0 &&\n                                Number(month.Month) < 13\n                              )?_c('span',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'arrow-up']}})],1):_vm._e(),(\n                                year.Percentage < 0 &&\n                                Number(month.Month) < 13\n                              )?_c('span',{staticClass:\"icon\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'arrow-down']}})],1):_vm._e()])])])}),0)])])}),0)])])])]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"columns\">\n    <div class=\"column is-12\">\n      <div>\n        <article\n          v-if=\"showTypeSelector && mType === -1\"\n          class=\"message is-info\"\n        >\n          <div class=\"message-body\">\n            {{\n              $t(\n                'Components.Dashboards.StatsMonthYear.Message_SelectStatisticsBelow'\n              )\n            }}\n          </div>\n        </article>\n\n        <div v-if=\"showTypeSelector\" class=\"select\">\n          <select v-model=\"mType\" @change=\"getData\">\n            <option :value=\"-1\" :selected=\"mType === -1\">\n              {{\n                $t(\n                  'Components.Dashboards.StatsMonthYear.Option_MeetingspacePickQuerry'\n                )\n              }}\n            </option>\n\n            <optgroup\n              :label=\"\n                $t('Components.Dashboards.StatsMonthYear.Label_Meetingspace')\n              \"\n            >\n              <option :value=\"0\" :selected=\"mType === 0\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_MeetingspaceNrReservations'\n                  )\n                }}\n              </option>\n              <option :value=\"3\" :selected=\"mType === 3\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_MeetingspaceNrSearch'\n                  )\n                }}\n              </option>\n              <option :value=\"5\" :selected=\"mType === 5\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_MeetingspaceRevenue'\n                  )\n                }}\n              </option>\n              <option :value=\"7\" :selected=\"mType === 7\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_MeetingspaceNrSeats'\n                  )\n                }}\n              </option>\n            </optgroup>\n            <optgroup\n              :label=\"\n                $t('Components.Dashboards.StatsMonthYear.Label_Workspace')\n              \"\n            >\n              <option :value=\"1\" :selected=\"mType === 1\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_WorkspaceNrReservations'\n                  )\n                }}\n              </option>\n              <option :value=\"4\" :selected=\"mType === 4\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_WorkspaceNrSearch'\n                  )\n                }}\n              </option>\n              <option :value=\"6\" :selected=\"mType === 6\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_WorkspaceRevenue'\n                  )\n                }}\n              </option>\n              <option :value=\"8\" :selected=\"mType === 8\">\n                {{\n                  $t(\n                    'Components.Dashboards.StatsMonthYear.Option_WorkspaceNrSeats'\n                  )\n                }}\n              </option>\n            </optgroup>\n          </select>\n        </div>\n        <div v-if=\"isLoading\">\n          <ui-loader />\n        </div>\n\n        <div v-if=\"!isLoading\">\n          <p class=\"subtitle mb-4\">{{ title }}</p>\n\n          <div v-if=\"showChannelSelector\" class=\"select is-small mb-4\">\n            <select v-model=\"selectedChannelId\" @change=\"getData\">\n              <option v-for=\"channel in channels\" :key=\"channel.id\" :value=\"channel.id\" :selected=\"channel.id === selectedChannelId\">\n                {{ channel.text }}\n              </option>\n            </select>\n          </div>\n\n          <div class=\"card-table\">\n            <div class=\"content\">\n              <table class=\"table is-fullwidth is-striped is-narrow is-size-7\">\n                <thead>\n                  <tr>\n                    <th width=\"5%\">&nbsp;</th>\n                    <th>\n                      <div class=\"columns\">\n                        <span\n                          v-for=\"(val, index) in years\"\n                          :key=\"index\"\n                          class=\"column has-text-right\"\n                          >{{ val.Year }}</span\n                        >\n                      </div>\n                    </th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr v-for=\"(month, index) in data\" :key=\"index\">\n                    <td width=\"5%\" class=\"has-text-weight-bold\">\n                      {{\n                        Number(month.Month) === 13\n                          ? 'Total'\n                          : month.Month | getMonthName\n                      }}\n                    </td>\n                    <td>\n                      <div class=\"columns\">\n                        <span\n                          v-for=\"(year, index) in month.Years\"\n                          :key=\"index\"\n                          class=\"column has-text-right\"\n                          :class=\"{\n                            'has-text-weight-bold': Number(month.Month) === 13,\n                          }\"\n                        >\n                          <span v-if=\"!valueIsCurrency\">{{ year.Value }}</span>\n                          <span v-if=\"valueIsCurrency\">{{\n                            year.Value | toCurrency\n                          }}</span>\n\n                          <span\n                            :class=\"{\n                              'has-text-success': year.Percentage > 0,\n                              'has-text-danger': year.Percentage < 0,\n                            }\"\n                          >\n                            <span\n                              class=\"has-tooltip-arrow\"\n                              :data-tooltip=\"year.Percentage + '%'\"\n                            >\n                              <span\n                                v-if=\"\n                                  year.Percentage > 0 &&\n                                  Number(month.Month) < 13\n                                \"\n                                class=\"icon\"\n                              >\n                                <font-awesome-icon\n                                  :icon=\"['fas', 'arrow-up']\"\n                                />\n                              </span>\n\n                              <span\n                                v-if=\"\n                                  year.Percentage < 0 &&\n                                  Number(month.Month) < 13\n                                \"\n                                class=\"icon\"\n                              >\n                                <font-awesome-icon\n                                  :icon=\"['fas', 'arrow-down']\"\n                                />\n                              </span>\n                            </span>\n                          </span>\n                        </span>\n                      </div>\n                    </td>\n                  </tr>\n                </tbody>\n              </table>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapState } from 'vuex'\nimport stats from '@/providers/stats'\n\nexport default {\n  props: {\n    channelId: {\n      default: 0,\n      type: Number,\n    },\n\n    locationId: {\n      default: 0,\n      type: Number,\n    },\n\n    showChannelSelector: {\n      type: Boolean,\n      default: false,\n    },\n\n    showTypeSelector: {\n      type: Boolean,\n      default: true,\n    },\n\n    hideMonthRows: {\n      type: Boolean,\n      default: false,\n    },\n\n    type: {\n      default: -1,\n      type: Number,\n    },\n  },\n\n  data() {\n    return {\n      data: [],\n      isLoading: false,\n      mType: this.type,\n      title: '',\n      valueIsCurrency: false,\n      selectedChannelId: 0,\n    }\n  },\n\n  computed: {\n    ...mapState('locationStore', ['locationState']),\n\n    channels() {\n      let channels = []\n\n      if (this.locationState && this.locationState.Channels && this.locationState.Channels.length > 0) {\n        channels.push({\n          id: 0,\n          text: this.$t('Components.Reservation.ReservationList.Label_AllChannels')\n        })\n\n        for (let i = 0; i < this.locationState.Channels.length; i++) {\n          let channel = this.locationState.Channels[i]\n          channels.push({\n            id: channel.ChannelId,\n            text: channel.ChannelName\n          })\n        }\n      }\n\n      return channels\n    },\n\n    years() {\n      let years = []\n\n      if (typeof this.data !== 'undefined' && this.data.length > 0) {\n        years = this.data[0].Years\n      }\n\n      return years\n    },\n  },\n\n  created() {\n    this.selectedChannelId = this.channelId;\n    this.getData();\n  },\n\n  methods: {\n    getData() {\n      let self = this\n      self.data = []\n      self.title = ''\n\n      if (self.mType > -1) {\n        self.isLoading = true\n      }\n\n      switch (self.mType) {\n        case 0: // MEETINGSPACE RESERVATIONS\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleMeetingspaceNrReservations'\n          )\n          self.valueIsCurrency = false\n          stats.methods\n            .getReservationsPerYearPerMonth(1, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 1: // WORKSPACE RESERVATIONS\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleWorkspaceNrReservations'\n          )\n          self.valueIsCurrency = false\n          stats.methods\n            .getReservationsPerYearPerMonth(2, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 2: // FEE INVOICES\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleFeeInvoicesRevenue'\n          )\n          self.valueIsCurrency = true\n          self.nrOfDecimals = 2\n          self.prefix = '&euro;'\n\n          stats.methods\n            .getFeeInvoiceTotalPerYearPerMonth(this.locationId)\n            .then((data) => {\n              this.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 3: // MEETINGSPACE SEARCH QUERIES\n          this.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleMeetingspaceSearchQuerries'\n          )\n          self.valueIsCurrency = false\n          stats.methods\n            .getSearchQueriesPerYearPerMonth(1, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              this.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 4: // WORKSPACE SEARCH QUERIES\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleWorkspaceSearchQueries'\n          )\n          self.valueIsCurrency = false\n          stats.methods\n            .getSearchQueriesPerYearPerMonth(2, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 5: // MEETINGSPACE REVENUE QUERIES\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleMeetingspaceRevenue'\n          )\n          self.valueIsCurrency = true\n          stats.methods\n            .getRevenuePerYearPerMonth(1, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 6: // WORKSPACE REVENUE QUERIES\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleWorkspaceRevenue'\n          )\n          self.valueIsCurrency = true\n          stats.methods\n            .getRevenuePerYearPerMonth(2, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n\n          break\n        case 7: // MEETINGSPACE SEATS QUERIES\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleMeetingspaceNrOfSeats'\n          )\n          self.valueIsCurrency = false\n          stats.methods\n            .getSeatsPerYearPerMonth(1, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n        case 8: // WORKSPACE SEATS QUERIES\n          self.title = this.$t(\n            'Components.Dashboards.StatsMonthYear.Card_TitleWorkspaceNrOfSeats'\n          )\n          self.valueIsCurrency = false\n          stats.methods\n            .getSeatsPerYearPerMonth(2, this.selectedChannelId, this.locationId)\n            .then((data) => {\n              self.data = data\n            })\n            .finally(() => {\n              self.isLoading = false\n            })\n\n          break\n      }\n    },\n  },\n}\n</script>\n\n<style scoped>\n.glowing-pulse {\n  box-shadow: 0 0 0 0 rgba(0, 0, 0, 1);\n  transform: scale(1);\n  animation: glowing-pulse 2s infinite;\n}\n\n@keyframes glowing-pulse {\n  0% {\n    transform: scale(0.95);\n    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);\n  }\n\n  70% {\n    transform: scale(1);\n    box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);\n  }\n\n  100% {\n    transform: scale(0.95);\n    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);\n  }\n}\n</style>\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!./StatsMonthYear.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!./StatsMonthYear.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StatsMonthYear.vue?vue&type=template&id=2cfeeade&scoped=true\"\nimport script from \"./StatsMonthYear.vue?vue&type=script&lang=js\"\nexport * from \"./StatsMonthYear.vue?vue&type=script&lang=js\"\nimport style0 from \"./StatsMonthYear.vue?vue&type=style&index=0&id=2cfeeade&prod&scoped=true&lang=css\"\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  \"2cfeeade\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatsMonthYear.vue?vue&type=style&index=0&id=2cfeeade&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('p',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Dashboards.ReservationInvoiceSplit.Title_InvoiceSplit'))+\" \")]),(_vm.dataLoaded && !_vm.noData)?_c('Doughnut',{staticClass:\"doughnut\",attrs:{\"chartdata\":_vm.chartData,\"options\":_vm.options}}):_vm._e(),(_vm.dataLoaded && _vm.noData)?_c('Message',{staticClass:\"has-margin-top\",attrs:{\"message\":_vm.$t(\n        'Components.Dashboards.ReservationInvoiceSplit.Message_NoReservations'\n      )}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <p class=\"subtitle\">\n      {{\n        $t('Components.Dashboards.ReservationInvoiceSplit.Title_InvoiceSplit')\n      }}\n    </p>\n\n    <Doughnut\n      v-if=\"dataLoaded && !noData\"\n      :chartdata=\"chartData\"\n      :options=\"options\"\n      class=\"doughnut\"\n    />\n\n    <Message\n      v-if=\"dataLoaded && noData\"\n      class=\"has-margin-top\"\n      :message=\"\n        $t(\n          'Components.Dashboards.ReservationInvoiceSplit.Message_NoReservations'\n        )\n      \"\n    />\n  </div>\n</template>\n<script>\nimport statsProvider from '@/providers/stats'\n\nconst Doughnut = () => import('@/components/UI/Charts/Doughnut')\nconst Message = () => import('@/components/UI/Message')\n\nexport default {\n  components: {\n    Doughnut,\n    Message,\n  },\n\n  props: {\n    endDate: {\n      default: new Date(),\n      type: Date,\n    },\n\n    locationId: {\n      default: 0,\n      type: Number,\n    },\n\n    meetingtypeId: {\n      default: 0,\n      type: Number,\n    },\n\n    startDate: {\n      default: new Date(),\n      type: Date,\n    },\n  },\n\n  data() {\n    return {\n      dataLoaded: false,\n      isLoading: false,\n      noData: false,\n      reservations: [],\n\n      chartData: {\n        labels: [],\n        datasets: [],\n      },\n      options: {\n        plugins: {\n          legend: {\n            display: true,\n            position: 'bottom',\n          },\n        },\n        cutout: '75%',\n        responsive: true,\n        maintainAspectRatio: true,\n        aspectRatio: 16 / 9,\n      },\n    }\n  },\n\n  watch: {\n    endDate: {\n      immediate: true,\n      handler: function() {\n        this.getReservationInvoiceSplitData()\n      },\n    },\n\n    startDate: {\n      immediate: true,\n      handler: function() {\n        this.getReservationInvoiceSplitData()\n      },\n    },\n  },\n\n  created() {\n    this.getReservationInvoiceSplitData()\n  },\n\n  mounted() {\n    window.addEventListener('resize', this.windowResizeListener)\n    this.windowResizeListener()\n  },\n\n  beforeDestroy() {\n    window.removeEventListener('resize', this.windowResizeListener)\n  },\n\n  methods: {\n    windowResizeListener() {\n      const el = this.$el.getBoundingClientRect()\n      this.options = Object.assign(this.options, {\n        plugins: {\n          legend: {\n            position: el.width < 340 ? 'bottom' : 'right',\n          },\n        },\n        aspectRatio: el.width < 340 ? 4 / 3 : 16 / 9,\n      })\n    },\n\n    getReservationInvoiceSplitData() {\n      let self = this\n      self.reservations = []\n      self.dataLoaded = false\n\n      if (!self.isLoading) {\n        self.isLoading = true\n        this.noData = false\n        statsProvider.methods\n          .getLocationReservationInvoiceSplit(\n            self.locationId,\n            self.meetingtypeId,\n            self.$options.filters.dateObjectIsoDateString(self.startDate),\n            self.$options.filters.dateObjectIsoDateString(self.endDate)\n          )\n          .then((response) => {\n            if (response.status === 200 && response.data.length) {\n              self.reservations = response.data\n\n              self.prepData()\n              return\n            }\n            self.noData = true\n            self.dataLoaded = true\n          })\n          .finally(() => {\n            self.isLoading = false\n          })\n      }\n    },\n\n    prepData() {\n      this.chartData.datasets = []\n      this.noData = false\n\n      if (this.reservations) {\n        let data1 = this.reservations.find((r) => r.HasInvoice === 1)\n        let nrReservationsHasInvoice =\n          typeof data1 === 'undefined' ? 0 : data1.NrOfReservations\n        let data2 = this.reservations.find((r) => r.HasInvoice === 0)\n        let nrReservationsHasNoInvoice =\n          typeof data2 === 'undefined' ? 0 : data2.NrOfReservations\n\n        this.noData =\n          nrReservationsHasInvoice === 0 && nrReservationsHasNoInvoice === 0\n        this.options.plugins.legend.display = !this.noData\n\n        this.chartData.labels = this.noData\n          ? [\n            this.$t(\n              'Components.Dashboards.ReservationInvoiceSplit.Label_NoReservations'\n            ),\n          ]\n          : [\n            this.$t(\n              'Components.Dashboards.ReservationInvoiceSplit.Legend_WithInvoice'\n            ),\n            this.$t(\n              'Components.Dashboards.ReservationInvoiceSplit.Legend_WithoutInvoice'\n            ),\n          ]\n\n        this.chartData.datasets.push({\n          borderWidth: 1,\n          borderColor: this.noData\n            ? ['rgba(16, 16, 16, .5)']\n            : ['rgba(149, 193, 30, 1)', 'rgba(252, 60, 99, 1)'],\n          backgroundColor: this.noData\n            ? ['rgba(16, 16, 16, 0.3)']\n            : ['rgba(149, 193, 30, 0.3)', 'rgba(252, 60, 99, 0.3)'],\n          data: this.noData\n            ? [100]\n            : [nrReservationsHasInvoice, nrReservationsHasNoInvoice],\n        })\n      }\n\n      this.dataLoaded = true\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!./ReservationInvoiceSplit.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!./ReservationInvoiceSplit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReservationInvoiceSplit.vue?vue&type=template&id=3a53f4de\"\nimport script from \"./ReservationInvoiceSplit.vue?vue&type=script&lang=js\"\nexport * from \"./ReservationInvoiceSplit.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","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Doughnut.vue?vue&type=style&index=0&id=c7f9f4c4&prod&lang=scss&scoped=true\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('p',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('Components.Dashboards.ReservationsStatusSplit.Subtitle_StatusSplit'))+\" \")]),(_vm.dataLoaded)?_c('Doughnut',{staticClass:\"doughnut\",attrs:{\"chartdata\":_vm.chartData,\"options\":_vm.options}}):_vm._e(),(_vm.dataLoaded && _vm.noData)?_c('Message',{attrs:{\"message\":_vm.$t(\n        'Components.Dashboards.ReservationsStatusSplit.Message_NoReservations'\n      )}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <p class=\"subtitle\">\n      {{\n        $t('Components.Dashboards.ReservationsStatusSplit.Subtitle_StatusSplit')\n      }}\n    </p>\n\n    <Doughnut\n      v-if=\"dataLoaded\"\n      :chartdata=\"chartData\"\n      :options=\"options\"\n      class=\"doughnut\"\n    />\n\n    <Message\n      v-if=\"dataLoaded && noData\"\n      :message=\"\n        $t(\n          'Components.Dashboards.ReservationsStatusSplit.Message_NoReservations'\n        )\n      \"\n    />\n  </div>\n</template>\n<script>\nimport reservationProvider from '@/providers/reservation'\nimport Doughnut from '@/components/UI/Charts/Doughnut'\nimport Message from '@/components/UI/Message'\nimport { format, parseISO } from 'date-fns'\n\nexport default {\n  components: {\n    Doughnut,\n    Message,\n  },\n\n  props: {\n    fixLegendPosition: {\n      type: Boolean,\n      default: false,\n    },\n    companyId: {\n      default: 0,\n      type: Number,\n    },\n\n    channelId: {\n      default: 0,\n      type: Number,\n    },\n\n    locationId: {\n      default: 0,\n      type: Number,\n    },\n\n    meetingtypeId: {\n      default: 0,\n      type: Number,\n    },\n\n    voucherId: {\n      default: 0,\n      type: Number,\n    },\n\n    customerId: {\n      default: 0,\n      type: Number,\n    },\n\n    leadId: {\n      default: 0,\n      type: Number,\n    },\n\n    showDatesLabel: {\n      default: false,\n      type: Boolean,\n    },\n\n    searchTerm: {\n      default: '',\n      type: String,\n    },\n\n    endDate: {\n      default: () => {\n        return new Date(1900, 0, 1)\n      },\n      type: Date,\n    },\n\n    startDate: {\n      default: () => {\n        return new Date(1900, 0, 1)\n      },\n      type: Date,\n    },\n  },\n\n  data() {\n    return {\n      convertedData: [],\n      dataLoaded: false,\n      noData: false,\n      reservations: [],\n\n      chartData: {\n        labels: [],\n        datasets: [],\n      },\n\n      options: {\n        plugins: {\n          legend: {\n            display: true,\n            position: 'bottom',\n          },\n        },\n        cutout: '75%',\n        responsive: true,\n        maintainAspectRatio: true,\n        aspectRatio: 16 / 9,\n      }\n    }\n  },\n\n  computed: {\n    filteredReservation() {\n      let reservations = [];\n\n      if (this.reservations.length > 0) {\n        reservations = this.reservations.filter((r) => r.Status !== 'PendingPayment' && r.Status !== 'LocationMustConfirm');\n      }\n\n      return reservations;\n    },\n  },\n\n  created() {\n    this.getReservationStatusSplitData()\n  },\n\n  mounted() {\n    window.addEventListener('resize', this.windowResizeListener)\n    this.windowResizeListener()\n  },\n\n  beforeDestroy() {\n    window.removeEventListener('resize', this.windowResizeListener)\n  },\n\n  methods: {\n    windowResizeListener() {\n      if (this.fixLegendPosition) {\n        return\n      }\n      const el = this.$el.getBoundingClientRect()\n      this.options = Object.assign(this.options, {\n        plugins: {\n          legend: {\n            position: el.width < 340 ? 'bottom' : 'right',\n          },\n        },\n        aspectRatio: el.width < 340 ? 4 / 3 : 16 / 9,\n      })\n    },\n\n    getReservationStatusSplitData() {\n      reservationProvider.methods.getLocationReservationStatusCount(\n          this.channelId,\n          this.locationId,\n          this.searchTerm, \n          format(this.startDate, 'yyyy-MM-dd'),\n          format(this.endDate, 'yyyy-MM-dd'),\n          this.meetingtypeId, \n          this.companyId, \n          this.customerId,\n          this.leadId,\n          this.voucherId\n        )\n        .then((response) => {\n          if (response.status === 200) {\n            this.reservations = response.data\n          }\n        })\n        .finally(() => {\n          this.prepData()\n        })\n    },\n\n    prepData() {\n      this.chartData.datasets = []\n\n      let labels = []\n      let borderColors = []\n      let backgroundColors = []\n      let data = []\n\n      for (let i = 0; i < this.filteredReservation.length; i++) {\n        let res = this.filteredReservation[i];\n        //labels.push(this.$t(`Components.Proposals.ProposalRequests.Status_${res.Status}`));\n        labels.push(res.Status);\n\n        let statusColor = this.getStatusColour(res.Status);\n\n        borderColors.push(statusColor.borderColor);\n        backgroundColors.push(statusColor.backgroundColor);\n\n        data.push(res.NrOfReservations)\n      }\n\n      this.noData =\n        data.reduce((a, b) => {\n          return a + b\n        }) === 0\n      this.options.plugins.legend.display = !this.noData\n\n      if (this.noData) {\n        this.chartData.labels = [\n          this.$t(\n            'Components.Dashboards.ReservationInvoiceSplit.Label_NoReservations'\n          ),\n        ]\n        this.chartData.datasets.push({\n          borderWidth: 1,\n          borderColor: ['rgba(16, 16, 16, .5)'],\n          backgroundColor: ['rgba(16, 16, 16, 0.3)'],\n          data: [100],\n        })\n      } else {\n        this.chartData.labels = labels\n        this.chartData.datasets.push({\n          borderWidth: 1,\n          borderColor: borderColors,\n          backgroundColor: backgroundColors,\n          data: data,\n        })\n      }\n\n      this.dataLoaded = true;\n    },\n\n    getStatusColour(status) {\n      switch (status) {\n        case 'Request':\n          return {\n            borderColor: 'rgba(254, 198, 50, 1)',\n            backgroundColor: 'rgba(254, 198, 50, 0.3)',\n          }\n        case 'Optional':\n          return {\n            borderColor: 'rgba(2, 186, 255, 1)',\n            backgroundColor: 'rgba(2, 186, 255, 0.3)',\n          }\n        case 'Final':\n          return {\n            borderColor: 'rgba(149, 193, 30, 1)',\n            backgroundColor: 'rgba(149, 193, 30, 0.3)',\n          }\n        case 'Cancelled':\n          return {\n            borderColor: 'rgba(252, 60, 99, 1)',\n            backgroundColor: 'rgba(252, 60, 99, 0.3)',\n          }\n        default:\n          return {\n            borderColor: 'rgba(16, 16, 16, 1)',\n            backgroundColor: 'rgba(16, 16, 16, 0.3)',\n          }\n      }\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!./ReservationsStatusSplit.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!./ReservationsStatusSplit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReservationsStatusSplit.vue?vue&type=template&id=057c9fa8\"\nimport script from \"./ReservationsStatusSplit.vue?vue&type=script&lang=js\"\nexport * from \"./ReservationsStatusSplit.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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.1.toFixed);\n\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\nvar multiply = function (data, n, c) {\n  var index = -1;\n  var c2 = c;\n  while (++index < 6) {\n    c2 += n * data[index];\n    data[index] = c2 % 1e7;\n    c2 = floor(c2 / 1e7);\n  }\n};\n\nvar divide = function (data, n) {\n  var index = 6;\n  var c = 0;\n  while (--index >= 0) {\n    c += data[index];\n    data[index] = floor(c / n);\n    c = (c % n) * 1e7;\n  }\n};\n\nvar dataToString = function (data) {\n  var index = 6;\n  var s = '';\n  while (--index >= 0) {\n    if (s !== '' || index === 0 || data[index] !== 0) {\n      var t = $String(data[index]);\n      s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n    }\n  } return s;\n};\n\nvar FORCED = fails(function () {\n  return nativeToFixed(0.00008, 3) !== '0.000' ||\n    nativeToFixed(0.9, 0) !== '1' ||\n    nativeToFixed(1.255, 2) !== '1.25' ||\n    nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n  // V8 ~ Android 4.3-\n  nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  toFixed: function toFixed(fractionDigits) {\n    var number = thisNumberValue(this);\n    var fractDigits = toIntegerOrInfinity(fractionDigits);\n    var data = [0, 0, 0, 0, 0, 0];\n    var sign = '';\n    var result = '0';\n    var e, z, j, k;\n\n    // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n    if (fractDigits < 0 || fractDigits > 20) throw new $RangeError('Incorrect fraction digits');\n    // eslint-disable-next-line no-self-compare -- NaN check\n    if (number !== number) return 'NaN';\n    if (number <= -1e21 || number >= 1e21) return $String(number);\n    if (number < 0) {\n      sign = '-';\n      number = -number;\n    }\n    if (number > 1e-21) {\n      e = log(number * pow(2, 69, 1)) - 69;\n      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(data, 0, z);\n        j = fractDigits;\n        while (j >= 7) {\n          multiply(data, 1e7, 0);\n          j -= 7;\n        }\n        multiply(data, pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(data, 1 << 23);\n          j -= 23;\n        }\n        divide(data, 1 << j);\n        multiply(data, 1, 1);\n        divide(data, 2);\n        result = dataToString(data);\n      } else {\n        multiply(data, 0, z);\n        multiply(data, 1 << -e, 0);\n        result = dataToString(data) + repeat('0', fractDigits);\n      }\n    }\n    if (fractDigits > 0) {\n      k = result.length;\n      result = sign + (k <= fractDigits\n        ? '0.' + repeat('0', fractDigits - k) + result\n        : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n    } else {\n      result = sign + result;\n    } return result;\n  }\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"section\"},[_c('div',{staticClass:\"container\"},[_c('ui-page-hero',{attrs:{\"title\":_vm.$t('Views.Reservation.Dashboard.Main_Title')}}),_c('MonthYearSelector',{attrs:{\"isLoadingLeft\":_vm.isLoadingLeft,\"isLoadingRight\":_vm.isLoadingRight,\"month\":0,\"showMonthSelector\":true,\"year\":Number(_vm.year)},on:{\"monthYearSelected\":_vm.monthYearSelected}}),_c('article',{staticClass:\"box mb-5\"},[_c('ReservationGroupsizeSplit',{key:'rgs' + _vm.timestamp,attrs:{\"locationId\":_vm.locationId,\"showMonthYearSelector\":false,\"month\":_vm.month,\"year\":_vm.year}})],1),_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column is-two-thirds\"},[_c('article',{staticClass:\"box mb-5\"},[_c('StatsMonthYear',{attrs:{\"channelId\":_vm.defaultChannel,\"locationId\":_vm.locationId,\"type\":0,\"showTypeSelector\":false,\"showChannelSelector\":true}})],1),_c('article',{staticClass:\"box mb-5\"},[_c('StatsMonthYear',{attrs:{\"channelId\":_vm.defaultChannel,\"locationId\":_vm.locationId,\"type\":5,\"showTypeSelector\":false,\"showChannelSelector\":true}})],1)]),_c('div',{staticClass:\"column\"},[_c('article',{staticClass:\"box\"},[_c('LeadSourceSplit',{key:'lss' + _vm.timestamp,staticClass:\"mb-6\",attrs:{\"locationId\":_vm.locationId,\"endDate\":_vm.pageState.endDate,\"startDate\":_vm.pageState.startDate}}),_c('ReservationStatusSplit',{key:'rss' + _vm.timestamp,staticClass:\"mb-6\",attrs:{\"companyId\":_vm.companyId,\"endDate\":_vm.pageState.endDate,\"locationId\":_vm.locationId,\"meetingtypeId\":_vm.meetingtypeId,\"startDate\":_vm.pageState.startDate}}),_c('ReservationInvoiceSplit',{key:'ris' + _vm.timestamp,staticClass:\"mb-6\",attrs:{\"endDate\":_vm.pageState.endDate,\"locationId\":_vm.locationId,\"meetingtypeId\":_vm.meetingtypeId,\"startDate\":_vm.pageState.startDate}})],1)])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"section\">\n    <div class=\"container\">\n      <ui-page-hero :title=\"$t('Views.Reservation.Dashboard.Main_Title')\" />\n\n      <MonthYearSelector\n        @monthYearSelected=\"monthYearSelected\"\n        :isLoadingLeft=\"isLoadingLeft\"\n        :isLoadingRight=\"isLoadingRight\"\n        :month=\"0\"\n        :showMonthSelector=\"true\"\n        :year=\"Number(year)\"\n      />\n\n      <article class=\"box mb-5\">\n        <ReservationGroupsizeSplit\n          :locationId=\"locationId\"\n          :showMonthYearSelector=\"false\"\n          :month=\"month\"\n          :year=\"year\"\n          :key=\"'rgs' + timestamp\"\n        />\n      </article>\n\n      <div class=\"columns\">\n        <!-- Left column -->\n        <div class=\"column is-two-thirds\">\n          <article class=\"box mb-5\">\n            <StatsMonthYear\n              :channelId=\"defaultChannel\"\n              :locationId=\"locationId\"\n              :type=\"0\"\n              :showTypeSelector=\"false\"\n              :showChannelSelector=\"true\"\n            />\n          </article>\n\n          <article class=\"box mb-5\">\n            <StatsMonthYear\n              :channelId=\"defaultChannel\"\n              :locationId=\"locationId\"\n              :type=\"5\"\n              :showTypeSelector=\"false\"\n              :showChannelSelector=\"true\"\n            />\n          </article>\n        </div>\n\n        <!-- Right column -->\n        <div class=\"column\">\n          <article class=\"box\">\n            <LeadSourceSplit\n              :locationId=\"locationId\"\n              :endDate=\"pageState.endDate\"\n              :startDate=\"pageState.startDate\"\n              :key=\"'lss' + timestamp\"\n              class=\"mb-6\"\n            />\n\n            <ReservationStatusSplit\n              :companyId=\"companyId\"\n              :endDate=\"pageState.endDate\"\n              :locationId=\"locationId\"\n              :meetingtypeId=\"meetingtypeId\"\n              :startDate=\"pageState.startDate\"\n              :key=\"'rss' + timestamp\"\n              class=\"mb-6\"\n            />\n\n            <ReservationInvoiceSplit\n              :endDate=\"pageState.endDate\"\n              :locationId=\"locationId\"\n              :meetingtypeId=\"meetingtypeId\"\n              :startDate=\"pageState.startDate\"\n              :key=\"'ris' + timestamp\"\n              class=\"mb-6\"\n            />\n          </article>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapState, mapMutations } from 'vuex'\n\nexport default {\n  components: {\n    MonthYearSelector: () => import('@/components/UI/MonthYearSelector'),\n    ReservationInvoiceSplit: () =>\n      import(\n        /* webpackChunkName: \"dashboard-reservations\" */ '@/components/Dashboards/ReservationInvoiceSplit'\n      ),\n    ReservationStatusSplit: () =>\n      import(\n        /* webpackChunkName: \"dashboard-reservations\" */ '@/components/Dashboards/ReservationsStatusSplit'\n      ),\n    StatsMonthYear: () =>\n      import(\n        /* webpackChunkName: \"dashboard-reservations\" */ '@/components/Dashboards/StatsMonthYear'\n      ),\n    ReservationGroupsizeSplit: () =>\n      import(\n        /* webpackChunkName: \"dashboard-reservations\" */ '@/components/Dashboards/ReservationGroupsizeSplit'\n      ),\n    LeadSourceSplit: () => import(/* webpackChunkName: \"dashboard-reservations\" */ '@/components/Dashboards/LeadSourceSplit')\n  },\n\n  data() {\n    return {\n      companyId: 0,\n      isLoadingLeft: false,\n      isLoadingRight: false,\n      isSearching: false,\n      locationId: Number(this.$route.params.locationId),\n      meetingtypeId: 1,\n\n      month: 0,\n      year: new Date().getFullYear(),\n\n      pageState:\n        this.$store.getters['reservationStore/getReservationsPageState'],\n      timestamp: new Date().getTime(),\n    }\n  },\n\n  computed: {\n    ...mapState('locationStore', ['locationState']),\n\n    isAdmin() {\n      return this.$store.getters['profileStore/isAdmin']\n    },\n\n    defaultChannel() {\n      let channelId = 0\n\n      if (this.locationState && this.locationState.Settings) {\n        channelId = this.locationState.Settings.ChannelId\n      }\n\n      return channelId\n    }\n  },\n\n  created() {\n    let currentDate = new Date()\n\n    this.pageState.startDate = new Date(currentDate.getFullYear(), 0, 1)\n    this.pageState.endDate = new Date(currentDate.getFullYear(), 11, 31)\n    this.setReservationsPageState(this.pageState)\n  },\n\n  methods: {\n    ...mapMutations('reservationStore', ['setReservationsPageState']),\n    datesChanged(searchQuery) {\n      let self = this\n      self.pageState.reservations = []\n      self.pageState.page = 1\n      self.pageState.reachedEnd = false\n\n      self.pageState.startDate = searchQuery.startDate\n      self.pageState.endDate = searchQuery.endDate\n\n      self.setReservationsPageState(self.pageState)\n\n      self.timestamp = new Date().getTime()\n    },\n\n    monthYearSelected(data) {\n      this.isLoadingLeft = data.direction === 'left'\n      this.isLoadingRight = data.direction === 'right'\n\n      this.month = data.month\n      this.year = data.year\n      this.timestamp = new Date().getTime()\n\n      this.pageState.startDate = new Date(data.year, data.month - 1, 1)\n      this.pageState.endDate = new Date(data.year, data.month > 0 ? data.month : 12, 0)\n      this.setReservationsPageState(this.pageState)\n\n      this.isLoadingLeft = false\n      this.isLoadingRight = false\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!./Dashboard.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!./Dashboard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=daf46bb6\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('p',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Subtitle_ReservationGroupsize' ))+\" \")]),(_vm.showMonthYearSelector)?_c('MonthYearSelector',{attrs:{\"isLoadingLeft\":_vm.isLoadingLeft,\"isLoadingRight\":_vm.isLoadingRight,\"month\":Number(_vm.mMonth),\"year\":Number(_vm.mYear)},on:{\"monthYearSelected\":_vm.monthYearSelected}}):_vm._e(),_c('table',{staticClass:\"table is-fullwidth is-striped is-narrow is-size-7\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_Category' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\"%\")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_NrOfRes' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_TotalSeats' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_TotalRevenue' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_CreateFrontend' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_CreateBackend' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_EditFrontend' ))+\" \")]),_c('th',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm.$t( 'Components.Dashboards.ReservationGroupsizeSplit.Table_EditBackend' ))+\" \")])])]),_c('tbody',[(_vm.isLoading)?_c('tr',[_c('td',{attrs:{\"colspan\":\"8\"}},[_c('ui-loader')],1)]):_vm._e(),_vm._l((_vm.groupsizes),function(groupsize,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(groupsize.Category))]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(groupsize.CategoryPercentage.toFixed(1))+\"% \")]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(_vm._s(groupsize.NrOfReservations))]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(_vm._s(groupsize.TotalSeats))]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(_vm._f(\"toCurrency\")(groupsize.TotalRevenueExcl))+\" \")]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(groupsize.CreateFrontendPercentage)+\"% \")]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(groupsize.CreateBackendPercentage)+\"% \")]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(\" \"+_vm._s(groupsize.EditFrontendPercentage)+\"% \")]),_c('td',{staticClass:\"has-text-right\"},[_vm._v(_vm._s(groupsize.EditBackendPercentage)+\"%\")])])})],2)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <p class=\"subtitle\">\n      {{\n        $t(\n          'Components.Dashboards.ReservationGroupsizeSplit.Subtitle_ReservationGroupsize'\n        )\n      }}\n    </p>\n\n    <MonthYearSelector\n      v-if=\"showMonthYearSelector\"\n      @monthYearSelected=\"monthYearSelected\"\n      :isLoadingLeft=\"isLoadingLeft\"\n      :isLoadingRight=\"isLoadingRight\"\n      :month=\"Number(mMonth)\"\n      :year=\"Number(mYear)\"\n    />\n\n    <!-- <div v-if=\"!showMonthYearSelector\">\n      <p class=\"sub-tile\">\n        <span v-if=\"mMonth > 0\"\n          >{{ mMonth | getMonthName($i18n.locale) }}\n        </span>\n        <span>{{ mYear }}</span>\n      </p>\n    </div> -->\n\n    <table class=\"table is-fullwidth is-striped is-narrow is-size-7\">\n      <thead>\n        <tr>\n          <th>\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_Category'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">%</th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_NrOfRes'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_TotalSeats'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_TotalRevenue'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_CreateFrontend'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_CreateBackend'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_EditFrontend'\n              )\n            }}\n          </th>\n          <th class=\"has-text-right\">\n            {{\n              $t(\n                'Components.Dashboards.ReservationGroupsizeSplit.Table_EditBackend'\n              )\n            }}\n          </th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr v-if=\"isLoading\">\n          <td colspan=\"8\">\n            <ui-loader />\n          </td>\n        </tr>\n        <tr v-for=\"(groupsize, index) in groupsizes\" :key=\"index\">\n          <td>{{ groupsize.Category }}</td>\n          <td class=\"has-text-right\">\n            {{ groupsize.CategoryPercentage.toFixed(1) }}%\n          </td>\n          <td class=\"has-text-right\">{{ groupsize.NrOfReservations }}</td>\n          <td class=\"has-text-right\">{{ groupsize.TotalSeats }}</td>\n          <td class=\"has-text-right\">\n            {{ groupsize.TotalRevenueExcl | toCurrency }}\n          </td>\n          <td class=\"has-text-right\">\n            {{ groupsize.CreateFrontendPercentage }}%\n          </td>\n          <td class=\"has-text-right\">\n            {{ groupsize.CreateBackendPercentage }}%\n          </td>\n          <td class=\"has-text-right\">\n            {{ groupsize.EditFrontendPercentage }}%\n          </td>\n          <td class=\"has-text-right\">{{ groupsize.EditBackendPercentage }}%</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</template>\n\n<script>\nimport statsProvider from '@/providers/stats'\n\nexport default {\n  components: {\n    MonthYearSelector: () => import('@/components/UI/MonthYearSelector'),\n  },\n\n  props: {\n    companyId: {\n      default: 0,\n      type: Number,\n    },\n\n    locationId: {\n      default: 0,\n      type: Number,\n    },\n\n    month: {\n      default: 0,\n      type: Number,\n    },\n\n    showMonthYearSelector: {\n      default: false,\n      type: Boolean,\n    },\n\n    year: {\n      default: new Date().getFullYear(),\n      type: Number,\n    },\n  },\n\n  data() {\n    return {\n      groupsizes: [],\n      isLoading: false,\n      isLoadingLeft: false,\n      isLoadingRight: false,\n      mMonth: 0,\n      mYear: new Date().getFullYear(),\n    }\n  },\n\n   watch: {\n    month: {\n      //immediate: true,\n      handler: function(newVal, oldVal) {\n        this.mMonth = this.month\n      }\n    },\n\n    year: {\n      //immediate: true,\n      handler: function(newVal, oldVal) {\n        this.mYear = this.year\n      }\n    }\n  },\n\n  created() {\n    this.mMonth = this.month\n    this.mYear = this.year\n\n    this.getLocationReservationGroupsizeSplit()\n  },\n\n  methods: {\n    monthYearSelected(data) {\n      let self = this\n\n      self.mMonth = Number(data.month)\n      self.mYear = Number(data.year)\n\n      self.isLoadingLeft = data.direction === 'left'\n      self.isLoadingRight = data.direction === 'right'\n\n      self.getLocationReservationGroupsizeSplit()\n    },\n\n    getLocationReservationGroupsizeSplit() {\n      let self = this\n      self.groupsizes = []\n      self.isLoading = true\n\n      statsProvider.methods\n        .getLocationReservationgroupsizeSplit(\n          self.locationId,\n          self.mMonth,\n          self.mYear,\n          self.companyId\n        )\n        .then((response) => {\n          if (response.status === 200) {\n            self.groupsizes = response.data\n          }\n        })\n        .finally(() => {\n          self.isLoading = false\n          self.isLoadingLeft = false\n          self.isLoadingRight = false\n        })\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!./ReservationGroupsizeSplit.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!./ReservationGroupsizeSplit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReservationGroupsizeSplit.vue?vue&type=template&id=0f9b154c\"\nimport script from \"./ReservationGroupsizeSplit.vue?vue&type=script&lang=js\"\nexport * from \"./ReservationGroupsizeSplit.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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('article',{staticClass:\"message\",class:_vm.combindedClass},[_c('div',{staticClass:\"message-body\"},[(_vm.message)?[_vm._v(\" \"+_vm._s(_vm.message)+\" \")]:_vm._e(),_vm._t(\"content\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <article\n    class=\"message\"\n    :class=\"combindedClass\"\n  >\n    <div class=\"message-body\">\n      <template v-if=\"message\">\n        {{ message }}\n      </template>\n      <slot name=\"content\"></slot>\n    </div>\n  </article>\n</template>\n\n<script>\nexport default {\n  props: {\n    /**\n     * For what'll be shown inside of the message box.\n     */\n    message: {\n      type: String,\n      default: ''\n    },\n\n    size: {\n      type: String,\n      default: ''\n    },\n\n    /**\n     * type bepaalt het type weergave\n     * eq. is-info = for information style. It defines the style of the message\n     */\n    type: {\n      type: String,\n      default: 'is-info'\n    }\n  },\n  data() {\n    return {};\n  },\n\n  computed: {\n    combindedClass() {\n      let c = this.type;\n\n      if (this.size.length > 0) {\n        c = c + ' ' + this.size;\n      }\n\n      return c;\n    }\n  }\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\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!./Message.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!./Message.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Message.vue?vue&type=template&id=509443f1&scoped=true\"\nimport script from \"./Message.vue?vue&type=script&lang=js\"\nexport * from \"./Message.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  \"509443f1\",\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}