{"version":3,"sources":["webpack:///./src/components/Settings/Yield/Playground/YieldPlayground.vue","webpack:///src/components/Settings/Yield/Playground/YieldPlayground.vue","webpack:///./src/components/Settings/Yield/Playground/YieldPlayground.vue?dc36","webpack:///./src/components/Settings/Yield/Playground/YieldPlayground.vue?8e27"],"names":["render","_vm","this","_c","_self","yieldSettingsPlayground","staticClass","attrs","isLoading","minSeats","maxSeats","on","showResults","ApplyLocationUtilization","playground","startBlank","_v","_s","$t","resetValues","showAllSettings","yieldSettingsUpdated","MeetingtypeId","_e","staticRenderFns","components","PlaygroundSettings","PlaygroundTable","YieldSettingsPrices","YieldSettingsDayPercentage","YieldSettingsGroupSize","YieldSettingsLocationUtilization","YieldSettingsSpaceUtilization","props","activeIndex","type","Number","default","data","endMinutes","formatter","v","concat","locationId","$route","params","locationUtilizationValues","nrOfDayParts","percentages","selectedSpace","space","spaceConfiguration","MinSeats","MaxSeats","spaceUtilizationValues","startMinutes","timeSlots","yieldSettingsOriginal","computed","_objectSpread","mapState","watch","immediate","handler","newVal","oldVal","buildYieldPlayground","created","cleanSource","calculateMinMaxSeats","SpaceId","getSpaceData","beforeDestroy","setYieldSettingsPlayground","methods","mapMutations","self","spaceProvider","getSpaceById","then","response","status","min","max","spaceMin","spaceMax","i","Settings","filter","s","IsPublic","length","setting","$emit","settings","_this","yieldProvider","builYieldPlayground","finally","dayPercentages","DayPercentages","Percentage","ys","JSON","parse","stringify","ApplyDayPercentage","ApplyGroupSize","ApplySpacePercentage","ApplySpaceUtilization","GroupSizes","LocationUtilizationBottomValue","LocationUtilizationCalculationType","LocationUtilizationDefaultHours","LocationUtilizationTopValue","PriceParts","SpaceUtilizationBottomValue","SpaceUtilizationTopValue","component"],"mappings":"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","file":"js/chunk-2d0bfea7.js?id=c9a788ac2b5ce985a044","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.yieldSettingsPlayground)?_c('div',{staticClass:\"columns\"},[_c('div',{staticClass:\"column\"},[_c('PlaygroundSettings',{attrs:{\"isLoading\":_vm.isLoading,\"minSeats\":_vm.minSeats,\"maxSeats\":_vm.maxSeats},on:{\"showResults\":_vm.showResults}}),_c('div',{staticClass:\"is-divider\"}),_c('PlaygroundTable',{attrs:{\"showAveragePrice\":!_vm.yieldSettingsPlayground.ApplyLocationUtilization,\"playground\":_vm.playground}})],1),_c('div',{staticClass:\"column is-one-third\"},[_c('div',{staticClass:\"field is-grouped is-grouped-right mb-2\"},[_c('p',{staticClass:\"control\"},[_c('a',{staticClass:\"has-icon has-text-link\",on:{\"click\":_vm.startBlank}},[_c('span',{staticClass:\"icon is-small\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'file']}})],1),_c('span',[_vm._v(_vm._s(_vm.$t(`Components.Settings.Yield.YieldPlayground.Button_StartBlank`)))])])]),_c('p',{staticClass:\"control\"},[_c('a',{staticClass:\"has-icon has-text-link\",on:{\"click\":_vm.resetValues}},[_c('span',{staticClass:\"icon is-small\"},[_c('font-awesome-icon',{attrs:{\"icon\":['fas', 'undo']}})],1),_c('span',[_vm._v(_vm._s(_vm.$t(`Components.Settings.Yield.YieldPlayground.Button_ResetValues`)))])])])]),_c('YieldSettingsPrices',{attrs:{\"showBox\":_vm.showAllSettings},on:{\"yieldSettingsUpdated\":_vm.yieldSettingsUpdated}}),_c('YieldSettingsLocationUtilization',{attrs:{\"showBox\":_vm.showAllSettings},on:{\"yieldSettingsUpdated\":_vm.yieldSettingsUpdated}}),(_vm.yieldSettingsPlayground.MeetingtypeId === 1)?_c('YieldSettingsSpaceUtilization',{attrs:{\"showBox\":_vm.showAllSettings},on:{\"yieldSettingsUpdated\":_vm.yieldSettingsUpdated}}):_vm._e(),_c('YieldSettingsDayPercentage',{attrs:{\"showBox\":_vm.showAllSettings},on:{\"yieldSettingsUpdated\":_vm.yieldSettingsUpdated}}),(_vm.yieldSettingsPlayground.MeetingtypeId === 1)?_c('YieldSettingsGroupSize',{attrs:{\"showBox\":_vm.showAllSettings},on:{\"yieldSettingsUpdated\":_vm.yieldSettingsUpdated}}):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div\n    v-if=\"yieldSettingsPlayground\"\n    class=\"columns\"\n  >\n    <!-- MAIN COLUMN -->\n    <div class=\"column\">\n      <PlaygroundSettings\n        @showResults=\"showResults\"\n        :isLoading=\"isLoading\"\n        :minSeats=\"minSeats\"\n        :maxSeats=\"maxSeats\"\n      />\n\n      <div class=\"is-divider\"></div>\n\n      <PlaygroundTable\n        :showAveragePrice=\"!yieldSettingsPlayground.ApplyLocationUtilization\"\n        :playground=\"playground\"\n      />\n    </div>\n\n    <!-- RIGHT COLUMN -->\n    <div class=\"column is-one-third\">\n      <div class=\"field is-grouped is-grouped-right mb-2\">\n        <p class=\"control\">\n          <a\n            @click=\"startBlank\"\n            class=\"has-icon has-text-link\"\n          >\n            <span class=\"icon is-small\">\n              <font-awesome-icon :icon=\"['fas', 'file']\" />\n            </span>\n            <span>{{\n            $t(`Components.Settings.Yield.YieldPlayground.Button_StartBlank`)\n          }}</span>\n          </a>\n        </p>\n        <p class=\"control\">\n          <a\n            @click=\"resetValues\"\n            class=\"has-icon has-text-link\"\n          >\n            <span class=\"icon is-small\">\n              <font-awesome-icon :icon=\"['fas', 'undo']\" />\n            </span>\n            <span>{{\n            $t(`Components.Settings.Yield.YieldPlayground.Button_ResetValues`)\n          }}</span>\n          </a>\n        </p>\n      </div>\n\n      <!-- PRICES -->\n      <YieldSettingsPrices\n        :showBox=\"showAllSettings\"\n        @yieldSettingsUpdated=\"yieldSettingsUpdated\"\n      />\n\n      <!-- LOCATION UTILIZATION SETTINGS -->\n      <YieldSettingsLocationUtilization\n        :showBox=\"showAllSettings\"\n        @yieldSettingsUpdated=\"yieldSettingsUpdated\"\n      />\n\n      <!-- SPACE UTILIZATION SETTINGS -->\n      <YieldSettingsSpaceUtilization\n        v-if=\"yieldSettingsPlayground.MeetingtypeId === 1\"\n        :showBox=\"showAllSettings\"\n        @yieldSettingsUpdated=\"yieldSettingsUpdated\"\n      />\n\n      <!-- DAY PERCENTAGES SETTINGS -->\n      <YieldSettingsDayPercentage\n        :showBox=\"showAllSettings\"\n        @yieldSettingsUpdated=\"yieldSettingsUpdated\"\n      />\n\n      <!-- GROUP SIZE SETTINGS -->\n      <YieldSettingsGroupSize\n        v-if=\"yieldSettingsPlayground.MeetingtypeId === 1\"\n        :showBox=\"showAllSettings\"\n        @yieldSettingsUpdated=\"yieldSettingsUpdated\"\n      />\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapMutations, mapState } from 'vuex'\nimport spaceProvider from '@/providers/space'\nimport yieldProvider from '@/providers/yield'\nimport { cleanSource } from '@/utils/objectHelper'\n\nexport default {\n  components: {\n    PlaygroundSettings: () => import('@/components/Settings/Yield/Playground/PlaygroundSettings'),\n    PlaygroundTable: () => import('@/components/Settings/Yield/Playground/PlaygroundTable'),\n    YieldSettingsPrices: () => import('@/components/Settings/Yield/Playground/YieldSettingsPrices'),\n    YieldSettingsDayPercentage: () => import('@/components/Settings/Yield/Playground/YieldSettingsDayPercentage'),\n    YieldSettingsGroupSize: () => import('@/components/Settings/Yield/Playground/YieldSettingsGroupSize'),\n    YieldSettingsLocationUtilization: () => import('@/components/Settings/Yield/Playground/YieldSettingsLocationUtilization'),\n    YieldSettingsSpaceUtilization: () => import('@/components/Settings/Yield/Playground/YieldSettingsSpaceUtilization'),\n  },\n\n  props: {\n    activeIndex: {\n      type: Number,\n      default: 0,\n    },\n  },\n\n  data() {\n    return {\n      isLoading: false,\n      endMinutes: 1020,\n      formatter: (v) => `${v - 100}%`,\n      locationId: Number(this.$route.params.locationId),\n      locationUtilizationValues: [],\n      nrOfDayParts: 8,\n      minSeats: 1,\n      maxSeats: 1,\n      percentages: [0, 25, 50, 75, 100],\n      playground: null,\n      selectedSpace: null,\n      showAllSettings: true,\n      space: null,\n      spaceConfiguration: { MinSeats: 1, MaxSeats: 20 },\n      spaceUtilizationValues: [],\n      startMinutes: 540,\n      timeSlots: [],\n      yieldSettingsOriginal: null,\n    }\n  },\n\n  computed: {\n    ...mapState('yieldStore', ['yieldSettingsPlayground']),\n  },\n\n  watch: {\n    activeIndex: {\n      immediate: true,\n      handler: function(newVal, oldVal) {\n        if (newVal !== oldVal) {\n          this.buildYieldPlayground()\n        }\n      },\n    },\n  },\n\n  created() {\n    this.yieldSettingsOriginal = cleanSource(this.yieldSettingsPlayground);\n    this.calculateMinMaxSeats();\n\n    if (this.yieldSettingsPlayground.SpaceId > 0) {\n      this.getSpaceData();\n    }\n  },\n\n  beforeDestroy() {\n    this.setYieldSettingsPlayground(null)\n  },\n\n  methods: {\n    ...mapMutations('yieldStore', ['setYieldSettingsPlayground']),\n\n    getSpaceData() {\n      let self = this\n      spaceProvider.methods\n        .getSpaceById(self.yieldSettingsPlayground.SpaceId)\n        .then((response) => {\n          if (response.status === 200) {\n            self.space = response.data\n\n            self.calculateMinMaxSeats()\n          }\n        })\n    },\n\n    calculateMinMaxSeats() {\n      let min = 1\n      let max = 1\n\n      if (this.space) {\n        let spaceMin = 9999\n        let spaceMax = 0\n\n        for (\n          let i = 0;\n          i < this.space.Settings.filter((s) => s.IsPublic).length;\n          i++\n        ) {\n          let setting = this.space.Settings[i]\n\n          if (setting.MinSeats < spaceMin) {\n            spaceMin = setting.MinSeats\n          }\n\n          if (setting.MaxSeats > spaceMax) {\n            spaceMax = setting.MaxSeats\n          }\n        }\n\n        min = spaceMin\n        max = spaceMax\n      } else {\n        max = this.yieldSettingsPlayground.MeetingtypeId === 1 ? 20 : 1\n      }\n\n      this.minSeats = min\n      this.maxSeats = max\n\n      this.buildYieldPlayground()\n    },\n\n    yieldSettingsUpdated() {\n      this.buildYieldPlayground()\n      this.$emit('yieldSettingsUpdated', this.yieldSettingsPlayground)\n    },\n\n    showResults(settings) {\n      this.percentages = settings.percentages\n      this.minSeats = settings.minSeats\n      this.maxSeats = settings.maxSeats\n      this.nrOfDayParts = settings.nrOfDayParts\n      this.buildYieldPlayground()\n    },\n\n    buildYieldPlayground() {\n      // if (this.isLoading) {\n      //   return\n      // }\n\n      this.isLoading = true\n\n      yieldProvider.methods\n        .builYieldPlayground(\n          this.locationId,\n          this.minSeats,\n          this.maxSeats,\n          this.nrOfDayParts,\n          this.yieldSettingsPlayground,\n          this.percentages\n        )\n        .then((response) => {\n          if (response.status === 200) {\n            this.playground = response.data\n          }\n        })\n        .finally(() => {\n          this.isLoading = false\n        })\n    },\n\n    resetValues() {\n      this.setYieldSettingsPlayground(this.yieldSettingsOriginal)\n      this.$emit('yieldSettingsUpdated', this.yieldSettingsPlayground)\n\n      this.buildYieldPlayground()\n    },\n\n    startBlank() {\n      let dayPercentages = this.yieldSettingsPlayground.DayPercentages\n      for (let i = 0; i < dayPercentages.length; i++) {\n        dayPercentages[i].Percentage = 0\n      }\n\n      let ys = JSON.parse(JSON.stringify(this.yieldSettingsPlayground))\n      ys.ApplyDayPercentage = false\n      ys.ApplyGroupSize = false\n      ys.ApplyLocationUtilization = false\n      ys.ApplySpacePercentage = false\n      ys.ApplySpaceUtilization = false\n      ys.DayPercentages = dayPercentages\n      ys.GroupSizes = []\n      ys.LocationUtilizationBottomValue = 1\n      ys.LocationUtilizationCalculationType = 0\n      ys.LocationUtilizationDefaultHours = 8\n      ys.LocationUtilizationTopValue = 1\n      ys.PriceParts = []\n      ys.SpaceUtilizationBottomValue = 1\n      ys.SpaceUtilizationTopValue = 1\n\n      this.setYieldSettingsPlayground(ys)\n      this.$emit('yieldSettingsUpdated', ys)\n\n      this.buildYieldPlayground()\n    },\n  },\n}\n</script>\n\n<style></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!./YieldPlayground.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!./YieldPlayground.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./YieldPlayground.vue?vue&type=template&id=42f41a5a\"\nimport script from \"./YieldPlayground.vue?vue&type=script&lang=js\"\nexport * from \"./YieldPlayground.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":""}