{"version":3,"sources":["webpack:///./src/components/Reservations/AddPackage.vue","webpack:///src/components/Reservations/AddPackage.vue","webpack:///./src/components/Reservations/AddPackage.vue?2905","webpack:///./src/components/Reservations/AddPackage.vue?12d3"],"names":["render","_vm","this","_c","_self","isLoadingPackages","_e","selectablePackages","length","attrs","$t","_l","aPackage","index","key","staticClass","Image","LocationId","Name","_v","_s","domProps","Description","_f","PriceExclTax","reservation","Currency","concat","$options","filters","toCurrency","reservationDate","TotalSeats","_m","class","isSaving","on","$event","addReservationPackage","staticRenderFns","components","ImageViewer","Loader","Message","props","type","Object","deafault","required","data","isSavingSuccess","isSavingError","availablePackages","computed","_objectSpread","mapState","_this","packages","_loop","i","index1","Packages","findIndex","p","PackageId","Id","push","created","getAvailablePackages","methods","mapMutations","_this2","reservationProvider","getReservationAvailablePackages","Key","Date","then","response","status","finally","addToSelectedPackages","pckg","selectedPackages","deleteFromSelectedPackages","splice","applyPackagesToReservationDate","_this3","self","applyReservationPackage","setReservation","$emit","EventBus","message","component"],"mappings":"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","file":"js/chunk-2d20fe30.js?id=a6f1123668b7919b14db","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.isLoadingPackages)?_c('Loader'):_vm._e(),(!_vm.isLoadingPackages && _vm.selectablePackages.length === 0)?_c('Message',{attrs:{\"message\":_vm.$t('Components.Reservation.AddPackage.message_NoPackages')}}):_vm._e(),(_vm.selectablePackages.length > 0)?_c('div',_vm._l((_vm.selectablePackages),function(aPackage,index){return _c('div',{key:'p-' + index,staticClass:\"box\"},[_c('article',{staticClass:\"media\"},[_c('div',{staticClass:\"media-left\"},[_c('ImageViewer',{staticClass:\"has-background-grey-lighter\",attrs:{\"type\":\"location\",\"imageSrc\":aPackage.Image,\"itemId\":aPackage.LocationId,\"imageSize\":160,\"itemName\":aPackage.Name}})],1),_c('div',{staticClass:\"media-content\"},[_c('div',{staticClass:\"content\"},[_c('div',[_c('strong',[_vm._v(_vm._s(aPackage.Name))]),_c('div',{domProps:{\"innerHTML\":_vm._s(aPackage.Description)}}),_c('div',[_c('span',{staticClass:\"has-text-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm._f(\"toCurrency\")(aPackage.PriceExclTax,'nl', _vm.reservation.Currency))+\" \")]),_c('span',[_vm._v(\"p.p.\")])]),_c('div',{staticClass:\"has-text-grey-dark mb-4\",domProps:{\"textContent\":_vm._s(\n                  `${_vm.$options.filters.toCurrency(\n                    aPackage.PriceExclTax * _vm.reservationDate.TotalSeats,\n                    'nl-NL',\n                    _vm.reservation.Currency\n                  )} total`\n                )}})])]),_vm._m(0,true)]),_c('div',{staticClass:\"media-right\"},[_c('button',{key:\"selected\",staticClass:\"is-primary is-fullwidth\",class:[`button`, { 'is-loading': _vm.isSaving }],attrs:{\"disabled\":_vm.isSaving},domProps:{\"textContent\":_vm._s(\n            _vm.$t('Components.Reservation.AddPackage.button_AddPackage')\n          )},on:{\"click\":function($event){return _vm.addReservationPackage(aPackage)}}})])])])}),0):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('nav',{staticClass:\"level is-mobile\"},[_c('div',{staticClass:\"level-left\"},[_c('a',{staticClass:\"level-item\",attrs:{\"aria-label\":\"reply\"}},[_c('span',{staticClass:\"icon is-small\"},[_c('i',{staticClass:\"fas fa-reply\",attrs:{\"aria-hidden\":\"true\"}})])]),_c('a',{staticClass:\"level-item\",attrs:{\"aria-label\":\"retweet\"}},[_c('span',{staticClass:\"icon is-small\"},[_c('i',{staticClass:\"fas fa-retweet\",attrs:{\"aria-hidden\":\"true\"}})])]),_c('a',{staticClass:\"level-item\",attrs:{\"aria-label\":\"like\"}},[_c('span',{staticClass:\"icon is-small\"},[_c('i',{staticClass:\"fas fa-heart\",attrs:{\"aria-hidden\":\"true\"}})])])])])\n}]\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <Loader v-if=\"isLoadingPackages\" />\n    \n    <Message v-if=\"!isLoadingPackages && selectablePackages.length === 0\" :message=\"$t('Components.Reservation.AddPackage.message_NoPackages')\" />\n\n    <div v-if=\"selectablePackages.length > 0\">\n      <div\n        v-for=\"(aPackage, index) in selectablePackages\"\n        :key=\"'p-' + index\"\n        class=\"box\"\n      >\n        <article class=\"media\">\n          <div class=\"media-left\">\n            <ImageViewer\n              class=\"has-background-grey-lighter\"\n              type=\"location\"\n              :imageSrc=\"aPackage.Image\"\n              :itemId=\"aPackage.LocationId\"\n              :imageSize=\"160\"\n              :itemName=\"aPackage.Name\"\n            />\n          </div>\n          <div class=\"media-content\">\n            <div class=\"content\">\n              <div>\n                <strong>{{ aPackage.Name }}</strong>\n                <div v-html=\"aPackage.Description\"></div>\n                <div>\n                  <span class=\"has-text-weight-bold\">\n                    {{\n                      aPackage.PriceExclTax\n                        | toCurrency('nl', reservation.Currency)\n                    }}\n                  </span>\n                  <span>p.p.</span>\n                </div>\n                <div\n                  class=\"has-text-grey-dark mb-4\"\n                  v-text=\"\n                    `${$options.filters.toCurrency(\n                      aPackage.PriceExclTax * reservationDate.TotalSeats,\n                      'nl-NL',\n                      reservation.Currency\n                    )} total`\n                  \"\n                ></div>\n              </div>\n            </div>\n            <nav class=\"level is-mobile\">\n              <div class=\"level-left\">\n                <a\n                  class=\"level-item\"\n                  aria-label=\"reply\"\n                >\n                  <span class=\"icon is-small\">\n                    <i\n                      class=\"fas fa-reply\"\n                      aria-hidden=\"true\"\n                    ></i>\n                  </span>\n                </a>\n                <a\n                  class=\"level-item\"\n                  aria-label=\"retweet\"\n                >\n                  <span class=\"icon is-small\">\n                    <i\n                      class=\"fas fa-retweet\"\n                      aria-hidden=\"true\"\n                    ></i>\n                  </span>\n                </a>\n                <a\n                  class=\"level-item\"\n                  aria-label=\"like\"\n                >\n                  <span class=\"icon is-small\">\n                    <i\n                      class=\"fas fa-heart\"\n                      aria-hidden=\"true\"\n                    ></i>\n                  </span>\n                </a>\n              </div>\n            </nav>\n          </div>\n          <div class=\"media-right\">\n            <button\n              key=\"selected\"\n              class=\"is-primary is-fullwidth\"\n              :class=\"[`button`, { 'is-loading': isSaving }]\"\n              :disabled=\"isSaving\"\n              @click=\"addReservationPackage(aPackage)\"\n              v-text=\"\n              $t('Components.Reservation.AddPackage.button_AddPackage')\n            \"\n            ></button>\n          </div>\n        </article>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapState, mapMutations } from 'vuex'\nimport { EventBus } from '@/eventbus/event-bus'\nimport reservationProvider from '@/providers/reservation'\nimport ImageViewer from '../UI/ImageViewer.vue';\nimport Loader from '../UI/Loader.vue';\n\nexport default {\n  components: {\n    ImageViewer,\n    Loader,\n    Message: () => import('@/components/UI/Message')\n  },\n\n  props: {\n    reservationDate: {\n      type: Object,\n      deafault: null,\n      required: true\n    }\n  },\n\n  data() {\n    return {\n      isSaving: false,\n      isSavingSuccess: false,\n      isSavingError: false,\n      isLoadingPackages: true,\n\n      availablePackages: [],\n    }\n  },\n\n  computed: {\n    ...mapState('reservationStore', ['reservation']),\n\n    selectablePackages() {\n      let packages = []\n\n      if (this.reservationDate && this.availablePackages) {\n        for (let i = 0; i < this.availablePackages.length; i++) {\n          let aPackage = this.availablePackages[i]\n          let index1 = this.reservationDate.Packages.findIndex(p => p.PackageId === aPackage.Id)\n          if (index1 === -1) {\n            packages.push(aPackage)\n          }\n        }\n      }\n\n      return packages\n    }\n  },\n\n  created() {\n    this.getAvailablePackages()\n  },\n\n  methods: {\n    ...mapMutations('reservationStore', ['setReservation']),\n\n    getAvailablePackages() {\n\n      this.isLoadingPackages = true\n\n      reservationProvider.methods.getReservationAvailablePackages(this.reservation.Key, this.reservationDate.Date)\n        .then(response => {\n          if (response.status === 200) {\n            this.availablePackages = response.data\n          }\n        })\n        .finally(() => {\n          this.isLoadingPackages = false\n        })\n    },\n\n    addToSelectedPackages(pckg) {\n      this.selectedPackages.push(pckg);\n    },\n\n    deleteFromSelectedPackages(pckg) {\n      let index = this.selectedPackages.findIndex(p => p.Id === pckg.Id)\n      if (index > -1) {\n        this.selectedPackages.splice(index, 1);\n      }\n    },\n\n    applyPackagesToReservationDate() {\n      for (let i = 0; i < this.selectedPackages.length; i++) {\n        let pckg = this.selectedPackages[i];\n\n        this.addReservationPackage(pckg);\n      }\n    },\n\n    addReservationPackage(pckg) {\n      let self = this\n\n      if (!self.isSaving) {\n        self.isSaving = true\n\n        reservationProvider.methods\n          .applyReservationPackage(pckg.Id, self.reservation.Key, self.reservationDate.Date)\n          .then((response) => {\n            if (response.status === 200) {\n              self.setReservation(response.data)\n              self.$emit('packageSelected');\n\n              EventBus.$emit('showToast', {\n                type: 'info',\n                message: this.$t('Components.Reservation.AddPackage.message_PackageAdded'),\n              })\n            }\n          })\n          .finally(() => {\n            self.isSaving = false\n          })\n      }\n    },\n  }\n}\n</script>","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!./AddPackage.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!./AddPackage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AddPackage.vue?vue&type=template&id=0acc7588\"\nimport script from \"./AddPackage.vue?vue&type=script&lang=js\"\nexport * from \"./AddPackage.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":""}