{"version":3,"sources":["webpack:///./src/views/UserBookingsPage.vue?5bab","webpack:///./src/components/SortBookingsDialog.vue?62fb","webpack:///./src/components/SortBookingsDialog.vue?c353","webpack:///./src/components/SortBookingsDialog.vue?4548","webpack:///./src/components/SortBookingsDialog.vue","webpack:///./src/components/BookingCard.vue?c11a","webpack:///./src/components/BookingCard.vue?42d4","webpack:///./src/components/BookingCard.vue?798d","webpack:///./src/components/BookingCard.vue","webpack:///./src/components/BookingDialog.vue?864c","webpack:///./src/components/BookingDialog.vue?bcc9","webpack:///./src/components/BookingDialog.vue?ca68","webpack:///./src/components/BookingDialog.vue","webpack:///./src/views/UserBookingsPage.vue?0fec","webpack:///./src/views/UserBookingsPage.vue?e491","webpack:///./src/views/UserBookingsPage.vue","webpack:///./src/views/UserAvailabilityPage.vue?da6f","webpack:///./src/components/BookingCard.vue?b325","webpack:///./src/views/UserSettingsPage.vue?459a","webpack:///./src/components/BookingCardMetadata.vue?2914","webpack:///./src/components/BookingCardMetadata.vue?ad69","webpack:///./src/components/BookingCardMetadata.vue?8b01","webpack:///./src/components/BookingCardMetadata.vue","webpack:///./src/views/UserCalendarPage.vue?06c6","webpack:///./src/views/UserCalendarPage.vue?269e","webpack:///./src/views/UserCalendarPage.vue?c89b","webpack:///./src/views/UserCalendarPage.vue","webpack:///./src/views/UserSettingsPage.vue?4831","webpack:///./src/components/FeedbackDialog.vue?61a8","webpack:///./src/components/FeedbackDialog.vue?834d","webpack:///./src/components/FeedbackDialog.vue?511c","webpack:///./src/components/FeedbackDialog.vue","webpack:///./src/views/UserSettingsPage.vue?9721","webpack:///./src/views/UserSettingsPage.vue?6af0","webpack:///./src/views/UserSettingsPage.vue","webpack:///./src/views/UserAvailabilityPage.vue?fd99","webpack:///./src/views/UserAvailabilityPage.vue?5271","webpack:///./src/views/UserAvailabilityPage.vue?38c0","webpack:///./src/views/UserAvailabilityPage.vue","webpack:///./src/views/UserBookingsPage.vue?2087"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","staticClass","_v","on","$event","bookingSearch","model","value","callback","$$v","expression","v","saveSort","filters","openBookingDialog","newBooking","filteredBookings","length","_s","_f","_e","pageLimit","Math","ceil","page","slideDirection","directives","name","rawName","left","movePagination","right","key","_l","booking","id","JSON","parse","stringify","updateBooking","type","indexOf","_k","keyCode","addEditBookingDialog","editBookingMode","stopPropagation","ref","formValid","currentUser","entities","map","e","includes","currentBooking","bookingEntityId","getEntityLabel","bookingEntityOptions","getEntityIcon","requiredField","$set","clientEntityNames","scopedSlots","_u","fn","_g","addEditBookingDateMenu","newStartTime","startTime","addEditBookingStartMenu","m","timeRangeRules","endTime","$refs","bookingForm","resetValidation","newEndTime","addEditBookingEndMenu","userClientSettings","customFormFields","saveBooking","staticRenderFns","sortBookingsDialog","sortItems","sortKey","sortDir","resetSort","SortBookingsDialog","text","$emit","dir","default","component","class","bookingHasPassed","bookingStatusColor","metadata","rating","ratingStars","index","date","editBooking","show","status","cancelBooking","confirmBooking","cancelMessageDialog","confirmCancellation","userModule","elements","Array","from","keys","count","push","isBefore","message","entityId","userEntity","timezone","defaultTimezone","Getter","components","BookingCardMetadata","nameRules","phoneRules","emailRules","format","bookingUserId","phone","email","comments","deleteBookingDialog","cancelMessage","startDate","endDate","futureBooking","pastBooking","phoneMask","Object","assign","bookingWithConvertedMetadata","applyPhoneMask","override","user","entity","clientEntity","actionSaveBooking","then","validate","Action","bookingModule","BookingDialog","importBookingDialog","$vuetify","breakpoint","smAndDown","importId","field","values","direction","unsetUnitData","client","find","f","source","getUnitData","bookings","sort","a","b","toLowerCase","convertedBookings","filtered","filter","entityName","parseInt","isSameOrAfter","isSameOrBefore","searchBookings","sortBookings","startIndex","endIndex","FilterBookingsDialog","BookingCard","MetadataFields","customFieldsExist","label","suite_name","suite_rate","metadataKeys","moddedMetadata","forEach","k","prev","next","title","typeToLabel","today","buildCalendarEvents","getEventColor","showEvent","viewDay","updateRange","selectedElement","selectedOpen","selectedEvent","color","domProps","newUser","focus","month","week","day","start","end","checkTimeType","events","rawDate","time","duration","getDuration","details","startSeconds","valueOf","endSeconds","event","calendar","data","open","nativeEvent","target","setTimeout","componentIsNested","currentUserBookingEntities","requiredNumber","sendInviteToUser","userLiftMatch","toggleLiftConnection","currentUserLiftConnected","generateCalendarUrl","arg","calendarSyncHelpDialog","hasNylasAccounts","calendars","currentCalendarId","bookingCalendar","calendarStatus","dialog","signinToNylas","openFeedbackDialog","saveUser","firebaseSnackbarType","firebaseSnackbar","firebaseSnackbarMsg","shouldOpen","placeholder","maxParaLength","feedback","saveFeedback","content","feedbacks","actionSaveUser","console","log","feedbackForm","reset","clientModule","requiredNumberRules","window","location","origin","calendarToken","hint","urlString","encodeURIComponent","liftUsers","assignBookingEntities","sendFirebaseSignInLink","error","selectableEntities","clientEntities","$route","params","FeedbackDialog","availabilityType","editAvailabilityDialog","saveAvailability","availability","dayOfWeekText","mdAndDown","timeslot","timeIndex","timeslots","userAvailabilityExceptions","openExceptionDialog","newException","editExceptionDialog","editExceptionMode","isDuplicate","isValid","currentException","exceptionDateMenu","datesAfterToday","availabilityRules","currentExceptionIsAllDay","exceptionStartMenu","exceptionEndMenu","toggleCurrentExceptionAllDay","deleteExceptionDialog","deleteException","saveException","exception","isAfter","exceptionExists","saveAvailabilityException","editUser","reduceAvailability","expandAvailability","returnAvailability","returnVal","ex","toUtcTimestamp","convertedExceptions","EditAvailabilityDialog","AvailabilityDisplay"],"mappings":"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","file":"js/client-user.71508413.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\",\"justify\":\"space-between\"}},[_c('v-col',[_c('h1',{staticClass:\"headline\"},[_vm._v(\"Bookings\")])]),_c('v-col',[_c('v-text-field',{staticClass:\"mt-0 pt-0\",attrs:{\"prepend-inner-icon\":\"search\",\"label\":\"Search\",\"single-line\":\"\",\"hide-details\":\"\",\"dark\":\"\",\"clearable\":\"\",\"color\":\"white\"},on:{\"click:clear\":function($event){_vm.bookingSearch = ''}},model:{value:(_vm.bookingSearch),callback:function ($$v) {_vm.bookingSearch=$$v},expression:\"bookingSearch\"}})],1),_c('v-col',{staticClass:\"text-right\"},[_c('SortBookingsDialog',{on:{\"sortSaved\":function (v) { return _vm.saveSort(v); }}}),_c('FilterBookingsDialog',{on:{\"filtersSaved\":function (v) { return (_vm.filters = v); }}}),_c('v-btn',{staticClass:\"btn-action-small\",attrs:{\"fab\":\"\",\"color\":\"success\",\"id\":\"new_booking_btn\"},on:{\"click\":function($event){return _vm.openBookingDialog(_vm.newBooking)}}},[_c('v-icon',[_vm._v(\"add\")])],1)],1)],1),_c('BookingDialog')],1)],1)],1),(_vm.filteredBookings.length < 0)?_c('v-alert',{staticClass:\"py-1 px-12 mt-4\",attrs:{\"outline\":\"\",\"color\":_vm.filteredBookings.length > 0 ? 'success' : 'error'}},[_vm._v(\"\\n \"+_vm._s(_vm.filteredBookings.length)+\"\\n \"+_vm._s(_vm._f(\"pluralize\")(_vm.filteredBookings.length,[\"booking\"]))+\" found\\n \")]):_vm._e(),_c('v-container',{staticClass:\"pa-0\",attrs:{\"container--fluid\":\"\"}},[_c('v-row',[_c('v-col',[(_vm.filteredBookings.length > _vm.pageLimit)?_c('v-pagination',{attrs:{\"length\":Math.ceil(_vm.filteredBookings.length / _vm.pageLimit)},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}}):_vm._e()],1)],1)],1),_c('transition',{attrs:{\"name\":_vm.slideDirection,\"mode\":\"out-in\"}},[_c('v-container',{directives:[{name:\"touch\",rawName:\"v-touch\",value:({\n left: function () { return _vm.movePagination('up'); },\n right: function () { return _vm.movePagination('down'); }\n }),expression:\"{\\n left: () => movePagination('up'),\\n right: () => movePagination('down')\\n }\"}],key:_vm.page,staticClass:\"mt-2\",attrs:{\"grid-list-lg\":\"\",\"container--fluid\":\"\"}},[_c('v-row',_vm._l((_vm.paginatedBookings),function(booking){return _c('BookingCard',{key:booking.id,attrs:{\"booking\":JSON.parse(JSON.stringify(booking))},on:{\"editBooking\":function (v) { return _vm.openBookingDialog(v); },\"updateBooking\":function (v) { return _vm.updateBooking(v); }}})}),1)],1)],1),_c('v-container',{attrs:{\"container--fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"sm\":\"12\"}},[(_vm.filteredBookings.length > _vm.pageLimit)?_c('v-pagination',{attrs:{\"length\":Math.ceil(_vm.filteredBookings.length / _vm.pageLimit)},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}}):_vm._e()],1)],1)],1),_c('v-col',{staticClass:\"mt-2\"},[_c('v-dialog',{staticClass:\"add-edit-booking-dialog\",attrs:{\"width\":\"500\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.addEditBookingDialog = false}},model:{value:(_vm.addEditBookingDialog),callback:function ($$v) {_vm.addEditBookingDialog=$$v},expression:\"addEditBookingDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\",\"justify\":\"space-between\"}},[_c('v-col',[_c('h3',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm._f(\"capitalize\")(this.editBookingMode))+\" Booking\")])]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.addEditBookingDialog = false}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)],1),_c('v-card-text',[_c('v-form',{ref:\"bookingForm\",model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-row',{staticClass:\"mt-2\",attrs:{\"dense\":\"\"}},[_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n this.editBookingMode === 'new' ||\n _vm.currentUser.entities\n .map(function (e) { return e.id; })\n .includes(_vm.currentBooking.bookingEntityId)\n ),expression:\"\\n this.editBookingMode === 'new' ||\\n currentUser.entities\\n .map(e => e.id)\\n .includes(currentBooking.bookingEntityId)\\n \"}],attrs:{\"label\":_vm.getEntityLabel('singular'),\"items\":_vm.bookingEntityOptions,\"prepend-icon\":_vm.getEntityIcon,\"rules\":[_vm.requiredField]},model:{value:(_vm.currentBooking.bookingEntityId),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"bookingEntityId\", $$v)},expression:\"currentBooking.bookingEntityId\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(\n this.editBookingMode === 'edit' &&\n !_vm.currentUser.entities\n .map(function (e) { return e.id; })\n .includes(_vm.currentBooking.bookingEntityId)\n ),expression:\"\\n this.editBookingMode === 'edit' &&\\n !currentUser.entities\\n .map(e => e.id)\\n .includes(currentBooking.bookingEntityId)\\n \"}],attrs:{\"readonly\":\"\",\"value\":_vm.clientEntityNames[_vm.currentBooking.bookingEntityId],\"label\":_vm.getEntityLabel('singular'),\"prepend-icon\":_vm.getEntityIcon}})],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"min-width\":\"290px\",\"max-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\",\"label\":\"Date\",\"prepend-icon\":\"event\",\"validate-on-blur\":true},model:{value:(_vm.currentBooking.date),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"date\", $$v)},expression:\"currentBooking.date\"}},on))]}}]),model:{value:(_vm.addEditBookingDateMenu),callback:function ($$v) {_vm.addEditBookingDateMenu=$$v},expression:\"addEditBookingDateMenu\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\"},model:{value:(_vm.currentBooking.date),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"date\", $$v)},expression:\"currentBooking.date\"}})],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-dialog',{attrs:{\"min-width\":\"290px\",\"max-width\":\"290px\",\"hide-overlay\":\"\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start Time\",\"readonly\":\"\",\"prepend-icon\":\"access_time\"},on:{\"click\":function($event){_vm.newStartTime = _vm.currentBooking.startTime}},model:{value:(_vm.currentBooking.startTime),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"startTime\", $$v)},expression:\"currentBooking.startTime\"}},on))]}}]),model:{value:(_vm.addEditBookingStartMenu),callback:function ($$v) {_vm.addEditBookingStartMenu=$$v},expression:\"addEditBookingStartMenu\"}},[_c('v-time-picker',{attrs:{\"allowed-minutes\":function (m) { return m % 5 == 0; }},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.newStartTime = _vm.currentBooking.startTime;\n _vm.addEditBookingStartMenu = false;}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.currentBooking.startTime = _vm.newStartTime;\n _vm.addEditBookingStartMenu = false;\n _vm.timeRangeRules(_vm.currentBooking.startTime, _vm.currentBooking.endTime) && _vm.$refs.bookingForm.resetValidation()}}},[_vm._v(\"Ok\")])],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-dialog',{attrs:{\"min-width\":\"290px\",\"max-width\":\"290px\",\"hide-overlay\":\"\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End Time\",\"readonly\":\"\",\"prepend-icon\":\"access_time\",\"rules\":_vm.timeRangeRules(_vm.currentBooking.startTime, _vm.currentBooking.endTime)},on:{\"click\":function($event){_vm.newEndTime = _vm.currentBooking.endTime}},model:{value:(_vm.currentBooking.endTime),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"endTime\", $$v)},expression:\"currentBooking.endTime\"}},on))]}}]),model:{value:(_vm.addEditBookingEndMenu),callback:function ($$v) {_vm.addEditBookingEndMenu=$$v},expression:\"addEditBookingEndMenu\"}},[_c('v-time-picker',{attrs:{\"allowed-minutes\":function (m) { return m % 5 == 0; }},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.newEndTime = _vm.currentBooking.endTime;\n _vm.addEditBookingEndMenu = false;}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.currentBooking.endTime = _vm.newEndTime;\n _vm.addEditBookingEndMenu = false;\n _vm.timeRangeRules(_vm.currentBooking.startTime, _vm.currentBooking.endTime) && _vm.$refs.bookingForm.resetValidation();}}},[_vm._v(\"Ok\")])],1)],1)],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('metadata-fields',{attrs:{\"customFormFields\":_vm.userClientSettings.customFormFields},model:{value:(_vm.currentBooking.metadata),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"metadata\", $$v)},expression:\"currentBooking.metadata\"}})],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{attrs:{\"label\":\"Status\",\"prepend-icon\":\"toggle_on\",\"items\":['confirmed', 'requested', 'cancelled']},model:{value:(_vm.currentBooking.status),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"status\", $$v)},expression:\"currentBooking.status\"}})],1)],1),_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"text-right\"},[_vm._v(\"\\n No Show\\n \")]),_c('v-col',{staticClass:\"text-center\"},[_c('v-rating',{attrs:{\"color\":\"warning\",\"background-color\":\"warning\",\"label\":\"Rating\"},model:{value:(_vm.currentBooking.rating),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"rating\", $$v)},expression:\"currentBooking.rating\"}})],1),_c('v-col',[_vm._v(\"\\n Excellent\\n \")])],1)],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.addEditBookingDialog = false}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.saveBooking()}}},[_vm._v(\"Save\")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{staticClass:\"sort-bookings-dialog\",attrs:{\"width\":\"400\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.sortBookingsDialog = false}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"btn-action-small btn-filter\",attrs:{\"fab\":\"\",\"small\":\"\"}},on),[_c('v-icon',[_vm._v(\"unfold_more\")])],1)]}}]),model:{value:(_vm.sortBookingsDialog),callback:function ($$v) {_vm.sortBookingsDialog=$$v},expression:\"sortBookingsDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header mb-5\"},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('h3',{staticClass:\"headline\"},[_vm._v(\"Sort Bookings\")])]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.sortBookingsDialog = false}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)],1),_c('v-card-text',[_c('v-select',{attrs:{\"label\":\"Field\",\"items\":_vm.sortItems},model:{value:(_vm.sortKey),callback:function ($$v) {_vm.sortKey=$$v},expression:\"sortKey\"}}),_c('v-select',{attrs:{\"label\":\"Direction\",\"items\":['desc', 'asc']},model:{value:(_vm.sortDir),callback:function ($$v) {_vm.sortDir=$$v},expression:\"sortDir\"}})],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.resetSort()}}},[_vm._v(\"Reset\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.saveSort()}}},[_vm._v(\"Apply\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\n\n@Component\nexport default class SortBookingsDialog extends Vue {\n @Prop({ default: false }) public sortUsers!: boolean\n\n public sortBookingsDialog = false\n public sortKey = 'date'\n public sortDir = 'desc'\n public sortItems = [\n {\n text: 'Date',\n value: 'date',\n },\n {\n text: 'Start Time',\n value: 'startTime',\n },\n {\n text: 'End Time',\n value: 'endTime',\n },\n {\n text: 'Entity',\n value: 'bookingEntityId',\n },\n {\n text: 'User',\n value: 'bookingUserId',\n },\n ]\n\n @Getter\n public getEntityLabel!: (type: string) => string\n\n public saveSort() {\n this.$emit('sortSaved', { key: this.sortKey, dir: this.sortDir })\n this.sortBookingsDialog = false\n }\n\n public resetSort() {\n this.sortKey = 'date'\n this.sortDir = 'desc'\n this.saveSort()\n }\n\n public created() {\n this.sortItems[3].text = this.getEntityLabel('singular')\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortBookingsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortBookingsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SortBookingsDialog.vue?vue&type=template&id=93125610&\"\nimport script from \"./SortBookingsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SortBookingsDialog.vue?vue&type=script&lang=ts&\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\",\"xl\":\"2\"}},[_c('v-card',{staticClass:\"booking-card\"},[_c('div',{staticClass:\"status-bar\",class:(_vm.bookingHasPassed(_vm.booking) == true) ? '' : _vm.bookingStatusColor(_vm.booking)}),_c('v-card-title',{attrs:{\"primary-title\":\"\"}},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('h3',[_vm._v(_vm._s(_vm.booking.metadata.name))]),(_vm.booking.rating > 0)?_c('div',{staticClass:\"ratings\"},_vm._l((_vm.ratingStars(_vm.booking.rating)),function(index){return _c('v-icon',{key:index,attrs:{\"small\":\"\",\"color\":\"warning\"}},[_vm._v(\"\\n star\\n \")])}),1):_vm._e()]),_c('h4',[_vm._v(_vm._s(_vm.clientEntityNames[_vm.booking.bookingEntityId]))])]),_c('v-card-text',{staticClass:\"pb-0\"},[_c('span',{staticClass:\"grey--text date-section\"},[_c('v-icon',{staticClass:\"mr-2 grey--text lighten-4\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-calendar\")]),_vm._v(_vm._s(_vm._f(\"longDate\")(_vm.booking.date)))],1),_c('br'),_c('span',{staticClass:\"grey--text time-section\"},[_c('v-icon',{staticClass:\"mr-2 grey--text lighten-4\",attrs:{\"small\":\"\"}},[_vm._v(\"mdi-clock\")]),_vm._v(_vm._s(_vm._f(\"displayTime\")(_vm.booking.startTime))+\" — \"+_vm._s(_vm._f(\"displayTime\")(_vm.booking.endTime)))],1)]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.editBooking()}}},[_vm._v(\"Edit\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.show = !_vm.show}}},[_c('v-icon',[_vm._v(_vm._s(_vm.show ? 'keyboard_arrow_up' : 'keyboard_arrow_down'))])],1)],1),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}]},[_c('v-divider'),_c('booking-card-metadata',{attrs:{\"metadata\":_vm.booking.metadata}}),(!_vm.bookingHasPassed(_vm.booking))?_c('div',[_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),(_vm.booking.status != 'cancelled')?_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.cancelBooking()}}},[_vm._v(\"Cancel\")]):_vm._e(),(_vm.booking.status === 'requested' || _vm.booking.status === 'cancelled')?_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.confirmBooking()}}},[_vm._v(\"Confirm\")]):_vm._e()],1)],1):_vm._e()],1)])],1),_c('v-dialog',{attrs:{\"width\":\"300\",\"persistent\":\"\"},model:{value:(_vm.cancelMessageDialog),callback:function ($$v) {_vm.cancelMessageDialog=$$v},expression:\"cancelMessageDialog\"}},[_c('v-card',[_c('v-card-title',{attrs:{\"primary-title\":\"\"}},[_vm._v(\"Confirm Cancellation\")]),_c('v-card-text',[_vm._v(\"Are you sure you want to cancel this booking?\")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.cancelMessageDialog = false}}},[_vm._v(\"No\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.confirmCancellation('cancelled')}}},[_vm._v(\"Yes\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Action, Getter, namespace } from 'vuex-class'\nimport moment from 'moment'\nimport BookingCardMetadata from '@/components/BookingCardMetadata.vue'\n\nconst userModule = namespace('user')\nconst clientModule = namespace('client')\n\n@Component({\n components: {\n BookingCardMetadata,\n },\n})\nexport default class BookingCard extends Vue {\n public show = false\n @Prop() public booking!: IBookingData\n\n @Getter\n public getEntityIcon!: string\n\n @userModule.Getter\n public clientEntityNames!: { [id: string]: string }\n\n @userModule.Getter\n public userEntity!: (entityId: string) => IEntityData\n\n @userModule.Getter\n public userClientSettings!: ISettingsData\n\n public cancelMessageDialog = false\n\n public bookingStatusColor(booking: IBookingData) {\n switch (booking.status) {\n case 'confirmed':\n return 'success'\n case 'requested':\n return 'warning'\n case 'cancelled':\n return 'error'\n }\n }\n\n public bookingStatusIcon(booking: IBookingData) {\n switch (booking.status) {\n case 'confirmed':\n return 'check_circle'\n case 'requested':\n return 'error'\n case 'cancelled':\n return 'cancel'\n }\n }\n\n public ratingStars(rating: number) {\n const elements = []\n for (const count of Array.from(Array(rating).keys())) {\n elements.push(count)\n }\n return elements\n }\n public bookingHasPassed(booking: IBookingData) {\n return moment(`${booking.date} ${booking.startTime}`).isBefore(moment())\n }\n\n public editBooking() {\n this.$emit('editBooking', this.booking)\n }\n\n public confirmBooking() {\n this.booking.status = 'confirmed'\n this.$emit('updateBooking', this.booking)\n }\n\n public cancelBooking() {\n this.cancelMessageDialog = true\n }\n\n public confirmCancellation(message: string) {\n this.cancelMessageDialog = false\n this.booking.status = 'cancelled'\n this.$emit('updateBooking', this.booking)\n }\n\n public formatMetadata(metadata: string | IUserInfo) {\n return typeof metadata === 'string' ? JSON.parse(metadata) : metadata\n }\n\n public findTimezone(entityId: string) {\n return this.userEntity(entityId) &&\n this.userEntity(entityId).timezone &&\n this.userEntity(entityId).timezone !== ''\n ? this.userEntity(entityId).timezone\n : this.userClientSettings.defaultTimezone\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookingCard.vue?vue&type=template&id=6704a9c9&\"\nimport script from \"./BookingCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookingCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BookingCard.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{staticClass:\"add-edit-booking-dialog\",attrs:{\"width\":\"500\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.addEditBookingDialog = false}},model:{value:(_vm.addEditBookingDialog),callback:function ($$v) {_vm.addEditBookingDialog=$$v},expression:\"addEditBookingDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',[_c('h2',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm._f(\"capitalize\")(this.editBookingMode))+\" Booking\")])]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.addEditBookingDialog = false}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)],1),_c('v-card-text',[_c('v-form',{ref:\"bookingForm\",model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-select',{attrs:{\"label\":_vm.getEntityLabel('singular'),\"items\":_vm.bookingEntityOptions,\"prepend-icon\":_vm.getEntityIcon,\"rules\":[_vm.requiredField]},model:{value:(_vm.currentBooking.bookingEntityId),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"bookingEntityId\", $$v)},expression:\"currentBooking.bookingEntityId\"}}),_c('v-row',[_c('v-col',{attrs:{\"xs\":\"4\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"min-width\":\"290px\",\"max-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\",\"label\":\"Date\",\"prepend-icon\":\"event\",\"validate-on-blur\":true},model:{value:(_vm.currentBooking.date),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"date\", $$v)},expression:\"currentBooking.date\"}},on))]}}]),model:{value:(_vm.addEditBookingDateMenu),callback:function ($$v) {_vm.addEditBookingDateMenu=$$v},expression:\"addEditBookingDateMenu\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\"},model:{value:(_vm.currentBooking.date),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"date\", $$v)},expression:\"currentBooking.date\"}})],1)],1),_c('v-col',{attrs:{\"xs\":\"4\"}},[_c('v-dialog',{attrs:{\"min-width\":\"290px\",\"max-width\":\"290px\",\"hide-overlay\":\"\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start Time\",\"readonly\":\"\",\"prepend-icon\":\"access_time\"},on:{\"click\":function($event){_vm.newStartTime = _vm.currentBooking.startTime}},model:{value:(_vm.currentBooking.startTime),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"startTime\", $$v)},expression:\"currentBooking.startTime\"}},on))]}}]),model:{value:(_vm.addEditBookingStartMenu),callback:function ($$v) {_vm.addEditBookingStartMenu=$$v},expression:\"addEditBookingStartMenu\"}},[_c('v-time-picker',{attrs:{\"allowed-minutes\":function (m) { return m % 5 == 0; }},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.newStartTime = _vm.currentBooking.startTime;\n _vm.addEditBookingStartMenu = false;}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.currentBooking.startTime = _vm.newStartTime;\n _vm.addEditBookingStartMenu = false;}}},[_vm._v(\"Ok\")])],1)],1)],1),_c('v-col',{attrs:{\"xs\":\"4\"}},[_c('v-dialog',{attrs:{\"min-width\":\"290px\",\"max-width\":\"290px\",\"hide-overlay\":\"\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End Time\",\"readonly\":\"\",\"prepend-icon\":\"access_time\"},on:{\"click\":function($event){_vm.newEndTime = _vm.currentBooking.endTime}},model:{value:(_vm.currentBooking.endTime),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"endTime\", $$v)},expression:\"currentBooking.endTime\"}},on))]}}]),model:{value:(_vm.addEditBookingEndMenu),callback:function ($$v) {_vm.addEditBookingEndMenu=$$v},expression:\"addEditBookingEndMenu\"}},[_c('v-time-picker',{attrs:{\"allowed-minutes\":function (m) { return m % 5 == 0; }},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.newEndTime = _vm.currentBooking.endTime;\n _vm.addEditBookingEndMenu = false;}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.currentBooking.endTime = _vm.newEndTime;\n _vm.addEditBookingEndMenu = false;}}},[_vm._v(\"Ok\")])],1)],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\",\"prepend-icon\":\"person\",\"rules\":_vm.nameRules},model:{value:(_vm.currentBooking.metadata.name),callback:function ($$v) {_vm.$set(_vm.currentBooking.metadata, \"name\", $$v)},expression:\"currentBooking.metadata.name\"}})],1),_c('v-col',{attrs:{\"sm\":\"6\"}},[_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:(_vm.phoneMask),expression:\"phoneMask\"}],attrs:{\"label\":\"Phone\",\"prepend-icon\":\"phone\",\"rules\":_vm.phoneRules},model:{value:(_vm.currentBooking.metadata.phone),callback:function ($$v) {_vm.$set(_vm.currentBooking.metadata, \"phone\", $$v)},expression:\"currentBooking.metadata.phone\"}})],1)],1),_c('v-text-field',{attrs:{\"label\":\"Email\",\"prepend-icon\":\"email\",\"rules\":_vm.emailRules},model:{value:(_vm.currentBooking.metadata.email),callback:function ($$v) {_vm.$set(_vm.currentBooking.metadata, \"email\", $$v)},expression:\"currentBooking.metadata.email\"}}),_c('v-text-field',{attrs:{\"label\":\"Comments\",\"prepend-icon\":\"comment\"},model:{value:(_vm.currentBooking.metadata.comments),callback:function ($$v) {_vm.$set(_vm.currentBooking.metadata, \"comments\", $$v)},expression:\"currentBooking.metadata.comments\"}}),_c('v-select',{attrs:{\"label\":\"Status\",\"prepend-icon\":\"toggle_on\",\"items\":[\n { text: 'Confirmed', value: 'confirmed' },\n { text: 'Requested', value: 'requested' },\n { text: 'Cancelled', value: 'cancelled' }\n ]},model:{value:(_vm.currentBooking.status),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"status\", $$v)},expression:\"currentBooking.status\"}}),_c('v-row',{attrs:{\"align-center\":\"\"}},[_c('v-col',{staticClass:\"text-right\"},[_vm._v(\"No Show\")]),_c('v-col',{staticClass:\"text-center\"},[_c('v-rating',{attrs:{\"color\":\"warning\",\"background-color\":\"warning\",\"label\":\"Rating\"},model:{value:(_vm.currentBooking.rating),callback:function ($$v) {_vm.$set(_vm.currentBooking, \"rating\", $$v)},expression:\"currentBooking.rating\"}})],1),_c('v-col',[_vm._v(\"Excellent\")])],1)],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.addEditBookingDialog = false}}},[_vm._v(\"Cancel\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.saveBooking()}}},[_vm._v(\"Save\")])],1)],1)],1),_c('v-dialog',{attrs:{\"width\":\"300\",\"eager\":\"\"},model:{value:(_vm.cancelMessageDialog),callback:function ($$v) {_vm.cancelMessageDialog=$$v},expression:\"cancelMessageDialog\"}},[_c('v-card',[_c('v-card-title',{attrs:{\"primary-title\":\"\"}},[_vm._v(\"Confirm Cancellation\")]),_c('v-card-text',[_vm._v(\"Are you sure you want to cancel this booking?\")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.cancelMessageDialog = false}}},[_vm._v(\"No\")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.confirmCancellation('cancelled')}}},[_vm._v(\"Yes\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { Action, Getter, namespace } from 'vuex-class'\nimport Validation from '@/validation'\nimport moment from 'moment'\n\nconst userModule = namespace('user')\nconst clientModule = namespace('client')\n\n@Component\nexport default class UserBookingsPage extends Vue {\n public addEditBookingDialog = false\n public formValid = true\n public newBooking: IBookingData = {\n id: '0',\n date: moment().format('YYYY-MM-DD'),\n startTime: '00:00',\n endTime: '00:00',\n bookingEntityId: '0',\n bookingUserId: '0',\n metadata: {\n name: '',\n phone: '',\n email: '',\n comments: '',\n } as any,\n status: 'confirmed',\n rating: null,\n }\n public currentBooking = this.newBooking\n public addEditBookingDateMenu = false\n public addEditBookingStartMenu = false\n public addEditBookingEndMenu = false\n public deleteBookingDialog = false\n public editBookingMode = 'new'\n public cancelMessageDialog = false\n public cancelMessage = ''\n public filters = {\n entities: [] as string[],\n status: [] as string[],\n rating: [] as number[],\n startDate: '',\n endDate: '',\n futureBooking: true,\n pastBooking: true,\n }\n public newStartTime = ''\n public newEndTime = ''\n\n @Getter\n public getEntityLabel!: string\n\n @Getter\n public getEntityIcon!: string\n\n @userModule.Getter\n public currentUser!: IUserData\n\n @userModule.Getter\n public convertedBookings!: IBookingData[]\n\n @userModule.Getter\n public clientEntityNames!: { [id: string]: string }\n\n @userModule.Getter\n public clientEntity!: (entityId: string) => IEntityData\n\n @userModule.Getter\n public clientEntities!: IEntityData[]\n\n @userModule.Action('saveBooking')\n public actionSaveBooking!: (bookingData: IBookingData) => Promise\n\n protected nameRules = Validation.nameRules\n protected phoneRules = Validation.phoneRules\n protected emailRules = Validation.emailRules\n protected requiredField = Validation.requiredField\n protected phoneMask = Validation.phoneMask\n\n get bookingEntityOptions() {\n return this.currentUser.entities\n ? this.currentUser.entities.map((entity: IEntityData) => ({\n text: entity.name,\n value: entity.id,\n }))\n : []\n }\n\n public openBookingDialog(booking: IBookingData) {\n (this.$refs.bookingForm as Vue & {\n resetValidation: () => boolean;\n }).resetValidation()\n this.addEditBookingDialog = true\n this.currentBooking = Object.assign(\n {},\n this.bookingWithConvertedMetadata(booking),\n )\n this.currentBooking.bookingUserId = this.currentUser.id\n this.currentBooking.metadata.phone = Validation.applyPhoneMask(this.currentBooking.metadata.phone)\n this.editBookingMode = booking === this.newBooking ? 'new' : 'edit'\n }\n\n public updateBooking(booking: IBookingData) {\n this.currentBooking = Object.assign(\n {},\n this.bookingWithConvertedMetadata(booking),\n )\n this.saveBooking(true)\n }\n\n public saveBooking(override = false) {\n if (this.formValid || override === true) {\n this.currentBooking.user = this.currentUser\n this.currentBooking.entity = this.clientEntity(this.currentBooking.bookingEntityId)\n\n this.actionSaveBooking(Object.assign({}, this.currentBooking)).then(\n () => {\n this.addEditBookingDialog = false\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n } else {\n (this.$refs.bookingForm as Vue & { validate: () => boolean }).validate()\n }\n }\n\n @Watch('currentBooking.date')\n public onBookingDateChanged() {\n if (this.addEditBookingDateMenu) {\n this.addEditBookingDateMenu = false\n }\n }\n\n private bookingWithConvertedMetadata(booking: any) {\n if (typeof booking.metadata === 'string' && booking.metadata.length > 0) {\n booking.metadata = JSON.parse(booking.metadata)\n } else if (typeof booking.metadata === 'string') {\n booking.metadata = {\n name: '',\n phone: '',\n email: '',\n comments: '',\n }\n }\n return booking\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookingDialog.vue?vue&type=template&id=525d47e2&\"\nimport script from \"./BookingDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookingDialog.vue?vue&type=script&lang=ts&\"\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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport Validation from '@/validation'\nimport moment from 'moment'\nimport { Action, Getter, namespace } from 'vuex-class'\nimport FilterBookingsDialog from '@/components/FilterBookingsDialog.vue'\nimport SortBookingsDialog from '@/components/SortBookingsDialog.vue'\nimport BookingCard from '@/components/BookingCard.vue'\nimport BookingDialog from '@/components/BookingDialog.vue'\nimport MetadataFields from '@/components/MetadataFields.vue'\n\nconst userModule = namespace('user')\nconst clientModule = namespace('client')\nconst bookingModule = namespace('booking')\n\n@Component({\n components: { FilterBookingsDialog, BookingCard, BookingDialog, SortBookingsDialog, MetadataFields },\n})\nexport default class UserBookingsPage extends Vue {\n public addEditBookingDialog = false\n public BookingDialog = false\n public importBookingDialog = false\n public formValid = true\n public newBooking = Validation.newBooking\n public currentBooking = this.newBooking\n public addEditBookingDateMenu = false\n public addEditBookingStartMenu = false\n public addEditBookingEndMenu = false\n public deleteBookingDialog = false\n public editBookingMode = 'new'\n public bookingSearch = ''\n public cancelMessageDialog = false\n public cancelMessage = ''\n public filters = {\n entities: [] as string[],\n status: [] as string[],\n rating: [] as number[],\n startDate: '',\n endDate: '',\n futureBooking: true,\n pastBooking: true,\n }\n public newStartTime = ''\n public newEndTime = ''\n public sortKey = 'date'\n public sortDir = 'desc'\n public page = 1\n public pageLimit = this.$vuetify.breakpoint.smAndDown ? 6 : 12\n public slideDirection = ''\n\n @Getter\n public getEntityLabel!: (type: string) => string\n\n @Getter\n public getEntityIcon!: string\n\n @userModule.Getter\n public currentUser!: IUserData\n\n @userModule.Getter\n public convertedBookings!: IBookingData[]\n\n @userModule.Getter\n public clientEntityNames!: { [id: string]: string }\n\n @userModule.Getter\n public userClientSettings!: ISettingsData\n\n @userModule.Action('saveBooking')\n public actionSaveBooking!: (bookingData: IBookingData) => Promise\n\n @bookingModule.Action\n public getUnitData!: (importId: string) => Promise\n\n @bookingModule.Action\n public unsetUnitData!: () => any\n\n protected requiredField = Validation.requiredField\n protected timeRangeRules = Validation.timeRangeRules\n\n get filteredBookings() {\n if (this.convertedBookings) {\n const filtered = this.convertedBookings.filter((booking) => {\n const entityId = booking.bookingEntityId\n const entityName = this.clientEntityNames[entityId] + ''\n return (\n (this.filters.entities.length === 0 ||\n this.filters.entities.includes(entityName)) &&\n (this.filters.status.length === 0 ||\n this.filters.status.includes(booking.status + '')) &&\n (this.filters.rating.length === 0 ||\n this.filters.rating.includes(parseInt(booking.rating + '', 0))) &&\n (this.filters.startDate === '' ||\n moment(booking.date + '').isSameOrAfter(\n moment(this.filters.startDate),\n )) &&\n (this.filters.endDate === '' ||\n moment(booking.date + '').isSameOrBefore(\n moment(this.filters.endDate),\n )) &&\n (this.bookingSearch === '' ||\n this.bookingSearch === null ||\n this.searchBookings(booking))\n )\n })\n return this.sortBookings(filtered)\n }\n return []\n }\n\n get paginatedBookings() {\n return this.filteredBookings.length > this.pageLimit\n ? this.filteredBookings.filter((booking) => {\n const startIndex = this.page * this.pageLimit - this.pageLimit\n const endIndex = this.page * this.pageLimit\n const index = this.filteredBookings.indexOf(booking)\n return index >= startIndex && index < endIndex\n })\n : this.filteredBookings\n }\n\n get bookingEntityOptions() {\n return this.currentUser.entities\n ? this.currentUser.entities.map((entity: IEntityData) => ({\n text: entity.name,\n value: entity.id,\n }))\n : []\n }\n\n public openBookingDialog(booking: IBookingData) {\n (this.$refs.bookingForm as Vue & {\n resetValidation: () => boolean;\n }).resetValidation()\n this.addEditBookingDialog = true\n this.currentBooking = Object.assign({}, this.bookingWithConvertedMetadata(booking))\n if (!this.currentBooking.id) {\n this.currentBooking = Object.assign({}, this.newBooking)\n this.editBookingMode = 'new'\n this.currentBooking.bookingUserId = this.currentUser.id\n } else {\n this.editBookingMode = 'edit'\n this.currentBooking.metadata.phone = Validation.applyPhoneMask(this.currentBooking.metadata.phone)\n }\n }\n\n public updateBooking(booking: IBookingData) {\n this.currentBooking = Object.assign(\n {},\n this.bookingWithConvertedMetadata(booking),\n )\n this.saveBooking(true)\n }\n\n public saveBooking(override = false) {\n if (this.formValid || override === true) {\n this.currentBooking.user = this.currentUser\n\n if (this.currentBooking.entity && !this.currentBooking.entity.importId) {\n for (const field of this.userClientSettings.customFormFields) {\n if (field.type === 'units') {\n this.currentBooking.metadata[field.id] = null\n }\n }\n }\n\n this.actionSaveBooking(Object.assign({}, this.currentBooking)).then(\n () => {\n this.addEditBookingDialog = false\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n } else {\n (this.$refs.bookingForm as Vue & { validate: () => boolean }).validate()\n }\n }\n\n public saveSort(values: { key: string; dir: string }) {\n this.sortKey = values.key\n this.sortDir = values.dir\n }\n\n public movePagination(direction: string) {\n if (direction === 'up') {\n this.slideDirection = 'next'\n this.page +=\n this.page * this.pageLimit > this.filteredBookings.length ? 0 : 1\n } else if (direction === 'down') {\n this.slideDirection = 'prev'\n this.page -= this.page > 1 ? 1 : 0\n }\n }\n\n @Watch('currentBooking.date')\n public onBookingDateChanged() {\n if (this.addEditBookingDateMenu) {\n this.addEditBookingDateMenu = false\n }\n }\n\n @Watch('currentBooking.bookingEntityId')\n public async onEntityChange() {\n\n this.unsetUnitData()\n\n if (this.currentBooking.bookingEntityId) {\n\n const entity = this.currentUser.client && this.currentUser.client.entities\n ? this.currentUser.client.entities.find(\n (e) => e.id === this.currentBooking.bookingEntityId,\n ) as IEntityData\n : this.currentUser.entities.find(\n (e) => e.id === this.currentBooking.bookingEntityId,\n ) as IEntityData\n\n this.$set(this.currentBooking, 'entity', Object.assign({}, entity))\n\n if (\n this.userClientSettings.customFormFields\n && this.userClientSettings.customFormFields.find((f: ICustomFormFieldData) => f.type === 'units')\n && entity.source === 'lift'\n ) {\n await this.getUnitData(entity.importId + '')\n } else {\n this.unsetUnitData()\n }\n }\n }\n\n private bookingWithConvertedMetadata(booking: any) {\n if (typeof booking.metadata === 'string' && booking.metadata.length > 0) {\n booking.metadata = JSON.parse(booking.metadata)\n } else if (typeof booking.metadata === 'string') {\n booking.metadata = {\n name: '',\n phone: '',\n email: '',\n comments: '',\n }\n }\n return booking\n }\n\n private sortBookings(bookings: IBookingData[]) {\n return bookings.sort((a: any, b: any) => {\n return a[this.sortKey] > b[this.sortKey]\n ? this.sortDir === 'desc'\n ? -1\n : 1\n : this.sortDir === 'desc'\n ? 1\n : -1\n })\n }\n\n private searchBookings(booking: IBookingData) {\n return (\n booking.date.includes(this.bookingSearch) ||\n booking.startTime.includes(this.bookingSearch) ||\n booking.endTime.includes(this.bookingSearch) ||\n booking.rating + '' === this.bookingSearch ||\n booking.status.includes(this.bookingSearch) ||\n this.clientEntityNames[booking.bookingEntityId].includes(\n this.bookingSearch,\n ) ||\n JSON.stringify(booking.metadata).toLowerCase().includes(this.bookingSearch.toLowerCase())\n /* Object.values(booking.metadata).filter((data) =>\n data.includes(this.bookingSearch),\n ).length > 0 */\n )\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserBookingsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserBookingsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserBookingsPage.vue?vue&type=template&id=f29cbdd0&scoped=true&\"\nimport script from \"./UserBookingsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserBookingsPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserBookingsPage.vue?vue&type=style&index=0&id=f29cbdd0&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 \"f29cbdd0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvailabilityPage.vue?vue&type=style&index=0&id=00ab7614&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvailabilityPage.vue?vue&type=style&index=0&id=00ab7614&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingCard.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingCard.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsPage.vue?vue&type=style&index=0&id=931ce7da&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsPage.vue?vue&type=style&index=0&id=931ce7da&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{attrs:{\"one-line\":\"\",\"max-width\":\"360\"}},[(_vm.metadata.phone)?_c('v-list-item',{attrs:{\"href\":'tel:' + _vm.metadata.phone}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-phone\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm._f(\"displayPhone\")(_vm.metadata.phone)))]),_c('v-list-item-subtitle',[_vm._v(\"Phone\")])],1)],1):_vm._e(),_c('v-divider',{attrs:{\"inset\":\"\"}}),(_vm.metadata.email)?_c('v-list-item',{attrs:{\"href\":'mailto:' + _vm.metadata.email}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-email\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.metadata.email))]),_c('v-list-item-subtitle',[_vm._v(\"Email\")])],1)],1):_vm._e(),(_vm.metadata.comments && _vm.metadata.comments.length > 0)?_c('v-divider',{attrs:{\"inset\":\"\"}}):_vm._e(),(_vm.metadata.comments && _vm.metadata.comments.length > 0)?_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-comment\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-wrap\"},[_vm._v(_vm._s(_vm.metadata.comments))]),_c('v-list-item-subtitle')],1)],1):_vm._e(),(\n _vm.userClientSettings.customFormFields \n && _vm.userClientSettings.customFormFields.length\n && _vm.customFieldsExist(_vm.metadata))?_c('v-item-group',[_c('v-divider',{attrs:{\"inset\":\"\"}}),_c('v-list-item',{staticClass:\"pt-5\",attrs:{\"dense\":\"\"}},[_c('v-list-item-title',{staticClass:\"overline\"},[_vm._v(\"MORE DETAILS\")])],1),_vm._l((_vm.userClientSettings.customFormFields),function(f){return _c('div',{key:f.id},[(_vm.metadata[f.id])?_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-star-circle\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(f.label))]),(f.type === 'units')?_c('v-list-item-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.metadata[f.id].suite_name)+\" - $\"+_vm._s(_vm.metadata[f.id].suite_rate)+\"\\n \")]):_c('v-list-item-subtitle',{staticClass:\"text-wrap\"},[_vm._v(\"\\n \"+_vm._s(_vm.metadata[f.id])+\"\\n \")])],1)],1):_vm._e()],1)})],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter, namespace } from 'vuex-class'\n\nconst userModule = namespace('user')\n\n@Component\nexport default class BookingCardMetadata extends Vue {\n\n @Prop()\n public metadata!: any\n\n @Prop({ default: true })\n public show?: boolean\n\n @userModule.Getter\n public userClientSettings!: ISettingsData\n\n public customFieldsExist(metadata: any) {\n const metadataKeys = ['comments', 'name', 'phone', 'email']\n const moddedMetadata = JSON.parse(JSON.stringify(metadata))\n metadataKeys.forEach((k) => { delete moddedMetadata[k] })\n return Object.values(moddedMetadata).filter((v) => v).length ? true : false\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingCardMetadata.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BookingCardMetadata.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BookingCardMetadata.vue?vue&type=template&id=1b0028f0&\"\nimport script from \"./BookingCardMetadata.vue?vue&type=script&lang=ts&\"\nexport * from \"./BookingCardMetadata.vue?vue&type=script&lang=ts&\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"fill-height\"},[_c('v-col',[_c('v-card',{attrs:{\"height\":\"64\"}},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"dark\":\"\",\"color\":\"primary\"}},[_c('v-btn',{attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":_vm.prev}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-chevron-left\")])],1),_c('v-btn',{attrs:{\"fab\":\"\",\"text\":\"\",\"small\":\"\"},on:{\"click\":_vm.next}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"mdi-chevron-right\")])],1),_c('v-toolbar-title',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.title))]),_c('v-spacer'),_c('v-menu',{attrs:{\"bottom\":\"\",\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"outlined\":\"\"}},on),[_c('span',[_vm._v(_vm._s(_vm.typeToLabel[_vm.type]))]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-menu-down\")])],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.type = 'day'}}},[_c('v-list-item-title',[_vm._v(\"Day\")])],1),_c('v-list-item',{on:{\"click\":function($event){_vm.type = 'week'}}},[_c('v-list-item-title',[_vm._v(\"Week\")])],1),_c('v-list-item',{on:{\"click\":function($event){_vm.type = 'month'}}},[_c('v-list-item-title',[_vm._v(\"Month\")])],1)],1)],1)],1)],1),_c('v-card',{attrs:{\"height\":\"600\"}},[_c('v-calendar',{ref:\"calendar\",attrs:{\"color\":\"primary\",\"now\":_vm.today,\"value\":_vm.today,\"type\":_vm.type,\"events\":this.buildCalendarEvents(),\"event-color\":_vm.getEventColor,\"event-margin-bottom\":3},on:{\"click:event\":_vm.showEvent,\"click:more\":_vm.viewDay,\"click:date\":_vm.viewDay,\"change\":_vm.updateRange},model:{value:(_vm.today),callback:function ($$v) {_vm.today=$$v},expression:\"today\"}}),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"activator\":_vm.selectedElement,\"offset-x\":\"\"},model:{value:(_vm.selectedOpen),callback:function ($$v) {_vm.selectedOpen=$$v},expression:\"selectedOpen\"}},[_c('v-card',{staticClass:\"booking-card\",attrs:{\"color\":\"grey lighten-4\",\"min-width\":\"350px\",\"flat\":\"\"}},[_c('v-toolbar',{attrs:{\"color\":_vm.selectedEvent.color,\"dark\":\"\"}},[_c('v-toolbar-title',{domProps:{\"innerHTML\":_vm._s(_vm.selectedEvent.name)}}),_c('v-spacer')],1),_c('booking-card-metadata',{attrs:{\"metadata\":_vm.selectedEvent.metadata}}),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"grey\"},on:{\"click\":function($event){_vm.selectedOpen = false}}},[_vm._v(\"\\n Close\\n \")]),_c('v-spacer')],1)],1),_c('v-dialog',{attrs:{\"width\":\"300\",\"persistent\":\"\"},model:{value:(_vm.cancelMessageDialog),callback:function ($$v) {_vm.cancelMessageDialog=$$v},expression:\"cancelMessageDialog\"}},[_c('v-card',[_c('v-card-title',{attrs:{\"primary-title\":\"\"}},[_vm._v(\"Confirm Cancellation\")]),_c('v-card-text',[_vm._v(\"Are you sure you want to cancel this booking?\")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.cancelMessageDialog = false}}},[_vm._v(\"No\")])],1)],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Watch, Vue, Prop } from 'vue-property-decorator'\nimport { Action, Getter, namespace, Mutation } from 'vuex-class'\nimport moment from 'moment'\nimport Validation from '@/validation'\nimport BookingCardMetadata from '@/components/BookingCardMetadata.vue'\n\nconst userModule = namespace('user')\n\n@Component({\n components: {\n BookingCardMetadata,\n },\n})\nexport default class UserCalendarPage extends Vue {\n @Prop() public date!: string\n\n public formValid = true\n public cancelMessageDialog = false\n public cancelMessage = ''\n public newUser: IUserInfo = {\n name: '',\n phone: '',\n email: '',\n comments: '',\n }\n/*public addBookingDialog = false\n public newBooking: IBookingData = {\n id: '0',\n bookingEntityId: '0',\n bookingUserId: '0',\n date: '',\n startTime: '00:00',\n endTime: '00:00',\n metadata: this.newUser,\n rating: 0,\n status: '',\n }\n public newBookingDateMenu = false\n public newBookingStartMenu = false\n public rateBookingMenu = {}\n public currentBooking: IBookingData = this.newBooking*/\n public today = moment().format('YYYY-MM-DD')\n public focus = moment().format('YYYY-MM-DD')\n public type = 'month'\n public typeToLabel = {\n month: 'Month',\n week: 'Week',\n day: 'Day',\n }\n\n public start: any = null\n public end: any = null\n public selectedEvent = {}\n public selectedElement = null\n public selectedOpen = false\n\n @Getter\n public getEntityLabel!: (type: string) => string\n\n @Getter\n public getEntityIcon!: string\n\n @userModule.Getter\n public currentUser!: IUserData\n\n @userModule.Getter\n public userEntityNames!: { [id: string]: string }\n\n @userModule.Getter\n public userEntity!: (entityId: string) => IEntityData\n\n @userModule.Getter\n public getUserDailySchedule!: (date: string) => IUserTimeslot[]\n\n @userModule.Getter\n public getUserMonthlySchedule!: (month: string) => {}\n\n @userModule.Action\n public saveBooking!: (bookingData: IBookingData) => Promise\n\n protected nameRules = Validation.nameRules\n protected phoneRules = Validation.phoneRules\n protected emailRules = Validation.emailRules\n protected requiredField = Validation.requiredField\n protected checkTimeType = Validation.checkTimeType\n\n get bookingEntityOptions() {\n return this.currentUser.entities\n ? this.currentUser.entities.map((entity: IEntityData) => ({\n text: entity.name,\n value: entity.id,\n }))\n : []\n }\n\n get title() {\n const { start, end } = this\n if (!start || !end) {\n return moment(this.today).format('MMMM YYYY')\n }\n switch (this.type) {\n case 'month':\n return moment(this.today).format('MMMM YYYY')\n case 'week':\n case '4day':\n return moment(start.date).format('MMMM Do YYYY') + ' - ' + moment(end.date).format('MMMM Do YYYY')\n case 'day':\n return moment(start.date).format('MMMM Do YYYY')\n }\n }\n\n public viewDay(date: any) {\n this.focus = date\n this.type = 'day'\n }\n\n/* public saveNewBooking() {\n if (this.formValid) {\n this.currentBooking = Object.assign(this.newBooking, {\n metadata: this.newUser,\n user: this.currentUser,\n entity: this.userEntity(this.currentBooking.bookingEntityId),\n })\n this.saveBooking(this.currentBooking).then(\n () => {\n this.addBookingDialog = false\n this.newUser = {\n name: '',\n phone: '',\n email: '',\n comments: '',\n }\n\n this.newBooking = {\n id: '0',\n bookingEntityId: '0',\n bookingUserId: '0',\n date: '',\n startTime: '00:00',\n endTime: '00:00',\n metadata: this.newUser,\n rating: 0,\n status: '',\n }\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n } else {\n (this.$refs.addBookingForm as Vue & {\n validate: () => boolean;\n }).validate()\n }\n }*/\n\n public cancelBooking() {\n this.cancelMessageDialog = true\n }\n/* public confirmCancellation(message: string) {\n this.selectedEvent.status = 'cancelled'\n this.cancelMessageDialog = false\n this.saveBooking(this.selectedEvent).then(\n () => {\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n }*/\n\n public buildCalendarEvents() {\n const events = this.currentUser.bookings.map(\n (booking) => {\n return {\n name: booking.metadata.name,\n rawDate: booking.date,\n start: moment(this.checkTimeType(booking.startTime, booking.date)).format('YYYY-MM-DD HH:mm'),\n end: moment(this.checkTimeType(booking.endTime, booking.date)).format('YYYY-MM-DD HH:mm'),\n time: moment(this.checkTimeType(booking.startTime, booking.date)).format('HH:mm'),\n date: moment(this.checkTimeType(booking.startTime, booking.date)).format('YYYY-MM-DD'),\n duration: this.getDuration(\n this.checkTimeType(booking.startTime, booking.date),\n this.checkTimeType(booking.endTime, booking.date),\n ),\n color: 'primary',\n details: booking.metadata.comments,\n phone: booking.metadata.phone,\n email: booking.metadata.email,\n metadata: booking.metadata,\n }\n },\n )\n return events\n }\n public eventsMap() {\n const map: any = {}\n this.buildCalendarEvents().forEach((e) => (map[e.date] = map[e.date] || []).push(e))\n return map\n }\n\n public getDuration(startTime: string, endTime: string) {\n try {\n const startSeconds = moment(startTime).valueOf() / 1000\n const endSeconds = moment(endTime).valueOf() / 1000\n\n return (endSeconds - startSeconds) / 60\n } catch (e) { return 30 }\n return 30\n }\n public getEventColor(event: any) {\n return event.color\n }\n\n public setToday() {\n this.focus = this.today\n }\n public prev() {\n (this.$refs.calendar as any).prev()\n }\n public next() {\n (this.$refs.calendar as any).next()\n }\n public showEvent(data: any) {\n const open = () => {\n this.selectedEvent = data.event\n this.selectedElement = data.nativeEvent.target\n setTimeout(() => this.selectedOpen = true, 10)\n }\n\n if (this.selectedOpen) {\n this.selectedOpen = false\n setTimeout(open, 10)\n } else {\n open()\n }\n\n data.nativeEvent.stopPropagation()\n }\n public updateRange( date: any ) {\n this.start = date.start\n this.end = date.end\n }\n\n public parsedMetadata(metadata: string | {}) {\n return typeof metadata === 'string' && metadata.length > 0\n ? JSON.parse(metadata)\n : typeof metadata === 'string'\n ? {\n name: '',\n phone: '',\n email: '',\n comments: '',\n }\n : metadata\n }\n\n\n/* @Watch('currentBooking.rating')\n public onBookingRatingChanged() {\n if (this.cancelMessageDialog !== true && this.addBookingDialog !== true) {\n this.saveRating()\n }\n }*/\n\n/* @Watch('addBookingDialog')\n public onAddBookingDialogOpened() {\n (this.$refs.addBookingForm as Vue & {\n resetValidation: () => boolean;\n }).resetValidation()\n }*/\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserCalendarPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserCalendarPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserCalendarPage.vue?vue&type=template&id=88b11204&\"\nimport script from \"./UserCalendarPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserCalendarPage.vue?vue&type=script&lang=ts&\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"8\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('h1',{staticClass:\"headline\"},[_vm._v(\"User Settings\")])]),_c('v-card-text',[_c('v-form',{ref:\"settingsForm\",model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"container--fluid\":\"\",\"grid-list-sm\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"First Name\",\"rules\":_vm.nameRules},model:{value:(_vm.currentUser.firstName),callback:function ($$v) {_vm.$set(_vm.currentUser, \"firstName\", $$v)},expression:\"currentUser.firstName\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Last Name\"},model:{value:(_vm.currentUser.lastName),callback:function ($$v) {_vm.$set(_vm.currentUser, \"lastName\", $$v)},expression:\"currentUser.lastName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Email\",\"rules\":_vm.emailRules},model:{value:(_vm.currentUser.email),callback:function ($$v) {_vm.$set(_vm.currentUser, \"email\", $$v)},expression:\"currentUser.email\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.getEntityLabel('plural'),\"items\":_vm.bookingEntityOptions,\"multiple\":\"\",\"chips\":\"\",\"clearable\":\"\",\"deletable-chips\":\"\",\"disabled\":!_vm.componentIsNested},model:{value:(_vm.currentUserBookingEntities),callback:function ($$v) {_vm.currentUserBookingEntities=$$v},expression:\"currentUserBookingEntities\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Desired appointment length (mins)\",\"rules\":_vm.requiredNumber},model:{value:(_vm.currentUser.calendarIncrementMinutes),callback:function ($$v) {_vm.$set(_vm.currentUser, \"calendarIncrementMinutes\", $$v)},expression:\"currentUser.calendarIncrementMinutes\"}})],1),(_vm.componentIsNested)?_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Status\",\"items\":['active', 'inactive', 'deleted']},model:{value:(_vm.currentUser.status),callback:function ($$v) {_vm.$set(_vm.currentUser, \"status\", $$v)},expression:\"currentUser.status\"}})],1):_vm._e(),(_vm.componentIsNested)?_c('v-col',{attrs:{\"cols\":\"6\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Role\",\"items\":['admin', 'user']},model:{value:(_vm.currentUser.userRole),callback:function ($$v) {_vm.$set(_vm.currentUser, \"userRole\", $$v)},expression:\"currentUser.userRole\"}})],1):_vm._e()],1),_c('v-row',{attrs:{\"align\":\"center\"}},[(_vm.componentIsNested)?_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"ml-0\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.sendInviteToUser()}}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"person_add\")]),_vm._v(\"\\n Invite To Booking App!\\n \")],1)],1):_vm._e(),(\n (_vm.componentIsNested && _vm.currentUser.source === 'lift') ||\n _vm.userLiftMatch(_vm.currentUser.email)\n )?_c('v-col',{staticClass:\"lift-connection-switch\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{staticClass:\"ma-0\",attrs:{\"label\":\"Connected to LIFT?\",\"no-message\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleLiftConnection()}},model:{value:(_vm.currentUserLiftConnected),callback:function ($$v) {_vm.currentUserLiftConnected=$$v},expression:\"currentUserLiftConnected\"}})],1):_vm._e()],1)],1)],1)],1)],1),_c('v-card',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"mt-6 calendar-sync\"},[_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"href\":_vm.generateCalendarUrl(_vm.currentUser),\"target\":\"_blank\",\"color\":\"primary\"}},[_vm._v(\"Calendar Sync URL\")]),_c('v-btn',{directives:[{name:\"clipboard\",rawName:\"v-clipboard:copy\",value:(_vm.generateCalendarUrl(_vm.currentUser)),expression:\"generateCalendarUrl(currentUser)\",arg:\"copy\"}],attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"success\"}},[_c('v-icon',[_vm._v(\"file_copy\")]),_vm._v(\"\\n copy\\n \")],1),_c('v-dialog',{attrs:{\"width\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"secondary\"}},on),[_c('v-icon',[_vm._v(\"help\")]),_vm._v(\"\\n help\\n \")],1)]}}]),model:{value:(_vm.calendarSyncHelpDialog),callback:function ($$v) {_vm.calendarSyncHelpDialog=$$v},expression:\"calendarSyncHelpDialog\"}},[_c('v-card',[_c('v-card-text',[_c('strong',[_vm._v(\"iPhone\")]),_c('ul',{staticClass:\"mb-4\"},[_c('li',[_vm._v(\"\\n simply visit the calendar URL in your browser and\\n follow prompts\\n \")])]),_c('strong',[_vm._v(\"Gmail\")]),_c('ul',{staticClass:\"mb-4\"},[_c('li',[_vm._v(\"\\n open\\n \"),_c('a',{attrs:{\"href\":\"https://calendar.google.com\",\"target\":\"_blank\"}},[_vm._v(\"calendar.google.com\")]),_vm._v(\"\\n on your phone and sign in\\n \")]),_c('li',[_vm._v(\"\\n click on the \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"settings\")]),_vm._v(\" icon in\\n the top float-right\\n \")],1),_c('li',[_vm._v(\"click \\\"SETTINGS\\\"\")]),_c('li',[_vm._v(\"click \\\"Add Calendar\\\" on the float-left sidebar\")]),_c('li',[_vm._v(\"click \\\"From URL\\\" and enter the calendar URL:\")]),_c('li',[_vm._v(_vm._s(_vm.generateCalendarUrl(_vm.currentUser)))])]),_c('strong',[_vm._v(\"Outlook\")]),_c('ul',{staticClass:\"mb-4\"},[_c('li',[_vm._v(\"click \\\"Calendar\\\"\")]),_c('li',[_vm._v(\"\\n click \\\"Open Calendar\\\" (might either open/add,\\n depending on outlook version)\\n \")]),_c('li',[_vm._v(\"\\n select \\\"From Internet\\\" and enter the calendar URL:\\n \")]),_c('li',[_vm._v(_vm._s(_vm.generateCalendarUrl(_vm.currentUser)))])])])],1)],1)],1)],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('h1',{staticClass:\"headline\"},[_vm._v(\"Calendar Options\")])]),_c('v-card-text',[(!_vm.currentUser.hasNylasAccounts)?_c('div',{ref:\"connect-calendar\",staticClass:\"connect-calendar no-sync\"},[_c('div',{staticClass:\"text\"},[_vm._v(\"\\n Connect your existing calendars from Google or Microsoft to create \\n exceptions based on personal events and appointments. Optionally, you can choose \\n to share your bookings with your day-today calendar.\\n \")]),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"sync-calendar\",attrs:{\"color\":\"indigo\"}},on),[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"sync\")]),_vm._v(\"\\n SYNC MY CALENDARS\\n \")],1)]}}],null,false,741129841),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"sign-in text-center\"},[_c('h2',[_vm._v(\"Choose a sign-in method\")]),_c('img',{attrs:{\"src\":\"/img/google.png\"},on:{\"click\":function($event){return _vm.signinToNylas('email@gmail.com')}}}),_c('img',{attrs:{\"src\":\"/img/microsoft.jpg\"},on:{\"click\":function($event){return _vm.signinToNylas('email@xbox.com')}}}),_c('img',{attrs:{\"src\":\"/img/exchange.png\"},on:{\"click\":function($event){return _vm.signinToNylas('email@outlook.com')}}}),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n Is your email provider not here?\\n \"),_c('v-btn',{attrs:{\"text\":\"\",\"x-small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.openFeedbackDialog = true}}},[_vm._v(\"\\n Let us know what's missing!\\n \")]),_c('feedback-dialog',{attrs:{\"placeholder\":'Let us know what email provider is missing!'},model:{value:(_vm.openFeedbackDialog),callback:function ($$v) {_vm.openFeedbackDialog=$$v},expression:\"openFeedbackDialog\"}})],1)])],1)],1):(_vm.currentUser.calendars.length === 0)?_c('div',{ref:\"connect-calendar\",staticClass:\"connect-calendar no-calendars\"},[_c('div',{staticClass:\"text\"},[_vm._v(\"\\n We are still trying to get your calendars from your account.\\n \")])]):(_vm.currentUser.calendars.length > 0)?_c('div',{staticClass:\"connect-calendar\"},[_c('v-select',{attrs:{\"label\":\"Calendar\",\"items\":_vm.currentUser.calendars,\"item-value\":\"id\",\"item-text\":\"name\"},model:{value:(_vm.currentCalendarId),callback:function ($$v) {_vm.currentCalendarId=$$v},expression:\"currentCalendarId\"}}),_vm._l((_vm.currentUser.calendars),function(bookingCalendar){return _c('div',{key:bookingCalendar.id},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(bookingCalendar.id === _vm.currentCalendarId),expression:\"bookingCalendar.id === currentCalendarId\"}]},[_c('v-radio-group',{attrs:{\"disabled\":bookingCalendar.calendarStatus !== 'enabled'},model:{value:(bookingCalendar.calendarAction),callback:function ($$v) {_vm.$set(bookingCalendar, \"calendarAction\", $$v)},expression:\"bookingCalendar.calendarAction\"}},[_c('v-radio',{attrs:{\"label\":\"Full calendar sync\",\"value\":\"sync\"}}),_c('v-radio',{attrs:{\"label\":\"Get my calendar events and add them as exceptions\",\"value\":\"pull\"}}),_c('v-radio',{attrs:{\"label\":\"Send bookings to my calendar\",\"value\":\"push\"}})],1),_c('v-select',{attrs:{\"label\":\"Calendar Status\",\"items\":[{label:'Enabled', value:'enabled'}, {label:'Disabled', value:'disabled'}],\"item-value\":\"value\",\"item-text\":\"label\"},model:{value:(bookingCalendar.calendarStatus),callback:function ($$v) {_vm.$set(bookingCalendar, \"calendarStatus\", $$v)},expression:\"bookingCalendar.calendarStatus\"}})],1)])})],2):_vm._e()])],1)],1)],1),_c('v-row',{staticClass:\"mt-4\",attrs:{\"justify\":\"space-between\"}},[_c('v-col',{staticClass:\"text-right\"},[_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.saveUser()}}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"save\")]),_vm._v(\"\\n Save\\n \")],1)],1)],1),_c('v-snackbar',{attrs:{\"color\":_vm.firebaseSnackbarType,\"value\":_vm.firebaseSnackbar,\"top\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.firebaseSnackbarMsg)+\"\\n \"),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.firebaseSnackbar = false}}},[_vm._v(\"close\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-dialog',{staticClass:\"add-feedback-dialog\",attrs:{\"width\":\"400\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.shouldOpen = false}},model:{value:(_vm.shouldOpen),callback:function ($$v) {_vm.shouldOpen=$$v},expression:\"shouldOpen\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',[_c('h2',{staticClass:\"headline\"},[_vm._v(\"Submit Feedback\")])]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.shouldOpen = false}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)],1),_c('v-card-text',{staticClass:\"pa-4\"},[_c('v-form',{ref:\"feedbackForm\",model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-textarea',{attrs:{\"rows\":\"7\",\"label\":\"Content\",\"placeholder\":_vm.placeholder || 'Let us know how we can improve!',\"rules\":[_vm.requiredField, _vm.maxParaLength]},model:{value:(_vm.feedback.content),callback:function ($$v) {_vm.$set(_vm.feedback, \"content\", $$v)},expression:\"feedback.content\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.shouldOpen = false}}},[_vm._v(\"\\n Cancel\\n \")]),_c('v-btn',{attrs:{\"disabled\":!_vm.formValid,\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.saveFeedback()}}},[_vm._v(\"Save\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { Action, namespace } from 'vuex-class'\nimport Validation from '@/validation'\n\nconst userModule = namespace('user')\n\n@Component\nexport default class UserBookingsPage extends Vue {\n\n @Prop()\n public value!: boolean\n\n @Prop()\n public placeholder?: string\n\n @userModule.Getter\n public currentUser!: IUserData\n\n @userModule.Action('saveUser')\n public actionSaveUser!: (userData: IUserData) => Promise\n\n public shouldOpen: boolean = false\n public formValid: boolean = true\n public requiredField: any = Validation.requiredField\n public maxParaLength: any = Validation.maxParaLength\n public feedback: any = {\n content: '',\n bookingUserId: '',\n }\n\n public async saveFeedback() {\n if (this.formValid) {\n try {\n this.feedback.bookingUserId = this.currentUser.id\n const user = JSON.parse(JSON.stringify(this.currentUser))\n user.feedbacks = [this.feedback]\n await this.actionSaveUser(user)\n this.shouldOpen = false\n this.$emit('dataSuccess')\n } catch (err) {\n console.log(err)\n this.$emit('dataError')\n }\n }\n }\n\n @Watch('value')\n public onValueChanged() {\n this.shouldOpen = JSON.parse(JSON.stringify(this.value))\n if (this.shouldOpen) {\n (this.$refs.feedbackForm as Vue & { reset: () => boolean; }).reset()\n }\n }\n\n @Watch('shouldOpen')\n public onShouldOpenChanged() {\n this.$emit('input', this.shouldOpen)\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FeedbackDialog.vue?vue&type=template&id=26895f9a&\"\nimport script from \"./FeedbackDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./FeedbackDialog.vue?vue&type=script&lang=ts&\"\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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { Action, Getter, namespace } from 'vuex-class'\nimport Validation from '@/validation'\nimport FeedbackDialog from '@/components/FeedbackDialog.vue'\n\nconst userModule = namespace('user')\nconst clientModule = namespace('client')\n\n@Component({\n components: {\n FeedbackDialog,\n },\n})\nexport default class UserSettingsPage extends Vue {\n public formValid = true\n public calendarSyncHelpDialog = false\n public currentUserBookingEntities: string[] = []\n public currentUserLiftConnected = false\n public currentCalendarId: string = ''\n public firebaseSnackbar = false\n public firebaseSnackbarType = ''\n public firebaseSnackbarMsg = ''\n public openFeedbackDialog = false\n public dialog = false\n\n @Getter\n public getEntityLabel!: (type: string) => string\n\n @Action\n public sendFirebaseSignInLink!: (email: string) => Promise\n\n @userModule.Getter\n public currentUser!: IUserData\n\n @userModule.Getter\n public clientEntities!: IEntityData[]\n\n @userModule.Getter\n public calendars!: IBookingCalendar[]\n\n @userModule.Getter\n public clientEntity!: (entityId: string) => IEntityData\n\n @clientModule.Getter\n public liftUsers!: IKeyValueObject[]\n\n @userModule.Action('saveUser')\n public actionSaveUser!: (userData: IUserData) => Promise\n\n @userModule.Action\n public addUserEntityRelationship!: ({\n userId,\n entityId,\n }: {\n userId: string;\n entityId: string;\n }) => Promise\n\n @userModule.Action\n public deleteUserEntityRelationship!: ({\n userId,\n entityId,\n }: {\n userId: string;\n entityId: string;\n }) => Promise\n\n protected nameRules = Validation.nameRules\n protected emailRules = Validation.emailRules\n protected requiredNumber = Validation.requiredNumberRules\n\n get bookingEntityOptions() {\n const selectableEntities = this.clientEntities.filter((clientEntity) => {\n return clientEntity.status !== 'deleted'\n })\n\n return selectableEntities.map((clientEntity) => {\n return {\n text: clientEntity.name,\n value: clientEntity.id,\n }\n })\n }\n\n get componentIsNested() {\n return Object.keys(this.$route.params).includes('userId')\n }\n\n public generateCalendarUrl(user: IUserData) {\n return `${window.location.origin}/api/data/ical/${user.calendarToken}`\n }\n\n public saveUser() {\n if (this.formValid) {\n this.currentUser.entities = this.currentUserBookingEntities.map((e) =>\n this.clientEntity(e),\n )\n this.actionSaveUser(this.currentUser).then(\n () => {\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n }\n }\n\n public signinToNylas(hint: string) {\n let urlString = '/signin/nylas?userid=' + encodeURIComponent(this.currentUser.id)\n urlString += '&hint=' + encodeURIComponent(hint)\n\n window.open(\n urlString,\n '_blank',\n );\n }\n\n public userLiftMatch(email: string) {\n return this.liftUsers\n ? this.liftUsers.filter((user) => user.email === email).length > 0\n : false\n }\n\n public toggleLiftConnection() {\n if (this.currentUserLiftConnected === true) {\n this.currentUser.source = ''\n this.currentUser.importId = null\n this.currentUserLiftConnected = false\n } else {\n this.currentUser.source = 'lift'\n this.currentUser.importId = this.liftUsers.filter(\n (user) => user.email === this.currentUser.email,\n )[0].id as number\n this.currentUserLiftConnected = true\n }\n }\n\n @Watch('currentUser')\n public onUserLoaded() {\n if (this.currentUser.source === 'lift') {\n this.currentUserLiftConnected = true\n }\n this.assignBookingEntities()\n }\n\n private created() {\n this.assignBookingEntities()\n \n if(this.calendars.length > 0) {\n this.currentCalendarId = this.calendars[0].id\n }\n }\n\n private assignBookingEntities() {\n const entities = Object.assign([], this.currentUser.entities)\n this.currentUserBookingEntities = entities.map(\n (entity: IEntityData) => entity.id,\n )\n }\n\n private sendInviteToUser() {\n this.sendFirebaseSignInLink(this.currentUser.email).then(\n () => {\n this.firebaseSnackbar = true\n this.firebaseSnackbarType = 'success'\n this.firebaseSnackbarMsg = 'Invite email sent'\n },\n (error) => {\n this.firebaseSnackbar = true\n this.firebaseSnackbarType = 'error'\n this.firebaseSnackbarMsg = 'Unable to send invite email'\n },\n )\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserSettingsPage.vue?vue&type=template&id=931ce7da&scoped=true&\"\nimport script from \"./UserSettingsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserSettingsPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserSettingsPage.vue?vue&type=style&index=0&id=931ce7da&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 \"931ce7da\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{staticClass:\"availability\"},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"space-between\"}},[_c('v-col',[_c('h1',{staticClass:\"headline\"},[_vm._v(\"Availability \"),(_vm.currentUser.availabilityType)?_c('small',{staticClass:\"nowrap\"},[_vm._v(\"(\"+_vm._s(_vm.currentUser.availabilityType)+\")\")]):_vm._e()])]),_c('v-col',{staticClass:\"text-right\"},[_c('v-btn',{staticClass:\"my-0 btn-action-small\",attrs:{\"fab\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.editAvailabilityDialog = true}}},[_c('v-icon',[_vm._v(\"edit\")])],1)],1)],1),_c('EditAvailabilityDialog',{attrs:{\"toggleType\":true,\"activated\":_vm.editAvailabilityDialog,\"user\":_vm.currentUser},on:{\"closeDialog\":function($event){_vm.editAvailabilityDialog = false},\"availabilityDataSaved\":function (v) { return _vm.saveAvailability(v); }}})],1),_c('v-container',{staticClass:\"availability-container\",attrs:{\"container--fluid\":\"\"}},[_c('AvailabilityDisplay',{attrs:{\"availability\":_vm.currentUser.availability}}),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}]},_vm._l((_vm.currentUser.availability),function(day,index){return _c('v-col',{key:index,attrs:{\"cols\":\"6\",\"sm\":\"4\",\"md\":\"3\",\"lg\":\"2\"}},[_c('v-card',{staticClass:\"blue-grey lighten-4\",attrs:{\"tile\":\"\"}},[_c('v-card-title',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentUser.availabilityType === 'weekly'),expression:\"currentUser.availabilityType === 'weekly'\"}]},[_c('strong',[_vm._v(_vm._s(_vm.dayOfWeekText[day.day]))])]),_c('v-list',{attrs:{\"three-line\":_vm.$vuetify.breakpoint.mdAndDown,\"two-line\":!_vm.$vuetify.breakpoint.mdAndDown}},[_vm._l((day.timeslots),function(timeslot,timeIndex){return _c('article',{key:timeIndex},[_c('v-list-item',[_c('article',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"displayTime\")(timeslot.startTime))+\"\\n  to \\n \"+_vm._s(_vm._f(\"displayTime\")(timeslot.endTime))+\"\\n \")])]),(\n day.timeslots.length > 1 &&\n timeIndex !== day.timeslots.length - 1\n )?_c('v-divider'):_vm._e()],1)}),(day.timeslots.length < 1)?_c('v-list-item',[_c('span',[_vm._v(\"none\")])]):_vm._e()],2)],1)],1)}),1)],1)],1)],1)],1),_c('v-row',{staticClass:\"exceptions\"},[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"12\",\"lg\":\"6\"}},[(_vm.userAvailabilityExceptions.length > 0)?_c('v-card',{staticClass:\"mt-6\"},[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('h2',{staticClass:\"headline\"},[_vm._v(\"Exceptions\")])])],1)],1),_c('v-list',{staticClass:\"exceptions-list\",attrs:{\"two-line\":\"\"}},_vm._l((_vm.userAvailabilityExceptions),function(date,index){return _c('article',{key:index},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm._f(\"longDate\")(date.date)))]),_c('v-list-item-subtitle',[(date.startTime === '' && date.endTime === '')?_c('span',[_vm._v(\"\\n All Day\\n \")]):_c('span',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"displayTime\")(date.startTime))+\" to \"+_vm._s(_vm._f(\"displayTime\")(date.endTime))+\"\\n \")])])],1),_c('v-list-item-action',[_c('v-btn',{staticClass:\"mx-1\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.openExceptionDialog(date)}}},[_c('v-icon',[_vm._v(\"edit\")])],1)],1)],1),(index < _vm.userAvailabilityExceptions.length - 1)?_c('v-divider'):_vm._e()],1)}),0)],1):_vm._e(),_c('v-btn',{staticClass:\"mt-6 mb-12\",attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.openExceptionDialog(_vm.newException)}}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"add\")]),_vm._v(\"Add Exception\\n \")],1),_c('v-dialog',{attrs:{\"width\":\"500\",\"eager\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }_vm.editExceptionDialog = false}},model:{value:(_vm.editExceptionDialog),callback:function ($$v) {_vm.editExceptionDialog=$$v},expression:\"editExceptionDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"card-header\"},[_c('v-row',[_c('v-col',[_c('h3',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm._f(\"capitalize\")(this.editExceptionMode))+\" Exception\")])]),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"white--text\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.editExceptionDialog = false}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)],1),_c('v-alert',{attrs:{\"dismissible\":\"\",\"text\":\"\",\"type\":\"error\"},model:{value:(_vm.isDuplicate),callback:function ($$v) {_vm.isDuplicate=$$v},expression:\"isDuplicate\"}},[_vm._v(\"\\n An availability exception for this date/time slot already exists!\\n \")]),_c('v-card-text',{staticClass:\"mt-5\"},[_c('v-form',{ref:\"exceptionForm\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"min-width\":\"290px\",\"max-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"readonly\":\"\",\"label\":\"Date\",\"rules\":[_vm.requiredField],\"prepend-icon\":\"event\"},model:{value:(_vm.currentException.date),callback:function ($$v) {_vm.$set(_vm.currentException, \"date\", $$v)},expression:\"currentException.date\"}},on))]}}]),model:{value:(_vm.exceptionDateMenu),callback:function ($$v) {_vm.exceptionDateMenu=$$v},expression:\"exceptionDateMenu\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\",\"allowed-dates\":_vm.datesAfterToday},model:{value:(_vm.currentException.date),callback:function ($$v) {_vm.$set(_vm.currentException, \"date\", $$v)},expression:\"currentException.date\"}})],1),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"6\"}},[_c('v-dialog',{attrs:{\"min-width\":\"290px\",\"max-width\":\"290px\",\"hide-overlay\":\"\",\"eager\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start Time\",\"readonly\":\"\",\"prepend-icon\":\"access_time\",\"rules\":_vm.availabilityRules(\n _vm.currentException.startTime, \n _vm.currentException.endTime, \n _vm.currentExceptionIsAllDay,\n false\n ),\"disabled\":_vm.currentExceptionIsAllDay},on:{\"click\":function($event){_vm.newStartTime = _vm.currentException.startTime}},model:{value:(_vm.currentException.startTime),callback:function ($$v) {_vm.$set(_vm.currentException, \"startTime\", $$v)},expression:\"currentException.startTime\"}},on))]}}]),model:{value:(_vm.exceptionStartMenu),callback:function ($$v) {_vm.exceptionStartMenu=$$v},expression:\"exceptionStartMenu\"}},[_c('v-time-picker',{attrs:{\"allowed-minutes\":function (m) { return m % 5 == 0; },\"full-width\":\"\"},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.newStartTime = _vm.currentException.startTime;\n _vm.exceptionStartMenu = false;}}},[_vm._v(\"\\n Cancel\\n \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.currentException.startTime = _vm.newStartTime;\n _vm.exceptionStartMenu = false;}}},[_vm._v(\"\\n Ok\\n \")])],1)],1)],1),_c('v-col',{attrs:{\"sm\":\"6\"}},[_c('v-dialog',{attrs:{\"min-width\":\"290px\",\"max-width\":\"290px\",\"hide-overlay\":\"\",\"eager\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End Time\",\"readonly\":\"\",\"prepend-icon\":\"access_time\",\"rules\":_vm.availabilityRules(\n _vm.currentException.startTime, \n _vm.currentException.endTime, \n _vm.currentExceptionIsAllDay,\n true\n ),\"disabled\":_vm.currentExceptionIsAllDay},on:{\"click\":function($event){_vm.newEndTime = _vm.currentException.endTime}},model:{value:(_vm.currentException.endTime),callback:function ($$v) {_vm.$set(_vm.currentException, \"endTime\", $$v)},expression:\"currentException.endTime\"}},on))]}}]),model:{value:(_vm.exceptionEndMenu),callback:function ($$v) {_vm.exceptionEndMenu=$$v},expression:\"exceptionEndMenu\"}},[_c('v-time-picker',{attrs:{\"allowed-minutes\":function (m) { return m % 5 == 0; },\"full-width\":\"\"},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.newEndTime = _vm.currentException.endTime;\n _vm.exceptionEndMenu = false;}}},[_vm._v(\"\\n Cancel\\n \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){_vm.currentException.endTime = _vm.newEndTime;\n _vm.exceptionEndMenu = false;}}},[_vm._v(\"\\n Ok\\n \")])],1)],1)],1)],1),_c('v-switch',{attrs:{\"label\":\"all day?\"},on:{\"change\":function($event){return _vm.toggleCurrentExceptionAllDay()}},model:{value:(_vm.currentExceptionIsAllDay),callback:function ($$v) {_vm.currentExceptionIsAllDay=$$v},expression:\"currentExceptionIsAllDay\"}})],1)],1),_c('v-divider'),_c('v-card-actions',[_c('v-dialog',{attrs:{\"width\":\"300\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.editExceptionMode === 'edit'),expression:\"editExceptionMode === 'edit'\"}],staticClass:\"mx-1\",attrs:{\"text\":\"\",\"color\":\"error\"}},on),[_c('v-icon',[_vm._v(\"delete\")]),_vm._v(\"\\n Delete\\n \")],1)]}}]),model:{value:(_vm.deleteExceptionDialog),callback:function ($$v) {_vm.deleteExceptionDialog=$$v},expression:\"deleteExceptionDialog\"}},[_c('v-card',[_c('v-card-title',{attrs:{\"primary-title\":\"\"}},[_vm._v(\"Confirm Cancellation\")]),_c('v-card-text',[_vm._v(\"\\n Are you sure you want to delete this exception?\\n \")]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.deleteExceptionDialog = false}}},[_vm._v(\"\\n Cancel\\n \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":function($event){return _vm.deleteException(_vm.currentException)}}},[_vm._v(\"\\n Delete\\n \")])],1)],1)],1),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\"},on:{\"click\":function($event){_vm.editExceptionDialog = false}}},[_vm._v(\"\\n Cancel\\n \")]),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\",\"disabled\":!_vm.isValid},on:{\"click\":function($event){return _vm.saveException()}}},[_vm._v(\"Save\")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Watch, Vue } from 'vue-property-decorator'\nimport moment from 'moment'\nimport { Action, Getter, namespace, Mutation } from 'vuex-class'\nimport EditAvailabilityDialog from '@/components/EditAvailabilityDialog.vue'\nimport AvailabilityDisplay from '@/components/AvailabilityDisplay.vue'\nimport Validation from '@/validation'\n\nconst userModule = namespace('user')\n\n@Component({\n components: { EditAvailabilityDialog, AvailabilityDisplay },\n})\nexport default class UserAvailabilityPage extends Vue {\n public dayOfWeekText = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ]\n public editAvailabilityDialog = false\n public editExceptionDialog = false\n public deleteExceptionDialog = false\n public editExceptionMode = 'new'\n public newException: IAvailabilityExceptionData = {\n id: '0',\n date: moment().format('YYYY-MM-DD'),\n startTime: '00:00',\n endTime: '00:00',\n }\n public currentException = this.newException\n public exceptionDateMenu = false\n public exceptionStartMenu = false\n public exceptionEndMenu = false\n public newStartTime = ''\n public newEndTime = ''\n public isValid = false\n public isDuplicate = false\n public currentExceptionIsAllDay: boolean = false\n\n @userModule.Getter\n public currentUser!: IUserData\n\n @userModule.Getter\n public userClientSettings!: ISettingsData\n\n @userModule.Getter\n public convertedExceptions!: IAvailabilityExceptionData[]\n\n @userModule.Action\n public saveUser!: (userData: IUserData) => Promise\n\n @userModule.Action\n public saveAvailabilityException!: (\n exceptionData: IAvailabilityExceptionData,\n timezone?: string,\n ) => Promise\n\n @userModule.Action\n public deleteAvailabilityException!: (exception: IAvailabilityExceptionData) => Promise\n\n protected availabilityRules = Validation.availabilityRules\n protected requiredField = Validation.requiredField\n\n get userAvailabilityExceptions() {\n return this.convertedExceptions\n ? this.convertedExceptions\n .filter(date => {\n if (date.status === 'disabled') return false;\n return date.endTime && date.endTime.length !== 5\n ? moment(date.endTime).isAfter(moment())\n : moment(date.date).isAfter(moment())\n })\n .sort((a: IAvailabilityExceptionData, b: IAvailabilityExceptionData) => {\n return moment(`${a.date}${(a.startTime ? ' ' + a.startTime : '')}`)\n .isAfter(moment(`${b.date}${(b.startTime ? ' ' + b.startTime : '')}`))\n ? 1\n : -1\n })\n : []\n }\n\n public toggleCurrentExceptionAllDay() {\n if (this.currentExceptionIsAllDay) {\n this.currentException.startTime = ''\n this.currentException.endTime = ''\n } else {\n this.currentException.startTime = '00:00'\n this.currentException.endTime = '00:00'\n }\n }\n\n public openExceptionDialog(exception: IAvailabilityExceptionData) {\n this.currentException = Object.assign({}, exception)\n this.isDuplicate = false\n\n if (\n exception !== this.newException\n && !this.currentException.startTime\n && !this.currentException.endTime\n ) {\n this.currentExceptionIsAllDay = true\n } else {\n this.currentExceptionIsAllDay = false\n }\n this.currentException.user = { id: this.currentUser.id } as any\n this.editExceptionDialog = true\n this.editExceptionMode = exception === this.newException ? 'new' : 'edit'\n }\n\n public datesAfterToday(value: string) {\n return moment(value, 'YYYY-MM-DD').isAfter(moment())\n }\n\n public saveException() {\n if (this.isValid) {\n this.isDuplicate = this.exceptionExists(this.currentException)\n if (!this.isDuplicate) {\n this.saveAvailabilityException(this.currentException).then(\n () => {\n this.editExceptionDialog = false\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n }\n }\n }\n\n public deleteException(exception: IAvailabilityExceptionData) {\n if (exception.id) {\n exception.status = 'disabled'\n this.saveAvailabilityException(exception).then(() => {\n this.deleteExceptionDialog = false\n this.editExceptionDialog = false\n })\n }\n }\n\n public saveAvailability(editUser: IUserData) {\n const availability =\n editUser.availabilityType === 'daily'\n ? this.reduceAvailability(editUser.availability)\n : this.expandAvailability(editUser.availability)\n editUser.availability = availability\n this.saveUser(editUser).then(\n () => {\n this.editAvailabilityDialog = false\n this.$emit('dataSuccess')\n },\n () => {\n this.$emit('dataError')\n },\n )\n }\n\n /*@Watch('currentExceptionIsAllDay')\n public onCurrrentExceptionIsAllDayChanges() {\n if(this.currentExceptionIsAllDay)\n }*/\n\n @Watch('currentException.date')\n public onExceptionDateChanged() {\n if (this.exceptionDateMenu) {\n this.exceptionDateMenu = false\n }\n }\n\n private reduceAvailability(availability: IAvailabilityDay[]) {\n if (availability.length > 0) {\n return [availability[0]]\n }\n\n return []\n }\n\n private expandAvailability(availability: IAvailabilityDay[]) {\n const returnAvailability: any = availability\n for (let count = availability.length; count < 7; count++) {\n returnAvailability[count] = { day: count, timeslots: [] }\n }\n return returnAvailability\n }\n\n private exceptionExists(exception: any) {\n let returnVal = false\n\n const ex = Object.assign({}, exception)\n ex.startTime = Validation.toUtcTimestamp(ex.date, ex.startTime)\n ex.endTime = Validation.toUtcTimestamp(ex.date, ex.endTime)\n\n if (this.userAvailabilityExceptions) {\n this.userAvailabilityExceptions.forEach((e) => {\n if (\n e.id !== ex.id\n && e.date === ex.date\n && e.startTime === ex.startTime\n && e.endTime === ex.endTime\n ) {\n returnVal = true\n }\n })\n }\n return returnVal\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvailabilityPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAvailabilityPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserAvailabilityPage.vue?vue&type=template&id=00ab7614&scoped=true&\"\nimport script from \"./UserAvailabilityPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserAvailabilityPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserAvailabilityPage.vue?vue&type=style&index=0&id=00ab7614&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 \"00ab7614\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserBookingsPage.vue?vue&type=style&index=0&id=f29cbdd0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserBookingsPage.vue?vue&type=style&index=0&id=f29cbdd0&scoped=true&lang=css&\""],"sourceRoot":""}