@roomstay/frontend 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/201.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/760.bundle.js +1 -0
- package/dist/main.bundle.js +1 -1
- package/dist/src/api/AddonAPI.d.ts +3 -3
- package/dist/src/api/AddonAPI.js +3 -3
- package/dist/src/api/AddonAPI.js.map +1 -1
- package/dist/src/api/AvailabilityAPI.d.ts +3 -3
- package/dist/src/api/AvailabilityAPI.js +5 -5
- package/dist/src/api/AvailabilityAPI.js.map +1 -1
- package/dist/src/api/BaseAPI.js +1 -1
- package/dist/src/api/BaseAPI.js.map +1 -1
- package/dist/src/api/BookingAPI.d.ts +7 -7
- package/dist/src/api/BookingAPI.js +7 -7
- package/dist/src/api/BookingAPI.js.map +1 -1
- package/dist/src/api/ExchangeRateAPI.d.ts +2 -2
- package/dist/src/api/ExchangeRateAPI.js +1 -1
- package/dist/src/api/ExchangeRateAPI.js.map +1 -1
- package/dist/src/api/HotelAPI.d.ts +5 -5
- package/dist/src/api/HotelAPI.js +1 -1
- package/dist/src/api/HotelAPI.js.map +1 -1
- package/dist/src/api/MemberAPI.d.ts +1 -1
- package/dist/src/api/MemberAPI.js +1 -1
- package/dist/src/api/MemberAPI.js.map +1 -1
- package/dist/src/api/ReservationAPI.d.ts +6 -6
- package/dist/src/api/ReservationAPI.js +1 -1
- package/dist/src/api/ReservationAPI.js.map +1 -1
- package/dist/src/api/SessionAPI.d.ts +1 -1
- package/dist/src/api/SessionAPI.js +1 -1
- package/dist/src/api/SessionAPI.js.map +1 -1
- package/dist/src/api/members-service/MembersServiceAPI.js +1 -1
- package/dist/src/api/members-service/MembersServiceAPI.js.map +1 -1
- package/dist/src/components/User/Forms/ForgotPasswordForm.js +6 -6
- package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
- package/dist/src/components/User/Forms/SignInForm.js +9 -9
- package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
- package/dist/src/components/User/Forms/SignUpForm.js +11 -11
- package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
- package/dist/src/components/generic/Alert.d.ts +1 -1
- package/dist/src/components/generic/Alert.js +1 -1
- package/dist/src/components/generic/Alert.js.map +1 -1
- package/dist/src/components/generic/BEButton.d.ts +2 -2
- package/dist/src/components/generic/BEButton.js +2 -2
- package/dist/src/components/generic/BEButton.js.map +1 -1
- package/dist/src/components/generic/BackButton.js +2 -2
- package/dist/src/components/generic/BackButton.js.map +1 -1
- package/dist/src/components/generic/BookNowPayLaterInfoBlock.js +4 -4
- package/dist/src/components/generic/BookNowPayLaterInfoBlock.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +2 -2
- package/dist/src/components/generic/BookingWizard/BookingWizard.js +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +2 -2
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +4 -4
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +6 -6
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.d.ts +2 -2
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +3 -3
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -1
- package/dist/src/components/generic/Card/Card/Card.js +1 -1
- package/dist/src/components/generic/Card/Card/Card.js.map +1 -1
- package/dist/src/components/generic/Card/IconNavCard/IconNavCard.d.ts +2 -2
- package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js +4 -4
- package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js.map +1 -1
- package/dist/src/components/generic/Checkbox/Checkbox.js +2 -2
- package/dist/src/components/generic/Checkbox/Checkbox.js.map +1 -1
- package/dist/src/components/generic/Currency.js +5 -5
- package/dist/src/components/generic/Currency.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.js +4 -4
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.d.ts +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js +2 -2
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js +3 -3
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js +7 -7
- package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.d.ts +1 -1
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js +2 -2
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js.map +1 -1
- package/dist/src/components/generic/Distance.js +2 -2
- package/dist/src/components/generic/Distance.js.map +1 -1
- package/dist/src/components/generic/Headline.d.ts +2 -2
- package/dist/src/components/generic/Headline.js.map +1 -1
- package/dist/src/components/generic/Icon/Icon.d.ts +1 -1
- package/dist/src/components/generic/Icon/Icon.js +1 -1
- package/dist/src/components/generic/Icon/Icon.js.map +1 -1
- package/dist/src/components/generic/IconText/IconText.d.ts +2 -2
- package/dist/src/components/generic/IconText/IconText.js +3 -3
- package/dist/src/components/generic/IconText/IconText.js.map +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.d.ts +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.js.map +1 -1
- package/dist/src/components/generic/Notification.d.ts +1 -1
- package/dist/src/components/generic/Notification.js +2 -2
- package/dist/src/components/generic/Notification.js.map +1 -1
- package/dist/src/components/generic/NumberIncrement.js +3 -3
- package/dist/src/components/generic/NumberIncrement.js.map +1 -1
- package/dist/src/components/generic/Overlay/Overlay.js +2 -2
- package/dist/src/components/generic/Overlay/Overlay.js.map +1 -1
- package/dist/src/components/generic/PasswordBox/PasswordBox.js +1 -1
- package/dist/src/components/generic/PasswordBox/PasswordBox.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/CardTypeSelect.d.ts +1 -1
- package/dist/src/components/generic/PaymentCard/CardTypeSelect.js +4 -4
- package/dist/src/components/generic/PaymentCard/CardTypeSelect.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCard.d.ts +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCard.js +3 -3
- package/dist/src/components/generic/PaymentCard/PaymentCard.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.d.ts +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.js +9 -9
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.js.map +1 -1
- package/dist/src/components/generic/Pill.d.ts +1 -1
- package/dist/src/components/generic/Pill.js +1 -1
- package/dist/src/components/generic/Pill.js.map +1 -1
- package/dist/src/components/generic/PromoCodeInput.js +6 -6
- package/dist/src/components/generic/PromoCodeInput.js.map +1 -1
- package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +1 -1
- package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
- package/dist/src/components/generic/RecentSearchesCard.d.ts +1 -1
- package/dist/src/components/generic/RecentSearchesCard.js +7 -7
- package/dist/src/components/generic/RecentSearchesCard.js.map +1 -1
- package/dist/src/components/generic/Select/Select.d.ts +1 -1
- package/dist/src/components/generic/Select/Select.js +6 -6
- package/dist/src/components/generic/Select/Select.js.map +1 -1
- package/dist/src/components/generic/Tabs/TabContext.d.ts +1 -1
- package/dist/src/components/generic/Tabs/TabContext.js.map +1 -1
- package/dist/src/components/generic/Tabs/TabLink.js +3 -3
- package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
- package/dist/src/components/generic/Tabs/TabRouteContainer.js +2 -2
- package/dist/src/components/generic/Tabs/TabRouteContainer.js.map +1 -1
- package/dist/src/components/generic/Tabs/Tabs.js +5 -5
- package/dist/src/components/generic/Tabs/Tabs.js.map +1 -1
- package/dist/src/components/generic/Text.d.ts +2 -2
- package/dist/src/components/generic/Text.js.map +1 -1
- package/dist/src/components/generic/TextBox.d.ts +1 -1
- package/dist/src/components/generic/TextBox.js +1 -1
- package/dist/src/components/generic/TextBox.js.map +1 -1
- package/dist/src/components/generic/Tooltip/Tooltip.js +1 -1
- package/dist/src/components/generic/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/generic/badging/SSLSecureBadge.js +2 -2
- package/dist/src/components/generic/badging/SSLSecureBadge.js.map +1 -1
- package/dist/src/components/generic/buttons/NextStepButton.d.ts +1 -1
- package/dist/src/components/generic/buttons/NextStepButton.js +5 -5
- package/dist/src/components/generic/buttons/NextStepButton.js.map +1 -1
- package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js +3 -3
- package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js.map +1 -1
- package/dist/src/components/generic/date/DatePicker.js +12 -12
- package/dist/src/components/generic/date/DatePicker.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerDay.js +8 -8
- package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerDays.js +4 -4
- package/dist/src/components/generic/date/DatePickerDays.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerMonth.js +6 -6
- package/dist/src/components/generic/date/DatePickerMonth.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerWeek.js +9 -9
- package/dist/src/components/generic/date/DatePickerWeek.js.map +1 -1
- package/dist/src/components/generic/date/FloatingDatePicker.js +3 -3
- package/dist/src/components/generic/date/FloatingDatePicker.js.map +1 -1
- package/dist/src/components/generic/date/WeekViewSkeleton.js +3 -3
- package/dist/src/components/generic/date/WeekViewSkeleton.js.map +1 -1
- package/dist/src/components/generic/loader/ImageLoader.d.ts +1 -1
- package/dist/src/components/generic/loader/ImageLoader.js +2 -2
- package/dist/src/components/generic/loader/ImageLoader.js.map +1 -1
- package/dist/src/components/generic/loader/LargeLoader.js +1 -1
- package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
- package/dist/src/components/generic/loader/SmallSpinner.d.ts +1 -1
- package/dist/src/components/generic/loader/SmallSpinner.js +2 -2
- package/dist/src/components/generic/loader/SmallSpinner.js.map +1 -1
- package/dist/src/components/generic/map/HotelLocationMap.js +2 -2
- package/dist/src/components/generic/map/HotelLocationMap.js.map +1 -1
- package/dist/src/components/generic/modal/ConfirmationModal.js +3 -3
- package/dist/src/components/generic/modal/ConfirmationModal.js.map +1 -1
- package/dist/src/components/generic/modal/ErrorModal.js +3 -3
- package/dist/src/components/generic/modal/ErrorModal.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js +8 -8
- package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +10 -10
- package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
- package/dist/src/components/generic/modal/SimpleModal.js +7 -7
- package/dist/src/components/generic/modal/SimpleModal.js.map +1 -1
- package/dist/src/components/generic/modal/TabbedModal.js +1 -1
- package/dist/src/components/generic/modal/TabbedModal.js.map +1 -1
- package/dist/src/components/generic/radio/RadioFields.js +2 -2
- package/dist/src/components/generic/radio/RadioFields.js.map +1 -1
- package/dist/src/components/members/EditMyProfile.js +7 -7
- package/dist/src/components/members/EditMyProfile.js.map +1 -1
- package/dist/src/components/navigation/Header.js +16 -16
- package/dist/src/components/navigation/Header.js.map +1 -1
- package/dist/src/components/navigation/StepSelector.js +8 -8
- package/dist/src/components/navigation/StepSelector.js.map +1 -1
- package/dist/src/components/navigation/StepSelectorModal.js +7 -7
- package/dist/src/components/navigation/StepSelectorModal.js.map +1 -1
- package/dist/src/components/pages/Account/Card/MemberCardItem.js +8 -8
- package/dist/src/components/pages/Account/Card/MemberCardItem.js.map +1 -1
- package/dist/src/components/pages/PageColorComponent.js +2 -2
- package/dist/src/components/pages/PageColorComponent.js.map +1 -1
- package/dist/src/components/reservation/ReservationItem.d.ts +1 -1
- package/dist/src/components/reservation/ReservationItem.js +13 -13
- package/dist/src/components/reservation/ReservationItem.js.map +1 -1
- package/dist/src/components/reservation/ReservationList.d.ts +2 -2
- package/dist/src/components/reservation/ReservationList.js +1 -1
- package/dist/src/components/reservation/ReservationList.js.map +1 -1
- package/dist/src/components/steps/DaysSelectedInformer.js +3 -3
- package/dist/src/components/steps/DaysSelectedInformer.js.map +1 -1
- package/dist/src/components/steps/MinimumNightStayPill.js +6 -6
- package/dist/src/components/steps/MinimumNightStayPill.js.map +1 -1
- package/dist/src/components/steps/addons/AddonCard.d.ts +1 -1
- package/dist/src/components/steps/addons/AddonCard.js +10 -10
- package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
- package/dist/src/components/steps/addons/AddonList.js +9 -9
- package/dist/src/components/steps/addons/AddonList.js.map +1 -1
- package/dist/src/components/steps/addons/AddonsNotFound.js +3 -3
- package/dist/src/components/steps/addons/AddonsNotFound.js.map +1 -1
- package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.d.ts +1 -1
- package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js +4 -4
- package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js.map +1 -1
- package/dist/src/components/steps/confirmation/AccountDetails.js +4 -4
- package/dist/src/components/steps/confirmation/AccountDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js +3 -3
- package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js +3 -3
- package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js +8 -8
- package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js +3 -3
- package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js.map +1 -1
- package/dist/src/components/steps/confirmation/RoomContactDetails.js +15 -15
- package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +7 -7
- package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.d.ts +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js +11 -11
- package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.d.ts +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js +4 -4
- package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js +2 -2
- package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js +27 -27
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js +6 -6
- package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +3 -3
- package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js +2 -2
- package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js.map +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js +11 -11
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js.map +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.d.ts +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js +3 -3
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js.map +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.d.ts +2 -2
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js +9 -9
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js.map +1 -1
- package/dist/src/components/steps/date/PeoplePicker.js +7 -7
- package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
- package/dist/src/components/steps/date/PeoplePickerRow.js +6 -6
- package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
- package/dist/src/components/steps/date/StepDatePricePerRoom.js +9 -9
- package/dist/src/components/steps/date/StepDatePricePerRoom.js.map +1 -1
- package/dist/src/components/steps/date/StepOneDateRange.js +4 -4
- package/dist/src/components/steps/date/StepOneDateRange.js.map +1 -1
- package/dist/src/components/steps/date/StepOneDateRangePicker.js +4 -4
- package/dist/src/components/steps/date/StepOneDateRangePicker.js.map +1 -1
- package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js +4 -4
- package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js.map +1 -1
- package/dist/src/components/steps/date/StepOneNextStepButton.js +4 -4
- package/dist/src/components/steps/date/StepOneNextStepButton.js.map +1 -1
- package/dist/src/components/steps/date/StepOneStatusPeople.js +2 -2
- package/dist/src/components/steps/date/StepOneStatusPeople.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCard.d.ts +1 -1
- package/dist/src/components/steps/hotel/HotelCard.js +14 -14
- package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCardList.d.ts +1 -1
- package/dist/src/components/steps/hotel/HotelCardList.js +2 -2
- package/dist/src/components/steps/hotel/HotelCardList.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCardModal.d.ts +1 -1
- package/dist/src/components/steps/hotel/HotelCardModal.js +13 -13
- package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelSearchParameters.js +13 -13
- package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
- package/dist/src/components/steps/hotel/NoHotelsAvailable.js +2 -2
- package/dist/src/components/steps/hotel/NoHotelsAvailable.js.map +1 -1
- package/dist/src/components/steps/room/AvailableUpgradesModal.js +14 -14
- package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
- package/dist/src/components/steps/room/ImageGallerySlider.d.ts +1 -1
- package/dist/src/components/steps/room/ImageGallerySlider.js +5 -5
- package/dist/src/components/steps/room/ImageGallerySlider.js.map +1 -1
- package/dist/src/components/steps/room/InactivityWindow.js +13 -13
- package/dist/src/components/steps/room/InactivityWindow.js.map +1 -1
- package/dist/src/components/steps/room/LargeRoomCard.d.ts +1 -1
- package/dist/src/components/steps/room/LargeRoomCard.js +11 -11
- package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +15 -15
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.types.d.ts +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.types.js.map +1 -1
- package/dist/src/components/steps/room/NoRoomsFoundBlock.js +12 -12
- package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
- package/dist/src/components/steps/room/RatesNotFound.js +3 -3
- package/dist/src/components/steps/room/RatesNotFound.js.map +1 -1
- package/dist/src/components/steps/room/RoomList.js +12 -12
- package/dist/src/components/steps/room/RoomList.js.map +1 -1
- package/dist/src/components/steps/room/RoomListAlert.js +3 -3
- package/dist/src/components/steps/room/RoomListAlert.js.map +1 -1
- package/dist/src/components/steps/room/RoomListCrossSellBlock.js +10 -10
- package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
- package/dist/src/components/steps/room/RoomModal.d.ts +2 -2
- package/dist/src/components/steps/room/RoomModal.js +10 -10
- package/dist/src/components/steps/room/RoomModal.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomAlertBlocks.js +5 -5
- package/dist/src/components/steps/room/StepRoomAlertBlocks.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomBestRateAlert.js +5 -5
- package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomErrorForm.js +11 -11
- package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomHotelDetails.js +5 -5
- package/dist/src/components/steps/room/StepRoomHotelDetails.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomNextStepButton.js +3 -3
- package/dist/src/components/steps/room/StepRoomNextStepButton.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomSortBy.js +5 -5
- package/dist/src/components/steps/room/StepRoomSortBy.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomSummaryAndButton.js +6 -6
- package/dist/src/components/steps/room/StepRoomSummaryAndButton.js.map +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.d.ts +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js +3 -3
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js.map +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.d.ts +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js +3 -3
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js.map +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js +6 -6
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js.map +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.d.ts +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +15 -15
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetails.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetails.js +20 -20
- package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.d.ts +2 -2
- package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +4 -4
- package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js +4 -4
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js +8 -8
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +13 -13
- package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js +3 -3
- package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js +8 -8
- package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +10 -10
- package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +10 -10
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js +4 -4
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +6 -6
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.d.ts +2 -2
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +9 -9
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +17 -17
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.d.ts +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +11 -11
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js +5 -5
- package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.d.ts +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js +15 -15
- package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.d.ts +2 -2
- package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js +7 -7
- package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.d.ts +2 -2
- package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js +5 -5
- package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.d.ts +2 -2
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js +5 -5
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js.map +1 -1
- package/dist/src/components/summary/BEMapWidget.js +5 -5
- package/dist/src/components/summary/BEMapWidget.js.map +1 -1
- package/dist/src/components/summary/BEMobileSummary.js +11 -11
- package/dist/src/components/summary/BEMobileSummary.js.map +1 -1
- package/dist/src/components/summary/BEMobileSummaryModal.js +20 -20
- package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
- package/dist/src/components/summary/BESummary.d.ts +1 -1
- package/dist/src/components/summary/BESummary.js +15 -15
- package/dist/src/components/summary/BESummary.js.map +1 -1
- package/dist/src/components/summary/BESummaryAddonRow.d.ts +1 -1
- package/dist/src/components/summary/BESummaryAddonRow.js +6 -6
- package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
- package/dist/src/components/summary/BESummaryPerkBlock.js +5 -5
- package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
- package/dist/src/components/summary/BESummaryPrivacyPolicy.js +4 -4
- package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
- package/dist/src/components/summary/BESummaryRoomRow.d.ts +1 -1
- package/dist/src/components/summary/BESummaryRoomRow.js +12 -12
- package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
- package/dist/src/components/summary/TransportDistanceFromHotelBlock.d.ts +1 -1
- package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +6 -6
- package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
- package/dist/src/components/temp/Login.js +2 -2
- package/dist/src/components/temp/Login.js.map +1 -1
- package/dist/src/containers/PrivateRoute.js +1 -1
- package/dist/src/contexts/BasketContext/BasketContext.d.ts +1 -1
- package/dist/src/contexts/BasketContext/BasketContextType.d.ts +6 -6
- package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +17 -17
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/BookingEngineContext/BookingEngineContext.d.ts +1 -1
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextType.types.d.ts +5 -5
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextType.types.js.map +1 -1
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.d.ts +1 -1
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js +3 -3
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContext.d.ts +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +5 -5
- package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.d.ts +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +13 -13
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +3 -3
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/contexts/ErrorContext.js +2 -2
- package/dist/src/contexts/ErrorContext.js.map +1 -1
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContext.d.ts +1 -1
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.d.ts +1 -1
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.js.map +1 -1
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +22 -22
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
- package/dist/src/contexts/HotelOverridesContext.d.ts +1 -1
- package/dist/src/contexts/HotelOverridesContext.js +4 -4
- package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +2 -2
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +2 -2
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
- package/dist/src/contexts/NotificationContext.d.ts +1 -1
- package/dist/src/contexts/NotificationContext.js +1 -1
- package/dist/src/contexts/NotificationContext.js.map +1 -1
- package/dist/src/engines/BaseEngine.d.ts +2 -2
- package/dist/src/engines/BaseEngine.js +2 -2
- package/dist/src/engines/BaseEngine.js.map +1 -1
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +4 -4
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js +2 -2
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +2 -2
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
- package/dist/src/engines/CustomEngine/CustomEngine.d.ts +1 -1
- package/dist/src/engines/CustomEngine/CustomEngine.js +1 -1
- package/dist/src/engines/CustomEngine/CustomEngine.js.map +1 -1
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.d.ts +2 -2
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js +3 -3
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js.map +1 -1
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.d.ts +1 -1
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js +3 -3
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.d.ts +2 -2
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js +3 -3
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.d.ts +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +23 -23
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.d.ts +2 -2
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js +3 -3
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js.map +1 -1
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.d.ts +1 -1
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +10 -10
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
- package/dist/src/errors/GetAvailabilityError.js +2 -2
- package/dist/src/errors/GetAvailabilityError.js.map +1 -1
- package/dist/src/events/RoomstayEventManager.d.ts +1 -1
- package/dist/src/events/RoomstayEventManager.js.map +1 -1
- package/dist/src/events/actions/AddToCartEvent.d.ts +2 -2
- package/dist/src/events/actions/AddToCartEvent.js +1 -1
- package/dist/src/events/actions/AddToCartEvent.js.map +1 -1
- package/dist/src/events/actions/GuestSearchEvent.d.ts +1 -1
- package/dist/src/events/actions/GuestSearchEvent.js.map +1 -1
- package/dist/src/events/actions/InitialHotelDetailsEvent.d.ts +1 -1
- package/dist/src/events/actions/InitialHotelDetailsEvent.js.map +1 -1
- package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.d.ts +1 -1
- package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.js.map +1 -1
- package/dist/src/events/actions/Promotion/PromotionAddedEvent.d.ts +1 -1
- package/dist/src/events/actions/Promotion/PromotionAddedEvent.js.map +1 -1
- package/dist/src/events/actions/Promotion/PromotionClickedEvent.d.ts +1 -1
- package/dist/src/events/actions/Promotion/PromotionClickedEvent.js.map +1 -1
- package/dist/src/events/actions/Promotion/PromotionRemovedEvent.d.ts +1 -1
- package/dist/src/events/actions/Promotion/PromotionRemovedEvent.js.map +1 -1
- package/dist/src/events/actions/RemoveFromCartEvent.d.ts +2 -2
- package/dist/src/events/actions/RemoveFromCartEvent.js +1 -1
- package/dist/src/events/actions/RemoveFromCartEvent.js.map +1 -1
- package/dist/src/events/actions/RoomListSearchEvent.d.ts +2 -2
- package/dist/src/events/actions/RoomListSearchEvent.js.map +1 -1
- package/dist/src/events/index.d.ts +13 -13
- package/dist/src/events/index.js +13 -13
- package/dist/src/events/index.js.map +1 -1
- package/dist/src/events/views/FindReservationResultsViewEvent.d.ts +1 -1
- package/dist/src/events/views/FindReservationResultsViewEvent.js.map +1 -1
- package/dist/src/events/views/StepCheckoutViewEvent.d.ts +2 -2
- package/dist/src/events/views/StepCheckoutViewEvent.js +1 -1
- package/dist/src/events/views/StepCheckoutViewEvent.js.map +1 -1
- package/dist/src/events/views/StepThanksViewEvent.d.ts +1 -1
- package/dist/src/events/views/StepThanksViewEvent.js.map +1 -1
- package/dist/src/hooks/CurrentHotelHook.js +1 -1
- package/dist/src/hooks/EventHook.d.ts +2 -2
- package/dist/src/hooks/EventHook.js +1 -1
- package/dist/src/hooks/EventHook.js.map +1 -1
- package/dist/src/hooks/KeyboardControlOnSelect.d.ts +1 -1
- package/dist/src/hooks/KeyboardControlOnSelect.js.map +1 -1
- package/dist/src/hooks/LoggedInUserHook.d.ts +3 -3
- package/dist/src/hooks/LoggedInUserHook.js +1 -1
- package/dist/src/hooks/VGSHooks.d.ts +1 -1
- package/dist/src/hooks/VGSHooks.js +1 -1
- package/dist/src/hooks/VGSHooks.js.map +1 -1
- package/dist/src/hooks/WindowSize.js +2 -2
- package/dist/src/hooks/WindowSize.js.map +1 -1
- package/dist/src/hooks/index.d.ts +6 -6
- package/dist/src/hooks/index.js +6 -6
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/icons/Check.js +1 -1
- package/dist/src/icons/Check.js.map +1 -1
- package/dist/src/index.d.ts +66 -66
- package/dist/src/index.js +71 -71
- package/dist/src/index.js.map +1 -1
- package/dist/src/mockApi/AddonAPI.d.ts +2 -2
- package/dist/src/mockApi/AddonAPI.js +2 -2
- package/dist/src/mockApi/AddonAPI.js.map +1 -1
- package/dist/src/mockApi/BookingAPI.d.ts +1 -1
- package/dist/src/mockApi/BookingAPI.js +1 -1
- package/dist/src/mockApi/BookingAPI.js.map +1 -1
- package/dist/src/mockApi/ExchangeRateAPI.d.ts +1 -1
- package/dist/src/mockApi/ExchangeRateAPI.js.map +1 -1
- package/dist/src/mockApi/HotelAPI.d.ts +2 -2
- package/dist/src/mockApi/HotelAPI.js.map +1 -1
- package/dist/src/mockApi/MockAPI.js +1 -1
- package/dist/src/mockApi/MockAPI.js.map +1 -1
- package/dist/src/mockApi/ReservationAPI.d.ts +5 -5
- package/dist/src/mockApi/ReservationAPI.js.map +1 -1
- package/dist/src/models/Api/HotelDTO.d.ts +6 -6
- package/dist/src/models/Api/HotelDTO.js.map +1 -1
- package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -1
- package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
- package/dist/src/models/Api/ReservationsDTO.d.ts +1 -1
- package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
- package/dist/src/models/Api/RoomNightDTO.d.ts +1 -1
- package/dist/src/models/Api/RoomNightDTO.js.map +1 -1
- package/dist/src/models/BasketAddonRow.d.ts +1 -1
- package/dist/src/models/BasketAddonRow.js +1 -1
- package/dist/src/models/BasketAddonRow.js.map +1 -1
- package/dist/src/models/BasketRow.d.ts +5 -5
- package/dist/src/models/BasketRow.js +1 -1
- package/dist/src/models/BasketRow.js.map +1 -1
- package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +1 -1
- package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -1
- package/dist/src/models/Client/Hotel/Company.d.ts +2 -2
- package/dist/src/models/Client/Hotel/Company.js.map +1 -1
- package/dist/src/models/Client/Hotel/Hotel.d.ts +12 -12
- package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
- package/dist/src/models/Client/Hotel/HotelPerk.d.ts +1 -1
- package/dist/src/models/Client/Hotel/HotelPerk.js.map +1 -1
- package/dist/src/models/Room/Filters/BudgetFilter.d.ts +2 -2
- package/dist/src/models/Room/Filters/BudgetFilter.js +1 -1
- package/dist/src/models/Room/Filters/BudgetFilter.js.map +1 -1
- package/dist/src/models/Room/Filters/Filter.d.ts +1 -1
- package/dist/src/models/Room/Filters/Filter.js.map +1 -1
- package/dist/src/models/Room/Filters/RateTypeFilter.d.ts +2 -2
- package/dist/src/models/Room/Filters/RateTypeFilter.js +1 -1
- package/dist/src/models/Room/Filters/RateTypeFilter.js.map +1 -1
- package/dist/src/models/Room/Filters/RoomTypeFilter.d.ts +2 -2
- package/dist/src/models/Room/Filters/RoomTypeFilter.js +1 -1
- package/dist/src/models/Room/Filters/RoomTypeFilter.js.map +1 -1
- package/dist/src/models/Room/Room.d.ts +3 -3
- package/dist/src/models/Room/Room.js +1 -1
- package/dist/src/models/Room/Room.js.map +1 -1
- package/dist/src/models/Room/RoomRate.d.ts +4 -4
- package/dist/src/models/Room/RoomRate.js +3 -3
- package/dist/src/models/Room/RoomRate.js.map +1 -1
- package/dist/src/models/Room/RoomRateNight.d.ts +1 -1
- package/dist/src/models/Room/RoomRateNight.js +1 -1
- package/dist/src/models/Room/RoomRateNight.js.map +1 -1
- package/dist/src/models/RoomstaySession.d.ts +3 -3
- package/dist/src/models/RoomstaySession.js.map +1 -1
- package/dist/src/pages/account/AccountHome/AccountHomePage.js +13 -13
- package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
- package/dist/src/pages/account/AccountRouter.js +9 -9
- package/dist/src/pages/account/AccountRouter.js.map +1 -1
- package/dist/src/pages/account/Details/AccountDetailsCardsPage.js +10 -10
- package/dist/src/pages/account/Details/AccountDetailsCardsPage.js.map +1 -1
- package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.d.ts +1 -1
- package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +6 -6
- package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
- package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +10 -10
- package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
- package/dist/src/pages/account/Help/AccountHelpPage.js +11 -11
- package/dist/src/pages/account/Help/AccountHelpPage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationCancelledPage.js +14 -14
- package/dist/src/pages/account/Reservations/AccountReservationCancelledPage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationMultiplePage.js +14 -14
- package/dist/src/pages/account/Reservations/AccountReservationMultiplePage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +18 -18
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationsPage.js +8 -8
- package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservation.js +19 -19
- package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservationResults.js +15 -15
- package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
- package/dist/src/pages/findReservation/ReservationRow.d.ts +1 -1
- package/dist/src/pages/findReservation/ReservationRow.js +13 -13
- package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
- package/dist/src/pages/findReservation/ReservationRowModal.d.ts +1 -1
- package/dist/src/pages/findReservation/ReservationRowModal.js +10 -10
- package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
- package/dist/src/pages/hotel/HotelInfo.js +11 -11
- package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
- package/dist/src/pages/hotel/HotelInfoPlaceholder.js +1 -1
- package/dist/src/pages/hotel/HotelInfoPlaceholder.js.map +1 -1
- package/dist/src/pages/steps/Step.d.ts +4 -4
- package/dist/src/pages/steps/Step.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddon.d.ts +5 -5
- package/dist/src/pages/steps/StepAddon/StepAddon.js +3 -3
- package/dist/src/pages/steps/StepAddon/StepAddon.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +11 -11
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonLoader.js +2 -2
- package/dist/src/pages/steps/StepAddon/StepAddonLoader.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonValidator.d.ts +2 -2
- package/dist/src/pages/steps/StepAddon/StepAddonValidator.js +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonValidator.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmation.d.ts +6 -6
- package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js +3 -3
- package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +15 -15
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js +2 -2
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.d.ts +2 -2
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDate.js +3 -3
- package/dist/src/pages/steps/StepDate/StepDate.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateComponent.js +17 -17
- package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateValidator.d.ts +1 -1
- package/dist/src/pages/steps/StepDate/StepDateValidator.js +1 -1
- package/dist/src/pages/steps/StepDate/StepDateValidator.js.map +1 -1
- package/dist/src/pages/steps/StepGuide.d.ts +1 -1
- package/dist/src/pages/steps/StepGuide.js +6 -6
- package/dist/src/pages/steps/StepGuide.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotel.d.ts +4 -4
- package/dist/src/pages/steps/StepHotel/StepHotel.js +3 -3
- package/dist/src/pages/steps/StepHotel/StepHotel.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +11 -11
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelLoader.js +5 -5
- package/dist/src/pages/steps/StepHotel/StepHotelLoader.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelValidator.d.ts +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelValidator.js +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelValidator.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoom.d.ts +6 -6
- package/dist/src/pages/steps/StepRoom/StepRoom.js +3 -3
- package/dist/src/pages/steps/StepRoom/StepRoom.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +17 -17
- package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomLoader.js +2 -2
- package/dist/src/pages/steps/StepRoom/StepRoomLoader.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomValidator.d.ts +2 -2
- package/dist/src/pages/steps/StepRoom/StepRoomValidator.js +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomValidator.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanks.d.ts +6 -6
- package/dist/src/pages/steps/StepThanks/StepThanks.js +4 -4
- package/dist/src/pages/steps/StepThanks/StepThanks.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +13 -13
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksValidator.d.ts +2 -2
- package/dist/src/pages/steps/StepThanks/StepThanksValidator.js +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksValidator.js.map +1 -1
- package/dist/src/pages/steps/StepValidator.d.ts +1 -1
- package/dist/src/providers/CurrencyProvider.js +3 -3
- package/dist/src/providers/CurrencyProvider.js.map +1 -1
- package/dist/src/providers/DistanceProvider.d.ts +1 -1
- package/dist/src/providers/DistanceProvider.js +1 -1
- package/dist/src/providers/DistanceProvider.js.map +1 -1
- package/dist/src/providers/FeatureProvider.js +8 -8
- package/dist/src/providers/FeatureProvider.js.map +1 -1
- package/dist/src/providers/FilterProvider.d.ts +3 -3
- package/dist/src/providers/FilterProvider.js +1 -1
- package/dist/src/providers/FilterProvider.js.map +1 -1
- package/dist/src/providers/LanguageProvider.js +1 -1
- package/dist/src/providers/LanguageProvider.js.map +1 -1
- package/dist/src/providers/PromotionProvider.d.ts +3 -3
- package/dist/src/providers/PromotionProvider.js +7 -7
- package/dist/src/providers/PromotionProvider.js.map +1 -1
- package/dist/src/providers/RatePillProvider.d.ts +5 -5
- package/dist/src/providers/RatePillProvider.js.map +1 -1
- package/dist/src/providers/RoomSortProvider.d.ts +1 -1
- package/dist/src/providers/RoomSortProvider.js.map +1 -1
- package/dist/src/providers/RoomstayThemeEngine.d.ts +3 -3
- package/dist/src/providers/RoomstayThemeEngine.js +1 -1
- package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
- package/dist/src/providers/SessionProvider.d.ts +1 -1
- package/dist/src/providers/SessionProvider.js +5 -5
- package/dist/src/providers/SessionProvider.js.map +1 -1
- package/dist/src/providers/feature/ConfirmationVerifyFeature.d.ts +1 -1
- package/dist/src/providers/feature/ConfirmationVerifyFeature.js +1 -1
- package/dist/src/providers/feature/ConfirmationVerifyFeature.js.map +1 -1
- package/dist/src/providers/feature/DatePickerTypeFeature.d.ts +1 -1
- package/dist/src/providers/feature/DatePickerTypeFeature.js +2 -2
- package/dist/src/providers/feature/DatePickerTypeFeature.js.map +1 -1
- package/dist/src/providers/feature/E164PhoneNumberFieldFeature.d.ts +1 -1
- package/dist/src/providers/feature/E164PhoneNumberFieldFeature.js +1 -1
- package/dist/src/providers/feature/E164PhoneNumberFieldFeature.js.map +1 -1
- package/dist/src/providers/feature/FeaturedPromoFeature.d.ts +1 -1
- package/dist/src/providers/feature/FeaturedPromoFeature.js +2 -2
- package/dist/src/providers/feature/FeaturedPromoFeature.js.map +1 -1
- package/dist/src/providers/feature/InlineAddonStepFeature.d.ts +1 -1
- package/dist/src/providers/feature/InlineAddonStepFeature.js +3 -3
- package/dist/src/providers/feature/InlineAddonStepFeature.js.map +1 -1
- package/dist/src/providers/feature/MemberPortalFeature.d.ts +1 -1
- package/dist/src/providers/feature/MemberPortalFeature.js +1 -1
- package/dist/src/providers/feature/MemberPortalFeature.js.map +1 -1
- package/dist/src/providers/feature/RoomUpsellFeature.d.ts +1 -1
- package/dist/src/providers/feature/RoomUpsellFeature.js +1 -1
- package/dist/src/providers/feature/RoomUpsellFeature.js.map +1 -1
- package/dist/src/providers/feature/ShowIATANumberOnCheckoutFeature.d.ts +1 -1
- package/dist/src/providers/feature/ShowIATANumberOnCheckoutFeature.js +1 -1
- package/dist/src/providers/feature/ShowIATANumberOnCheckoutFeature.js.map +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.d.ts +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.js +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.js.map +1 -1
- package/dist/src/reducers/BasketReducer.d.ts +2 -2
- package/dist/src/reducers/BasketReducer.js +3 -3
- package/dist/src/reducers/BasketReducer.js.map +1 -1
- package/dist/src/routes/NaturallyProgressedStepRoute.d.ts +1 -1
- package/dist/src/routes/NaturallyProgressedStepRoute.js +6 -6
- package/dist/src/routes/NaturallyProgressedStepRoute.js.map +1 -1
- package/dist/src/stories/Alert.stories.d.ts +1 -1
- package/dist/src/stories/Alert.stories.js +1 -1
- package/dist/src/stories/Alert.stories.js.map +1 -1
- package/dist/src/stories/BackButton.stories.d.ts +1 -1
- package/dist/src/stories/BackButton.stories.js +1 -1
- package/dist/src/stories/BackButton.stories.js.map +1 -1
- package/dist/src/stories/BookNowPayLaterInfoBlock.stories.d.ts +1 -1
- package/dist/src/stories/BookNowPayLaterInfoBlock.stories.js +1 -1
- package/dist/src/stories/BookNowPayLaterInfoBlock.stories.js.map +1 -1
- package/dist/src/stories/BookingWizard.stories.d.ts +1 -1
- package/dist/src/stories/BookingWizard.stories.js +1 -1
- package/dist/src/stories/BookingWizard.stories.js.map +1 -1
- package/dist/src/stories/Card.stories.js +1 -1
- package/dist/src/stories/Card.stories.js.map +1 -1
- package/dist/src/stories/CardTypeSelect.stories.d.ts +1 -1
- package/dist/src/stories/CardTypeSelect.stories.js +1 -1
- package/dist/src/stories/CardTypeSelect.stories.js.map +1 -1
- package/dist/src/stories/ConfirmationModal.stories.d.ts +1 -1
- package/dist/src/stories/ConfirmationModal.stories.js +1 -1
- package/dist/src/stories/ConfirmationModal.stories.js.map +1 -1
- package/dist/src/stories/Countdown.stories.d.ts +1 -1
- package/dist/src/stories/Countdown.stories.js +1 -1
- package/dist/src/stories/Countdown.stories.js.map +1 -1
- package/dist/src/stories/Currency.stories.d.ts +1 -1
- package/dist/src/stories/Currency.stories.js +1 -1
- package/dist/src/stories/Currency.stories.js.map +1 -1
- package/dist/src/stories/DateRangePicker.stories.d.ts +1 -1
- package/dist/src/stories/DateRangePicker.stories.js +1 -1
- package/dist/src/stories/DateRangePicker.stories.js.map +1 -1
- package/dist/src/stories/Distance.stories.d.ts +1 -1
- package/dist/src/stories/Distance.stories.js +1 -1
- package/dist/src/stories/Distance.stories.js.map +1 -1
- package/dist/src/stories/ErrorModal.stories.d.ts +1 -1
- package/dist/src/stories/ErrorModal.stories.js +1 -1
- package/dist/src/stories/ErrorModal.stories.js.map +1 -1
- package/dist/src/stories/FloatingDateRangePicker.stories.d.ts +1 -1
- package/dist/src/stories/FloatingDateRangePicker.stories.js +2 -2
- package/dist/src/stories/FloatingDateRangePicker.stories.js.map +1 -1
- package/dist/src/stories/ForwardedSelect.stories.d.ts +1 -1
- package/dist/src/stories/ForwardedSelect.stories.js +1 -1
- package/dist/src/stories/ForwardedSelect.stories.js.map +1 -1
- package/dist/src/stories/Headline.stories.d.ts +1 -1
- package/dist/src/stories/Headline.stories.js +1 -1
- package/dist/src/stories/Headline.stories.js.map +1 -1
- package/dist/src/stories/LineBreak.stories.d.ts +1 -1
- package/dist/src/stories/LineBreak.stories.js +1 -1
- package/dist/src/stories/LineBreak.stories.js.map +1 -1
- package/dist/src/stories/Notification.stories.d.ts +1 -1
- package/dist/src/stories/Notification.stories.js +2 -2
- package/dist/src/stories/Notification.stories.js.map +1 -1
- package/dist/src/stories/NumberIncrement.stories.d.ts +1 -1
- package/dist/src/stories/NumberIncrement.stories.js +1 -1
- package/dist/src/stories/NumberIncrement.stories.js.map +1 -1
- package/dist/src/stories/PaymentCard.stories.d.ts +1 -1
- package/dist/src/stories/PaymentCard.stories.js +1 -1
- package/dist/src/stories/PaymentCard.stories.js.map +1 -1
- package/dist/src/stories/PaymentCardInput.stories.d.ts +1 -1
- package/dist/src/stories/PaymentCardInput.stories.js +1 -1
- package/dist/src/stories/PaymentCardInput.stories.js.map +1 -1
- package/dist/src/stories/Pill.stories.d.ts +1 -1
- package/dist/src/stories/Pill.stories.js +1 -1
- package/dist/src/stories/Pill.stories.js.map +1 -1
- package/dist/src/stories/Placeholder.stories.d.ts +1 -1
- package/dist/src/stories/Placeholder.stories.js +1 -1
- package/dist/src/stories/Placeholder.stories.js.map +1 -1
- package/dist/src/stories/PlanpayButton.stories.d.ts +1 -1
- package/dist/src/stories/PlanpayButton.stories.js +1 -1
- package/dist/src/stories/PlanpayButton.stories.js.map +1 -1
- package/dist/src/stories/PromoCodeInput.stories.d.ts +1 -1
- package/dist/src/stories/PromoCodeInput.stories.js +1 -1
- package/dist/src/stories/PromoCodeInput.stories.js.map +1 -1
- package/dist/src/stories/RadioButton.stories.d.ts +1 -1
- package/dist/src/stories/RadioButton.stories.js +1 -1
- package/dist/src/stories/RadioButton.stories.js.map +1 -1
- package/dist/src/stories/RadioButtonGroup.stories.d.ts +1 -1
- package/dist/src/stories/RadioButtonGroup.stories.js +1 -1
- package/dist/src/stories/RadioButtonGroup.stories.js.map +1 -1
- package/dist/src/stories/RadioFields.stories.d.ts +1 -1
- package/dist/src/stories/RadioFields.stories.js +1 -1
- package/dist/src/stories/RadioFields.stories.js.map +1 -1
- package/dist/src/stories/Select.stories.d.ts +2 -2
- package/dist/src/stories/Select.stories.js +1 -1
- package/dist/src/stories/Select.stories.js.map +1 -1
- package/dist/src/stories/SimpleModal.stories.d.ts +1 -1
- package/dist/src/stories/SimpleModal.stories.js +1 -1
- package/dist/src/stories/SimpleModal.stories.js.map +1 -1
- package/dist/src/stories/Slider.stories.d.ts +3 -3
- package/dist/src/stories/Slider.stories.js +1 -1
- package/dist/src/stories/Slider.stories.js.map +1 -1
- package/dist/src/stories/TabbedModal.stories.d.ts +1 -1
- package/dist/src/stories/TabbedModal.stories.js +1 -1
- package/dist/src/stories/TabbedModal.stories.js.map +1 -1
- package/dist/src/stories/Tabs.stories.d.ts +1 -1
- package/dist/src/stories/Tabs.stories.js +2 -2
- package/dist/src/stories/Tabs.stories.js.map +1 -1
- package/dist/src/stories/Text.stories.d.ts +1 -1
- package/dist/src/stories/Text.stories.js +1 -1
- package/dist/src/stories/Text.stories.js.map +1 -1
- package/dist/src/stories/TextArea.stories.js +1 -1
- package/dist/src/stories/TextArea.stories.js.map +1 -1
- package/dist/src/stories/TextBox.stories.d.ts +1 -1
- package/dist/src/stories/TextBox.stories.js +1 -1
- package/dist/src/stories/TextBox.stories.js.map +1 -1
- package/dist/src/stories/Tooltip.stories.d.ts +1 -1
- package/dist/src/stories/Tooltip.stories.js +1 -1
- package/dist/src/stories/Tooltip.stories.js.map +1 -1
- package/dist/src/util/CalendarHelper.d.ts +1 -1
- package/dist/src/util/CalendarHelper.js.map +1 -1
- package/dist/src/util/DataLayer.d.ts +6 -6
- package/dist/src/util/DataLayer.js.map +1 -1
- package/dist/src/util/PaymentCardHelper.d.ts +1 -1
- package/dist/src/util/PaymentCardHelper.js +2 -2
- package/dist/src/util/PaymentCardHelper.js.map +1 -1
- package/dist/src/util/StepManager.d.ts +1 -1
- package/dist/src/util/StepManager.js +1 -1
- package/dist/src/util/StepManager.js.map +1 -1
- package/dist/src/util/TotalCalculator.d.ts +2 -2
- package/dist/src/util/TotalCalculator.js +1 -1
- package/dist/src/util/TotalCalculator.js.map +1 -1
- package/dist/test.bundle.js +1 -0
- package/dist/tests/jest/events/EventManager.test.js +1 -1
- package/dist/tests/offline/RoomstayBestRateAlert.js +1 -1
- package/dist/tests/offline/entry/RSCompany.js +1 -1
- package/dist/tests/offline/entry/RSCompany.js.map +1 -1
- package/dist/tests/offline/entry/ReactWrapper.js +1 -1
- package/dist/tests/offline/entry/ReactWrapper.js.map +1 -1
- package/dist/tests/offline/entry/components/TestPicker.js +5 -5
- package/dist/tests/offline/entry/components/TestPicker.js.map +1 -1
- package/dist/tests/setupTests.js +1 -1
- package/dist/tests/setupTests.js.map +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +5 -3
- package/dist/218.bundle.js +0 -1
|
@@ -13,14 +13,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.usePromotionContainer = exports.removePromotion = exports.registerPromotion = void 0;
|
|
16
|
-
const contexts_1 = require("
|
|
16
|
+
const contexts_1 = require("../../contexts/index.js");
|
|
17
17
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
18
|
-
const MemberOnlyFenceSignUp_1 = require("events/actions/MemberOnlyFence/MemberOnlyFenceSignUp");
|
|
19
|
-
const PromotionAddedEvent_1 = require("events/actions/Promotion/PromotionAddedEvent");
|
|
20
|
-
const PromotionClickedEvent_1 = require("events/actions/Promotion/PromotionClickedEvent");
|
|
21
|
-
const PromotionRemovedEvent_1 = require("events/actions/Promotion/PromotionRemovedEvent");
|
|
22
|
-
const RoomstayEventManager_1 = __importDefault(require("events/RoomstayEventManager"));
|
|
23
|
-
const EventHook_1 = require("hooks/EventHook");
|
|
18
|
+
const MemberOnlyFenceSignUp_1 = require("../../events/actions/MemberOnlyFence/MemberOnlyFenceSignUp");
|
|
19
|
+
const PromotionAddedEvent_1 = require("../../events/actions/Promotion/PromotionAddedEvent");
|
|
20
|
+
const PromotionClickedEvent_1 = require("../../events/actions/Promotion/PromotionClickedEvent");
|
|
21
|
+
const PromotionRemovedEvent_1 = require("../../events/actions/Promotion/PromotionRemovedEvent");
|
|
22
|
+
const RoomstayEventManager_1 = __importDefault(require("../../events/RoomstayEventManager"));
|
|
23
|
+
const EventHook_1 = require("../../hooks/EventHook");
|
|
24
24
|
const react_1 = require("react");
|
|
25
25
|
let _loadedPromotions = [];
|
|
26
26
|
let basketContextLoaded = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromotionProvider.js","sourceRoot":"/","sources":["src/providers/PromotionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType, CompanyContext } from '@frontend/contexts';\nimport dayjs from 'dayjs';\nimport { MemberOnlyFenceSignUp } from 'events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { PromotionAddEvent } from 'events/actions/Promotion/PromotionAddedEvent';\nimport { PromotionClickedEvent } from 'events/actions/Promotion/PromotionClickedEvent';\nimport { PromotionRemoveEvent } from 'events/actions/Promotion/PromotionRemovedEvent';\nimport RoomstayEventManager from 'events/RoomstayEventManager';\nimport { useEvent } from 'hooks/EventHook';\nimport BasketRow from 'models/BasketRow';\nimport { IPromotion, IPromotionTestCriteria } from 'models/Promotion/IPromotion.type';\nimport { useContext, useEffect, useState } from 'react';\n\nlet _loadedPromotions: IPromotion[] = [];\nlet basketContextLoaded = false;\n\nexport const registerPromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionAddEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex === -1) {\n _loadedPromotions.push(promotion);\n } else {\n _loadedPromotions[promoIndex] = promotion;\n }\n }\n};\n\nexport const removePromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionRemoveEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex !== -1) {\n _loadedPromotions.splice(promoIndex, 1);\n }\n }\n};\n\nconst getPromoIndex = (name: string, promoList: IPromotion[]) => {\n for (let i = 0; i < promoList.length; i++) {\n if (promoList[i].name === name) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Used by the Basket context to bind to state.\n */\nexport const usePromotionContainer = ({ selectedBasketRow, updateBasketRow }: { selectedBasketRow: BasketRow; updateBasketRow: BasketContextType['updateBasketRow'] }) => {\n const ccx = useContext(CompanyContext);\n\n const [bump, setBump] = useState(0);\n const [allPromotions, setAllPromotions] = useState<IPromotion[]>(_loadedPromotions ?? []);\n\n // TODO: Current implementation only supports a single promotion. In the future there will be multiple promotion locations\n const [loadedPromotion, setLoadedPromotion] = useState<IPromotion>(null);\n\n const { on } = useEvent();\n\n useEffect(() => {\n basketContextLoaded = true;\n\n const updateBasketRowContext = (promotion: IPromotion) => {\n if (!promotion) {\n // We don't care about non promo sign ups;\n return;\n }\n\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n const { checkInDate, checkOutDate, adults, children, promoCode } = promotion.onApply(criteria);\n\n if (checkInDate) {\n selectedBasketRow.setStartDate(dayjs(checkInDate));\n }\n\n if (checkOutDate) {\n selectedBasketRow.setEndDate(dayjs(checkOutDate));\n }\n\n if (adults) {\n selectedBasketRow.setAdults(adults);\n }\n\n if (children) {\n selectedBasketRow.setChildren(children);\n }\n\n if (promoCode) {\n selectedBasketRow.setPromoCode(promoCode);\n }\n\n updateBasketRow(selectedBasketRow);\n }\n };\n\n on(\n PromotionAddEvent,\n async (event: PromotionAddEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n const promoIndex = getPromoIndex(event.promotion.name, oldPromotions);\n\n if (promoIndex === -1) {\n return [...oldPromotions, event.promotion];\n } else {\n oldPromotions[promoIndex] = event.promotion;\n return oldPromotions;\n }\n });\n }\n },\n 'root'\n );\n\n on(\n PromotionRemoveEvent,\n async (event: PromotionRemoveEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n if (oldPromotions.length === 0) {\n return [];\n }\n\n return oldPromotions.filter((promo) => {\n if (promo.name !== event.promotion.name) {\n return promo;\n }\n return false;\n });\n });\n\n setBump((a) => a + 1);\n }\n },\n 'root'\n );\n\n on(\n PromotionClickedEvent,\n async (event: PromotionClickedEvent) => {\n const { promotion } = event;\n\n if (!promotion) {\n // We shouldn't be here, but just in case we are...\n return;\n }\n\n if (!ccx.signedInUser && promotion.requireMemberPromotion) {\n ccx.openMemberSignupModal(promotion);\n } else {\n updateBasketRowContext(promotion);\n }\n },\n 'root'\n );\n\n on(\n MemberOnlyFenceSignUp,\n async (event: MemberOnlyFenceSignUp) => {\n updateBasketRowContext(event.promotion);\n },\n 'root'\n );\n }, [ccx.signedInUser, selectedBasketRow, allPromotions, setAllPromotions, loadedPromotion, setLoadedPromotion]);\n\n useEffect(() => {\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n onPromotionCriteriaChanged(criteria);\n }\n }, [\n selectedBasketRow,\n selectedBasketRow?.getAdults(),\n selectedBasketRow?.getChildren(),\n selectedBasketRow?.getArrivalDate(),\n selectedBasketRow?.getEndDate(),\n selectedBasketRow?.getPromoCode(),\n allPromotions,\n bump,\n ]);\n\n useEffect(() => {\n if (!loadedPromotion) {\n return;\n }\n\n let loadedExists = false;\n for (const promotion of allPromotions) {\n if (promotion.name === loadedPromotion.name) {\n loadedExists = true;\n break;\n }\n }\n\n if (!loadedExists) {\n setLoadedPromotion(null);\n }\n }, [allPromotions, loadedPromotion]);\n\n /**\n * Checks all the registered promotions, and returns the first one that matches the criteria.\n *\n * @param criteria\n */\n const checkPromotions = async (criteria: IPromotionTestCriteria) => {\n for (const promotion of allPromotions) {\n if (await promotion.testCriteria(criteria)) {\n return promotion;\n }\n }\n\n return null;\n };\n\n const onPromotionCriteriaChanged = (criteria: IPromotionTestCriteria) => {\n checkPromotions(criteria)\n .then((promo) => {\n setLoadedPromotion(promo);\n })\n .catch(() => {\n setLoadedPromotion(null);\n });\n };\n\n return {\n loadedPromotion,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"PromotionProvider.js","sourceRoot":"/","sources":["src/providers/PromotionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType, CompanyContext } from '@frontend/contexts';\nimport dayjs from 'dayjs';\nimport { MemberOnlyFenceSignUp } from '@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { PromotionAddEvent } from '@/events/actions/Promotion/PromotionAddedEvent';\nimport { PromotionClickedEvent } from '@/events/actions/Promotion/PromotionClickedEvent';\nimport { PromotionRemoveEvent } from '@/events/actions/Promotion/PromotionRemovedEvent';\nimport RoomstayEventManager from '@/events/RoomstayEventManager';\nimport { useEvent } from '@/hooks/EventHook';\nimport BasketRow from '@/models/BasketRow';\nimport { IPromotion, IPromotionTestCriteria } from '@/models/Promotion/IPromotion.type';\nimport { useContext, useEffect, useState } from 'react';\n\nlet _loadedPromotions: IPromotion[] = [];\nlet basketContextLoaded = false;\n\nexport const registerPromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionAddEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex === -1) {\n _loadedPromotions.push(promotion);\n } else {\n _loadedPromotions[promoIndex] = promotion;\n }\n }\n};\n\nexport const removePromotion = (promotion: IPromotion) => {\n if (basketContextLoaded) {\n RoomstayEventManager.raise(new PromotionRemoveEvent(promotion));\n } else {\n const promoIndex = getPromoIndex(promotion.name, _loadedPromotions);\n\n if (promoIndex !== -1) {\n _loadedPromotions.splice(promoIndex, 1);\n }\n }\n};\n\nconst getPromoIndex = (name: string, promoList: IPromotion[]) => {\n for (let i = 0; i < promoList.length; i++) {\n if (promoList[i].name === name) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Used by the Basket context to bind to state.\n */\nexport const usePromotionContainer = ({ selectedBasketRow, updateBasketRow }: { selectedBasketRow: BasketRow; updateBasketRow: BasketContextType['updateBasketRow'] }) => {\n const ccx = useContext(CompanyContext);\n\n const [bump, setBump] = useState(0);\n const [allPromotions, setAllPromotions] = useState<IPromotion[]>(_loadedPromotions ?? []);\n\n // TODO: Current implementation only supports a single promotion. In the future there will be multiple promotion locations\n const [loadedPromotion, setLoadedPromotion] = useState<IPromotion>(null);\n\n const { on } = useEvent();\n\n useEffect(() => {\n basketContextLoaded = true;\n\n const updateBasketRowContext = (promotion: IPromotion) => {\n if (!promotion) {\n // We don't care about non promo sign ups;\n return;\n }\n\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n const { checkInDate, checkOutDate, adults, children, promoCode } = promotion.onApply(criteria);\n\n if (checkInDate) {\n selectedBasketRow.setStartDate(dayjs(checkInDate));\n }\n\n if (checkOutDate) {\n selectedBasketRow.setEndDate(dayjs(checkOutDate));\n }\n\n if (adults) {\n selectedBasketRow.setAdults(adults);\n }\n\n if (children) {\n selectedBasketRow.setChildren(children);\n }\n\n if (promoCode) {\n selectedBasketRow.setPromoCode(promoCode);\n }\n\n updateBasketRow(selectedBasketRow);\n }\n };\n\n on(\n PromotionAddEvent,\n async (event: PromotionAddEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n const promoIndex = getPromoIndex(event.promotion.name, oldPromotions);\n\n if (promoIndex === -1) {\n return [...oldPromotions, event.promotion];\n } else {\n oldPromotions[promoIndex] = event.promotion;\n return oldPromotions;\n }\n });\n }\n },\n 'root'\n );\n\n on(\n PromotionRemoveEvent,\n async (event: PromotionRemoveEvent) => {\n if (event?.promotion) {\n setAllPromotions((oldPromotions) => {\n if (oldPromotions.length === 0) {\n return [];\n }\n\n return oldPromotions.filter((promo) => {\n if (promo.name !== event.promotion.name) {\n return promo;\n }\n return false;\n });\n });\n\n setBump((a) => a + 1);\n }\n },\n 'root'\n );\n\n on(\n PromotionClickedEvent,\n async (event: PromotionClickedEvent) => {\n const { promotion } = event;\n\n if (!promotion) {\n // We shouldn't be here, but just in case we are...\n return;\n }\n\n if (!ccx.signedInUser && promotion.requireMemberPromotion) {\n ccx.openMemberSignupModal(promotion);\n } else {\n updateBasketRowContext(promotion);\n }\n },\n 'root'\n );\n\n on(\n MemberOnlyFenceSignUp,\n async (event: MemberOnlyFenceSignUp) => {\n updateBasketRowContext(event.promotion);\n },\n 'root'\n );\n }, [ccx.signedInUser, selectedBasketRow, allPromotions, setAllPromotions, loadedPromotion, setLoadedPromotion]);\n\n useEffect(() => {\n if (selectedBasketRow) {\n const criteria = {\n checkInDate: selectedBasketRow.getStartDate(),\n checkOutDate: selectedBasketRow.getEndDate(),\n adults: selectedBasketRow.getAdults(),\n children: selectedBasketRow.getChildren(),\n promoCode: selectedBasketRow.getPromoCode(),\n };\n\n onPromotionCriteriaChanged(criteria);\n }\n }, [\n selectedBasketRow,\n selectedBasketRow?.getAdults(),\n selectedBasketRow?.getChildren(),\n selectedBasketRow?.getArrivalDate(),\n selectedBasketRow?.getEndDate(),\n selectedBasketRow?.getPromoCode(),\n allPromotions,\n bump,\n ]);\n\n useEffect(() => {\n if (!loadedPromotion) {\n return;\n }\n\n let loadedExists = false;\n for (const promotion of allPromotions) {\n if (promotion.name === loadedPromotion.name) {\n loadedExists = true;\n break;\n }\n }\n\n if (!loadedExists) {\n setLoadedPromotion(null);\n }\n }, [allPromotions, loadedPromotion]);\n\n /**\n * Checks all the registered promotions, and returns the first one that matches the criteria.\n *\n * @param criteria\n */\n const checkPromotions = async (criteria: IPromotionTestCriteria) => {\n for (const promotion of allPromotions) {\n if (await promotion.testCriteria(criteria)) {\n return promotion;\n }\n }\n\n return null;\n };\n\n const onPromotionCriteriaChanged = (criteria: IPromotionTestCriteria) => {\n checkPromotions(criteria)\n .then((promo) => {\n setLoadedPromotion(promo);\n })\n .catch(() => {\n setLoadedPromotion(null);\n });\n };\n\n return {\n loadedPromotion,\n };\n};\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { IconType } from 'components/generic/Icon/Icon';
|
|
3
|
-
import { PillType } from 'components/generic/Pill';
|
|
4
|
-
import { Hotel } from 'models/Client/Hotel/Hotel';
|
|
5
|
-
import { Room } from 'models/Room/Room';
|
|
6
|
-
import { RoomRate } from 'models/Room/RoomRate';
|
|
2
|
+
import { IconType } from '../../components/generic/Icon/Icon';
|
|
3
|
+
import { PillType } from '../../components/generic/Pill';
|
|
4
|
+
import { Hotel } from '../../models/Client/Hotel/Hotel';
|
|
5
|
+
import { Room } from '../../models/Room/Room';
|
|
6
|
+
import { RoomRate } from '../../models/Room/RoomRate';
|
|
7
7
|
export type RatePill = {
|
|
8
8
|
icon: IconType | ReactNode;
|
|
9
9
|
type?: PillType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatePillProvider.js","sourceRoot":"/","sources":["src/providers/RatePillProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode } from 'react';\nimport { IconType } from 'components/generic/Icon/Icon';\nimport { PillType } from 'components/generic/Pill';\nimport { Hotel } from 'models/Client/Hotel/Hotel';\nimport { Room } from 'models/Room/Room';\n\nimport { RoomRate } from 'models/Room/RoomRate';\n\nexport type RatePill = {\n // TODO: Add Unique Id here to avoid constantly checking\n // TODO: Add ability to specify title / tooltip in React Context (with variable data)\n icon: IconType | ReactNode;\n\n type?: PillType;\n title?: string;\n tooltipText?: string;\n\n translation?: string;\n translationProps?: {\n [x: string]: string | number;\n };\n};\n\ntype RatePillCriteriaMatch = { rate?: RoomRate; room?: Room; hotel: Hotel };\n\ntype RatePillCriteriaCallback = (criteria: RatePillCriteriaMatch) => boolean;\n\ntype RatePillLocation = 'Rate' | 'Room';\n\ntype RegisteredPillType = { pill: RatePill; criteria: RatePillCriteriaCallback; location: RatePillLocation; isExclusive: boolean };\n\nclass RatePillProvider {\n private registeredPills: RegisteredPillType[];\n\n public constructor() {\n this.registeredPills = [];\n }\n\n private doesPillExist(pill: RatePill, location: RatePillLocation): number | false {\n for (let i = 0, end = this.registeredPills.length; i < end; i++) {\n const registeredPill = this.registeredPills[i];\n if (\n registeredPill.location === location &&\n registeredPill.pill.title === pill.title &&\n registeredPill.pill.tooltipText === pill.tooltipText &&\n registeredPill.pill.translation === pill.translation\n ) {\n return i;\n }\n }\n\n return false;\n }\n\n public registerRatePill(pill: RatePill, criteria: RatePillCriteriaCallback, isExclusive = false) {\n if (this.doesPillExist(pill, 'Rate') === false) {\n this.registeredPills.push({ pill, criteria, location: 'Rate', isExclusive });\n }\n }\n\n public registerRoomPill(pill: RatePill, criteria: RatePillCriteriaCallback) {\n const pillIndex = this.doesPillExist(pill, 'Room');\n const newPill: RegisteredPillType = { pill, criteria, location: 'Room', isExclusive: true };\n\n if (pillIndex === false) {\n this.registeredPills.push(newPill);\n } else {\n this.registeredPills[pillIndex] = newPill;\n }\n }\n\n public getPillsForRate(match: RatePillCriteriaMatch): RatePill[] {\n const matches: RatePill[] = [];\n\n this.registeredPills.forEach((registeredPill) => {\n // Rates will only ever show Rate Pills\n if (registeredPill.location === 'Rate' && registeredPill.criteria(match)) {\n matches.push(registeredPill.pill);\n }\n });\n\n return matches;\n }\n\n public getPillsForRoom(match: RatePillCriteriaMatch): RatePill[] {\n const roomMatches: RatePill[] = [];\n const rateMatches: RatePill[] = [];\n\n // Rooms will show both Room and Rate pills\n this.registeredPills.forEach((registeredPill) => {\n if (registeredPill.location === 'Room') {\n if (registeredPill.criteria(match)) {\n roomMatches.push(registeredPill.pill);\n }\n }\n\n if (match.room) {\n for (const rate of match.room.getRates()) {\n if (registeredPill.location === 'Rate' && !registeredPill.isExclusive && registeredPill.criteria({ ...match, rate })) {\n rateMatches.push(registeredPill.pill);\n // No need to duplicate check because as soon as one Pill is matched, no more rates are checked.\n break;\n }\n }\n }\n });\n\n return [...roomMatches, ...rateMatches];\n }\n}\n\nexport default new RatePillProvider();\n"]}
|
|
1
|
+
{"version":3,"file":"RatePillProvider.js","sourceRoot":"/","sources":["src/providers/RatePillProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode } from 'react';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport { PillType } from '@/components/generic/Pill';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Room } from '@/models/Room/Room';\n\nimport { RoomRate } from '@/models/Room/RoomRate';\n\nexport type RatePill = {\n // TODO: Add Unique Id here to avoid constantly checking\n // TODO: Add ability to specify title / tooltip in React Context (with variable data)\n icon: IconType | ReactNode;\n\n type?: PillType;\n title?: string;\n tooltipText?: string;\n\n translation?: string;\n translationProps?: {\n [x: string]: string | number;\n };\n};\n\ntype RatePillCriteriaMatch = { rate?: RoomRate; room?: Room; hotel: Hotel };\n\ntype RatePillCriteriaCallback = (criteria: RatePillCriteriaMatch) => boolean;\n\ntype RatePillLocation = 'Rate' | 'Room';\n\ntype RegisteredPillType = { pill: RatePill; criteria: RatePillCriteriaCallback; location: RatePillLocation; isExclusive: boolean };\n\nclass RatePillProvider {\n private registeredPills: RegisteredPillType[];\n\n public constructor() {\n this.registeredPills = [];\n }\n\n private doesPillExist(pill: RatePill, location: RatePillLocation): number | false {\n for (let i = 0, end = this.registeredPills.length; i < end; i++) {\n const registeredPill = this.registeredPills[i];\n if (\n registeredPill.location === location &&\n registeredPill.pill.title === pill.title &&\n registeredPill.pill.tooltipText === pill.tooltipText &&\n registeredPill.pill.translation === pill.translation\n ) {\n return i;\n }\n }\n\n return false;\n }\n\n public registerRatePill(pill: RatePill, criteria: RatePillCriteriaCallback, isExclusive = false) {\n if (this.doesPillExist(pill, 'Rate') === false) {\n this.registeredPills.push({ pill, criteria, location: 'Rate', isExclusive });\n }\n }\n\n public registerRoomPill(pill: RatePill, criteria: RatePillCriteriaCallback) {\n const pillIndex = this.doesPillExist(pill, 'Room');\n const newPill: RegisteredPillType = { pill, criteria, location: 'Room', isExclusive: true };\n\n if (pillIndex === false) {\n this.registeredPills.push(newPill);\n } else {\n this.registeredPills[pillIndex] = newPill;\n }\n }\n\n public getPillsForRate(match: RatePillCriteriaMatch): RatePill[] {\n const matches: RatePill[] = [];\n\n this.registeredPills.forEach((registeredPill) => {\n // Rates will only ever show Rate Pills\n if (registeredPill.location === 'Rate' && registeredPill.criteria(match)) {\n matches.push(registeredPill.pill);\n }\n });\n\n return matches;\n }\n\n public getPillsForRoom(match: RatePillCriteriaMatch): RatePill[] {\n const roomMatches: RatePill[] = [];\n const rateMatches: RatePill[] = [];\n\n // Rooms will show both Room and Rate pills\n this.registeredPills.forEach((registeredPill) => {\n if (registeredPill.location === 'Room') {\n if (registeredPill.criteria(match)) {\n roomMatches.push(registeredPill.pill);\n }\n }\n\n if (match.room) {\n for (const rate of match.room.getRates()) {\n if (registeredPill.location === 'Rate' && !registeredPill.isExclusive && registeredPill.criteria({ ...match, rate })) {\n rateMatches.push(registeredPill.pill);\n // No need to duplicate check because as soon as one Pill is matched, no more rates are checked.\n break;\n }\n }\n }\n });\n\n return [...roomMatches, ...rateMatches];\n }\n}\n\nexport default new RatePillProvider();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomSortProvider.js","sourceRoot":"/","sources":["src/providers/RoomSortProvider.ts"],"names":[],"mappings":";;;AACA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,qCAAyB,CAAA;IACzB,uCAA2B,CAAA;IAC3B,uCAA2B,CAAA;AAC/B,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,MAAqB,gBAAgB;;AAArC,mCAgBC;AAfG,8DAA8D;AAChD,kCAAiB,GAAG,CAAC,MAAgB,EAAE,EAAE;IACnD,QAAQ,MAAM,EAAE;QACZ,KAAK,QAAQ,CAAC,SAAS;YACnB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN,KAAK,QAAQ,CAAC,QAAQ;YAClB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN;YACI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;KACtB;AACL,CAAC,CAAC","sourcesContent":["import RoomRateSortable from 'models/Room/RoomRateSortable';\nexport enum RoomSort {\n PriceLow = 'Lowest Price',\n PriceHigh = 'Highest Price',\n Recommended = 'Recommended',\n}\n\nexport default class RoomSortProvider {\n // TODO refactor this to use static val instead of request one\n public static getSortByFunction = (sortBy: RoomSort) => {\n switch (sortBy) {\n case RoomSort.PriceHigh:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return b.getSortValue() - a.getSortValue();\n };\n case RoomSort.PriceLow:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return a.getSortValue() - b.getSortValue();\n };\n default:\n return () => 0;\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RoomSortProvider.js","sourceRoot":"/","sources":["src/providers/RoomSortProvider.ts"],"names":[],"mappings":";;;AACA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,qCAAyB,CAAA;IACzB,uCAA2B,CAAA;IAC3B,uCAA2B,CAAA;AAC/B,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB;AAED,MAAqB,gBAAgB;;AAArC,mCAgBC;AAfG,8DAA8D;AAChD,kCAAiB,GAAG,CAAC,MAAgB,EAAE,EAAE;IACnD,QAAQ,MAAM,EAAE;QACZ,KAAK,QAAQ,CAAC,SAAS;YACnB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN,KAAK,QAAQ,CAAC,QAAQ;YAClB,OAAO,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC/C,CAAC,CAAC;QACN;YACI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;KACtB;AACL,CAAC,CAAC","sourcesContent":["import RoomRateSortable from '@/models/Room/RoomRateSortable';\nexport enum RoomSort {\n PriceLow = 'Lowest Price',\n PriceHigh = 'Highest Price',\n Recommended = 'Recommended',\n}\n\nexport default class RoomSortProvider {\n // TODO refactor this to use static val instead of request one\n public static getSortByFunction = (sortBy: RoomSort) => {\n switch (sortBy) {\n case RoomSort.PriceHigh:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return b.getSortValue() - a.getSortValue();\n };\n case RoomSort.PriceLow:\n return (a: RoomRateSortable, b: RoomRateSortable) => {\n return a.getSortValue() - b.getSortValue();\n };\n default:\n return () => 0;\n }\n };\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Language } from 'providers/LanguageProvider';
|
|
2
|
-
import type { Company } from 'models/Client/Hotel/Company';
|
|
3
|
-
import type ColorProfile from 'models/Client/Hotel/ColorProfile';
|
|
1
|
+
import { Language } from '../../providers/LanguageProvider';
|
|
2
|
+
import type { Company } from '../../models/Client/Hotel/Company';
|
|
3
|
+
import type ColorProfile from '../../models/Client/Hotel/ColorProfile';
|
|
4
4
|
declare global {
|
|
5
5
|
interface Window {
|
|
6
6
|
ResizeObserver: any;
|
|
@@ -41,7 +41,7 @@ const isSameOrAfter_1 = __importDefault(require("dayjs/plugin/isSameOrAfter"));
|
|
|
41
41
|
// tslint:disable-next-line: no-submodule-imports
|
|
42
42
|
const isSameOrBefore_1 = __importDefault(require("dayjs/plugin/isSameOrBefore"));
|
|
43
43
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
44
|
-
const LanguageProvider_1 = require("providers/LanguageProvider");
|
|
44
|
+
const LanguageProvider_1 = require("../../providers/LanguageProvider");
|
|
45
45
|
const i18next_1 = __importDefault(require("i18next"));
|
|
46
46
|
const react_i18next_1 = require("react-i18next");
|
|
47
47
|
const Sentry = __importStar(require("@sentry/browser"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomstayThemeEngine.js","sourceRoot":"/","sources":["src/providers/RoomstayThemeEngine.ts"],"names":[],"mappings":"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","sourcesContent":["// tslint:disable-next-line: no-submodule-imports\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\n// tslint:disable-next-line: no-submodule-imports\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport dayjs from 'dayjs';\n\nimport { LanguageProvider, Language } from 'providers/LanguageProvider';\n\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport * as Sentry from '@sentry/browser';\nimport * as ROP from '@juggle/resize-observer';\nimport type { Company } from 'models/Client/Hotel/Company';\nimport type ColorProfile from 'models/Client/Hotel/ColorProfile';\n\ndeclare global {\n interface Window {\n ResizeObserver: any;\n }\n}\n\ndeclare const ASSET_URL: string;\n\nexport declare const RS_VERSION: string;\n\n/** @ts-ignore */\nif (typeof ResizeObserver === 'undefined') {\n window.ResizeObserver = ROP.ResizeObserver;\n}\n\nexport enum RoomstayTheme {\n Medium = 'medium',\n Light = 'light',\n}\nclass RoomstayThemeEngine {\n public currentCompany: Company | null = null;\n\n public EngineContainer: HTMLElement;\n\n public ScriptContainer: Element = null;\n public StyleContainer: Element = null;\n\n public selectedLang: Language = Language.en_us;\n\n // TODO This needs to be changed, not ideal to just check for localhost\n public isLocalhost: boolean = location.hostname === 'localhost';\n\n // TODO: This needs to be refactored to not be a fixed string.\n public ThemeType = RoomstayTheme.Light;\n\n public ExternalStyles: string[] = [];\n public ExternalScripts: string[] = ['https://js.verygoodvault.com/vgs-collect/1/AC7dReJwJ6EWF1L9FHdcCw7n.js'];\n\n public constructor() {\n console.log(`Initializing Roomstay Booking Engine v${RS_VERSION}`);\n }\n\n private reloadScriptAndStyleContainers = () => {\n this.StyleContainer = this.createElementOrReuseExisting('div', 'style-container');\n this.ScriptContainer = this.createElementOrReuseExisting('div', 'script-container');\n\n this.ScriptContainer.innerHTML = '';\n this.StyleContainer.innerHTML = '';\n\n this.registerStyles();\n };\n\n public changeCompany = (newCompany: Company) => {\n this.currentCompany = newCompany;\n this.registerStyles(newCompany.colors);\n };\n\n public changeTheme = async (profile: ColorProfile) => {\n const styleOverrides = this.createElementOrReuseExisting('style', 'engine-styles');\n\n styleOverrides.setAttribute('rel', 'preload');\n\n let headerOverrides = '';\n if (profile.navbar) {\n headerOverrides = `\n --rs-color-header-background: ${profile.navbar.background}!important;\n --rs-color-header-text: ${profile.navbar.text}!important;\n --rs-color-header-text-active: ${profile.navbar.textActive}!important;\n `;\n }\n\n styleOverrides.innerHTML = `\n :root {\n --rs-color-accent-1: ${profile.accent}!important;\n --rs-color-accent-2: ${profile.accent2}!important;\n --rs-color-accent-3: ${profile.accent3}!important;\n\n ${headerOverrides}\n\n ${profile.success ? `--rs-color-success: ${profile.success}!important;` : ''}\n }\n `;\n };\n\n public registerStyles = async (profile?: ColorProfile) => {\n console.log('Loading custom Theme Styles');\n if (profile) {\n this.changeTheme(profile);\n }\n\n this.ExternalStyles.forEach((url, index) => {\n const style = this.createElementOrReuseExisting('link', `engine-external-style-${index}`);\n style.setAttribute('rel', 'stylesheet');\n style.setAttribute('href', this.getAssetUrl() + url);\n });\n };\n\n public getAssetUrl = () => {\n return this.isLocalhost ? '/' : ASSET_URL;\n };\n\n public getImageAssetUrl = (url = '') => {\n return this.getAssetUrl() + 'assets/img/' + url;\n };\n\n /**\n * Detects if URL is absolute, and needs to be\n * @param url string\n */\n public wrapAssetUrl = (url: string) => {\n if (url.match(/^(?:[a-z]+:)?\\/\\//)) {\n return url;\n }\n\n return this.getAssetUrl() + url;\n };\n\n public registerScripts = async () => {\n this.ExternalScripts.forEach((url: string, index) => {\n this.loadScript(url, `legacy-${index}`);\n });\n };\n\n public loadScript = (src: string, name: string): Promise<void> =>\n new Promise((resolve) => {\n const script = this.createElementOrReuseExisting('script', `script-${name}`);\n if (script.hasAttribute('src') && script.getAttribute('src') === src) {\n resolve();\n } else {\n script.setAttribute('src', src);\n script.addEventListener('load', () => {\n resolve();\n });\n }\n\n this.ScriptContainer.appendChild(script);\n });\n\n public createElementOrReuseExisting = <K extends keyof HTMLElementTagNameMap>(type: K, name: string) => {\n const container = this.EngineContainer;\n const findingElement = container.querySelector(`${type}[name=\"roomstay-${name}\"]`);\n\n if (findingElement) {\n return findingElement;\n } else {\n const target = document.createElement(type);\n target.setAttribute('name', `roomstay-${name}`);\n container.appendChild(target);\n return target;\n }\n };\n\n public init = async () => {\n dayjs.extend(isSameOrBefore);\n dayjs.extend(isSameOrAfter);\n\n if (i18n) {\n i18n.use(initReactI18next).init({\n interpolation: { escapeValue: false },\n lng: Language.en_us,\n resources: LanguageProvider.getI18nMappedLanguages(),\n });\n }\n\n if (!this.isLocalhost) {\n Sentry.init({\n dsn: 'https://3bfba949561e48f1862c843ce8254a2d@o398412.ingest.sentry.io/5254086',\n beforeSend: (event, hint) => {\n event.tags = event.tags ?? { logger: '_default_' };\n\n try {\n if (hint.originalException instanceof Error) {\n if (hint.originalException.stack.indexOf('www.googletagmanager.com/gtm.js?id=') > -1) {\n event.tags.logger = 'gtm';\n event.level = Sentry.Severity.Warning;\n }\n }\n } catch (ex) {\n console.log(ex);\n }\n\n return event;\n },\n });\n }\n\n this.reloadScriptAndStyleContainers();\n };\n}\n\nexport default new RoomstayThemeEngine();\n"]}
|
|
1
|
+
{"version":3,"file":"RoomstayThemeEngine.js","sourceRoot":"/","sources":["src/providers/RoomstayThemeEngine.ts"],"names":[],"mappings":"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","sourcesContent":["// tslint:disable-next-line: no-submodule-imports\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\n// tslint:disable-next-line: no-submodule-imports\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\nimport dayjs from 'dayjs';\n\nimport { LanguageProvider, Language } from '@/providers/LanguageProvider';\n\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport * as Sentry from '@sentry/browser';\nimport * as ROP from '@juggle/resize-observer';\nimport type { Company } from '@/models/Client/Hotel/Company';\nimport type ColorProfile from '@/models/Client/Hotel/ColorProfile';\n\ndeclare global {\n interface Window {\n ResizeObserver: any;\n }\n}\n\ndeclare const ASSET_URL: string;\n\nexport declare const RS_VERSION: string;\n\n/** @ts-ignore */\nif (typeof ResizeObserver === 'undefined') {\n window.ResizeObserver = ROP.ResizeObserver;\n}\n\nexport enum RoomstayTheme {\n Medium = 'medium',\n Light = 'light',\n}\nclass RoomstayThemeEngine {\n public currentCompany: Company | null = null;\n\n public EngineContainer: HTMLElement;\n\n public ScriptContainer: Element = null;\n public StyleContainer: Element = null;\n\n public selectedLang: Language = Language.en_us;\n\n // TODO This needs to be changed, not ideal to just check for localhost\n public isLocalhost: boolean = location.hostname === 'localhost';\n\n // TODO: This needs to be refactored to not be a fixed string.\n public ThemeType = RoomstayTheme.Light;\n\n public ExternalStyles: string[] = [];\n public ExternalScripts: string[] = ['https://js.verygoodvault.com/vgs-collect/1/AC7dReJwJ6EWF1L9FHdcCw7n.js'];\n\n public constructor() {\n console.log(`Initializing Roomstay Booking Engine v${RS_VERSION}`);\n }\n\n private reloadScriptAndStyleContainers = () => {\n this.StyleContainer = this.createElementOrReuseExisting('div', 'style-container');\n this.ScriptContainer = this.createElementOrReuseExisting('div', 'script-container');\n\n this.ScriptContainer.innerHTML = '';\n this.StyleContainer.innerHTML = '';\n\n this.registerStyles();\n };\n\n public changeCompany = (newCompany: Company) => {\n this.currentCompany = newCompany;\n this.registerStyles(newCompany.colors);\n };\n\n public changeTheme = async (profile: ColorProfile) => {\n const styleOverrides = this.createElementOrReuseExisting('style', 'engine-styles');\n\n styleOverrides.setAttribute('rel', 'preload');\n\n let headerOverrides = '';\n if (profile.navbar) {\n headerOverrides = `\n --rs-color-header-background: ${profile.navbar.background}!important;\n --rs-color-header-text: ${profile.navbar.text}!important;\n --rs-color-header-text-active: ${profile.navbar.textActive}!important;\n `;\n }\n\n styleOverrides.innerHTML = `\n :root {\n --rs-color-accent-1: ${profile.accent}!important;\n --rs-color-accent-2: ${profile.accent2}!important;\n --rs-color-accent-3: ${profile.accent3}!important;\n\n ${headerOverrides}\n\n ${profile.success ? `--rs-color-success: ${profile.success}!important;` : ''}\n }\n `;\n };\n\n public registerStyles = async (profile?: ColorProfile) => {\n console.log('Loading custom Theme Styles');\n if (profile) {\n this.changeTheme(profile);\n }\n\n this.ExternalStyles.forEach((url, index) => {\n const style = this.createElementOrReuseExisting('link', `engine-external-style-${index}`);\n style.setAttribute('rel', 'stylesheet');\n style.setAttribute('href', this.getAssetUrl() + url);\n });\n };\n\n public getAssetUrl = () => {\n return this.isLocalhost ? '/' : ASSET_URL;\n };\n\n public getImageAssetUrl = (url = '') => {\n return this.getAssetUrl() + 'assets/img/' + url;\n };\n\n /**\n * Detects if URL is absolute, and needs to be\n * @param url string\n */\n public wrapAssetUrl = (url: string) => {\n if (url.match(/^(?:[a-z]+:)?\\/\\//)) {\n return url;\n }\n\n return this.getAssetUrl() + url;\n };\n\n public registerScripts = async () => {\n this.ExternalScripts.forEach((url: string, index) => {\n this.loadScript(url, `legacy-${index}`);\n });\n };\n\n public loadScript = (src: string, name: string): Promise<void> =>\n new Promise((resolve) => {\n const script = this.createElementOrReuseExisting('script', `script-${name}`);\n if (script.hasAttribute('src') && script.getAttribute('src') === src) {\n resolve();\n } else {\n script.setAttribute('src', src);\n script.addEventListener('load', () => {\n resolve();\n });\n }\n\n this.ScriptContainer.appendChild(script);\n });\n\n public createElementOrReuseExisting = <K extends keyof HTMLElementTagNameMap>(type: K, name: string) => {\n const container = this.EngineContainer;\n const findingElement = container.querySelector(`${type}[name=\"roomstay-${name}\"]`);\n\n if (findingElement) {\n return findingElement;\n } else {\n const target = document.createElement(type);\n target.setAttribute('name', `roomstay-${name}`);\n container.appendChild(target);\n return target;\n }\n };\n\n public init = async () => {\n dayjs.extend(isSameOrBefore);\n dayjs.extend(isSameOrAfter);\n\n if (i18n) {\n i18n.use(initReactI18next).init({\n interpolation: { escapeValue: false },\n lng: Language.en_us,\n resources: LanguageProvider.getI18nMappedLanguages(),\n });\n }\n\n if (!this.isLocalhost) {\n Sentry.init({\n dsn: 'https://3bfba949561e48f1862c843ce8254a2d@o398412.ingest.sentry.io/5254086',\n beforeSend: (event, hint) => {\n event.tags = event.tags ?? { logger: '_default_' };\n\n try {\n if (hint.originalException instanceof Error) {\n if (hint.originalException.stack.indexOf('www.googletagmanager.com/gtm.js?id=') > -1) {\n event.tags.logger = 'gtm';\n event.level = Sentry.Severity.Warning;\n }\n }\n } catch (ex) {\n console.log(ex);\n }\n\n return event;\n },\n });\n }\n\n this.reloadScriptAndStyleContainers();\n };\n}\n\nexport default new RoomstayThemeEngine();\n"]}
|
|
@@ -12,12 +12,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const LocalStorageProvider_1 = require("providers/storage/LocalStorageProvider");
|
|
16
|
-
const RoomstaySession_1 = require("models/RoomstaySession");
|
|
15
|
+
const LocalStorageProvider_1 = require("../../providers/storage/LocalStorageProvider");
|
|
16
|
+
const RoomstaySession_1 = require("../../models/RoomstaySession");
|
|
17
17
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
18
|
-
const BasketRow_1 = __importDefault(require("models/BasketRow"));
|
|
19
|
-
const RoomRate_1 = require("models/Room/RoomRate");
|
|
20
|
-
const Room_1 = require("models/Room/Room");
|
|
18
|
+
const BasketRow_1 = __importDefault(require("../../models/BasketRow"));
|
|
19
|
+
const RoomRate_1 = require("../../models/Room/RoomRate");
|
|
20
|
+
const Room_1 = require("../../models/Room/Room");
|
|
21
21
|
const Debounce_1 = require("../util/Debounce");
|
|
22
22
|
/**
|
|
23
23
|
* Session provider is in charge of handling the loading, saving and passing of the current Engine Session.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionProvider.js","sourceRoot":"/","sources":["src/providers/SessionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { LocalStorageProvider } from 'providers/storage/LocalStorageProvider';\nimport { RoomstaySession, SerializedRoomstaySession, SERIALIZED_DATE_FORMAT, SerializedRoomstaySessionBasketRow } from 'models/RoomstaySession';\nimport dayjs from 'dayjs';\nimport BasketRow from 'models/BasketRow';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport { Room } from 'models/Room/Room';\nimport { debounce } from '../util/Debounce';\n\n/**\n * Session provider is in charge of handling the loading, saving and passing of the current Engine Session.\n *\n * Desired flow:\n * * App Opened\n * * Session Provider loaded\n * * New User Session Created\n * * User moves through the app, updating the session with vital details (current step, basket context )\n * * User refreshes browser - session is re-loaded and user resumes where they left off\n * * User proceeds to checkout.\n * * Session is saved.\n *\n * Mini Booking Widget:\n * * User loads mini booking widget, selects dates, people\n * * Rates are loaded, and user selects a rate, redirecting to Full Booking Engine\n * * Session Provider creates a SessionID to pass to redirected path\n * * Session Provider loads the passed SessionID and loads the correct session\n * * Resume to Desired Flow\n *\n * Re-targeting:\n * ---Since re-targeting will happen on client site, under client domain, localStorage will be preserved, ergo we can load the previous incomplete sessions back to the user\n * * User lands on client Homepage\n * * Session Provider loads previous incomplete sessions\n * * A slider with details of previous baskets is shown back to the user\n * * User clicks on a previous session and is brought to the Booking Engine\n * * Resume to Desired Flow\n */\nexport default class SessionProvider {\n private currentSessionID: number;\n private hotelID: string;\n private cachedSession: Partial<RoomstaySession> = {};\n\n public async setHotelID(hotelID: string) {\n this.hotelID = hotelID;\n this.updateSession({ hotelID });\n }\n\n public async initialize(sessionID?: number, source?: string) {\n await this.setSessionID(sessionID, source);\n }\n\n public async setSessionID(sessionID?: number, source?: string) {\n const foundSession = await this.findOrCreateSessionID(sessionID, source);\n\n if (foundSession) {\n this.currentSessionID = foundSession;\n\n const storage = new LocalStorageProvider(sessionStorage);\n await storage.write('currentSession', this.currentSessionID);\n }\n }\n\n /**\n * Function to find the right session from session storage, or local storage\n *\n * If one isn't found it is then created.\n */\n private async findOrCreateSessionID(sessionID: number, source: string) {\n let session: RoomstaySession;\n\n if (sessionID) {\n session = await this.findSession(sessionID);\n\n if (session) {\n return session.id;\n }\n }\n\n session = await this.generateNewSession(source);\n\n return session.id;\n }\n\n private async findSession(sessionID: number): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const session = await storage.read<SerializedRoomstaySession>(this.getSessionKey(sessionID));\n\n if (session) {\n return this.unSerializeSession(session);\n }\n }\n\n private async generateNewSession(source: string): Promise<RoomstaySession> {\n const sessionId = new Date().getTime();\n\n const session: RoomstaySession = {\n id: sessionId,\n startDate: null,\n endDate: null,\n step: '',\n hotelID: this.hotelID ?? null,\n basketRows: [],\n source,\n };\n\n this.saveSession(session);\n\n return session;\n }\n\n private serializeSession(session: RoomstaySession): SerializedRoomstaySession {\n const basketRows: SerializedRoomstaySessionBasketRow[] = [];\n\n // TODO possibly refactor BasketRow to serialize itself, or instead make a serializer that can do all this.\n session.basketRows.forEach((unSerializeBasketRow: BasketRow) => {\n const rate = unSerializeBasketRow.getRate();\n const room = unSerializeBasketRow.getRoom();\n\n let serializedRate = null;\n let serializedRoom = null;\n\n if (rate) {\n serializedRate = rate.serialize();\n }\n\n if (room) {\n serializedRoom = room.serialize();\n }\n\n basketRows.push({\n uniqId: unSerializeBasketRow.getID(),\n startDate: unSerializeBasketRow.getStartDate()?.format(SERIALIZED_DATE_FORMAT),\n endDate: unSerializeBasketRow.getEndDate()?.format(SERIALIZED_DATE_FORMAT),\n adults: unSerializeBasketRow.getAdults(),\n children: unSerializeBasketRow.getChildren(),\n promoCode: unSerializeBasketRow.getPromoCode(),\n promoCodeStatus: unSerializeBasketRow.getPromoCodeStatus(),\n rate: serializedRate,\n room: serializedRoom,\n });\n });\n\n return {\n id: session.id,\n startDate: session.startDate?.format(SERIALIZED_DATE_FORMAT),\n endDate: session.endDate?.format(SERIALIZED_DATE_FORMAT),\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private unSerializeSession(session: SerializedRoomstaySession): RoomstaySession {\n const basketRows: BasketRow[] = [];\n let startDate: dayjs.Dayjs;\n let endDate: dayjs.Dayjs;\n\n if (session.startDate) {\n startDate = dayjs(session.startDate, SERIALIZED_DATE_FORMAT);\n }\n\n if (session.endDate) {\n endDate = dayjs(session.endDate, SERIALIZED_DATE_FORMAT);\n }\n\n session.basketRows?.forEach((serializedBasketRow) => {\n let rate;\n let room;\n\n if (serializedBasketRow.room) {\n room = new Room();\n room.unSerialize(serializedBasketRow.room);\n }\n\n if (serializedBasketRow.rate && room) {\n rate = new RoomRate();\n rate.unSerialize(serializedBasketRow.rate);\n rate.setRoom(room);\n }\n\n const basketRow = new BasketRow(rate ?? null, serializedBasketRow.uniqId);\n\n if (serializedBasketRow.startDate) {\n basketRow.setStartDate(dayjs(serializedBasketRow.startDate, SERIALIZED_DATE_FORMAT));\n }\n if (serializedBasketRow.endDate) {\n basketRow.setEndDate(dayjs(serializedBasketRow.endDate, SERIALIZED_DATE_FORMAT));\n }\n\n basketRow.setAdults(serializedBasketRow.adults);\n basketRow.setChildren(serializedBasketRow.children);\n\n basketRows.push(basketRow);\n });\n\n return {\n id: session.id,\n startDate,\n endDate,\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private getSessionKey(sessionId?: number): string {\n return `session-${sessionId ?? this.currentSessionID}`;\n }\n\n /**\n * @returns the current session ID\n */\n public getCurrentSessionID(): number {\n return this.currentSessionID;\n }\n\n public async getSession(): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const sessionFromStorage = await storage.read<SerializedRoomstaySession>(this.getSessionKey());\n\n if (sessionFromStorage) {\n return this.unSerializeSession(sessionFromStorage);\n } else {\n return this.generateNewSession('');\n }\n }\n\n public async saveSession(changedSession: RoomstaySession) {\n if (!changedSession) {\n return console.log('Attempted to save empty session');\n }\n\n const storage = new LocalStorageProvider();\n\n const serializedSession = this.serializeSession(changedSession);\n\n await storage.write(this.getSessionKey(serializedSession.id), serializedSession);\n }\n\n private debouncedUpdateSession = debounce(async () => {\n const currentSession = await this.getSession();\n const cachedSession = this.cachedSession;\n this.cachedSession = {};\n await this.saveSession({\n ...currentSession,\n ...cachedSession,\n });\n }, 300);\n\n public async updateSession(partialSession: Partial<RoomstaySession>) {\n Object.assign(this.cachedSession, partialSession);\n this.debouncedUpdateSession();\n }\n\n public async deleteSession() {\n const storage = new LocalStorageProvider();\n storage.delete(this.getSessionKey());\n }\n\n public async getAllSessions() {\n const storage = new LocalStorageProvider();\n const sessionKeys = storage.getAllKeys((name) => name.startsWith('roomstay-session'));\n\n return (await storage.readAll<SerializedRoomstaySession>(sessionKeys)).map((session) => this.unSerializeSession(session));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SessionProvider.js","sourceRoot":"/","sources":["src/providers/SessionProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import { LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nimport { RoomstaySession, SerializedRoomstaySession, SERIALIZED_DATE_FORMAT, SerializedRoomstaySessionBasketRow } from '@/models/RoomstaySession';\nimport dayjs from 'dayjs';\nimport BasketRow from '@/models/BasketRow';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { Room } from '@/models/Room/Room';\nimport { debounce } from '../util/Debounce';\n\n/**\n * Session provider is in charge of handling the loading, saving and passing of the current Engine Session.\n *\n * Desired flow:\n * * App Opened\n * * Session Provider loaded\n * * New User Session Created\n * * User moves through the app, updating the session with vital details (current step, basket context )\n * * User refreshes browser - session is re-loaded and user resumes where they left off\n * * User proceeds to checkout.\n * * Session is saved.\n *\n * Mini Booking Widget:\n * * User loads mini booking widget, selects dates, people\n * * Rates are loaded, and user selects a rate, redirecting to Full Booking Engine\n * * Session Provider creates a SessionID to pass to redirected path\n * * Session Provider loads the passed SessionID and loads the correct session\n * * Resume to Desired Flow\n *\n * Re-targeting:\n * ---Since re-targeting will happen on client site, under client domain, localStorage will be preserved, ergo we can load the previous incomplete sessions back to the user\n * * User lands on client Homepage\n * * Session Provider loads previous incomplete sessions\n * * A slider with details of previous baskets is shown back to the user\n * * User clicks on a previous session and is brought to the Booking Engine\n * * Resume to Desired Flow\n */\nexport default class SessionProvider {\n private currentSessionID: number;\n private hotelID: string;\n private cachedSession: Partial<RoomstaySession> = {};\n\n public async setHotelID(hotelID: string) {\n this.hotelID = hotelID;\n this.updateSession({ hotelID });\n }\n\n public async initialize(sessionID?: number, source?: string) {\n await this.setSessionID(sessionID, source);\n }\n\n public async setSessionID(sessionID?: number, source?: string) {\n const foundSession = await this.findOrCreateSessionID(sessionID, source);\n\n if (foundSession) {\n this.currentSessionID = foundSession;\n\n const storage = new LocalStorageProvider(sessionStorage);\n await storage.write('currentSession', this.currentSessionID);\n }\n }\n\n /**\n * Function to find the right session from session storage, or local storage\n *\n * If one isn't found it is then created.\n */\n private async findOrCreateSessionID(sessionID: number, source: string) {\n let session: RoomstaySession;\n\n if (sessionID) {\n session = await this.findSession(sessionID);\n\n if (session) {\n return session.id;\n }\n }\n\n session = await this.generateNewSession(source);\n\n return session.id;\n }\n\n private async findSession(sessionID: number): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const session = await storage.read<SerializedRoomstaySession>(this.getSessionKey(sessionID));\n\n if (session) {\n return this.unSerializeSession(session);\n }\n }\n\n private async generateNewSession(source: string): Promise<RoomstaySession> {\n const sessionId = new Date().getTime();\n\n const session: RoomstaySession = {\n id: sessionId,\n startDate: null,\n endDate: null,\n step: '',\n hotelID: this.hotelID ?? null,\n basketRows: [],\n source,\n };\n\n this.saveSession(session);\n\n return session;\n }\n\n private serializeSession(session: RoomstaySession): SerializedRoomstaySession {\n const basketRows: SerializedRoomstaySessionBasketRow[] = [];\n\n // TODO possibly refactor BasketRow to serialize itself, or instead make a serializer that can do all this.\n session.basketRows.forEach((unSerializeBasketRow: BasketRow) => {\n const rate = unSerializeBasketRow.getRate();\n const room = unSerializeBasketRow.getRoom();\n\n let serializedRate = null;\n let serializedRoom = null;\n\n if (rate) {\n serializedRate = rate.serialize();\n }\n\n if (room) {\n serializedRoom = room.serialize();\n }\n\n basketRows.push({\n uniqId: unSerializeBasketRow.getID(),\n startDate: unSerializeBasketRow.getStartDate()?.format(SERIALIZED_DATE_FORMAT),\n endDate: unSerializeBasketRow.getEndDate()?.format(SERIALIZED_DATE_FORMAT),\n adults: unSerializeBasketRow.getAdults(),\n children: unSerializeBasketRow.getChildren(),\n promoCode: unSerializeBasketRow.getPromoCode(),\n promoCodeStatus: unSerializeBasketRow.getPromoCodeStatus(),\n rate: serializedRate,\n room: serializedRoom,\n });\n });\n\n return {\n id: session.id,\n startDate: session.startDate?.format(SERIALIZED_DATE_FORMAT),\n endDate: session.endDate?.format(SERIALIZED_DATE_FORMAT),\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private unSerializeSession(session: SerializedRoomstaySession): RoomstaySession {\n const basketRows: BasketRow[] = [];\n let startDate: dayjs.Dayjs;\n let endDate: dayjs.Dayjs;\n\n if (session.startDate) {\n startDate = dayjs(session.startDate, SERIALIZED_DATE_FORMAT);\n }\n\n if (session.endDate) {\n endDate = dayjs(session.endDate, SERIALIZED_DATE_FORMAT);\n }\n\n session.basketRows?.forEach((serializedBasketRow) => {\n let rate;\n let room;\n\n if (serializedBasketRow.room) {\n room = new Room();\n room.unSerialize(serializedBasketRow.room);\n }\n\n if (serializedBasketRow.rate && room) {\n rate = new RoomRate();\n rate.unSerialize(serializedBasketRow.rate);\n rate.setRoom(room);\n }\n\n const basketRow = new BasketRow(rate ?? null, serializedBasketRow.uniqId);\n\n if (serializedBasketRow.startDate) {\n basketRow.setStartDate(dayjs(serializedBasketRow.startDate, SERIALIZED_DATE_FORMAT));\n }\n if (serializedBasketRow.endDate) {\n basketRow.setEndDate(dayjs(serializedBasketRow.endDate, SERIALIZED_DATE_FORMAT));\n }\n\n basketRow.setAdults(serializedBasketRow.adults);\n basketRow.setChildren(serializedBasketRow.children);\n\n basketRows.push(basketRow);\n });\n\n return {\n id: session.id,\n startDate,\n endDate,\n step: session.step,\n hotelID: session.hotelID,\n basketRows,\n source: session.source,\n reservation: session.reservation,\n };\n }\n\n private getSessionKey(sessionId?: number): string {\n return `session-${sessionId ?? this.currentSessionID}`;\n }\n\n /**\n * @returns the current session ID\n */\n public getCurrentSessionID(): number {\n return this.currentSessionID;\n }\n\n public async getSession(): Promise<RoomstaySession> {\n const storage = new LocalStorageProvider();\n\n const sessionFromStorage = await storage.read<SerializedRoomstaySession>(this.getSessionKey());\n\n if (sessionFromStorage) {\n return this.unSerializeSession(sessionFromStorage);\n } else {\n return this.generateNewSession('');\n }\n }\n\n public async saveSession(changedSession: RoomstaySession) {\n if (!changedSession) {\n return console.log('Attempted to save empty session');\n }\n\n const storage = new LocalStorageProvider();\n\n const serializedSession = this.serializeSession(changedSession);\n\n await storage.write(this.getSessionKey(serializedSession.id), serializedSession);\n }\n\n private debouncedUpdateSession = debounce(async () => {\n const currentSession = await this.getSession();\n const cachedSession = this.cachedSession;\n this.cachedSession = {};\n await this.saveSession({\n ...currentSession,\n ...cachedSession,\n });\n }, 300);\n\n public async updateSession(partialSession: Partial<RoomstaySession>) {\n Object.assign(this.cachedSession, partialSession);\n this.debouncedUpdateSession();\n }\n\n public async deleteSession() {\n const storage = new LocalStorageProvider();\n storage.delete(this.getSessionKey());\n }\n\n public async getAllSessions() {\n const storage = new LocalStorageProvider();\n const sessionKeys = storage.getAllKeys((name) => name.startsWith('roomstay-session'));\n\n return (await storage.readAll<SerializedRoomstaySession>(sessionKeys)).map((session) => this.unSerializeSession(session));\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
4
4
|
/**
|
|
5
5
|
* Feature to determine if checkboxes for verify confirmation must be ticked
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationVerifyFeature.js","sourceRoot":"/","sources":["src/providers/feature/ConfirmationVerifyFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"ConfirmationVerifyFeature.js","sourceRoot":"/","sources":["src/providers/feature/ConfirmationVerifyFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD;;GAEG;AACH,MAAM,yBAA0B,SAAQ,iBAAO;IAC3C;QACI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACvC,CAAC;IAES,MAAM;QACZ,2EAA2E;IAC/E,CAAC;CACJ;AAED,kBAAe,IAAI,yBAAyB,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\n/**\n * Feature to determine if checkboxes for verify confirmation must be ticked\n */\nclass ConfirmationVerifyFeature extends Feature {\n public constructor() {\n super('ConfirmationVerifyFeature');\n }\n\n protected onLoad() {\n /** No onload function since the engine itself checks if this is enabled */\n }\n}\n\nexport default new ConfirmationVerifyFeature();\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const FullPageBookingEngineElementEvents_1 = require("engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
|
|
4
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const FullPageBookingEngineElementEvents_1 = require("../../../engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
|
|
4
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
5
5
|
class DatePickerTypeFeature extends Feature_1.Feature {
|
|
6
6
|
constructor() {
|
|
7
7
|
super('DatePickerTypeFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerTypeFeature.js","sourceRoot":"/","sources":["src/providers/feature/DatePickerTypeFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"DatePickerTypeFeature.js","sourceRoot":"/","sources":["src/providers/feature/DatePickerTypeFeature.ts"],"names":[],"mappings":";;AAAA,2HAAwH;AACxH,yDAAsD;AAEtD,MAAM,qBAAsB,SAAQ,iBAAO;IACvC;QACI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACnC,CAAC;IAES,MAAM;QACZ,wCAAwC;QACxC,0CAA0C;QAC1C,uEAAuE;QACvE,IAAI;QAEJ,uEAAkC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,IAAI,qBAAqB,EAAE,CAAC","sourcesContent":["import { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Feature } from '@/providers/feature/Feature';\n\nclass DatePickerTypeFeature extends Feature {\n public constructor() {\n super('DatePickerTypeFeature');\n }\n\n protected onLoad() {\n // TODO: This will need to be re-thought\n // if (RoomstayThemeEngine.currentHotel) {\n // RoomstayThemeEngine.currentHotel.defaultDatepickerType = 'Week';\n // }\n\n FullPageBookingEngineElementEvents.reload();\n }\n}\n\nexport default new DatePickerTypeFeature();\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
4
4
|
class E164PhoneNumberFieldFeature extends Feature_1.Feature {
|
|
5
5
|
constructor() {
|
|
6
6
|
super('E164PhoneNumberFieldFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E164PhoneNumberFieldFeature.js","sourceRoot":"/","sources":["src/providers/feature/E164PhoneNumberFieldFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"E164PhoneNumberFieldFeature.js","sourceRoot":"/","sources":["src/providers/feature/E164PhoneNumberFieldFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD,MAAM,2BAA4B,SAAQ,iBAAO;IAC7C;QACI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACzC,CAAC;IAES,MAAM;QACZ,yBAAyB;IAC7B,CAAC;CACJ;AAED,kBAAe,IAAI,2BAA2B,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\nclass E164PhoneNumberFieldFeature extends Feature {\n public constructor() {\n super('E164PhoneNumberFieldFeature');\n }\n\n protected onLoad(): void {\n // No requirement on load\n }\n}\n\nexport default new E164PhoneNumberFieldFeature();\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const FullPageBookingEngineElementEvents_1 = require("engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
|
|
4
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const FullPageBookingEngineElementEvents_1 = require("../../../engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
|
|
4
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
5
5
|
class FeaturedPromoFeature extends Feature_1.Feature {
|
|
6
6
|
constructor() {
|
|
7
7
|
super('FeaturedPromoFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeaturedPromoFeature.js","sourceRoot":"/","sources":["src/providers/feature/FeaturedPromoFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"FeaturedPromoFeature.js","sourceRoot":"/","sources":["src/providers/feature/FeaturedPromoFeature.ts"],"names":[],"mappings":";;AAAA,2HAAwH;AACxH,yDAAsD;AAEtD,MAAM,oBAAqB,SAAQ,iBAAO;IACtC;QACI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAClC,CAAC;IAES,MAAM;QACZ,uEAAkC,CAAC,MAAM,EAAE,CAAC;IAChD,CAAC;CACJ;AAED,kBAAe,IAAI,oBAAoB,EAAE,CAAC","sourcesContent":["import { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport { Feature } from '@/providers/feature/Feature';\n\nclass FeaturedPromoFeature extends Feature {\n public constructor() {\n super('FeaturedPromoFeature');\n }\n\n protected onLoad() {\n FullPageBookingEngineElementEvents.reload();\n }\n}\n\nexport default new FeaturedPromoFeature();\n"]}
|
|
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const StepAddon_1 = __importDefault(require("pages/steps/StepAddon/StepAddon"));
|
|
7
|
-
const StepManager_1 = __importDefault(require("util/StepManager"));
|
|
8
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
6
|
+
const StepAddon_1 = __importDefault(require("../../../pages/steps/StepAddon/StepAddon"));
|
|
7
|
+
const StepManager_1 = __importDefault(require("../../../util/StepManager"));
|
|
8
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
9
9
|
class InlineAddonStepFeature extends Feature_1.Feature {
|
|
10
10
|
constructor() {
|
|
11
11
|
super('InlineAddonStepFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineAddonStepFeature.js","sourceRoot":"/","sources":["src/providers/feature/InlineAddonStepFeature.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"InlineAddonStepFeature.js","sourceRoot":"/","sources":["src/providers/feature/InlineAddonStepFeature.ts"],"names":[],"mappings":";;;;;AAAA,kFAA0D;AAC1D,qEAA6C;AAC7C,yDAAsD;AAGtD,MAAM,sBAAuB,SAAQ,iBAAO;IAGxC;QACI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpC,CAAC;IAES,MAAM;QACZ,IAAI,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACpD;QAED,qBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,mBAAS,CAAC,CAAC;IACvC,CAAC;IAES,QAAQ;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,qBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC9C;aAAM;YACH,OAAO,qBAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SACvC;IACL,CAAC;CACJ;AAED,kBAAe,IAAI,sBAAsB,EAAE,CAAC","sourcesContent":["import StepAddon from '@/pages/steps/StepAddon/StepAddon';\nimport StepManager from '@/util/StepManager';\nimport { Feature } from '@/providers/feature/Feature';\nimport type Step from '@/pages/steps/Step';\n\nclass InlineAddonStepFeature extends Feature {\n private originalStep: Step;\n\n public constructor() {\n super('InlineAddonStepFeature');\n }\n\n protected onLoad() {\n if (StepManager.currentSteps[15]) {\n this.originalStep = StepManager.currentSteps[15];\n }\n\n StepManager.addStep(15, StepAddon);\n }\n\n protected onUnLoad() {\n if (this.originalStep) {\n StepManager.addStep(15, this.originalStep);\n } else {\n delete StepManager.currentSteps[15];\n }\n }\n}\n\nexport default new InlineAddonStepFeature();\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
4
4
|
class MemberPortalFeature extends Feature_1.Feature {
|
|
5
5
|
constructor() {
|
|
6
6
|
super('MemberPortalFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemberPortalFeature.js","sourceRoot":"/","sources":["src/providers/feature/MemberPortalFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"MemberPortalFeature.js","sourceRoot":"/","sources":["src/providers/feature/MemberPortalFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD,MAAM,mBAAoB,SAAQ,iBAAO;IACrC;QACI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;IACS,MAAM,KAAI,CAAC;CACxB;AAED,kBAAe,IAAI,mBAAmB,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\nclass MemberPortalFeature extends Feature {\n constructor() {\n super('MemberPortalFeature');\n }\n protected onLoad() {}\n}\n\nexport default new MemberPortalFeature();\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
4
4
|
class RoomUpsellFeature extends Feature_1.Feature {
|
|
5
5
|
constructor() {
|
|
6
6
|
super('RoomUpsellFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomUpsellFeature.js","sourceRoot":"/","sources":["src/providers/feature/RoomUpsellFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"RoomUpsellFeature.js","sourceRoot":"/","sources":["src/providers/feature/RoomUpsellFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD,MAAM,iBAAkB,SAAQ,iBAAO;IACnC;QACI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;IAES,MAAM;QACZ,kBAAkB;IACtB,CAAC;CACJ;AAED,kBAAe,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\nclass RoomUpsellFeature extends Feature {\n public constructor() {\n super('RoomUpsellFeature');\n }\n\n protected onLoad() {\n // no empty blocks\n }\n}\n\nexport default new RoomUpsellFeature();\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Feature_1 = require("providers/feature/Feature");
|
|
3
|
+
const Feature_1 = require("../../../providers/feature/Feature");
|
|
4
4
|
class ShowIATANumberOnCheckoutFeature extends Feature_1.Feature {
|
|
5
5
|
constructor() {
|
|
6
6
|
super('ShowIATANumberOnCheckoutFeature');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShowIATANumberOnCheckoutFeature.js","sourceRoot":"/","sources":["src/providers/feature/ShowIATANumberOnCheckoutFeature.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"ShowIATANumberOnCheckoutFeature.js","sourceRoot":"/","sources":["src/providers/feature/ShowIATANumberOnCheckoutFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD,MAAM,+BAAgC,SAAQ,iBAAO;IACjD;QACI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC7C,CAAC;IAES,MAAM;QACZ,yBAAyB;IAC7B,CAAC;CACJ;AAED,kBAAe,IAAI,+BAA+B,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\nclass ShowIATANumberOnCheckoutFeature extends Feature {\n public constructor() {\n super('ShowIATANumberOnCheckoutFeature');\n }\n\n protected onLoad(): void {\n // Nothing to do on load.\n }\n}\n\nexport default new ShowIATANumberOnCheckoutFeature();\n"]}
|
|
@@ -33,7 +33,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.LocalStorageProvider = void 0;
|
|
36
|
-
const StorageProvider_1 = require("providers/storage/StorageProvider");
|
|
36
|
+
const StorageProvider_1 = require("../../../providers/storage/StorageProvider");
|
|
37
37
|
const Sentry = __importStar(require("@sentry/browser"));
|
|
38
38
|
class LocalStorageProvider extends StorageProvider_1.StorageProvider {
|
|
39
39
|
constructor(storageMethod) {
|