{"version":3,"sources":["webpack:///src/components/Reservations/ModalEditOptionSortOrder.vue","webpack:///./src/components/Reservations/ModalEditOptionSortOrder.vue","webpack:///./src/components/Reservations/ModalEditOptionSortOrder.vue?8659","webpack:///./src/components/Reservations/ModalEditOptionSortOrder.vue?601b","webpack:///./src/components/Reservations/ModalEditOptionSortOrder.vue?47c2"],"names":["components","draggable","props","showModal","type","Boolean","default","onClickCancel","Function","required","reservationDate","Object","deafault","data","isSaving","isSavingSuccess","isSavingError","categories","options","computed","_objectSpread","mapState","created","cleanSource","Options","setupCategories","methods","mapMutations","_this","_loop","option","i","findIndex","c","CategoryId","push","filter","o","length","sort","a","b","saveSortOrder","_this2","reservationOptionIds","cat","j","opt","Id","reservationProvider","updateReservationOptionSortOrder","reservation","Key","then","response","status","setReservation","EventBus","$emit","message","$t","finally","render","_vm","_c","_self","attrs","modalTitle","hideFooterButtons","onClickSave","on","closeModal","scopedSlots","_u","key","fn","_l","cIndex","staticClass","_v","_s","group","list","handle","resOption","staticStyle","cursor","icon","InternalName","proxy","slot","staticRenderFns","_withStripped"],"mappings":"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","file":"js/393.js?id=3eeccf6854debeedc9b6","sourcesContent":["<template>\n  <ui-component-modal\n    modalTitle=\"\"\n    :isSaving=\"isSaving\"\n    :isSavingSuccess=\"isSavingSuccess\"\n    :isSavingError=\"isSavingError\"\n    :hideFooterButtons=\"isSavingError || isSavingSuccess\"\n    :onClickCancel=\"onClickCancel\"\n    :onClickSave=\"saveSortOrder\"\n    :showModal=\"showModal\"\n    @closeModal=\"onClickCancel\"\n  >\n    <template slot=\"modalTitle\"></template>\n    <template v-slot:content>\n      <div\n        v-for=\"(cat, cIndex) in categories\"\n        :key=\"cIndex\"\n        class=\"mb-6\"\n      >\n        <p class=\"title\">\n          {{\n            $t(\n              'Components.Reservation.ReservationOptions.Category_' +\n                cat.CategoryId\n            )\n          }}\n        </p>\n\n        <draggable\n          :group=\"'cat_' + cat.CategoryId\"\n          :list=\"cat.Options\"\n          :sort=\"true\"\n          handle=\".handle\"\n          draggable=\".resOption\"\n        >\n          <div\n            v-for=\"resOption in cat.Options.filter(\n              (o) => o.CategoryId === cat.CategoryId\n            )\"\n            :key=\"resOption.Id\"\n            class=\"resOption card has-margin-bottom has-padding\"\n            style=\"cursor: move;\"\n          >\n            <span class=\"icon handle\">\n              <font-awesome-icon :icon=\"['fas', 'align-justify']\" />\n            </span>\n            <span class=\"has-margin-left\">{{ resOption.InternalName }}</span>\n          </div>\n        </draggable>\n      </div>\n    </template>\n  </ui-component-modal>\n</template>\n\n<script>\nimport { mapState, mapMutations } from 'vuex'\nimport { EventBus } from '@/eventbus/event-bus'\nimport draggable from 'vuedraggable'\nimport reservationProvider from '@/providers/reservation'\nimport { cleanSource } from '@/utils/objectHelper'\n\n\nexport default {\n  components: {\n    draggable,\n  },\n\n  props: {\n    showModal: {\n      type: Boolean,\n      default: false,\n    },\n\n    onClickCancel: {\n      type: Function,\n      required: true,\n    },\n\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\n      categories: [],\n      options: [],\n    }\n  },\n\n  computed: {\n    ...mapState('reservationStore', ['reservation']),\n  },\n\n  created() {\n    this.options = cleanSource(this.reservationDate.Options);\n\n    this.setupCategories();\n  },\n\n  methods: {\n    ...mapMutations('reservationStore', ['setReservation']),\n\n    setupCategories() {\n      let categories = []\n\n      for (let i = 0; i < this.options.length; i++) {\n        let option = this.options[i]\n\n        if (\n          categories.findIndex((c) => c.CategoryId === option.CategoryId) === -1\n        ) {\n          categories.push({\n            CategoryId: option.CategoryId,\n            Options: this.options.filter(\n              (o) => o.CategoryId === option.CategoryId\n            ),\n          })\n        }\n      }\n\n      this.categories = categories.sort((a, b) => a.CategoryId - b.CategoryId)\n    },\n\n    saveSortOrder() {\n      if (!this.isSaving) {\n        this.isSaving = true\n\n        let reservationOptionIds = []\n\n        for (let i = 0; i < this.categories.length; i++) {\n          let cat = this.categories[i]\n\n          for (let j = 0; j < cat.Options.length; j++) {\n            let opt = cat.Options[j]\n            reservationOptionIds.push(opt.Id)\n          }\n        }\n\n        reservationProvider.methods\n          .updateReservationOptionSortOrder(\n            this.reservation.Key,\n            reservationOptionIds\n          )\n          .then((response) => {\n            if (response.status === 200) {\n              // Update reservation store\n              this.setReservation(response.data);\n\n              // Send message to display toast on screen\n              EventBus.$emit('showToast', {\n                type: 'info',\n                message: this.$t('General.Toast_ReservationUpdated'),\n              });\n\n              this.onClickCancel();\n            }\n          })\n          .finally(() => {\n            this.isSaving = false;\n          })\n\n      }\n    },\n  },\n}\n</script>\n","var render = function render() {\n  var _vm = this,\n    _c = _vm._self._c\n  return _c(\n    \"ui-component-modal\",\n    {\n      attrs: {\n        modalTitle: \"\",\n        isSaving: _vm.isSaving,\n        isSavingSuccess: _vm.isSavingSuccess,\n        isSavingError: _vm.isSavingError,\n        hideFooterButtons: _vm.isSavingError || _vm.isSavingSuccess,\n        onClickCancel: _vm.onClickCancel,\n        onClickSave: _vm.saveSortOrder,\n        showModal: _vm.showModal,\n      },\n      on: { closeModal: _vm.onClickCancel },\n      scopedSlots: _vm._u([\n        {\n          key: \"content\",\n          fn: function () {\n            return _vm._l(_vm.categories, function (cat, cIndex) {\n              return _c(\n                \"div\",\n                { key: cIndex, staticClass: \"mb-6\" },\n                [\n                  _c(\"p\", { staticClass: \"title\" }, [\n                    _vm._v(\n                      \" \" +\n                        _vm._s(\n                          _vm.$t(\n                            \"Components.Reservation.ReservationOptions.Category_\" +\n                              cat.CategoryId\n                          )\n                        ) +\n                        \" \"\n                    ),\n                  ]),\n                  _c(\n                    \"draggable\",\n                    {\n                      attrs: {\n                        group: \"cat_\" + cat.CategoryId,\n                        list: cat.Options,\n                        sort: true,\n                        handle: \".handle\",\n                        draggable: \".resOption\",\n                      },\n                    },\n                    _vm._l(\n                      cat.Options.filter(\n                        (o) => o.CategoryId === cat.CategoryId\n                      ),\n                      function (resOption) {\n                        return _c(\n                          \"div\",\n                          {\n                            key: resOption.Id,\n                            staticClass:\n                              \"resOption card has-margin-bottom has-padding\",\n                            staticStyle: { cursor: \"move\" },\n                          },\n                          [\n                            _c(\n                              \"span\",\n                              { staticClass: \"icon handle\" },\n                              [\n                                _c(\"font-awesome-icon\", {\n                                  attrs: { icon: [\"fas\", \"align-justify\"] },\n                                }),\n                              ],\n                              1\n                            ),\n                            _c(\"span\", { staticClass: \"has-margin-left\" }, [\n                              _vm._v(_vm._s(resOption.InternalName)),\n                            ]),\n                          ]\n                        )\n                      }\n                    ),\n                    0\n                  ),\n                ],\n                1\n              )\n            })\n          },\n          proxy: true,\n        },\n      ]),\n    },\n    [_c(\"template\", { slot: \"modalTitle\" })],\n    2\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ModalEditOptionSortOrder.vue?vue&type=template&id=41287de8\"\nimport script from \"./ModalEditOptionSortOrder.vue?vue&type=script&lang=js\"\nexport * from \"./ModalEditOptionSortOrder.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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/github/workspace/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('41287de8')) {\n      api.createRecord('41287de8', component.options)\n    } else {\n      api.reload('41287de8', component.options)\n    }\n    module.hot.accept(\"./ModalEditOptionSortOrder.vue?vue&type=template&id=41287de8\", function () {\n      api.rerender('41287de8', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/Reservations/ModalEditOptionSortOrder.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../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!./ModalEditOptionSortOrder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../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!./ModalEditOptionSortOrder.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"d2a26fb4-vue-loader-template\\\"}!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalEditOptionSortOrder.vue?vue&type=template&id=41287de8\""],"sourceRoot":""}