{"version":3,"file":"js/app.6d7fb4dd.js","mappings":"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","sources":["webpack://ny-rcf-publicwebsite/./src/js/app.js","webpack://ny-rcf-publicwebsite/./src/App.vue","webpack://ny-rcf-publicwebsite/./src/pages/WelcomePage.vue","webpack://ny-rcf-publicwebsite/./src/Utilities/common.js","webpack://ny-rcf-publicwebsite/./src/components/OpusSelectOnlyDropDown.vue","webpack://ny-rcf-publicwebsite/src/components/OpusSelectOnlyDropDown.vue","webpack://ny-rcf-publicwebsite/./src/components/OpusSelectOnlyDropDown.vue?8994","webpack://ny-rcf-publicwebsite/./src/components/OpusSelectOnlyDropDown.vue?13fc","webpack://ny-rcf-publicwebsite/src/pages/WelcomePage.vue","webpack://ny-rcf-publicwebsite/./src/pages/WelcomePage.vue?233e","webpack://ny-rcf-publicwebsite/./src/pages/WelcomePage.vue?9612","webpack://ny-rcf-publicwebsite/./src/pages/DataCollectionPage.vue","webpack://ny-rcf-publicwebsite/./src/components/RecaptchaValidation.vue","webpack://ny-rcf-publicwebsite/./src/api/nyApi.js","webpack://ny-rcf-publicwebsite/./src/components/LoadingBusy.vue","webpack://ny-rcf-publicwebsite/src/components/LoadingBusy.vue","webpack://ny-rcf-publicwebsite/./src/components/LoadingBusy.vue?f581","webpack://ny-rcf-publicwebsite/./src/components/LoadingBusy.vue?7594","webpack://ny-rcf-publicwebsite/src/components/RecaptchaValidation.vue","webpack://ny-rcf-publicwebsite/./src/components/RecaptchaValidation.vue?7170","webpack://ny-rcf-publicwebsite/./src/components/RecaptchaValidation.vue?de23","webpack://ny-rcf-publicwebsite/src/pages/DataCollectionPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/DataCollectionPage.vue?6f49","webpack://ny-rcf-publicwebsite/./src/pages/DataCollectionPage.vue?2724","webpack://ny-rcf-publicwebsite/./src/pages/NewReservationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/NewReservationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/NewReservationPage.vue?7dda","webpack://ny-rcf-publicwebsite/./src/pages/NewReservationPage.vue?5f2c","webpack://ny-rcf-publicwebsite/./src/pages/ViewReservationPage.vue","webpack://ny-rcf-publicwebsite/./src/components/ReservationDetails.vue","webpack://ny-rcf-publicwebsite/src/components/ReservationDetails.vue","webpack://ny-rcf-publicwebsite/./src/components/ReservationDetails.vue?46ad","webpack://ny-rcf-publicwebsite/./src/components/ReservationDetails.vue?4429","webpack://ny-rcf-publicwebsite/src/pages/ViewReservationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/ViewReservationPage.vue?6848","webpack://ny-rcf-publicwebsite/./src/pages/ViewReservationPage.vue?95a5","webpack://ny-rcf-publicwebsite/./src/pages/CancelReservationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/CancelReservationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/CancelReservationPage.vue?e5e6","webpack://ny-rcf-publicwebsite/./src/pages/CancelReservationPage.vue?22f4","webpack://ny-rcf-publicwebsite/./src/pages/CancelConfirmationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/CancelConfirmationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/CancelConfirmationPage.vue?b11c","webpack://ny-rcf-publicwebsite/./src/pages/CancelConfirmationPage.vue?d0fd","webpack://ny-rcf-publicwebsite/./src/pages/RescheduleReservationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/RescheduleReservationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/RescheduleReservationPage.vue?87fa","webpack://ny-rcf-publicwebsite/./src/pages/RescheduleReservationPage.vue?603d","webpack://ny-rcf-publicwebsite/./src/pages/SelectServicePage.vue","webpack://ny-rcf-publicwebsite/src/pages/SelectServicePage.vue","webpack://ny-rcf-publicwebsite/./src/pages/SelectServicePage.vue?d8a6","webpack://ny-rcf-publicwebsite/./src/pages/SelectServicePage.vue?642b","webpack://ny-rcf-publicwebsite/./src/pages/DateOfBirthPage.vue","webpack://ny-rcf-publicwebsite/src/pages/DateOfBirthPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/DateOfBirthPage.vue?5d07","webpack://ny-rcf-publicwebsite/./src/pages/DateOfBirthPage.vue?5691","webpack://ny-rcf-publicwebsite/./src/pages/SearchLocationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/SearchLocationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/SearchLocationPage.vue?9c17","webpack://ny-rcf-publicwebsite/./src/pages/SearchLocationPage.vue?ad98","webpack://ny-rcf-publicwebsite/./src/pages/SelectLocationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/SelectLocationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/SelectLocationPage.vue?40a1","webpack://ny-rcf-publicwebsite/./src/pages/SelectLocationPage.vue?5770","webpack://ny-rcf-publicwebsite/./src/pages/SelectLocationCountyPage.vue","webpack://ny-rcf-publicwebsite/src/pages/SelectLocationCountyPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/SelectLocationCountyPage.vue?caac","webpack://ny-rcf-publicwebsite/./src/pages/SelectLocationCountyPage.vue?851c","webpack://ny-rcf-publicwebsite/./src/pages/SelectAllLocationsPage.vue","webpack://ny-rcf-publicwebsite/src/pages/SelectAllLocationsPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/SelectAllLocationsPage.vue?6413","webpack://ny-rcf-publicwebsite/./src/pages/SelectAllLocationsPage.vue?3db5","webpack://ny-rcf-publicwebsite/./src/pages/SelectDateTimePage.vue","webpack://ny-rcf-publicwebsite/./src/components/OpusCalendarDatePicker.vue","webpack://ny-rcf-publicwebsite/src/components/OpusCalendarDatePicker.vue","webpack://ny-rcf-publicwebsite/./src/components/OpusCalendarDatePicker.vue?f886","webpack://ny-rcf-publicwebsite/./src/components/OpusCalendarDatePicker.vue?21c3","webpack://ny-rcf-publicwebsite/src/pages/SelectDateTimePage.vue","webpack://ny-rcf-publicwebsite/./src/pages/SelectDateTimePage.vue?c9ed","webpack://ny-rcf-publicwebsite/./src/pages/SelectDateTimePage.vue?3188","webpack://ny-rcf-publicwebsite/./src/pages/ConfirmReservationPage.vue","webpack://ny-rcf-publicwebsite/src/pages/ConfirmReservationPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/ConfirmReservationPage.vue?ddf8","webpack://ny-rcf-publicwebsite/./src/pages/ConfirmReservationPage.vue?5f73","webpack://ny-rcf-publicwebsite/./src/pages/MobileCheckInPage.vue","webpack://ny-rcf-publicwebsite/./src/components/CheckInTicket.vue","webpack://ny-rcf-publicwebsite/src/components/CheckInTicket.vue","webpack://ny-rcf-publicwebsite/./src/components/CheckInTicket.vue?99c2","webpack://ny-rcf-publicwebsite/./src/components/CheckInTicket.vue?1526","webpack://ny-rcf-publicwebsite/src/pages/MobileCheckInPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/MobileCheckInPage.vue?c459","webpack://ny-rcf-publicwebsite/./src/pages/MobileCheckInPage.vue?fae7","webpack://ny-rcf-publicwebsite/./src/pages/CheckInTicketPage.vue","webpack://ny-rcf-publicwebsite/src/pages/CheckInTicketPage.vue","webpack://ny-rcf-publicwebsite/./src/pages/CheckInTicketPage.vue?333b","webpack://ny-rcf-publicwebsite/./src/pages/CheckInTicketPage.vue?cb6c","webpack://ny-rcf-publicwebsite/./src/components/IdleTimeout.vue","webpack://ny-rcf-publicwebsite/src/components/IdleTimeout.vue","webpack://ny-rcf-publicwebsite/./src/components/IdleTimeout.vue?a00f","webpack://ny-rcf-publicwebsite/./src/components/IdleTimeout.vue?8627","webpack://ny-rcf-publicwebsite/src/App.vue","webpack://ny-rcf-publicwebsite/./src/App.vue?7e46","webpack://ny-rcf-publicwebsite/./src/App.vue?0e40","webpack://ny-rcf-publicwebsite/./src/translations/translations.js","webpack://ny-rcf-publicwebsite/./src/store/selectedServiceModule.js","webpack://ny-rcf-publicwebsite/./src/store/index.js","webpack://ny-rcf-publicwebsite/./src/plugins/vuetify.js","webpack://ny-rcf-publicwebsite/./src/main.js","webpack://ny-rcf-publicwebsite/webpack/bootstrap","webpack://ny-rcf-publicwebsite/webpack/runtime/chunk loaded","webpack://ny-rcf-publicwebsite/webpack/runtime/compat get default export","webpack://ny-rcf-publicwebsite/webpack/runtime/create fake namespace object","webpack://ny-rcf-publicwebsite/webpack/runtime/define property getters","webpack://ny-rcf-publicwebsite/webpack/runtime/ensure chunk","webpack://ny-rcf-publicwebsite/webpack/runtime/get javascript chunk filename","webpack://ny-rcf-publicwebsite/webpack/runtime/get mini-css chunk filename","webpack://ny-rcf-publicwebsite/webpack/runtime/global","webpack://ny-rcf-publicwebsite/webpack/runtime/hasOwnProperty shorthand","webpack://ny-rcf-publicwebsite/webpack/runtime/load script","webpack://ny-rcf-publicwebsite/webpack/runtime/make namespace object","webpack://ny-rcf-publicwebsite/webpack/runtime/publicPath","webpack://ny-rcf-publicwebsite/webpack/runtime/jsonp chunk loading","webpack://ny-rcf-publicwebsite/webpack/startup"],"sourcesContent":["(function() {\r\n if(!localStorage.getItem(\"debugMode\")) {\r\n // eslint-disable-next-line no-unused-vars\r\n console.log = function(message, params) {\r\n }; \r\n }\r\n \r\n \r\n if (!String.format) {\r\n String.format = function(format) {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n return format.replace(/{(\\d+)}/g, function(match, number) {\r\n return typeof args[number] != \"undefined\" ? args[number] : match;\r\n });\r\n };\r\n }\r\n\r\n \r\n\r\n })();\r\n ","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[(_vm.enableIdleTimeout)?_c('idle-timeout',{attrs:{\"idle-timeout\":_vm.idleTimeout,\"button-text\":this.siteText.ui.sessionTimeoutButtonText,\"dialog-text\":this.siteText.ui.sessionTimeoutMessage},on:{\"OnWarningTimeout\":_vm.OnWarningTimeOut}}):_vm._e(),_c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"primary\",\"height\":\"75\"}},[_c('div',[_c('v-img',{staticClass:\"header-image\",attrs:{\"alt\":\"NYDMV Logo\",\"contain\":\"\",\"src\":require(\"@/assets/images/dmv-logo.png\"),\"max-height\":\"50\"}})],1),_c('v-spacer'),_c('div',{staticClass:\"site-version\"},[_vm._v(\"V-\"+_vm._s(_vm.version))])],1),_c('v-main',[_c('loading-busy',{attrs:{\"loading\":_vm.loading,\"isAuthenticating\":false,\"text\":\"\"}}),_c('div',{staticClass:\"primary--text pa-1 grey lighten-2 d-print-none\"},[_c('h1',{staticClass:\"public-h6 appTitle\"},[_vm._v(_vm._s(_vm.siteText.ui.mainHeader))])]),_c('v-container',{staticStyle:{\"max-width\":\"1200px\"}},[_c(_vm.currentComponent,{ref:\"child\",tag:\"component\",attrs:{\"hidden\":_vm.loading,\"pageInfo\":_vm.pageInfo},on:{\"navigateTo\":_vm.navigateTo}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Welcome Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.welcome)+\" \")]),_c('v-card',[_c('v-card-text',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.languageInstruction)+\" \")]),_c('v-card-text',{staticClass:\"centerContainer\"},[_c('v-row',[_c('opus-select-only-drop-down',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',attrs:{\"items\":_vm.languages,\"select-name\":\"languageSelect\",\"item-label\":\"Name\",\"item-id\":\"Code\",\"label\":_vm.siteText.ui.languageLabel,\"place-holder\":_vm.siteText.ui.languageLabel,\"aria-label\":\"Select a Language\"},on:{\"item:selected\":_vm.languageChange},scopedSlots:_vm._u([{key:\"item\",fn:function({ Code, Name }){return [_c('span',{attrs:{\"lang\":Code}},[_vm._v(_vm._s(Name))])]}}]),model:{value:(_vm.language),callback:function ($$v) {_vm.language=$$v},expression:\"language\"}})],1)],1)],1),_c('p'),_c('v-card',[_c('v-card-text',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectOptionInstruction)+\" \")]),_c('v-card-text',{staticClass:\"centerContainer\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.newReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.newReservation)+\" \")])],1)],1),_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.viewReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewReservation)+\" \")])],1)],1),_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.cancelReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelReservation)+\" \")])],1)],1),_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.rescheduleReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.rescheduleReservation)+\" \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function normalizePhoneNumber(phoneNumber) {\r\n let normalizedPhone = phoneNumber\r\n .replace(\"(\", \"\")\r\n .replace(\")\", \"\")\r\n .replace(\"-\", \"\")\r\n .replace(\" \", \"\");\r\n return normalizedPhone;\r\n}\r\n\r\nfunction determineAvailabilityStartDate(\r\n context,\r\n startDate,\r\n typeId1,\r\n typeId2,\r\n dateOfBirth\r\n) {\r\n let newStartDate = startDate || new Date();\r\n const serviceType1 = context.getters.serviceType(typeId1);\r\n const serviceType2 = context.getters.serviceType(typeId2);\r\n if (dateOfBirth && (serviceType1.MinimumAge || serviceType2.MinimumAge)) {\r\n let minimumAge = serviceType1.MinimumAge || serviceType2.MinimumAge;\r\n let minBirthDate = new Date();\r\n minBirthDate.setFullYear(minBirthDate.getFullYear() - minimumAge);\r\n console.log(minBirthDate);\r\n let dob = new Date(dateOfBirth);\r\n if(dob > minBirthDate) {\r\n let newCalculatedDate = new Date();\r\n newCalculatedDate.setDate(dob.getDate());\r\n newCalculatedDate.setMonth(dob.getMonth());\r\n if (newCalculatedDate > newStartDate) {\r\n newStartDate = newCalculatedDate;\r\n }\r\n } \r\n }\r\n return newStartDate;\r\n}\r\n\r\nfunction updateLocationAvailability(currentLocation, currentLocationAvailabilityDates, locationAvailability) {\r\n let updatedLocationAvailability = currentLocationAvailabilityDates || [];\r\n console.log(currentLocation, currentLocationAvailabilityDates, locationAvailability);\r\n\r\n //Check if Date Already Exists\r\n locationAvailability.LocationAvailabilityDates.forEach((date, index) => {\r\n console.log(index);\r\n if(currentLocationAvailabilityDates.find(d=>d.AvailabilityDate === date.AvailabilityDate)){\r\n console.log('date found');\r\n //Update existing date\r\n updateLocationAvailability[index] = date;\r\n } else {\r\n //Add new date\r\n updatedLocationAvailability.push(date);\r\n console.log(date);\r\n }\r\n });\r\n \r\n return updatedLocationAvailability;\r\n\r\n}\r\n\r\nfunction updateSelectAriaLabel (control, text){\r\n if(control){\r\n if(control.$el.children && control.$el.children.length > 1){\r\n console.log(text);\r\n control.$el.children[0].ariaLabel = text;\r\n console.log(control.$el.children[0].ariaLabel);\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default {\r\n normalizePhoneNumber: normalizePhoneNumber,\r\n determineAvailabilityStartDate: determineAvailabilityStartDate,\r\n updateLocationAvailability: updateLocationAvailability,\r\n updateSelectAriaLabel: updateSelectAriaLabel\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"select-parent\"},[_c('label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showLabel),expression:\"showLabel\"}],attrs:{\"id\":`${this.name}-label`}},[_vm._v(\" \"+_vm._s(_vm.label || _vm.placeHolder))]),_c('div',{staticClass:\"select-container\",class:[_vm.disabled ? 'disabled' : '', _vm.direction === 'rtl' ? 'rtl' : ''],on:{\"mousedown\":_vm.onMousedown,\"keydown\":_vm.onKeydown}},[_c('div',{ref:this.name,class:['combo-box', 'fill-button', _vm.isDropdownOpen ? 'open' : ''],attrs:{\"disabled\":_vm.disabled,\"aria-disabled\":_vm.disabled,\"role\":\"combobox\",\"id\":this.name,\"aria-labelledby\":`${this.name}-label`,\"aria-controls\":_vm.listBoxId,\"aria-haspopup\":\"listbox\",\"tabindex\":\"0\",\"aria-expanded\":_vm.isDropdownOpen.toString()},on:{\"mousedown\":_vm.toggleDropDown,\"focus\":_vm.onFocus,\"blur\":_vm.onBlur}},[_vm._v(\" \"+_vm._s(_vm.selectedItem ? _vm.getItemLabel(_vm.selectedItem) : _vm.placeHolder || _vm.defaulttext)+\" \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showItems),expression:\"showItems\"}],class:['list-box', _vm.listTop ? 'display-top' : ''],attrs:{\"role\":\"listbox\",\"id\":_vm.listBoxId,\"aria-labelledby\":`${this.name}-label`}},_vm._l((_vm.items),function(item,index){return _c('div',{key:_vm.getItemKey(item),class:[\n 'list-item',\n _vm.getItemKey(item) === _vm.getItemKey(_vm.selectedItem) ? 'selected' : '',\n ],attrs:{\"tabindex\":\"-1\",\"role\":\"option\",\"name\":_vm.getItemKey(item),\"aria-selected\":(item === _vm.selectedItem).toString()},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.selectItem(item, index)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _vm.selectItem(item, index)}],\"click\":function($event){return _vm.selectItem(item, index)}}},[_vm._t(\"item\",function(){return [_vm._v(\" \"+_vm._s(_vm.getItemLabel(item))+\" \")]},null,_vm.normalizeOptionForSlot(item))],2)}),0)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"select-parent\">\r\n <label v-show=\"showLabel\" :id=\"`${this.name}-label`\">\r\n {{ label || placeHolder }}</label\r\n >\r\n <div\r\n class=\"select-container\"\r\n :class=\"[disabled ? 'disabled' : '', direction === 'rtl' ? 'rtl' : '']\"\r\n @mousedown=\"onMousedown\"\r\n v-on:keydown=\"onKeydown\"\r\n >\r\n <div\r\n :disabled=\"disabled\"\r\n :aria-disabled=\"disabled\"\r\n role=\"combobox\"\r\n :ref=\"this.name\"\r\n :id=\"this.name\"\r\n :aria-labelledby=\"`${this.name}-label`\"\r\n :aria-controls=\"listBoxId\"\r\n aria-haspopup=\"listbox\"\r\n tabindex=\"0\"\r\n :aria-expanded=\"isDropdownOpen.toString()\"\r\n @mousedown=\"toggleDropDown\"\r\n :class=\"['combo-box', 'fill-button', isDropdownOpen ? 'open' : '']\"\r\n @focus=\"onFocus\"\r\n @blur=\"onBlur\"\r\n >\r\n {{\r\n selectedItem ? getItemLabel(selectedItem) : placeHolder || defaulttext\r\n }}\r\n </div>\r\n <div\r\n v-show=\"showItems\"\r\n role=\"listbox\"\r\n :id=\"listBoxId\"\r\n :class=\"['list-box', listTop ? 'display-top' : '']\"\r\n :aria-labelledby=\"`${this.name}-label`\"\r\n >\r\n <div\r\n tabindex=\"-1\"\r\n role=\"option\"\r\n v-on:keydown.enter=\"selectItem(item, index)\"\r\n v-on:keydown.space=\"selectItem(item, index)\"\r\n @click=\"selectItem(item, index)\"\r\n v-for=\"(item, index) in items\"\r\n :key=\"getItemKey(item)\"\r\n :name=\"getItemKey(item)\"\r\n :aria-selected=\"(item === selectedItem).toString()\"\r\n :class=\"[\r\n 'list-item',\r\n getItemKey(item) === getItemKey(selectedItem) ? 'selected' : '',\r\n ]\"\r\n >\r\n <slot name=\"item\" v-bind=\"normalizeOptionForSlot(item)\">\r\n {{ getItemLabel(item) }}\r\n </slot>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n props: {\r\n selectName: String,\r\n label: {\r\n type: String,\r\n value: \"\",\r\n },\r\n itemLabel: String,\r\n items: [],\r\n placeHolder: {\r\n type: String,\r\n value: \"\",\r\n },\r\n value: {},\r\n itemId: String,\r\n ariaLabel: String,\r\n disabled: Boolean,\r\n listTop: Boolean,\r\n direction: {\r\n type: String,\r\n value: \"ltr\",\r\n },\r\n },\r\n data() {\r\n return {\r\n isDropdownOpen: false,\r\n selectedItem: undefined,\r\n itemIndex: 0,\r\n dropDownOpening: false,\r\n defaulttext: \"Select an option\",\r\n defaultName: \"select\",\r\n listBoxId: `${this.selectName}-listBox`,\r\n searchString: \"\",\r\n };\r\n },\r\n computed: {\r\n isTrackingValues() {\r\n return (\r\n typeof this.value === \"undefined\" ||\r\n // eslint-disable-next-line no-prototype-builtins\r\n this.$options.propsData.hasOwnProperty(\"reduce\")\r\n );\r\n },\r\n showItems() {\r\n return this.isDropdownOpen;\r\n },\r\n showLabel() {\r\n return (\r\n this.label !== undefined ||\r\n (this.placeHolder !== undefined &&\r\n this.selectedItem &&\r\n Object.keys(this.selectedItem).length !== 0)\r\n );\r\n },\r\n fillButton() {\r\n return (this.placeHolder === \"\" && this.label === \"\") || !this.showLabel;\r\n },\r\n randomID() {\r\n return Math.random() * 100;\r\n },\r\n name() {\r\n return this.selectName || this.defaultName;\r\n },\r\n },\r\n methods: {\r\n onFocus() {\r\n if (!this.isDropdownOpen) {\r\n this.isDropdownOpen = true;\r\n this.dropDownOpening = true;\r\n if (this.selectedItem) {\r\n this.setInitialFocus();\r\n }\r\n }\r\n if (this.disabled) {\r\n this.isDropdownOpen = false;\r\n return;\r\n }\r\n },\r\n onBlur() {\r\n if (this.dropDownOpening) {\r\n this.dropDownOpening = false;\r\n } else {\r\n this.isDropdownOpen = false;\r\n return;\r\n }\r\n // Fixed bug where no-options message could not be closed\r\n if (this.items.length === 0) {\r\n this.isDropdownOpen = false;\r\n return;\r\n }\r\n },\r\n onMousedown() {\r\n this.dropDownOpening = true;\r\n },\r\n getSearchString(char) {\r\n // reset typing timeout and start new timeout\r\n // this allows us to make multiple-letter matches, like a native select\r\n if (typeof this.searchTimeout === \"number\") {\r\n window.clearTimeout(this.searchTimeout);\r\n }\r\n\r\n this.searchTimeout = window.setTimeout(() => {\r\n this.searchString = \"\";\r\n }, 500);\r\n\r\n // add most recent letter to saved search string\r\n this.searchString += char;\r\n return this.searchString;\r\n },\r\n onKeydown(e) {\r\n console.log(e);\r\n const key = e.key;\r\n\r\n if (\r\n key === \"Backspace\" ||\r\n key === \"Clear\" ||\r\n (key.length === 1 && key !== \" \")\r\n ) {\r\n this.searchList(key);\r\n return;\r\n }\r\n\r\n switch (key) {\r\n case \"Tab\":\r\n case \"Escape\":\r\n this.isDropdownOpen = false;\r\n break;\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n if (this.isDropdownOpen) {\r\n this.moveNext();\r\n }\r\n break;\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n if (this.isDropdownOpen) {\r\n this.movePrevious();\r\n }\r\n break;\r\n default:\r\n }\r\n },\r\n searchList(key) {\r\n const search = this.getSearchString(key);\r\n const index = this.getIndexByLetter(\r\n this.items,\r\n search,\r\n this.itemIndex + 1\r\n );\r\n if (index > -1) {\r\n let items = document\r\n .getElementById(this.listBoxId)\r\n .getElementsByClassName(\"list-item\");\r\n items[index].focus();\r\n this.itemIndex = index;\r\n }\r\n },\r\n moveNext() {\r\n if (this.itemIndex === this.items.length - 1) {\r\n return;\r\n }\r\n\r\n if (this.dropDownOpening && !this.selectedItem) {\r\n this.itemIndex = 0;\r\n } else {\r\n this.itemIndex++;\r\n }\r\n\r\n let items = document\r\n .getElementById(this.listBoxId)\r\n .getElementsByClassName(\"list-item\");\r\n items[this.itemIndex].focus();\r\n },\r\n movePrevious() {\r\n if (this.itemIndex === 0) {\r\n return;\r\n }\r\n let items = document\r\n .getElementById(this.listBoxId)\r\n .getElementsByClassName(\"list-item\");\r\n this.itemIndex--;\r\n items[this.itemIndex].focus();\r\n },\r\n getItemKey(item) {\r\n if (item === null) {\r\n return;\r\n }\r\n\r\n if (typeof item !== \"object\") {\r\n return item;\r\n }\r\n\r\n try {\r\n // eslint-disable-next-line no-prototype-builtins\r\n return item.hasOwnProperty(this.itemId)\r\n ? item[this.itemId]\r\n : this.sortAndStringify(item);\r\n } catch (e) {\r\n const warning = \"Could not stringify this option\";\r\n return console.warn(warning, item, e);\r\n }\r\n },\r\n getItemLabel(item) {\r\n if (item === null) {\r\n return;\r\n }\r\n\r\n if (typeof item === \"object\") {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!item.hasOwnProperty(this.itemLabel)) {\r\n return console.warn(\r\n `Label key \"item.${this.itemLabel}\" does not` +\r\n ` exist in items object ${JSON.stringify(item)}.\\n`\r\n );\r\n }\r\n return item[this.itemLabel];\r\n }\r\n return item;\r\n },\r\n normalizeOptionForSlot(option) {\r\n return typeof option === \"object\" ? option : { [this.label]: option };\r\n },\r\n sortAndStringify(sortable) {\r\n const ordered = {};\r\n\r\n Object.keys(sortable)\r\n .sort()\r\n .forEach((key) => {\r\n ordered[key] = sortable[key];\r\n });\r\n\r\n return JSON.stringify(ordered);\r\n },\r\n toggleDropDown(e) {\r\n if (!this.isDropdownOpen) {\r\n this.isDropdownOpen = true;\r\n if (this.selectedItem) {\r\n this.setInitialFocus();\r\n }\r\n } else {\r\n e.preventDefault();\r\n this.isDropdownOpen = false;\r\n this.$refs[this.name].blur();\r\n }\r\n if (this.disabled) {\r\n this.isDropdownOpen = false;\r\n return;\r\n }\r\n },\r\n setInitialFocus() {\r\n this.dropDownOpening = true;\r\n if (this.itemIndex === 0) {\r\n this.selectedItem = this.items[this.itemIndex];\r\n } else {\r\n this.itemIndex = this.items.indexOf(this.selectedItem);\r\n }\r\n },\r\n reduce: (item) => item,\r\n setInternalValueFromOptions(value) {\r\n this.$data._value = value;\r\n this.selectedItem = value;\r\n\r\n let index = 0;\r\n if (this.items) {\r\n index = this.items.indexOf(value);\r\n }\r\n this.itemIndex = index >= 0 ? index : 0;\r\n },\r\n updateValue(value) {\r\n if (typeof this.value === \"undefined\") {\r\n // Vue select has to manage value\r\n this.$data._value = value;\r\n }\r\n\r\n if (value !== null) {\r\n if (Array.isArray(value)) {\r\n value = value.map((val) => this.reduce(val));\r\n } else {\r\n value = this.reduce(value);\r\n }\r\n }\r\n\r\n this.$emit(\"input\", value);\r\n },\r\n selectItem(item, index) {\r\n this.itemIndex = index;\r\n this.selectedItem = item;\r\n this.isDropdownOpen = !this.isDropdownOpen;\r\n this.updateValue(item);\r\n this.$emit(\"item:selected\", item);\r\n },\r\n filterOptions(options = [], filter, exclude = []) {\r\n console.log(options);\r\n return options.filter((option) => {\r\n const matches =\r\n this.getItemLabel(option)\r\n .toLowerCase()\r\n .indexOf(filter.toLowerCase()) === 0;\r\n return matches && exclude.indexOf(option) < 0;\r\n });\r\n },\r\n getIndexByLetter(options, filter, startIndex = 0) {\r\n const orderedOptions = [\r\n ...options.slice(startIndex),\r\n ...options.slice(0, startIndex),\r\n ];\r\n const firstMatch = this.filterOptions(orderedOptions, filter)[0];\r\n const allSameLetter = (array) =>\r\n array.every((letter) => letter === array[0]);\r\n\r\n // first check if there is an exact match for the typed string\r\n if (firstMatch) {\r\n return options.indexOf(firstMatch);\r\n }\r\n\r\n // if the same letter is being repeated, cycle through first-letter matches\r\n else if (allSameLetter(filter.split(\"\"))) {\r\n const matches = this.filterOptions(orderedOptions, filter[0]);\r\n return options.indexOf(matches[0]);\r\n }\r\n\r\n // if no matches, return -1\r\n else {\r\n return -1;\r\n }\r\n },\r\n },\r\n watch: {\r\n value: {\r\n immediate: true,\r\n handler(val) {\r\n this.setInternalValueFromOptions(val);\r\n },\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n@import \"@/assets/css/font-awesome.css\";\r\n\r\n.select-parent {\r\n width: 100%;\r\n label {\r\n display: block;\r\n padding: 0.05rem 0.25rem;\r\n width: 100%;\r\n margin: 0 auto;\r\n font-size: 0.85rem !important;\r\n font-weight: 500;\r\n }\r\n}\r\n\r\n.rtl {\r\n .combo-box::before {\r\n left: 0.8rem !important;\r\n right: unset;\r\n }\r\n}\r\n\r\n.select-container {\r\n position: relative;\r\n width: 100% !important;\r\n border: solid 0.1rem #cacaca !important;\r\n border-bottom: solid 0.15rem #0b5583 !important;\r\n color: black;\r\n\r\n .combo-box,\r\n .list-box {\r\n display: block;\r\n width: 100%;\r\n margin: 0 auto;\r\n background: #fff;\r\n border: 0;\r\n font-size: 1rem;\r\n }\r\n\r\n .combo-box {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n position: relative;\r\n padding: 0rem 0.6rem 0.4rem;\r\n\r\n &::before {\r\n font-size: 1em;\r\n color: #3f403b;\r\n opacity: 0.7;\r\n font-family: \"FontAwesome\";\r\n content: \"\\f078\";\r\n vertical-align: middle;\r\n font-weight: 500;\r\n position: absolute;\r\n top: -0.4rem;\r\n right: 0.8rem;\r\n -webkit-transition: -webkit-transform 0.2s ease-in-out;\r\n -ms-transition: -ms-transform 0.2s ease-in-out;\r\n transition: transform 0.2s ease-in-out;\r\n }\r\n\r\n &:focus-visible {\r\n outline: 0;\r\n }\r\n }\r\n\r\n .combo-box.fill-button {\r\n min-height: 45px;\r\n margin-top: 5px;\r\n &::before {\r\n top: unset;\r\n }\r\n }\r\n\r\n .combo-box.open {\r\n &::before {\r\n -moz-transform: rotate(180deg);\r\n -webkit-transform: rotate(180deg);\r\n -o-transform: rotate(180deg);\r\n -ms-transform: rotate(180deg);\r\n transform: rotate(180deg);\r\n }\r\n }\r\n\r\n .list-box {\r\n color: #3f403b;\r\n position: absolute;\r\n padding: 0.7rem 0.8rem;\r\n left: 0;\r\n right: 0;\r\n top: 3.5rem;\r\n max-height: 600px;\r\n overflow-y: auto;\r\n list-style-type: none;\r\n padding: 0;\r\n margin: 0.1rem 0.1rem;\r\n transform-origin: top left;\r\n pointer-events: auto;\r\n z-index: 2;\r\n box-shadow: 0 0 5px 1px #3f403b;\r\n\r\n .list-item {\r\n padding: 0.3rem 0.8rem;\r\n outline: 0 !important;\r\n cursor: pointer;\r\n position: relative;\r\n\r\n &::before {\r\n font-family: \"FontAwesome\";\r\n content: \"\\f00c\";\r\n vertical-align: middle;\r\n font-weight: 900;\r\n position: absolute;\r\n right: 1em;\r\n opacity: 0;\r\n }\r\n\r\n &:hover {\r\n background: #0b5583;\r\n color: #fff;\r\n opacity: 0.5;\r\n }\r\n\r\n &.selected {\r\n background: #0b5583;\r\n color: #fff;\r\n opacity: 1 !important;\r\n }\r\n\r\n &:focus {\r\n background: #0b5583;\r\n color: #fff;\r\n opacity: 0.8;\r\n }\r\n }\r\n }\r\n\r\n .list-box.display-top {\r\n top: auto !important;\r\n bottom: calc(100% + 5px);\r\n max-height: 300px !important;\r\n }\r\n\r\n &.disabled,\r\n &.disabled div,\r\n &.disabled button,\r\n &.disabled label {\r\n opacity: 0.9;\r\n background: rgb(236, 236, 236);\r\n cursor: not-allowed;\r\n font-weight: 600;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OpusSelectOnlyDropDown.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OpusSelectOnlyDropDown.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OpusSelectOnlyDropDown.vue?vue&type=template&id=57f1c420&\"\nimport script from \"./OpusSelectOnlyDropDown.vue?vue&type=script&lang=js&\"\nexport * from \"./OpusSelectOnlyDropDown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OpusSelectOnlyDropDown.vue?vue&type=style&index=0&id=57f1c420&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span\r\n aria-label=\"Welcome Page\"\r\n aria-live=\"polite\"\r\n role=\"contentinfo\"\r\n ></span>\r\n <h2\r\n class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.welcome }}\r\n </h2>\r\n <v-card>\r\n <v-card-text :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.languageInstruction }}\r\n </v-card-text>\r\n <v-card-text class=\"centerContainer\">\r\n <v-row>\r\n <opus-select-only-drop-down\r\n :items=\"languages\"\r\n select-name=\"languageSelect\"\r\n item-label=\"Name\"\r\n item-id=\"Code\"\r\n :label=\"siteText.ui.languageLabel\"\r\n :place-holder=\"siteText.ui.languageLabel\"\r\n aria-label=\"Select a Language\"\r\n @item:selected=\"languageChange\"\r\n v-model=\"language\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <template #item=\"{ Code, Name }\">\r\n <span :lang=\"Code\">{{ Name }}</span>\r\n </template>\r\n </opus-select-only-drop-down>\r\n </v-row>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <v-card>\r\n <v-card-text :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.selectOptionInstruction }}\r\n <!-- Please select an option. Choose to:\r\n <ul>\r\n <li>Make a new reservation</li>\r\n <li>View an existing reservation (date, time, location)</li>\r\n <li>Cancel an existing reservation (if you have multiple services scheduled, you will be cancelling all services)</li>\r\n <li>Reschedule and existing reservation (change date or location)</li>\r\n </ul> -->\r\n </v-card-text>\r\n <v-card-text\r\n class=\"centerContainer\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <!-- <v-card-text>{{ siteText.ui.newReservationInstruction }}</v-card-text> -->\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"newReservation()\"\r\n >\r\n {{ siteText.ui.newReservation }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <!-- <v-card-text>{{ siteText.ui.viewReservationInstruction }}</v-card-text> -->\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"viewReservation()\"\r\n >\r\n {{ siteText.ui.viewReservation }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <!-- <v-card-text>{{ siteText.ui.cancelReservationInstruction }}</v-card-text> -->\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"cancelReservation()\"\r\n >\r\n {{ siteText.ui.cancelReservation }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <!-- <v-card-text>{{ siteText.ui.rescheduleReservationInstruction}}</v-card-text> -->\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"rescheduleReservation()\"\r\n >\r\n {{ siteText.ui.rescheduleReservation }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </v-card-text>\r\n </v-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport common from \"../Utilities/common\";\r\nimport OpusSelectOnlyDropDown from \"@/components/OpusSelectOnlyDropDown.vue\";\r\n\r\nexport default {\r\n name: \"WelcomePage\",\r\n data: () => ({\r\n language: { Name: \"English\", Code: \"en\" },\r\n }),\r\n components: {\r\n OpusSelectOnlyDropDown,\r\n },\r\n computed: {\r\n ...mapGetters([\"siteText\"]),\r\n ...mapGetters([\"languages\", \"isRTLLanguage\"]),\r\n ...mapGetters({ languageGetter: \"language\" }),\r\n },\r\n mounted() {\r\n //Set language based on current selected langauge//\r\n if (this.languages && this.languages.length > 0) {\r\n this.language = this.languages.find((e) => e.Code == this.languageGetter);\r\n }\r\n\r\n this.clearSelectedServices();\r\n this.clearNewAppointmentData();\r\n this.clearExistingAppointmentData();\r\n this.clearUserSelections();\r\n common.updateSelectAriaLabel(\r\n this.$refs.langaugeSelect,\r\n \"Please selected your prefered language\"\r\n );\r\n },\r\n methods: {\r\n ...mapActions([\"setLanguage\"]),\r\n ...mapActions({\r\n languageAction: \"language\",\r\n reservationOptionAction: \"reservationOption\",\r\n previousPageAction: \"previousPage\",\r\n }),\r\n ...mapActions(\"selectedService\", {\r\n clearSelectedServices: \"clearSelectedServices\",\r\n }),\r\n ...mapActions([\r\n \"clearNewAppointmentData\",\r\n \"clearExistingAppointmentData\",\r\n \"clearUserSelections\",\r\n ]),\r\n ...mapActions([\"getLocaleSpecificServiceTypes\"]),\r\n // nextPage() {\r\n // this.$emit('navigateTo', 'DataColllectionPage');\r\n // },\r\n async newReservation() {\r\n // eslint-disable-next-line no-undef\r\n // grecaptcha.enterprise.execute();\r\n await this.getLanguageSpecificServiceTypes();\r\n this.$emit(\"navigateTo\", \"NewReservationPage\", {\r\n pageName: \"Schedule a Reservation\",\r\n });\r\n console.log(\"newReservation\");\r\n },\r\n async viewReservation() {\r\n await this.getLanguageSpecificServiceTypes();\r\n this.reservationOptionAction({ value: \"view\" });\r\n this.$emit(\"navigateTo\", \"DataCollectionPage\", {\r\n header: this.siteText.ui.viewReservationHeader,\r\n subHeader: this.siteText.ui.viewReservationSubHeader,\r\n subHeader2: this.siteText.ui.viewReservationSubHeader2,\r\n pageName: \"View Your Reservation\",\r\n });\r\n console.log(\"viewReservation\");\r\n },\r\n async cancelReservation() {\r\n await this.getLanguageSpecificServiceTypes();\r\n this.reservationOptionAction({ value: \"cancel\" });\r\n this.previousPageAction({ value: \"WelcomePage\" });\r\n this.$emit(\"navigateTo\", \"DataCollectionPage\", {\r\n header: this.siteText.ui.cancelReservationHeader,\r\n subHeader: this.siteText.ui.cancelReservationSubHeader,\r\n subHeader2: this.siteText.ui.cancelReservationSubHeader2,\r\n pageName: \"Cancel Your Reservation\",\r\n });\r\n console.log(\"cancelReservation\");\r\n },\r\n async rescheduleReservation() {\r\n await this.getLanguageSpecificServiceTypes();\r\n this.reservationOptionAction({ value: \"reschedule\" });\r\n this.$emit(\"navigateTo\", \"DataCollectionPage\", {\r\n header: this.siteText.ui.rescheduleReservationHeader,\r\n subHeader: this.siteText.ui.rescheduleReservationSubHeader,\r\n subHeader2: this.siteText.ui.rescheduleReservationSubHeader2,\r\n pageName: \"Reschedule Your Reservation\",\r\n });\r\n console.log(\"rescheduleReservation\");\r\n },\r\n languageChange() {\r\n // this.language = language;\r\n console.log(this.language.Code);\r\n this.languageAction({ value: this.language.Code });\r\n },\r\n async getLanguageSpecificServiceTypes() {\r\n if (this.language.Code !== \"en\") {\r\n await this.getLocaleSpecificServiceTypes();\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WelcomePage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WelcomePage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WelcomePage.vue?vue&type=template&id=27ffb7e2&scoped=true&\"\nimport script from \"./WelcomePage.vue?vue&type=script&lang=js&\"\nexport * from \"./WelcomePage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WelcomePage.vue?vue&type=style&index=0&id=27ffb7e2&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"27ffb7e2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Data Collection Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('recaptcha-validation',{ref:\"recaptcha\",attrs:{\"role\":\"presentation\"},on:{\"recaptchaValid\":_vm.onRecaptchaValid,\"recaptchaInvalid\":_vm.onRecaptchaInvalid}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.pageInfo.header)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.pageInfo.subHeader)+\" \")]),_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',domProps:{\"innerHTML\":_vm._s(_vm.pageInfo.subHeader2)}}),_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[(_vm.displayErrorMessage)?_c('div',{staticClass:\"red--text\",class:_vm.isRTLLanguage ? 'rtl' : 'normal',staticStyle:{\"font-size\":\"14px\"},attrs:{\"role\":\"alert\"}},[_vm._v(_vm._s(_vm.errorMessage)+\" \")]):_vm._e(),_c('p'),_c('v-text-field',{ref:\"emailTextField\",class:{'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.emailAddress,\"id\":\"emailTextField\",\"filled\":\"\",\"dense\":\"\",\"required\":\"\",\"rules\":[_vm.isValidEmail]},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-text-field',{class:{'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"type\":\"text\",\"label\":_vm.siteText.ui.phoneNumber,\"id\":\"phoneTextField\",\"filled\":\"\",\"dense\":\"\",\"required\":\"\",\"maxlength\":\"14\",\"rules\":[_vm.isValidPhone]},on:{\"keypress\":function($event){return _vm.isNumber($event)},\"input\":_vm.formatPhoneNumber},model:{value:(_vm.phone),callback:function ($$v) {_vm.phone=$$v},expression:\"phone\"}}),_c('v-text-field',{class:{'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.confirmationNumber,\"id\":\"confirmNumberTextField\",\"filled\":\"\",\"dense\":\"\",\"required\":\"\",\"maxlength\":\"9\"},on:{\"keypress\":function($event){return _vm.isNumber($event)}},model:{value:(_vm.confirmationNumber),callback:function ($$v) {_vm.confirmationNumber=$$v},expression:\"confirmationNumber\"}})],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.dataCollectionBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":!_vm.validEmail || !_vm.validPhone,\"aria-disabled\":!_vm.validEmail || !_vm.validPhone},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dataCollectionSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":!_vm.validEmail || !_vm.validPhone,\"aria-disabled\":!_vm.validEmail || !_vm.validPhone},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dataCollectionSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.dataCollectionBack)+\" \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"aria-hidden\":\"true\"}},[_c('loading-busy',{attrs:{\"loading\":_vm.loading,\"isAuthenticating\":false,\"text\":\"\"}}),_c('div',{staticClass:\"g-recaptcha\",attrs:{\"data-size\":\"invisible\",\"data-sitekey\":_vm.googleRecaptchaApiKey,\"data-action\":_vm.action,\"data-callback\":\"recaptchaCallback\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios';\n\n// function getServiceUrl() {\n// const env = process.env.VUE_APP_API_ENDPOINT;\n// return env;\n// }\n\nfunction callService(url, params, method) {\n return axios({\n method,\n url,\n data: method == methodTypes.get \n || method == methodTypes.delete ? null : params,\n params: method == methodTypes.get \n || method == methodTypes.delete ? params : null\n });\n}\n//const baseUrl = getServiceUrl();\n\nconst methodTypes = { post: 'post', get: 'get', put: 'put', delete: 'delete' };\n\nexport default {\n async GetSiteData() {\n // eslint-disable-next-line prefer-template\n const response = await callService('SiteData', null, methodTypes.get);\n return response.data;\n },\n async ValidateRecaptcha(action, token){\n const response = await callService('ReCaptcha', {action: action, token: token}, methodTypes.post);\n return response.data;\n },\n async GetAvailbleLocations(city, zip, serviceTypeId, serviceTypeId2, startDate) { \n const response = await callService('AvailableLocation', {typeId: serviceTypeId, typeId2: serviceTypeId2, zipCode: zip, cityName: city, startDate: startDate}, methodTypes.get);\n return response.data;\n },\n async GetLocationsWithServiceType(serviceTypeId, serviceTypeId2, startDate) {\n const response = await callService('Locations', {serviceTypeId: serviceTypeId, serviceTypeId2: serviceTypeId2, startDate: startDate}, methodTypes.get);\n return response.data;\n },\n async GetLocationsWithServiceTypeByCounty(serviceTypeId, serviceTypeId2, startDate) {\n const response = await callService('LocationsByCounty', {serviceTypeId: serviceTypeId, serviceTypeId2: serviceTypeId2, startDate: startDate}, methodTypes.get);\n return response.data;\n },\n async GetLocationAvailability(locationId, typeId, typeId2, startDate) {\n startDate = startDate || new Date();\n const response = await callService('AvailableLocationDates', {locationId: locationId, typeId: typeId, typeId2: typeId2, startDate: startDate }, methodTypes.get);\n return response.data;\n },\n async GetBooking(email, phoneNumber, confirmationNumber) {\n const response = await callService('Booking', {email: email, phoneNumber:phoneNumber, confirmationNumber: confirmationNumber}, methodTypes.get);\n return response.data;\n },\n async SaveBooking(serviceTypeId, serviceTypeId2, bookingDateTime, bookingDuration, firstName, lastName, email, cellPhone, siteId, slotId, dateOfBirth) {\n const bookingData = {serviceTypeId: serviceTypeId, serviceTypeId2: serviceTypeId2, bookingDateTime: bookingDateTime, bookingDuration: bookingDuration, firstName: firstName,\n lastName: lastName, email: email, cellPhone: cellPhone, sendSms: cellPhone ? true : false, siteId: siteId, slotId: slotId, dateOfBirth: dateOfBirth\n };\n const response = await callService('Booking', bookingData, methodTypes.post);\n return response.data;\n },\n async RescheduleBooking(serviceTypeId, serviceTypeId2, bookingDateTime, bookingDuration, firstName, lastName, email, cellPhone, siteId, slotId, dateOfBirth) {\n const bookingData = {serviceTypeId: serviceTypeId, serviceTypeId2: serviceTypeId2, bookingDateTime: bookingDateTime, bookingDuration: bookingDuration, firstName: firstName,\n lastName: lastName, email: email, cellPhone: cellPhone, sendSms: cellPhone ? true : false, siteId: siteId, slotId: slotId, dateOfBirth: dateOfBirth\n };\n const response = await callService('Booking', bookingData, methodTypes.put);\n return response.data;\n },\n async CancelBooking(bookingId) {\n const response = await callService('Booking', { bookingId: bookingId }, methodTypes.delete);\n return response.data;\n },\n async GetServiceTypes(locale) {\n const response = await callService(`ServiceTypes/${locale}`, null, methodTypes.get);\n return response.data;\n },\n async CheckInReservation(confirmationNumber, lat, lon) {\n const response = await callService('Checkin', {confirmationNumber: confirmationNumber, lat:lat, lon:lon}, methodTypes.get);\n return response.data;\n },\n async GetTicketData(ticketGuid) {\n const response = await callService(`Ticket/${ticketGuid}`, null, methodTypes.get);\n return response.data;\n }\n\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-overlay',{attrs:{\"value\":_vm.loading,\"absolute\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[(_vm.isAuthenticating)?_c('v-img',{attrs:{\"contain\":\"\",\"src\":require(\"@/assets/images/padlock.gif\"),\"max-height\":\"50\",\"transition\":\"scale-transition\"}}):_c('v-img',{attrs:{\"contain\":\"\",\"src\":require(\"@/assets/images/loading.gif\"),\"max-height\":\"50\",\"transition\":\"scale-transition\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\",attrs:{\"aria-label\":\"Loading, please wait\",\"role\":\"alert\"}},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-overlay :value=\"loading\" absolute>\r\n <v-row>\r\n <v-col class=\"text-center\">\r\n <v-img v-if=\"isAuthenticating\"\r\n contain\r\n src=\"@/assets/images/padlock.gif\"\r\n max-height=\"50\"\r\n transition=\"scale-transition\"\r\n />\r\n <v-img v-else\r\n contain\r\n src=\"@/assets/images/loading.gif\"\r\n max-height=\"50\"\r\n transition=\"scale-transition\"\r\n />\r\n </v-col>\r\n </v-row>\r\n <v-row>\r\n <v-col \r\n class=\"text-center\"\r\n aria-label=\"Loading, please wait\"\r\n role=\"alert\"> {{ text }} </v-col>\r\n </v-row>\r\n </v-overlay>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n // props: ['loading', 'src', 'text'],\r\n props: {\r\n loading: {\r\n type: Boolean,\r\n required: true,\r\n default: false,\r\n },\r\n isAuthenticating: {\r\n type: Boolean,\r\n required: true,\r\n default: false,\r\n },\r\n text: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n};\r\n</script>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingBusy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingBusy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingBusy.vue?vue&type=template&id=66b69f4e&\"\nimport script from \"./LoadingBusy.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingBusy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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","<template>\n <div aria-hidden=\"true\">\n <loading-busy :loading=\"loading\" :isAuthenticating=\"false\" text=\"\"></loading-busy>\n <div\n class=\"g-recaptcha\"\n data-size=\"invisible\"\n :data-sitekey=\"googleRecaptchaApiKey\"\n :data-action=\"action\"\n data-callback=\"recaptchaCallback\"\n />\n </div>\n </template>\n \n <script>\n import nyApi from '@/api/nyApi';\n import loadingBusy from '@/components/LoadingBusy.vue';\n\n export default {\n components: {\n loadingBusy\n },\n data() {\n return {\n googleRecaptchaApiKey: process.env.VUE_APP_GOOGLE_RECAPTCHA_KEY,\n googleRecaptchaApiUrl: process.env.VUE_APP_GOOGLE_RECAPTCHA_ENDPOINT,\n action: 'login',\n loading: false\n }\n },\n mounted() {\n // next line places reCAPTCHA callback in global scope\n // (outside of Vue) for Google reCAPTCHA API callback\n window.recaptchaCallback = this.recaptchaCallback;\n console.log(this.googleRecaptchaApiUrl);\n\n const recaptchaScript = document.createElement('script');\n recaptchaScript.setAttribute('src', this.googleRecaptchaApiUrl);\n document.head.appendChild(recaptchaScript);\n },\n methods: {\n verifyRecaptcha() {\n // eslint-disable-next-line no-undef\n grecaptcha.enterprise.execute();\n },\n async recaptchaCallback(reCAPTCHAtoken) {\n console.log(reCAPTCHAtoken);\n let isValid = false;\n try{\n this.loading = true;\n isValid = await nyApi.ValidateRecaptcha(this.action, reCAPTCHAtoken);\n }\n catch(error){\n console.log(error);\n isValid = false;\n }\n finally{\n this.loading = false;\n } \n console.log(isValid);\n if(isValid) {\n this.$emit(\"recaptchaValid\");\n } else {\n this.$emit(\"recaptchaInvalid\");\n }\n }\n }\n }\n </script>\n \n <style>\n \n </style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecaptchaValidation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecaptchaValidation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RecaptchaValidation.vue?vue&type=template&id=02695a68&\"\nimport script from \"./RecaptchaValidation.vue?vue&type=script&lang=js&\"\nexport * from \"./RecaptchaValidation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Data Collection Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <recaptcha-validation\r\n role=\"presentation\" \r\n ref=\"recaptcha\" \r\n @recaptchaValid=\"onRecaptchaValid\"\r\n @recaptchaInvalid=\"onRecaptchaInvalid\"\r\n >\r\n </recaptcha-validation>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\" \r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ pageInfo.header }}\r\n </h2>\r\n <p class=\"text-h8 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ pageInfo.subHeader }}\r\n </p>\r\n <p v-html=\"pageInfo.subHeader2\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\"></p>\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <div \r\n class=\"red--text\" \r\n style=\"font-size:14px\" \r\n v-if=\"displayErrorMessage\"\r\n role=\"alert\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">{{ errorMessage }}\r\n </div>\r\n <p></p>\r\n <v-text-field\r\n v-model=\"email\"\r\n :label=\"siteText.ui.emailAddress\"\r\n :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n id=\"emailTextField\"\r\n ref=\"emailTextField\"\r\n filled\r\n dense\r\n required\r\n :rules=\"[isValidEmail]\"\r\n ></v-text-field>\r\n <!-- <v-text-field\r\n v-model=\"emailConfirm\"\r\n :label=\"siteText.ui.emailAddressConfirm\"\r\n filled\r\n dense\r\n required\r\n ></v-text-field> -->\r\n <v-text-field\r\n v-model=\"phone\"\r\n type=\"text\"\r\n :label=\"siteText.ui.phoneNumber\"\r\n :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n id=\"phoneTextField\"\r\n filled\r\n dense\r\n required\r\n maxlength=\"14\"\r\n :rules=\"[isValidPhone]\"\r\n @keypress=\"isNumber($event)\"\r\n @input=\"formatPhoneNumber\"\r\n ></v-text-field>\r\n <v-text-field\r\n v-model=\"confirmationNumber\"\r\n :label=\"siteText.ui.confirmationNumber\"\r\n :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n id=\"confirmNumberTextField\"\r\n filled\r\n dense\r\n required\r\n @keypress=\"isNumber($event)\"\r\n maxlength=\"9\"\r\n ></v-text-field>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.dataCollectionBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"!validEmail || !validPhone\"\r\n :aria-disabled=\"!validEmail || !validPhone\"\r\n @click=\"submit()\"\r\n >\r\n {{ siteText.ui.dataCollectionSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"!validEmail || !validPhone\"\r\n :aria-disabled=\"!validEmail || !validPhone\"\r\n @click=\"submit()\"\r\n >\r\n {{ siteText.ui.dataCollectionSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.dataCollectionBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport common from '../Utilities/common';\r\nimport RecaptchaValidation from '../components/RecaptchaValidation.vue';\r\n\r\nexport default {\r\n name: 'DataColllectionPage',\r\n components: {\r\n RecaptchaValidation\r\n },\r\n props: {\r\n pageInfo: {\r\n // type: Object,\r\n required: false,\r\n },\r\n },\r\n data: () => ({\r\n email: '',\r\n emailConfirm: '',\r\n phone: '',\r\n confirmationNumber: '',\r\n displayErrorMessage: false,\r\n errorMessage: '',\r\n validEmail: false,\r\n validPhone: false,\r\n }),\r\n methods: {\r\n ...mapActions({\r\n previousPageAction: 'previousPage'\r\n }),\r\n ...mapActions(['getExistingBookings']),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n this.$emit('navigateTo', 'WelcomePage');\r\n },\r\n submit() {\r\n this.displayErrorMessage = false;\r\n this.errorMessage = '';\r\n \r\n if (!this.email && !this.phone && !this.confirmationNumber) {\r\n this.displayErrorMessage = true;\r\n this.errorMessage = this.siteText.errors.enterOneInfoError;\r\n this.$refs[\"emailTextField\"].focus();\r\n return;\r\n }\r\n // if ((this.email && this.phone) || (this.email && this.confirmationNumber) || (this.phone && this.confirmationNumber)) {\r\n // this.displayErrorMessage = true;\r\n // this.errorMessage = this.siteText.errors.enterOnlyOneInfoError;\r\n // return;\r\n // }\r\n // if (this.email) {\r\n // // eslint-disable-next-line no-useless-escape\r\n // const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\")){2,}@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n // if (!regex.test(this.email)) {\r\n // this.displayErrorMessage = true;\r\n // this.errorMessage = this.siteText.errors.invalidFormatEmailError;\r\n // return;\r\n // }\r\n // }\r\n if (this.phone) {\r\n console.log(this.phone);\r\n if (this.phone.length !== 14) {\r\n this.displayErrorMessage = true;\r\n this.errorMessage = this.siteText.errors.invalidPhoneNumberError;\r\n return;\r\n }\r\n }\r\n // if (this.confirmationNumber) {\r\n // console.log(this.confirmationNumber);\r\n // if (this.confirmationNumber.length !== 9) {\r\n // this.displayErrorMessage = true;\r\n // this.errorMessage = this.siteText.errors.invalidConfirmNumberError;\r\n // return;\r\n // }\r\n // }\r\n //Validate Recaptcha//\r\n this.$refs.recaptcha.verifyRecaptcha();\r\n\r\n },\r\n isValidEmail(value) {\r\n // if (!value) {\r\n // return 'Error: Email address is required.';\r\n // }\r\n // eslint-disable-next-line no-useless-escape\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\")){2,}@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (value && !regex.test(value)) {\r\n this.validEmail = false;\r\n return this.siteText.errors.invalidFormatEmailError;\r\n }\r\n this.validEmail = true;\r\n return true;\r\n },\r\n isValidPhone(value) {\r\n if (value && value.length !== 14) {\r\n this.validPhone = false;\r\n return this.siteText.errors.invalidPhoneNumberError;\r\n }\r\n this.validPhone = true;\r\n return true;\r\n },\r\n isNumber(e) {\r\n if (e.keyCode >= 48 && e.keyCode <= 57) {\r\n // Number\r\n return true;\r\n }\r\n return e.preventDefault();\r\n },\r\n isAlphanumeric(e) {\r\n if (e.keyCode >= 48 && e.keyCode <= 57) {\r\n // Number\r\n return true;\r\n }\r\n if ((e.keyCode >= 65 && e.keyCode <= 90) || (e.keyCode >= 97 && e.keyCode <= 122)) {\r\n // Alphabet\r\n return true;\r\n }\r\n return e.preventDefault();\r\n },\r\n formatPhoneNumber() {\r\n const x = this.phone.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n // eslint-disable-next-line prefer-template\r\n this.phone = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n },\r\n async onRecaptchaValid() {\r\n //Get Appointment Details//\r\n //Return true|false to indicate if bookings were found// \r\n const phone = common.normalizePhoneNumber(this.phone);\r\n const bookingsFound = await this.getExistingBookings({email: this.email, phone: phone, confirmationNumber: this.confirmationNumber});\r\n if(!bookingsFound) {\r\n console.log(\"no bookings found\");\r\n this.errorMessage = this.siteText.errors.noReservationFoundError;\r\n this.displayErrorMessage = true;\r\n if (this.email) {\r\n document.getElementById(\"emailTextField\").focus();\r\n } else if (this.phone) {\r\n document.getElementById(\"phoneTextField\").focus();\r\n } else if (this.confirmationNumber) {\r\n document.getElementById(\"confirmNumberTextField\").focus();\r\n }\r\n return;\r\n }\r\n\r\n console.log(this.reservationOption);\r\n if (this.reservationOption === 'view') {\r\n this.$emit('navigateTo', 'ViewReservationPage', { \r\n pageName:'View Reservation Details'\r\n });\r\n } else if (this.reservationOption === 'cancel') {\r\n this.previousPageAction({ value: 'DataColllectionPage' });\r\n this.$emit('navigateTo', 'CancelReservationPage', { \r\n pageName:'Cancel Reservation'\r\n });\r\n } else if (this.reservationOption === 'reschedule') {\r\n this.previousPageAction({ value: 'DataColllectionPage' });\r\n this.$emit('navigateTo', 'RescheduleReservationPage', { \r\n pageName:'Current Reservation'\r\n });\r\n }\r\n },\r\n onRecaptchaInvalid() {\r\n this.errorMessage = this.siteText.errors.recaptchaError,\r\n this.displayErrorMessage = true;\r\n }\r\n },\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['reservationOption']),\r\n ...mapGetters(['bookings']),\r\n ...mapGetters(['isRTLLanguage']),\r\n displayRTL(){\r\n return this.isRTLLanguage ? 'direction:rtl !important' : '';\r\n }\r\n },\r\n mounted() {\r\n console.log(this.bookings);\r\n if (this.bookings.length > 0) {\r\n this.email = this.bookings[0].Email;\r\n this.phone = this.bookings[0].CellPhone;\r\n this.confirmationNumber = this.bookings[0].ConfirmationNumber;\r\n if (this.phone && this.phone !== '') {\r\n this.phone = this.phone.replace(')',') ');\r\n }\r\n console.log(this.phone);\r\n }\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n\r\n.rtl {\r\n direction: rtl !important;\r\n}\r\n\r\n.normal {\r\n direction: initial !important;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DataCollectionPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DataCollectionPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DataCollectionPage.vue?vue&type=template&id=29a9ac73&scoped=true&\"\nimport script from \"./DataCollectionPage.vue?vue&type=script&lang=js&\"\nexport * from \"./DataCollectionPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DataCollectionPage.vue?vue&type=style&index=0&id=29a9ac73&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29a9ac73\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"New Reservation Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('recaptcha-validation',{ref:\"recaptcha\",attrs:{\"role\":\"presentation\"},on:{\"recaptchaValid\":_vm.onRecaptchaValid,\"recaptchaInvalid\":_vm.onRecaptchaInvalid}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.scheduleReservationHeader)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.scheduleReservationSubHeader)+\" \")]),_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',staticStyle:{\"color\":\"red\"}},[_c('i',[_vm._v(_vm._s(_vm.siteText.ui.scheduleReservationRequiredText))])]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-card',{staticClass:\"new-reservation-card\"},[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('v-text-field',{class:{ required: !_vm.firstName, 'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.scheduleFirstName,\"filled\":\"\",\"dense\":\"\",\"required\":\"\",\"rules\":[_vm.isValidFirstName]},model:{value:(_vm.firstName),callback:function ($$v) {_vm.firstName=$$v},expression:\"firstName\"}}),_c('v-text-field',{class:{ required: !_vm.lastName, 'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.scheduleLastName,\"filled\":\"\",\"dense\":\"\",\"required\":\"\",\"rules\":[_vm.isValidLastName]},model:{value:(_vm.lastName),callback:function ($$v) {_vm.lastName=$$v},expression:\"lastName\"}}),_c('v-text-field',{class:{ required: !_vm.email, 'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.scheduleEmailAddress,\"filled\":\"\",\"dense\":\"\",\"required\":\"\",\"rules\":[_vm.isValidEmail]},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-text-field',{class:{ required: !_vm.emailConfirm, 'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.scheduleEmailAddressConfirm,\"filled\":\"\",\"dense\":\"\",\"required\":\"\"},model:{value:(_vm.emailConfirm),callback:function ($$v) {_vm.emailConfirm=$$v},expression:\"emailConfirm\"}}),(_vm.emailMismatch)?_c('v-layout',{staticClass:\"ml-4 mt-n7\"},[_c('v-flex',{staticClass:\"red--text\",class:_vm.isRTLLanguage ? 'rtl' : 'normal',staticStyle:{\"font-size\":\"12px\"},attrs:{\"sm12\":\"\"}},[_vm._v(_vm._s(_vm.siteText.errors.emailNotMatchError))])],1):_vm._e(),_c('v-text-field',{class:{'v-text-field--reverse': _vm.isRTLLanguage },attrs:{\"label\":_vm.siteText.ui.schedulePhoneNumber,\"filled\":\"\",\"dense\":\"\",\"maxlength\":\"14\"},on:{\"keypress\":function($event){return _vm.isNumber($event)},\"input\":_vm.formatPhoneNumber},model:{value:(_vm.phone),callback:function ($$v) {_vm.phone=$$v},expression:\"phone\"}}),(_vm.displayInvalidPhoneMessage)?_c('span',{staticClass:\"red--text\",class:_vm.isRTLLanguage ? 'rtl' : 'normal',staticStyle:{\"font-size\":\"12px\"}},[_vm._v(_vm._s(_vm.siteText.errors.invalid10DigitPhoneError))]):_vm._e(),(_vm.errorMessage)?_c('p',{staticClass:\"red--text\",class:_vm.isRTLLanguage ? 'rtl' : 'normal',staticStyle:{\"font-size\":\"14px\"},domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}}):_vm._e()],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.scheduleBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":!_vm.valid || _vm.emailMismatch || _vm.displayInvalidPhoneMessage,\"aria-disabled\":!_vm.valid || _vm.emailMismatch || _vm.displayInvalidPhoneMessage},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.scheduleSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":!_vm.valid || _vm.emailMismatch || _vm.displayInvalidPhoneMessage,\"aria-disabled\":!_vm.valid || _vm.emailMismatch || _vm.displayInvalidPhoneMessage},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.scheduleSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.scheduleBack)+\" \")],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"New Reservation Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <recaptcha-validation \r\n role=\"presentation\" \r\n ref=\"recaptcha\" \r\n @recaptchaValid=\"onRecaptchaValid\"\r\n @recaptchaInvalid=\"onRecaptchaInvalid\"\r\n >\r\n </recaptcha-validation>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.scheduleReservationHeader }}\r\n </h2>\r\n <p class=\"text-h8 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.scheduleReservationSubHeader }}\r\n </p>\r\n <p style=\"color:red;\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n ><i>{{ siteText.ui.scheduleReservationRequiredText }}</i></p>\r\n <v-form ref=\"form\" v-model=\"valid\">\r\n <v-card class=\"new-reservation-card\">\r\n <v-card-text class=\"centerContainer\">\r\n <v-text-field\r\n v-model=\"firstName\"\r\n :label=\"siteText.ui.scheduleFirstName\"\r\n :class=\"{ required: !firstName, 'v-text-field--reverse': isRTLLanguage }\"\r\n filled\r\n dense\r\n required\r\n :rules=\"[isValidFirstName]\"\r\n ></v-text-field>\r\n <v-text-field\r\n v-model=\"lastName\"\r\n :label=\"siteText.ui.scheduleLastName\"\r\n :class=\"{ required: !lastName, 'v-text-field--reverse': isRTLLanguage }\"\r\n filled\r\n dense\r\n required\r\n :rules=\"[isValidLastName]\"\r\n ></v-text-field>\r\n <v-text-field\r\n v-model=\"email\"\r\n :label=\"siteText.ui.scheduleEmailAddress\"\r\n :class=\"{ required: !email, 'v-text-field--reverse': isRTLLanguage }\"\r\n filled\r\n dense\r\n required\r\n :rules=\"[isValidEmail]\"\r\n ></v-text-field>\r\n <v-text-field\r\n v-model=\"emailConfirm\"\r\n :label=\"siteText.ui.scheduleEmailAddressConfirm\"\r\n :class=\"{ required: !emailConfirm, 'v-text-field--reverse': isRTLLanguage }\"\r\n filled\r\n dense\r\n required\r\n ></v-text-field>\r\n <v-layout v-if=\"emailMismatch\" class=\"ml-4 mt-n7\">\r\n <v-flex sm12 class=\"red--text\" style=\"font-size: 12px\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >{{\r\n siteText.errors.emailNotMatchError\r\n }}</v-flex>\r\n </v-layout>\r\n <v-text-field\r\n v-model=\"phone\"\r\n :label=\"siteText.ui.schedulePhoneNumber\"\r\n filled\r\n dense\r\n maxlength=\"14\"\r\n @keypress=\"isNumber($event)\"\r\n @input=\"formatPhoneNumber\"\r\n :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n ></v-text-field>\r\n <span :class=\"isRTLLanguage ? 'rtl' : 'normal'\" class=\"red--text\" style=\"font-size:12px\" v-if=\"displayInvalidPhoneMessage\">{{ siteText.errors.invalid10DigitPhoneError }}</span>\r\n <p :class=\"isRTLLanguage ? 'rtl' : 'normal'\" class=\"red--text\" style=\"font-size:14px\" v-if=\"errorMessage\" v-html=\"errorMessage\"></p>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.scheduleBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"!valid || emailMismatch || displayInvalidPhoneMessage\"\r\n :aria-disabled=\"!valid || emailMismatch || displayInvalidPhoneMessage\"\r\n @click=\"submit()\"\r\n >\r\n {{ siteText.ui.scheduleSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- Mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"!valid || emailMismatch || displayInvalidPhoneMessage\"\r\n :aria-disabled=\"!valid || emailMismatch || displayInvalidPhoneMessage\"\r\n @click=\"submit()\"\r\n >\r\n {{ siteText.ui.scheduleSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.scheduleBack }}\r\n </v-btn>\r\n \r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </v-form>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport RecaptchaValidation from '@/components/RecaptchaValidation.vue';\r\n\r\nexport default {\r\n name: 'NewReservationPage',\r\n components: {\r\n RecaptchaValidation\r\n },\r\n data: () => ({\r\n valid: false,\r\n firstName: '',\r\n lastName: '',\r\n email: '',\r\n emailConfirm: '',\r\n phone: '',\r\n emailMismatch: false,\r\n errorMessage:'',\r\n }),\r\n methods: {\r\n ...mapActions(['setUserInfo']),\r\n ...mapActions(['getExistingBookings']),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n this.$emit('navigateTo', 'WelcomePage');\r\n },\r\n submit() {\r\n //Validate Recaptcha//\r\n this.$refs.recaptcha.verifyRecaptcha();\r\n },\r\n async onRecaptchaValid() {\r\n //Save user data//\r\n this.setUserInfo({ firstName:this.firstName, lastName:this.lastName, email:this.email, phone:this.phone });\r\n const bookingsFound = await this.getExistingBookings({email: this.email, phone: null, confirmationNumber: null});\r\n if(bookingsFound) {\r\n console.log(\"bookings found\");\r\n this.errorMessage = this.buildBookingExistsError(this.bookings[0], this.siteText.errors.reservationExists2);\r\n return;\r\n }\r\n this.$emit('navigateTo', 'SelectServicePage', { \r\n pageName:'Select Service for Reservation'\r\n });\r\n },\r\n onRecaptchaInvalid() {\r\n this.errorMessage = this.siteText.errors.recaptchaError,\r\n this.displayErrorMessage = true;\r\n },\r\n buildBookingExistsError(booking, msg) {\r\n const bookingDateTime = '<span class=\"ltr-text-force\">' + booking.FormattedBookingDateTime + '</span>'\r\n let errorMessage = msg.replace(\"E_MAIL\", this.email).replace(\"SITE_NAME\", booking.SiteName).replace(\"BOOKING_DATE\", bookingDateTime);\r\n const serviceType1 = this.$store.getters.serviceType(booking.ServiceTypeId);\r\n errorMessage = errorMessage.replace(\"SERVICE_1\", serviceType1.Name);\r\n if(booking.ServiceType2 != null) {\r\n const serviceType2 = this.$store.getters.serviceType(booking.ServiceTypeId2);\r\n errorMessage = errorMessage.replace(\"SERVICE_2\", serviceType2.Name);\r\n } else {\r\n errorMessage = errorMessage.replace(\"and SERVICE_2\",\"\");\r\n }\r\n return errorMessage\r\n },\r\n isNumber(e) {\r\n if (e.keyCode >= 48 && e.keyCode <= 57) {\r\n // Number\r\n return true;\r\n }\r\n return e.preventDefault();\r\n },\r\n isValidFirstName(value) {\r\n if (!value || value.includes(' ')) {\r\n return this.siteText.errors.firstNameRequiredError;\r\n }\r\n const firstChar = value[0];\r\n if (firstChar === ' ') {\r\n return this.siteText.errors.firstNameRequiredError;\r\n }\r\n return true;\r\n },\r\n isValidLastName(value) {\r\n if (!value || value.includes(' ')) {\r\n return this.siteText.errors.lastNameRequiredError;\r\n }\r\n const firstChar = value[0];\r\n if (firstChar === ' ') {\r\n return this.siteText.errors.lastNameRequiredError;\r\n }\r\n return true;\r\n },\r\n isValidEmail(value) {\r\n if (!value) {\r\n return this.siteText.errors.emailRequiredError;\r\n }\r\n // eslint-disable-next-line no-useless-escape\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\")){2,}@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!regex.test(value)) {\r\n return this.siteText.errors.invalidFormatEmailError2;\r\n }\r\n return true;\r\n },\r\n isValidPhone(value) {\r\n if (!value) {\r\n return this.siteText.errors.phoneNumberRequiredError;\r\n }\r\n if (value.length !== 14) {\r\n return this.siteText.errors.invalidPhoneError;\r\n }\r\n return true;\r\n },\r\n formatPhoneNumber() {\r\n const x = this.phone.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n // eslint-disable-next-line prefer-template\r\n this.phone = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n },\r\n },\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['userInfo']),\r\n ...mapGetters(['navFromSelectServicePage']),\r\n ...mapGetters(['bookings', 'isRTLLanguage']),\r\n displayInvalidPhoneMessage() {\r\n if (!this.phone) {\r\n return false;\r\n }\r\n if (this.phone.length !== 14) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n emailAddresses() {\r\n return this.email + \"|\" + this.emailConfirm;\r\n },\r\n },\r\n watch: {\r\n emailAddresses: function () {\r\n this.emailMismatch =\r\n this.email.toLowerCase() !== this.emailConfirm.toLowerCase();\r\n },\r\n },\r\n mounted() {\r\n if (this.navFromSelectServicePage) {\r\n this.firstName = this.userInfo.firstName;\r\n this.lastName = this.userInfo.lastName;\r\n this.email = this.userInfo.email;\r\n this.emailConfirm = this.userInfo.email;\r\n this.phone = this.userInfo.phone;\r\n } \r\n },\r\n\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewReservationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewReservationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NewReservationPage.vue?vue&type=template&id=2d81ad39&scoped=true&\"\nimport script from \"./NewReservationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./NewReservationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NewReservationPage.vue?vue&type=style&index=0&id=2d81ad39&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d81ad39\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"View Reservation Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewReservationPageHeader)+\" \")]),_vm._l((_vm.bookings),function(booking){return _c('div',{key:booking.BookingId},[_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('reservation-details',{attrs:{\"booking\":booking,\"show-barcode\":true,\"show-map-link\":true,\"show-service-type-link\":true,\"footer-text\":_vm.siteText.ui.viewMessageText,\"show-print-link\":true,\"isRTL\":_vm.isRTLLanguage}}),_c('div',{staticClass:\"text-left\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md4\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.cancelReservation(booking)}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewCancelReservation)+\" \")])],1),_c('v-flex',{attrs:{\"md4\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.rescheduleReservation(booking)}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewRescheduleReservation)+\" \")])],1)],1)],1)],1)],1),_c('p')],1)}),(_vm.displayReservationNotFound)?_c('v-card',[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundText)+\" \"),_c('strong',[_vm._v(\" \"+_vm._s(_vm.confirmationNumber)+\" \")])]),_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundText2)+\" \")])],1):_vm._e(),_c('div',{staticClass:\"text-left pt-4\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[(!_vm.directNavigation)?_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewBack)+\" \")],1):_vm._e()],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{class:_vm.isRTL ? 'rtl' : 'normal',attrs:{\"id\":\"appointment-details\"}},[(_vm.showBarcode)?_c('div',[_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.barcodeforCheckin)+\" \")])]),_c('v-flex',[_c('img',{attrs:{\"alt\":\"Bar code\",\"id\":'BC' + _vm.booking.ConfirmationNumber}})])],1)]):_vm._e(),_c('p',[_vm._v(\" \"+_vm._s(_vm.booking.FirstName)+\" \"+_vm._s(_vm.booking.LastName)),_c('br'),(_vm.booking.CellPhone)?_c('span',[_vm._v(_vm._s(_vm.booking.CellPhone)),_c('br')]):_vm._e(),(_vm.booking.Email)?_c('span',[_vm._v(_vm._s(_vm.booking.Email))]):_vm._e()]),_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewConfirmationNumber)+\" \")])]),_vm._v(\" \"+_vm._s(_vm.booking.ConfirmationNumber)+\" \")]),_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectedService)+\": \")])]),_vm._v(\" \"+_vm._s(_vm.serviceType1Details.Name)+\" \"),_c('br'),(_vm.showServiceTypeLink && _vm.serviceType1Details.AdditionalInfoText)?_c('span',[_vm._v(\" \"+_vm._s(_vm.serviceType1Details.AdditionalInfoText)+\" \")]):_vm._e(),(_vm.showServiceTypeLink)?_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.serviceType1Details.Url}},[_vm._v(_vm._s(_vm.serviceType1Details.UrlText))]):_vm._e()]),(_vm.booking.ServiceTypeId2)?_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectedService)+\": \")])]),_vm._v(\" \"+_vm._s(_vm.serviceType2Details.Name)+\" \"),_c('br'),(_vm.serviceType2Details.AdditionalInfoText)?_c('span',[_vm._v(_vm._s(_vm.serviceType2Details.AdditionalInfoText)+\" \")]):_vm._e(),(_vm.showServiceTypeLink)?_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.serviceType2Details.Url}},[_vm._v(_vm._s(_vm.serviceType2Details.UrlText))]):_vm._e()]):_vm._e(),_c('div',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.location)+\": \")]),_vm._v(\" \"+_vm._s(_vm.booking.SiteName)+\", \"+_vm._s(_vm.booking.SiteAddress)+\" \"),_c('br'),(_vm.showMapLink)?_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.booking.MapUrl}},[_vm._v(_vm._s(_vm.siteText.ui.viewMapLinkText))]):_vm._e(),_c('br'),_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.date)+\": \")]),_vm._v(\" \"+_vm._s(_vm.appointmentDate)+\" \"),_c('br'),_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.time)+\": \")]),_c('span',{staticClass:\"ltr-text-force\"},[_vm._v(_vm._s(_vm.booking.FormattedBookingTime))])]),_c('p',{staticClass:\"noPrint\"},[(_vm.showPrintLink)?_c('a',{staticClass:\"text-decoration-underline\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.Printer()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewPdfLinkText)+\" \")]):_vm._e()]),_c('p',[_vm._v(_vm._s(_vm.footerText))]),_c('p',[_vm._v(_vm._s(_vm.footerText2))])]),_c('div',{attrs:{\"hidden\":true,\"id\":\"appointment-details-hidden\"}},[_c('div',{staticStyle:{\"font-family\":\"sans-serif\",\"border\":\"1px black solid\",\"padding\":\"10px\",\"max-width\":\"600px\"},attrs:{\"id\":\"appointment-details-print\"}},[_vm._m(0),_c('h2',{staticStyle:{\"margin-bottom\":\"15px\"}},[_vm._v(\"Reservation Confirmed\")]),(_vm.showBarcode)?_c('div',{staticStyle:{\"margin-bottom\":\"15px\"}},[_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.barcodeforCheckin)+\" \")])]),_c('v-flex',[_c('img',{attrs:{\"alt\":\"Bar code\",\"id\":'BCP' + _vm.booking.ConfirmationNumber}})])],1)]):_vm._e(),_c('p',{staticStyle:{\"margin-bottom\":\"20px\"}},[_vm._v(\" \"+_vm._s(_vm.booking.FirstName)+\" \"+_vm._s(_vm.booking.LastName)),_c('br'),(_vm.booking.CellPhone)?_c('span',[_vm._v(_vm._s(_vm.booking.CellPhone)),_c('br')]):_vm._e(),(_vm.booking.Email)?_c('span',[_vm._v(_vm._s(_vm.booking.Email))]):_vm._e()]),_c('p',{staticStyle:{\"margin-bottom\":\"20px\"}},[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.viewConfirmationNumber)+\" \")])]),_vm._v(\" \"+_vm._s(_vm.booking.ConfirmationNumber)+\" \")]),_c('p',{staticStyle:{\"margin-bottom\":\"20px\"}},[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectedService)+\": \")])]),_vm._v(\" \"+_vm._s(_vm.serviceType1Details.Name)+\" \"),_c('br'),(_vm.showServiceTypeLink && _vm.serviceType1Details.AdditionalInfoText)?_c('span',[_vm._v(\" \"+_vm._s(_vm.serviceType1Details.AdditionalInfoText)+\" \")]):_vm._e()]),(_vm.booking.ServiceTypeId2)?_c('div',{staticStyle:{\"margin-bottom\":\"20px\"}},[_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectedService)+\": \")])]),_vm._v(\" \"+_vm._s(_vm.serviceType2Details.Name)+\" \"),_c('br'),(_vm.serviceType2Details.AdditionalInfoText)?_c('span',[_vm._v(_vm._s(_vm.serviceType2Details.AdditionalInfoText)+\" \")]):_vm._e()])]):_vm._e(),_c('p',{staticStyle:{\"margin-bottom\":\"20px\"}},[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.location)+\": \")]),_vm._v(\" \"+_vm._s(_vm.booking.SiteName)+\", \"+_vm._s(_vm.booking.SiteAddress))])]),_c('p',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.date)+\": \")]),_vm._v(\" \"+_vm._s(_vm.appointmentDate)+\" \"),_c('br'),_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.time)+\": \")]),_vm._v(\" \"+_vm._s(_vm.booking.FormattedBookingTime)+\" \")])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"margin-left\":\"-170px\",\"margin-bottom\":\"15px\"}},[_c('img',{attrs:{\"src\":require(\"../assets/NYDMVLogoBW.png\")}})])\n}]\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div id=\"appointment-details\" :class=\"isRTL ? 'rtl' : 'normal'\">\n <div v-if=\"showBarcode\">\n <p>\n <span\n ><strong> {{ siteText.ui.barcodeforCheckin }} </strong></span\n >\n <v-flex>\n <img alt=\"Bar code\" :id=\"'BC' + booking.ConfirmationNumber\" />\n </v-flex>\n </p>\n </div>\n <p>\n {{ booking.FirstName }} {{ booking.LastName }}<br />\n <span v-if=\"booking.CellPhone\">{{ booking.CellPhone }}<br /></span>\n <span v-if=\"booking.Email\">{{ booking.Email }}</span>\n </p>\n <p>\n <span\n ><strong> {{ siteText.ui.viewConfirmationNumber }} </strong></span\n >\n {{ booking.ConfirmationNumber }}\n </p>\n <p>\n <span\n ><strong> {{ siteText.ui.selectedService }}: </strong></span\n >\n {{ serviceType1Details.Name }} <br />\n <span\n v-if=\"showServiceTypeLink && serviceType1Details.AdditionalInfoText\"\n >\n {{ serviceType1Details.AdditionalInfoText }}\n </span>\n <a\n v-if=\"showServiceTypeLink\"\n target=\"_blank\"\n :href=\"serviceType1Details.Url\"\n >{{ serviceType1Details.UrlText }}</a\n >\n </p>\n <p v-if=\"booking.ServiceTypeId2\">\n <span\n ><strong> {{ siteText.ui.selectedService }}: </strong></span\n >\n {{ serviceType2Details.Name }} <br />\n <span v-if=\"serviceType2Details.AdditionalInfoText\"\n >{{ serviceType2Details.AdditionalInfoText }}\n </span>\n <a\n v-if=\"showServiceTypeLink\"\n target=\"_blank\"\n :href=\"serviceType2Details.Url\"\n >{{ serviceType2Details.UrlText }}</a\n >\n </p>\n <div>\n <strong> {{ siteText.ui.location }}: </strong> {{ booking.SiteName }},\n {{ booking.SiteAddress }} <br />\n <a v-if=\"showMapLink\" target=\"_blank\" :href=\"booking.MapUrl\">{{\n siteText.ui.viewMapLinkText\n }}</a>\n <br />\n <strong> {{ siteText.ui.date }}: </strong> {{ appointmentDate }} <br />\n <strong> {{ siteText.ui.time }}: </strong><span class=\"ltr-text-force\">{{ booking.FormattedBookingTime }}</span>\n </div>\n <p class=\"noPrint\">\n <a\n v-if=\"showPrintLink\"\n href=\"#\"\n class=\"text-decoration-underline\"\n @click=\"Printer()\"\n >\n {{ siteText.ui.viewPdfLinkText }}\n </a>\n </p>\n <p>{{ footerText }}</p>\n <p>{{ footerText2 }}</p>\n </div>\n <div :hidden=\"true\" id=\"appointment-details-hidden\">\n <div\n style=\"\n font-family: sans-serif;\n border: 1px black solid;\n padding: 10px;\n max-width: 600px;\n \"\n id=\"appointment-details-print\"\n >\n <div style=\"margin-left: -170px; margin-bottom: 15px\">\n <img src=\"../assets/NYDMVLogoBW.png\" />\n </div>\n <h2 style=\"margin-bottom: 15px\">Reservation Confirmed</h2>\n <div style=\"margin-bottom: 15px\" v-if=\"showBarcode\">\n <p>\n <span\n ><strong> {{ siteText.ui.barcodeforCheckin }} </strong></span\n >\n <v-flex>\n <img alt=\"Bar code\" :id=\"'BCP' + booking.ConfirmationNumber\" />\n </v-flex>\n </p>\n </div>\n <p style=\"margin-bottom: 20px\">\n {{ booking.FirstName }} {{ booking.LastName }}<br />\n <span v-if=\"booking.CellPhone\">{{ booking.CellPhone }}<br /></span>\n <span v-if=\"booking.Email\">{{ booking.Email }}</span>\n </p>\n <p style=\"margin-bottom: 20px\">\n <span\n ><strong> {{ siteText.ui.viewConfirmationNumber }} </strong></span\n >\n {{ booking.ConfirmationNumber }}\n </p>\n <p style=\"margin-bottom: 20px\">\n <span\n ><strong> {{ siteText.ui.selectedService }}: </strong></span\n >\n {{ serviceType1Details.Name }} <br />\n <span\n v-if=\"showServiceTypeLink && serviceType1Details.AdditionalInfoText\"\n >\n {{ serviceType1Details.AdditionalInfoText }}\n </span>\n </p>\n <div style=\"margin-bottom: 20px\" v-if=\"booking.ServiceTypeId2\">\n <p>\n <span\n ><strong> {{ siteText.ui.selectedService }}: </strong></span\n >\n {{ serviceType2Details.Name }} <br />\n <span v-if=\"serviceType2Details.AdditionalInfoText\"\n >{{ serviceType2Details.AdditionalInfoText }}\n </span>\n </p>\n </div>\n <p style=\"margin-bottom: 20px\">\n <span\n ><strong> {{ siteText.ui.location }}: </strong>\n {{ booking.SiteName }}, {{ booking.SiteAddress }}</span\n >\n </p>\n <p>\n <strong> {{ siteText.ui.date }}: </strong> {{ appointmentDate }}\n <br />\n <strong> {{ siteText.ui.time }}: </strong>\n {{ booking.FormattedBookingTime }}\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport jsbarcode from \"jsbarcode\";\n//import Print from '../Utilities/Print';\nimport { jsPDF } from \"jspdf\";\n\nexport default {\n data: () => ({\n confirmationNumber: 1234567890,\n }),\n props: {\n booking: {},\n showBarcode: Boolean,\n footerText: String,\n footerText2: String,\n showMapLink: Boolean,\n showServiceTypeLink: Boolean,\n showPrintLink: Boolean,\n isRTL: Boolean,\n },\n methods: {\n Printer() {\n // console.log('Inside Printer of ReservationDetails');\n // Print.Print('appointment-details');\n\n const doc = new jsPDF();\n const html = document.querySelector(\"#appointment-details-print\");\n const _this = this;\n doc.html(html, {\n callback: function (doc) {\n doc.save(`reservation_${_this.booking.ConfirmationNumber}.pdf`);\n },\n x: 15,\n y: 15,\n width: 170, //target width in the PDF document\n windowWidth: 650, //window width in CSS pixels\n });\n },\n },\n computed: {\n ...mapGetters([\"siteText\"]),\n ...mapGetters([\"language\"]),\n ...mapGetters([\"isRTLLanguage\"]),\n appointmentDate() {\n const bookingDate = new Date(this.booking.BookingDateTime);\n const month = bookingDate.toLocaleString(this.language, {\n month: \"long\",\n });\n const day = bookingDate.getDate();\n const year = bookingDate.getFullYear();\n return `${month} ${day}, ${year}`;\n },\n serviceType1Details() {\n let serviceType = null;\n if (this.booking.ServiceTypeId) {\n serviceType = this.$store.getters.serviceType(\n this.booking.ServiceTypeId\n );\n }\n return serviceType;\n },\n serviceType2Details() {\n let serviceType = null;\n if (this.booking.ServiceTypeId2) {\n serviceType = this.$store.getters.serviceType(\n this.booking.ServiceTypeId2\n );\n }\n return serviceType;\n },\n },\n mounted() {\n // finished rendering to the DOM\n this.confirmationNumber = this.booking.ConfirmationNumber;\n if (this.confirmationNumber && this.showBarcode) {\n // eslint-disable-next-line\n jsbarcode(`#BC${this.confirmationNumber}`, this.confirmationNumber, {\n format: \"code39\",\n lineColor: \"#000000\",\n background: \"#FFFFFF\",\n width: 1.25,\n height: 35,\n displayValue: false,\n });\n\n //generate the barcode again for printable version//\n jsbarcode(`#BCP${this.confirmationNumber}`, this.confirmationNumber, {\n format: \"code39\",\n lineColor: \"#000000\",\n background: \"#FFFFFF\",\n width: 1.25,\n height: 35,\n displayValue: false,\n });\n }\n },\n};\n</script>\n<style scoped>\n.centerContainer {\n margin: auto;\n width: 95%;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReservationDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReservationDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ReservationDetails.vue?vue&type=template&id=d15e9514&scoped=true&\"\nimport script from \"./ReservationDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./ReservationDetails.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ReservationDetails.vue?vue&type=style&index=0&id=d15e9514&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d15e9514\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span\r\n aria-label=\"View Reservation Page\"\r\n aria-live=\"polite\"\r\n role=\"contentinfo\"\r\n ></span>\r\n <h2\r\n class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.viewReservationPageHeader }}\r\n </h2>\r\n <div v-for=\"booking in bookings\" :key=\"booking.BookingId\">\r\n <v-card>\r\n <v-card-text\r\n class=\"centerContainer\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <reservation-details\r\n :booking=\"booking\"\r\n :show-barcode=\"true\"\r\n :show-map-link=\"true\"\r\n :show-service-type-link=\"true\"\r\n :footer-text=\"siteText.ui.viewMessageText\"\r\n :show-print-link=\"true\"\r\n :isRTL=\"isRTLLanguage\"\r\n >\r\n </reservation-details>\r\n <div class=\"text-left\">\r\n <v-layout row wrap>\r\n <v-flex md4>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"cancelReservation(booking)\"\r\n >\r\n {{ siteText.ui.viewCancelReservation }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md4>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"rescheduleReservation(booking)\"\r\n >\r\n {{ siteText.ui.viewRescheduleReservation }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n </div>\r\n <v-card v-if=\"displayReservationNotFound\">\r\n <v-card-text>\r\n {{ siteText.ui.reservationNotFoundText }}\r\n <strong> {{ confirmationNumber }} </strong>\r\n </v-card-text>\r\n <v-card-text>\r\n {{ siteText.ui.reservationNotFoundText2 }}\r\n </v-card-text>\r\n </v-card>\r\n <div class=\"text-left pt-4\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n v-if=\"!directNavigation\"\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n >\r\n <v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.viewBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ReservationDetails from \"../components/ReservationDetails.vue\";\r\nimport { mapGetters, mapActions } from \"vuex\";\r\n\r\nexport default {\r\n name: \"ViewReservationPage\",\r\n components: {\r\n ReservationDetails,\r\n },\r\n data() {\r\n return {\r\n displayReservationNotFound: false,\r\n };\r\n },\r\n methods: {\r\n ...mapActions({\r\n previousPageAction: \"previousPage\",\r\n }),\r\n ...mapActions([\"selectBooking\"]),\r\n ...mapActions([\"getExistingBookings\"]),\r\n nextPage(page) {\r\n this.$emit(\"navigateTo\", page);\r\n },\r\n back() {\r\n this.$emit(\"navigateTo\", \"DataCollectionPage\", {\r\n header: this.siteText.ui.viewReservationHeader,\r\n subHeader: this.siteText.ui.viewReservationSubHeader,\r\n subHeader2: this.siteText.ui.viewReservationSubHeader2,\r\n pageName: \"View Your Reservation\",\r\n });\r\n },\r\n cancelReservation(booking) {\r\n this.previousPageAction({ value: \"ViewReservationPage\" });\r\n this.selectBooking(booking);\r\n this.$emit(\"navigateTo\", \"CancelReservationPage\", {\r\n pageName: \"Cancel Reservation\",\r\n });\r\n },\r\n rescheduleReservation(booking) {\r\n this.selectBooking(booking);\r\n this.$emit(\"navigateTo\", \"RescheduleReservationPage\", {\r\n pageName: \"Current Reservation\",\r\n });\r\n },\r\n },\r\n computed: {\r\n ...mapGetters([\"siteText\"]),\r\n ...mapGetters([\"bookings\"]),\r\n ...mapGetters([\"directNavigation\", \"confirmationNumber\", \"isRTLLanguage\"]),\r\n },\r\n async mounted() {\r\n console.log(this.bookings);\r\n if (this.directNavigation) {\r\n this.displayReservationNotFound = !(await this.getExistingBookings({\r\n confirmationNumber: this.confirmationNumber,\r\n }));\r\n }\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewReservationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewReservationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ViewReservationPage.vue?vue&type=template&id=3e79af28&scoped=true&\"\nimport script from \"./ViewReservationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./ViewReservationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ViewReservationPage.vue?vue&type=style&index=0&id=3e79af28&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e79af28\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Cancel Reservation Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelReservationPageHeader)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelReservationPageSubHeader)+\" \")]),_vm._l((_vm.existingBookings),function(booking){return _c('div',{key:booking.BookingId,staticClass:\"pb-4\"},[_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('reservation-details',{attrs:{\"booking\":booking,\"showBarcode\":false,\"footerText\":_vm.siteText.ui.cancelMessageText,\"isRTL\":_vm.isRTLLanguage}}),_c('div',{staticClass:\"text-left\"},[_c('v-layout',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.cancelConfirmation(booking.BookingId)}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelConfirmation)+\" \")])],1)],1)],1)],1)],1)],1)}),_c('p'),_c('div',{staticClass:\"text-left\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelBack)+\" \")],1)],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Cancel Reservation Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.cancelReservationPageHeader }}\r\n </h2>\r\n <p class=\"text-h8 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.cancelReservationPageSubHeader }}\r\n </p>\r\n <div v-for=\"booking in existingBookings\" :key=\"booking.BookingId\" class=\"pb-4\">\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <reservation-details :booking=\"booking\" \r\n :showBarcode=\"false\" \r\n :footerText=\"siteText.ui.cancelMessageText\"\r\n :isRTL=\"isRTLLanguage\"\r\n >\r\n </reservation-details>\r\n <div class=\"text-left\">\r\n <v-layout row wrap\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"cancelConfirmation(booking.BookingId)\"\r\n >\r\n {{ siteText.ui.cancelConfirmation }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </v-card-text>\r\n </v-card>\r\n </div>\r\n <p></p>\r\n <div class=\"text-left\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.cancelBack }}\r\n </v-btn>\r\n </v-flex> \r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ReservationDetails from '@/components/ReservationDetails.vue';\r\nimport { mapGetters, mapActions } from 'vuex';\r\n\r\nexport default {\r\n components: { ReservationDetails },\r\n name: 'CancelReservationPage',\r\n methods: {\r\n ...mapActions(['cancelBooking']),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n if (this.previousPage === 'ViewReservationPage') {\r\n this.$emit('navigateTo', 'ViewReservationPage', { \r\n pageName:'View Reservation Details'\r\n });\r\n } else if (this.previousPage === 'DataColllectionPage') {\r\n this.$emit('navigateTo', 'DataCollectionPage',\r\n {\r\n header: this.siteText.ui.cancelReservationHeader,\r\n subHeader: this.siteText.ui.cancelReservationSubHeader,\r\n subHeader2: this.siteText.ui.cancelReservationSubHeader2,\r\n pageName:'Cancel Your Reservation'\r\n });\r\n }\r\n },\r\n async cancelConfirmation(bookingId) {\r\n await this.cancelBooking(bookingId);\r\n this.$emit('navigateTo', 'CancelConfirmationPage', { \r\n pageName:'Reservation Canceled'\r\n });\r\n },\r\n},\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['previousPage']),\r\n ...mapGetters(['bookings']),\r\n ...mapGetters(['selectedBooking', 'isRTLLanguage']),\r\n existingBookings() {\r\n let bookings = this.bookings;\r\n if(this.selectedBooking) {\r\n bookings = [this.selectedBooking];\r\n }\r\n return bookings;\r\n }\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CancelReservationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CancelReservationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CancelReservationPage.vue?vue&type=template&id=1de16dc5&scoped=true&\"\nimport script from \"./CancelReservationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./CancelReservationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CancelReservationPage.vue?vue&type=style&index=0&id=1de16dc5&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1de16dc5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Cancel Confirmation Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelConfirmationPageHeader)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelConfirmationPageSubHeader)+\" \")]),_c('p',{staticClass:\"text-h8\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelConfirmationPageSubHeader2)+\" \")]),_c('div',{staticClass:\"text-left pt-4\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.cancelConfirmNewReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.cancelConfirmNewReservation)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Cancel Confirmation Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\">\r\n {{ siteText.ui.cancelConfirmationPageHeader }}\r\n </h2>\r\n <p class=\"text-h8 font-weight-bold\">\r\n {{ siteText.ui.cancelConfirmationPageSubHeader }}\r\n </p>\r\n <p class=\"text-h8\">\r\n {{ siteText.ui.cancelConfirmationPageSubHeader2 }}\r\n </p>\r\n <!-- <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <reservation-details :booking=\"cancelledBooking\"></reservation-details>\r\n </v-card-text>\r\n </v-card>\r\n <p></p> -->\r\n <div class=\"text-left pt-4\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"cancelConfirmNewReservation()\"\r\n >\r\n {{ siteText.ui.cancelConfirmNewReservation }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\r\n// import ReservationDetails from '@/components/ReservationDetails.vue';\r\nexport default {\r\n name: 'CancelConfirmationPage',\r\n // components: {ReservationDetails},\r\n methods: {\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n this.$emit('navigateTo', 'CancelReservationPage');\r\n },\r\n cancelConfirmNewReservation() {\r\n this.$emit('navigateTo', 'NewReservationPage', { \r\n pageName:'Schedule a Reservation'\r\n });\r\n },\r\n},\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['cancelledBooking','isRTLLangauge'])\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CancelConfirmationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CancelConfirmationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CancelConfirmationPage.vue?vue&type=template&id=0aaa4ce9&scoped=true&\"\nimport script from \"./CancelConfirmationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./CancelConfirmationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CancelConfirmationPage.vue?vue&type=style&index=0&id=0aaa4ce9&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0aaa4ce9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Reschedule Reservation Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.rescheduleReservationPageHeader)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.rescheduleReservationPageSubHeader)+\" \")]),_vm._l((_vm.bookings),function(booking){return _c('div',{key:booking.BookingId,staticClass:\"pb-4\"},[_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('reservation-details',{attrs:{\"booking\":booking,\"footer-text2\":_vm.siteText.ui.rescheduleMessageText2,\"isRTL\":_vm.isRTLLanguage}}),_c('div',{staticClass:\"text-left\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"290px\"},on:{\"click\":function($event){return _vm.rescheduleReservationPageButton(booking)}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.rescheduleReservationPageButton)+\" \")])],1)],1)],1)],1)],1)],1)}),_c('p'),(_vm.displayReservationNotFound)?_c('v-card',[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundText)+\" \"),_c('strong',[_vm._v(\" \"+_vm._s(_vm.confirmationNumber)+\" \")])]),_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundText2)+\" \")])],1):_vm._e(),_c('div',{staticClass:\"text-left\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[(!_vm.directNavigation)?_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.rescheduleBack)+\" \")],1):_vm._e()],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Reschedule Reservation Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\" \r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.rescheduleReservationPageHeader }}\r\n </h2>\r\n <p class=\"text-h8 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.rescheduleReservationPageSubHeader }}\r\n </p>\r\n <div v-for=\"booking in bookings\" :key=\"booking.BookingId\" class=\"pb-4\">\r\n <v-card>\r\n <v-card-text class=\"centerContainer\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <reservation-details\r\n :booking=\"booking\"\r\n :footer-text2=\"siteText.ui.rescheduleMessageText2\"\r\n :isRTL=\"isRTLLanguage\"\r\n ></reservation-details>\r\n <div class=\"text-left\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"290px\"\r\n @click=\"rescheduleReservationPageButton(booking)\"\r\n >\r\n {{ siteText.ui.rescheduleReservationPageButton }}\r\n <!-- <v-icon>mdi-arrow-right</v-icon> -->\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </v-card-text>\r\n </v-card>\r\n </div>\r\n <p></p>\r\n <v-card v-if=\"displayReservationNotFound\">\r\n <v-card-text>\r\n {{ siteText.ui.reservationNotFoundText }}\r\n <strong> {{ confirmationNumber }} </strong>\r\n </v-card-text>\r\n <v-card-text>\r\n {{ siteText.ui.reservationNotFoundText2 }}\r\n </v-card-text>\r\n </v-card>\r\n <div class=\"text-left\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n v-if=\"!directNavigation\"\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.rescheduleBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ReservationDetails from \"@/components/ReservationDetails.vue\";\r\nimport { mapGetters, mapActions } from \"vuex\";\r\n\r\nexport default {\r\n name: \"RescheduleReservationPage\",\r\n components: { ReservationDetails },\r\n data() {\r\n return {\r\n displayReservationNotFound: false,\r\n };\r\n },\r\n methods: {\r\n ...mapActions(\"selectedService\", {\r\n numberOfServicesAction: \"numberOfServices\",\r\n selectService1: \"selectService1\",\r\n selectService2: \"selectService2\",\r\n }),\r\n ...mapActions([\"setUserInfo\"]),\r\n ...mapActions([\"setReschedule\"]),\r\n ...mapActions([\"getExistingBookings\", \"selectBooking\", \"dateOfBirth\"]),\r\n nextPage(page) {\r\n this.$emit(\"navigateTo\", page);\r\n },\r\n back() {\r\n this.$emit(\"navigateTo\", \"DataCollectionPage\", {\r\n header: this.siteText.ui.rescheduleReservationHeader,\r\n subHeader: this.siteText.ui.rescheduleReservationSubHeader,\r\n subHeader2: this.siteText.ui.rescheduleReservationSubHeader2,\r\n pageName: \"Reschedule Your Reservation\",\r\n });\r\n },\r\n rescheduleReservationPageButton(booking) {\r\n //TODO: Set new appointment data from existing booking data//\r\n if (booking) {\r\n this.selectBooking(booking);\r\n this.dateOfBirth(booking.DateOfBirth);\r\n this.setUserInfo({\r\n firstName: booking.FirstName,\r\n lastName: booking.LastName,\r\n email: booking.Email,\r\n phone: booking.CellPhone,\r\n });\r\n this.setServiceTypes(booking);\r\n this.setReschedule(true);\r\n }\r\n this.$emit(\"navigateTo\", \"SelectLocationCountyPage\", {\r\n pageName: \"Select DMV Office Location\",\r\n });\r\n },\r\n setServiceTypes(booking) {\r\n const serviceType1 = this.$store.getters.serviceType(\r\n booking.ServiceTypeId\r\n );\r\n this.selectService1(serviceType1);\r\n\r\n if (booking.ServiceTypeId2) {\r\n const serviceType2 = this.$store.getters.serviceType(\r\n booking.ServiceTypeId2\r\n );\r\n this.selectService2(serviceType2);\r\n }\r\n },\r\n async initializePage() {\r\n if (\r\n this.directNavigation &&\r\n (!this.bookings || this.bookings.length < 1)\r\n ) {\r\n const bookingsFound = await this.getExistingBookings({\r\n confirmationNumber: this.confirmationNumber,\r\n });\r\n this.displayReservationNotFound = !bookingsFound;\r\n if (bookingsFound) {\r\n this.selectBooking(this.bookings[0]);\r\n }\r\n }\r\n },\r\n },\r\n computed: {\r\n ...mapGetters([\"siteText\"]),\r\n ...mapGetters([\"bookings\"]),\r\n ...mapGetters([\"directNavigation\", \"confirmationNumber\", \"isRTLLanguage\"]),\r\n },\r\n async mounted() {\r\n await this.initializePage();\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RescheduleReservationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RescheduleReservationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RescheduleReservationPage.vue?vue&type=template&id=a4f4cbfa&scoped=true&\"\nimport script from \"./RescheduleReservationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./RescheduleReservationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RescheduleReservationPage.vue?vue&type=style&index=0&id=a4f4cbfa&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a4f4cbfa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"disabled\":true,\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Select Service Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectServicePageHeader)+\" \")]),_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[(_vm.displaySelectedService)?_c('div',[_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceSelectedService)+\" \")])]),_vm._v(_vm._s(_vm.selectedService1.Name)+\" \"),(_vm.displaySelectedService2)?_c('span',[_vm._v(\", \"+_vm._s(_vm.selectedService2.Name)+\" \")]):_vm._e()]),_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.selectedService1.AdditionalInfoText)+\" \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.selectedService1.Url}},[_vm._v(_vm._s(_vm.selectedService1.UrlText))])])]):_vm._e(),(_vm.displaySelectedService2)?_c('div',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('p',[_vm._v(\" \"+_vm._s(_vm.selectedService2.AdditionalInfoText)+\" \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.selectedService2.Url}},[_vm._v(_vm._s(_vm.selectedService2.UrlText)+\".\")])])]):_vm._e(),_c('opus-select-only-drop-down',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',attrs:{\"disabled\":_vm.disabledServiceType,\"aria-disabled\":_vm.disabledServiceType,\"items\":_vm.serviceTypes,\"select-name\":\"serviceTypesSelect\",\"item-label\":\"CategoryDescription\",\"item-id\":\"CategoryId\",\"place-holder\":_vm.siteText.ui.serviceTypeDropdownList,\"label\":_vm.siteText.ui.serviceCategory},on:{\"item:selected\":_vm.serviceTypeChange},model:{value:(_vm.serviceType),callback:function ($$v) {_vm.serviceType=$$v},expression:\"serviceType\"}}),_c('p',[_vm._v(\" \")]),_c('opus-select-only-drop-down',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',attrs:{\"disabled\":_vm.disabledService,\"aria-disabled\":_vm.disabledService,\"items\":_vm.services,\"select-name\":\"servicesSelect\",\"item-label\":\"Name\",\"place-holder\":_vm.siteText.ui.serviceDropdownList,\"label\":_vm.siteText.ui.service},on:{\"item:selected\":_vm.serviceChange},model:{value:(_vm.service),callback:function ($$v) {_vm.service=$$v},expression:\"service\"}}),_c('p'),(_vm.displayRemoveServices)?_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('a',{staticClass:\"text-decoration-underline\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.removeServices()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceRemoveServices)+\" \")])]):_vm._e(),_c('span',{attrs:{\"role\":\"alert\",\"aria-live\":\"assertive\",\"aria-label\":_vm.siteText.ui.serviceServicesRemovedMessage,\"aria-hidden\":!_vm.servicesRemoved}})],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"280px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"280px\",\"disabled\":_vm.disabledContinue,\"aria-disabled\":_vm.disabledContinue},on:{\"click\":function($event){return _vm.serviceContinue()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceContinue)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}}),_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":_vm.disabledContinue,\"aria-disabled\":_vm.disabledContinue},on:{\"click\":function($event){return _vm.serviceContinue()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceContinue)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceBack)+\" \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div :disabled=\"true\" id=\"page-content\" tabindex=\"-1\">\r\n <span\r\n aria-label=\"Select Service Page\"\r\n aria-live=\"polite\"\r\n role=\"contentinfo\"\r\n ></span>\r\n <h2\r\n class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.selectServicePageHeader }}\r\n </h2>\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <div v-if=\"displaySelectedService\">\r\n <p :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <span\r\n ><strong> {{ siteText.ui.serviceSelectedService }} </strong></span\r\n >{{ selectedService1.Name }}\r\n <span v-if=\"displaySelectedService2\"\r\n >, {{ selectedService2.Name }}\r\n </span>\r\n </p>\r\n <p :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ selectedService1.AdditionalInfoText }}\r\n <a target=\"_blank\" :href=\"selectedService1.Url\">{{\r\n selectedService1.UrlText\r\n }}</a>\r\n </p>\r\n </div>\r\n <div\r\n v-if=\"displaySelectedService2\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <!-- <p>{{ selectedService2.Name }}</p> -->\r\n <p>\r\n {{ selectedService2.AdditionalInfoText }}\r\n <a target=\"_blank\" :href=\"selectedService2.Url\"\r\n >{{ selectedService2.UrlText }}.</a\r\n >\r\n </p>\r\n </div>\r\n <opus-select-only-drop-down\r\n :disabled=\"disabledServiceType\"\r\n :aria-disabled=\"disabledServiceType\"\r\n :items=\"serviceTypes\"\r\n select-name=\"serviceTypesSelect\"\r\n item-label=\"CategoryDescription\"\r\n item-id=\"CategoryId\"\r\n :place-holder=\"siteText.ui.serviceTypeDropdownList\"\r\n :label=\"siteText.ui.serviceCategory\"\r\n @item:selected=\"serviceTypeChange\"\r\n v-model=\"serviceType\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n </opus-select-only-drop-down>\r\n <p> </p>\r\n <opus-select-only-drop-down\r\n :disabled=\"disabledService\"\r\n :aria-disabled=\"disabledService\"\r\n :items=\"services\"\r\n select-name=\"servicesSelect\"\r\n item-label=\"Name\"\r\n :place-holder=\"siteText.ui.serviceDropdownList\"\r\n :label=\"siteText.ui.service\"\r\n @item:selected=\"serviceChange\"\r\n v-model=\"service\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n </opus-select-only-drop-down>\r\n <p></p>\r\n <!-- ET 723 Remove option to book a \"Combo\" appointment from public facing website -->\r\n <!-- <p\r\n v-if=\"displaySelectAnotherService\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <a\r\n href=\"#\"\r\n class=\"text-decoration-underline\"\r\n @click=\"selectAnotherService()\"\r\n >\r\n {{ siteText.ui.serviceSelectAnotherService }}\r\n </a>\r\n </p> -->\r\n <p\r\n v-if=\"displayRemoveServices\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <a\r\n href=\"#\"\r\n class=\"text-decoration-underline\"\r\n @click=\"removeServices()\"\r\n >\r\n {{ siteText.ui.serviceRemoveServices }}\r\n </a>\r\n </p>\r\n <!-- <p v-if=\"servicesRemoved\" \r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <strong>{{ siteText.ui.serviceServicesRemovedMessage }}</strong>\r\n </p> -->\r\n <span\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n :aria-label=\"siteText.ui.serviceServicesRemovedMessage\"\r\n :aria-hidden=\"!servicesRemoved\"\r\n >\r\n </span>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"280px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.serviceBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"280px\"\r\n :disabled=\"disabledContinue\"\r\n :aria-disabled=\"disabledContinue\"\r\n @click=\"serviceContinue()\"\r\n >\r\n {{ siteText.ui.serviceContinue }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- Mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12> </v-flex>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"disabledContinue\"\r\n :aria-disabled=\"disabledContinue\"\r\n @click=\"serviceContinue()\"\r\n >\r\n {{ siteText.ui.serviceContinue }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.serviceBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport OpusSelectOnlyDropDown from \"@/components/OpusSelectOnlyDropDown.vue\";\r\n\r\nexport default {\r\n name: \"SelectServicePage\",\r\n data: () => ({\r\n serviceType: \"\",\r\n serviceTypes: [],\r\n selectedServiceType1: \"\",\r\n services: [],\r\n service: \"\",\r\n disabledServiceType: false,\r\n disabledService: true,\r\n displaySelectedService: false,\r\n displaySelectAnotherService: false,\r\n numberOfServices: 0,\r\n displaySelectedService2: false,\r\n disabledContinue: true,\r\n selectedService1: \"\",\r\n selectedService2: \"\",\r\n displayRemoveServices: false,\r\n servicesRemoved: false,\r\n }),\r\n components: {\r\n OpusSelectOnlyDropDown,\r\n },\r\n methods: {\r\n ...mapActions(\"selectedService\", {\r\n numberOfServicesAction: \"numberOfServices\",\r\n selectService1: \"selectService1\",\r\n selectService2: \"selectService2\",\r\n selectedServiceType1Action: \"selectedServiceType1\",\r\n clearSelectedServices: \"clearSelectedServices\",\r\n }),\r\n ...mapActions({\r\n navFromSelectServicePageAction: \"navFromSelectServicePage\",\r\n }),\r\n ...mapActions([\"setAvailableLocationsByCounty\", \"dateOfBirth\"]),\r\n nextPage(page) {\r\n this.$emit(\"navigateTo\", page);\r\n },\r\n back() {\r\n this.navFromSelectServicePageAction({ value: true });\r\n this.numberOfServicesAction({ value: this.numberOfServices });\r\n this.selectService1(this.selectedService1);\r\n this.selectedServiceType1Action(this.selectedServiceType1);\r\n if (this.numberOfServices === 2) {\r\n this.selectService2(this.selectedService2);\r\n }\r\n this.$emit(\"navigateTo\", \"NewReservationPage\", {\r\n pageName: \"Schedule a Reservation\",\r\n });\r\n },\r\n serviceContinue() {\r\n console.log(\"serviceContinue\");\r\n this.numberOfServicesAction({ value: this.numberOfServices });\r\n this.selectService1(this.selectedService1);\r\n this.selectedServiceType1Action(this.selectedServiceType1);\r\n if (this.numberOfServices === 2) {\r\n this.selectService2(this.selectedService2);\r\n }\r\n if (\r\n this.selectedService1.MinimumAge ||\r\n this.selectedService2.MinimumAge\r\n ) {\r\n console.log(\"navigateTo DateOfBirthPage\");\r\n this.$emit(\"navigateTo\", \"DateOfBirthPage\", {\r\n pageName: \"Date of Birth\",\r\n });\r\n } else {\r\n this.dateOfBirth(null);\r\n this.$emit(\"navigateTo\", \"SelectLocationCountyPage\", {\r\n pageName: \"Select DMV Office Location\",\r\n });\r\n }\r\n },\r\n serviceTypeChange() {\r\n console.log(this.serviceType);\r\n this.disabledService = false;\r\n this.servicesRemoved = false;\r\n for (\r\n let serviceTypeIndex = 0;\r\n serviceTypeIndex < this.serviceTypes.length;\r\n serviceTypeIndex += 1\r\n ) {\r\n if (\r\n this.serviceTypes[serviceTypeIndex].CategoryId ===\r\n this.serviceType.CategoryId\r\n ) {\r\n this.services = this.serviceTypes[serviceTypeIndex].ServiceTypes;\r\n console.log(this.services);\r\n break;\r\n }\r\n }\r\n if (\r\n this.numberOfServices === 1 &&\r\n this.serviceType.CategoryId === this.selectedServiceType1.CategoryId\r\n ) {\r\n this.services = this.services.filter(this.filterServices);\r\n console.log(this.services);\r\n }\r\n },\r\n filterServices(service) {\r\n return service.TypeId !== this.selectedService1.TypeId;\r\n },\r\n serviceChange() {\r\n console.log(this.service);\r\n this.disabledServiceType = true;\r\n this.disabledService = true;\r\n this.displaySelectedService = true;\r\n this.disabledContinue = false;\r\n this.displayRemoveServices = true;\r\n if (this.numberOfServices === 0) {\r\n this.displaySelectAnotherService = true;\r\n this.selectedServiceType1 = this.serviceType;\r\n this.selectedService1 = this.service;\r\n this.numberOfServices = 1;\r\n } else if (this.numberOfServices === 1) {\r\n this.displaySelectAnotherService = false;\r\n this.displaySelectedService2 = true;\r\n this.selectedService2 = this.service;\r\n this.numberOfServices = 2;\r\n }\r\n },\r\n selectAnotherService() {\r\n this.service = \"\";\r\n this.serviceType = \"\";\r\n this.disabledServiceType = false;\r\n this.displaySelectAnotherService = false;\r\n this.disabledContinue = true;\r\n // this.displayRemoveServices = false;\r\n // this.$refs[\"refService\"].blur();\r\n },\r\n removeServices() {\r\n this.service = \"\";\r\n this.serviceType = \"\";\r\n this.disabledServiceType = false;\r\n this.displaySelectAnotherService = false;\r\n this.disabledContinue = true;\r\n this.displayRemoveServices = false;\r\n this.displaySelectedService = false;\r\n this.displaySelectedService2 = false;\r\n this.numberOfServices = 0;\r\n this.serviceTypes = this.serviceTypesGetter;\r\n this.clearSelectedServices();\r\n this.selectedService1 = \"\";\r\n this.selectedService2 = \"\";\r\n this.servicesRemoved = true;\r\n // this.$refs[\"refServiceType\"].blur();\r\n },\r\n },\r\n computed: {\r\n ...mapGetters([\"siteText\", \"isRTLLanguage\"]),\r\n ...mapGetters({ serviceTypesGetter: \"serviceTypes\" }),\r\n ...mapGetters(\"selectedService\", {\r\n numberOfServicesGetter: \"numberOfServices\",\r\n selectedService1Getter: \"selectedService1\",\r\n selectedService2Getter: \"selectedService2\",\r\n selectedServiceType1Getter: \"selectedServiceType1\",\r\n }),\r\n },\r\n mounted() {\r\n this.serviceTypes = this.serviceTypesGetter;\r\n this.numberOfServices = this.numberOfServicesGetter;\r\n this.selectedService1 = this.selectedService1Getter;\r\n this.selectedService2 = this.selectedService2Getter;\r\n this.selectedServiceType1 = this.selectedServiceType1Getter;\r\n this.setAvailableLocationsByCounty([]);\r\n if (typeof this.numberOfServices === \"undefined\") {\r\n this.numberOfServices = 0;\r\n }\r\n if (this.numberOfServices !== 0) {\r\n this.disabledServiceType = true;\r\n this.disabledService = true;\r\n this.disabledContinue = false;\r\n this.displayRemoveServices = true;\r\n }\r\n if (this.numberOfServices === 1) {\r\n this.displaySelectedService = true;\r\n this.displaySelectAnotherService = true;\r\n } else if (this.numberOfServices === 2) {\r\n this.displaySelectedService = true;\r\n this.displaySelectedService2 = true;\r\n }\r\n\r\n // common.updateSelectAriaLabel(\r\n // this.$refs.serviceCategorySelect,\r\n // \"Select a service category\"\r\n // );\r\n // common.updateSelectAriaLabel(this.$refs.serviceSelect, \"Select a service\");\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n\r\n.accessibility {\r\n font-weight: 1000;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectServicePage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectServicePage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectServicePage.vue?vue&type=template&id=776477e8&scoped=true&\"\nimport script from \"./SelectServicePage.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectServicePage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectServicePage.vue?vue&type=style&index=0&id=776477e8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"776477e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Date of Birth Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('div',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceSelectedService)+\" \")])]),_vm._v(_vm._s(_vm.selectedService1.Name)+\" \"),(_vm.displaySelectedService2)?_c('span',[_vm._v(\", \"+_vm._s(_vm.selectedService2.Name)+\" \")]):_vm._e()]),_c('p',[_vm._v(\" \"+_vm._s(_vm.selectedService1.AdditionalInfoText)+\" \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.selectedService1.Url}},[_vm._v(_vm._s(_vm.selectedService1.UrlText))])])]),(_vm.displaySelectedService2)?_c('div',[_c('p',[_vm._v(\" \"+_vm._s(_vm.selectedService2.AdditionalInfoText)+\" \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.selectedService2.Url}},[_vm._v(_vm._s(_vm.selectedService2.UrlText))])])]):_vm._e(),(_vm.displayDOB16YearsOldText)?_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOB16YearsOldText)+\" \")]):_vm._e(),(_vm.displayDOB18YearsOldText)?_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOB18YearsOldText)+\" \")]):_vm._e(),_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOBDateOfBirthLabel)+\" \")])]),_c('opus-select-only-drop-down',{attrs:{\"items\":_vm.months,\"select-name\":\"monthSelect\",\"item-label\":\"Text\",\"item-id\":\"Code\",\"place-holder\":_vm.siteText.ui.dOBDateOfBirthMonth,\"aria-label\":\"Select a month\"},model:{value:(_vm.month),callback:function ($$v) {_vm.month=$$v},expression:\"month\"}}),_c('p',[_vm._v(\" \")]),_c('opus-select-only-drop-down',{attrs:{\"items\":_vm.days,\"select-name\":\"daySelect\",\"item-label\":\"Text\",\"item-id\":\"Code\",\"place-holder\":_vm.siteText.ui.dOBDateOfBirthDay,\"aria-label\":\"Select a day\"},model:{value:(_vm.day),callback:function ($$v) {_vm.day=$$v},expression:\"day\"}}),_c('p',[_vm._v(\" \")]),_c('opus-select-only-drop-down',{attrs:{\"items\":_vm.years,\"select-name\":\"yearSelect\",\"item-label\":\"Text\",\"item-id\":\"Code\",\"place-holder\":_vm.siteText.ui.dOBDateOfBirthYear,\"aria-label\":\"Select a year\"},model:{value:(_vm.year),callback:function ($$v) {_vm.year=$$v},expression:\"year\"}}),_c('p',[_vm._v(\" \")]),(_vm.displayDateOfBirth)?_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('strong',[_vm._v(_vm._s(_vm.siteText.ui.dOBDateOfBirthSelected)+\" \"+_vm._s(_vm.month.Text)+\"/\"+_vm._s(_vm.day.Text)+\"/\"+_vm._s(_vm.year.Text)+\" \")])]):_vm._e(),(_vm.displayInvalidDOBMessage)?_c('p',{staticClass:\"red--text\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('strong',[_vm._v(_vm._s(_vm.siteText.errors.error))]),_vm._v(\" \"+_vm._s(_vm.siteText.errors.invalidDOBMessage)+\" \")]):_vm._e()],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOBBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":_vm.disableSubmit,\"aria-disabled\":_vm.disableSubmit},on:{\"click\":function($event){return _vm.dOBSubmit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOBSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":_vm.disableSubmit,\"aria-disabled\":_vm.disableSubmit},on:{\"click\":function($event){return _vm.dOBSubmit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOBSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.dOBBack)+\" \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Date of Birth Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <div :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <p><span><strong> {{ siteText.ui.serviceSelectedService }} </strong></span>{{ selectedService1.Name }}\r\n <span v-if=\"displaySelectedService2\">, {{ selectedService2.Name }} </span>\r\n </p>\r\n <p> {{ selectedService1.AdditionalInfoText }} \r\n <a\r\n target=\"_blank\"\r\n :href='selectedService1.Url'\r\n >{{ selectedService1.UrlText }}</a>\r\n </p>\r\n </div>\r\n <div v-if=\"displaySelectedService2\">\r\n <!-- <p><span><strong> {{ siteText.ui.serviceSelectedService2 }} </strong></span>{{ selectedService2.Name }}</p> -->\r\n <p> {{ selectedService2.AdditionalInfoText }} \r\n <a\r\n target=\"_blank\"\r\n :href='selectedService2.Url'\r\n >{{ selectedService2.UrlText }}</a>\r\n </p>\r\n </div>\r\n <!-- TODO: Refactor the following to replace text based on the MinimumAge property of the selected service -->\r\n <p v-if=\"displayDOB16YearsOldText\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\"> {{ siteText.ui.dOB16YearsOldText }} </p>\r\n <p v-if=\"displayDOB18YearsOldText\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\"> {{ siteText.ui.dOB18YearsOldText }} </p>\r\n <p :class=\"isRTLLanguage ? 'rtl' : 'normal'\"><strong> {{ siteText.ui.dOBDateOfBirthLabel }} </strong></p>\r\n <!-- <v-select :label=\"siteText.ui.dOBDateOfBirthMonth\" :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n :items=\"months\" item-text=\"Text\" item-value=\"Code\" v-model=\"month\" filled dense\r\n ></v-select> -->\r\n <!-- <vc-select class=\"vc-select bold\" :searchable=\"false\" :clearable=\"false\" :options=\"months\" \r\n label=\"Text\" value=\"Code\" v-model=\"month\" >\r\n </vc-select> -->\r\n <opus-select-only-drop-down\r\n :items=\"months\"\r\n select-name=\"monthSelect\"\r\n item-label=\"Text\"\r\n item-id=\"Code\"\r\n :place-holder=\"siteText.ui.dOBDateOfBirthMonth\"\r\n aria-label=\"Select a month\"\r\n v-model=\"month\"\r\n >\r\n </opus-select-only-drop-down>\r\n <p> </p>\r\n <!-- <v-select :label=\"siteText.ui.dOBDateOfBirthDay\" :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n :items=\"days\" item-text=\"Text\" item-value=\"Code\" v-model=\"day\" filled dense\r\n ></v-select> -->\r\n <!-- <vc-select class=\"vc-select bold\" :searchable=\"false\" :clearable=\"false\" :options=\"days\" \r\n label=\"Text\" value=\"Code\" v-model=\"day\" >\r\n </vc-select> -->\r\n <opus-select-only-drop-down\r\n :items=\"days\"\r\n select-name=\"daySelect\"\r\n item-label=\"Text\"\r\n item-id=\"Code\"\r\n :place-holder=\"siteText.ui.dOBDateOfBirthDay\"\r\n aria-label=\"Select a day\"\r\n v-model=\"day\"\r\n >\r\n </opus-select-only-drop-down>\r\n <p> </p>\r\n <!-- <v-select :label=\"siteText.ui.dOBDateOfBirthYear\" :class=\"{'v-text-field--reverse': isRTLLanguage }\"\r\n :items=\"years\" item-text=\"Text\" item-value=\"Code\" v-model=\"year\" filled dense\r\n ></v-select> -->\r\n <!-- <vc-select class=\"vc-select bold\" :searchable=\"false\" :clearable=\"false\" :options=\"years\" \r\n label=\"Text\" value=\"Code\" v-model=\"year\" >\r\n </vc-select> -->\r\n <opus-select-only-drop-down\r\n :items=\"years\"\r\n select-name=\"yearSelect\"\r\n item-label=\"Text\"\r\n item-id=\"Code\"\r\n :place-holder=\"siteText.ui.dOBDateOfBirthYear\"\r\n aria-label=\"Select a year\"\r\n v-model=\"year\"\r\n >\r\n </opus-select-only-drop-down>\r\n <p> </p>\r\n <p v-if=\"displayDateOfBirth\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\"><strong>{{ siteText.ui.dOBDateOfBirthSelected }} {{ month.Text }}/{{ day.Text }}/{{ year.Text }} </strong></p>\r\n <p class=\"red--text\" v-if=\"displayInvalidDOBMessage\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\"><strong>{{ siteText.errors.error }}</strong> {{ siteText.errors.invalidDOBMessage }} </p>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.dOBBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"disableSubmit\"\r\n :aria-disabled=\"disableSubmit\"\r\n @click=\"dOBSubmit()\"\r\n >\r\n {{ siteText.ui.dOBSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- Mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n :disabled=\"disableSubmit\"\r\n :aria-disabled=\"disableSubmit\"\r\n @click=\"dOBSubmit()\"\r\n >\r\n {{ siteText.ui.dOBSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.dOBBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport OpusSelectOnlyDropDown from \"@/components/OpusSelectOnlyDropDown.vue\";\r\n\r\nexport default {\r\n name: 'DateOfBirthPage',\r\n data: () => ({\r\n months: [\r\n { Code: '01', Text: '01'},\r\n { Code: '02', Text: '02'},\r\n { Code: '03', Text: '03'},\r\n { Code: '04', Text: '04'},\r\n { Code: '05', Text: '05'},\r\n { Code: '06', Text: '06'},\r\n { Code: '07', Text: '07'},\r\n { Code: '08', Text: '08'},\r\n { Code: '09', Text: '09'},\r\n { Code: '10', Text: '10'},\r\n { Code: '11', Text: '11'},\r\n { Code: '12', Text: '12'},\r\n ],\r\n month: '',\r\n days: [\r\n { Code: '01', Text: '01'},\r\n { Code: '02', Text: '02'},\r\n { Code: '03', Text: '03'},\r\n { Code: '04', Text: '04'},\r\n { Code: '05', Text: '05'},\r\n { Code: '06', Text: '06'},\r\n { Code: '07', Text: '07'},\r\n { Code: '08', Text: '08'},\r\n { Code: '09', Text: '09'},\r\n { Code: '10', Text: '10'},\r\n { Code: '11', Text: '11'},\r\n { Code: '12', Text: '12'},\r\n { Code: '13', Text: '13'},\r\n { Code: '14', Text: '14'},\r\n { Code: '15', Text: '15'},\r\n { Code: '16', Text: '16'},\r\n { Code: '17', Text: '17'},\r\n { Code: '18', Text: '18'},\r\n { Code: '19', Text: '19'},\r\n { Code: '20', Text: '20'},\r\n { Code: '21', Text: '21'},\r\n { Code: '22', Text: '22'},\r\n { Code: '23', Text: '23'},\r\n { Code: '24', Text: '24'},\r\n { Code: '25', Text: '25'},\r\n { Code: '26', Text: '26'},\r\n { Code: '27', Text: '27'},\r\n { Code: '28', Text: '28'},\r\n { Code: '29', Text: '29'},\r\n { Code: '30', Text: '30'},\r\n { Code: '31', Text: '31'},\r\n ],\r\n day: '',\r\n year: '',\r\n service1DOB16: false,\r\n service1DOB18: false,\r\n service2DOB16: false,\r\n service2DOB18: false,\r\n }),\r\n components: {\r\n OpusSelectOnlyDropDown,\r\n },\r\n methods: {\r\n ...mapActions(['dateOfBirth']),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n this.$emit('navigateTo', 'SelectServicePage', { \r\n pageName:'Select Service for Reservation'\r\n });\r\n },\r\n dOBSubmit() {\r\n this.dateOfBirth(this.formattedDateOfBirth);\r\n console.log(this.formattedDateOfBirth);\r\n this.$emit('navigateTo', 'SelectLocationCountyPage', { \r\n pageName:'Select DMV Office Location'\r\n });\r\n },\r\n },\r\n computed: {\r\n ...mapGetters(['siteText', 'isRTLLanguage']),\r\n ...mapGetters('selectedService', [\r\n 'numberOfServices',\r\n 'selectedService1',\r\n 'selectedService2'\r\n ]),\r\n displaySelectedService2() {\r\n if (this.numberOfServices === 2) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n //TODO: refactor the following to use selectedService1.MinimumAge and selectedService2.MinimumAge\r\n displayDOB16YearsOldText() {\r\n if (this.numberOfServices === 1 && !this.service1DOB18) {\r\n return true;\r\n }\r\n if (this.numberOfServices === 2 && (!this.service1DOB18 && !this.service2DOB18)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n displayDOB18YearsOldText() {\r\n if (this.numberOfServices === 1 && this.service1DOB18) {\r\n return true;\r\n }\r\n if (this.numberOfServices === 2 && (this.service1DOB18 || this.service2DOB18)) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n years() {\r\n const d = new Date();\r\n let currentYear = d.getFullYear();\r\n let currentMonth = d.getMonth();\r\n // Subtract 15, instead of 16, if birth month is December because 30 days within birth date makes year to be next year\r\n // Else, subtract 16\r\n let yearUpper;\r\n let arraySize;\r\n if (currentMonth === 11) {\r\n yearUpper = currentYear - 15 + 1;\r\n arraySize = 99 - 15 + 1;\r\n if (this.service1DOB18) {\r\n yearUpper = currentYear - 17 + 1;\r\n arraySize = 99 - 17 + 1;\r\n }\r\n if (this.numberOfServices === 2 && this.service2DOB18) {\r\n yearUpper = currentYear - 17 + 1;\r\n arraySize = 99 - 17 + 1;\r\n }\r\n } else {\r\n yearUpper = currentYear - 16 + 1;\r\n arraySize = 99 - 16 + 1;\r\n if (this.service1DOB18) {\r\n yearUpper = currentYear - 18 + 1;\r\n arraySize = 99 - 18 + 1;\r\n }\r\n if (this.numberOfServices === 2 && this.service2DOB18) {\r\n yearUpper = currentYear - 18 + 1;\r\n arraySize = 99 - 18 + 1;\r\n }\r\n }\r\n console.log(currentYear);\r\n console.log(yearUpper);\r\n let yearsArray = new Array(arraySize);\r\n for (let i = currentYear - 99; i < yearUpper; i += 1) {\r\n yearsArray[i] = { Code: i, Text: i.toString() };\r\n }\r\n return yearsArray.reverse();\r\n },\r\n displayDateOfBirth() {\r\n if (this.month.Code !== '' && this.month.Code !== undefined\r\n && this.day.Code !== '' && this.day.Code !== undefined\r\n && this.year.Code !== '' && this.year.Code !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n displayInvalidDOBMessage() {\r\n if (this.month.Code !== '' && this.day.Code !== '' && this.year.Code !== '') {\r\n const dToday = new Date();\r\n const dBirthDay = new Date(this.year.Code, this.month.Code - 1, this.day.Code);\r\n let age = 16;\r\n if (this.service1DOB18) {\r\n age = 18;\r\n }\r\n if (this.numberOfServices === 2 && this.service2DOB18) {\r\n age = 18;\r\n }\r\n const dAge = new Date(dToday.getFullYear() - age, dToday.getMonth(), dToday.getDate());\r\n console.log(dAge.getTime());\r\n console.log(dBirthDay.getTime());\r\n console.log(dAge.getMonth() + ' ' + dAge.getDate() + ' ' + dAge.getFullYear());\r\n console.log(dBirthDay.getMonth() + ' ' + dBirthDay.getDate() + ' ' + dBirthDay.getFullYear());\r\n // older is smaller, younger is bigger\r\n // getTime() returns the number of milliseconds since January 1, 1970:\r\n // as of 11/07/2022 for today it is about 1667846696170 milliseconds\r\n if (dAge.getTime() + 30 * 24 * 60 * 60 * 1000 < dBirthDay.getTime()) {\r\n console.log('dAge + 30 days < dBirthDay');\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n disableSubmit() {\r\n if (this.displayDateOfBirth && !this.displayInvalidDOBMessage) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n formattedDateOfBirth() {\r\n return `${this.month.Text}/${this.day.Text}/${this.year.Text}`;\r\n }\r\n },\r\n mounted() {\r\n if (this.selectedService1.MinimumAge === 16) {\r\n this.service1DOB16 = true;\r\n } else if (this.selectedService1.MinimumAge === 18) {\r\n this.service1DOB18 = true;\r\n }\r\n if (this.selectedService2.MinimumAge === 16) {\r\n this.service2DOB16 = true;\r\n } else if (this.selectedService2.MinimumAge === 18) {\r\n this.service2DOB18 = true;\r\n }\r\n console.log(this.service1DOB16);\r\n console.log(this.service1DOB18);\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateOfBirthPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateOfBirthPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DateOfBirthPage.vue?vue&type=template&id=8b8a622c&scoped=true&\"\nimport script from \"./DateOfBirthPage.vue?vue&type=script&lang=js&\"\nexport * from \"./DateOfBirthPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DateOfBirthPage.vue?vue&type=style&index=0&id=8b8a622c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8b8a622c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Search Location Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationPageHeader)+\" \")]),_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('div',[_c('p',[_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.serviceSelectedService)+\" \")])]),_vm._v(_vm._s(_vm.selectedService1.Name)+\" \"),(_vm.displaySelectedService2)?_c('span',[_vm._v(\", \"+_vm._s(_vm.selectedService2.Name)+\" \")]):_vm._e()])]),_c('p',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationLabel)+\" \")])]),_c('p',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationInfoText)+\" \")]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.siteText.ui.searchLocationInstruction)}}),_c('v-combobox',{attrs:{\"label\":_vm.siteText.ui.searchLocationCityLabel,\"clearable\":\"\",\"filled\":\"\",\"dense\":\"\",\"items\":_vm.cityList,\"search-input\":_vm.citySearch,\"item-text\":\"Name\",\"item-value\":\"Name\"},on:{\"update:searchInput\":function($event){_vm.citySearch=$event},\"update:search-input\":function($event){_vm.citySearch=$event}},model:{value:(_vm.cityName),callback:function ($$v) {_vm.cityName=$$v},expression:\"cityName\"}}),_c('p',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationOrText)+\" \")])]),_c('v-text-field',{attrs:{\"label\":_vm.siteText.ui.searchLocationZipCodeLabel,\"clearable\":\"\",\"mask\":\"#####\",\"placeholder\":\"#####\",\"maxlength\":\"5\",\"inputmode\":\"numeric\",\"filled\":\"\",\"dense\":\"\"},on:{\"keypress\":_vm.isNumber},model:{value:(_vm.zipCode),callback:function ($$v) {_vm.zipCode=$$v},expression:\"zipCode\"}}),_c('p',[_c('a',{staticClass:\"text-decoration-underline\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.seeAllLocations()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationSeeAll)+\" \")])]),_c('p'),(_vm.errorMessage)?_c('span',{staticClass:\"red--text\",staticStyle:{\"font-size\":\"14px\"}},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.searchLocationSubmit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.searchLocationSubmit()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationSubmit)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.searchLocationBack)+\" \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Search Location Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\">\r\n {{ siteText.ui.searchLocationPageHeader }}\r\n </h2>\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <div>\r\n <p><span><strong> {{ siteText.ui.serviceSelectedService }} </strong></span>{{ selectedService1.Name }}\r\n <span v-if=\"displaySelectedService2\">, {{ selectedService2.Name }} </span>\r\n </p>\r\n <!-- <p> {{ selectedService1.AdditionalInfoText }} \r\n <a\r\n target=\"_blank\"\r\n :href='selectedService1.Url'\r\n >{{ selectedService1.UrlText }}</a>\r\n </p> -->\r\n </div>\r\n <!-- <div v-if=\"displaySelectedService2\">\r\n <p>{{ selectedService2.Name }}</p>\r\n <p> {{ selectedService2.AdditionalInfoText }} \r\n <a\r\n target=\"_blank\"\r\n :href='selectedService2.Url'\r\n >{{ selectedService2.UrlText }}</a>\r\n </p>\r\n </div> -->\r\n <p><strong> {{ siteText.ui.searchLocationLabel }} </strong></p>\r\n <p> {{ siteText.ui.searchLocationInfoText }} </p>\r\n <p v-html=\"siteText.ui.searchLocationInstruction\"></p>\r\n <v-combobox\r\n :label=\"siteText.ui.searchLocationCityLabel\"\r\n clearable\r\n filled\r\n dense\r\n :items=\"cityList\"\r\n :search-input.sync=\"citySearch\"\r\n item-text=\"Name\"\r\n item-value=\"Name\"\r\n v-model=\"cityName\"\r\n ></v-combobox>\r\n <p><strong> {{ siteText.ui.searchLocationOrText }} </strong></p>\r\n <v-text-field\r\n :label=\"siteText.ui.searchLocationZipCodeLabel\"\r\n clearable\r\n v-model=\"zipCode\"\r\n mask=\"#####\"\r\n placeholder=\"#####\"\r\n maxlength=\"5\"\r\n inputmode=\"numeric\"\r\n @keypress=\"isNumber\"\r\n filled\r\n dense\r\n ></v-text-field>\r\n <p>\r\n <a\r\n href=\"#\"\r\n class=\"text-decoration-underline\" \r\n @click=\"seeAllLocations()\">\r\n {{ siteText.ui.searchLocationSeeAll }}\r\n </a>\r\n </p>\r\n <p></p>\r\n <!-- <p> {{ siteText.ui.searchLocationSeeAllText }} </p> -->\r\n <span class=\"red--text\" style=\"font-size:14px\" v-if=\"errorMessage\">{{ errorMessage }}</span>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.searchLocationBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"searchLocationSubmit()\"\r\n >\r\n {{ siteText.ui.searchLocationSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- Mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"searchLocationSubmit()\"\r\n >\r\n {{ siteText.ui.searchLocationSubmit }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.searchLocationBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\n\r\nexport default {\r\n name: 'SearchLocationPage',\r\n data: () => ({\r\n cityName: '',\r\n zipCode: '',\r\n errorMessage:'',\r\n citySearch: null,\r\n }),\r\n methods: {\r\n ...mapActions({\r\n navToSelectAllLocationsPageAction: 'navToSelectAllLocationsPage'\r\n }),\r\n ...mapActions(['getAvailableLocations']),\r\n ...mapActions({setCity:'city'}),\r\n ...mapActions({setZip: 'zip'}),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n const backPage = !this.reschedule ? 'SelectServicePage' : 'RescheduleReservationPage';\r\n const pageName = !this.reschedule ? 'Select Service for Reservation' : 'Current Reservation';\r\n this.$emit('navigateTo', backPage, { \r\n pageName:pageName\r\n });\r\n },\r\n async searchLocationSubmit() {\r\n this.errorMessage = '';\r\n console.log(this.cityName, this.zipCode, this.serviceTypeForLookUp);\r\n const cityName = this.cityName ? this.cityName.Name : '';\r\n if(!this.cityName && !this.zipCode) {\r\n this.errorMessage = this.siteText.errors.provideCityOrZip;\r\n return;\r\n }\r\n \r\n const serviceTypeId = this.selectedService1.TypeId;\r\n const serviceTypeId2 = this.selectedService2.TypeId;\r\n\r\n const success = await this.getAvailableLocations({city: cityName, zip: this.zipCode, serviceTypeId: serviceTypeId, serviceTypeId2: serviceTypeId2});\r\n if(success)\r\n {\r\n this.setCity(cityName);\r\n this.setZip(this.zipCode);\r\n \r\n this.$emit('navigateTo', 'SelectLocationPage', { \r\n pageName:'Select Reservation Location'\r\n });\r\n } else {\r\n const searchValue = !this.cityName || this.cityName == '' ? this.zipCode : this.cityName.Name;\r\n this.errorMessage = this.siteText.errors.noAvailabilitySearchLocations.replace(\"CITY_ZIP\", searchValue);\r\n }\r\n\r\n },\r\n seeAllLocations() {\r\n this.navToSelectAllLocationsPageAction({ value: 'SearchLocationPage' });\r\n this.$emit('navigateTo', 'SelectAllLocationsPage', { \r\n pageName:'Select Reservation Location'\r\n });\r\n },\r\n isNumber(e) {\r\n if (e.keyCode >= 48 && e.keyCode <= 57) {\r\n // Number\r\n return true;\r\n }\r\n return e.preventDefault();\r\n },\r\n },\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['cities']),\r\n ...mapGetters('selectedService', [\r\n 'numberOfServices',\r\n 'selectedService1',\r\n 'selectedService2',\r\n 'serviceTypeForLookUp'\r\n ]),\r\n ...mapGetters(['reschedule','city','zip']),\r\n displaySelectedService2() {\r\n if (this.numberOfServices === 2) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n cityList() {\r\n let citySearch = this.citySearch ? this.citySearch.replace(\" \", \"\") : null;\r\n return !citySearch || citySearch === \"\" ? null : this.cities;\r\n }\r\n },\r\n mounted() {\r\n this.zipCode = this.zip;\r\n if(this.city) {\r\n this.cityName = this.cities.find(element=>element.Name === this.city);\r\n } \r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchLocationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchLocationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchLocationPage.vue?vue&type=template&id=73af4d8c&scoped=true&\"\nimport script from \"./SearchLocationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchLocationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchLocationPage.vue?vue&type=style&index=0&id=73af4d8c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73af4d8c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Select Location Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationPageHeader)+\" \")]),_c('p',{staticClass:\"text-h8\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationPageSubHeader)+\" \")]),_c('p',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationLocations)+\" \")])]),_c('p',[_vm._v(\" \"+_vm._s(_vm.availableLocations.length)+\" \"+_vm._s(_vm.siteText.ui.selectLocationNumberOfLocations)+\" \"+_vm._s(_vm.searchValue)+\" \")]),_vm._l((_vm.availableLocations),function(location){return _c('div',{key:location.Id},[_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('p',[_vm._v(\" \"+_vm._s(location.Name)+\" \"),_c('br'),_vm._v(\" \"+_vm._s(location.Address)+\" \"),_c('br'),_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationNextDate)+\" \"+_vm._s(location.NextAvailableDate)+\" \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationOfficeDistance)+\" \"+_vm._s(location.Distance)+\" mi \"),_c('br')]),_c('v-layout',{staticClass:\"mt-n1 mb-n1\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"text-left dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.selectThisLocation(location)}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationSelectButton)+\" \")])],1)],1)],1)],1),_c('p')],1)}),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.seeAllLocations()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationSeeAllLocations)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.seeAllLocations()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationSeeAllLocations)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationBack)+\" \")],1)],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Select Location Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\">\r\n {{ siteText.ui.selectLocationPageHeader }}\r\n </h2>\r\n <p class=\"text-h8\">\r\n {{ siteText.ui.selectLocationPageSubHeader }}\r\n </p>\r\n <p><strong> {{ siteText.ui.selectLocationLocations }} </strong></p>\r\n <p> {{ availableLocations.length }} {{ siteText.ui.selectLocationNumberOfLocations }} {{searchValue}} </p>\r\n <div v-for=\"location in availableLocations\" :key=\"location.Id\">\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <p>\r\n {{location.Name}} <br/>\r\n {{location.Address}} <br/>\r\n <strong> {{ siteText.ui.selectLocationNextDate }} {{ location.NextAvailableDate }} </strong> <br/>\r\n {{ siteText.ui.selectLocationOfficeDistance }} {{ location.Distance }} mi <br/>\r\n </p>\r\n <v-layout row wrap class=\"mt-n1 mb-n1\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"text-left dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"selectThisLocation(location)\"\r\n >\r\n {{ siteText.ui.selectLocationSelectButton }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n </div>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.selectLocationBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"seeAllLocations()\"\r\n >\r\n {{ siteText.ui.selectLocationSeeAllLocations }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- Mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"seeAllLocations()\"\r\n >\r\n {{ siteText.ui.selectLocationSeeAllLocations }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.selectLocationBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from 'vuex';\r\n\r\nexport default {\r\n name: 'SelectLocationPage',\r\n methods: {\r\n ...mapActions({\r\n navToSelectAllLocationsPageAction: 'navToSelectAllLocationsPage',\r\n navToSelectDateTimePageAction: 'navToSelectDateTimePage',\r\n }),\r\n ...mapActions(['selectLocation']),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n this.$emit('navigateTo', 'SearchLocationPage', { \r\n pageName:'Choose a Reservation Location'\r\n });\r\n },\r\n selectThisLocation(location) {\r\n this.selectLocation(location);\r\n this.navToSelectDateTimePageAction({ value: 'SelectLocationPage' });\r\n this.$emit('navigateTo', 'SelectDateTimePage', { \r\n pageName:'Select Reservation Date and Time'\r\n });\r\n },\r\n seeAllLocations() {\r\n this.navToSelectAllLocationsPageAction({ value: 'SelectLocationPage' });\r\n this.$emit('navigateTo', 'SelectAllLocationsPage', { \r\n pageName:'Select Reservation Location'\r\n });\r\n },\r\n },\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['availableLocations']),\r\n ...mapGetters(['city']), \r\n ...mapGetters(['zip']),\r\n searchValue() {\r\n let searchValue = this.city;\r\n if(this.zip) {\r\n searchValue = this.zip;\r\n }\r\n return searchValue;\r\n }\r\n },\r\n mounted() {\r\n console.log(this.availableLocations);\r\n }\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectLocationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectLocationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectLocationPage.vue?vue&type=template&id=4ab404c4&scoped=true&\"\nimport script from \"./SelectLocationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectLocationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectLocationPage.vue?vue&type=style&index=0&id=4ab404c4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ab404c4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mx-auto\",attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Select DMV Office Location Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationSelectDMVLocation)+\" \")]),_c('div',{staticClass:\"pb-2\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectLocationpleaseSelectaPreferedLocation)+\" \")]),(_vm.errorMessage)?_c('div',[_c('p',{staticClass:\"red--text\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]):_vm._e(),_c('div',{staticClass:\"location-container px-4\"},[_c('v-expansion-panels',_vm._l((_vm.locationCounties),function(county){return _c('v-expansion-panel',{key:county.CountyId,staticClass:\"panel-margin\"},[_c('v-expansion-panel-header',{staticClass:\"white--text public-h6\",class:_vm.isRTLLanguage ? 'rtl' : 'normal',attrs:{\"hide-actions\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ open }){return [_c('div',{class:_vm.isRTLLanguage ? 'right' : '',staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(_vm.formatCountyName(county.County))+\" \")]),_c('div',[_c('v-icon',{attrs:{\"color\":\"white\"}},[(open)?[_vm._v(\"mdi-minus\")]:[_vm._v(\"mdi-plus\")]],2)],1)]}}],null,true)}),_c('v-expansion-panel-content',{staticClass:\"mt-5\",class:_vm.isRTLLanguage ? 'right' : ''},_vm._l((county.Locations),function(location){return _c('v-card',{key:location.Id,staticClass:\"mb-5\"},[_c('v-card-text',[_c('div',{staticClass:\"pb-1 font-weight-bold\"},[_vm._v(\" \"+_vm._s(location.Name)+\" \")]),_c('div',{staticClass:\"pb-2\"},[_vm._v(_vm._s(location.Address))])]),_c('v-btn',{staticClass:\"ma-2 dmv-btn loc-btn\",on:{\"click\":function($event){return _vm.onLocationSelected(location)}}},[_vm._v(_vm._s(_vm.siteText.ui.selectLocationSelect)+\" \"+_vm._s(location.Name))])],1)}),1)],1)}),1)],1),_c('div',{staticClass:\"text-left nav-div\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectAllLocationsBack)+\" \")],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\" class=\"mx-auto\">\r\n <span aria-label=\"Select DMV Office Location Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mb-5\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.selectLocationSelectDMVLocation }}\r\n </h2>\r\n <div class=\"pb-2\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.selectLocationpleaseSelectaPreferedLocation }}\r\n </div>\r\n <div v-if=\"errorMessage\">\r\n <p class=\"red--text\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ errorMessage }}\r\n </p>\r\n </div>\r\n <div class=\"location-container px-4\">\r\n <v-expansion-panels>\r\n <v-expansion-panel v-for=\"county in locationCounties\" :key=\"county.CountyId\" class=\"panel-margin\">\r\n <v-expansion-panel-header hide-actions class=\"white--text public-h6\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <template v-slot:default=\"{ open }\">\r\n <div style=\"width: 100%\" :class=\"isRTLLanguage ? 'right' : ''\">\r\n {{ formatCountyName(county.County) }}\r\n </div>\r\n <div>\r\n <v-icon color=\"white\">\r\n <template v-if=\"open\">mdi-minus</template>\r\n <template v-else>mdi-plus</template>\r\n </v-icon>\r\n </div>\r\n </template>\r\n </v-expansion-panel-header>\r\n <v-expansion-panel-content class=\"mt-5\" :class=\"isRTLLanguage ? 'right' : ''\">\r\n <v-card class=\"mb-5\" v-for=\"location in county.Locations\" :key=\"location.Id\">\r\n <v-card-text>\r\n <div class=\"pb-1 font-weight-bold\">\r\n {{ location.Name }}\r\n </div>\r\n <div class=\"pb-2\">{{ location.Address }}</div>\r\n <!-- <div>\r\n {{ siteText.ui.selectLocationNextDate }}\r\n {{ location.NextAvailableDate }}\r\n </div> -->\r\n <!-- <div class=\"pt-4\"> -->\r\n <!-- </div> -->\r\n </v-card-text>\r\n <v-btn class=\"ma-2 dmv-btn loc-btn\" @click=\"onLocationSelected(location)\">{{\r\n siteText.ui.selectLocationSelect }}\r\n {{ location.Name }}</v-btn>\r\n </v-card>\r\n </v-expansion-panel-content>\r\n </v-expansion-panel>\r\n </v-expansion-panels>\r\n </div>\r\n <div class=\"text-left nav-div\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn class=\"ma-2 dmv-btn\" height=\"45px\" width=\"260px\" @click=\"back()\"><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.selectAllLocationsBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nexport default {\r\n data: () => ({\r\n locationCounties: [],\r\n errorMessage: \"\",\r\n }),\r\n computed: {\r\n ...mapGetters([\r\n \"siteText\",\r\n \"reschedule\",\r\n \"availableLocationsByCounty\",\r\n \"availableLocationsByCounty\",\r\n ]),\r\n ...mapGetters(\"selectedService\", [\r\n \"selectedServiceTypeId\",\r\n \"selectedServiceTypeId2\",\r\n ]),\r\n ...mapGetters([\"isRTLLanguage\"]),\r\n },\r\n methods: {\r\n ...mapActions([\r\n \"getLocationsByCountyWithServiceType\",\r\n \"selectLocation\",\r\n \"setAvailableLocationsByCounty\",\r\n \"setAvailableLocationsByCounty\",\r\n ]),\r\n onLocationSelected(location) {\r\n console.log(location);\r\n this.selectLocation(location);\r\n this.$emit(\"navigateTo\", \"SelectDateTimePage\", {\r\n pageName: \"Select Reservation Date and Time\",\r\n });\r\n },\r\n formatCountyName(county) {\r\n let newCounty = county + \" County\";\r\n const firstParen = county.indexOf(\"(\");\r\n if (firstParen > 0) {\r\n newCounty =\r\n county.substring(0, firstParen) +\r\n \"County \" +\r\n county.substring(firstParen, county.length);\r\n }\r\n return newCounty;\r\n },\r\n back() {\r\n const backPage = !this.reschedule\r\n ? \"SelectServicePage\"\r\n : \"RescheduleReservationPage\";\r\n const pageName = !this.reschedule\r\n ? \"Select Service for Reservation\"\r\n : \"Current Reservation\";\r\n this.$emit(\"navigateTo\", backPage, {\r\n pageName: pageName,\r\n });\r\n },\r\n },\r\n async mounted() {\r\n //Get all locations with selected service type//\r\n this.errorMessage = \"\";\r\n if (\r\n !this.availableLocationsByCounty ||\r\n this.availableLocationsByCounty.length === 0\r\n ) {\r\n const typeId = this.selectedServiceTypeId;\r\n const typeId2 = this.selectedServiceTypeId2;\r\n try {\r\n const locationCounties = await this.getLocationsByCountyWithServiceType(\r\n { serviceTypeId: typeId, serviceTypeId2: typeId2 }\r\n );\r\n console.log(locationCounties);\r\n this.locationCounties = locationCounties;\r\n this.setAvailableLocationsByCounty(locationCounties);\r\n\r\n if (this.locationCounties.length <= 0) {\r\n this.errorMessage = this.siteText.errors.noAvailability;\r\n }\r\n } catch {\r\n this.errorMessage = \"Failed to retrieve available locations.\";\r\n }\r\n } else {\r\n this.locationCounties = this.availableLocationsByCounty;\r\n }\r\n },\r\n};\r\n</script>\r\n\r\n<style>\r\n.panel-margin {\r\n margin-top: 15px !important;\r\n}\r\n\r\n.v-expansion-panel-header {\r\n border-top-right-radius: 4px !important;\r\n border-top-left-radius: 4px !important;\r\n}\r\n\r\n.nav-div {\r\n padding-top: 100px;\r\n margin-left: 20px;\r\n}\r\n\r\n.loc-btn {\r\n height: 45px;\r\n max-width: 350px !important;\r\n}\r\n\r\n@media screen and (max-width: 400px) {\r\n .loc-btn {\r\n width: 230px !important;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectLocationCountyPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectLocationCountyPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectLocationCountyPage.vue?vue&type=template&id=30c55d14&\"\nimport script from \"./SelectLocationCountyPage.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectLocationCountyPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectLocationCountyPage.vue?vue&type=style&index=0&id=30c55d14&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Select All Locations Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectAllLocationsPageHeader)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectAllLocationsPageSubHeader)+\" \")]),_c('v-card',[_c('v-card-text',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectAllLocationsLocations)+\" \")])]),_c('v-card-text',{staticClass:\"centerContainer\"},[_c('v-row',[_c('v-select',{attrs:{\"label\":_vm.siteText.ui.selectAllLocationsSelectLocation,\"filled\":\"\",\"items\":_vm.locations,\"item-text\":\"Name\",\"dense\":\"\",\"return-object\":\"\"},on:{\"change\":_vm.locationChange},model:{value:(_vm.location),callback:function ($$v) {_vm.location=$$v},expression:\"location\"}})],1)],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-4\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectAllLocationsBack)+\" \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Select All Locations Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\">\r\n {{ siteText.ui.selectAllLocationsPageHeader }}\r\n </h2>\r\n <p class=\"text-h8 font-weight-bold\">\r\n {{ siteText.ui.selectAllLocationsPageSubHeader }}\r\n </p>\r\n <v-card>\r\n <v-card-text>\r\n <strong> {{ siteText.ui.selectAllLocationsLocations }} </strong>\r\n </v-card-text>\r\n <v-card-text class=\"centerContainer\">\r\n <v-row>\r\n <v-select\r\n :label=\"siteText.ui.selectAllLocationsSelectLocation\"\r\n filled\r\n :items=\"locations\"\r\n item-text=\"Name\"\r\n v-model=\"location\"\r\n @change=\"locationChange\"\r\n dense\r\n return-object\r\n ></v-select>\r\n </v-row>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-4\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.selectAllLocationsBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex';\r\n\r\nexport default {\r\n name: 'SelectAllLocationsPage',\r\n data: () => ({\r\n locations: [],\r\n location: '',\r\n }),\r\n methods: {\r\n ...mapActions(['getLocationsWithServiceType']),\r\n ...mapActions(['selectLocation']),\r\n ...mapActions({\r\n navToSelectDateTimePageAction: 'navToSelectDateTimePage',\r\n }),\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n back() {\r\n if (this.navToSelectAllLocationsPage === 'SelectLocationPage') {\r\n this.$emit('navigateTo', 'SelectLocationPage', { \r\n pageName:'Select Reservation Location'\r\n });\r\n } else if (this.navToSelectAllLocationsPage === 'SearchLocationPage') {\r\n this.$emit('navigateTo', 'SearchLocationPage', { \r\n pageName:'Choose a Reservation Location'\r\n });\r\n }\r\n },\r\n locationChange() {\r\n console.log(this.location);\r\n this.selectLocation(this.location);\r\n this.navToSelectDateTimePageAction({ value: 'SelectAllLocationsPage' });\r\n this.$emit('navigateTo', 'SelectDateTimePage', { \r\n pageName:'Select Reservation Date and Time'\r\n });\r\n },\r\n },\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['navToSelectAllLocationsPage']),\r\n ...mapGetters('selectedService', ['selectedServiceTypeId', 'selectedServiceTypeId2']),\r\n },\r\n async mounted() {\r\n //Get all locations with selected service type//\r\n const typeId = this.selectedServiceTypeId;\r\n const typeId2 = this.selectedServiceTypeId2;\r\n const locations = await this.getLocationsWithServiceType({serviceTypeId:typeId, serviceTypeId2:typeId2});\r\n console.log(locations);\r\n this.locations = locations;\r\n }\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectAllLocationsPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectAllLocationsPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectAllLocationsPage.vue?vue&type=template&id=4ef126c9&scoped=true&\"\nimport script from \"./SelectAllLocationsPage.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectAllLocationsPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectAllLocationsPage.vue?vue&type=style&index=0&id=4ef126c9&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ef126c9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Select Date Time Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimePageHeader)+\" \")]),_c('p',{staticClass:\"text-h8 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimePageSubHeader)+\" \")]),_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimeSelectADate)+\" \")])]),_c('div',{style:(_vm.isRTLLanguage ? 'text-align:right' : '')},[_c('div',[_c('v-layout',[_c('opus-calendar-date-picker',{staticClass:\"pb-4 mb-4\",attrs:{\"minDate\":_vm.minDate,\"maxDate\":_vm.maxDate,\"availableDates\":_vm.availableDates,\"locale\":_vm.language},on:{\"dateChanged\":_vm.onDateChanged,\"monthChanged\":_vm.onMonthChanged}})],1)],1),_c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"id\":\"contentUpdate\"},domProps:{\"value\":_vm.minDate}})])]),_c('opus-select-only-drop-down',{staticClass:\"mb-4 vue-select-up\",attrs:{\"items\":_vm.availableTimes,\"select-name\":\"timeSelect\",\"item-label\":\"FormattedTime\",\"item-id\":\"SlotId\",\"place-holder\":_vm.siteText.ui.selectDateTimeSelectATime,\"label\":_vm.siteText.ui.selectDateTimeTime,\"list-top\":true,\"disabled\":!this.selectedDate},on:{\"item:selected\":_vm.onTimeChange},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}}),_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',staticStyle:{\"line-height\":\"24px\"}},[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectedService)+\": \")]),_vm._v(\" \"+_vm._s(_vm.selectedService1.Name)+\" \"),_c('br'),(_vm.numberOfServices > 1)?_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectedService)+\": \")]),_vm._v(\" \"+_vm._s(_vm.selectedService2.Name)+\" \"),_c('br')]):_vm._e(),_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.location)+\": \")]),_vm._v(\" \"+_vm._s(_vm.selectedLocation.Name)+\", \"),_c('a',{attrs:{\"href\":_vm.selectedLocation.MapUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.selectedLocation.Address))]),_c('br'),(_vm.selectedDate)?_c('span',[_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.date)+\": \")]),_vm._v(\" \"+_vm._s(_vm.localeFormattedDate)+\" \"),_c('br'),(_vm.selectedTimeSlot)?_c('strong',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.time)+\": \")]):_vm._e(),(_vm.selectedTimeSlot)?_c('span',{staticClass:\"ltr-text-force\"},[_vm._v(\" \"+_vm._s(_vm.selectedFormattedAppointmentTime)+\" \")]):_vm._e()]):_vm._e()]),(_vm.reschedule && _vm.selectedTimeSlot)?_c('p',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.rescheduleMessage)+\" \")]):_vm._e(),(_vm.errorMessage)?_c('span',{staticClass:\"red--text\",staticStyle:{\"font-size\":\"14px\"}},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-md-4\"},[_c('v-layout',{staticClass:\"hidden-sm-and-down\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimeBack)+\" \")],1)],1),_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":!_vm.selectedTimeSlot,\"aria-disabled\":!_vm.selectedTimeSlot},on:{\"click\":function($event){return _vm.confirmReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimeConfirmReservation)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1)],1),_c('v-layout',{staticClass:\"hidden-md-and-up\",attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\",\"disabled\":!_vm.selectedTimeSlot,\"aria-disabled\":!_vm.selectedTimeSlot},on:{\"click\":function($event){return _vm.confirmReservation()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimeConfirmReservation)+\" \"),_c('v-icon',[_vm._v(\"mdi-arrow-right\")])],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.siteText.ui.selectDateTimeBack)+\" \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"monthView-container\"},[_c('div',{staticClass:\"month-name-container\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-btn',{staticClass:\"btn-cal\",attrs:{\"aria-label\":\"Previous Month\",\"disabled\":_vm.isMinMonth},on:{\"click\":_vm.onPreviousMonth}},[_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isMinMonth),expression:\"!isMinMonth\"}]},[_vm._v(\"mdi-arrow-left\")])],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"month-name public-h6\",attrs:{\"role\":\"alert\",\"aria-live\":\"assertive\",\"aria-label\":_vm.months[_vm.month] + ' ' + _vm.year}},[_vm._v(\" \"+_vm._s(_vm.months[_vm.month])+\" \"+_vm._s(_vm.year)+\" \")])]),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-btn',{staticClass:\"btn-cal\",attrs:{\"aria-label\":\"Next Month\",\"disabled\":_vm.isMaxMonth},on:{\"click\":_vm.onNextMonth}},[_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isMaxMonth),expression:\"!isMaxMonth\"}]},[_vm._v(\"mdi-arrow-right\")])],1)],1)],1)],1),_c('div',{staticClass:\"body-container\"},[_c('div',{staticClass:\"dayNames-container\"},_vm._l((_vm.dayNames),function(dayName,index){return _c('v-card',{key:_vm.year +\n '-' +\n _vm.months[_vm.month] +\n '-' +\n dayName +\n Math.random().toString(9).slice(2, 7),class:['dayName', dayName],attrs:{\"aria-label\":_vm.fullDayNames[index],\"role\":\"presentation\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(dayName))])])}),1),_c('div',{staticClass:\"dates-container\"},_vm._l((_vm.dates),function(date){return _c('v-card',{key:date.date,class:[\n 'date',\n _vm.dayNames[date.day],\n _vm.isDateSelected(date) ? 'selected-date' : '',\n ],style:(`grid-area: ${\n date.date > _vm.firstSatDate\n ? Math.ceil((date.date - _vm.firstSatDate) / 7) + 1\n : 1\n }/${date.day + 1}/span 1/span 1`),attrs:{\"disabled\":!date.isAvailable,\"role\":\"button\",\"title\":\"\",\"id\":date.date,\"aria-label\":date.ariaDate,\"aria-pressed\":_vm.isDateSelected(date)},on:{\"click\":function($event){return _vm.onDateChanged(date)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.onDateChanged(date)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _vm.onDateChanged(date)}]}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(_vm._s(date.date))])])}),1)]),_c('div')])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"monthView-container\">\r\n <div class=\"month-name-container\">\r\n <v-row>\r\n <v-col cols=\"3\"\r\n ><v-btn\r\n aria-label=\"Previous Month\"\r\n class=\"btn-cal\"\r\n :disabled=\"isMinMonth\"\r\n @click=\"onPreviousMonth\"\r\n ><v-icon v-show=\"!isMinMonth\">mdi-arrow-left</v-icon></v-btn\r\n ></v-col\r\n >\r\n <v-col cols=\"6\">\r\n <div\r\n class=\"month-name public-h6\"\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n :aria-label=\"months[month] + ' ' + year\"\r\n >\r\n {{ months[month] }} {{ year }}\r\n </div>\r\n </v-col>\r\n <v-col cols=\"3\"\r\n ><v-btn\r\n aria-label=\"Next Month\"\r\n class=\"btn-cal\"\r\n :disabled=\"isMaxMonth\"\r\n @click=\"onNextMonth\"\r\n ><v-icon v-show=\"!isMaxMonth\">mdi-arrow-right</v-icon></v-btn\r\n ></v-col\r\n >\r\n </v-row>\r\n </div>\r\n <div class=\"body-container\">\r\n <div class=\"dayNames-container\">\r\n <v-card\r\n v-for=\"(dayName, index) in dayNames\"\r\n :aria-label=\"fullDayNames[index]\"\r\n role=\"presentation\"\r\n :class=\"['dayName', dayName]\"\r\n :key=\"\r\n year +\r\n '-' +\r\n months[month] +\r\n '-' +\r\n dayName +\r\n Math.random().toString(9).slice(2, 7)\r\n \"\r\n >\r\n <span aria-hidden=\"true\">{{ dayName }}</span>\r\n </v-card>\r\n </div>\r\n <div class=\"dates-container\">\r\n <v-card\r\n @click=\"onDateChanged(date)\"\r\n @keydown.enter=\"onDateChanged(date)\"\r\n @keydown.space=\"onDateChanged(date)\"\r\n :disabled=\"!date.isAvailable\"\r\n role=\"button\"\r\n title\r\n v-for=\"date in dates\"\r\n :id=\"date.date\"\r\n :key=\"date.date\"\r\n :aria-label=\"date.ariaDate\"\r\n :aria-pressed=\"isDateSelected(date)\"\r\n :class=\"[\r\n 'date',\r\n dayNames[date.day],\r\n isDateSelected(date) ? 'selected-date' : '',\r\n ]\"\r\n :style=\"`grid-area: ${\r\n date.date > firstSatDate\r\n ? Math.ceil((date.date - firstSatDate) / 7) + 1\r\n : 1\r\n }/${date.day + 1}/span 1/span 1`\"\r\n >\r\n <span aria-hidden=\"true\">{{ date.date }}</span></v-card\r\n >\r\n </div>\r\n </div>\r\n <div></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nconst keys = { up: 38, down: 40, left: 37, right: 39 };\r\nexport default {\r\n props: [\"minDate\", \"maxDate\", \"availableDates\", \"locale\"],\r\n data() {\r\n return {\r\n months: [\r\n \"JANUARY\",\r\n \"FEBRUARY\",\r\n \"MARCH\",\r\n \"APRIL\",\r\n \"MAY\",\r\n \"JUNE\",\r\n \"JULY\",\r\n \"AUGUST\",\r\n \"SEPTEMBER\",\r\n \"OCTOBER\",\r\n \"NOVEMBER\",\r\n \"DECEMBER\",\r\n ],\r\n dayNames: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\r\n fullDayNames: [\r\n \"Sunday\",\r\n \"Monday\",\r\n \"Tuesday\",\r\n \"Wednesday\",\r\n \"Thursday\",\r\n \"Friday\",\r\n \"Saturday\",\r\n ],\r\n dates: [],\r\n firstSatDate: \"\",\r\n month: 0,\r\n year: 0,\r\n selectedDate: {},\r\n };\r\n },\r\n computed: {\r\n isMinMonth() {\r\n return this.minDate.month - 1 === this.month;\r\n },\r\n isMaxMonth() {\r\n return this.maxDate && this.maxDate.month - 1 === this.month;\r\n },\r\n },\r\n methods: {\r\n getDates: function (yr, mth) {\r\n this.dates = []; //resets the 'dates' property to an empty array.\r\n var d = new Date(yr, mth, 1, 2);\r\n if (!!d.getTime() && mth <= 11 && mth >= 0) {\r\n //to handle errors if arguments are not valid.\r\n while (d.getMonth() == mth) {\r\n let date = {\r\n date: d.getDate(),\r\n day: d.getDay(),\r\n month: mth + 1,\r\n year: yr,\r\n isSelected: false,\r\n isAvailable: false,\r\n ariaDate: this.getAriaDate(d),\r\n };\r\n date.isAvailable = this.isAvailableDate(date);\r\n //Make sure date isn't already in the list//\r\n if (\r\n !this.dates.find((e) => e.date == d.getDate() && e.month == mth + 1)\r\n ) {\r\n this.dates.push(date);\r\n }\r\n d = new Date(d.getTime() + 1000 * 60 * 60 * 24);\r\n }\r\n this.firstSatDate = 7 - this.dates[0].day; //compute the date of the first Saturday of the given month\r\n } else {\r\n this.dates.push({}); //push an empty object into the 'dates' array\r\n }\r\n },\r\n isMinDate(date) {\r\n console.log(\"SelectedDate\", this.selectedDate);\r\n return date.date === this.minDate.date;\r\n },\r\n onNextMonth() {\r\n this.updateMonth(++this.month);\r\n },\r\n onPreviousMonth() {\r\n this.updateMonth(--this.month);\r\n },\r\n updateMonth(newMonth) {\r\n this.month = newMonth;\r\n if (newMonth > 11) {\r\n this.month = 0;\r\n this.year++;\r\n }\r\n\r\n if (newMonth < 0) {\r\n this.month = 11;\r\n this.year--;\r\n }\r\n console.log(\"year\", this.year, \"month\", this.month);\r\n this.getDates(this.year, this.month);\r\n const m = (newMonth + 1).toString().padStart(2, \"0\");\r\n this.$emit(\"monthChanged\", `${this.year}-${m}`);\r\n },\r\n onDateChanged(date) {\r\n this.selectedDate = date;\r\n this.$emit(\"dateChanged\", { ...date, fullDate: this.getFullDate(date) });\r\n },\r\n isDateSelected(date) {\r\n return (\r\n this.selectedDate.date === date.date &&\r\n this.selectedDate.month === date.month &&\r\n this.selectedDate.year === date.year\r\n );\r\n },\r\n getDayNames(locale = \"en\", format = \"long\") {\r\n const formatter = new Intl.DateTimeFormat(locale, {\r\n weekday: format === \"single\" ? \"short\" : format,\r\n timeZone: \"UTC\",\r\n });\r\n const days = [1, 2, 3, 4, 5, 6, 7].map((day) => {\r\n const dd = day < 10 ? `0${day}` : day;\r\n return new Date(`2017-01-${dd}T00:00:00+00:00`);\r\n });\r\n return days.map((date) => {\r\n let day = formatter.format(date);\r\n if (format === \"single\") {\r\n return day[0];\r\n }\r\n return day.toUpperCase();\r\n });\r\n },\r\n getMonthNames(locale = \"en\", format = \"long\") {\r\n const formatter = new Intl.DateTimeFormat(locale, {\r\n month: format,\r\n timeZone: \"UTC\",\r\n });\r\n const months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((month) => {\r\n const mm = month < 10 ? `0${month}` : month;\r\n return new Date(`2017-${mm}-01T00:00:00+00:00`);\r\n });\r\n return months.map((date) => formatter.format(date));\r\n },\r\n isAvailableDate(date) {\r\n return (\r\n this.availableDates &&\r\n this.availableDates.find((d) => {\r\n return (\r\n d.year == date.year && d.month == date.month && d.date === date.date\r\n );\r\n })\r\n );\r\n },\r\n getFullDate(date) {\r\n let fullDate = new Date(date.year, date.month - 1, date.date);\r\n fullDate.setUTCHours(0, 0, 0);\r\n return fullDate.toISOString().split(\".\")[0];\r\n },\r\n getAriaDate(date) {\r\n return this.localeFormattedDate(date);\r\n },\r\n localeFormattedDate(date) {\r\n const day = date.toLocaleDateString(this.language, {\r\n weekday: \"long\",\r\n });\r\n const month = date.toLocaleDateString(this.language, {\r\n month: \"long\",\r\n });\r\n const d = date.getDate();\r\n const year = date.getFullYear();\r\n return `${day} ${month} ${d}, ${year}`;\r\n },\r\n handleKeyDown(e) {\r\n var code = e.which || e.keyCode;\r\n // number of items across\r\n var width = 7;\r\n var increment; //, index, newIndex, active;\r\n console.log(e);\r\n switch (code) {\r\n case keys.up:\r\n increment = -width;\r\n break;\r\n case keys.down:\r\n increment = width;\r\n break;\r\n case keys.left:\r\n increment = -1;\r\n break;\r\n case keys.right:\r\n increment = 1;\r\n break;\r\n default:\r\n increment = 0;\r\n break;\r\n }\r\n\r\n if (increment !== 0) {\r\n e.preventDefault();\r\n\r\n if (increment > 0) {\r\n console.log(\"next\");\r\n console.log(e.target.nextSibling);\r\n e.target.nextSibling && e.target.nextSibling.focus();\r\n } else {\r\n console.log(\"previous\");\r\n console.log(e.target.previousSibling);\r\n e.target.previousSibling && e.target.previousSibling.focus();\r\n }\r\n }\r\n },\r\n },\r\n created() {\r\n //called when the component is created.\r\n\r\n if (this.minDate) {\r\n this.year = this.minDate.year;\r\n this.month = this.minDate.month - 1;\r\n }\r\n this.getDates(this.year, this.month);\r\n this.dayNames = this.getDayNames(this.locale, \"single\");\r\n this.fullDayNames = this.getDayNames(this.locale);\r\n this.months = this.getMonthNames(this.locale, \"long\");\r\n //this.onDateChanged(this.minDate);\r\n },\r\n watch: {\r\n availableDates: function () {\r\n this.getDates(this.year, this.month);\r\n },\r\n minDate: function () {\r\n //this.selectedDate = this.minDate;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n* {\r\n margin: 0;\r\n padding: 0;\r\n border: 0;\r\n outline: 0;\r\n vertical-align: baseline;\r\n}\r\n\r\ndiv.monthView-container {\r\n display: inline-grid;\r\n grid-template-columns: 1fr;\r\n font-size: 14px;\r\n letter-spacing: 0.05em;\r\n}\r\n\r\n.monthView-container div.month-name-container {\r\n background: #0b5583;\r\n color: #fff;\r\n line-height: 1em;\r\n padding: 8px;\r\n text-align: center;\r\n border: solid 1px #000;\r\n}\r\n\r\n.monthView-container .btn-cal {\r\n color: white !important;\r\n background-color: transparent !important;\r\n height: 100% !important;\r\n width: 100% !important;\r\n border: none;\r\n box-shadow: none;\r\n}\r\n\r\n.monthView-container .btn-cal:focus {\r\n border: solid #fff 0.15em !important;\r\n}\r\n\r\n.monthView-container .btn-cal:hover {\r\n opacity: 0.7 !important;\r\n}\r\n\r\n.monthView-container .btn-cal:hover::before,\r\n.monthView-container .btn-cal:focus::before {\r\n background-color: transparent !important;\r\n color: transparent !important;\r\n}\r\n\r\n.monthView-container .btn-cal.v-btn--disabled {\r\n color: white !important;\r\n background-color: transparent !important;\r\n opacity: 50;\r\n}\r\n\r\n.monthView-container .btn-cal.v-btn--disabled .v-icon {\r\n color: gray !important;\r\n}\r\n\r\ndiv.body-container {\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n grid-gap: 2px;\r\n}\r\n\r\ndiv.dayNames-container {\r\n display: grid;\r\n grid-template-columns: repeat(7, auto);\r\n grid-gap: 2px;\r\n margin-top: 2px;\r\n font-weight: bold !important;\r\n}\r\n\r\ndiv.dates-container {\r\n display: grid;\r\n grid-template-columns: repeat(7, auto);\r\n grid-gap: 2px;\r\n font-weight: bold;\r\n}\r\n\r\ndiv.dayName,\r\ndiv.date {\r\n width: 4em;\r\n padding: 10px;\r\n border-radius: 1px !important;\r\n}\r\n\r\ndiv.selected-date {\r\n background: #0b5583 !important;\r\n color: white !important;\r\n border-color: #fff;\r\n}\r\n\r\ndiv.min-date {\r\n border: solid #000 0.15em !important;\r\n}\r\n\r\ndiv.date:hover:not(div.SUN):not(div.SAT) {\r\n border: solid #0b5583 0.25em;\r\n opacity: 0.7 !important;\r\n}\r\n\r\ndiv.date:focus:not(div.SUN):not(div.SAT) {\r\n border: solid #0b5583 0.25em !important;\r\n}\r\n\r\ndiv.selected-date:focus:not(div.SUN):not(div.SAT) {\r\n border: solid #fff 2px !important;\r\n}\r\n\r\ndiv.dayName {\r\n text-align: center;\r\n line-height: 1em;\r\n background: #0b5583;\r\n border: solid 1px #000;\r\n color: #fff;\r\n}\r\n\r\ndiv.date {\r\n text-align: right;\r\n background: #fff;\r\n color: black;\r\n font-weight: 600;\r\n height: 3em;\r\n cursor: pointer;\r\n border: solid 1px #000;\r\n}\r\n\r\ndiv.date.v-card--disabled {\r\n color: rgba(0, 0, 0, 0.26) !important;\r\n opacity: 0.6;\r\n color: grey !important;\r\n}\r\n\r\ndiv.SAT.dayName,\r\ndiv.SUN.dayName {\r\n background: #0b5583;\r\n border: solid 1px #000;\r\n color: #fff;\r\n}\r\n\r\ndiv.SAT,\r\ndiv.SUN {\r\n background: #d0d0d0ce;\r\n color: rgba(0, 0, 0, 0.26);\r\n cursor: default;\r\n border: solid 1px #000;\r\n}\r\n\r\n@media screen and (max-width: 600px) {\r\n div.dayName,\r\n div.date {\r\n font-size: 12px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 500px) {\r\n .month-name.public-h6 {\r\n font-size: 1rem;\r\n line-height: 2;\r\n }\r\n\r\n div.monthView-container {\r\n font-size: 14px !important;\r\n }\r\n\r\n div.dayName,\r\n div.date {\r\n font-size: 0.95em;\r\n }\r\n\r\n div.monthView-container .mdi-arrow-left::before,\r\n .mdi-arrow-right::before {\r\n transform: scale(0.75);\r\n }\r\n\r\n div.dayName,\r\n div.date {\r\n width: 3.5em;\r\n padding: 4px;\r\n padding-top: 8px;\r\n height: 2.5em;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 400px) {\r\n div.monthView-container {\r\n font-size: 12px !important;\r\n }\r\n\r\n div.dayName,\r\n div.date {\r\n width: 3em;\r\n padding: 2px;\r\n padding-top: 4px;\r\n height: 2em;\r\n }\r\n\r\n .month-name.public-h6 {\r\n font-size: 4vw;\r\n line-height: 2;\r\n }\r\n}\r\n\r\n@media screen and (max-width: 350px) {\r\n div.monthView-container {\r\n margin-left: -15px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OpusCalendarDatePicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OpusCalendarDatePicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OpusCalendarDatePicker.vue?vue&type=template&id=7389a9c0&scoped=true&\"\nimport script from \"./OpusCalendarDatePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./OpusCalendarDatePicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OpusCalendarDatePicker.vue?vue&type=style&index=0&id=7389a9c0&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7389a9c0\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span\r\n aria-label=\"Select Date Time Page\"\r\n aria-live=\"polite\"\r\n role=\"contentinfo\"\r\n ></span>\r\n <h2\r\n class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.selectDateTimePageHeader }}\r\n </h2>\r\n <p\r\n class=\"text-h8 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ siteText.ui.selectDateTimePageSubHeader }}\r\n </p>\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <p :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <strong> {{ siteText.ui.selectDateTimeSelectADate }} </strong>\r\n </p>\r\n <div :style=\"isRTLLanguage ? 'text-align:right' : ''\">\r\n <div>\r\n <v-layout>\r\n <opus-calendar-date-picker\r\n :minDate=\"minDate\"\r\n :maxDate=\"maxDate\"\r\n :availableDates=\"availableDates\"\r\n class=\"pb-4 mb-4\"\r\n @dateChanged=\"onDateChanged\"\r\n @monthChanged=\"onMonthChanged\"\r\n :locale=\"language\"\r\n >\r\n </opus-calendar-date-picker>\r\n </v-layout>\r\n </div>\r\n <div>\r\n <input type=\"hidden\" id=\"contentUpdate\" :value=\"minDate\" />\r\n </div>\r\n </div>\r\n <opus-select-only-drop-down\r\n class=\"mb-4 vue-select-up\"\r\n :items=\"availableTimes\"\r\n select-name=\"timeSelect\"\r\n item-label=\"FormattedTime\"\r\n item-id=\"SlotId\"\r\n :place-holder=\"siteText.ui.selectDateTimeSelectATime\"\r\n :label=\"siteText.ui.selectDateTimeTime\"\r\n @item:selected=\"onTimeChange\"\r\n v-model=\"time\"\r\n :list-top=\"true\"\r\n :disabled=\"!this.selectedDate\"\r\n >\r\n </opus-select-only-drop-down>\r\n <p style=\"line-height: 24px\" :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <strong> {{ siteText.ui.selectedService }}: </strong>\r\n {{ selectedService1.Name }} <br />\r\n <span v-if=\"numberOfServices > 1\">\r\n <strong> {{ siteText.ui.selectedService }}: </strong>\r\n {{ selectedService2.Name }} <br />\r\n </span>\r\n <strong> {{ siteText.ui.location }}: </strong>\r\n {{ selectedLocation.Name }},\r\n <a :href=\"selectedLocation.MapUrl\" target=\"_blank\">{{\r\n selectedLocation.Address\r\n }}</a>\r\n <br />\r\n <span v-if=\"selectedDate\">\r\n <strong> {{ siteText.ui.date }}: </strong>\r\n {{ localeFormattedDate }} <br />\r\n <strong v-if=\"selectedTimeSlot\"> {{ siteText.ui.time }}: </strong>\r\n <span v-if=\"selectedTimeSlot\" class=\"ltr-text-force\">\r\n {{ selectedFormattedAppointmentTime }}\r\n </span>\r\n </span>\r\n </p>\r\n <p\r\n v-if=\"reschedule && selectedTimeSlot\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n {{ rescheduleMessage }}\r\n </p>\r\n <span class=\"red--text\" style=\"font-size: 14px\" v-if=\"errorMessage\">{{\r\n errorMessage\r\n }}</span>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-md-4\">\r\n <!-- Desktop Layout -->\r\n <v-layout row wrap class=\"hidden-sm-and-down\">\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.selectDateTimeBack }}\r\n </v-btn>\r\n </v-flex>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"confirmReservation()\"\r\n :disabled=\"!selectedTimeSlot\"\r\n :aria-disabled=\"!selectedTimeSlot\"\r\n >\r\n {{ siteText.ui.selectDateTimeConfirmReservation }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n <!-- Mobile Layout -->\r\n <v-layout row wrap class=\"hidden-md-and-up\">\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"confirmReservation()\"\r\n :disabled=\"!selectedTimeSlot\"\r\n :aria-disabled=\"!selectedTimeSlot\"\r\n >\r\n {{ siteText.ui.selectDateTimeConfirmReservation }}\r\n <v-icon>mdi-arrow-right</v-icon>\r\n </v-btn>\r\n </v-flex>\r\n <v-flex xs12>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"back()\"\r\n ><v-icon>mdi-arrow-left</v-icon>\r\n {{ siteText.ui.selectDateTimeBack }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from \"vuex\";\r\nimport OpusCalendarDatePicker from \"@/components/OpusCalendarDatePicker.vue\";\r\nimport OpusSelectOnlyDropDown from \"@/components/OpusSelectOnlyDropDown.vue\";\r\n\r\nexport default {\r\n name: \"SelectDateTimePage\",\r\n components: {\r\n OpusCalendarDatePicker,\r\n OpusSelectOnlyDropDown,\r\n },\r\n data: () => ({\r\n times: [],\r\n selectedDate: \"\",\r\n selectedDate1: \"\",\r\n selectedTimeSlot: \"\",\r\n time: \"\",\r\n picker: \"\",\r\n pickerDate: \"\",\r\n errorMessage: \"\",\r\n newMonth: \"\",\r\n }),\r\n methods: {\r\n ...mapActions([\"getLocationAvailability\"]),\r\n ...mapActions([\"setTimeSlot\"]),\r\n ...mapActions([\"saveBooking\"]),\r\n nextPage(page) {\r\n this.$emit(\"navigateTo\", page);\r\n },\r\n back() {\r\n this.$emit(\"navigateTo\", \"SelectLocationCountyPage\", {\r\n pageName: \"Select Reservation Location\",\r\n });\r\n },\r\n async confirmReservation() {\r\n this.errorMessage = \"\";\r\n\r\n this.setTimeSlot(this.selectedTimeSlot);\r\n const bookingResult = await this.saveBooking();\r\n\r\n if (!bookingResult || bookingResult.ErrorCode !== 0) {\r\n //determine error message\r\n this.errorMessage = this.determinErrorMessage(bookingResult);\r\n } else {\r\n this.$emit(\"navigateTo\", \"ConfirmReservationPage\", {\r\n pageName: \"Reservation Confirmed\",\r\n });\r\n }\r\n },\r\n datePickerChange() {\r\n console.log(this.picker);\r\n this.selectedTimeSlot = null;\r\n this.time = null;\r\n this.selectedDate = this.picker;\r\n },\r\n onTimeChange() {\r\n console.log(this.time);\r\n this.selectedTimeSlot = this.time;\r\n },\r\n async onMonthChanged(month) {\r\n //check for more availability when month changes//\r\n const dateParts = month.split(\"-\");\r\n const lastDayOfMonth = this.getLastDayOfMonth(dateParts[0], dateParts[1]);\r\n if (lastDayOfMonth > this.maxAvailableDate) {\r\n console.log(\r\n \"New date greater than max available date\",\r\n this.maxAvailableDate,\r\n lastDayOfMonth\r\n );\r\n await this.getLocationAvailability(this.maxAvailableDate);\r\n }\r\n },\r\n allowedDates(ad) {\r\n return (val) => ad.find((e) => e.AvailabilityDate.includes(val));\r\n },\r\n getFirstDayOfMonth(year, month) {\r\n return new Date(year, month, 1);\r\n },\r\n getLastDayOfMonth(year, month) {\r\n console.log(year, month);\r\n return new Date(year, month, 0);\r\n },\r\n determinErrorMessage(bookingResult) {\r\n let errorMessage = this.siteText.errors.generalSaveBookingError;\r\n if (!bookingResult || bookingResult.ErrorCode > 200) {\r\n errorMessage = this.siteText.errors.generalSaveBookingError;\r\n } else if (\r\n bookingResult.ErrorCode === 100 &&\r\n bookingResult.ExistingBooking\r\n ) {\r\n errorMessage = this.buildBookingExistsError(\r\n bookingResult.ExistingBooking,\r\n this.siteText.errors.reservationExists\r\n );\r\n } else if (\r\n !bookingResult.ExistingBooking &&\r\n bookingResult.ErrorCode === 150\r\n ) {\r\n errorMessage = bookingResult.ErrorMessage;\r\n } else if (bookingResult.ErrorCode === 200) {\r\n errorMessage = this.siteText.errors.slotNoLongerAvailable;\r\n }\r\n return errorMessage;\r\n },\r\n buildBookingExistsError(booking, msg) {\r\n let errorMessage = msg\r\n .replace(\"FIRST_NAME\", booking.FirstName)\r\n .replace(\"LAST_NAME\", booking.LastName)\r\n .replace(\"SITE_NAME\", booking.SiteName)\r\n .replace(\"BOOKING_DATE\", booking.FormattedBookingDateTime);\r\n const serviceType1 = this.$store.getters.serviceType(\r\n booking.ServiceTypeId\r\n );\r\n errorMessage = errorMessage.replace(\"SERVICE_1\", serviceType1.Name);\r\n if (booking.ServiceType2 != null) {\r\n const serviceType2 = this.$store.getters.serviceType(\r\n booking.ServiceTypeId2\r\n );\r\n errorMessage = errorMessage.replace(\"SERVICE_2\", serviceType2.Name);\r\n } else {\r\n errorMessage = errorMessage.replace(\"and SERVICE_2\", \"\");\r\n }\r\n return errorMessage;\r\n },\r\n onDateChanged(date) {\r\n this.selectedDate = null;\r\n this.selectedTimeSlot = null;\r\n this.time = null;\r\n this.selectedDate = date.fullDate;\r\n },\r\n },\r\n computed: {\r\n ...mapGetters([\"siteText\"]),\r\n ...mapGetters([\"availableLocationDates\"]),\r\n ...mapGetters([\"moreDatesAvailable\"]),\r\n ...mapGetters([\"selectedLocation\"]),\r\n ...mapGetters(\"selectedService\", [\r\n \"numberOfServices\",\r\n \"selectedService1\",\r\n \"selectedService2\",\r\n ]),\r\n ...mapGetters([\"language\"]),\r\n ...mapGetters([\"maxAvailableDate\"]),\r\n ...mapGetters([\"minAvailableDate\"]),\r\n ...mapGetters([\"navToSelectDateTimePage\"]),\r\n ...mapGetters([\"reschedule\"]),\r\n ...mapGetters([\"selectedBooking\", \"isRTLLanguage\"]),\r\n minDate() {\r\n let d = null;\r\n if (!this.minAvailableDate) {\r\n d = new Date();\r\n d.setDate(d.getDate());\r\n } else {\r\n d = this.minAvailableDate;\r\n d.setDate(d.getDate());\r\n }\r\n\r\n const minDate = {\r\n year: d.getFullYear(),\r\n month: d.getMonth() + 1,\r\n date: d.getDate(),\r\n };\r\n return minDate;\r\n },\r\n maxDate() {\r\n const d = new Date();\r\n d.setDate(d.getDate() + 90);\r\n const maxDate = {\r\n year: d.getFullYear(),\r\n month: d.getMonth() + 1,\r\n date: d.getDate(),\r\n };\r\n console.log(\"max date\", maxDate);\r\n return maxDate;\r\n },\r\n availableTimes() {\r\n let availableTimes = null;\r\n if (\r\n this.availableLocationDates &&\r\n this.availableLocationDates.length > 0 &&\r\n this.selectedDate\r\n ) {\r\n const dateAvailability = this.availableLocationDates.filter((e) => {\r\n return e.AvailabilityDate.includes(this.selectedDate);\r\n });\r\n availableTimes = dateAvailability[0].AvailableTimeSlots;\r\n }\r\n\r\n let unique = [];\r\n if (availableTimes) {\r\n unique = availableTimes.filter((obj, index) => {\r\n return (\r\n index ===\r\n availableTimes.findIndex(\r\n (o) => obj.FormattedTime === o.FormattedTime\r\n )\r\n );\r\n });\r\n }\r\n return unique;\r\n },\r\n availableDates() {\r\n var dates = this.availableLocationDates.map((d) => {\r\n return {\r\n month: Number(d.FormattedAvailabilityDateMonth),\r\n year: Number(d.FormattedAvailabilityDateYear),\r\n date: Number(d.FormattedAvailabilityDateDay),\r\n };\r\n });\r\n return dates;\r\n },\r\n selectedFormatedAppointmentDate() {\r\n console.log(this.selectedTimeSlot);\r\n let selectedFormatedAppointmentDate = \"\";\r\n if (this.selectedTimeSlot) {\r\n const bookingDate = new Date(this.selectedTimeSlot.StartDateTime);\r\n const month = bookingDate.toLocaleString(this.language, {\r\n month: \"long\",\r\n });\r\n const day = bookingDate.getDate();\r\n const year = bookingDate.getFullYear();\r\n selectedFormatedAppointmentDate = `${month} ${day}, ${year}`;\r\n }\r\n return selectedFormatedAppointmentDate;\r\n },\r\n selectedFormattedAppointmentTime() {\r\n let selectedFormattedAppointmentTime = \"\";\r\n if (this.selectedTimeSlot) {\r\n selectedFormattedAppointmentTime = this.selectedTimeSlot.FormattedTime;\r\n }\r\n return selectedFormattedAppointmentTime;\r\n },\r\n rescheduleMessage() {\r\n return this.siteText.ui.selectDateTimeReservationReschedule\r\n .replace(\"OLD_DATE\", this.selectedBooking.FormattedBookingDateTime)\r\n .replace(\"NEW_DATE\", this.selectedTimeSlot.FormattedStartDateTime);\r\n },\r\n localeFormattedDate() {\r\n let d = new Date(this.selectedDate);\r\n const month = d.toLocaleDateString(this.language, {\r\n month: \"long\",\r\n });\r\n const date = d.getDate();\r\n const year = d.getFullYear();\r\n return `${month} ${date}, ${year}`;\r\n },\r\n },\r\n async mounted() {\r\n await this.getLocationAvailability();\r\n this.picker = this.minDate;\r\n this.selectedTimeSlot = null;\r\n // common.updateSelectAriaLabel(this.$refs.timeSelect, \"Select a time\");\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n\r\n.date-color {\r\n /*color: #00B300;\r\n font-weight: 900;*/\r\n}\r\n\r\n.v-btn--active .date-color {\r\n /*color: #fff;*/\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectDateTimePage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectDateTimePage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectDateTimePage.vue?vue&type=template&id=00df39a3&scoped=true&\"\nimport script from \"./SelectDateTimePage.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectDateTimePage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectDateTimePage.vue?vue&type=style&index=0&id=00df39a3&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00df39a3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Confirm Reservation Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('h2',{staticClass:\"public-h5 font-weight-bold mt-5 mb-5\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.confirmReservationPageHeader)+\" \")]),_c('v-card',[_c('v-card-text',{staticClass:\"centerContainer\"},[_c('reservation-details',{ref:\"ReservationDetails\",attrs:{\"booking\":_vm.booking,\"show-barcode\":true,\"show-map-link\":true,\"show-service-type-link\":true,\"footer-text\":_vm.siteText.ui.viewMessageText,\"show-print-link\":true,\"isRTL\":_vm.isRTLLanguage}})],1)],1),_c('p'),_c('div',{staticClass:\"text-left pt-4\"},[_c('v-layout',{attrs:{\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"md3\":\"\"}},[_c('v-btn',{staticClass:\"ma-2 dmv-btn\",attrs:{\"height\":\"45px\",\"width\":\"260px\"},on:{\"click\":function($event){return _vm.home()}}},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.confirmReservationHome)+\" \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Confirm Reservation Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <h2 class=\"public-h5 font-weight-bold mt-5 mb-5\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.confirmReservationPageHeader }}\r\n </h2>\r\n <v-card>\r\n <v-card-text class=\"centerContainer\">\r\n <reservation-details \r\n ref=\"ReservationDetails\"\r\n :booking=\"booking\"\r\n :show-barcode=\"true\"\r\n :show-map-link=\"true\"\r\n :show-service-type-link=\"true\"\r\n :footer-text=\"siteText.ui.viewMessageText\"\r\n :show-print-link=\"true\"\r\n :isRTL=\"isRTLLanguage\"\r\n >\r\n </reservation-details>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <div class=\"text-left pt-4\">\r\n <v-layout row wrap>\r\n <v-flex md3>\r\n <v-btn\r\n class=\"ma-2 dmv-btn\"\r\n height=\"45px\"\r\n width=\"260px\"\r\n @click=\"home()\">\r\n {{ siteText.ui.confirmReservationHome }}\r\n </v-btn>\r\n </v-flex>\r\n </v-layout>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ReservationDetails from '../components/ReservationDetails.vue';\r\nimport { mapGetters } from 'vuex';\r\n\r\nexport default {\r\n name: 'ConfirmReservationPage',\r\n components: {\r\n ReservationDetails,\r\n },\r\n methods: {\r\n nextPage(page) {\r\n this.$emit('navigateTo', page);\r\n },\r\n home() {\r\n this.$emit('navigateTo', 'WelcomePage');\r\n },\r\n print() {\r\n console.log('Inside print of ConfirmReservationPage');\r\n this.$refs.ReservationDetails.Printer();\r\n },\r\n},\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['booking', 'isRTLLanguage'])\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmReservationPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConfirmReservationPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConfirmReservationPage.vue?vue&type=template&id=cce1e99c&scoped=true&\"\nimport script from \"./ConfirmReservationPage.vue?vue&type=script&lang=js&\"\nexport * from \"./ConfirmReservationPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConfirmReservationPage.vue?vue&type=style&index=0&id=cce1e99c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cce1e99c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Mobile Check In Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),(_vm.displaySuccessfulCheckIn)?_c('p',{staticClass:\"public-h5 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.successfulCheckInHeader)+\" \")]):_vm._e(),(_vm.displayReservationNotFound)?_c('p',{staticClass:\"public-h5 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundHeader)+\" \")]):_vm._e(),(_vm.displayReservationNotCloseEnough)?_c('p',{staticClass:\"public-h5 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.notCloseEnoughToHeader)+\" \"+_vm._s(_vm.siteName)+\" \")]):_vm._e(),(_vm.displayCheckInTooEarly)?_c('p',{staticClass:\"public-h5 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.tooEarlyForCheckInHeader)+\" \")]):_vm._e(),(_vm.displayNoLocationAvailable)?_c('p',{staticClass:\"public-h5 font-weight-bold\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.noLocationAvailableHeader)+\" \")]):_vm._e(),(!_vm.displaySuccessfulCheckIn)?_c('v-card',[_c('v-card-text',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.successfulCheckInLanguageText)+\" \")]),_c('v-card-text',{staticClass:\"centerContainer\"},[_c('v-row',[_c('opus-select-only-drop-down',{class:_vm.isRTLLanguage ? 'rtl' : 'normal',attrs:{\"items\":_vm.languages,\"select-name\":\"languageSelect\",\"item-label\":\"Name\",\"item-id\":\"Code\",\"label\":_vm.siteText.ui.languageLabel,\"place-holder\":_vm.siteText.ui.languageLabel,\"aria-label\":\"Select a Language\"},on:{\"item:selected\":_vm.languageChange},scopedSlots:_vm._u([{key:\"item\",fn:function({ Code, Name }){return [_c('span',{attrs:{\"lang\":Code}},[_vm._v(_vm._s(Name))])]}}],null,false,3757700240),model:{value:(_vm.language),callback:function ($$v) {_vm.language=$$v},expression:\"language\"}})],1)],1)],1):_vm._e(),_c('p'),(_vm.displaySuccessfulCheckIn)?_c('v-card',{staticClass:\"align-center justify-center\"},[_c('v-card-text',{class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.successfulCheckInText)+\" \")]),_c('check-in-ticket',{attrs:{\"ticketNumber\":_vm.ticketNumber,\"bookingType\":_vm.bookingType,\"firstName\":_vm.firstName,\"lastName\":_vm.lastName,\"siteName\":_vm.siteName,\"formattedBookingDate\":_vm.formattedBookingDate,\"formattedCheckInDate\":_vm.formattedCheckInDate,\"serviceOne\":_vm.serviceOne,\"serviceTwo\":_vm.serviceTwo,\"formatedPhone\":_vm.formatedPhone}})],1):_vm._e(),(_vm.displayReservationNotFound)?_c('v-card',{staticClass:\"align-center justify-center\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundText)+\" \"),_c('strong',[_vm._v(\" \"+_vm._s(_vm.reservationNumber)+\" \")]),_vm._v(\". \")]),_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.reservationNotFoundText2)+\" \")])],1):_vm._e(),(_vm.displayReservationNotCloseEnough)?_c('v-card',{staticClass:\"d-flex align-center justify-center\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.notCloseEnoughToText)+\" \"+_vm._s(_vm.maxDistance)+\" \"+_vm._s(_vm.siteText.ui.notCloseEnoughToText2)+\" \"+_vm._s(_vm.siteName)+\", \"+_vm._s(_vm.siteAddress)+\" \"+_vm._s(_vm.siteText.ui.notCloseEnoughToText3)+\" \"+_vm._s(_vm.reservationNumber)+\". \")])],1):_vm._e(),(_vm.displayCheckInTooEarly)?_c('v-card',{staticClass:\"d-flex align-center justify-center\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.tooEarlyForCheckInText)+\" \"+_vm._s(_vm.reservationNumber)+\" \"+_vm._s(_vm.siteText.ui.tooEarlyForCheckInText2)+\" \"+_vm._s(_vm.formattedBookingDate)+\". \"+_vm._s(_vm.siteText.ui.tooEarlyForCheckInText3)+\" \"+_vm._s(_vm.checkInStartTime)+\". \"+_vm._s(_vm.siteText.ui.tooEarlyForCheckInText4)+\" \")]):_vm._e(),(_vm.displayNoLocationAvailable)?_c('v-card',{staticClass:\"d-flex align-center justify-center\",class:_vm.isRTLLanguage ? 'rtl' : 'normal'},[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.siteText.ui.noLocationAvailableText)+\" \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"printSettings\"},[_c('div',{staticClass:\"page-title\"},[_vm._v(\"New York Department of Motor Vehicles\")]),_c('div',{staticClass:\"dmv-site\"},[_vm._v(\"dmv.ny.gov\")]),_c('div',{staticClass:\"ticket-label\"},[_vm._v(\"Your ticket number is:\")]),_c('div',{staticClass:\"ticket-field\"},[_vm._v(_vm._s(_vm.ticketNumber))]),(_vm.bookingType === 'checkin')?_c('div',{staticClass:\"name-label\"},[_vm._v(\" Name: \"+_vm._s(_vm.firstName + \" \" + _vm.lastName)+\" \")]):(_vm.bookingType === 'walkin')?_c('div',{staticClass:\"name-label\"},[_vm._v(\" Phone: \"+_vm._s(_vm.formatedPhone)+\" \")]):_vm._e(),_c('div',{staticClass:\"services-label\"},[_vm._v(\"Service(s):\")]),(_vm.serviceOne)?_c('div',{staticClass:\"service-field\"},[_vm._v(_vm._s(_vm.serviceOne))]):_vm._e(),(_vm.serviceTwo)?_c('div',{staticClass:\"service-field\"},[_vm._v(_vm._s(_vm.serviceTwo))]):_vm._e(),_c('div',{staticClass:\"location\"},[_vm._v(_vm._s(_vm.siteName))]),_c('div',{staticClass:\"dateAndTime\"},[_vm._v(_vm._s(_vm.formattedCheckInDate))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"printSettings\">\n <div class=\"page-title\">New York Department of Motor Vehicles</div>\n <div class=\"dmv-site\">dmv.ny.gov</div>\n <div class=\"ticket-label\">Your ticket number is:</div>\n <div class=\"ticket-field\">{{ ticketNumber }}</div>\n <!-- <div class=\"name-label\">Name:</div> -->\n <!-- div class=\"name-field\">{{ booking.FirstName + \" \" + booking.LastName }}</div> -->\n <div v-if=\"bookingType === 'checkin'\"\n class=\"name-label\">\n Name: {{ firstName + \" \" + lastName }}\n </div>\n <div v-else-if=\"bookingType === 'walkin'\"\n class=\"name-label\">\n Phone: {{ formatedPhone }}\n </div>\n <div class=\"services-label\">Service(s):</div>\n <!-- <div class=\"service-field\" v-if=\"booking.TestTypeDescription\">{{ booking.TestTypeDescription }}</div> -->\n <!-- <div class=\"service-field\" v-if=\"booking.TestType2Description\">{{ booking.TestType2Description }}</div> -->\n <!-- <div class=\"location\">{{ booking.SiteName }}</div> -->\n <!-- <div class=\"dateAndTime\">{{ formatedDateTime }}</div> -->\n <div class=\"service-field\" v-if=\"serviceOne\">{{ serviceOne }}</div>\n <div class=\"service-field\" v-if=\"serviceTwo\">{{ serviceTwo }}</div>\n <div class=\"location\">{{ siteName }}</div>\n <div class=\"dateAndTime\">{{ formattedCheckInDate }}</div>\n <!-- <br/> -->\n </div>\n </div>\n</template>\n\n<script>\n\nexport default {\n data: () => ({ \n \n }),\n props:{\n bookingType: String,\n ticketNumber: String, \n firstName: String,\n lastName: String,\n siteName: String,\n formattedBookingDate: String,\n formattedCheckInDate: String,\n serviceOne: String,\n serviceTwo: String,\n formatedPhone: String,\n },\n};\n\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckInTicket.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckInTicket.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckInTicket.vue?vue&type=template&id=8d742fba&\"\nimport script from \"./CheckInTicket.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckInTicket.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Mobile Check In Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <p v-if=\"displaySuccessfulCheckIn\" class=\"public-h5 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.successfulCheckInHeader }}\r\n </p>\r\n <p v-if=\"displayReservationNotFound\" class=\"public-h5 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.reservationNotFoundHeader }}\r\n </p>\r\n <p v-if=\"displayReservationNotCloseEnough\" class=\"public-h5 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.notCloseEnoughToHeader }} {{ siteName }}\r\n </p>\r\n <p v-if=\"displayCheckInTooEarly\" class=\"public-h5 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.tooEarlyForCheckInHeader }}\r\n </p>\r\n <p v-if=\"displayNoLocationAvailable\" class=\"public-h5 font-weight-bold\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.noLocationAvailableHeader }}\r\n </p>\r\n <v-card v-if=\"!displaySuccessfulCheckIn\">\r\n <v-card-text :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.successfulCheckInLanguageText }}\r\n </v-card-text>\r\n <v-card-text class=\"centerContainer\">\r\n <v-row>\r\n <!-- <v-select :label=\"siteText.ui.languageLabel\" :class=\"isRTLLanguage ? 'v-text-field--reverse' : ''\" filled\r\n :items=\"languages\" @change=\"languageChange\" dense\r\n ></v-select> -->\r\n <!-- <vc-select class=\"vc-select\" :searchable=\"false\" :clearable=\"false\" :options=\"languages\" label=\"Name\"\r\n v-model=\"language\" value=\"Code\" @option:selected=\"languageChange\"\r\n :dropdown-should-open=\"(VCSelect)=>{return VCSelect.open;}\"\r\n >\r\n </vc-select> -->\r\n <opus-select-only-drop-down\r\n :items=\"languages\"\r\n select-name=\"languageSelect\"\r\n item-label=\"Name\"\r\n item-id=\"Code\"\r\n :label=\"siteText.ui.languageLabel\"\r\n :place-holder=\"siteText.ui.languageLabel\"\r\n aria-label=\"Select a Language\"\r\n @item:selected=\"languageChange\"\r\n v-model=\"language\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\"\r\n >\r\n <template #item=\"{ Code, Name }\">\r\n <span :lang=\"Code\">{{ Name }}</span>\r\n </template>\r\n </opus-select-only-drop-down>\r\n </v-row>\r\n </v-card-text>\r\n </v-card>\r\n <p></p>\r\n <v-card class=\"align-center justify-center\" v-if=\"displaySuccessfulCheckIn\">\r\n <v-card-text :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.successfulCheckInText }}\r\n </v-card-text>\r\n <check-in-ticket\r\n :ticketNumber=\"ticketNumber\"\r\n :bookingType=\"bookingType\"\r\n :firstName=\"firstName\"\r\n :lastName=\"lastName\"\r\n :siteName=\"siteName\"\r\n :formattedBookingDate=\"formattedBookingDate\"\r\n :formattedCheckInDate=\"formattedCheckInDate\"\r\n :serviceOne=\"serviceOne\"\r\n :serviceTwo=\"serviceTwo\"\r\n :formatedPhone=\"formatedPhone\"\r\n >\r\n </check-in-ticket>\r\n </v-card>\r\n <v-card class=\"align-center justify-center\" v-if=\"displayReservationNotFound\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <v-card-text>\r\n {{ siteText.ui.reservationNotFoundText }} <strong> {{ reservationNumber }} </strong>.\r\n </v-card-text>\r\n <v-card-text>\r\n {{ siteText.ui.reservationNotFoundText2 }}\r\n </v-card-text>\r\n </v-card>\r\n <v-card class=\"d-flex align-center justify-center\" v-if=\"displayReservationNotCloseEnough\"\r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <v-card-text>\r\n {{ siteText.ui.notCloseEnoughToText }} {{maxDistance}} {{ siteText.ui.notCloseEnoughToText2 }}\r\n {{ siteName }}, {{ siteAddress }}\r\n {{ siteText.ui.notCloseEnoughToText3 }} {{ reservationNumber }}.\r\n </v-card-text>\r\n </v-card>\r\n <v-card class=\"d-flex align-center justify-center\" v-if=\"displayCheckInTooEarly\" \r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n {{ siteText.ui.tooEarlyForCheckInText }} {{ reservationNumber }} \r\n {{ siteText.ui.tooEarlyForCheckInText2 }} {{ formattedBookingDate }}. \r\n {{ siteText.ui.tooEarlyForCheckInText3 }} {{ checkInStartTime }}. \r\n {{ siteText.ui.tooEarlyForCheckInText4 }}\r\n </v-card>\r\n <v-card class=\"d-flex align-center justify-center\" v-if=\"displayNoLocationAvailable\" \r\n :class=\"isRTLLanguage ? 'rtl' : 'normal'\">\r\n <v-card-text>\r\n {{ siteText.ui.noLocationAvailableText }}\r\n </v-card-text>\r\n </v-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport nyApi from '@/api/nyApi';\r\nimport CheckInTicket from '../components/CheckInTicket.vue';\r\nimport OpusSelectOnlyDropDown from \"@/components/OpusSelectOnlyDropDown.vue\";\r\nimport { mapGetters, mapActions } from 'vuex';\r\n\r\nexport default {\r\n name: 'MobileCheckInPage',\r\n components: {\r\n CheckInTicket,\r\n OpusSelectOnlyDropDown,\r\n },\r\n data: () => ({\r\n language: { Name:\"English\", Code:\"en\" },\r\n displaySuccessfulCheckIn: false,\r\n displayReservationNotFound: false,\r\n displayReservationNotCloseEnough: false,\r\n displayCheckInTooEarly: false,\r\n displayNoLocationAvailable: false,\r\n formattedCheckInDate: '',\r\n checkInStartTime: '',\r\n formattedBookingDate: '',\r\n ticketNumber: '',\r\n bookingType: 'checkin',\r\n firstName: '',\r\n lastName: '',\r\n formatedPhone: '',\r\n serviceOne: '',\r\n serviceTwo: '',\r\n siteName: '',\r\n siteAddress: '',\r\n formatedDateTime: '',\r\n options: { enableHighAccuracy: true, timeout: 30000, },\r\n maxDistance: 0\r\n }),\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['languages']),\r\n ...mapGetters({languageGetter: 'language'},),\r\n ...mapGetters(['reservationNumber','isRTLLanguage']),\r\n },\r\n async mounted() {\r\n //Set language based on current selected langauge//\r\n if (this.languages && this.languages.length > 0) {\r\n this.language = this.languages.find((e) => e.Code == this.languageGetter);\r\n }\r\n this.getLocation();\r\n },\r\n methods: {\r\n ...mapActions({\r\n languageAction: 'language',\r\n }),\r\n ...mapActions(['loading']),\r\n languageChange() {\r\n console.log(this.language.Code);\r\n this.languageAction({ value: this.language.Code });\r\n },\r\n showPosition(position) {\r\n console.log(position.coords.latitude);\r\n console.log(position.coords.longitude);\r\n this.checkInReservation(position.coords.latitude, position.coords.longitude);\r\n },\r\n showError(error) {\r\n this.loading(false)\r\n switch(error.code) {\r\n case error.PERMISSION_DENIED:\r\n console.log(\"User denied the request for Geolocation.\");\r\n break;\r\n case error.POSITION_UNAVAILABLE:\r\n console.log(\"Location information is unavailable.\");\r\n break;\r\n case error.TIMEOUT:\r\n console.log(\"The request to get user location timed out.\");\r\n break;\r\n case error.UNKNOWN_ERROR:\r\n console.log(\"An unknown error occurred.\");\r\n break;\r\n }\r\n this.checkInReservation(null, null);\r\n },\r\n getLocation() {\r\n if (navigator.geolocation) {\r\n this.loading(true);\r\n navigator.geolocation.getCurrentPosition(this.showPosition, this.showError, this.options);\r\n } else { \r\n console.log(\"Geolocation is not supported by this browser.\");\r\n }\r\n },\r\n async checkInReservation(latitude, longitude) {\r\n console.log(latitude, longitude);\r\n try {\r\n console.log(this.reservationNumber);\r\n this.loading(true);\r\n const response = await nyApi.CheckInReservation(this.reservationNumber, latitude, longitude);\r\n console.log(response);\r\n console.log(response.CheckInStatus);\r\n if (response.CheckInStatus === 0 || response.CheckInStatus === 3) {\r\n console.log('CheckInStatus OK successful! or CheckedIn successful!');\r\n this.displaySuccessfulCheckIn = true;\r\n this.ticketNumber = response.Data.TicketNumber;\r\n this.firstName = response.Data.FirstName;\r\n this.lastName = response.Data.LastName;\r\n this.siteName = response.Data.SiteName;\r\n this.formattedBookingDate = response.Data.FormattedBookingDate;\r\n this.formattedCheckInDate = response.Data.FormattedCheckInDate;\r\n if (response.Data.ServiceTypeId !== null) {\r\n const serviceType = this.$store.getters.serviceType(response.Data.ServiceTypeId);\r\n console.log(serviceType);\r\n if (serviceType !== null) {\r\n this.serviceOne = serviceType.Name;\r\n } else {\r\n this.serviceOne = response.Data.ServiceType;\r\n }\r\n }\r\n if (response.Data.ServiceTypeId2 !== null) {\r\n const serviceType2 = this.$store.getters.serviceType(response.Data.ServiceTypeId2);\r\n console.log(serviceType2);\r\n if (serviceType2 !== null) {\r\n this.serviceTwo = serviceType2.Name;\r\n } else {\r\n this.serviceTwo = response.Data.ServiceType2;\r\n }\r\n }\r\n } else if (response.CheckInStatus === 1) {\r\n console.log('CheckInStatus Early');\r\n this.formattedBookingDate = response.Data.FormattedBookingDate;\r\n this.checkInStartTime = response.Data.CheckInStartTime;\r\n this.displayCheckInTooEarly = true;\r\n } else if (response.CheckInStatus === 2) {\r\n console.log('CheckInStatus Late');\r\n } else if (response.CheckInStatus === 4) {\r\n console.log('CheckInStatus OutsideBusinessHours');\r\n } else if (response.CheckInStatus === 5) {\r\n console.log('CheckInStatus BookingNotFound');\r\n this.displayReservationNotFound = true;\r\n } else if(response.CheckInStatus === 6) {\r\n console.log('CheckInStatus Not Close Enough');\r\n this.siteName = response.Data.SiteName;\r\n this.siteAddress = response.Data.SiteAddress;\r\n this.maxDistance = response.Data.MaxDistance;\r\n this.displayReservationNotCloseEnough = true;\r\n } else if(response.CheckInStatus === 7) {\r\n //No location available//\r\n console.log('No coordinates available and location check is enabled for office');\r\n //use following message //\r\n //You must have your device's location turned on to check in.//\r\n this.displayNoLocationAvailable = true;\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n console.log('CheckInStatus BookingNotFound');\r\n this.displayReservationNotFound = true;\r\n } finally {\r\n this.loading(false);\r\n console.log('Inside mobile check in page mounted finally');\r\n }\r\n }\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n\r\n.v-card {\r\n min-height: 100px !important;\r\n padding: 20px !important;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileCheckInPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MobileCheckInPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MobileCheckInPage.vue?vue&type=template&id=34ff4c8d&scoped=true&\"\nimport script from \"./MobileCheckInPage.vue?vue&type=script&lang=js&\"\nexport * from \"./MobileCheckInPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MobileCheckInPage.vue?vue&type=style&index=0&id=34ff4c8d&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34ff4c8d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"page-content\",\"tabindex\":\"-1\"}},[_c('span',{attrs:{\"aria-label\":\"Check In Ticket Page\",\"aria-live\":\"polite\",\"role\":\"contentinfo\"}}),_c('p',{staticClass:\"public-h5 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.checkInTicketHeader)+\" \")]),(_vm.displayTicket)?_c('v-card',{staticClass:\"align-center justify-center\"},[_c('check-in-ticket',{attrs:{\"ticketNumber\":_vm.ticketNumber,\"bookingType\":_vm.bookingType,\"firstName\":_vm.firstName,\"lastName\":_vm.lastName,\"siteName\":_vm.siteName,\"formattedBookingDate\":_vm.formattedBookingDate,\"formattedCheckInDate\":_vm.formattedCheckInDate,\"serviceOne\":_vm.serviceOne,\"serviceTwo\":_vm.serviceTwo,\"formatedPhone\":_vm.formatedPhone}})],1):_vm._e(),(_vm.displayTicketNotFound)?_c('v-card',{staticClass:\"d-flex align-center justify-center\"},[_c('v-card-text',{staticClass:\"red--text\"},[_vm._v(\" \"+_vm._s(_vm.siteText.ui.checkInTicketNotFoundText)+\" \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div id=\"page-content\" tabindex=\"-1\">\r\n <span aria-label=\"Check In Ticket Page\" aria-live=\"polite\" role=\"contentinfo\"></span>\r\n <p class=\"public-h5 font-weight-bold\">\r\n {{ siteText.ui.checkInTicketHeader }}\r\n </p>\r\n <v-card class=\"align-center justify-center\" v-if=\"displayTicket\">\r\n <check-in-ticket\r\n :ticketNumber=\"ticketNumber\"\r\n :bookingType=\"bookingType\"\r\n :firstName=\"firstName\"\r\n :lastName=\"lastName\"\r\n :siteName=\"siteName\"\r\n :formattedBookingDate=\"formattedBookingDate\"\r\n :formattedCheckInDate=\"formattedCheckInDate\"\r\n :serviceOne=\"serviceOne\"\r\n :serviceTwo=\"serviceTwo\"\r\n :formatedPhone=\"formatedPhone\"\r\n >\r\n </check-in-ticket>\r\n </v-card>\r\n <v-card class=\"d-flex align-center justify-center\" v-if=\"displayTicketNotFound\">\r\n <v-card-text class=\"red--text\">\r\n {{ siteText.ui.checkInTicketNotFoundText }}\r\n </v-card-text>\r\n </v-card>\r\n</div>\r\n</template>\r\n\r\n<script>\r\nimport nyApi from '@/api/nyApi';\r\nimport CheckInTicket from '../components/CheckInTicket.vue';\r\nimport { mapGetters } from 'vuex';\r\n\r\nexport default {\r\n name: 'CheckInTicketPage',\r\n components: {\r\n CheckInTicket,\r\n },\r\n data: () => ({\r\n formattedCheckInDate: '',\r\n formattedBookingDate: '',\r\n ticketNumber: '',\r\n bookingType: 'checkin',\r\n firstName: '',\r\n lastName: '',\r\n formatedPhone: '',\r\n serviceOne: '',\r\n serviceTwo: '',\r\n siteName: '',\r\n displayTicket: false,\r\n displayTicketNotFound: false,\r\n }),\r\n computed: {\r\n ...mapGetters(['siteText']),\r\n ...mapGetters(['viewTicketGuid','isRTLLanguage']),\r\n },\r\n async mounted() {\r\n console.log(this.viewTicketGuid);\r\n try {\r\n const response = await nyApi.GetTicketData(this.viewTicketGuid);\r\n console.log(response);\r\n this.ticketNumber = response.ticketNumber;\r\n console.log(this.ticketNumber);\r\n if (this.ticketNumber) {\r\n this.displayTicket = true;\r\n this.formattedCheckInDate = response.formattedCheckInDate;\r\n this.formattedBookingDate = response.formattedBookingDate;\r\n this.firstName = response.firstName;\r\n this.lastName = response.lastName;\r\n if (!this.firstName && !this.lastName) {\r\n this.bookingType = 'walkin';\r\n const x = response.mobilePhone.replace(/\\D/g, '').match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\r\n // eslint-disable-next-line prefer-template\r\n this.formatedPhone = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n }\r\n this.siteName = response.siteName;\r\n if (response.serviceType) {\r\n console.log(response.serviceType);\r\n this.serviceOne = response.serviceType;\r\n }\r\n if (response.serviceType2) {\r\n console.log(response.serviceType2);\r\n this.serviceTwo = response.serviceType2;\r\n }\r\n } else {\r\n this.displayTicketNotFound = true;\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n this.displayTicketNotFound = true;\r\n } finally {\r\n console.log('Inside check-in ticket page mounted finally');\r\n }\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.centerContainer {\r\n margin: auto;\r\n width: 95%;\r\n}\r\n\r\n.v-card {\r\n min-height: 100px !important;\r\n padding: 20px !important;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckInTicketPage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckInTicketPage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckInTicketPage.vue?vue&type=template&id=069e4c5d&scoped=true&\"\nimport script from \"./CheckInTicketPage.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckInTicketPage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckInTicketPage.vue?vue&type=style&index=0&id=069e4c5d&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"069e4c5d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isIdle === true && _vm.DisableConfirmation === false)?_c('div',[_c('v-dialog',{attrs:{\"max-width\":\"370\"},model:{value:(_vm.isIdle),callback:function ($$v) {_vm.isIdle=$$v},expression:\"isIdle\"}},[_c('v-card',{staticClass:\"pt-10 px-10\"},[_c('v-card-text',{staticClass:\"idle-text\"},[_vm._v(_vm._s(_vm.messageText))]),_c('v-card-actions',{staticClass:\"mx-auto text-center\",staticStyle:{\"width\":\"100%\"}},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.isIdle = false}}},[_vm._v(_vm._s(_vm.ButtonText))])],1)],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div v-if=\"isIdle === true && DisableConfirmation === false\">\r\n <v-dialog v-model=\"isIdle\" max-width=\"370\">\r\n <v-card class=\"pt-10 px-10\">\r\n <v-card-text class=\"idle-text\">{{messageText}}</v-card-text>\r\n <v-card-actions style=\"width:100%\" class=\"mx-auto text-center\">\r\n <v-btn color=\"primary\" @click=\"isIdle = false\">{{ButtonText}}</v-btn> \r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n </div>\r\n </template>\r\n \r\n <script>\r\n export default {\r\n name: \"IdleTimeout\",\r\n props: {\r\n IdleTimeout: Number,\r\n WarningTimeout: Number,\r\n DialogText: { required: true },\r\n ButtonText: { required: true },\r\n DisableConfirmation: Boolean\r\n },\r\n data() {\r\n return {\r\n idleTimer: \"\",\r\n warningTimer: \"\",\r\n countDownInterval: \"\",\r\n isIdle: Boolean,\r\n isTimedOut: Boolean,\r\n secondsRemaining: Number\r\n };\r\n },\r\n computed: {\r\n messageText() {\r\n return this.DialogText.replace(\"##\", this.secondsRemaining);\r\n }\r\n },\r\n created() {\r\n this.isIdle = false;\r\n this.secondsRemaining = 30;\r\n this.startIdleTimeOut();\r\n document.addEventListener(\"click\", this.onRefresh);\r\n document.addEventListener(\"mousemove\", this.onRefresh);\r\n // eslint-disable-next-line vue/no-mutating-props\r\n this.IdleTimeout = this.IdleTimeout || 20;\r\n },\r\n methods: {\r\n onRefresh() {\r\n if (this.idleTimer && !this.isIdle) {\r\n clearTimeout(this.idleTimer);\r\n this.startIdleTimeOut();\r\n }\r\n if (this.warningTimer) {\r\n clearTimeout(this.warningTimer);\r\n clearInterval(this.countDownInterval);\r\n }\r\n },\r\n setIsIdle(value) {\r\n this.isIdle = value;\r\n },\r\n warningTimeout() {\r\n this.setIsIdle(false);\r\n this.$emit(\"OnWarningTimeout\");\r\n },\r\n idleTimeout() {\r\n this.setIsIdle(true);\r\n this.startWarningTimeout();\r\n },\r\n startIdleTimeOut() {\r\n let idleTimeout = this.idleTimeout;\r\n this.idleTimer = setTimeout(function() {\r\n idleTimeout();\r\n }, this.IdleTimeout * 1000);\r\n },\r\n startWarningTimeout() {\r\n let warningTimeout = this.warningTimeout;\r\n if (this.DisableConfirmation === false) {\r\n this.startWarningCountDown();\r\n this.warningTimer = setTimeout(function() {\r\n warningTimeout();\r\n }, 30 * 1000);\r\n } else {\r\n warningTimeout();\r\n }\r\n },\r\n startWarningCountDown() {\r\n this.secondsRemaining = 30;\r\n let decrementSecondsRemaining = this.decrementSecondsRemaining;\r\n this.countDownInterval = setInterval(function() {\r\n decrementSecondsRemaining();\r\n }, 1000);\r\n },\r\n decrementSecondsRemaining() {\r\n --this.secondsRemaining;\r\n }\r\n }\r\n };\r\n </script>\r\n \r\n <style scoped>\r\n .v-btn {\r\n height: 50px !important;\r\n color: white !important;\r\n width: 260px;\r\n }\r\n </style>\r\n ","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IdleTimeout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IdleTimeout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IdleTimeout.vue?vue&type=template&id=3891abff&scoped=true&\"\nimport script from \"./IdleTimeout.vue?vue&type=script&lang=js&\"\nexport * from \"./IdleTimeout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IdleTimeout.vue?vue&type=style&index=0&id=3891abff&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3891abff\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <v-app>\r\n <idle-timeout :idle-timeout=\"idleTimeout\" :button-text=\"this.siteText.ui.sessionTimeoutButtonText\"\r\n :dialog-text=\"this.siteText.ui.sessionTimeoutMessage\" @OnWarningTimeout=\"OnWarningTimeOut\"\r\n v-if=\"enableIdleTimeout\"></idle-timeout>\r\n <v-app-bar app color=\"primary\" height=\"75\">\r\n <div>\r\n <v-img class=\"header-image\" alt=\"NYDMV Logo\" contain src=\"@/assets/images/dmv-logo.png\" max-height=\"50\" />\r\n </div>\r\n <v-spacer></v-spacer>\r\n <!-- <div class=\"red--text\">Not Official - Prototype Only</div> -->\r\n <div class=\"site-version\">V-{{ version }}</div>\r\n </v-app-bar>\r\n <v-main>\r\n <loading-busy :loading=\"loading\" :isAuthenticating=\"false\" text=\"\"></loading-busy>\r\n <div class=\"primary--text pa-1 grey lighten-2 d-print-none\">\r\n <h1 class=\"public-h6 appTitle\">{{ siteText.ui.mainHeader }}</h1>\r\n </div>\r\n <v-container style=\"max-width:1200px\">\r\n <component :hidden=\"loading\" :is=\"currentComponent\" ref=\"child\" :pageInfo=\"pageInfo\" @navigateTo=\"navigateTo\" />\r\n </v-container>\r\n </v-main>\r\n </v-app>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters, mapActions } from \"vuex\";\r\nimport WelcomePage from \"./pages/WelcomePage.vue\";\r\nimport DataCollectionPage from \"./pages/DataCollectionPage.vue\";\r\nimport NewReservationPage from \"./pages/NewReservationPage.vue\";\r\nimport ViewReservationPage from \"./pages/ViewReservationPage.vue\";\r\nimport CancelReservationPage from \"./pages/CancelReservationPage.vue\";\r\nimport CancelConfirmationPage from \"./pages/CancelConfirmationPage.vue\";\r\nimport RescheduleReservationPage from \"./pages/RescheduleReservationPage.vue\";\r\nimport SelectServicePage from \"./pages/SelectServicePage.vue\";\r\nimport DateOfBirthPage from \"./pages/DateOfBirthPage.vue\";\r\nimport SearchLocationPage from \"./pages/SearchLocationPage.vue\";\r\nimport SelectLocationPage from \"./pages/SelectLocationPage.vue\";\r\nimport SelectLocationCountyPage from \"./pages/SelectLocationCountyPage.vue\";\r\nimport SelectAllLocationsPage from \"./pages/SelectAllLocationsPage.vue\";\r\nimport SelectDateTimePage from \"./pages/SelectDateTimePage.vue\";\r\nimport ConfirmReservationPage from \"./pages/ConfirmReservationPage.vue\";\r\nimport LoadingBusy from \"./components/LoadingBusy.vue\";\r\nimport siteVersionInfo from './assets/SiteVersionInfo.json';\r\nimport MobileCheckInPage from \"./pages/MobileCheckInPage.vue\";\r\nimport CheckInTicketPage from \"./pages/CheckInTicketPage.vue\";\r\nimport IdleTimeout from \"./components/IdleTimeout.vue\";\r\nimport CheckInTicket from \"./components/CheckInTicket.vue\";\r\nimport parse from \"url-parse\";\r\n\r\nexport default {\r\n name: \"App\",\r\n\r\n components: {\r\n WelcomePage,\r\n DataCollectionPage,\r\n NewReservationPage,\r\n ViewReservationPage,\r\n CancelReservationPage,\r\n CancelConfirmationPage,\r\n RescheduleReservationPage,\r\n SelectServicePage,\r\n DateOfBirthPage,\r\n SearchLocationPage,\r\n SelectLocationPage,\r\n SelectLocationCountyPage,\r\n SelectAllLocationsPage,\r\n SelectDateTimePage,\r\n ConfirmReservationPage,\r\n LoadingBusy,\r\n MobileCheckInPage,\r\n CheckInTicketPage,\r\n IdleTimeout,\r\n CheckInTicket,\r\n },\r\n\r\n data: () => ({\r\n currentComponent: \"WelcomePage\",\r\n pageInfo: null,\r\n version: siteVersionInfo.VersionNumber,\r\n }),\r\n methods: {\r\n ...mapActions(['getSiteData']),\r\n ...mapActions(['reservationNumber', 'viewTicketGuid']),\r\n ...mapActions(['setDirectNavigation', 'confirmationNumber']),\r\n navigateTo(componentName, pageInfo) {\r\n this.currentComponent = componentName;\r\n this.pageInfo = pageInfo;\r\n\r\n document.title = process.env.VUE_APP_TITLE\r\n if (this.pageInfo && this.pageInfo.pageName) {\r\n document.title += ' | ' + this.pageInfo.pageName;\r\n } else if (this.currentComponent == 'WelcomePage') {\r\n document.title += ' | Welcome Page';\r\n }\r\n\r\n setTimeout(() => {\r\n const el = document.getElementById('page-content');\r\n if (el) {\r\n el.focus();\r\n }\r\n }, 750);\r\n },\r\n getConfirmationNumberFromUrl(parameterName) {\r\n let confirmationNumber = \"\";\r\n if (this.parameterExists(parameterName)) {\r\n confirmationNumber = this.getUrlParameter(parameterName);\r\n }\r\n return confirmationNumber;\r\n },\r\n isViewBooking() {\r\n const url = parse(window.location);\r\n if (url.query.indexOf(\"v=\") > -1) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n parameterExists(parameterName) {\r\n const url = parse(window.location);\r\n if (url.query.indexOf(`${parameterName}=`) > -1) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n getUrlParameter(name) {\r\n name = name.replace(/[\\\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n var results = regex.exec(location.search);\r\n return results === null\r\n ? \"\"\r\n : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n },\r\n determineStartPage() {\r\n let directNavigation = false;\r\n let confirmationNumber = '';\r\n let ticketGuid = '';\r\n let startComponent = 'WelcomePage';\r\n if (this.parameterExists(\"b\")) {\r\n // eslint-disable-next-line no-console\r\n confirmationNumber = this.getUrlParameter(\"b\");\r\n startComponent = 'MobileCheckInPage';\r\n } else if (this.parameterExists(\"v\")) {\r\n confirmationNumber = this.getUrlParameter(\"v\");\r\n startComponent = 'ViewReservationPage';\r\n directNavigation = true;\r\n } else if (this.parameterExists(\"r\")) {\r\n directNavigation = true;\r\n confirmationNumber = this.getUrlParameter(\"r\");\r\n startComponent = 'RescheduleReservationPage';\r\n } else if (this.parameterExists(\"t\")) {\r\n directNavigation = true;\r\n ticketGuid = this.getUrlParameter(\"t\");\r\n startComponent = 'CheckInTicketPage';\r\n }\r\n this.setDirectNavigation(directNavigation);\r\n this.currentComponent = startComponent;\r\n this.reservationNumber({ value: confirmationNumber });\r\n this.confirmationNumber(confirmationNumber);\r\n this.viewTicketGuid({ value: ticketGuid });\r\n console.log(confirmationNumber);\r\n console.log(ticketGuid);\r\n },\r\n OnWarningTimeOut() {\r\n window.location.reload();\r\n }\r\n },\r\n computed: {\r\n ...mapGetters([\"siteText\"]),\r\n ...mapGetters(['loading']),\r\n ...mapGetters(['sessionTimeout']),\r\n ...mapGetters(['directNavigation']),\r\n enableIdleTimeout() {\r\n return !(this.currentComponent === 'WelcomePage'\r\n || this.currentComponent === 'MobileCheckInPage'\r\n || this.directNavigation);\r\n },\r\n idleTimeout() {\r\n return this.sessionTimeout * 60;\r\n }\r\n },\r\n async beforeMount() {\r\n if (this.currentComponent == \"WelcomePage\") {\r\n document.title += \" | Welcome Page\";\r\n }\r\n await this.getSiteData();\r\n this.determineStartPage();\r\n },\r\n\r\n};\r\n</script>\r\n\r\n<style>\r\n@import \"./assets/css/publicwebsite.css\";\r\n@import \"vue-select/dist/vue-select.css\";\r\n</style>\r\n\r\n<style scoped>\r\n.appTitle {\r\n margin-left: 15px;\r\n}\r\n\r\n.headerBackground {\r\n background-image: url(\"~@/assets/bg-headerDefault.svg\");\r\n}\r\n</style>\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=42482fe2&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=42482fe2&prod&lang=css&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=42482fe2&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42482fe2\",\n null\n \n)\n\nexport default component.exports","//Import the json file for each language//\nimport en from \"./en.json\";\nimport es from \"./es.json\";\nimport cr from \"./cr.json\";\nimport ru from \"./ru.json\";\nimport zh from \"./zh.json\";\nimport bn from \"./bn.json\";\nimport yi from \"./yi.json\";\nimport ar from \"./ar.json\";\nimport ur from \"./ur.json\";\nimport pl from \"./pl.json\";\nimport fr from \"./fr.json\";\nimport it from \"./it.json\";\nimport ko from \"./ko.json\";\n\nexport const defaultLocale = \"en\";\n\nexport const rtlLanguages = [\n 'ar','yi','ur',\n];\n\nexport const languages = {\n en: en,\n es: es,\n cr: cr,\n ru: ru,\n zh: zh,\n bn: bn,\n yi: yi,\n ar: ar,\n ur: ur,\n pl: pl,\n fr: fr,\n it: it,\n ko: ko,\n};\n","export default {\n namespaced: true,\n state: {\n NumberOfServices: 0,\n SelectedService1:'',\n SelectedService2:'',\n SelectedServiceType1: '',\n },\n mutations: {\n numberOfServices(state, payload) {\n state.NumberOfServices = payload.value;\n },\n selectedService1(state, payload) {\n state.SelectedService1 = payload;\n },\n selectedService2(state, payload) {\n state.SelectedService2 = payload;\n },\n selectedServiceType1(state, payload) {\n state.SelectedServiceType1 = payload;\n }\n },\n actions: {\n numberOfServices(context, payload) {\n context.commit('numberOfServices', payload);\n },\n selectService1(context, payload) {\n context.commit('selectedService1', payload);\n },\n selectService2(context, payload) {\n context.commit('selectedService2', payload);\n },\n selectedServiceType1(context, payload) {\n context.commit('selectedServiceType1', payload);\n },\n clearSelectedServices(context) {\n context.commit('numberOfServices', 0);\n context.commit('selectedService1', '');\n context.commit('selectedService2', '');\n context.commit('selectedServiceType1', '');\n }\n },\n getters: {\n numberOfServices(state) {\n return state.NumberOfServices;\n },\n selectedService1(state) {\n return state.SelectedService1;\n },\n selectedService2(state) {\n return state.SelectedService2;\n },\n selectedServiceType1(state) {\n return state.SelectedServiceType1;\n },\n selectedServiceTypeId(state) {\n return state.SelectedService1 ? state.SelectedService1.TypeId : null;\n },\n selectedServiceTypeId2(state) {\n return state.SelectedService2 ? state.SelectedService2.TypeId : null;\n },\n serviceTypeForLookUp(state){\n let typeId = state.SelectedService1.TypeId;\n if(state.NumberOfServices > 1) {\n typeId = 400; //COMBO Service Type\n }\n return typeId;\n }\n\n },\n };\n ","/* eslint-disable no-unused-vars */\r\n//Application State Handler//\r\n\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport { languages, rtlLanguages } from \"../translations/translations\";\r\nimport selectedServiceModule from \"./selectedServiceModule\";\r\nimport nyApi from \"../api/nyApi\";\r\nimport common from \"../Utilities/common\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst updateRTLCssClasses = (isRTL) => {\r\n const menuLists = document.querySelectorAll('.v-menu__content');\r\n const direction = isRTL ? 'right' : 'left';\r\n menuLists.forEach(menuList => {\r\n menuList.style.textAlignment = direction;\r\n });\r\n}\r\n\r\nconst userSelection = {\r\n state: {\r\n Language: \"en\",\r\n ReservationOption: \"\",\r\n PreviousPage: \"WelcomePage\",\r\n NavToSelectAllLocationsPage: \"\",\r\n NavToSelectDateTimePage: \"\",\r\n NavFromSelectServicePage: false,\r\n DirectNavigation: false,\r\n Loading: false,\r\n rtlLanguages: rtlLanguages\r\n },\r\n mutations: {\r\n language(state, payload) {\r\n state.Language = payload.value;\r\n },\r\n reservationOption(state, payload) {\r\n state.ReservationOption = payload.value;\r\n },\r\n previousPage(state, payload) {\r\n state.PreviousPage = payload.value;\r\n },\r\n navToSelectAllLocationsPage(state, payload) {\r\n state.NavToSelectAllLocationsPage = payload.value;\r\n },\r\n navToSelectDateTimePage(state, payload) {\r\n state.NavToSelectDateTimePage = payload.value;\r\n },\r\n navFromSelectServicePage(state, payload) {\r\n state.NavFromSelectServicePage = payload.value;\r\n },\r\n directNavigation(state, payload) {\r\n state.DirectNavigation = payload;\r\n },\r\n loading(state, payload) {\r\n state.Loading = payload;\r\n },\r\n },\r\n actions: {\r\n language(context, payload) {\r\n context.commit(\"language\", payload);\r\n },\r\n reservationOption(context, payload) {\r\n context.commit(\"reservationOption\", payload);\r\n },\r\n previousPage(context, payload) {\r\n context.commit(\"previousPage\", payload);\r\n },\r\n navToSelectAllLocationsPage(context, payload) {\r\n context.commit(\"navToSelectAllLocationsPage\", payload);\r\n },\r\n navToSelectDateTimePage(context, payload) {\r\n context.commit(\"navToSelectDateTimePage\", payload);\r\n },\r\n navFromSelectServicePage(context, payload) {\r\n context.commit(\"navFromSelectServicePage\", payload);\r\n },\r\n setDirectNavigation(context, payload) {\r\n context.commit(\"directNavigation\", payload);\r\n },\r\n loading(context, payload) {\r\n context.commit(\"loading\", payload);\r\n },\r\n clearUserSelections(context) {\r\n context.commit(\"navToSelectAllLocationsPage\", \"\");\r\n context.commit(\"navToSelectDateTimePage\", \"\");\r\n context.commit(\"navFromSelectServicePage\", false);\r\n },\r\n },\r\n getters: {\r\n language(state) {\r\n return state.Language;\r\n },\r\n reservationOption(state) {\r\n return state.ReservationOption;\r\n },\r\n previousPage(state) {\r\n return state.PreviousPage;\r\n },\r\n navToSelectAllLocationsPage(state) {\r\n return state.NavToSelectAllLocationsPage;\r\n },\r\n navToSelectDateTimePage(state) {\r\n return state.NavToSelectDateTimePage;\r\n },\r\n navFromSelectServicePage(state) {\r\n return state.NavFromSelectServicePage;\r\n },\r\n directNavigation(state) {\r\n return state.DirectNavigation;\r\n },\r\n siteText(state) {\r\n console.log(languages);\r\n return languages[state.Language];\r\n },\r\n loading(state) {\r\n return state.Loading;\r\n },\r\n isRTLLanguage(state) {\r\n return state.rtlLanguages.some(\r\n (l) => l === state.Language\r\n );\r\n },\r\n },\r\n};\r\n\r\nconst siteData = {\r\n state: {\r\n ServiceTypes: [],\r\n Cities: [],\r\n Languages: [],\r\n LanguageDefault: \"\",\r\n SessionTimeout: \"\",\r\n LanguageSpecificServiceTypes: [],\r\n },\r\n mutations: {\r\n serviceTypes(state, payload) {\r\n state.ServiceTypes = payload;\r\n },\r\n cities(state, payload) {\r\n state.Cities = payload;\r\n },\r\n languages(state, payload) {\r\n state.Languages = payload;\r\n },\r\n languageDefault(state, payload) {\r\n state.LanguageDefault = payload;\r\n },\r\n sessionTimeout(state, payload) {\r\n state.SessionTimeout = payload;\r\n },\r\n langaugeSpecificServiceTypes(state, payload) {\r\n state.LanguageSpecificServiceTypes = payload;\r\n },\r\n },\r\n actions: {\r\n serviceTypes(context, payload) {\r\n context.commit(\"serviceTypes\", payload);\r\n },\r\n cities(context, payload) {\r\n context.commit(\"cities\", payload);\r\n },\r\n languages(context, payload) {\r\n context.commit(\"languages\", payload);\r\n },\r\n languageDefault(context, payload) {\r\n context.commit(\"languageDefault\", payload);\r\n },\r\n sessionTimeout(context, payload) {\r\n context.commit(\"sessionTimeout\", payload);\r\n },\r\n async getSiteData(context) {\r\n try {\r\n context.dispatch(\"loading\", true);\r\n const data = await nyApi.GetSiteData();\r\n context.commit(\"serviceTypes\", data.ServiceTypes);\r\n context.commit(\"cities\", data.Cities);\r\n context.commit(\"languages\", data.Languages);\r\n context.commit(\r\n \"sessionTimeout\",\r\n data.SiteConfigSettings.SessionTimeout\r\n );\r\n for (let i = 0; i < data.Languages.length; i += 1) {\r\n if (data.Languages[i].Default) {\r\n console.log(data.Languages[i].Name);\r\n context.commit(\"languageDefault\", data.Languages[i].Code);\r\n context.commit({\r\n type: \"language\",\r\n value: data.Languages[i].Code,\r\n });\r\n }\r\n }\r\n console.log(data.ServiceTypes);\r\n console.log(data.Cities);\r\n console.log(data.Languages);\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n },\r\n async getLocaleSpecificServiceTypes(context) {\r\n try {\r\n context.dispatch(\"loading\", true);\r\n const langauge = context.getters.language;\r\n const langaugeSpecificServiceTypes = await nyApi.GetServiceTypes(\r\n langauge\r\n );\r\n context.commit(\r\n \"langaugeSpecificServiceTypes\",\r\n langaugeSpecificServiceTypes\r\n );\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n },\r\n },\r\n getters: {\r\n serviceTypes(state, _, rootState) {\r\n return rootState.userSelection.Language === \"en\"\r\n ? state.ServiceTypes\r\n : state.LanguageSpecificServiceTypes;\r\n },\r\n cities(state) {\r\n return state.Cities;\r\n },\r\n languages(state) {\r\n return state.Languages;\r\n },\r\n languageDefault(state) {\r\n return state.LanguageDefault;\r\n },\r\n sessionTimeout(state) {\r\n return state.SessionTimeout;\r\n },\r\n serviceType: (state, _, rootState) => (typeId) => {\r\n const serviceTypes =\r\n rootState.userSelection.Language === \"en\"\r\n ? state.ServiceTypes\r\n : state.LanguageSpecificServiceTypes;\r\n\r\n let serviceType = null;\r\n if (serviceTypes) {\r\n serviceTypes.every((element) => {\r\n serviceType = element.ServiceTypes.find((s) => s.TypeId === typeId);\r\n let status = serviceType ? false : true;\r\n return status;\r\n });\r\n }\r\n return serviceType;\r\n },\r\n },\r\n};\r\n\r\nconst newAppointment = {\r\n state: {\r\n City: \"\",\r\n Zip: \"\",\r\n UserInfo: {},\r\n LocationId: 0,\r\n ServiceTypeId1: 0,\r\n ServiceTypeId2: 0,\r\n Booking: {},\r\n AvailableLocations: [],\r\n AvailableLocationsByCounty: [],\r\n LocationAvailability: \"\",\r\n AllLocations: [],\r\n AvailableLocationDates: [],\r\n MoreDatesAvailable: false,\r\n SelectedLocation: {},\r\n SelectedTimeSlot: {},\r\n Reschedule: false,\r\n DateOfBirth: \"\",\r\n },\r\n mutations: {\r\n availableLocations(state, payload) {\r\n state.AvailableLocations = payload;\r\n },\r\n availableLocationsByCounty(state, payload) {\r\n state.AvailableLocationsByCounty = payload;\r\n },\r\n selectedLocation(state, payload) {\r\n state.SelectedLocation = payload;\r\n },\r\n availableLocationDates(state, payload) {\r\n state.AvailableLocationDates = payload;\r\n },\r\n moreDatesAvailable(state, payload) {\r\n state.MoreDatesAvailable = payload;\r\n },\r\n city(state, payload) {\r\n state.City = payload;\r\n },\r\n zip(state, payload) {\r\n state.Zip = payload;\r\n },\r\n userInfo(state, payload) {\r\n state.UserInfo = payload;\r\n },\r\n selectedTimeSlot(state, payload) {\r\n state.SelectedTimeSlot = payload;\r\n },\r\n booking(state, payload) {\r\n state.Booking = payload;\r\n },\r\n reschedule(state, payload) {\r\n state.Reschedule = payload;\r\n },\r\n dateOfBirth(state, payload) {\r\n state.DateOfBirth = payload;\r\n },\r\n },\r\n actions: {\r\n async getAvailableLocations(context, data) {\r\n console.log(data);\r\n try {\r\n context.dispatch(\"loading\", true);\r\n const dob = context.getters.dateOfBirth;\r\n const startDate = common.determineAvailabilityStartDate(\r\n context,\r\n null,\r\n data.serviceTypeId,\r\n data.serviceTypeId2,\r\n dob\r\n );\r\n const availableLocations = await nyApi.GetAvailbleLocations(\r\n data.city,\r\n data.zip,\r\n data.serviceTypeId,\r\n data.serviceTypeId2,\r\n startDate\r\n );\r\n console.log(availableLocations);\r\n context.commit(\"availableLocations\", availableLocations);\r\n return availableLocations && availableLocations.length > 0;\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n },\r\n async getLocationsWithServiceType(context, data) {\r\n const typeId = context.getters[\"selectedService/selectedServiceTypeId\"];\r\n const typeId2 = context.getters[\"selectedService/selectedServiceTypeId2\"];\r\n const startDate = common.determineAvailabilityStartDate(\r\n context,\r\n null,\r\n typeId,\r\n typeId2,\r\n context.getters.dateOfBirth\r\n );\r\n let locations = null;\r\n try {\r\n context.dispatch(\"loading\", true);\r\n locations = await nyApi.GetLocationsWithServiceType(\r\n data.serviceTypeId,\r\n data.serviceTypeId2,\r\n startDate\r\n );\r\n console.log(locations);\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n return locations;\r\n },\r\n async getLocationsByCountyWithServiceType(context, data) {\r\n const typeId = context.getters[\"selectedService/selectedServiceTypeId\"];\r\n const typeId2 = context.getters[\"selectedService/selectedServiceTypeId2\"];\r\n const startDate = common.determineAvailabilityStartDate(\r\n context,\r\n null,\r\n typeId,\r\n typeId2,\r\n context.getters.dateOfBirth\r\n );\r\n let locationsByCounty = null;\r\n try {\r\n context.dispatch(\"loading\", true);\r\n locationsByCounty = await nyApi.GetLocationsWithServiceTypeByCounty(\r\n data.serviceTypeId,\r\n data.serviceTypeId2,\r\n startDate\r\n );\r\n console.log(locationsByCounty);\r\n } catch(error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n return locationsByCounty;\r\n },\r\n selectLocation(context, data) {\r\n context.commit(\"selectedLocation\", data);\r\n context.commit(\"availableLocationDates\", []);\r\n },\r\n async getLocationAvailability(context, date) {\r\n try {\r\n context.dispatch(\"loading\", true);\r\n const typeId = context.getters[\"selectedService/selectedServiceTypeId\"];\r\n const typeId2 =\r\n context.getters[\"selectedService/selectedServiceTypeId2\"];\r\n const locationId = context.getters.selectedLocation.Id;\r\n const startDate = common.determineAvailabilityStartDate(\r\n context,\r\n date,\r\n typeId,\r\n typeId2,\r\n context.getters.dateOfBirth\r\n );\r\n const locationAvailability = await nyApi.GetLocationAvailability(\r\n locationId,\r\n typeId,\r\n typeId2,\r\n startDate\r\n );\r\n console.log(locationAvailability);\r\n if (\r\n locationAvailability &&\r\n locationAvailability.LocationAvailabilityDates.length > 0\r\n ) {\r\n let dates = context.getters.availableLocationDates;\r\n dates = common.updateLocationAvailability(\r\n locationId,\r\n dates,\r\n locationAvailability\r\n );\r\n //dates = dates.concat(locationAvailability.LocationAvailabilityDates);\r\n context.commit(\"availableLocationDates\", dates);\r\n context.commit(\r\n \"moreDatesAvailable\",\r\n locationAvailability.MoreDatesAvailable\r\n );\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n },\r\n city(context, data) {\r\n context.commit(\"city\", data);\r\n },\r\n zip(context, data) {\r\n context.commit(\"zip\", data);\r\n },\r\n setUserInfo(context, data) {\r\n context.commit(\"userInfo\", data);\r\n },\r\n setTimeSlot(context, data) {\r\n context.commit(\"selectedTimeSlot\", data);\r\n },\r\n async saveBooking(context) {\r\n //Get Data From Store//\r\n try {\r\n context.dispatch(\"loading\", true);\r\n const g = context.getters;\r\n const typeId1 = g[\"selectedService/selectedServiceTypeId\"];\r\n const typeId2 = g[\"selectedService/selectedServiceTypeId2\"];\r\n const selectedSlot = g.selectedTimeSlot;\r\n const userInfo = g.userInfo;\r\n let bookingResult = null;\r\n if (!g.reschedule) {\r\n bookingResult = await nyApi.SaveBooking(\r\n typeId1,\r\n typeId2,\r\n selectedSlot.StartDateTime,\r\n selectedSlot.Duration,\r\n userInfo.firstName,\r\n userInfo.lastName,\r\n userInfo.email,\r\n common.normalizePhoneNumber(userInfo.phone),\r\n g.selectedLocation.Id,\r\n selectedSlot.SlotId,\r\n g.dateOfBirth\r\n );\r\n } else {\r\n bookingResult = await nyApi.RescheduleBooking(\r\n typeId1,\r\n typeId2,\r\n selectedSlot.StartDateTime,\r\n selectedSlot.Duration,\r\n userInfo.firstName,\r\n userInfo.lastName,\r\n userInfo.email,\r\n common.normalizePhoneNumber(userInfo.phone),\r\n g.selectedLocation.Id,\r\n selectedSlot.SlotId,\r\n g.dateOfBirth\r\n );\r\n }\r\n\r\n //TODO: Add error checking //\r\n context.commit(\"booking\", bookingResult.Booking);\r\n console.log(bookingResult);\r\n return bookingResult;\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n },\r\n setReschedule(context, data) {\r\n context.commit(\"reschedule\", data);\r\n },\r\n dateOfBirth(context, data) {\r\n context.commit(\"dateOfBirth\", data);\r\n },\r\n clearNewAppointmentData(context) {\r\n // context.commit('userInfo', {});\r\n context.commit(\"city\", \"\");\r\n context.commit(\"zip\", \"\");\r\n context.commit(\"reschedule\", false);\r\n context.commit(\"dateOfBirth\", \"\");\r\n context.commit(\"selectedTimeSlot\", {});\r\n context.commit(\"availableLocations\", []);\r\n context.commit(\"selectedLocation\", {});\r\n context.commit(\"availableLocationDates\", []);\r\n context.commit(\"availableLocationsByCounty\",[]);\r\n },\r\n setAvailableLocationsByCounty(context, data) {\r\n context.commit(\"availableLocationsByCounty\", data);\r\n }\r\n },\r\n getters: {\r\n city(state) {\r\n return state.City;\r\n },\r\n zip(state) {\r\n return state.Zip;\r\n },\r\n availableLocations(state) {\r\n return state.AvailableLocations;\r\n },\r\n selectedLocation(state) {\r\n return state.SelectedLocation;\r\n },\r\n availableLocationDates(state) {\r\n return state.AvailableLocationDates;\r\n },\r\n moreDatesAvailable(state) {\r\n return state.MoreDatesAvailable;\r\n },\r\n userInfo(state) {\r\n return state.UserInfo;\r\n },\r\n selectedTimeSlot(state) {\r\n return state.SelectedTimeSlot;\r\n },\r\n booking(state) {\r\n return state.Booking;\r\n },\r\n maxAvailableDate(state) {\r\n const availableDates = state.AvailableLocationDates.map((ad) => {\r\n return new Date(ad.AvailabilityDate.replace(\"T00:00:00\", \"T00:00\"));\r\n });\r\n console.log(availableDates);\r\n const maxDate = availableDates.slice(-1)[0];\r\n console.log(maxDate);\r\n return maxDate;\r\n },\r\n minAvailableDate(state) {\r\n const availableDates = state.AvailableLocationDates.map((ad) => {\r\n return new Date(ad.AvailabilityDate.replace(\"T00:00:00\", \"T00:00\"));\r\n });\r\n const minDate = availableDates.sort((a, b) => a - b)[0];\r\n console.log(minDate);\r\n return minDate;\r\n },\r\n reschedule(state) {\r\n return state.Reschedule;\r\n },\r\n dateOfBirth(state) {\r\n return state.DateOfBirth;\r\n },\r\n availableLocationsByCounty(state) {\r\n return state.AvailableLocationsByCounty;\r\n }\r\n },\r\n};\r\n\r\nconst existingAppoinments = {\r\n state: {\r\n Bookings: [],\r\n Phone: \"\",\r\n Email: \"\",\r\n ConfirmationNumber: \"\",\r\n SelectedBooking: null,\r\n CancelledBooking: null,\r\n },\r\n mutations: {\r\n bookings(state, payload) {\r\n state.Bookings = payload;\r\n },\r\n phone(state, payload) {\r\n state.Phone = payload;\r\n },\r\n email(state, payload) {\r\n state.Email = payload;\r\n },\r\n confirmationNumber(state, payload) {\r\n state.ConfirmationNumber = payload;\r\n },\r\n selectedBooking(state, payload) {\r\n state.SelectedBooking = payload;\r\n },\r\n cancelledBooking(state, payload) {\r\n state.CancelBooking = payload;\r\n },\r\n },\r\n actions: {\r\n async getExistingBookings(context, data) {\r\n context.dispatch(\"loading\", true);\r\n const bookings = await nyApi.GetBooking(\r\n data.email,\r\n data.phone,\r\n data.confirmationNumber\r\n );\r\n context.commit(\"bookings\", bookings);\r\n context.commit(\"selectedBooking\", null);\r\n context.dispatch(\"loading\", false);\r\n return bookings && bookings.length > 0;\r\n },\r\n selectBooking(context, data) {\r\n context.commit(\"selectedBooking\", data);\r\n },\r\n async cancelBooking(context, bookingId) {\r\n try {\r\n context.dispatch(\"loading\", true);\r\n const result = await nyApi.CancelBooking(bookingId);\r\n console.log(result);\r\n context.commit(\"cancelledBooking\", result);\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n context.dispatch(\"loading\", false);\r\n }\r\n },\r\n clearExistingAppointmentData(context) {\r\n context.commit(\"bookings\", []);\r\n context.commit(\"selectedBooking\", null);\r\n context.commit(\"cancelledBooking\", null);\r\n context.commit(\"phone\", \"\");\r\n context.commit(\"email\", \"\");\r\n context.commit(\"confirmationNumber\", \"\");\r\n },\r\n confirmationNumber(context, payload) {\r\n context.commit(\"confirmationNumber\", payload);\r\n },\r\n },\r\n getters: {\r\n bookings(state) {\r\n return state.Bookings;\r\n },\r\n selectedBooking(state) {\r\n return state.SelectedBooking;\r\n },\r\n cancelledBooking(state) {\r\n return state.CancelBooking;\r\n },\r\n confirmationNumber(state) {\r\n return state.ConfirmationNumber;\r\n },\r\n },\r\n};\r\n\r\nconst mobileCheckIn = {\r\n state: {\r\n ReservationNumber: \"\",\r\n ViewTicketGuid: \"\",\r\n },\r\n mutations: {\r\n reservationNumber(state, payload) {\r\n state.ReservationNumber = payload.value;\r\n },\r\n viewTicketGuid(state, payload) {\r\n state.ViewTicketGuid = payload.value;\r\n },\r\n },\r\n actions: {\r\n reservationNumber(context, payload) {\r\n context.commit(\"reservationNumber\", payload);\r\n },\r\n viewTicketGuid(context, payload) {\r\n context.commit(\"viewTicketGuid\", payload);\r\n },\r\n },\r\n getters: {\r\n reservationNumber(state) {\r\n return state.ReservationNumber;\r\n },\r\n viewTicketGuid(state) {\r\n return state.ViewTicketGuid;\r\n },\r\n },\r\n};\r\n\r\nconst store = new Vuex.Store({\r\n modules: {\r\n userSelection,\r\n siteData,\r\n selectedService: selectedServiceModule,\r\n newAppointment,\r\n existingAppoinments,\r\n mobileCheckIn,\r\n },\r\n});\r\n\r\nexport default store;\r\n","import Vue from \"vue\";\nimport Vuetify from \"vuetify/lib/framework\";\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n dark: false,\n themes: {\n light: {\n primary: \"#0B5583\",\n secondary: \"#ffffff\",\n accent: \"#e0ba4d\",\n },\n },\n },\n});\n","import Vue from 'vue';\r\nimport axios from 'axios';\r\nimport App from './App.vue';\r\nimport store from './store/index';\r\nimport vuetify from './plugins/vuetify'\r\nimport \"./js/app\";\r\nimport '../public/assets/css/printStyle.css'\r\n\r\nVue.config.productionTip = false;\r\nVue.prototype.myWindow = window;\r\ndocument.title = process.env.VUE_APP_TITLE;\r\n\r\n// axios global configuraiton\r\naxios.defaults.baseURL = process.env.VUE_APP_API_ENDPOINT;\r\n\r\nconsole.log(process.env);\r\n\r\nimport vSelect from \"vue-select\";\r\n\r\nVue.component(\"vc-select\", vSelect);\r\n\r\nnew Vue({\r\n vuetify,\r\n render: h => h(App),\r\n store\r\n}).$mount('#app')\r\n\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"4\":\"07a3b935\",\"120\":\"86ac6472\",\"856\":\"a606ea4f\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"ny-rcf-publicwebsite:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkny_rcf_publicwebsite\"] = self[\"webpackChunkny_rcf_publicwebsite\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(2747); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["localStorage","getItem","console","log","message","params","String","format","args","Array","prototype","slice","call","arguments","replace","match","number","OnWarningTimeOut","attrs","staticClass","require","_vm","loading","siteText","staticStyle","currentComponent","ref","tag","on","_c","class","isRTLLanguage","languages","languageLabel","scopedSlots","key","fn","Name","model","value","language","callback","expression","staticRenderFns","normalizePhoneNumber","phoneNumber","normalizedPhone","determineAvailabilityStartDate","context","startDate","typeId1","typeId2","dateOfBirth","newStartDate","Date","serviceType1","getters","serviceType","serviceType2","MinimumAge","minimumAge","minBirthDate","setFullYear","getFullYear","dob","newCalculatedDate","setDate","getDate","setMonth","getMonth","updateLocationAvailability","currentLocation","currentLocationAvailabilityDates","locationAvailability","updatedLocationAvailability","LocationAvailabilityDates","forEach","date","index","find","d","AvailabilityDate","push","updateSelectAriaLabel","control","text","$el","children","length","ariaLabel","render","this","_self","directives","name","rawName","showLabel","_v","_s","label","placeHolder","disabled","direction","onMousedown","onKeydown","isDropdownOpen","listBoxId","toString","toggleDropDown","onFocus","onBlur","selectedItem","getItemLabel","defaulttext","showItems","listTop","_l","items","item","getItemKey","$event","type","indexOf","_k","keyCode","selectItem","_t","normalizeOptionForSlot","props","selectName","itemLabel","itemId","data","itemIndex","dropDownOpening","defaultName","searchString","computed","isTrackingValues","Object","fillButton","randomID","methods","getSearchString","window","e","searchList","search","getElementById","getElementsByClassName","moveNext","movePrevious","sortAndStringify","sort","ordered","setInitialFocus","reduce","setInternalValueFromOptions","updateValue","filterOptions","toLowerCase","filter","getIndexByLetter","array","watch","immediate","handler","component","Code","components","OpusSelectOnlyDropDown","languageGetter","mounted","common","languageAction","reservationOptionAction","previousPageAction","clearSelectedServices","pageName","header","subHeader","subHeader2","languageChange","pageInfo","domProps","displayErrorMessage","isValidEmail","email","confirmationNumber","dataCollectionSubmit","googleRecaptchaApiKey","action","callService","url","method","axios","methodTypes","get","delete","post","put","async","response","token","city","zip","serviceTypeId","serviceTypeId2","typeId","zipCode","cityName","locationId","bookingDateTime","bookingDuration","firstName","lastName","cellPhone","siteId","slotId","bookingData","sendSms","bookingId","locale","lat","lon","ticketGuid","isAuthenticating","required","default","loadingBusy","googleRecaptchaApiUrl","recaptchaScript","document","verifyRecaptcha","grecaptcha","isValid","RecaptchaValidation","emailConfirm","phone","errorMessage","validEmail","validPhone","nextPage","back","submit","isValidPhone","isNumber","isAlphanumeric","formatPhoneNumber","onRecaptchaInvalid","displayRTL","$$v","valid","emailMismatch","displayInvalidPhoneMessage","buildBookingExistsError","isValidFirstName","isValidLastName","emailAddresses","booking","viewMessageText","directNavigation","showBarcode","serviceType1Details","serviceType2Details","FormattedBookingTime","showPrintLink","_e","footerText","footerText2","showMapLink","showServiceTypeLink","isRTL","Printer","doc","x","y","width","windowWidth","appointmentDate","month","jsbarcode","lineColor","background","height","displayValue","ReservationDetails","displayReservationNotFound","cancelReservation","rescheduleReservation","existingBookings","bookings","cancelConfirmNewReservation","numberOfServicesAction","selectService1","selectService2","rescheduleReservationPageButton","setServiceTypes","displaySelectedService","selectedService1","Url","UrlText","displaySelectedService2","selectedService2","AdditionalInfoText","disabledService","serviceDropdownList","service","serviceTypes","selectedServiceType1","services","disabledServiceType","displaySelectAnotherService","numberOfServices","disabledContinue","displayRemoveServices","servicesRemoved","selectedServiceType1Action","navFromSelectServicePageAction","serviceContinue","serviceTypeChange","serviceTypeIndex","filterServices","serviceChange","selectAnotherService","removeServices","serviceTypesGetter","numberOfServicesGetter","selectedService1Getter","selectedService2Getter","selectedServiceType1Getter","dOB16YearsOldText","displayDOB18YearsOldText","dOBDateOfBirthMonth","months","Text","days","day","year","service1DOB16","service1DOB18","service2DOB16","service2DOB18","dOBSubmit","displayDOB16YearsOldText","years","yearUpper","arraySize","yearsArray","displayDateOfBirth","displayInvalidDOBMessage","age","disableSubmit","formattedDateOfBirth","citySearch","navToSelectAllLocationsPageAction","setCity","setZip","seeAllLocations","cityList","location","navToSelectDateTimePageAction","selectThisLocation","searchValue","county","open","Address","onLocationSelected","locationCounties","formatCountyName","newCounty","locations","locationChange","selectDateTimeSelectADate","style","availableDates","selectDateTimeSelectATime","time","selectedFormattedAppointmentTime","reschedule","selectedTimeSlot","rescheduleMessage","isMinMonth","isMaxMonth","dayNames","dayName","isAvailable","ariaDate","keys","up","down","left","right","fullDayNames","dates","firstSatDate","selectedDate","getDates","isSelected","isMinDate","onNextMonth","onPreviousMonth","updateMonth","onDateChanged","fullDate","isDateSelected","getDayNames","weekday","timeZone","getMonthNames","isAvailableDate","getFullDate","getAriaDate","localeFormattedDate","handleKeyDown","increment","created","minDate","OpusCalendarDatePicker","times","selectedDate1","picker","pickerDate","newMonth","datePickerChange","onTimeChange","lastDayOfMonth","allowedDates","getFirstDayOfMonth","getLastDayOfMonth","determinErrorMessage","bookingResult","maxDate","availableTimes","unique","o","selectedFormatedAppointmentDate","home","print","displaySuccessfulCheckIn","ui","successfulCheckInText","bookingType","siteName","formatedPhone","ticketNumber","serviceOne","serviceTwo","formattedCheckInDate","formattedBookingDate","CheckInTicket","displayReservationNotCloseEnough","displayCheckInTooEarly","displayNoLocationAvailable","checkInStartTime","siteAddress","formatedDateTime","options","enableHighAccuracy","timeout","maxDistance","showPosition","showError","getLocation","navigator","displayTicket","displayTicketNotFound","isIdle","IdleTimeout","WarningTimeout","DialogText","ButtonText","DisableConfirmation","idleTimer","warningTimer","countDownInterval","isTimedOut","secondsRemaining","messageText","onRefresh","clearTimeout","clearInterval","setIsIdle","warningTimeout","idleTimeout","startIdleTimeOut","startWarningTimeout","startWarningCountDown","decrementSecondsRemaining","WelcomePage","DataCollectionPage","NewReservationPage","ViewReservationPage","CancelReservationPage","CancelConfirmationPage","RescheduleReservationPage","SelectServicePage","DateOfBirthPage","SearchLocationPage","SelectLocationPage","SelectLocationCountyPage","SelectAllLocationsPage","SelectDateTimePage","ConfirmReservationPage","LoadingBusy","MobileCheckInPage","CheckInTicketPage","version","navigateTo","setTimeout","el","getConfirmationNumberFromUrl","isViewBooking","parameterExists","getUrlParameter","decodeURIComponent","determineStartPage","startComponent","enableIdleTimeout","rtlLanguages","en","es","cr","ru","zh","bn","yi","ar","ur","pl","fr","it","ko","namespaced","state","NumberOfServices","SelectedService1","SelectedService2","SelectedServiceType1","mutations","payload","actions","commit","selectedServiceTypeId","TypeId","selectedServiceTypeId2","serviceTypeForLookUp","Vue","Vuex","userSelection","Language","ReservationOption","PreviousPage","NavToSelectAllLocationsPage","NavToSelectDateTimePage","NavFromSelectServicePage","DirectNavigation","Loading","reservationOption","previousPage","navToSelectAllLocationsPage","navToSelectDateTimePage","navFromSelectServicePage","setDirectNavigation","clearUserSelections","some","l","siteData","ServiceTypes","Cities","Languages","LanguageDefault","SessionTimeout","LanguageSpecificServiceTypes","cities","languageDefault","sessionTimeout","langaugeSpecificServiceTypes","dispatch","nyApi","GetSiteData","SiteConfigSettings","i","Default","error","langauge","GetServiceTypes","_","rootState","every","element","s","status","newAppointment","City","Zip","UserInfo","LocationId","ServiceTypeId1","ServiceTypeId2","Booking","AvailableLocations","AvailableLocationsByCounty","LocationAvailability","AllLocations","AvailableLocationDates","MoreDatesAvailable","SelectedLocation","SelectedTimeSlot","Reschedule","DateOfBirth","availableLocations","availableLocationsByCounty","selectedLocation","availableLocationDates","moreDatesAvailable","userInfo","GetAvailbleLocations","GetLocationsWithServiceType","locationsByCounty","GetLocationsWithServiceTypeByCounty","selectLocation","Id","GetLocationAvailability","setUserInfo","setTimeSlot","g","selectedSlot","RescheduleBooking","StartDateTime","Duration","SlotId","SaveBooking","setReschedule","clearNewAppointmentData","setAvailableLocationsByCounty","maxAvailableDate","map","ad","minAvailableDate","a","b","existingAppoinments","Bookings","Phone","Email","ConfirmationNumber","SelectedBooking","CancelledBooking","selectedBooking","cancelledBooking","CancelBooking","GetBooking","selectBooking","result","clearExistingAppointmentData","mobileCheckIn","ReservationNumber","ViewTicketGuid","reservationNumber","viewTicketGuid","store","modules","selectedService","selectedServiceModule","Vuetify","theme","dark","themes","light","primary","secondary","accent","title","process","vSelect","vuetify","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","splice","r","n","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","t","mode","then","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","Promise","all","promises","u","miniCssF","globalThis","Function","prop","hasOwnProperty","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","promise","resolve","reject","Error","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","id","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}