{"version":3,"sources":["webpack:///src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue?50be","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue?5e2c","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue?d761","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue?29c0","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue?44fe","webpack:///./src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.vue?70cd"],"names":["SLOT_INTERVAL","DEFAULT_DURATION","name","components","Message","props","daySchedule","type","Object","default","reservedItems","Array","isToday","Boolean","startMinutes","Number","endMinutes","data","dragAnchorMinutes","dragCurrentMinutes","isDragging","computed","isClosed","NrOfLocations","MaxMinutes","MinMinutes","earliestStartMinutes","minStart","now","Date","nowMinutes","getHours","getMinutes","Math","max","round","timelineSlots","open","close","renderStart","renderEnd","min","slots","m","withinOpeningHours","booked","isBlockBooked","push","minutes","available","availableSlotSet","Set","filter","s","map","hasAvailableSlots","size","previewRange","start","end","hasTimeSelection","created","setDefaultSelection","beforeDestroy","document","removeEventListener","endDrag","methods","firstSlot","find","applySelection","region","getFreeRegion","$emit","has","last","slotClass","slot","preview","inPreview","inSelection","startDrag","addEventListener","onDragOver","onTouchMove","event","touches","length","touch","element","elementFromPoint","clientX","clientY","slotElement","closest","dataset","anchor","current","some","i","EndMinutes","StartMinutes","render","_vm","_c","_self","attrs","scopedSlots","_u","key","fn","_v","_s","$t","proxy","staticClass","$options","filters","minutesToTime","on","touchmove","$event","preventDefault","apply","arguments","_l","class","disabled","mousedown","mouseenter","touchstart","_f","icon","_e","staticRenderFns","_withStripped"],"mappings":"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","file":"js/239.js?id=8fffdc74bbc865c3858a","sourcesContent":["<template>\n  <div>\n    <Message v-if=\"isClosed\" type=\"is-warning\">\n      <template v-slot:content>\n        {{ $t('Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_Closed') }}\n      </template>\n    </Message>\n\n    <template v-else>\n      <p class=\"is-size-7 has-text-grey mb-3\">\n        {{\n          $t('Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_OpenBetween', {\n            start: $options.filters.minutesToTime(daySchedule.MinMinutes),\n            end: $options.filters.minutesToTime(daySchedule.MaxMinutes),\n          })\n        }}\n      </p>\n\n      <Message v-if=\"!hasAvailableSlots\" type=\"is-warning\">\n        <template v-slot:content>\n          {{ $t('Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_NoSlots') }}\n        </template>\n      </Message>\n\n      <div v-else class=\"field\">\n        <label class=\"label\">{{\n          $t('Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Label_Time')\n        }}</label>\n        <p class=\"is-size-7 has-text-grey mb-2\">\n          {{ $t('Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_DragHint') }}\n        </p>\n        <div class=\"slot-grid\" @touchmove.prevent=\"onTouchMove\">\n          <button\n            v-for=\"slot in timelineSlots\"\n            :key=\"'slot_' + slot.minutes\"\n            class=\"button is-small slot\"\n            :class=\"slotClass(slot)\"\n            :data-minutes=\"slot.minutes\"\n            :disabled=\"!slot.available\"\n            @mousedown.prevent=\"startDrag(slot)\"\n            @mouseenter=\"onDragOver(slot.minutes)\"\n            @touchstart.prevent=\"startDrag(slot)\"\n          >\n            {{ slot.minutes | minutesToTime }}\n          </button>\n        </div>\n\n        <div class=\"slot-legend is-size-7 has-text-grey mt-2\">\n          <span>\n            <span class=\"legend-swatch swatch-available\"></span>\n            {{\n              $t(\n                'Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Legend_Available'\n              )\n            }}\n          </span>\n          <span>\n            <span class=\"legend-swatch swatch-booked\"></span>\n            {{\n              $t(\n                'Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Legend_Booked'\n              )\n            }}\n          </span>\n          <span>\n            <span class=\"legend-swatch swatch-closed\"></span>\n            {{\n              $t(\n                'Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Legend_Closed'\n              )\n            }}\n          </span>\n        </div>\n\n        <div v-if=\"hasTimeSelection\" class=\"mt-3\">\n          <span class=\"icon is-small mr-1\">\n            <font-awesome-icon :icon=\"['fas', 'clock']\" />\n          </span>\n          <span class=\"has-text-weight-bold\">\n            {{ startMinutes | minutesToTime }} -\n            {{ endMinutes | minutesToTime }}\n          </span>\n          <span class=\"has-text-grey\">\n            ({{ (endMinutes - startMinutes) | minutesToDuration }})\n          </span>\n        </div>\n      </div>\n    </template>\n  </div>\n</template>\n\n<script>\nconst SLOT_INTERVAL = 15\nconst DEFAULT_DURATION = 60\n\nexport default {\n  name: 'TimeSlotPicker',\n\n  components: {\n    Message: () => import('@/components/UI/Message'),\n  },\n\n  props: {\n    daySchedule: {\n      type: Object,\n      default: null,\n    },\n    reservedItems: {\n      type: Array,\n      default: () => [],\n    },\n    isToday: {\n      type: Boolean,\n      default: false,\n    },\n    startMinutes: {\n      type: Number,\n      default: null,\n    },\n    endMinutes: {\n      type: Number,\n      default: null,\n    },\n  },\n\n  data() {\n    return {\n      dragAnchorMinutes: null,\n      dragCurrentMinutes: null,\n      isDragging: false,\n    }\n  },\n\n  computed: {\n    isClosed() {\n      return (\n        !this.daySchedule ||\n        this.daySchedule.NrOfLocations === 0 ||\n        this.daySchedule.MaxMinutes <= this.daySchedule.MinMinutes\n      )\n    },\n\n    /**\n     * The earliest minutes a booking may start at. For today this is\n     * the current time rounded to the nearest quarter of an hour.\n     */\n    earliestStartMinutes() {\n      if (!this.daySchedule) return 0\n\n      let minStart = this.daySchedule.MinMinutes\n      if (this.isToday) {\n        let now = new Date()\n        let nowMinutes = now.getHours() * 60 + now.getMinutes()\n        minStart = Math.max(\n          minStart,\n          Math.round(nowMinutes / SLOT_INTERVAL) * SLOT_INTERVAL\n        )\n      }\n\n      return minStart\n    },\n\n    /**\n     * All quarter-hour blocks shown on the timeline. The hour before\n     * opening and after closing is rendered (disabled) so the booker\n     * can see the boundaries of the opening hours.\n     */\n    timelineSlots() {\n      if (this.isClosed) return []\n\n      let open = this.daySchedule.MinMinutes\n      let close = this.daySchedule.MaxMinutes\n      let renderStart = Math.max(0, open - 60)\n      let renderEnd = Math.min(24 * 60, close + 60)\n\n      let slots = []\n      for (\n        let m = renderStart;\n        m + SLOT_INTERVAL <= renderEnd;\n        m += SLOT_INTERVAL\n      ) {\n        let withinOpeningHours = m >= open && m + SLOT_INTERVAL <= close\n        let booked = withinOpeningHours && this.isBlockBooked(m)\n\n        slots.push({\n          minutes: m,\n          withinOpeningHours,\n          booked,\n          available:\n            withinOpeningHours && !booked && m >= this.earliestStartMinutes,\n        })\n      }\n\n      return slots\n    },\n\n    availableSlotSet() {\n      return new Set(\n        this.timelineSlots.filter((s) => s.available).map((s) => s.minutes)\n      )\n    },\n\n    hasAvailableSlots() {\n      return this.availableSlotSet.size > 0\n    },\n\n    /**\n     * The range being dragged, as { start, end } in minutes (end exclusive)\n     */\n    previewRange() {\n      if (!this.isDragging || this.dragAnchorMinutes === null) return null\n\n      return {\n        start: Math.min(this.dragAnchorMinutes, this.dragCurrentMinutes),\n        end:\n          Math.max(this.dragAnchorMinutes, this.dragCurrentMinutes) +\n          SLOT_INTERVAL,\n      }\n    },\n\n    hasTimeSelection() {\n      return (\n        this.startMinutes !== null &&\n        this.endMinutes !== null &&\n        this.endMinutes > this.startMinutes\n      )\n    },\n  },\n\n  created() {\n    this.setDefaultSelection()\n  },\n\n  beforeDestroy() {\n    document.removeEventListener('mouseup', this.endDrag)\n    document.removeEventListener('touchend', this.endDrag)\n  },\n\n  methods: {\n    /**\n     * Pre-select the first available time slot. For today this is the\n     * current time rounded to the nearest 15 minutes.\n     */\n    setDefaultSelection() {\n      let firstSlot = this.timelineSlots.find((s) => s.available)\n      if (firstSlot) {\n        this.applySelection(\n          firstSlot.minutes,\n          firstSlot.minutes + DEFAULT_DURATION\n        )\n      }\n    },\n\n    /**\n     * Apply a start/end selection, clamped to the contiguous free\n     * region around the start so a selection never overlaps a\n     * reservation or runs past closing time.\n     */\n    applySelection(startMinutes, endMinutes) {\n      let region = this.getFreeRegion(startMinutes)\n      if (!region) return\n\n      this.$emit('select', {\n        startMinutes: Math.max(startMinutes, region.start),\n        endMinutes: Math.min(\n          Math.max(endMinutes, startMinutes + SLOT_INTERVAL),\n          region.end\n        ),\n      })\n    },\n\n    /**\n     * The contiguous run of free quarters around the given slot,\n     * as { start, end } in minutes (end exclusive)\n     */\n    getFreeRegion(minutes) {\n      if (!this.availableSlotSet.has(minutes)) return null\n\n      let start = minutes\n      while (this.availableSlotSet.has(start - SLOT_INTERVAL)) {\n        start -= SLOT_INTERVAL\n      }\n\n      let last = minutes\n      while (this.availableSlotSet.has(last + SLOT_INTERVAL)) {\n        last += SLOT_INTERVAL\n      }\n\n      return { start, end: last + SLOT_INTERVAL }\n    },\n\n    slotClass(slot) {\n      let preview = this.previewRange\n      let inPreview =\n        preview && slot.minutes >= preview.start && slot.minutes < preview.end\n      let inSelection =\n        !this.isDragging &&\n        this.hasTimeSelection &&\n        slot.minutes >= this.startMinutes &&\n        slot.minutes < this.endMinutes\n\n      return {\n        'is-primary': inPreview || inSelection,\n        'is-booked': slot.booked,\n        'is-closed': !slot.withinOpeningHours,\n      }\n    },\n\n    startDrag(slot) {\n      if (!slot.available) return\n\n      this.isDragging = true\n      this.dragAnchorMinutes = slot.minutes\n      this.dragCurrentMinutes = slot.minutes\n\n      document.addEventListener('mouseup', this.endDrag)\n      document.addEventListener('touchend', this.endDrag)\n    },\n\n    onDragOver(minutes) {\n      if (!this.isDragging) return\n\n      // Clamp to the contiguous free region around the anchor so the\n      // drag can never cross a reservation or the opening hours\n      let region = this.getFreeRegion(this.dragAnchorMinutes)\n      if (!region) return\n\n      this.dragCurrentMinutes = Math.min(\n        Math.max(minutes, region.start),\n        region.end - SLOT_INTERVAL\n      )\n    },\n\n    onTouchMove(event) {\n      if (!this.isDragging || !event.touches.length) return\n\n      let touch = event.touches[0]\n      let element = document.elementFromPoint(touch.clientX, touch.clientY)\n      let slotElement = element ? element.closest('[data-minutes]') : null\n      if (slotElement) {\n        this.onDragOver(Number(slotElement.dataset.minutes))\n      }\n    },\n\n    endDrag() {\n      document.removeEventListener('mouseup', this.endDrag)\n      document.removeEventListener('touchend', this.endDrag)\n\n      if (!this.isDragging) return\n      this.isDragging = false\n\n      let anchor = this.dragAnchorMinutes\n      let current = this.dragCurrentMinutes\n      this.dragAnchorMinutes = null\n      this.dragCurrentMinutes = null\n\n      if (anchor === null || current === null) return\n\n      if (anchor === current) {\n        // Plain click: select the default duration from this slot\n        this.applySelection(anchor, anchor + DEFAULT_DURATION)\n      } else {\n        this.applySelection(\n          Math.min(anchor, current),\n          Math.max(anchor, current) + SLOT_INTERVAL\n        )\n      }\n    },\n\n    /**\n     * Is the 15 minute block starting at the given minutes already booked?\n     */\n    isBlockBooked(minutes) {\n      return this.reservedItems.some(\n        (i) => minutes < i.EndMinutes && minutes + SLOT_INTERVAL > i.StartMinutes\n      )\n    },\n  },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.slot-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));\n  gap: 0.25rem;\n  max-height: 300px;\n  overflow-y: auto;\n  user-select: none;\n\n  .slot {\n    touch-action: none;\n  }\n\n  .button:disabled {\n    opacity: 0.6;\n  }\n\n  .button.is-closed:disabled {\n    background-color: $grey-lighter;\n    border-color: transparent;\n    color: $grey;\n  }\n\n  .button.is-booked:disabled {\n    background-color: $danger-light;\n    border-color: transparent;\n    color: $danger-dark;\n    text-decoration: line-through;\n  }\n}\n\n.slot-legend {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0.75rem;\n\n  .legend-swatch {\n    display: inline-block;\n    width: 0.75rem;\n    height: 0.75rem;\n    border-radius: 2px;\n    vertical-align: middle;\n\n    &.swatch-available {\n      background-color: $white;\n      border: 1px solid $grey-light;\n    }\n\n    &.swatch-booked {\n      background-color: $danger-light;\n    }\n\n    &.swatch-closed {\n      background-color: $grey-lighter;\n    }\n  }\n}\n</style>\n","var render = function render() {\n  var _vm = this,\n    _c = _vm._self._c\n  return _c(\n    \"div\",\n    [\n      _vm.isClosed\n        ? _c(\"Message\", {\n            attrs: { type: \"is-warning\" },\n            scopedSlots: _vm._u(\n              [\n                {\n                  key: \"content\",\n                  fn: function () {\n                    return [\n                      _vm._v(\n                        \" \" +\n                          _vm._s(\n                            _vm.$t(\n                              \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_Closed\"\n                            )\n                          ) +\n                          \" \"\n                      ),\n                    ]\n                  },\n                  proxy: true,\n                },\n              ],\n              null,\n              false,\n              4283256157\n            ),\n          })\n        : [\n            _c(\"p\", { staticClass: \"is-size-7 has-text-grey mb-3\" }, [\n              _vm._v(\n                \" \" +\n                  _vm._s(\n                    _vm.$t(\n                      \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_OpenBetween\",\n                      {\n                        start: _vm.$options.filters.minutesToTime(\n                          _vm.daySchedule.MinMinutes\n                        ),\n                        end: _vm.$options.filters.minutesToTime(\n                          _vm.daySchedule.MaxMinutes\n                        ),\n                      }\n                    )\n                  ) +\n                  \" \"\n              ),\n            ]),\n            !_vm.hasAvailableSlots\n              ? _c(\"Message\", {\n                  attrs: { type: \"is-warning\" },\n                  scopedSlots: _vm._u(\n                    [\n                      {\n                        key: \"content\",\n                        fn: function () {\n                          return [\n                            _vm._v(\n                              \" \" +\n                                _vm._s(\n                                  _vm.$t(\n                                    \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_NoSlots\"\n                                  )\n                                ) +\n                                \" \"\n                            ),\n                          ]\n                        },\n                        proxy: true,\n                      },\n                    ],\n                    null,\n                    false,\n                    1007612857\n                  ),\n                })\n              : _c(\"div\", { staticClass: \"field\" }, [\n                  _c(\"label\", { staticClass: \"label\" }, [\n                    _vm._v(\n                      _vm._s(\n                        _vm.$t(\n                          \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Label_Time\"\n                        )\n                      )\n                    ),\n                  ]),\n                  _c(\"p\", { staticClass: \"is-size-7 has-text-grey mb-2\" }, [\n                    _vm._v(\n                      \" \" +\n                        _vm._s(\n                          _vm.$t(\n                            \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Text_DragHint\"\n                          )\n                        ) +\n                        \" \"\n                    ),\n                  ]),\n                  _c(\n                    \"div\",\n                    {\n                      staticClass: \"slot-grid\",\n                      on: {\n                        touchmove: function ($event) {\n                          $event.preventDefault()\n                          return _vm.onTouchMove.apply(null, arguments)\n                        },\n                      },\n                    },\n                    _vm._l(_vm.timelineSlots, function (slot) {\n                      return _c(\n                        \"button\",\n                        {\n                          key: \"slot_\" + slot.minutes,\n                          staticClass: \"button is-small slot\",\n                          class: _vm.slotClass(slot),\n                          attrs: {\n                            \"data-minutes\": slot.minutes,\n                            disabled: !slot.available,\n                          },\n                          on: {\n                            mousedown: function ($event) {\n                              $event.preventDefault()\n                              return _vm.startDrag(slot)\n                            },\n                            mouseenter: function ($event) {\n                              return _vm.onDragOver(slot.minutes)\n                            },\n                            touchstart: function ($event) {\n                              $event.preventDefault()\n                              return _vm.startDrag(slot)\n                            },\n                          },\n                        },\n                        [\n                          _vm._v(\n                            \" \" +\n                              _vm._s(_vm._f(\"minutesToTime\")(slot.minutes)) +\n                              \" \"\n                          ),\n                        ]\n                      )\n                    }),\n                    0\n                  ),\n                  _c(\n                    \"div\",\n                    { staticClass: \"slot-legend is-size-7 has-text-grey mt-2\" },\n                    [\n                      _c(\"span\", [\n                        _c(\"span\", {\n                          staticClass: \"legend-swatch swatch-available\",\n                        }),\n                        _vm._v(\n                          \" \" +\n                            _vm._s(\n                              _vm.$t(\n                                \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Legend_Available\"\n                              )\n                            ) +\n                            \" \"\n                        ),\n                      ]),\n                      _c(\"span\", [\n                        _c(\"span\", {\n                          staticClass: \"legend-swatch swatch-booked\",\n                        }),\n                        _vm._v(\n                          \" \" +\n                            _vm._s(\n                              _vm.$t(\n                                \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Legend_Booked\"\n                              )\n                            ) +\n                            \" \"\n                        ),\n                      ]),\n                      _c(\"span\", [\n                        _c(\"span\", {\n                          staticClass: \"legend-swatch swatch-closed\",\n                        }),\n                        _vm._v(\n                          \" \" +\n                            _vm._s(\n                              _vm.$t(\n                                \"Components.FrontEnd.BookSpaceDirect.TimeSlotPicker.Legend_Closed\"\n                              )\n                            ) +\n                            \" \"\n                        ),\n                      ]),\n                    ]\n                  ),\n                  _vm.hasTimeSelection\n                    ? _c(\"div\", { staticClass: \"mt-3\" }, [\n                        _c(\n                          \"span\",\n                          { staticClass: \"icon is-small mr-1\" },\n                          [\n                            _c(\"font-awesome-icon\", {\n                              attrs: { icon: [\"fas\", \"clock\"] },\n                            }),\n                          ],\n                          1\n                        ),\n                        _c(\"span\", { staticClass: \"has-text-weight-bold\" }, [\n                          _vm._v(\n                            \" \" +\n                              _vm._s(\n                                _vm._f(\"minutesToTime\")(_vm.startMinutes)\n                              ) +\n                              \" - \" +\n                              _vm._s(_vm._f(\"minutesToTime\")(_vm.endMinutes)) +\n                              \" \"\n                          ),\n                        ]),\n                        _c(\"span\", { staticClass: \"has-text-grey\" }, [\n                          _vm._v(\n                            \" (\" +\n                              _vm._s(\n                                _vm._f(\"minutesToDuration\")(\n                                  _vm.endMinutes - _vm.startMinutes\n                                )\n                              ) +\n                              \") \"\n                          ),\n                        ]),\n                      ])\n                    : _vm._e(),\n                ]),\n          ],\n    ],\n    2\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/**\\n* Colors\\n*/\\n/**\\n* Text sizes\\n*/\\n/**\\n* Column settings\\n*/\\n/**\\n* Font properties\\n*/\\n.slot-grid[data-v-32f3589f] {\\n  display: grid;\\n  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));\\n  gap: 0.25rem;\\n  max-height: 300px;\\n  overflow-y: auto;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n      -ms-user-select: none;\\n          user-select: none;\\n}\\n.slot-grid .slot[data-v-32f3589f] {\\n  -ms-touch-action: none;\\n      touch-action: none;\\n}\\n.slot-grid .button[data-v-32f3589f]:disabled {\\n  opacity: 0.6;\\n}\\n.slot-grid .button.is-closed[data-v-32f3589f]:disabled {\\n  background-color: hsl(0, 0%, 86%);\\n  border-color: transparent;\\n  color: #B3B3B3;\\n}\\n.slot-grid .button.is-booked[data-v-32f3589f]:disabled {\\n  background-color: rgb(255, 234.6, 234.6);\\n  border-color: transparent;\\n  color: rgb(234.6, 0, 0);\\n  text-decoration: line-through;\\n}\\n.slot-legend[data-v-32f3589f] {\\n  display: -webkit-box;\\n  display: -ms-flexbox;\\n  display: flex;\\n  -ms-flex-wrap: wrap;\\n      flex-wrap: wrap;\\n  gap: 0.75rem;\\n}\\n.slot-legend .legend-swatch[data-v-32f3589f] {\\n  display: inline-block;\\n  width: 0.75rem;\\n  height: 0.75rem;\\n  border-radius: 2px;\\n  vertical-align: middle;\\n}\\n.slot-legend .legend-swatch.swatch-available[data-v-32f3589f] {\\n  background-color: hsl(0, 0%, 100%);\\n  border: 1px solid rgb(222.35, 222.35, 222.35);\\n}\\n.slot-legend .legend-swatch.swatch-booked[data-v-32f3589f] {\\n  background-color: rgb(255, 234.6, 234.6);\\n}\\n.slot-legend .legend-swatch.swatch-closed[data-v-32f3589f] {\\n  background-color: hsl(0, 0%, 86%);\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../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!./TimeSlotPicker.vue?vue&type=style&index=0&id=32f3589f&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3937783a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../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!./TimeSlotPicker.vue?vue&type=style&index=0&id=32f3589f&lang=scss&scoped=true\", function() {\n     var newContent = require(\"!!../../../../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!./TimeSlotPicker.vue?vue&type=style&index=0&id=32f3589f&lang=scss&scoped=true\");\n     if(newContent.__esModule) newContent = newContent.default;\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import { render, staticRenderFns } from \"./TimeSlotPicker.vue?vue&type=template&id=32f3589f&scoped=true\"\nimport script from \"./TimeSlotPicker.vue?vue&type=script&lang=js\"\nexport * from \"./TimeSlotPicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./TimeSlotPicker.vue?vue&type=style&index=0&id=32f3589f&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  \"32f3589f\",\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('32f3589f')) {\n      api.createRecord('32f3589f', component.options)\n    } else {\n      api.reload('32f3589f', component.options)\n    }\n    module.hot.accept(\"./TimeSlotPicker.vue?vue&type=template&id=32f3589f&scoped=true\", function () {\n      api.rerender('32f3589f', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/FrontEnd/BookSpaceDirect/TimeSlotPicker.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!./TimeSlotPicker.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!./TimeSlotPicker.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/vue-style-loader/index.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!./TimeSlotPicker.vue?vue&type=style&index=0&id=32f3589f&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"381a4baa-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!./TimeSlotPicker.vue?vue&type=template&id=32f3589f&scoped=true\""],"sourceRoot":""}