@roomstay/frontend 2.0.12 → 2.1.0
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/218.bundle.js +1 -1
- package/dist/423.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/873.bundle.js +1 -1
- package/dist/882.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/animations/AutoAutoHeight.js +28 -2
- package/dist/src/animations/AutoAutoHeight.js.map +1 -1
- package/dist/src/animations/Fade.js +24 -1
- package/dist/src/animations/Fade.js.map +1 -1
- package/dist/src/api/AddonAPI.js +29 -3
- package/dist/src/api/AddonAPI.js.map +1 -1
- package/dist/src/api/AvailabilityAPI.d.ts +1 -1
- package/dist/src/api/AvailabilityAPI.js +40 -14
- package/dist/src/api/AvailabilityAPI.js.map +1 -1
- package/dist/src/api/BaseAPI.d.ts +1 -1
- package/dist/src/api/BaseAPI.js +7 -4
- package/dist/src/api/BaseAPI.js.map +1 -1
- package/dist/src/api/BookingAPI.js +12 -9
- package/dist/src/api/BookingAPI.js.map +1 -1
- package/dist/src/api/ErrorAPI.js +4 -1
- package/dist/src/api/ErrorAPI.js.map +1 -1
- package/dist/src/api/ExchangeRateAPI.js +4 -1
- package/dist/src/api/ExchangeRateAPI.js.map +1 -1
- package/dist/src/api/HotelAPI.js +4 -1
- package/dist/src/api/HotelAPI.js.map +1 -1
- package/dist/src/api/MemberAPI.js +24 -1
- package/dist/src/api/MemberAPI.js.map +1 -1
- package/dist/src/api/ReservationAPI.js +24 -1
- package/dist/src/api/ReservationAPI.js.map +1 -1
- package/dist/src/api/SessionAPI.js +24 -1
- package/dist/src/api/SessionAPI.js.map +1 -1
- package/dist/src/api/members-service/MembersServiceAPI.js +4 -1
- package/dist/src/api/members-service/MembersServiceAPI.js.map +1 -1
- package/dist/src/components/User/Forms/ForgotPasswordForm.js +33 -7
- package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
- package/dist/src/components/User/Forms/SignInForm.js +33 -7
- package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
- package/dist/src/components/User/Forms/SignUpForm.js +36 -10
- package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
- package/dist/src/components/generic/Alert.js +30 -4
- package/dist/src/components/generic/Alert.js.map +1 -1
- package/dist/src/components/generic/BEButton.js +30 -4
- package/dist/src/components/generic/BEButton.js.map +1 -1
- package/dist/src/components/generic/BackButton.js +28 -2
- package/dist/src/components/generic/BackButton.js.map +1 -1
- package/dist/src/components/generic/BookNowPayLaterInfoBlock.js +29 -3
- package/dist/src/components/generic/BookNowPayLaterInfoBlock.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +19 -0
- package/dist/src/components/generic/BookingWizard/BookingWizard.js +106 -0
- package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.d.ts +6 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js +28 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js.map +1 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +10 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +113 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +35 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.js +8 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.d.ts +7 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +146 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +9 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +111 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.d.ts +10 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +144 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -0
- package/dist/src/components/generic/Card/Card/Card.js +30 -4
- package/dist/src/components/generic/Card/Card/Card.js.map +1 -1
- package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js +31 -5
- package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js.map +1 -1
- package/dist/src/components/generic/Checkbox/Checkbox.js +30 -4
- package/dist/src/components/generic/Checkbox/Checkbox.js.map +1 -1
- package/dist/src/components/generic/Countdown.d.ts +1 -1
- package/dist/src/components/generic/Countdown.js +29 -3
- package/dist/src/components/generic/Countdown.js.map +1 -1
- package/dist/src/components/generic/Currency.js +29 -3
- package/dist/src/components/generic/Currency.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.d.ts +14 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.js +155 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.js.map +1 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerContext.d.ts +10 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerContext.js +44 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerContext.js.map +1 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.d.ts +21 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js +134 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js.map +1 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.d.ts +6 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js +44 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js.map +1 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.d.ts +7 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js +57 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js.map +1 -0
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.d.ts +25 -0
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js +87 -0
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js.map +1 -0
- package/dist/src/components/generic/Distance.js +28 -2
- package/dist/src/components/generic/Distance.js.map +1 -1
- package/dist/src/components/generic/ForwardedSelect.d.ts +1 -1
- package/dist/src/components/generic/ForwardedSelect.js +24 -1
- package/dist/src/components/generic/ForwardedSelect.js.map +1 -1
- package/dist/src/components/generic/Headline.js +29 -3
- package/dist/src/components/generic/Headline.js.map +1 -1
- package/dist/src/components/generic/Icon/Icon.js +30 -4
- package/dist/src/components/generic/Icon/Icon.js.map +1 -1
- package/dist/src/components/generic/IconText/IconText.js +31 -5
- package/dist/src/components/generic/IconText/IconText.js.map +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.js +29 -3
- package/dist/src/components/generic/InputGroup/InputGroup.js.map +1 -1
- package/dist/src/components/generic/LineBreak.js +29 -3
- package/dist/src/components/generic/LineBreak.js.map +1 -1
- package/dist/src/components/generic/Notification.js +25 -2
- package/dist/src/components/generic/Notification.js.map +1 -1
- package/dist/src/components/generic/NumberIncrement.js +30 -4
- package/dist/src/components/generic/NumberIncrement.js.map +1 -1
- package/dist/src/components/generic/Overlay/Overlay.d.ts +3 -2
- package/dist/src/components/generic/Overlay/Overlay.js +33 -6
- package/dist/src/components/generic/Overlay/Overlay.js.map +1 -1
- package/dist/src/components/generic/PasswordBox/PasswordBox.js +30 -4
- package/dist/src/components/generic/PasswordBox/PasswordBox.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/CardTypeSelect.d.ts +1 -2
- package/dist/src/components/generic/PaymentCard/CardTypeSelect.js +30 -4
- package/dist/src/components/generic/PaymentCard/CardTypeSelect.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCard.d.ts +2 -3
- package/dist/src/components/generic/PaymentCard/PaymentCard.js +30 -4
- package/dist/src/components/generic/PaymentCard/PaymentCard.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.d.ts +2 -3
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.js +34 -8
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.js.map +1 -1
- package/dist/src/components/generic/Pill.js +30 -4
- package/dist/src/components/generic/Pill.js.map +1 -1
- package/dist/src/components/generic/Placeholder.js +29 -3
- package/dist/src/components/generic/Placeholder.js.map +1 -1
- package/dist/src/components/generic/PlanpayButton/PlanpayButton.d.ts +1 -2
- package/dist/src/components/generic/PlanpayButton/PlanpayButton.js +28 -2
- package/dist/src/components/generic/PlanpayButton/PlanpayButton.js.map +1 -1
- package/dist/src/components/generic/Portal/Portal.js +24 -1
- package/dist/src/components/generic/Portal/Portal.js.map +1 -1
- package/dist/src/components/generic/PromoCodeInput.js +32 -6
- package/dist/src/components/generic/PromoCodeInput.js.map +1 -1
- package/dist/src/components/generic/RadioButtonGroup/RadioButton.js +30 -4
- package/dist/src/components/generic/RadioButtonGroup/RadioButton.js.map +1 -1
- package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +30 -4
- 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 +35 -9
- package/dist/src/components/generic/RecentSearchesCard.js.map +1 -1
- package/dist/src/components/generic/Select/Select.d.ts +20 -6
- package/dist/src/components/generic/Select/Select.js +92 -25
- package/dist/src/components/generic/Select/Select.js.map +1 -1
- package/dist/src/components/generic/Slider/Slider.js +29 -3
- package/dist/src/components/generic/Slider/Slider.js.map +1 -1
- package/dist/src/components/generic/Tabs/ElementChildren.js +24 -1
- package/dist/src/components/generic/Tabs/ElementChildren.js.map +1 -1
- package/dist/src/components/generic/Tabs/Tab.js +24 -1
- package/dist/src/components/generic/Tabs/Tab.js.map +1 -1
- package/dist/src/components/generic/Tabs/TabContext.js +24 -1
- package/dist/src/components/generic/Tabs/TabContext.js.map +1 -1
- package/dist/src/components/generic/Tabs/TabLink.js +30 -4
- package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
- package/dist/src/components/generic/Tabs/TabRouteContainer.js +28 -2
- package/dist/src/components/generic/Tabs/TabRouteContainer.js.map +1 -1
- package/dist/src/components/generic/Tabs/Tabs.js +29 -3
- package/dist/src/components/generic/Tabs/Tabs.js.map +1 -1
- package/dist/src/components/generic/Text.js +29 -3
- package/dist/src/components/generic/Text.js.map +1 -1
- package/dist/src/components/generic/TextArea.js +24 -1
- package/dist/src/components/generic/TextArea.js.map +1 -1
- package/dist/src/components/generic/TextBox.js +30 -4
- package/dist/src/components/generic/TextBox.js.map +1 -1
- package/dist/src/components/generic/Tooltip/Tooltip.js +28 -2
- package/dist/src/components/generic/Tooltip/Tooltip.js.map +1 -1
- package/dist/src/components/generic/badging/SSLSecureBadge.js +29 -3
- package/dist/src/components/generic/badging/SSLSecureBadge.js.map +1 -1
- package/dist/src/components/generic/buttons/NextStepButton.js +30 -4
- package/dist/src/components/generic/buttons/NextStepButton.js.map +1 -1
- package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js +34 -8
- package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js.map +1 -1
- package/dist/src/components/generic/date/DatePicker.d.ts +1 -1
- package/dist/src/components/generic/date/DatePicker.js +42 -16
- package/dist/src/components/generic/date/DatePicker.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerDay.d.ts +1 -1
- package/dist/src/components/generic/date/DatePickerDay.js +33 -7
- package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerDays.d.ts +1 -1
- package/dist/src/components/generic/date/DatePickerDays.js +29 -3
- package/dist/src/components/generic/date/DatePickerDays.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerMonth.d.ts +1 -1
- package/dist/src/components/generic/date/DatePickerMonth.js +30 -4
- package/dist/src/components/generic/date/DatePickerMonth.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerWeek.js +38 -12
- package/dist/src/components/generic/date/DatePickerWeek.js.map +1 -1
- package/dist/src/components/generic/date/FloatingDatePicker.d.ts +1 -1
- package/dist/src/components/generic/date/FloatingDatePicker.js +29 -3
- package/dist/src/components/generic/date/FloatingDatePicker.js.map +1 -1
- package/dist/src/components/generic/date/WeekViewSkeleton.js +31 -5
- package/dist/src/components/generic/date/WeekViewSkeleton.js.map +1 -1
- package/dist/src/components/generic/loader/ImageLoader.js +29 -3
- package/dist/src/components/generic/loader/ImageLoader.js.map +1 -1
- package/dist/src/components/generic/loader/LargeLoader.js +28 -2
- package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
- package/dist/src/components/generic/loader/SmallSpinner.js +25 -2
- package/dist/src/components/generic/loader/SmallSpinner.js.map +1 -1
- package/dist/src/components/generic/map/HotelLocationMap.js +28 -2
- package/dist/src/components/generic/map/HotelLocationMap.js.map +1 -1
- package/dist/src/components/generic/modal/ConfirmationModal.d.ts +1 -2
- package/dist/src/components/generic/modal/ConfirmationModal.js +30 -4
- package/dist/src/components/generic/modal/ConfirmationModal.js.map +1 -1
- package/dist/src/components/generic/modal/ErrorModal.js +29 -3
- package/dist/src/components/generic/modal/ErrorModal.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js +32 -6
- package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js.map +1 -1
- package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +33 -7
- package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
- package/dist/src/components/generic/modal/SimpleModal.d.ts +2 -0
- package/dist/src/components/generic/modal/SimpleModal.js +36 -9
- package/dist/src/components/generic/modal/SimpleModal.js.map +1 -1
- package/dist/src/components/generic/modal/TabbedModal.js +29 -3
- package/dist/src/components/generic/modal/TabbedModal.js.map +1 -1
- package/dist/src/components/generic/radio/RadioFields.js +32 -6
- package/dist/src/components/generic/radio/RadioFields.js.map +1 -1
- package/dist/src/components/iconComponents/BookNowPayLaterIcon.js +24 -1
- package/dist/src/components/iconComponents/BookNowPayLaterIcon.js.map +1 -1
- package/dist/src/components/members/EditMyProfile.js +32 -6
- package/dist/src/components/members/EditMyProfile.js.map +1 -1
- package/dist/src/components/navigation/Header.js +40 -14
- package/dist/src/components/navigation/Header.js.map +1 -1
- package/dist/src/components/navigation/StepSelector.js +34 -8
- package/dist/src/components/navigation/StepSelector.js.map +1 -1
- package/dist/src/components/navigation/StepSelectorModal.js +33 -7
- package/dist/src/components/navigation/StepSelectorModal.js.map +1 -1
- package/dist/src/components/pages/Account/Card/CardList.js +30 -4
- package/dist/src/components/pages/Account/Card/CardList.js.map +1 -1
- package/dist/src/components/pages/Account/Card/MemberCardItem.js +34 -8
- package/dist/src/components/pages/Account/Card/MemberCardItem.js.map +1 -1
- package/dist/src/components/pages/PageColorComponent.js +28 -2
- package/dist/src/components/pages/PageColorComponent.js.map +1 -1
- package/dist/src/components/reservation/ReservationItem.js +42 -16
- package/dist/src/components/reservation/ReservationItem.js.map +1 -1
- package/dist/src/components/reservation/ReservationList.js +28 -2
- package/dist/src/components/reservation/ReservationList.js.map +1 -1
- package/dist/src/components/steps/DaysSelectedInformer.js +25 -2
- package/dist/src/components/steps/DaysSelectedInformer.js.map +1 -1
- package/dist/src/components/steps/MinimumNightStayPill.js +30 -4
- package/dist/src/components/steps/MinimumNightStayPill.js.map +1 -1
- package/dist/src/components/steps/addons/AddonCard.js +37 -12
- package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
- package/dist/src/components/steps/addons/AddonList.js +33 -7
- package/dist/src/components/steps/addons/AddonList.js.map +1 -1
- package/dist/src/components/steps/addons/AddonsNotFound.js +29 -3
- package/dist/src/components/steps/addons/AddonsNotFound.js.map +1 -1
- package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js +29 -3
- package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js.map +1 -1
- package/dist/src/components/steps/confirmation/AccountDetails.js +29 -3
- package/dist/src/components/steps/confirmation/AccountDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js +30 -4
- package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js +24 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js +32 -6
- package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js +28 -2
- package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js.map +1 -1
- package/dist/src/components/steps/confirmation/RoomContactDetails.js +41 -15
- package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +33 -7
- package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js +37 -11
- package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js +30 -4
- package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js +31 -5
- package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js +54 -28
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.js +28 -2
- package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.d.ts +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js +32 -6
- package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +29 -3
- package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js +25 -2
- package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js.map +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js +36 -10
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js.map +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js +26 -3
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js.map +1 -1
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js +37 -12
- package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js.map +1 -1
- package/dist/src/components/steps/date/PeoplePicker.js +32 -6
- package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
- package/dist/src/components/steps/date/PeoplePickerRow.js +31 -5
- package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
- package/dist/src/components/steps/date/StepDatePricePerRoom.js +32 -6
- package/dist/src/components/steps/date/StepDatePricePerRoom.js.map +1 -1
- package/dist/src/components/steps/date/StepOneDateRange.js +29 -3
- package/dist/src/components/steps/date/StepOneDateRange.js.map +1 -1
- package/dist/src/components/steps/date/StepOneDateRangePicker.js +30 -4
- package/dist/src/components/steps/date/StepOneDateRangePicker.js.map +1 -1
- package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js +29 -3
- package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js.map +1 -1
- package/dist/src/components/steps/date/StepOneNextStepButton.js +29 -3
- package/dist/src/components/steps/date/StepOneNextStepButton.js.map +1 -1
- package/dist/src/components/steps/date/StepOneStatusPeople.js +28 -2
- package/dist/src/components/steps/date/StepOneStatusPeople.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCard.js +39 -13
- package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCardList.js +29 -3
- package/dist/src/components/steps/hotel/HotelCardList.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelCardModal.js +38 -12
- package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
- package/dist/src/components/steps/hotel/HotelSearchParameters.js +47 -21
- package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
- package/dist/src/components/steps/hotel/NoHotelsAvailable.js +29 -3
- package/dist/src/components/steps/hotel/NoHotelsAvailable.js.map +1 -1
- package/dist/src/components/steps/room/AvailableUpgradesModal.js +37 -11
- package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
- package/dist/src/components/steps/room/ImageGallerySlider.js +32 -6
- package/dist/src/components/steps/room/ImageGallerySlider.js.map +1 -1
- package/dist/src/components/steps/room/InactivityWindow.js +37 -11
- package/dist/src/components/steps/room/InactivityWindow.js.map +1 -1
- package/dist/src/components/steps/room/LargeRoomCard.js +35 -9
- package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +38 -12
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
- package/dist/src/components/steps/room/NoRoomsFoundBlock.js +35 -9
- package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
- package/dist/src/components/steps/room/RatesNotFound.js +29 -3
- package/dist/src/components/steps/room/RatesNotFound.js.map +1 -1
- package/dist/src/components/steps/room/RoomList.js +38 -12
- package/dist/src/components/steps/room/RoomList.js.map +1 -1
- package/dist/src/components/steps/room/RoomListAlert.js +31 -5
- package/dist/src/components/steps/room/RoomListAlert.js.map +1 -1
- package/dist/src/components/steps/room/RoomListCrossSellBlock.js +34 -8
- package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
- package/dist/src/components/steps/room/RoomModal.js +34 -8
- package/dist/src/components/steps/room/RoomModal.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomAlertBlocks.js +31 -5
- package/dist/src/components/steps/room/StepRoomAlertBlocks.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomBestRateAlert.js +29 -3
- package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomErrorForm.js +37 -11
- package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomHotelDetails.js +29 -3
- package/dist/src/components/steps/room/StepRoomHotelDetails.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomNextStepButton.js +29 -3
- package/dist/src/components/steps/room/StepRoomNextStepButton.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomSortBy.js +34 -9
- package/dist/src/components/steps/room/StepRoomSortBy.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomSummaryAndButton.js +31 -5
- 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 +32 -7
- 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 +32 -7
- package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js.map +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js +31 -5
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js.map +1 -1
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +43 -17
- package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetails.js +41 -15
- package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +25 -2
- package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js +31 -5
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js +35 -9
- package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +37 -11
- package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js +29 -3
- package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js +35 -9
- package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +34 -8
- package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +34 -8
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js +30 -4
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +30 -4
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +32 -6
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +38 -12
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +33 -7
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js +30 -4
- package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js +38 -12
- package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js +33 -7
- package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js +32 -6
- package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js +32 -6
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js.map +1 -1
- package/dist/src/components/summary/BEMapWidget.d.ts +3 -5
- package/dist/src/components/summary/BEMapWidget.js +66 -18
- package/dist/src/components/summary/BEMapWidget.js.map +1 -1
- package/dist/src/components/summary/BEMobileSummary.js +35 -9
- package/dist/src/components/summary/BEMobileSummary.js.map +1 -1
- package/dist/src/components/summary/BEMobileSummaryModal.js +41 -15
- package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
- package/dist/src/components/summary/BESummary.js +37 -11
- package/dist/src/components/summary/BESummary.js.map +1 -1
- package/dist/src/components/summary/BESummaryAddonRow.js +34 -8
- package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
- package/dist/src/components/summary/BESummaryPerkBlock.js +30 -4
- package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
- package/dist/src/components/summary/BESummaryPrivacyPolicy.js +25 -2
- package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
- package/dist/src/components/summary/BESummaryRoomRow.js +35 -9
- package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
- package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +30 -4
- package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
- package/dist/src/components/temp/Login.js +29 -3
- package/dist/src/components/temp/Login.js.map +1 -1
- package/dist/src/containers/PrivateRoute.js +24 -1
- package/dist/src/containers/PrivateRoute.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -1
- package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +42 -16
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js +28 -2
- package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +34 -8
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationFormContext.js +24 -1
- package/dist/src/contexts/ConfirmationFormContext.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +30 -4
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/contexts/DatePickerContext.d.ts +1 -1
- package/dist/src/contexts/DatePickerContext.js +24 -1
- package/dist/src/contexts/DatePickerContext.js.map +1 -1
- package/dist/src/contexts/ErrorContext.js +29 -3
- package/dist/src/contexts/ErrorContext.js.map +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 +52 -26
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
- package/dist/src/contexts/HotelOverridesContext.js +28 -2
- package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +30 -4
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +30 -4
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
- package/dist/src/contexts/ModalContext.js +24 -1
- package/dist/src/contexts/ModalContext.js.map +1 -1
- package/dist/src/contexts/NotificationContext.js +28 -2
- package/dist/src/contexts/NotificationContext.js.map +1 -1
- package/dist/src/engines/BaseEngine.d.ts +4 -5
- package/dist/src/engines/BaseEngine.js +6 -2
- package/dist/src/engines/BaseEngine.js.map +1 -1
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +17 -0
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js +31 -0
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -0
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.d.ts +6 -0
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +54 -0
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -0
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.d.ts +6 -2
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js +24 -1
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js.map +1 -1
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js +24 -1
- package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.d.ts +6 -2
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js +4 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +61 -35
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.d.ts +6 -2
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js +4 -1
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js.map +1 -1
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +35 -9
- package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
- package/dist/src/errors/GetAvailabilityError.d.ts +1 -1
- package/dist/src/errors/GetAvailabilityError.js.map +1 -1
- package/dist/src/hooks/AutoFocusOnSelect.d.ts +2 -0
- package/dist/src/hooks/AutoFocusOnSelect.js +1 -0
- package/dist/src/hooks/AutoFocusOnSelect.js.map +1 -1
- package/dist/src/hooks/ConfirmationQuery.js +2 -2
- package/dist/src/hooks/ConfirmationQuery.js.map +1 -1
- package/dist/src/hooks/ElementSortHook.js +24 -1
- package/dist/src/hooks/ElementSortHook.js.map +1 -1
- package/dist/src/hooks/EventHook.js +4 -1
- package/dist/src/hooks/EventHook.js.map +1 -1
- package/dist/src/hooks/KeyboardControlOnSelect.d.ts +14 -8
- package/dist/src/hooks/KeyboardControlOnSelect.js +45 -37
- package/dist/src/hooks/KeyboardControlOnSelect.js.map +1 -1
- package/dist/src/hooks/Query.d.ts +1 -1
- package/dist/src/hooks/Query.js +29 -6
- package/dist/src/hooks/Query.js.map +1 -1
- package/dist/src/hooks/VGSHooks.js +6 -3
- package/dist/src/hooks/VGSHooks.js.map +1 -1
- package/dist/src/hooks/WindowSize.d.ts +9 -3
- package/dist/src/hooks/WindowSize.js +13 -2
- package/dist/src/hooks/WindowSize.js.map +1 -1
- package/dist/src/icons/Check.js +24 -1
- package/dist/src/icons/Check.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +60 -44
- package/dist/src/index.js.map +1 -1
- package/dist/src/mockApi/AddonAPI.js +5 -2
- package/dist/src/mockApi/AddonAPI.js.map +1 -1
- package/dist/src/mockApi/BookingAPI.js +9 -6
- package/dist/src/mockApi/BookingAPI.js.map +1 -1
- package/dist/src/mockApi/ExchangeRateAPI.js +4 -1
- package/dist/src/mockApi/ExchangeRateAPI.js.map +1 -1
- package/dist/src/mockApi/HotelAPI.js +4 -1
- package/dist/src/mockApi/HotelAPI.js.map +1 -1
- package/dist/src/mockApi/MemberAPI.js +24 -1
- package/dist/src/mockApi/MemberAPI.js.map +1 -1
- package/dist/src/mockApi/MockAPI.d.ts +1 -1
- package/dist/src/mockApi/MockAPI.js +6 -3
- package/dist/src/mockApi/MockAPI.js.map +1 -1
- package/dist/src/mockApi/ReservationAPI.js +24 -1
- package/dist/src/mockApi/ReservationAPI.js.map +1 -1
- package/dist/src/models/Addon/Addon.d.ts +1 -1
- package/dist/src/models/Addon/Addon.js +7 -4
- package/dist/src/models/Addon/Addon.js.map +1 -1
- package/dist/src/models/BasketRow.d.ts +1 -1
- package/dist/src/models/BasketRow.js.map +1 -1
- package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +6 -0
- package/dist/src/models/BookingWizard/BookingWizardProperty.js +3 -0
- package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -0
- package/dist/src/models/BookingWizard/BookingWizardTypes.d.ts +4 -0
- package/dist/src/models/BookingWizard/BookingWizardTypes.js +3 -0
- package/dist/src/models/BookingWizard/BookingWizardTypes.js.map +1 -0
- package/dist/src/models/Promotion/IPromotion.type.d.ts +1 -1
- package/dist/src/models/Promotion/IPromotion.type.js.map +1 -1
- package/dist/src/models/Reservation/Reservation.d.ts +1 -1
- package/dist/src/models/Reservation/Reservation.js.map +1 -1
- package/dist/src/models/Room/Filters/BudgetFilter.js +4 -1
- package/dist/src/models/Room/Filters/BudgetFilter.js.map +1 -1
- package/dist/src/models/Room/Filters/RateTypeFilter.js +4 -1
- package/dist/src/models/Room/Filters/RateTypeFilter.js.map +1 -1
- package/dist/src/models/Room/Filters/RoomTypeFilter.js +4 -1
- package/dist/src/models/Room/Filters/RoomTypeFilter.js.map +1 -1
- package/dist/src/models/Room/RoomRate.js +6 -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 +5 -2
- package/dist/src/models/Room/RoomRateNight.js.map +1 -1
- package/dist/src/models/RoomstaySession.d.ts +1 -1
- package/dist/src/models/RoomstaySession.js.map +1 -1
- package/dist/src/pages/account/AccountHome/AccountHomePage.js +34 -8
- package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
- package/dist/src/pages/account/AccountOutlet.js +24 -1
- package/dist/src/pages/account/AccountOutlet.js.map +1 -1
- package/dist/src/pages/account/AccountRouter.js +24 -1
- package/dist/src/pages/account/AccountRouter.js.map +1 -1
- package/dist/src/pages/account/Details/AccountDetailsCardsPage.js +33 -7
- package/dist/src/pages/account/Details/AccountDetailsCardsPage.js.map +1 -1
- package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +32 -6
- package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
- package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +34 -8
- package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
- package/dist/src/pages/account/Help/AccountHelpPage.js +36 -10
- package/dist/src/pages/account/Help/AccountHelpPage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationCancelledPage.js +40 -14
- package/dist/src/pages/account/Reservations/AccountReservationCancelledPage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationMultiplePage.js +39 -13
- package/dist/src/pages/account/Reservations/AccountReservationMultiplePage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +39 -13
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationsPage.js +31 -5
- package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservation.js +39 -13
- package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservationResults.js +40 -14
- package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
- package/dist/src/pages/findReservation/ReservationRow.js +40 -14
- package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
- package/dist/src/pages/findReservation/ReservationRowModal.js +39 -13
- package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
- package/dist/src/pages/hotel/HotelInfo.js +36 -10
- package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
- package/dist/src/pages/hotel/HotelInfoPlaceholder.js +28 -2
- package/dist/src/pages/hotel/HotelInfoPlaceholder.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddon.js +6 -3
- package/dist/src/pages/steps/StepAddon/StepAddon.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +35 -9
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonLoader.js +29 -3
- package/dist/src/pages/steps/StepAddon/StepAddonLoader.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonValidator.js +4 -1
- package/dist/src/pages/steps/StepAddon/StepAddonValidator.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js +6 -3
- package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +41 -15
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js +29 -3
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js.map +1 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js +4 -1
- package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDate.js +6 -3
- package/dist/src/pages/steps/StepDate/StepDate.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateComponent.js +39 -13
- package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateValidator.js +4 -1
- package/dist/src/pages/steps/StepDate/StepDateValidator.js.map +1 -1
- package/dist/src/pages/steps/StepGuide.js +29 -3
- package/dist/src/pages/steps/StepGuide.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotel.js +6 -3
- package/dist/src/pages/steps/StepHotel/StepHotel.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +39 -13
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelLoader.js +31 -5
- package/dist/src/pages/steps/StepHotel/StepHotelLoader.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelValidator.js +4 -1
- package/dist/src/pages/steps/StepHotel/StepHotelValidator.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoom.js +6 -3
- package/dist/src/pages/steps/StepRoom/StepRoom.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +42 -16
- package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomLoader.js +29 -3
- package/dist/src/pages/steps/StepRoom/StepRoomLoader.js.map +1 -1
- package/dist/src/pages/steps/StepRoom/StepRoomValidator.js +4 -1
- package/dist/src/pages/steps/StepRoom/StepRoomValidator.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanks.js +7 -4
- package/dist/src/pages/steps/StepThanks/StepThanks.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +39 -13
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksValidator.js +4 -1
- package/dist/src/pages/steps/StepThanks/StepThanksValidator.js.map +1 -1
- package/dist/src/providers/CurrencyProvider.js +4 -1
- package/dist/src/providers/CurrencyProvider.js.map +1 -1
- package/dist/src/providers/DIProvider.js +24 -1
- package/dist/src/providers/DIProvider.js.map +1 -1
- package/dist/src/providers/FeatureProvider.d.ts +2 -2
- package/dist/src/providers/FeatureProvider.js +12 -9
- package/dist/src/providers/FeatureProvider.js.map +1 -1
- package/dist/src/providers/FilterProvider.js +4 -1
- package/dist/src/providers/FilterProvider.js.map +1 -1
- package/dist/src/providers/LanguageProvider.js +6 -3
- package/dist/src/providers/LanguageProvider.js.map +1 -1
- package/dist/src/providers/PromotionProvider.js +7 -4
- package/dist/src/providers/PromotionProvider.js.map +1 -1
- package/dist/src/providers/RoomstayThemeEngine.js +35 -9
- package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
- package/dist/src/providers/SessionProvider.js +9 -6
- package/dist/src/providers/SessionProvider.js.map +1 -1
- package/dist/src/providers/feature/InlineAddonStepFeature.js +5 -2
- package/dist/src/providers/feature/InlineAddonStepFeature.js.map +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.js +24 -1
- package/dist/src/providers/storage/LocalStorageProvider.js.map +1 -1
- package/dist/src/reducers/BasketReducer.js +7 -4
- package/dist/src/reducers/BasketReducer.js.map +1 -1
- package/dist/src/routes/NaturallyProgressedStepRoute.js +33 -7
- package/dist/src/routes/NaturallyProgressedStepRoute.js.map +1 -1
- package/dist/src/stories/Alert.stories.d.ts +5 -0
- package/dist/src/stories/Alert.stories.js +42 -0
- package/dist/src/stories/Alert.stories.js.map +1 -0
- package/dist/src/stories/{Button.stories.d.ts → BEButton.stories.d.ts} +1 -1
- package/dist/src/stories/BEButton.stories.js +43 -0
- package/dist/src/stories/BEButton.stories.js.map +1 -0
- package/dist/src/stories/BackButton.stories.d.ts +5 -0
- package/dist/src/stories/BackButton.stories.js +40 -0
- package/dist/src/stories/BackButton.stories.js.map +1 -0
- package/dist/src/stories/BookNowPayLaterInfoBlock.stories.d.ts +5 -0
- package/dist/src/stories/BookNowPayLaterInfoBlock.stories.js +37 -0
- package/dist/src/stories/BookNowPayLaterInfoBlock.stories.js.map +1 -0
- package/dist/src/stories/BookingWizard.stories.d.ts +9 -0
- package/dist/src/stories/BookingWizard.stories.js +58 -0
- package/dist/src/stories/BookingWizard.stories.js.map +1 -0
- package/dist/src/stories/Card.stories.d.ts +3 -3
- package/dist/src/stories/Card.stories.js +4 -1
- package/dist/src/stories/Card.stories.js.map +1 -1
- package/dist/src/stories/CardTypeSelect.stories.d.ts +5 -0
- package/dist/src/stories/CardTypeSelect.stories.js +37 -0
- package/dist/src/stories/CardTypeSelect.stories.js.map +1 -0
- package/dist/src/stories/Checkbox.stories.js +28 -2
- package/dist/src/stories/Checkbox.stories.js.map +1 -1
- package/dist/src/stories/ConfirmationModal.stories.d.ts +5 -0
- package/dist/src/stories/ConfirmationModal.stories.js +45 -0
- package/dist/src/stories/ConfirmationModal.stories.js.map +1 -0
- package/dist/src/stories/Countdown.stories.d.ts +5 -0
- package/dist/src/stories/Countdown.stories.js +43 -0
- package/dist/src/stories/Countdown.stories.js.map +1 -0
- package/dist/src/stories/Currency.stories.d.ts +5 -0
- package/dist/src/stories/Currency.stories.js +42 -0
- package/dist/src/stories/Currency.stories.js.map +1 -0
- package/dist/src/stories/DateRangePicker.stories.d.ts +8 -0
- package/dist/src/stories/DateRangePicker.stories.js +80 -0
- package/dist/src/stories/DateRangePicker.stories.js.map +1 -0
- package/dist/src/stories/Distance.stories.d.ts +5 -0
- package/dist/src/stories/Distance.stories.js +42 -0
- package/dist/src/stories/Distance.stories.js.map +1 -0
- package/dist/src/stories/EnhancedPhoneNumberField.stories.js +28 -2
- package/dist/src/stories/EnhancedPhoneNumberField.stories.js.map +1 -1
- package/dist/src/stories/ErrorModal.stories.d.ts +5 -0
- package/dist/src/stories/ErrorModal.stories.js +46 -0
- package/dist/src/stories/ErrorModal.stories.js.map +1 -0
- package/dist/src/stories/FloatingDateRangePicker.stories.d.ts +6 -0
- package/dist/src/stories/FloatingDateRangePicker.stories.js +75 -0
- package/dist/src/stories/FloatingDateRangePicker.stories.js.map +1 -0
- package/dist/src/stories/ForwardedSelect.stories.d.ts +5 -0
- package/dist/src/stories/ForwardedSelect.stories.js +51 -0
- package/dist/src/stories/ForwardedSelect.stories.js.map +1 -0
- package/dist/src/stories/Headline.stories.d.ts +5 -0
- package/dist/src/stories/Headline.stories.js +42 -0
- package/dist/src/stories/Headline.stories.js.map +1 -0
- package/dist/src/stories/Icon.stories.js +25 -2
- package/dist/src/stories/Icon.stories.js.map +1 -1
- package/dist/src/stories/IconNavCard.stories.js +24 -1
- package/dist/src/stories/IconNavCard.stories.js.map +1 -1
- package/dist/src/stories/IconText.stories.js +28 -2
- package/dist/src/stories/IconText.stories.js.map +1 -1
- package/dist/src/stories/ImageLoader.stories.js +28 -2
- package/dist/src/stories/ImageLoader.stories.js.map +1 -1
- package/dist/src/stories/InputGroup.stories.js +28 -2
- package/dist/src/stories/InputGroup.stories.js.map +1 -1
- package/dist/src/stories/LargeLoader.stories.js +28 -2
- package/dist/src/stories/LargeLoader.stories.js.map +1 -1
- package/dist/src/stories/LineBreak.stories.d.ts +5 -0
- package/dist/src/stories/LineBreak.stories.js +40 -0
- package/dist/src/stories/LineBreak.stories.js.map +1 -0
- package/dist/src/stories/Notification.stories.d.ts +5 -0
- package/dist/src/stories/Notification.stories.js +46 -0
- package/dist/src/stories/Notification.stories.js.map +1 -0
- package/dist/src/stories/NumberIncrement.stories.d.ts +5 -0
- package/dist/src/stories/NumberIncrement.stories.js +46 -0
- package/dist/src/stories/NumberIncrement.stories.js.map +1 -0
- package/dist/src/stories/PasswordBox.stories.js +24 -1
- package/dist/src/stories/PasswordBox.stories.js.map +1 -1
- package/dist/src/stories/PaymentCard.stories.d.ts +4 -0
- package/dist/src/stories/PaymentCard.stories.js +47 -0
- package/dist/src/stories/PaymentCard.stories.js.map +1 -0
- package/dist/src/stories/PaymentCardInput.stories.d.ts +6 -0
- package/dist/src/stories/PaymentCardInput.stories.js +51 -0
- package/dist/src/stories/PaymentCardInput.stories.js.map +1 -0
- package/dist/src/stories/Pill.stories.d.ts +5 -0
- package/dist/src/stories/Pill.stories.js +42 -0
- package/dist/src/stories/Pill.stories.js.map +1 -0
- package/dist/src/stories/Placeholder.stories.d.ts +5 -0
- package/dist/src/stories/Placeholder.stories.js +45 -0
- package/dist/src/stories/Placeholder.stories.js.map +1 -0
- package/dist/src/stories/PlanpayButton.stories.d.ts +5 -0
- package/dist/src/stories/PlanpayButton.stories.js +39 -0
- package/dist/src/stories/PlanpayButton.stories.js.map +1 -0
- package/dist/src/stories/PromoCodeInput.stories.d.ts +5 -0
- package/dist/src/stories/PromoCodeInput.stories.js +40 -0
- package/dist/src/stories/PromoCodeInput.stories.js.map +1 -0
- package/dist/src/stories/RadioButton.stories.d.ts +6 -0
- package/dist/src/stories/RadioButton.stories.js +47 -0
- package/dist/src/stories/RadioButton.stories.js.map +1 -0
- package/dist/src/stories/RadioButtonGroup.stories.d.ts +5 -0
- package/dist/src/stories/RadioButtonGroup.stories.js +55 -0
- package/dist/src/stories/RadioButtonGroup.stories.js.map +1 -0
- package/dist/src/stories/RadioFields.stories.d.ts +5 -0
- package/dist/src/stories/RadioFields.stories.js +54 -0
- package/dist/src/stories/RadioFields.stories.js.map +1 -0
- package/dist/src/stories/SSLSecureBadge.stories.js +5 -2
- package/dist/src/stories/SSLSecureBadge.stories.js.map +1 -1
- package/dist/src/stories/Select.stories.d.ts +25 -0
- package/dist/src/stories/Select.stories.js +96 -0
- package/dist/src/stories/Select.stories.js.map +1 -0
- package/dist/src/stories/SimpleModal.stories.d.ts +5 -0
- package/dist/src/stories/SimpleModal.stories.js +52 -0
- package/dist/src/stories/SimpleModal.stories.js.map +1 -0
- package/dist/src/stories/Slider.stories.d.ts +10 -0
- package/dist/src/stories/Slider.stories.js +53 -0
- package/dist/src/stories/Slider.stories.js.map +1 -0
- package/dist/src/stories/SmallSpinner.stories.js +28 -2
- package/dist/src/stories/SmallSpinner.stories.js.map +1 -1
- package/dist/src/stories/TabbedModal.stories.d.ts +5 -0
- package/dist/src/stories/TabbedModal.stories.js +61 -0
- package/dist/src/stories/TabbedModal.stories.js.map +1 -0
- package/dist/src/stories/Tabs.stories.d.ts +5 -0
- package/dist/src/stories/Tabs.stories.js +52 -0
- package/dist/src/stories/Tabs.stories.js.map +1 -0
- package/dist/src/stories/Text.stories.d.ts +5 -0
- package/dist/src/stories/Text.stories.js +42 -0
- package/dist/src/stories/Text.stories.js.map +1 -0
- package/dist/src/stories/TextArea.stories.d.ts +5 -0
- package/dist/src/stories/TextArea.stories.js +40 -0
- package/dist/src/stories/TextArea.stories.js.map +1 -0
- package/dist/src/stories/TextBox.stories.d.ts +5 -0
- package/dist/src/stories/TextBox.stories.js +40 -0
- package/dist/src/stories/TextBox.stories.js.map +1 -0
- package/dist/src/stories/Tooltip.stories.d.ts +5 -0
- package/dist/src/stories/Tooltip.stories.js +43 -0
- package/dist/src/stories/Tooltip.stories.js.map +1 -0
- package/dist/src/util/CalendarHelper.d.ts +1 -1
- package/dist/src/util/CalendarHelper.js +5 -2
- package/dist/src/util/CalendarHelper.js.map +1 -1
- package/dist/src/util/DataLayer.js +30 -4
- package/dist/src/util/DataLayer.js.map +1 -1
- package/dist/src/util/ObjectHelper.js +1 -1
- package/dist/src/util/ObjectHelper.js.map +1 -1
- package/dist/src/util/PaymentCardHelper.js +4 -1
- package/dist/src/util/PaymentCardHelper.js.map +1 -1
- package/dist/tests/jest/engines/RoomstayThemeEngine.test.js +4 -1
- package/dist/tests/jest/engines/RoomstayThemeEngine.test.js.map +1 -1
- package/dist/tests/jest/events/EventManager.test.js +5 -2
- package/dist/tests/jest/events/EventManager.test.js.map +1 -1
- package/dist/tests/jest/models/RoomRate.test.js +5 -2
- package/dist/tests/jest/models/RoomRate.test.js.map +1 -1
- package/dist/tests/jest/providers/LanguageProvider.test.js +11 -0
- package/dist/tests/jest/providers/LanguageProvider.test.js.map +1 -1
- package/dist/tests/jest/providers/SessionProvider.test.js +26 -15
- package/dist/tests/jest/providers/SessionProvider.test.js.map +1 -1
- package/dist/tests/jest/reducers/BasketReducer.test.js +4 -1
- package/dist/tests/jest/reducers/BasketReducer.test.js.map +1 -1
- package/dist/tests/offline/RoomstayBestRateAlert.js +29 -3
- package/dist/tests/offline/RoomstayBestRateAlert.js.map +1 -1
- package/dist/tests/offline/entry/RSCompany.js +13 -1
- package/dist/tests/offline/entry/RSCompany.js.map +1 -1
- package/dist/tests/offline/entry/ReactWrapper.js +105 -9
- package/dist/tests/offline/entry/ReactWrapper.js.map +1 -1
- package/dist/tests/offline/entry/allEngines.js +32 -6
- package/dist/tests/offline/entry/allEngines.js.map +1 -1
- package/dist/tests/offline/entry/components/TestPicker.js +79 -36
- package/dist/tests/offline/entry/components/TestPicker.js.map +1 -1
- package/dist/tests/setupTests.js +2 -0
- package/dist/tests/setupTests.js.map +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/dist/vendors.bundle.js.LICENSE.txt +5 -9
- package/package.json +10 -7
- package/dist/src/components/generic/BESelect.d.ts +0 -16
- package/dist/src/components/generic/BESelect.js +0 -12
- package/dist/src/components/generic/BESelect.js.map +0 -1
- package/dist/src/components/generic/Select.d.ts +0 -11
- package/dist/src/components/generic/Select.js +0 -18
- package/dist/src/components/generic/Select.js.map +0 -1
- package/dist/src/stories/Button.stories.js +0 -17
- package/dist/src/stories/Button.stories.js.map +0 -1
- package/dist/test.bundle.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivateRoute.js","sourceRoot":"/","sources":["src/containers/PrivateRoute.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PrivateRoute.js","sourceRoot":"/","sources":["src/containers/PrivateRoute.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAE/B,uDAA+D;AAC/D,iDAA0E;AAEnE,MAAM,YAAY,GAAmB,CAAC,EAA6B,EAAE,EAAE;QAAjC,EAAE,QAAQ,EAAE,MAAM,OAAW,EAAN,IAAI,cAA3B,sBAA6B,CAAF;IACpE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAiB,GAAE,CAAC;IAC3D,MAAM,eAAe,GAAG,iBAAiB,KAAK,4BAAiB,CAAC,OAAO,CAAC;IACxE,OAAO,CACH,oBAAC,wBAAK,oBACE,IAAI,IACR,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE;YAClB,IAAI,OAAO,IAAI,eAAe;gBAAE,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,GAAG,MAAM,CAAC,CAAC;YAC3D,OAAO,CACH,oBAAC,2BAAQ,IACL,EAAE,EAAE;oBACA,QAAQ,EAAE,mBAAmB;iBAChC,GACH,CACL,CAAC;QACN,CAAC,KAEA,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAC9B,CACX,CAAC;AACN,CAAC,CAAC;AApBW,QAAA,YAAY,gBAoBvB","sourcesContent":["import * as React from 'react';\nimport { FC } from 'react';\nimport { Redirect, Route, RouteProps } from 'react-router-dom';\nimport { CognitoLoginState, useAuthentication } from '@frontend/contexts';\n\nexport const PrivateRoute: FC<RouteProps> = ({ children, render, ...rest }) => {\n const { cognitoLoginState, loading } = useAuthentication();\n const isAuthenticated = cognitoLoginState === CognitoLoginState.Success;\n return (\n <Route\n {...rest}\n render={(...params) => {\n if (loading || isAuthenticated) return render?.(...params);\n return (\n <Redirect\n to={{\n pathname: '/find-reservation',\n }}\n />\n );\n }}\n >\n {isAuthenticated ? children : null}\n </Route>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasketContextType.js","sourceRoot":"/","sources":["src/contexts/BasketContext/BasketContextType.ts"],"names":[],"mappings":"","sourcesContent":["import type
|
|
1
|
+
{"version":3,"file":"BasketContextType.js","sourceRoot":"/","sources":["src/contexts/BasketContext/BasketContextType.ts"],"names":[],"mappings":"","sourcesContent":["import type dayjs from 'dayjs';\nimport type { Addon } from 'models/Addon/Addon';\nimport type ReservationsDTO from 'models/Api/ReservationsDTO';\nimport type BasketAddonRow from 'models/BasketAddonRow';\nimport type BasketRow from 'models/BasketRow';\nimport type { IPromotion } from 'models/Promotion/IPromotion.type';\nimport type { RoomRate } from 'models/Room/RoomRate';\n\nexport interface BasketContextType {\n selectedBasketRow: BasketRow;\n currentBasketRows: BasketRow[];\n basketAddonRows: BasketAddonRow[];\n loadedPromotion: IPromotion | null;\n\n startDate: dayjs.Dayjs;\n endDate: dayjs.Dayjs;\n\n addBasketRow: (row: BasketRow, selectThisRate?: boolean, neverSelectThisRate?: boolean) => void;\n addRate: (rate: RoomRate, notify?: boolean) => Promise<void>;\n\n getAllValidRows: () => BasketRow[];\n getAllDatelessRows: () => BasketRow[];\n\n getNumberOfAdults: (withTranslation: boolean) => number | string;\n getNumberOfChildren: (withTranslation: boolean) => number | string;\n getNumberOfRooms: (withTranslation: boolean) => number | string;\n\n getTotalPrice: () => any;\n\n updateBasketRow: (row: BasketRow, updateGlobalDates?: boolean) => void;\n removeBasketRow: (row: BasketRow) => void;\n clearBasketRows: (confirm: boolean) => void;\n selectBasketRow: (row: BasketRow) => void;\n\n setStartDate: (date: dayjs.Dayjs) => void;\n setEndDate: (date: dayjs.Dayjs) => void;\n\n hasCheckedOut: boolean;\n reservationData: ReservationsDTO;\n booked: (data: ReservationsDTO) => void;\n rollback: () => void;\n checkedOut: (data: ReservationsDTO) => void;\n clearSelectedRates: () => void;\n\n getRowForAddon: (selectedAddon: Addon) => BasketAddonRow;\n\n setAddonQuantities: (addon: Addon, quantities: { quantity: number; adult: number; child: number }, selectedDate: string, selectedTime: string) => void;\n\n removeBasketAddonRow: (row: BasketAddonRow) => void;\n attemptSelectUnfilledRow: () => BasketRow | null;\n}\n"]}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,10 +31,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.BasketContextWrapper = void 0;
|
|
13
|
-
const
|
|
14
|
-
const React = require("react");
|
|
39
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
40
|
+
const React = __importStar(require("react"));
|
|
15
41
|
const react_1 = require("react");
|
|
16
42
|
const react_i18next_1 = require("react-i18next");
|
|
17
43
|
const react_router_dom_1 = require("react-router-dom");
|
|
@@ -19,21 +45,21 @@ const contexts_1 = require("@frontend/contexts");
|
|
|
19
45
|
const contexts_2 = require("@frontend/contexts");
|
|
20
46
|
const hooks_1 = require("@frontend/hooks");
|
|
21
47
|
const BasketReducer_1 = require("reducers/BasketReducer");
|
|
22
|
-
const BookingAPI_1 = require("api/BookingAPI");
|
|
48
|
+
const BookingAPI_1 = __importDefault(require("api/BookingAPI"));
|
|
23
49
|
const Icon_1 = require("components/generic/Icon/Icon");
|
|
24
|
-
const MemberSignInModal_1 = require("components/steps/room/MemberSignInModal/MemberSignInModal");
|
|
50
|
+
const MemberSignInModal_1 = __importDefault(require("components/steps/room/MemberSignInModal/MemberSignInModal"));
|
|
25
51
|
const BasketContextErrorHandler_1 = require("handlers/BasketContextErrorHandler");
|
|
26
|
-
const BasketAddonRow_1 = require("models/BasketAddonRow");
|
|
27
|
-
const BasketRow_1 = require("models/BasketRow");
|
|
28
|
-
const StepAddon_1 = require("pages/steps/StepAddon/StepAddon");
|
|
29
|
-
const StepRoom_1 = require("pages/steps/StepRoom/StepRoom");
|
|
30
|
-
const StepThanks_1 = require("pages/steps/StepThanks/StepThanks");
|
|
31
|
-
const InlineAddonStepFeature_1 = require("providers/feature/InlineAddonStepFeature");
|
|
32
|
-
const DataLayer_1 = require("util/DataLayer");
|
|
33
|
-
const StepManager_1 = require("util/StepManager");
|
|
34
|
-
const StringHelper_1 = require("util/StringHelper");
|
|
52
|
+
const BasketAddonRow_1 = __importDefault(require("models/BasketAddonRow"));
|
|
53
|
+
const BasketRow_1 = __importDefault(require("models/BasketRow"));
|
|
54
|
+
const StepAddon_1 = __importDefault(require("pages/steps/StepAddon/StepAddon"));
|
|
55
|
+
const StepRoom_1 = __importDefault(require("pages/steps/StepRoom/StepRoom"));
|
|
56
|
+
const StepThanks_1 = __importDefault(require("pages/steps/StepThanks/StepThanks"));
|
|
57
|
+
const InlineAddonStepFeature_1 = __importDefault(require("providers/feature/InlineAddonStepFeature"));
|
|
58
|
+
const DataLayer_1 = __importDefault(require("util/DataLayer"));
|
|
59
|
+
const StepManager_1 = __importDefault(require("util/StepManager"));
|
|
60
|
+
const StringHelper_1 = __importDefault(require("util/StringHelper"));
|
|
35
61
|
const Translation_1 = require("translations/Translation");
|
|
36
|
-
const Text_1 = require("components/generic/Text");
|
|
62
|
+
const Text_1 = __importDefault(require("components/generic/Text"));
|
|
37
63
|
const PromotionProvider_1 = require("providers/PromotionProvider");
|
|
38
64
|
function BasketContextWrapper(props) {
|
|
39
65
|
var _a, _b, _c;
|
|
@@ -350,8 +376,8 @@ function BasketContextWrapper(props) {
|
|
|
350
376
|
setSelectedBasketRow(null);
|
|
351
377
|
basketRowReducer({ method: 'Clear' });
|
|
352
378
|
const row = new BasketRow_1.default();
|
|
353
|
-
row.setStartDate(
|
|
354
|
-
row.setEndDate(
|
|
379
|
+
row.setStartDate((0, dayjs_1.default)().add(1, 'day'));
|
|
380
|
+
row.setEndDate((0, dayjs_1.default)().add(2, 'day'));
|
|
355
381
|
basketRowReducer({ method: 'Add', row });
|
|
356
382
|
setBasketAddonRows([]);
|
|
357
383
|
const sessionProvider = (_a = beContext === null || beContext === void 0 ? void 0 : beContext.engine) === null || _a === void 0 ? void 0 : _a.getSessionProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasketContextWrapper.js","sourceRoot":"/","sources":["src/contexts/BasketContext/BasketContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as dayjs from 'dayjs';\nimport * as React from 'react';\nimport { useContext, useEffect, useReducer, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\n\nimport { BasketContextType, useMemberContext } from '@frontend/contexts';\nimport { BasketContext, BookingEngineContext, CompanyContext, ErrorHandler, NotificationContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { BasketReducer } from 'reducers/BasketReducer';\nimport API from 'api/BookingAPI';\nimport { IconType } from 'components/generic/Icon/Icon';\nimport MemberSignInModal from 'components/steps/room/MemberSignInModal/MemberSignInModal';\nimport { BasketContextErrorHandler } from 'handlers/BasketContextErrorHandler';\nimport { Addon } from 'models/Addon/Addon';\nimport ReservationsDTO from 'models/Api/ReservationsDTO';\nimport BasketAddonRow from 'models/BasketAddonRow';\nimport BasketRow from 'models/BasketRow';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport StepAddon from 'pages/steps/StepAddon/StepAddon';\nimport StepRoom from 'pages/steps/StepRoom/StepRoom';\nimport StepThanks from 'pages/steps/StepThanks/StepThanks';\nimport InlineAddonStepFeature from 'providers/feature/InlineAddonStepFeature';\nimport DataLayer from 'util/DataLayer';\nimport StepManager from 'util/StepManager';\nimport StringHelper from 'util/StringHelper';\nimport { Translation } from 'translations/Translation';\nimport Text from 'components/generic/Text';\nimport { usePromotionContainer } from 'providers/PromotionProvider';\n\nexport interface BasketContextWrapperProps {\n children: React.ReactNode;\n}\n\nexport function BasketContextWrapper(props: BasketContextWrapperProps) {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const notifications = useContext(NotificationContext);\n const beContext = useContext(BookingEngineContext);\n const ccx = useContext(CompanyContext);\n const memberContext = useMemberContext();\n\n const initialSession = beContext?.engine?.getInitialSession();\n\n const [currentBasketRows, basketRowReducer] = useReducer(BasketReducer, initialSession?.basketRows ?? []);\n\n const [selectedBasketRow, setSelectedBasketRow] = useState<BasketRow>(null);\n const [basketAddonRows, setBasketAddonRows] = useState<BasketAddonRow[]>([]);\n\n let loadedStartDate: dayjs.Dayjs;\n let loadedEndDate: dayjs.Dayjs;\n\n if (initialSession?.basketRows?.length) {\n loadedStartDate = initialSession.basketRows[0].getStartDate();\n loadedEndDate = initialSession.basketRows[0].getEndDate();\n } else {\n if (initialSession?.startDate) {\n loadedStartDate = initialSession.startDate;\n }\n\n if (initialSession?.endDate) {\n loadedEndDate = initialSession.endDate;\n }\n }\n\n const [startDate, setStartDate] = useState<dayjs.Dayjs>(loadedStartDate ?? null);\n const [endDate, setEndDate] = useState<dayjs.Dayjs>(loadedEndDate ?? null);\n\n const [hasCheckedOut, setHasCheckedOut] = useState(false);\n const [reservationData, setReservationData] = useState<ReservationsDTO>(initialSession.reservation || null);\n\n const [knownErrorPromoCodes, setKnownErrorPromoCodes] = useState<string[]>([]);\n\n const history = useHistory();\n\n BasketContextErrorHandler.handleAvailabilityWarnings = (warnings: string[]) => {\n warnings.map((warning) => {\n if (warning.toLowerCase().startsWith('invalid promo code')) {\n const promoCode = warning.substr(20);\n\n currentBasketRows.forEach((row) => {\n if (promoCode.toLowerCase() === row.getPromoCode().toLowerCase()) {\n row.setPromoCodeStatus('invalid');\n workingContext.updateBasketRow(row, false);\n }\n });\n\n if (!knownErrorPromoCodes.includes(promoCode.toUpperCase())) {\n setKnownErrorPromoCodes((oldCodes) => {\n return [...oldCodes, promoCode.toUpperCase()];\n });\n }\n } else {\n ErrorHandler.add({\n message: warning,\n });\n }\n });\n };\n\n BasketContextErrorHandler.handlePromoSuccess = (promo: string) => {\n currentBasketRows.forEach((row) => {\n if (row.getPromoCode() === promo && row.getPromoCode() && row.getPromoCodeStatus() !== 'valid') {\n row.setPromoCodeStatus('valid');\n workingContext.updateBasketRow(row, false);\n }\n });\n };\n\n useEffect(() => {\n if (!startDate || !endDate) {\n return;\n }\n\n beContext.sessionProvider?.updateSession({\n startDate,\n endDate,\n });\n\n // TODO re-visit this as we don't want to set dates for everything constantly\n workingContext.getAllDatelessRows().forEach((row: BasketRow) => {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n workingContext.updateBasketRow(row);\n });\n\n if (selectedBasketRow) {\n selectedBasketRow.setStartDate(startDate);\n selectedBasketRow.setEndDate(endDate);\n\n workingContext.updateBasketRow(selectedBasketRow, false);\n } else if (currentBasketRows.length === 1) {\n const onlyBasketRow = currentBasketRows[0];\n onlyBasketRow.setStartDate(startDate);\n onlyBasketRow.setEndDate(endDate);\n\n workingContext.updateBasketRow(onlyBasketRow, false);\n }\n }, [startDate, endDate]);\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ basketRows: currentBasketRows });\n }, [currentBasketRows, selectedBasketRow]);\n\n const checkAndApplyMemberOnlyPromo = (row: BasketRow) => {\n if (row && hotel?.memberOnlyPromoCode && localStorage.getItem('hotel' + hotel?.hotelID + 'user') && !row.getPromoCode()) {\n row.setPromoCode(hotel.memberOnlyPromoCode);\n workingContext.updateBasketRow(row);\n }\n };\n\n /**\n * This is necessary as when we're adding our first row, hotel might not be set.\n */\n useEffect(() => {\n checkAndApplyMemberOnlyPromo(selectedBasketRow);\n }, [hotel]);\n\n const returnAggregationAndTranslation = (reduction: ((row: BasketRow) => number) | number, translation?: string) => {\n const count = typeof reduction === 'number' ? reduction : currentBasketRows.reduce((total, row) => total + reduction(row), 0);\n\n if (translation) {\n return StringHelper.pluralWithDictAndCount(count, translation, t);\n } else {\n return count;\n }\n };\n\n const getNextAvailableBasketRow = (exclude?: BasketRow): BasketRow => {\n const arrayLength = currentBasketRows.length;\n for (let i = 0; i < arrayLength; i++) {\n if ((!exclude || (exclude && exclude.getID() !== currentBasketRows[i].getID())) && !currentBasketRows[i].getRate()) {\n return currentBasketRows[i];\n }\n }\n\n return null;\n };\n\n const updateBasketRow = (row: BasketRow, updateGlobalDates = true) => {\n if (updateGlobalDates && row.getID() === selectedBasketRow?.getID()) {\n setStartDate(row.getStartDate());\n setEndDate(row.getEndDate());\n }\n\n basketRowReducer({ method: 'Update', row });\n };\n\n const { loadedPromotion } = usePromotionContainer({ selectedBasketRow, updateBasketRow });\n\n const workingContext: BasketContextType = {\n startDate,\n endDate,\n\n selectedBasketRow,\n currentBasketRows,\n basketAddonRows,\n\n hasCheckedOut,\n reservationData,\n\n loadedPromotion,\n\n /**\n * When adding a basket row, will check if there is a `selectedBasketRow`\n * if one is already set, row will simply get added, otherwise selectedBasketRow\n * gets set\n */\n addBasketRow: (row: BasketRow, selectThisRate = false, neverSelectThisRate = false) => {\n if ((!row.getStartDate() || !row.getEndDate()) && startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n } else if (!startDate && !endDate && row.getStartDate() && row.getEndDate()) {\n setStartDate(row.getStartDate());\n setEndDate(row.getEndDate());\n }\n\n checkAndApplyMemberOnlyPromo(row);\n\n if (\n (!selectedBasketRow && (!row.isValid() || !currentBasketRows.length || currentBasketRows.length - workingContext.getAllValidRows().length === 0)) ||\n selectThisRate\n ) {\n if (!neverSelectThisRate) {\n setSelectedBasketRow(row);\n }\n }\n\n basketRowReducer({ method: 'Add', row });\n },\n\n //TODO: This function needs to be refactored to simplify a lot of this logic, and move notification raising to use the Event Manager instead\n addRate: async (rate: RoomRate, notify = true) => {\n let basketRow: BasketRow = null;\n let translationString: string;\n\n let addons = [];\n\n if (selectedBasketRow) {\n basketRow = selectedBasketRow;\n if (selectedBasketRow.getRate()) {\n translationString = Translation.Misc.RoomUpdatedNotification;\n } else {\n if (!selectedBasketRow.getStartDate() && selectedBasketRow.getEndDate()) {\n selectedBasketRow.setStartDate(startDate);\n selectedBasketRow.setEndDate(endDate);\n }\n\n translationString = Translation.Misc.RoomAddedNotification;\n }\n } else {\n if (!startDate || !endDate) {\n console.error('room selected with no date values.');\n return;\n }\n\n basketRow = new BasketRow(rate);\n\n basketRow.setStartDate(startDate);\n basketRow.setEndDate(endDate);\n\n translationString = Translation.Misc.RoomAddedNotification;\n }\n\n if (InlineAddonStepFeature.isActive()) {\n basketRow.setRate(rate); // TODO: Fix quick hack to make the Addons load\n addons = await API.Addons.findAddons([basketRow], hotel.hotelID);\n }\n\n basketRowReducer({ method: 'AddRate', rate, row: basketRow });\n\n try {\n DataLayer.instance.sendRoomRateAddToCart(rate, basketRow.getNumberOfDays(), startDate ?? basketRow.getStartDate(), endDate ?? basketRow.getEndDate());\n } catch (ex) {\n console.log('Failed recording basket Add event');\n }\n\n if (notify) {\n notifications.addNotification({\n icon: IconType.Bed,\n children: (\n <Text inline={true}>\n {t(translationString)} <strong className=\"u-marg-left--light\">{rate.getRoom().name}</strong>\n </Text>\n ),\n ttl: 3000,\n });\n }\n\n const nextAvailable = getNextAvailableBasketRow(basketRow);\n\n if (nextAvailable) {\n setSelectedBasketRow(nextAvailable);\n } else {\n setSelectedBasketRow(null);\n const isNextStepAddon = StepManager.getNextStepUrl(StepRoom) === StepAddon.getStepUrl();\n\n if (isNextStepAddon) {\n if (addons.length) {\n history.push(StepAddon.getStepUrl());\n } else {\n history.push(StepManager.getNextStepUrl(StepAddon));\n }\n } else {\n history.push(StepManager.getNextStepUrl(StepRoom));\n }\n }\n },\n\n /**\n * Filter global list of rooms based on their validity.\n *\n * Useful for getting a complete summary of all the rooms.\n */\n getAllValidRows: () => {\n return currentBasketRows.filter((item) => item.isValid());\n },\n getAllDatelessRows: () => {\n return currentBasketRows.filter((item) => !item.getStartDate() || !item.getEndDate());\n },\n\n getNumberOfAdults: (withTranslation = false) => {\n return returnAggregationAndTranslation((row) => row.getAdults(), withTranslation ? Translation.Step.Date.Adult : null);\n },\n\n getNumberOfChildren: (withTranslation = false) => {\n return returnAggregationAndTranslation((row) => row.getChildren(), withTranslation ? Translation.Step.Date.Child : null);\n },\n\n getNumberOfRooms: (withTranslation = false) => {\n return returnAggregationAndTranslation(currentBasketRows.length, withTranslation ? Translation.Step.Date.Room : null);\n },\n\n getTotalPrice: () => {\n let totalPrice = returnAggregationAndTranslation((row) => (row.isValid() ? row.getRate().getTotalPrice() : 0)) as number;\n\n basketAddonRows.forEach((row) => {\n totalPrice += row.getTotalPrice();\n });\n\n return totalPrice;\n },\n\n /**\n * Pops the provided row from the current basket array\n */\n removeBasketRow: (row: BasketRow) => {\n const rowsBeforeRemoval = currentBasketRows.length;\n\n basketRowReducer({ method: 'Remove', row });\n\n if (selectedBasketRow && row.getID() === selectedBasketRow.getID()) {\n setSelectedBasketRow(getNextAvailableBasketRow(row));\n }\n\n if (rowsBeforeRemoval === 1) {\n workingContext.addBasketRow(new BasketRow(), true);\n }\n },\n\n clearBasketRows: (confirm: boolean) => {\n if (confirm) {\n basketRowReducer({ method: 'Clear' });\n }\n },\n\n updateBasketRow,\n\n /**\n * Select passed basket row, and update all inputs (like start date)\n */\n selectBasketRow: async (row: BasketRow) => {\n if (row && row.isValid()) {\n setStartDate(row.getStartDate());\n setEndDate(row.getEndDate());\n\n setSelectedBasketRow(row);\n } else {\n setSelectedBasketRow(getNextAvailableBasketRow());\n }\n },\n\n setStartDate,\n setEndDate,\n\n booked: (data: ReservationsDTO) => {\n beContext.sessionProvider?.updateSession({\n reservation: data,\n });\n setReservationData(data);\n },\n\n rollback: () => {\n beContext.sessionProvider?.updateSession({\n reservation: null,\n });\n setReservationData(null);\n },\n\n checkedOut: (data: ReservationsDTO) => {\n setHasCheckedOut(true);\n setReservationData(data);\n\n setSelectedBasketRow(null);\n basketRowReducer({ method: 'Clear' });\n\n const row = new BasketRow();\n row.setStartDate(dayjs().add(1, 'day'));\n row.setEndDate(dayjs().add(2, 'day'));\n\n basketRowReducer({ method: 'Add', row });\n setBasketAddonRows([]);\n\n const sessionProvider = beContext?.engine?.getSessionProvider();\n sessionProvider.deleteSession();\n sessionProvider?.initialize(undefined, beContext?.engine?.getSource());\n const params = new URLSearchParams(window.location.search);\n params.delete('planpay_checkout_id');\n window.history.replaceState({}, '', `${window.location.pathname}?${params}`);\n history.push(StepThanks.getStepUrl());\n\n memberContext.fetchRoomstayMember();\n },\n\n clearSelectedRates: () => {\n setSelectedBasketRow(null);\n },\n\n getRowForAddon: (selectedAddon) => {\n if (selectedAddon === undefined) {\n return;\n }\n return basketAddonRows.find((r) => r.getAddon()?.code === selectedAddon?.code);\n },\n\n setAddonQuantities: (addon: Addon, quantities: { quantity: number; adult: number; child: number }, selectedDate: string, selectedTime: string) => {\n let addonRow = basketAddonRows.find((r) => r.getAddon()?.code === addon.code);\n if (addonRow === undefined) {\n addonRow = new BasketAddonRow(addon);\n basketAddonRows.push(addonRow);\n }\n\n addonRow.setQuantity(quantities.quantity ?? 0);\n addonRow.setAdultQuantity(quantities.adult ?? 0);\n addonRow.setChildQuantity(quantities.child ?? 0);\n addonRow.setSelectedDate(selectedDate);\n addonRow.setSelectedTime(addon.availability[selectedDate].selectorTimes ? selectedTime : undefined);\n\n setBasketAddonRows([...basketAddonRows]);\n },\n\n removeBasketAddonRow: (row: BasketAddonRow) => {\n setBasketAddonRows((oldRows) => oldRows.filter((item) => item.getID() !== row.getID()));\n },\n\n attemptSelectUnfilledRow: () => {\n const row = getNextAvailableBasketRow();\n\n if (row) {\n setSelectedBasketRow(row);\n return row;\n }\n },\n };\n\n return (\n <BasketContext.Provider value={workingContext}>\n {props.children}\n <MemberSignInModal isOpen={ccx.isSigningIn} onClose={ccx.closeMemberSignupModal} />\n </BasketContext.Provider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BasketContextWrapper.js","sourceRoot":"/","sources":["src/contexts/BasketContext/BasketContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import dayjs from 'dayjs';\nimport * as React from 'react';\nimport { useContext, useEffect, useReducer, useState } from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\n\nimport { BasketContextType, useMemberContext } from '@frontend/contexts';\nimport { BasketContext, BookingEngineContext, CompanyContext, ErrorHandler, NotificationContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { BasketReducer } from 'reducers/BasketReducer';\nimport API from 'api/BookingAPI';\nimport { IconType } from 'components/generic/Icon/Icon';\nimport MemberSignInModal from 'components/steps/room/MemberSignInModal/MemberSignInModal';\nimport { BasketContextErrorHandler } from 'handlers/BasketContextErrorHandler';\nimport { Addon } from 'models/Addon/Addon';\nimport ReservationsDTO from 'models/Api/ReservationsDTO';\nimport BasketAddonRow from 'models/BasketAddonRow';\nimport BasketRow from 'models/BasketRow';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport StepAddon from 'pages/steps/StepAddon/StepAddon';\nimport StepRoom from 'pages/steps/StepRoom/StepRoom';\nimport StepThanks from 'pages/steps/StepThanks/StepThanks';\nimport InlineAddonStepFeature from 'providers/feature/InlineAddonStepFeature';\nimport DataLayer from 'util/DataLayer';\nimport StepManager from 'util/StepManager';\nimport StringHelper from 'util/StringHelper';\nimport { Translation } from 'translations/Translation';\nimport Text from 'components/generic/Text';\nimport { usePromotionContainer } from 'providers/PromotionProvider';\n\nexport interface BasketContextWrapperProps {\n children: React.ReactNode;\n}\n\nexport function BasketContextWrapper(props: BasketContextWrapperProps) {\n const { t } = useTranslation();\n const { hotel } = useCurrentHotel();\n\n const notifications = useContext(NotificationContext);\n const beContext = useContext(BookingEngineContext);\n const ccx = useContext(CompanyContext);\n const memberContext = useMemberContext();\n\n const initialSession = beContext?.engine?.getInitialSession();\n\n const [currentBasketRows, basketRowReducer] = useReducer(BasketReducer, initialSession?.basketRows ?? []);\n\n const [selectedBasketRow, setSelectedBasketRow] = useState<BasketRow>(null);\n const [basketAddonRows, setBasketAddonRows] = useState<BasketAddonRow[]>([]);\n\n let loadedStartDate: dayjs.Dayjs;\n let loadedEndDate: dayjs.Dayjs;\n\n if (initialSession?.basketRows?.length) {\n loadedStartDate = initialSession.basketRows[0].getStartDate();\n loadedEndDate = initialSession.basketRows[0].getEndDate();\n } else {\n if (initialSession?.startDate) {\n loadedStartDate = initialSession.startDate;\n }\n\n if (initialSession?.endDate) {\n loadedEndDate = initialSession.endDate;\n }\n }\n\n const [startDate, setStartDate] = useState<dayjs.Dayjs>(loadedStartDate ?? null);\n const [endDate, setEndDate] = useState<dayjs.Dayjs>(loadedEndDate ?? null);\n\n const [hasCheckedOut, setHasCheckedOut] = useState(false);\n const [reservationData, setReservationData] = useState<ReservationsDTO>(initialSession.reservation || null);\n\n const [knownErrorPromoCodes, setKnownErrorPromoCodes] = useState<string[]>([]);\n\n const history = useHistory();\n\n BasketContextErrorHandler.handleAvailabilityWarnings = (warnings: string[]) => {\n warnings.map((warning) => {\n if (warning.toLowerCase().startsWith('invalid promo code')) {\n const promoCode = warning.substr(20);\n\n currentBasketRows.forEach((row) => {\n if (promoCode.toLowerCase() === row.getPromoCode().toLowerCase()) {\n row.setPromoCodeStatus('invalid');\n workingContext.updateBasketRow(row, false);\n }\n });\n\n if (!knownErrorPromoCodes.includes(promoCode.toUpperCase())) {\n setKnownErrorPromoCodes((oldCodes) => {\n return [...oldCodes, promoCode.toUpperCase()];\n });\n }\n } else {\n ErrorHandler.add({\n message: warning,\n });\n }\n });\n };\n\n BasketContextErrorHandler.handlePromoSuccess = (promo: string) => {\n currentBasketRows.forEach((row) => {\n if (row.getPromoCode() === promo && row.getPromoCode() && row.getPromoCodeStatus() !== 'valid') {\n row.setPromoCodeStatus('valid');\n workingContext.updateBasketRow(row, false);\n }\n });\n };\n\n useEffect(() => {\n if (!startDate || !endDate) {\n return;\n }\n\n beContext.sessionProvider?.updateSession({\n startDate,\n endDate,\n });\n\n // TODO re-visit this as we don't want to set dates for everything constantly\n workingContext.getAllDatelessRows().forEach((row: BasketRow) => {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n workingContext.updateBasketRow(row);\n });\n\n if (selectedBasketRow) {\n selectedBasketRow.setStartDate(startDate);\n selectedBasketRow.setEndDate(endDate);\n\n workingContext.updateBasketRow(selectedBasketRow, false);\n } else if (currentBasketRows.length === 1) {\n const onlyBasketRow = currentBasketRows[0];\n onlyBasketRow.setStartDate(startDate);\n onlyBasketRow.setEndDate(endDate);\n\n workingContext.updateBasketRow(onlyBasketRow, false);\n }\n }, [startDate, endDate]);\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ basketRows: currentBasketRows });\n }, [currentBasketRows, selectedBasketRow]);\n\n const checkAndApplyMemberOnlyPromo = (row: BasketRow) => {\n if (row && hotel?.memberOnlyPromoCode && localStorage.getItem('hotel' + hotel?.hotelID + 'user') && !row.getPromoCode()) {\n row.setPromoCode(hotel.memberOnlyPromoCode);\n workingContext.updateBasketRow(row);\n }\n };\n\n /**\n * This is necessary as when we're adding our first row, hotel might not be set.\n */\n useEffect(() => {\n checkAndApplyMemberOnlyPromo(selectedBasketRow);\n }, [hotel]);\n\n const returnAggregationAndTranslation = (reduction: ((row: BasketRow) => number) | number, translation?: string) => {\n const count = typeof reduction === 'number' ? reduction : currentBasketRows.reduce((total, row) => total + reduction(row), 0);\n\n if (translation) {\n return StringHelper.pluralWithDictAndCount(count, translation, t);\n } else {\n return count;\n }\n };\n\n const getNextAvailableBasketRow = (exclude?: BasketRow): BasketRow => {\n const arrayLength = currentBasketRows.length;\n for (let i = 0; i < arrayLength; i++) {\n if ((!exclude || (exclude && exclude.getID() !== currentBasketRows[i].getID())) && !currentBasketRows[i].getRate()) {\n return currentBasketRows[i];\n }\n }\n\n return null;\n };\n\n const updateBasketRow = (row: BasketRow, updateGlobalDates = true) => {\n if (updateGlobalDates && row.getID() === selectedBasketRow?.getID()) {\n setStartDate(row.getStartDate());\n setEndDate(row.getEndDate());\n }\n\n basketRowReducer({ method: 'Update', row });\n };\n\n const { loadedPromotion } = usePromotionContainer({ selectedBasketRow, updateBasketRow });\n\n const workingContext: BasketContextType = {\n startDate,\n endDate,\n\n selectedBasketRow,\n currentBasketRows,\n basketAddonRows,\n\n hasCheckedOut,\n reservationData,\n\n loadedPromotion,\n\n /**\n * When adding a basket row, will check if there is a `selectedBasketRow`\n * if one is already set, row will simply get added, otherwise selectedBasketRow\n * gets set\n */\n addBasketRow: (row: BasketRow, selectThisRate = false, neverSelectThisRate = false) => {\n if ((!row.getStartDate() || !row.getEndDate()) && startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n } else if (!startDate && !endDate && row.getStartDate() && row.getEndDate()) {\n setStartDate(row.getStartDate());\n setEndDate(row.getEndDate());\n }\n\n checkAndApplyMemberOnlyPromo(row);\n\n if (\n (!selectedBasketRow && (!row.isValid() || !currentBasketRows.length || currentBasketRows.length - workingContext.getAllValidRows().length === 0)) ||\n selectThisRate\n ) {\n if (!neverSelectThisRate) {\n setSelectedBasketRow(row);\n }\n }\n\n basketRowReducer({ method: 'Add', row });\n },\n\n //TODO: This function needs to be refactored to simplify a lot of this logic, and move notification raising to use the Event Manager instead\n addRate: async (rate: RoomRate, notify = true) => {\n let basketRow: BasketRow = null;\n let translationString: string;\n\n let addons = [];\n\n if (selectedBasketRow) {\n basketRow = selectedBasketRow;\n if (selectedBasketRow.getRate()) {\n translationString = Translation.Misc.RoomUpdatedNotification;\n } else {\n if (!selectedBasketRow.getStartDate() && selectedBasketRow.getEndDate()) {\n selectedBasketRow.setStartDate(startDate);\n selectedBasketRow.setEndDate(endDate);\n }\n\n translationString = Translation.Misc.RoomAddedNotification;\n }\n } else {\n if (!startDate || !endDate) {\n console.error('room selected with no date values.');\n return;\n }\n\n basketRow = new BasketRow(rate);\n\n basketRow.setStartDate(startDate);\n basketRow.setEndDate(endDate);\n\n translationString = Translation.Misc.RoomAddedNotification;\n }\n\n if (InlineAddonStepFeature.isActive()) {\n basketRow.setRate(rate); // TODO: Fix quick hack to make the Addons load\n addons = await API.Addons.findAddons([basketRow], hotel.hotelID);\n }\n\n basketRowReducer({ method: 'AddRate', rate, row: basketRow });\n\n try {\n DataLayer.instance.sendRoomRateAddToCart(rate, basketRow.getNumberOfDays(), startDate ?? basketRow.getStartDate(), endDate ?? basketRow.getEndDate());\n } catch (ex) {\n console.log('Failed recording basket Add event');\n }\n\n if (notify) {\n notifications.addNotification({\n icon: IconType.Bed,\n children: (\n <Text inline={true}>\n {t(translationString)} <strong className=\"u-marg-left--light\">{rate.getRoom().name}</strong>\n </Text>\n ),\n ttl: 3000,\n });\n }\n\n const nextAvailable = getNextAvailableBasketRow(basketRow);\n\n if (nextAvailable) {\n setSelectedBasketRow(nextAvailable);\n } else {\n setSelectedBasketRow(null);\n const isNextStepAddon = StepManager.getNextStepUrl(StepRoom) === StepAddon.getStepUrl();\n\n if (isNextStepAddon) {\n if (addons.length) {\n history.push(StepAddon.getStepUrl());\n } else {\n history.push(StepManager.getNextStepUrl(StepAddon));\n }\n } else {\n history.push(StepManager.getNextStepUrl(StepRoom));\n }\n }\n },\n\n /**\n * Filter global list of rooms based on their validity.\n *\n * Useful for getting a complete summary of all the rooms.\n */\n getAllValidRows: () => {\n return currentBasketRows.filter((item) => item.isValid());\n },\n getAllDatelessRows: () => {\n return currentBasketRows.filter((item) => !item.getStartDate() || !item.getEndDate());\n },\n\n getNumberOfAdults: (withTranslation = false) => {\n return returnAggregationAndTranslation((row) => row.getAdults(), withTranslation ? Translation.Step.Date.Adult : null);\n },\n\n getNumberOfChildren: (withTranslation = false) => {\n return returnAggregationAndTranslation((row) => row.getChildren(), withTranslation ? Translation.Step.Date.Child : null);\n },\n\n getNumberOfRooms: (withTranslation = false) => {\n return returnAggregationAndTranslation(currentBasketRows.length, withTranslation ? Translation.Step.Date.Room : null);\n },\n\n getTotalPrice: () => {\n let totalPrice = returnAggregationAndTranslation((row) => (row.isValid() ? row.getRate().getTotalPrice() : 0)) as number;\n\n basketAddonRows.forEach((row) => {\n totalPrice += row.getTotalPrice();\n });\n\n return totalPrice;\n },\n\n /**\n * Pops the provided row from the current basket array\n */\n removeBasketRow: (row: BasketRow) => {\n const rowsBeforeRemoval = currentBasketRows.length;\n\n basketRowReducer({ method: 'Remove', row });\n\n if (selectedBasketRow && row.getID() === selectedBasketRow.getID()) {\n setSelectedBasketRow(getNextAvailableBasketRow(row));\n }\n\n if (rowsBeforeRemoval === 1) {\n workingContext.addBasketRow(new BasketRow(), true);\n }\n },\n\n clearBasketRows: (confirm: boolean) => {\n if (confirm) {\n basketRowReducer({ method: 'Clear' });\n }\n },\n\n updateBasketRow,\n\n /**\n * Select passed basket row, and update all inputs (like start date)\n */\n selectBasketRow: async (row: BasketRow) => {\n if (row && row.isValid()) {\n setStartDate(row.getStartDate());\n setEndDate(row.getEndDate());\n\n setSelectedBasketRow(row);\n } else {\n setSelectedBasketRow(getNextAvailableBasketRow());\n }\n },\n\n setStartDate,\n setEndDate,\n\n booked: (data: ReservationsDTO) => {\n beContext.sessionProvider?.updateSession({\n reservation: data,\n });\n setReservationData(data);\n },\n\n rollback: () => {\n beContext.sessionProvider?.updateSession({\n reservation: null,\n });\n setReservationData(null);\n },\n\n checkedOut: (data: ReservationsDTO) => {\n setHasCheckedOut(true);\n setReservationData(data);\n\n setSelectedBasketRow(null);\n basketRowReducer({ method: 'Clear' });\n\n const row = new BasketRow();\n row.setStartDate(dayjs().add(1, 'day'));\n row.setEndDate(dayjs().add(2, 'day'));\n\n basketRowReducer({ method: 'Add', row });\n setBasketAddonRows([]);\n\n const sessionProvider = beContext?.engine?.getSessionProvider();\n sessionProvider.deleteSession();\n sessionProvider?.initialize(undefined, beContext?.engine?.getSource());\n const params = new URLSearchParams(window.location.search);\n params.delete('planpay_checkout_id');\n window.history.replaceState({}, '', `${window.location.pathname}?${params}`);\n history.push(StepThanks.getStepUrl());\n\n memberContext.fetchRoomstayMember();\n },\n\n clearSelectedRates: () => {\n setSelectedBasketRow(null);\n },\n\n getRowForAddon: (selectedAddon) => {\n if (selectedAddon === undefined) {\n return;\n }\n return basketAddonRows.find((r) => r.getAddon()?.code === selectedAddon?.code);\n },\n\n setAddonQuantities: (addon: Addon, quantities: { quantity: number; adult: number; child: number }, selectedDate: string, selectedTime: string) => {\n let addonRow = basketAddonRows.find((r) => r.getAddon()?.code === addon.code);\n if (addonRow === undefined) {\n addonRow = new BasketAddonRow(addon);\n basketAddonRows.push(addonRow);\n }\n\n addonRow.setQuantity(quantities.quantity ?? 0);\n addonRow.setAdultQuantity(quantities.adult ?? 0);\n addonRow.setChildQuantity(quantities.child ?? 0);\n addonRow.setSelectedDate(selectedDate);\n addonRow.setSelectedTime(addon.availability[selectedDate].selectorTimes ? selectedTime : undefined);\n\n setBasketAddonRows([...basketAddonRows]);\n },\n\n removeBasketAddonRow: (row: BasketAddonRow) => {\n setBasketAddonRows((oldRows) => oldRows.filter((item) => item.getID() !== row.getID()));\n },\n\n attemptSelectUnfilledRow: () => {\n const row = getNextAvailableBasketRow();\n\n if (row) {\n setSelectedBasketRow(row);\n return row;\n }\n },\n };\n\n return (\n <BasketContext.Provider value={workingContext}>\n {props.children}\n <MemberSignInModal isOpen={ccx.isSigningIn} onClose={ccx.closeMemberSignupModal} />\n </BasketContext.Provider>\n );\n}\n"]}
|
|
@@ -1,10 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
2
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
29
|
exports.BookingEngineContextWrapper = void 0;
|
|
4
|
-
const React = require("react");
|
|
30
|
+
const React = __importStar(require("react"));
|
|
5
31
|
const react_1 = require("react");
|
|
6
32
|
const RoomSortProvider_1 = require("providers/RoomSortProvider");
|
|
7
|
-
const ScreenSize_1 = require("util/ScreenSize");
|
|
33
|
+
const ScreenSize_1 = __importDefault(require("util/ScreenSize"));
|
|
8
34
|
const contexts_1 = require("@frontend/contexts");
|
|
9
35
|
function BookingEngineContextWrapper({ engine, children }) {
|
|
10
36
|
const sessionProvider = engine.getSessionProvider();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookingEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/BookingEngineContext/BookingEngineContextWrapper.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BookingEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/BookingEngineContext/BookingEngineContextWrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,iCAA4C;AAG5C,iEAAsD;AACtD,iEAAyC;AACzC,iDAA4E;AAO5E,SAAgB,2BAA2B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAoC;IAC9F,MAAM,eAAe,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAEpD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAa,IAAI,CAAC,CAAC;IAE/D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAW,2BAAQ,CAAC,QAAQ,CAAC,CAAC;IACpF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAmB,EAAE,CAAC,CAAC;IAE3E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;gBACd,KAAK,MAAM,IAAI,IAAI,oBAAU,EAAE;oBAC3B,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;wBACnC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC5B,MAAM;qBACT;iBACJ;aACJ;QACL,CAAC,CAAC;QAEF,QAAQ,EAAE,CAAC;QAEX,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE5C,OAAO,GAAG,EAAE;YACR,WAAW,GAAG,IAAI,CAAC;YAEnB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG;QACzB,eAAe;QACf,cAAc;QAEd,UAAU;QAEV,UAAU;QACV,kBAAkB;QAClB,iBAAiB;QAEjB,MAAM;QACN,eAAe;KAClB,CAAC;IAEF,OAAO,oBAAC,+BAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,oBAAoB,IAAG,QAAQ,CAAiC,CAAC;AAClH,CAAC;AAhDD,kEAgDC","sourcesContent":["import * as React from 'react';\nimport { useState, useEffect } from 'react';\n\nimport type { BaseEngine, BaseEngineConfig } from 'engines/BaseEngine';\nimport { RoomSort } from 'providers/RoomSortProvider';\nimport ScreenSize from 'util/ScreenSize';\nimport { BookingEngineContext, EngineFilterType } from '@frontend/contexts';\n\nexport interface BookingEngineContextWrapperProps {\n children: React.ReactNode;\n engine: BaseEngine<BaseEngineConfig>;\n}\n\nexport function BookingEngineContextWrapper({ engine, children }: BookingEngineContextWrapperProps) {\n const sessionProvider = engine.getSessionProvider();\n\n const [screenSize, setScreenSize] = useState<ScreenSize>(null);\n\n const [currentRoomSort, setCurrentRoomSort] = useState<RoomSort>(RoomSort.PriceLow);\n const [currentFilters, setCurrentFilters] = useState<EngineFilterType>({});\n\n useEffect(() => {\n let isCancelled = false;\n\n const onResize = () => {\n if (!isCancelled) {\n for (const size in ScreenSize) {\n if (window.innerWidth <= Number(size)) {\n setScreenSize(Number(size));\n break;\n }\n }\n }\n };\n\n onResize();\n\n window.addEventListener('resize', onResize);\n\n return () => {\n isCancelled = true;\n\n window.removeEventListener('resize', onResize);\n };\n }, []);\n\n const bookingEngineContext = {\n currentRoomSort,\n currentFilters,\n\n screenSize,\n\n // Setters\n setCurrentRoomSort,\n setCurrentFilters,\n\n engine,\n sessionProvider,\n };\n\n return <BookingEngineContext.Provider value={bookingEngineContext}>{children}</BookingEngineContext.Provider>;\n}\n"]}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,20 +31,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
32
|
});
|
|
10
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
11
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
38
|
exports.CompanyContextWrapper = void 0;
|
|
13
|
-
const React = require("react");
|
|
39
|
+
const React = __importStar(require("react"));
|
|
14
40
|
const react_1 = require("react");
|
|
15
41
|
const contexts_1 = require("@frontend/contexts");
|
|
16
42
|
const LanguageProvider_1 = require("providers/LanguageProvider");
|
|
17
43
|
const HotelDataSource_types_1 = require("models/Client/Hotel/HotelDataSource.types");
|
|
18
|
-
const TimeHelper_1 = require("util/TimeHelper");
|
|
19
|
-
const BookingAPI_1 = require("api/BookingAPI");
|
|
20
|
-
const CurrencyProvider_1 = require("providers/CurrencyProvider");
|
|
21
|
-
const StaticContextProvider_1 = require("providers/StaticContextProvider");
|
|
22
|
-
const DataLayer_1 = require("util/DataLayer");
|
|
23
|
-
const StepManager_1 = require("util/StepManager");
|
|
24
|
-
const StepHotel_1 = require("pages/steps/StepHotel/StepHotel");
|
|
44
|
+
const TimeHelper_1 = __importDefault(require("util/TimeHelper"));
|
|
45
|
+
const BookingAPI_1 = __importDefault(require("api/BookingAPI"));
|
|
46
|
+
const CurrencyProvider_1 = __importDefault(require("providers/CurrencyProvider"));
|
|
47
|
+
const StaticContextProvider_1 = __importDefault(require("providers/StaticContextProvider"));
|
|
48
|
+
const DataLayer_1 = __importDefault(require("util/DataLayer"));
|
|
49
|
+
const StepManager_1 = __importDefault(require("util/StepManager"));
|
|
50
|
+
const StepHotel_1 = __importDefault(require("pages/steps/StepHotel/StepHotel"));
|
|
25
51
|
const events_1 = require("@frontend/events");
|
|
26
52
|
const hooks_1 = require("@frontend/hooks");
|
|
27
53
|
const MemberOnlyFenceSignUp_1 = require("events/actions/MemberOnlyFence/MemberOnlyFenceSignUp");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useState, useEffect, useContext, ReactChild, useCallback } from 'react';\n\nimport { BookingEngineContext, CompanyContext, CompanyContextType } from '@frontend/contexts';\nimport type { ConfigCompany } from 'models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from 'models/Client/Hotel/Hotel';\nimport { Language } from 'providers/LanguageProvider';\nimport { HotelDataSource } from 'models/Client/Hotel/HotelDataSource.types';\nimport TimeHelper from 'util/TimeHelper';\nimport API from 'api/BookingAPI';\nimport BasketRow from 'models/BasketRow';\nimport ColorProfile from 'models/Client/Hotel/ColorProfile';\nimport CurrencyProvider from 'providers/CurrencyProvider';\nimport StaticContextProvider from 'providers/StaticContextProvider';\nimport DataLayer from 'util/DataLayer';\nimport StepManager from 'util/StepManager';\nimport StepHotel from 'pages/steps/StepHotel/StepHotel';\nimport { InitialHotelDetailsEvent } from '@frontend/events';\nimport { useEvent } from '@frontend/hooks';\nimport { IPromotion } from 'models/Promotion/IPromotion.type';\nimport { MemberOnlyFenceSignUp } from 'events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [brandSuffix, setBrandSuffix] = useState(company.brandSuffix);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [memberOnlyModalPromotion, setMemberOnlyModalPromotion] = useState<IPromotion>(null);\n\n const [signedInUser, setSignedInUser] = useState(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return callback(mappingHotel);\n }\n\n return newHotel;\n }\n\n return mappingHotel;\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n }\n\n return newHotelArray;\n });\n };\n\n const getHotel = useCallback(\n (hotelId: string) =>\n new Promise<Hotel>(async (resolve) => {\n const currentHotelVersion: Hotel = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n };\n\n const details = await API.Hotel.fetchData(currentLanguage, newHotel);\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n updatedHotel.paymentMethods = details.paymentMethods;\n updatedHotel.planpay = details.planpay;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as ColorProfile;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n }\n\n if (details.rooms) {\n const roomArray = Object.values(details.rooms);\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n resolve(updatedHotel);\n return updatedHotel;\n });\n }),\n []\n );\n\n useEffect(() => {\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setBrandSuffix(company.brandSuffix);\n\n DataLayer.instance.setBrandSuffix(company.brandSuffix);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n if (StepManager.getFirstStep() !== StepHotel) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await getHotel(selectedHotelID);\n\n if (selectedHotel) {\n CurrencyProvider.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.setProviderHotelID(selectedHotel.providerHotelID);\n DataLayer.instance.setHotelName(selectedHotel.name);\n\n if (selectedHotel.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(selectedHotel);\n }\n\n beContext.engine.getSessionProvider().setHotelID(selectedHotelID);\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n const existingUser = localStorage.getItem('hotel' + selectedHotel.hotelID + 'user');\n if (existingUser) {\n setSignedInUser(existingUser);\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.setProviderHotelID('');\n DataLayer.instance.setHotelName(name);\n if (company?.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(company);\n }\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n memberOnlyModalPromotion,\n\n name,\n companyShort,\n logo,\n logoLink,\n brandSuffix,\n\n colors,\n hotels,\n\n signedInUser,\n isSigningIn,\n\n selectedHotelID,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const resetPriceToZero = (isLoading = false) => {\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: 0, isLoading } }));\n };\n\n resetPriceToZero(true);\n\n API.Availability.getCheapestPricePerDay(row.getStartDate(), row.getEndDate(), row.getAdults(), row.getChildren(), row.getPromoCode(), targetHotel.hotelID).then(\n (prices) => {\n let wasSet = false;\n if (prices) {\n let lowest = 0;\n const allPrices = Object.values(prices);\n if (allPrices?.length > 0) {\n lowest = Object.values(prices).reduce((prevValue, newValue) => (prevValue > newValue ? newValue : prevValue));\n\n wasSet = true;\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: lowest, isLoading: false } }));\n }\n }\n\n if (!wasSet) {\n resetPriceToZero();\n }\n }\n );\n }\n },\n\n changeHotel: (hotel: string | Hotel) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n\n setMemberOnlyModalPromotion(null);\n },\n openMemberSignupModal: (promotion?: IPromotion) => {\n setIsSigningIn(true);\n\n if (promotion) {\n setMemberOnlyModalPromotion(promotion);\n }\n },\n signUserIn: (user: string) => {\n raise(new MemberOnlyFenceSignUp(memberOnlyModalPromotion));\n\n DataLayer.instance.sendMemberSignUp();\n workingContext.closeMemberSignupModal();\n localStorage.setItem('hotel' + selectedHotelID + 'user', user);\n setSignedInUser(user);\n },\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n getHotel,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,iCAAiF;AAEjF,iDAA8F;AAG9F,iEAAsD;AACtD,qFAA4E;AAC5E,iEAAyC;AACzC,gEAAiC;AAGjC,kFAA0D;AAC1D,4FAAoE;AACpE,+DAAuC;AACvC,mEAA2C;AAC3C,gFAAwD;AACxD,6CAA4D;AAC5D,2CAA2C;AAE3C,gGAA6F;AAOtF,MAAM,qBAAqB,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAA8B,EAAE,EAAE;;IACtG,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IAEnD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,eAAe,GAAG,EAAE,KAAK,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE;gBAC7C,OAAO,KAAK,CAAC;aAChB;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAU,OAAO,CAAC,MAAiB,CAAC,CAAC;IACzE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,GAAU,CAAC;IAEjE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAS,MAAA,MAAA,gBAAgB,EAAE,0CAAE,eAAe,mCAAI,KAAK,CAAC,CAAC;IAC7G,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAW,MAAA,MAAA,gBAAgB,EAAE,0CAAE,eAAe,mCAAI,2BAAQ,CAAC,KAAK,CAAC,CAAC;IAExH,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAAG,IAAA,gBAAQ,EAAa,IAAI,CAAC,CAAC;IAE3F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAE7B,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,aAAsC,EAAE,EAAE;QACnF,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;YACnC,IAAI,SAAS,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACpC,OAAO,SAAS,CAAC;aACpB;SACJ;IACL,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,EAAU,EAAS,EAAE;QACzC,OAAO,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAU,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,QAAe,EAAE,QAAkC,EAAE,EAAE;QACxE,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;gBACjD,IAAI,YAAY,CAAC,OAAO,GAAG,EAAE,KAAK,QAAQ,CAAC,OAAO,GAAG,EAAE,EAAE;oBACrD,QAAQ,GAAG,IAAI,CAAC;oBAEhB,MAAM,YAAY,GAAoC;wBAClD,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,QAAQ,EAAE,QAAQ,CAAC,eAAe;wBAClC,QAAQ,EAAE,QAAQ,CAAC,eAAe;wBAClC,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC5B,CAAC;oBAEF,MAAM,KAAK,GAAG,IAAI,iCAAwB,CAAC,YAAY,CAAC,CAAC;oBACzD,KAAK,CAAC,KAAK,CAAC,CAAC;oBAEb,IAAI,QAAQ,EAAE;wBACV,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC;qBACjC;oBAED,OAAO,QAAQ,CAAC;iBACnB;gBAED,OAAO,YAAY,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE;gBACX,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YAED,OAAO,aAAa,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,mBAAW,EACxB,CAAC,OAAe,EAAE,EAAE,CAChB,IAAI,OAAO,CAAQ,CAAO,OAAO,EAAE,EAAE;QACjC,MAAM,mBAAmB,GAAU,cAAc,CAAC,OAAO,CAAU,CAAC;QACpE,MAAM,QAAQ,qBACP,mBAAmB,CACzB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,oBAAG,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAErE,WAAW,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,EAAE;YACnC,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACjC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAEvC,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjD,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnD,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAEnC,YAAY,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3E,YAAY,CAAC,YAAY,GAAG,oBAAU,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE7E,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACzD,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/C,YAAY,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAC/D,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAEzC,YAAY,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACnD,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACzD,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAEnC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACrC,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAE7C,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;YACpD,YAAY,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YACrD,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAEvC,IAAI,YAAY,CAAC,UAAU,KAAK,uCAAe,CAAC,QAAQ,EAAE;gBACtD,IAAI,OAAO,CAAC,IAAI,EAAE;oBACd,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;iBACpC;gBAED,IAAI,OAAO,CAAC,MAAM,EAAE;oBAChB,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAsB,CAAC;iBACxD;gBAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBAC1B,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;iBAC5D;gBAED,IAAI,OAAO,CAAC,eAAe,EAAE;oBACzB,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;iBAC1D;gBAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;oBAC3B,YAAY,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;iBAC9D;aACJ;YAED,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,SAAS,CAAC,MAAM,EAAE;oBAClB,YAAY,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;wBAClE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBACvD,CAAC,EAAE,CAAC,CAAC,CAAC;iBACT;aACJ;YAED,OAAO,CAAC,YAAY,CAAC,CAAC;YACtB,OAAO,YAAY,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,EACN,EAAE,CACL,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEpC,mBAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE;YAC3D,OAAO,gCAAK,KAAK,KAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAW,CAAC;QACvF,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,OAAO,CAAC,aAAa,EAAE;YACvB,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;YACvH,MAAM,WAAW,GAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAChF,IAAI,WAAW,EAAE;gBACb,kBAAkB,CAAC,OAAO,CAAC,CAAC;aAC/B;iBAAM;gBACH,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,uEAAuE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;aAC/G;SACJ;aAAM;YACH;;;;;;cAME;YAEF,IAAI,qBAAW,CAAC,YAAY,EAAE,KAAK,mBAAS,EAAE;gBAC1C,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,2CAA2C,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAClF;SACJ;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;;QAC1D,IAAI,eAAe,EAAE;YACjB,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC;YAEtD,IAAI,aAAa,EAAE;gBACf,0BAAgB,CAAC,iBAAiB,CAAC,MAAA,aAAa,CAAC,eAAe,mCAAI,KAAK,CAAC,CAAC;gBAE3E,+BAAqB,CAAC,mBAAmB,GAAG,MAAA,aAAa,CAAC,eAAe,mCAAI,EAAE,CAAC;gBAEhF,mBAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBACrE,mBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAEpD,IAAI,MAAA,aAAa,CAAC,SAAS,0CAAE,MAAM,CAAC,MAAM,EAAE;oBACxC,mBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;iBAC1C;gBAED,SAAS,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAElE,kBAAkB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBAElD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;gBACpF,IAAI,YAAY,EAAE;oBACd,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjC;gBAED,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,6DAAI,CAAC;aAC7B;SACJ;aAAM;YACH,mBAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC1C,mBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,CAAC,MAAM,EAAE;gBACnC,mBAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACpC;SACJ;IACL,CAAC,CAAA,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,wBAAwB,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE/B,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QAEzC,mBAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,mCAAI,eAAe,CAAC,CAAC;IAC5G,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvC,gCAAgC;IAChC,uCAAuC;IAEvC,MAAM,cAAc,GAAuB;QACvC,eAAe;QACf,eAAe;QAEf,wBAAwB;QAExB,IAAI;QACJ,YAAY;QACZ,IAAI;QACJ,QAAQ;QACR,WAAW;QAEX,MAAM;QACN,MAAM;QAEN,YAAY;QACZ,WAAW;QAEX,eAAe;QAEf,yBAAyB,EAAE,CAAC,KAAqB,EAAE,GAAc,EAAE,EAAE;YACjE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAE3F,IAAI,WAAW,IAAI,GAAG,EAAE;gBACpB,MAAM,gBAAgB,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,EAAE;oBAC3C,WAAW,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,iCAAM,aAAa,KAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAG,CAAC,CAAC;gBAC9G,CAAC,CAAC;gBAEF,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAEvB,oBAAG,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAC3J,CAAC,MAAM,EAAE,EAAE;oBACP,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,MAAM,EAAE;wBACR,IAAI,MAAM,GAAG,CAAC,CAAC;wBACf,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACxC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,IAAG,CAAC,EAAE;4BACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;4BAE9G,MAAM,GAAG,IAAI,CAAC;4BACd,WAAW,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,iCAAM,aAAa,KAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAG,CAAC,CAAC;yBACzH;qBACJ;oBAED,IAAI,CAAC,MAAM,EAAE;wBACT,gBAAgB,EAAE,CAAC;qBACtB;gBACL,CAAC,CACJ,CAAC;aACL;QACL,CAAC;QAED,WAAW,EAAE,CAAC,KAAqB,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAE3F,IAAI,WAAW,EAAE;gBACb,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,uEAAuE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC5G,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;QAED,sBAAsB,EAAE,GAAG,EAAE;YACzB,cAAc,CAAC,KAAK,CAAC,CAAC;YAEtB,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,qBAAqB,EAAE,CAAC,SAAsB,EAAE,EAAE;YAC9C,cAAc,CAAC,IAAI,CAAC,CAAC;YAErB,IAAI,SAAS,EAAE;gBACX,2BAA2B,CAAC,SAAS,CAAC,CAAC;aAC1C;QACL,CAAC;QACD,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE;YACzB,KAAK,CAAC,IAAI,6CAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAE3D,mBAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACtC,cAAc,CAAC,sBAAsB,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,CAAC,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,kBAAkB;QAClB,kBAAkB;QAElB,QAAQ;KACX,CAAC;IAEF,OAAO,oBAAC,yBAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,cAAc,IAAG,QAAQ,CAA2B,CAAC;AAChG,CAAC,CAAC;AAhVW,QAAA,qBAAqB,yBAgVhC","sourcesContent":["import * as React from 'react';\nimport { useState, useEffect, useContext, ReactChild, useCallback } from 'react';\n\nimport { BookingEngineContext, CompanyContext, CompanyContextType } from '@frontend/contexts';\nimport type { ConfigCompany } from 'models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from 'models/Client/Hotel/Hotel';\nimport { Language } from 'providers/LanguageProvider';\nimport { HotelDataSource } from 'models/Client/Hotel/HotelDataSource.types';\nimport TimeHelper from 'util/TimeHelper';\nimport API from 'api/BookingAPI';\nimport BasketRow from 'models/BasketRow';\nimport ColorProfile from 'models/Client/Hotel/ColorProfile';\nimport CurrencyProvider from 'providers/CurrencyProvider';\nimport StaticContextProvider from 'providers/StaticContextProvider';\nimport DataLayer from 'util/DataLayer';\nimport StepManager from 'util/StepManager';\nimport StepHotel from 'pages/steps/StepHotel/StepHotel';\nimport { InitialHotelDetailsEvent } from '@frontend/events';\nimport { useEvent } from '@frontend/hooks';\nimport { IPromotion } from 'models/Promotion/IPromotion.type';\nimport { MemberOnlyFenceSignUp } from 'events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [brandSuffix, setBrandSuffix] = useState(company.brandSuffix);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [memberOnlyModalPromotion, setMemberOnlyModalPromotion] = useState<IPromotion>(null);\n\n const [signedInUser, setSignedInUser] = useState(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return callback(mappingHotel);\n }\n\n return newHotel;\n }\n\n return mappingHotel;\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n }\n\n return newHotelArray;\n });\n };\n\n const getHotel = useCallback(\n (hotelId: string) =>\n new Promise<Hotel>(async (resolve) => {\n const currentHotelVersion: Hotel = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n };\n\n const details = await API.Hotel.fetchData(currentLanguage, newHotel);\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n updatedHotel.paymentMethods = details.paymentMethods;\n updatedHotel.planpay = details.planpay;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as ColorProfile;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n }\n\n if (details.rooms) {\n const roomArray = Object.values(details.rooms);\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n resolve(updatedHotel);\n return updatedHotel;\n });\n }),\n []\n );\n\n useEffect(() => {\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setBrandSuffix(company.brandSuffix);\n\n DataLayer.instance.setBrandSuffix(company.brandSuffix);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n if (StepManager.getFirstStep() !== StepHotel) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await getHotel(selectedHotelID);\n\n if (selectedHotel) {\n CurrencyProvider.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.setProviderHotelID(selectedHotel.providerHotelID);\n DataLayer.instance.setHotelName(selectedHotel.name);\n\n if (selectedHotel.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(selectedHotel);\n }\n\n beContext.engine.getSessionProvider().setHotelID(selectedHotelID);\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n const existingUser = localStorage.getItem('hotel' + selectedHotel.hotelID + 'user');\n if (existingUser) {\n setSignedInUser(existingUser);\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.setProviderHotelID('');\n DataLayer.instance.setHotelName(name);\n if (company?.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(company);\n }\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n memberOnlyModalPromotion,\n\n name,\n companyShort,\n logo,\n logoLink,\n brandSuffix,\n\n colors,\n hotels,\n\n signedInUser,\n isSigningIn,\n\n selectedHotelID,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const resetPriceToZero = (isLoading = false) => {\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: 0, isLoading } }));\n };\n\n resetPriceToZero(true);\n\n API.Availability.getCheapestPricePerDay(row.getStartDate(), row.getEndDate(), row.getAdults(), row.getChildren(), row.getPromoCode(), targetHotel.hotelID).then(\n (prices) => {\n let wasSet = false;\n if (prices) {\n let lowest = 0;\n const allPrices = Object.values(prices);\n if (allPrices?.length > 0) {\n lowest = Object.values(prices).reduce((prevValue, newValue) => (prevValue > newValue ? newValue : prevValue));\n\n wasSet = true;\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: lowest, isLoading: false } }));\n }\n }\n\n if (!wasSet) {\n resetPriceToZero();\n }\n }\n );\n }\n },\n\n changeHotel: (hotel: string | Hotel) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n\n setMemberOnlyModalPromotion(null);\n },\n openMemberSignupModal: (promotion?: IPromotion) => {\n setIsSigningIn(true);\n\n if (promotion) {\n setMemberOnlyModalPromotion(promotion);\n }\n },\n signUserIn: (user: string) => {\n raise(new MemberOnlyFenceSignUp(memberOnlyModalPromotion));\n\n DataLayer.instance.sendMemberSignUp();\n workingContext.closeMemberSignupModal();\n localStorage.setItem('hotel' + selectedHotelID + 'user', user);\n setSignedInUser(user);\n },\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n getHotel,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
|
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.ConfirmationFormContextWrapper = exports.ConfirmationFormContext = void 0;
|
|
4
|
-
const React = require("react");
|
|
27
|
+
const React = __importStar(require("react"));
|
|
5
28
|
const react_1 = require("react");
|
|
6
29
|
exports.ConfirmationFormContext = React.createContext(null);
|
|
7
30
|
function ConfirmationFormContextWrapper(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationFormContext.js","sourceRoot":"/","sources":["src/contexts/ConfirmationFormContext.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConfirmationFormContext.js","sourceRoot":"/","sources":["src/contexts/ConfirmationFormContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,iCAAiC;AAQpB,QAAA,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAA8B,IAAI,CAAC,CAAC;AAa9F,SAAgB,8BAA8B,CAAC,KAA0C;IACrF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAkC,EAAS,CAAC,CAAC;IAE3F,MAAM,OAAO,GAAgC;QACzC,WAAW;QACX,aAAa,EAAE,CAAC,KAAkC,EAAE,EAAE;YAClD,cAAc,CAAC,CAAC,SAAS,EAAE,EAAE;gBACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,EAAE;oBAClD,IAAI,iBAAiB,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;wBACvC,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,KAAK,CAAC;qBAChB;oBACD,OAAO,iBAAiB,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;iBAChC;gBAED,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IAEF,OAAO,CACH;QACI,oBAAC,+BAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IAAG,KAAK,CAAC,QAAQ,CAAoC,CACtG,CACN,CAAC;AACN,CAAC;AA/BD,wEA+BC","sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\n\ninterface ConfirmationFormContextType {\n errorChecks: (() => ConfirmationValidator)[];\n\n addErrorCheck: (check: () => ConfirmationValidator) => void;\n}\n\nexport const ConfirmationFormContext = React.createContext<ConfirmationFormContextType>(null);\n\ninterface ConfirmationFormContextWrapperProps {\n children: React.ReactNode;\n}\n\ntype ConfirmationValidator = {\n message: string;\n name: string; // TODO re-think this to make validations unique\n\n validate: () => boolean;\n};\n\nexport function ConfirmationFormContextWrapper(props: ConfirmationFormContextWrapperProps) {\n const [errorChecks, setErrorChecks] = useState<(() => ConfirmationValidator)[]>([] as any);\n\n const context: ConfirmationFormContextType = {\n errorChecks,\n addErrorCheck: (check: () => ConfirmationValidator) => {\n setErrorChecks((oldErrors) => {\n let replaced = false;\n\n const newErrors = oldErrors.map((oldErrorValidator) => {\n if (oldErrorValidator.name === check.name) {\n replaced = true;\n return check;\n }\n return oldErrorValidator;\n });\n\n if (!replaced) {\n return [...oldErrors, check];\n }\n\n return newErrors;\n });\n },\n };\n\n return (\n <>\n <ConfirmationFormContext.Provider value={context}>{props.children}</ConfirmationFormContext.Provider>\n </>\n );\n}\n"]}
|