@roomstay/frontend 2.6.19 → 2.6.20
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/166.bundle.js +1 -1
- package/dist/279.bundle.js +1 -1
- package/dist/370.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/586.bundle.js +1 -0
- package/dist/736.bundle.js +1 -1
- package/dist/873.bundle.js +1 -1
- package/dist/903.bundle.js +1 -1
- package/dist/927.bundle.js +1 -0
- package/dist/972.bundle.js +1 -1
- package/dist/978.bundle.js +1 -0
- package/dist/e2e/data/checkoutTestData.d.ts +16 -0
- package/dist/e2e/data/checkoutTestData.js +32 -0
- package/dist/e2e/data/checkoutTestData.js.map +1 -0
- package/dist/e2e/goBackAndCheckoutAgain.spec.d.ts +1 -0
- package/dist/e2e/goBackAndCheckoutAgain.spec.js +72 -0
- package/dist/e2e/goBackAndCheckoutAgain.spec.js.map +1 -0
- package/dist/e2e/helpers/checkoutHelpers.d.ts +7 -0
- package/dist/e2e/helpers/checkoutHelpers.js +164 -0
- package/dist/e2e/helpers/checkoutHelpers.js.map +1 -0
- package/dist/e2e/price.spec.d.ts +1 -0
- package/dist/e2e/price.spec.js +154 -0
- package/dist/e2e/price.spec.js.map +1 -0
- package/dist/main.bundle.js +1 -1
- package/dist/src/api/MemberAPI.d.ts +2 -3
- package/dist/src/api/MemberAPI.js +2 -6
- package/dist/src/api/MemberAPI.js.map +1 -1
- package/dist/src/components/User/Forms/ForgotPasswordForm.js +6 -2
- package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.js +6 -0
- package/dist/src/components/generic/InputGroup/InputGroup.js.map +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.types.d.ts +1 -1
- package/dist/src/components/generic/InputGroup/InputGroup.types.js.map +1 -1
- package/dist/src/components/generic/Select/InputSelect.js +1 -1
- package/dist/src/components/generic/Select/InputSelect.js.map +1 -1
- package/dist/src/components/members/EditMyProfile.js +3 -3
- package/dist/src/components/members/EditMyProfile.js.map +1 -1
- package/dist/src/components/steps/addons/AddonList.js +2 -2
- package/dist/src/components/steps/addons/AddonList.js.map +1 -1
- package/dist/src/components/steps/addons/AddonsNotFoundBlock.d.ts +2 -0
- package/dist/src/components/steps/addons/{AddonsNotFound.js → AddonsNotFoundBlock.js} +9 -3
- package/dist/src/components/steps/addons/AddonsNotFoundBlock.js.map +1 -0
- package/dist/src/components/steps/confirmation/RoomContactDetails.js +53 -29
- package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +3 -1
- package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/EmailAndFullnameMemberModal.d.ts +4 -0
- package/dist/src/components/steps/room/MemberSignInModal/EmailAndFullnameMemberModal.js +37 -0
- package/dist/src/components/steps/room/MemberSignInModal/EmailAndFullnameMemberModal.js.map +1 -0
- package/dist/src/components/steps/room/MemberSignInModal/ExternalMemberModal.d.ts +16 -5
- package/dist/src/components/steps/room/MemberSignInModal/ExternalMemberModal.js +51 -54
- package/dist/src/components/steps/room/MemberSignInModal/ExternalMemberModal.js.map +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/FamilyNameMemberModal.d.ts +8 -0
- package/dist/src/components/steps/room/MemberSignInModal/FamilyNameMemberModal.js +27 -0
- package/dist/src/components/steps/room/MemberSignInModal/FamilyNameMemberModal.js.map +1 -0
- package/dist/src/components/steps/room/MemberSignInModal/InternalMemberSignInModal.d.ts +6 -0
- package/dist/src/components/steps/room/MemberSignInModal/InternalMemberSignInModal.js +318 -0
- package/dist/src/components/steps/room/MemberSignInModal/InternalMemberSignInModal.js.map +1 -0
- package/dist/src/components/steps/room/MemberSignInModal/{MemberSignInModal.types.d.ts → InternalMemberSignInModal.types.d.ts} +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/{MemberSignInModal.types.js → InternalMemberSignInModal.types.js} +1 -1
- package/dist/src/components/steps/room/MemberSignInModal/InternalMemberSignInModal.types.js.map +1 -0
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.d.ts +1 -6
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +28 -284
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomBestRateAlert.js +22 -3
- package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +9 -6
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +9 -3
- package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +51 -44
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +5 -3
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.d.ts +8 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js +2 -0
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js.map +1 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +16 -4
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +2 -12
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
- package/dist/src/events/{views → actions}/PlacedBookingEvent.d.ts +3 -1
- package/dist/src/events/{views → actions}/PlacedBookingEvent.js +2 -1
- package/dist/src/events/actions/PlacedBookingEvent.js.map +1 -0
- package/dist/src/events/views/StepThanksViewEvent.d.ts +3 -1
- package/dist/src/events/views/StepThanksViewEvent.js +3 -1
- package/dist/src/events/views/StepThanksViewEvent.js.map +1 -1
- package/dist/src/hooks/useExternalMember.d.ts +1 -1
- package/dist/src/hooks/useNextStepAction.js +1 -1
- package/dist/src/hooks/useNextStepAction.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +9 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Api/HotelDTO.d.ts +2 -6
- package/dist/src/models/Api/HotelDTO.js +1 -7
- package/dist/src/models/Api/HotelDTO.js.map +1 -1
- package/dist/src/models/BasketRow.d.ts +3 -3
- package/dist/src/models/BasketRow.js +0 -3
- package/dist/src/models/BasketRow.js.map +1 -1
- package/dist/src/models/Client/Hotel/Hotel.d.ts +5 -4
- package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
- package/dist/src/models/Confirmation.d.ts +3 -0
- package/dist/src/models/Confirmation.js +2 -0
- package/dist/src/models/Confirmation.js.map +1 -1
- package/dist/src/models/RoomstaySession.d.ts +5 -0
- package/dist/src/models/RoomstaySession.js.map +1 -1
- package/dist/src/pages/account/AccountRouter.js +2 -0
- package/dist/src/pages/account/AccountRouter.js.map +1 -1
- package/dist/src/pages/account/AccountRoutes.d.ts +3 -0
- package/dist/src/pages/account/AccountRoutes.js +3 -0
- package/dist/src/pages/account/AccountRoutes.js.map +1 -1
- package/dist/src/pages/account/ChangePassword/AccountChangePasswordPage.d.ts +1 -0
- package/dist/src/pages/account/ChangePassword/AccountChangePasswordPage.js +143 -0
- package/dist/src/pages/account/ChangePassword/AccountChangePasswordPage.js.map +1 -0
- package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +11 -16
- package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateComponent.js +7 -0
- package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
- package/dist/src/providers/FeatureProvider.d.ts +1 -1
- package/dist/src/providers/FeatureProvider.js +6 -2
- package/dist/src/providers/FeatureProvider.js.map +1 -1
- package/dist/src/providers/SessionProvider.js +5 -1
- package/dist/src/providers/SessionProvider.js.map +1 -1
- package/dist/src/providers/feature/DerbysoftClickTrackingFeature.d.ts +7 -0
- package/dist/src/providers/feature/DerbysoftClickTrackingFeature.js +32 -0
- package/dist/src/providers/feature/DerbysoftClickTrackingFeature.js.map +1 -0
- package/dist/src/providers/feature/Feature.d.ts +3 -3
- package/dist/src/providers/feature/Feature.js +3 -3
- package/dist/src/providers/feature/Feature.js.map +1 -1
- package/dist/src/providers/feature/GuestTitleFieldFeature.d.ts +21 -0
- package/dist/src/providers/feature/GuestTitleFieldFeature.js +37 -0
- package/dist/src/providers/feature/GuestTitleFieldFeature.js.map +1 -0
- package/dist/src/providers/storage/LocalStorageProvider.js +1 -1
- package/dist/src/providers/storage/LocalStorageProvider.js.map +1 -1
- package/dist/src/translations/Translation.d.ts +19 -3
- package/dist/src/translations/Translation.js +19 -3
- package/dist/src/translations/Translation.js.map +1 -1
- package/dist/src/translations/languages/en-gb.js +20 -4
- package/dist/src/translations/languages/en-gb.js.map +1 -1
- package/dist/src/util/DerbysoftPixel.d.ts +4 -0
- package/dist/src/util/DerbysoftPixel.js +56 -0
- package/dist/src/util/DerbysoftPixel.js.map +1 -0
- package/dist/test.bundle.js +1 -1
- package/dist/tests/offline/entry/OfflineEngineDefaults.js +5 -0
- package/dist/tests/offline/entry/OfflineEngineDefaults.js.map +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/dist/vendors.bundle.js.LICENSE.txt +2 -0
- package/package.json +2 -2
- package/dist/201.bundle.js +0 -1
- package/dist/457.bundle.js +0 -1
- package/dist/468.bundle.js +0 -1
- package/dist/src/components/steps/addons/AddonsNotFound.d.ts +0 -1
- package/dist/src/components/steps/addons/AddonsNotFound.js.map +0 -1
- package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.types.js.map +0 -1
- package/dist/src/events/views/PlacedBookingEvent.js.map +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import ReservationsDTO from '../../models/Api/ReservationsDTO';
|
|
2
2
|
import BasketRow from '../../models/BasketRow';
|
|
3
|
+
import { Hotel } from '../../models/Client/Hotel/Hotel';
|
|
3
4
|
import { RoomstayEvent } from '../RoomstayEvent';
|
|
4
5
|
export declare class PlacedBookingEvent extends RoomstayEvent {
|
|
5
6
|
reservation: ReservationsDTO;
|
|
6
7
|
basketRows: BasketRow[];
|
|
7
|
-
|
|
8
|
+
hotel?: Hotel;
|
|
9
|
+
constructor(reservation: ReservationsDTO, basketRows: BasketRow[], hotel?: Hotel);
|
|
8
10
|
static getLabel(): string;
|
|
9
11
|
}
|
|
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PlacedBookingEvent = void 0;
|
|
4
4
|
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
5
|
class PlacedBookingEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
-
constructor(reservation, basketRows) {
|
|
6
|
+
constructor(reservation, basketRows, hotel) {
|
|
7
7
|
super();
|
|
8
8
|
this.reservation = reservation;
|
|
9
9
|
this.basketRows = basketRows;
|
|
10
|
+
this.hotel = hotel;
|
|
10
11
|
}
|
|
11
12
|
static getLabel() {
|
|
12
13
|
return 'Booking/Placed';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlacedBookingEvent.js","sourceRoot":"/","sources":["src/events/actions/PlacedBookingEvent.ts"],"names":[],"mappings":";;;AAIA,oDAAiD;AAEjD,MAAa,kBAAmB,SAAQ,6BAAa;IAKjD,YAAmB,WAA4B,EAAE,UAAuB,EAAE,KAAa;QACnF,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ;AAhBD,gDAgBC","sourcesContent":["import ReservationsDTO from '@/models/Api/ReservationsDTO';\nimport BasketRow from '@/models/BasketRow';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\n\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class PlacedBookingEvent extends RoomstayEvent {\n public reservation: ReservationsDTO;\n public basketRows: BasketRow[];\n public hotel?: Hotel;\n\n public constructor(reservation: ReservationsDTO, basketRows: BasketRow[], hotel?: Hotel) {\n super();\n\n this.reservation = reservation;\n this.basketRows = basketRows;\n this.hotel = hotel;\n }\n\n static getLabel(): string {\n return 'Booking/Placed';\n }\n}\n"]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IEventReservation } from '../../models/Api/IEventReservation';
|
|
2
2
|
import BasketRow from '../../models/BasketRow';
|
|
3
|
+
import { Hotel } from '../../models/Client/Hotel/Hotel';
|
|
3
4
|
import { RoomstayEvent } from '../RoomstayEvent';
|
|
4
5
|
export declare class StepThanksViewEvent extends RoomstayEvent {
|
|
5
6
|
reservations: IEventReservation[];
|
|
6
7
|
basketRows: BasketRow[];
|
|
7
|
-
|
|
8
|
+
hotel?: Hotel;
|
|
9
|
+
constructor(res: IEventReservation[], rows: BasketRow[], hotel?: Hotel);
|
|
8
10
|
static getLabel(): string;
|
|
9
11
|
}
|
|
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StepThanksViewEvent = void 0;
|
|
4
4
|
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
5
|
class StepThanksViewEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
-
|
|
6
|
+
// TODO: https://dijitally.atlassian.net/browse/RE-1770
|
|
7
|
+
constructor(res, rows, hotel) {
|
|
7
8
|
super();
|
|
8
9
|
this.reservations = res;
|
|
9
10
|
this.basketRows = rows;
|
|
11
|
+
this.hotel = hotel;
|
|
10
12
|
}
|
|
11
13
|
static getLabel() {
|
|
12
14
|
return 'View/Thanks';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepThanksViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepThanksViewEvent.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"StepThanksViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepThanksViewEvent.ts"],"names":[],"mappings":";;;AAIA,oDAAiD;AAEjD,MAAa,mBAAoB,SAAQ,6BAAa;IAMlD,uDAAuD;IACvD,YAAmB,GAAwB,EAAE,IAAiB,EAAE,KAAa;QACzE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AAlBD,kDAkBC","sourcesContent":["import { IEventReservation } from '@/models/Api/IEventReservation';\nimport BasketRow from '@/models/BasketRow';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\n\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepThanksViewEvent extends RoomstayEvent {\n public reservations: IEventReservation[];\n public basketRows: BasketRow[];\n\n public hotel?: Hotel;\n\n // TODO: https://dijitally.atlassian.net/browse/RE-1770\n public constructor(res: IEventReservation[], rows: BasketRow[], hotel?: Hotel) {\n super();\n\n this.reservations = res;\n this.basketRows = rows;\n this.hotel = hotel;\n }\n\n static getLabel(): string {\n return 'View/Thanks';\n }\n}\n"]}
|
|
@@ -42,8 +42,8 @@ const react_i18next_1 = require("react-i18next");
|
|
|
42
42
|
const BEButton_1 = __importDefault(require("../components/generic/BEButton"));
|
|
43
43
|
const SimpleModal_1 = __importStar(require("../components/generic/modal/SimpleModal"));
|
|
44
44
|
const Text_1 = __importDefault(require("../components/generic/Text"));
|
|
45
|
-
const Translation_1 = require("../translations/Translation");
|
|
46
45
|
const RoomRateAvailabilityListFromApi_1 = require("./RoomRateAvailabilityListFromApi");
|
|
46
|
+
const Translation_1 = require("../translations/Translation");
|
|
47
47
|
const useNextStepAction = () => {
|
|
48
48
|
const { getAllValidRows, updateBasketRow } = (0, react_1.useContext)(contexts_1.BasketContext);
|
|
49
49
|
const { getRoomsByBasketRow } = (0, RoomRateAvailabilityListFromApi_1.useRoomRateAvailabilityListFromApi)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNextStepAction.js","sourceRoot":"/","sources":["src/hooks/useNextStepAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext } from '@frontend/contexts';\nimport React, { useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport BEButton from '@/components/generic/BEButton';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text from '@/components/generic/Text';\nimport BasketRow from '@/models/BasketRow';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { Translation } from '@/translations/Translation';\n\nimport { useRoomRateAvailabilityListFromApi } from './RoomRateAvailabilityListFromApi';\ninterface IValidationMatchedPrice {\n matched: boolean;\n latestRate: RoomRate | null;\n}\n\nexport const useNextStepAction = () => {\n const { getAllValidRows, updateBasketRow } = useContext(BasketContext);\n const { getRoomsByBasketRow } = useRoomRateAvailabilityListFromApi();\n\n const validateRoomRateMatchedPrice = async (basketRow: BasketRow): Promise<IValidationMatchedPrice> => {\n const roomRate = basketRow.getRate();\n const rooms = await getRoomsByBasketRow(basketRow);\n const latestRate = roomRate?.code ? rooms.find(({ code }) => code === roomRate?.getRoom()?.code)?.getRate(roomRate?.code) : null;\n return {\n matched: roomRate?.getAveragePrice(true) === latestRate?.getAveragePrice(true),\n latestRate: latestRate ?? null,\n };\n };\n\n const getBasketRowUnMatchedPrice = async (): Promise<\n {\n basketRow: BasketRow;\n validation: IValidationMatchedPrice;\n }[]\n > => {\n const allValidRows: BasketRow[] = getAllValidRows();\n const invalidRows = [];\n for (const basketRow of allValidRows) {\n const validation = await validateRoomRateMatchedPrice(basketRow);\n if (validation.matched === false) {\n invalidRows.push({\n basketRow: basketRow,\n validation: validation,\n });\n }\n }\n return invalidRows;\n };\n\n const syncBasketRowUnMatchedPrice = async (): Promise<void> => {\n const allValidRows: BasketRow[] = getAllValidRows();\n for (const basketRow of allValidRows) {\n const matchedPrice = await validateRoomRateMatchedPrice(basketRow);\n if (matchedPrice.matched === false) {\n basketRow.setRate(matchedPrice?.latestRate);\n basketRow.setPreGuestsState();\n updateBasketRow(basketRow);\n }\n }\n };\n\n return { getBasketRowUnMatchedPrice, syncBasketRowUnMatchedPrice };\n};\n\n//HOC\nexport const withNextStepConfirmationDialog = (WrappedComponent: any) => {\n return function WithConfirmationDialog(props: any) {\n const { t } = useTranslation();\n\n const { updateBasketRow } = useContext(BasketContext);\n const { getBasketRowUnMatchedPrice, syncBasketRowUnMatchedPrice } = useNextStepAction();\n const [showConfirmationDialog, setShowConfirmationDialog] = useState<boolean>(false);\n const [hasUnavailableBasket, setHasUnavailableBasket] = useState<boolean>(false);\n\n const onClickHandler = async (event: MouseEvent) => {\n const basketRowUnMatchedPrice = await getBasketRowUnMatchedPrice();\n if (basketRowUnMatchedPrice.length === 0) {\n //Pre-validation passed\n props.onClick?.();\n } else {\n //Pre-validation failed\n //Show dymanic alert here\n setHasUnavailableBasket(basketRowUnMatchedPrice.some(({ validation }) => !validation.latestRate));\n setShowConfirmationDialog(true);\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDiscardHandler = async () => {\n setShowConfirmationDialog(false);\n const basketRowUnMatchedPrice = await getBasketRowUnMatchedPrice();\n for (const { basketRow } of basketRowUnMatchedPrice) {\n basketRow.discardGuestsState();\n updateBasketRow(basketRow, true);\n }\n props.onClick?.();\n };\n\n const onSyncChangesHandler = async () => {\n setShowConfirmationDialog(false);\n await syncBasketRowUnMatchedPrice();\n props.onClick?.();\n };\n\n const openCloseHandler = () => {\n setShowConfirmationDialog(false);\n };\n\n return (\n <>\n <WrappedComponent {...props} onClick={onClickHandler} />\n <SimpleModal open={showConfirmationDialog} onClose={openCloseHandler} alignCenter size={SimpleModalSize.ExtraSmall}>\n <div className=\"u-pad--heavy inactivity-window\">\n <div className=\"u-marg-bottom--heavy\">\n {hasUnavailableBasket ? (\n <>\n <Text>{t(Translation.Step.Room.UnMatchedBasketRowPrice.ConfirmUpdateAndClearAlert)}</Text>\n <Text>{t(Translation.Step.Room.UnMatchedBasketRowPrice.ConfirmUpdateAndClearAlert2)}</Text>\n </>\n ) : (\n <Text>{t(Translation.Step.Room.UnMatchedBasketRowPrice.ConfirmKeepChangesAlert)}</Text>\n )}\n </div>\n <div className=\"u-flex\">\n <div className=\"u-marg-right--light u-w-100\">\n <BEButton wide onClick={onDiscardHandler}>\n {t(Translation.Misc.No)}\n </BEButton>\n </div>\n <div className=\"u-w-100\">\n <BEButton wide filled primary onClick={onSyncChangesHandler}>\n {hasUnavailableBasket ? t(Translation.Step.Room.UnMatchedBasketRowPrice.Continue) : t(Translation.Step.Room.UnMatchedBasketRowPrice.YesUpdate)}\n </BEButton>\n </div>\n </div>\n </div>\n </SimpleModal>\n </>\n );\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"useNextStepAction.js","sourceRoot":"/","sources":["src/hooks/useNextStepAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext } from '@frontend/contexts';\nimport React, { useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport BEButton from '@/components/generic/BEButton';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport Text from '@/components/generic/Text';\nimport { useRoomRateAvailabilityListFromApi } from '@/hooks/RoomRateAvailabilityListFromApi';\nimport BasketRow from '@/models/BasketRow';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { Translation } from '@/translations/Translation';\n\ninterface IValidationMatchedPrice {\n matched: boolean;\n latestRate: RoomRate | null;\n}\n\nexport const useNextStepAction = () => {\n const { getAllValidRows, updateBasketRow } = useContext(BasketContext);\n const { getRoomsByBasketRow } = useRoomRateAvailabilityListFromApi();\n\n const validateRoomRateMatchedPrice = async (basketRow: BasketRow): Promise<IValidationMatchedPrice> => {\n const roomRate = basketRow.getRate();\n const rooms = await getRoomsByBasketRow(basketRow);\n const latestRate = roomRate?.code ? rooms.find(({ code }) => code === roomRate?.getRoom()?.code)?.getRate(roomRate?.code) : null;\n return {\n matched: roomRate?.getAveragePrice(true) === latestRate?.getAveragePrice(true),\n latestRate: latestRate ?? null,\n };\n };\n\n const getBasketRowUnMatchedPrice = async (): Promise<\n {\n basketRow: BasketRow;\n validation: IValidationMatchedPrice;\n }[]\n > => {\n const allValidRows: BasketRow[] = getAllValidRows();\n const invalidRows = [];\n for (const basketRow of allValidRows) {\n const validation = await validateRoomRateMatchedPrice(basketRow);\n if (validation.matched === false) {\n invalidRows.push({\n basketRow: basketRow,\n validation: validation,\n });\n }\n }\n return invalidRows;\n };\n\n const syncBasketRowUnMatchedPrice = async (): Promise<void> => {\n const allValidRows: BasketRow[] = getAllValidRows();\n for (const basketRow of allValidRows) {\n const matchedPrice = await validateRoomRateMatchedPrice(basketRow);\n if (matchedPrice.matched === false) {\n basketRow.setRate(matchedPrice?.latestRate);\n basketRow.setPreGuestsState();\n updateBasketRow(basketRow);\n }\n }\n };\n\n return { getBasketRowUnMatchedPrice, syncBasketRowUnMatchedPrice };\n};\n\n//HOC\nexport const withNextStepConfirmationDialog = (WrappedComponent: any) => {\n return function WithConfirmationDialog(props: any) {\n const { t } = useTranslation();\n\n const { updateBasketRow } = useContext(BasketContext);\n const { getBasketRowUnMatchedPrice, syncBasketRowUnMatchedPrice } = useNextStepAction();\n const [showConfirmationDialog, setShowConfirmationDialog] = useState<boolean>(false);\n const [hasUnavailableBasket, setHasUnavailableBasket] = useState<boolean>(false);\n\n const onClickHandler = async (event: MouseEvent) => {\n const basketRowUnMatchedPrice = await getBasketRowUnMatchedPrice();\n if (basketRowUnMatchedPrice.length === 0) {\n //Pre-validation passed\n props.onClick?.();\n } else {\n //Pre-validation failed\n //Show dymanic alert here\n setHasUnavailableBasket(basketRowUnMatchedPrice.some(({ validation }) => !validation.latestRate));\n setShowConfirmationDialog(true);\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const onDiscardHandler = async () => {\n setShowConfirmationDialog(false);\n const basketRowUnMatchedPrice = await getBasketRowUnMatchedPrice();\n for (const { basketRow } of basketRowUnMatchedPrice) {\n basketRow.discardGuestsState();\n updateBasketRow(basketRow, true);\n }\n props.onClick?.();\n };\n\n const onSyncChangesHandler = async () => {\n setShowConfirmationDialog(false);\n await syncBasketRowUnMatchedPrice();\n props.onClick?.();\n };\n\n const openCloseHandler = () => {\n setShowConfirmationDialog(false);\n };\n\n return (\n <>\n <WrappedComponent {...props} onClick={onClickHandler} />\n <SimpleModal open={showConfirmationDialog} onClose={openCloseHandler} alignCenter size={SimpleModalSize.ExtraSmall}>\n <div className=\"u-pad--heavy inactivity-window\">\n <div className=\"u-marg-bottom--heavy\">\n {hasUnavailableBasket ? (\n <>\n <Text>{t(Translation.Step.Room.UnMatchedBasketRowPrice.ConfirmUpdateAndClearAlert)}</Text>\n <Text>{t(Translation.Step.Room.UnMatchedBasketRowPrice.ConfirmUpdateAndClearAlert2)}</Text>\n </>\n ) : (\n <Text>{t(Translation.Step.Room.UnMatchedBasketRowPrice.ConfirmKeepChangesAlert)}</Text>\n )}\n </div>\n <div className=\"u-flex\">\n <div className=\"u-marg-right--light u-w-100\">\n <BEButton wide onClick={onDiscardHandler}>\n {t(Translation.Misc.No)}\n </BEButton>\n </div>\n <div className=\"u-w-100\">\n <BEButton wide filled primary onClick={onSyncChangesHandler}>\n {hasUnavailableBasket ? t(Translation.Step.Room.UnMatchedBasketRowPrice.Continue) : t(Translation.Step.Room.UnMatchedBasketRowPrice.YesUpdate)}\n </BEButton>\n </div>\n </div>\n </div>\n </SimpleModal>\n </>\n );\n };\n};\n"]}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export type { HotelInfoPerkRowProps } from './components/steps/hotel/HotelInfoPe
|
|
|
24
24
|
export { BE_HOTEL_INFO_PERK_ROW } from './components/steps/hotel/HotelInfoPerksRow';
|
|
25
25
|
export { default as HotelInfoPerksRow } from './components/steps/hotel/HotelInfoPerksRow';
|
|
26
26
|
export { BE_NO_ROOMS_FOUND_BLOCK } from './components/steps/room/NoRoomsFoundBlock';
|
|
27
|
+
export { default as AddonsNotFoundBlock, BE_NO_ADDONS_FOUND_BLOCK } from './components/steps/addons/AddonsNotFoundBlock';
|
|
27
28
|
export { default as NoRoomsFoundBlock } from './components/steps/room/NoRoomsFoundBlock';
|
|
28
29
|
export type { RoomModalPerkRowProps } from './components/steps/room/RoomModalPerkRow';
|
|
29
30
|
export { BE_ROOM_MODAL_PERK_ROW } from './components/steps/room/RoomModalPerkRow';
|
|
@@ -48,9 +49,11 @@ export { default as RatePillProvider } from './providers/RatePillProvider';
|
|
|
48
49
|
export { RoomSort } from './providers/RoomSortProvider';
|
|
49
50
|
export { default as ConfirmationVerifyFeature } from './providers/feature/ConfirmationVerifyFeature';
|
|
50
51
|
export { default as DatePickerTypeFeature } from './providers/feature/DatePickerTypeFeature';
|
|
52
|
+
export { default as DerbysoftClickTrackingFeature } from './providers/feature/DerbysoftClickTrackingFeature';
|
|
51
53
|
export { default as E164PhoneNumberFieldFeature } from './providers/feature/E164PhoneNumberFieldFeature';
|
|
52
54
|
export { default as FeaturedPromoFeature } from './providers/feature/FeaturedPromoFeature';
|
|
53
55
|
export { default as FullPageEngineSmallSpacingFeature } from './providers/feature/FullPageEngineSmallSpacingFeature';
|
|
56
|
+
export { default as GuestTitleFieldFeature } from './providers/feature/GuestTitleFieldFeature';
|
|
54
57
|
export { default as InlineAddonStepFeature } from './providers/feature/InlineAddonStepFeature';
|
|
55
58
|
export { default as PlanPayPricePreviewFeature } from './providers/feature/PlanPayPricePreviewFeature';
|
|
56
59
|
export { default as RoomRateReadMoreVersionFeature } from './providers/feature/RoomRateReadMoreVersionFeature';
|
package/dist/src/index.js
CHANGED
|
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
21
|
-
exports.Version = exports.events = exports.RoomstayEventManager = exports.StepManager = exports.StepThanks = exports.StepRoom = exports.StepHotel = void 0;
|
|
20
|
+
exports.HotelDataSource = exports.API = exports.useFormContext = exports.DataLayer = exports.SessionProvider = exports.RoomstayThemeEngine = exports.withDI = exports.registerReplacement = exports.ShowIATANumberOnCheckoutFeature = exports.RoomUpsellFeature = exports.RoomRateReadMoreVersionFeature = exports.PlanPayPricePreviewFeature = exports.InlineAddonStepFeature = exports.GuestTitleFieldFeature = exports.FullPageEngineSmallSpacingFeature = exports.FeaturedPromoFeature = exports.E164PhoneNumberFieldFeature = exports.DerbysoftClickTrackingFeature = exports.DatePickerTypeFeature = exports.ConfirmationVerifyFeature = exports.RoomSort = exports.RatePillProvider = exports.FeatureProvider = exports.CurrencyProvider = exports.SmallSpinner = exports.StepNoRoomBestRateAlert = exports.RoomModalPerkRow = exports.BE_ROOM_MODAL_PERK_ROW = exports.NoRoomsFoundBlock = exports.BE_NO_ADDONS_FOUND_BLOCK = exports.AddonsNotFoundBlock = exports.BE_NO_ROOMS_FOUND_BLOCK = exports.HotelInfoPerksRow = exports.BE_HOTEL_INFO_PERK_ROW = exports.StepConfirmationCountrySelector = exports.TextBox = exports.TextArea = exports.RadioFields = exports.LineBreak = exports.InputGroup = exports.Icon = exports.Headline = exports.Currency = exports.Checkbox = exports.BEButton = exports.Alert = exports.AutoAutoHeight = exports.Link = exports.useTranslation = exports.react = void 0;
|
|
21
|
+
exports.Version = exports.events = exports.RoomstayEventManager = exports.StepManager = exports.StepThanks = exports.StepRoom = exports.StepHotel = exports.StepGroupedRoom = exports.StepDate = exports.StepConfirmation = exports.StepAddon = void 0;
|
|
22
22
|
// TODO: Look into resolving this.
|
|
23
23
|
const react_1 = __importDefault(require("react"));
|
|
24
24
|
const StepConfirmation_1 = __importDefault(require("./pages/steps/StepConfirmation/StepConfirmation"));
|
|
@@ -70,6 +70,9 @@ var HotelInfoPerksRow_2 = require("./components/steps/hotel/HotelInfoPerksRow");
|
|
|
70
70
|
Object.defineProperty(exports, "HotelInfoPerksRow", { enumerable: true, get: function () { return __importDefault(HotelInfoPerksRow_2).default; } });
|
|
71
71
|
var NoRoomsFoundBlock_1 = require("./components/steps/room/NoRoomsFoundBlock");
|
|
72
72
|
Object.defineProperty(exports, "BE_NO_ROOMS_FOUND_BLOCK", { enumerable: true, get: function () { return NoRoomsFoundBlock_1.BE_NO_ROOMS_FOUND_BLOCK; } });
|
|
73
|
+
var AddonsNotFoundBlock_1 = require("./components/steps/addons/AddonsNotFoundBlock");
|
|
74
|
+
Object.defineProperty(exports, "AddonsNotFoundBlock", { enumerable: true, get: function () { return __importDefault(AddonsNotFoundBlock_1).default; } });
|
|
75
|
+
Object.defineProperty(exports, "BE_NO_ADDONS_FOUND_BLOCK", { enumerable: true, get: function () { return AddonsNotFoundBlock_1.BE_NO_ADDONS_FOUND_BLOCK; } });
|
|
73
76
|
var NoRoomsFoundBlock_2 = require("./components/steps/room/NoRoomsFoundBlock");
|
|
74
77
|
Object.defineProperty(exports, "NoRoomsFoundBlock", { enumerable: true, get: function () { return __importDefault(NoRoomsFoundBlock_2).default; } });
|
|
75
78
|
var RoomModalPerkRow_1 = require("./components/steps/room/RoomModalPerkRow");
|
|
@@ -107,12 +110,16 @@ var ConfirmationVerifyFeature_1 = require("./providers/feature/ConfirmationVerif
|
|
|
107
110
|
Object.defineProperty(exports, "ConfirmationVerifyFeature", { enumerable: true, get: function () { return __importDefault(ConfirmationVerifyFeature_1).default; } });
|
|
108
111
|
var DatePickerTypeFeature_1 = require("./providers/feature/DatePickerTypeFeature");
|
|
109
112
|
Object.defineProperty(exports, "DatePickerTypeFeature", { enumerable: true, get: function () { return __importDefault(DatePickerTypeFeature_1).default; } });
|
|
113
|
+
var DerbysoftClickTrackingFeature_1 = require("./providers/feature/DerbysoftClickTrackingFeature");
|
|
114
|
+
Object.defineProperty(exports, "DerbysoftClickTrackingFeature", { enumerable: true, get: function () { return __importDefault(DerbysoftClickTrackingFeature_1).default; } });
|
|
110
115
|
var E164PhoneNumberFieldFeature_1 = require("./providers/feature/E164PhoneNumberFieldFeature");
|
|
111
116
|
Object.defineProperty(exports, "E164PhoneNumberFieldFeature", { enumerable: true, get: function () { return __importDefault(E164PhoneNumberFieldFeature_1).default; } });
|
|
112
117
|
var FeaturedPromoFeature_1 = require("./providers/feature/FeaturedPromoFeature");
|
|
113
118
|
Object.defineProperty(exports, "FeaturedPromoFeature", { enumerable: true, get: function () { return __importDefault(FeaturedPromoFeature_1).default; } });
|
|
114
119
|
var FullPageEngineSmallSpacingFeature_1 = require("./providers/feature/FullPageEngineSmallSpacingFeature");
|
|
115
120
|
Object.defineProperty(exports, "FullPageEngineSmallSpacingFeature", { enumerable: true, get: function () { return __importDefault(FullPageEngineSmallSpacingFeature_1).default; } });
|
|
121
|
+
var GuestTitleFieldFeature_1 = require("./providers/feature/GuestTitleFieldFeature");
|
|
122
|
+
Object.defineProperty(exports, "GuestTitleFieldFeature", { enumerable: true, get: function () { return __importDefault(GuestTitleFieldFeature_1).default; } });
|
|
116
123
|
var InlineAddonStepFeature_1 = require("./providers/feature/InlineAddonStepFeature");
|
|
117
124
|
Object.defineProperty(exports, "InlineAddonStepFeature", { enumerable: true, get: function () { return __importDefault(InlineAddonStepFeature_1).default; } });
|
|
118
125
|
var PlanPayPricePreviewFeature_1 = require("./providers/feature/PlanPayPricePreviewFeature");
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: Look into resolving this.\nimport ReactRaw from 'react';\n\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepDate from '@/pages/steps/StepDate/StepDate';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepThanks from '@/pages/steps/StepThanks/StepThanks';\nimport StepManager from '@/util/StepManager';\n\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport { default as AutoAutoHeight } from '@/animations/AutoAutoHeight';\nexport * from '@/components/generic/Alert';\nexport { default as Alert } from '@/components/generic/Alert';\nexport { default as BEButton } from '@/components/generic/BEButton';\nexport { default as Checkbox } from '@/components/generic/Checkbox/Checkbox';\nexport { default as Currency } from '@/components/generic/Currency';\nexport { default as Headline } from '@/components/generic/Headline';\nexport { default as Icon } from '@/components/generic/Icon/Icon';\nexport * from '@/components/generic/Icon/Icon';\nexport { default as InputGroup } from '@/components/generic/InputGroup/InputGroup';\nexport { default as LineBreak } from '@/components/generic/LineBreak';\nexport { default as RadioFields } from '@/components/generic/radio/RadioFields';\nexport * from '@/components/generic/Select/index';\nexport * from '@/components/generic/Text';\nexport { default as TextArea } from '@/components/generic/TextArea';\nexport { default as TextBox } from '@/components/generic/TextBox';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport type { HotelInfoPerkRowProps } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_HOTEL_INFO_PERK_ROW } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { default as HotelInfoPerksRow } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_NO_ROOMS_FOUND_BLOCK } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from '@/components/steps/room/NoRoomsFoundBlock';\nexport type { RoomModalPerkRowProps } from '@/components/steps/room/RoomModalPerkRow';\nexport { BE_ROOM_MODAL_PERK_ROW } from '@/components/steps/room/RoomModalPerkRow';\nexport { default as RoomModalPerkRow } from '@/components/steps/room/RoomModalPerkRow';\nexport * from '@/components/steps/room/StepRoomBestRateAlert';\nexport { default as StepNoRoomBestRateAlert } from '@/components/steps/room/StepRoomBestRateAlert';\nexport * from '@/components/summary/BESummary';\nexport * from '@/components/summary/BESummaryPerkBlock';\nexport * from '@/engines/BookingWizardEngine/BookingWizardEngine';\nexport * from '@/engines/CustomEngine/CustomEngine';\nexport * from '@/engines/FullPageBookingEngine/FullPageBookingEngine';\nexport * from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nexport * from '@/engines/MemberPortalWidget/MemberPortalWidget';\nexport * from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\n\n// Loaders\nexport { default as SmallSpinner } from '@/components/generic/loader/SmallSpinner';\n\n// Providers\nexport * from '@/providers/CurrencyProvider';\nexport { default as CurrencyProvider } from '@/providers/CurrencyProvider';\nexport { default as FeatureProvider } from '@/providers/FeatureProvider';\nexport * from '@/providers/LanguageProvider';\nexport * from '@/providers/PromotionProvider';\nexport { default as RatePillProvider } from '@/providers/RatePillProvider';\nexport { RoomSort } from '@/providers/RoomSortProvider';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from '@/providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from '@/providers/feature/DatePickerTypeFeature';\nexport { default as E164PhoneNumberFieldFeature } from '@/providers/feature/E164PhoneNumberFieldFeature';\nexport { default as FeaturedPromoFeature } from '@/providers/feature/FeaturedPromoFeature';\nexport { default as FullPageEngineSmallSpacingFeature } from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as PlanPayPricePreviewFeature } from '@/providers/feature/PlanPayPricePreviewFeature';\nexport { default as RoomRateReadMoreVersionFeature } from '@/providers/feature/RoomRateReadMoreVersionFeature';\nexport { default as RoomUpsellFeature } from '@/providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport { default as SessionProvider } from '@/providers/SessionProvider';\nexport { default as DataLayer } from '@/util/DataLayer';\nexport * from '@/util/DataLayer';\nexport * from '@/util/DefaultValueManager';\nexport * from '@/util/RouteManager';\nexport * from '@frontend/contexts';\nexport { useFormContext } from 'react-hook-form';\n\n// Models\nexport { default as API } from '@/api/BookingAPI';\nexport * from '@/models/Api/HotelDTO';\nexport * from '@/models/Api/HotelOverrideDTO';\nexport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nexport * from '@/models/Client/Hotel/Company';\nexport * from '@/models/Client/Hotel/DistanceUnitType.types';\nexport * from '@/models/Client/Hotel/Hotel';\nexport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nexport * from '@/models/Client/Hotel/HotelPerk';\nexport * from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\n// Steps\nexport { default as StepAddon } from '@/pages/steps/StepAddon/StepAddon';\nexport { default as StepConfirmation } from '@/pages/steps/StepConfirmation/StepConfirmation';\nexport { default as StepDate } from '@/pages/steps/StepDate/StepDate';\nexport { default as StepGroupedRoom } from '@/pages/steps/StepGroupedRoom/StepGroupedRoom';\nexport { default as StepHotel } from '@/pages/steps/StepHotel/StepHotel';\nexport { default as StepRoom } from '@/pages/steps/StepRoom/StepRoom';\nexport { default as StepThanks } from '@/pages/steps/StepThanks/StepThanks';\nexport * from '@/translations/Translation';\nexport { default as StepManager } from '@/util/StepManager';\n\n// Util\n\nexport type { default as ColorProfile } from '@/models/Client/Hotel/ColorProfile';\nexport * from '@/util/Color';\nexport * from '@/util/Debounce';\n\n// Hooks\n\nexport * from '@/events/index';\nexport * from '@/hooks/CurrentHotelHook';\nexport * from '@/hooks/EventHook';\n\n/** @deprecated use `roomstay.events` instead */\nexport { default as RoomstayEventManager } from '@/events/RoomstayEventManager';\n\nexport const events = {\n on: RoomstayEventManager.addEvent,\n raise: RoomstayEventManager.raise,\n};\n\ndeclare const RS_VERSION: string;\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: Look into resolving this.\nimport ReactRaw from 'react';\n\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepDate from '@/pages/steps/StepDate/StepDate';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepThanks from '@/pages/steps/StepThanks/StepThanks';\nimport StepManager from '@/util/StepManager';\n\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport { default as AutoAutoHeight } from '@/animations/AutoAutoHeight';\nexport * from '@/components/generic/Alert';\nexport { default as Alert } from '@/components/generic/Alert';\nexport { default as BEButton } from '@/components/generic/BEButton';\nexport { default as Checkbox } from '@/components/generic/Checkbox/Checkbox';\nexport { default as Currency } from '@/components/generic/Currency';\nexport { default as Headline } from '@/components/generic/Headline';\nexport { default as Icon } from '@/components/generic/Icon/Icon';\nexport * from '@/components/generic/Icon/Icon';\nexport { default as InputGroup } from '@/components/generic/InputGroup/InputGroup';\nexport { default as LineBreak } from '@/components/generic/LineBreak';\nexport { default as RadioFields } from '@/components/generic/radio/RadioFields';\nexport * from '@/components/generic/Select/index';\nexport * from '@/components/generic/Text';\nexport { default as TextArea } from '@/components/generic/TextArea';\nexport { default as TextBox } from '@/components/generic/TextBox';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport type { HotelInfoPerkRowProps } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_HOTEL_INFO_PERK_ROW } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { default as HotelInfoPerksRow } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_NO_ROOMS_FOUND_BLOCK } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { default as AddonsNotFoundBlock, BE_NO_ADDONS_FOUND_BLOCK } from '@/components/steps/addons/AddonsNotFoundBlock';\nexport { default as NoRoomsFoundBlock } from '@/components/steps/room/NoRoomsFoundBlock';\nexport type { RoomModalPerkRowProps } from '@/components/steps/room/RoomModalPerkRow';\nexport { BE_ROOM_MODAL_PERK_ROW } from '@/components/steps/room/RoomModalPerkRow';\nexport { default as RoomModalPerkRow } from '@/components/steps/room/RoomModalPerkRow';\nexport * from '@/components/steps/room/StepRoomBestRateAlert';\nexport { default as StepNoRoomBestRateAlert } from '@/components/steps/room/StepRoomBestRateAlert';\nexport * from '@/components/summary/BESummary';\nexport * from '@/components/summary/BESummaryPerkBlock';\nexport * from '@/engines/BookingWizardEngine/BookingWizardEngine';\nexport * from '@/engines/CustomEngine/CustomEngine';\nexport * from '@/engines/FullPageBookingEngine/FullPageBookingEngine';\nexport * from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nexport * from '@/engines/MemberPortalWidget/MemberPortalWidget';\nexport * from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\n\n// Loaders\nexport { default as SmallSpinner } from '@/components/generic/loader/SmallSpinner';\n\n// Providers\nexport * from '@/providers/CurrencyProvider';\nexport { default as CurrencyProvider } from '@/providers/CurrencyProvider';\nexport { default as FeatureProvider } from '@/providers/FeatureProvider';\nexport * from '@/providers/LanguageProvider';\nexport * from '@/providers/PromotionProvider';\nexport { default as RatePillProvider } from '@/providers/RatePillProvider';\nexport { RoomSort } from '@/providers/RoomSortProvider';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from '@/providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from '@/providers/feature/DatePickerTypeFeature';\nexport { default as DerbysoftClickTrackingFeature } from '@/providers/feature/DerbysoftClickTrackingFeature';\nexport { default as E164PhoneNumberFieldFeature } from '@/providers/feature/E164PhoneNumberFieldFeature';\nexport { default as FeaturedPromoFeature } from '@/providers/feature/FeaturedPromoFeature';\nexport { default as FullPageEngineSmallSpacingFeature } from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nexport { default as GuestTitleFieldFeature } from '@/providers/feature/GuestTitleFieldFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as PlanPayPricePreviewFeature } from '@/providers/feature/PlanPayPricePreviewFeature';\nexport { default as RoomRateReadMoreVersionFeature } from '@/providers/feature/RoomRateReadMoreVersionFeature';\nexport { default as RoomUpsellFeature } from '@/providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport { default as SessionProvider } from '@/providers/SessionProvider';\nexport { default as DataLayer } from '@/util/DataLayer';\nexport * from '@/util/DataLayer';\nexport * from '@/util/DefaultValueManager';\nexport * from '@/util/RouteManager';\nexport * from '@frontend/contexts';\nexport { useFormContext } from 'react-hook-form';\n\n// Models\nexport { default as API } from '@/api/BookingAPI';\nexport * from '@/models/Api/HotelDTO';\nexport * from '@/models/Api/HotelOverrideDTO';\nexport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nexport * from '@/models/Client/Hotel/Company';\nexport * from '@/models/Client/Hotel/DistanceUnitType.types';\nexport * from '@/models/Client/Hotel/Hotel';\nexport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nexport * from '@/models/Client/Hotel/HotelPerk';\nexport * from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\n// Steps\nexport { default as StepAddon } from '@/pages/steps/StepAddon/StepAddon';\nexport { default as StepConfirmation } from '@/pages/steps/StepConfirmation/StepConfirmation';\nexport { default as StepDate } from '@/pages/steps/StepDate/StepDate';\nexport { default as StepGroupedRoom } from '@/pages/steps/StepGroupedRoom/StepGroupedRoom';\nexport { default as StepHotel } from '@/pages/steps/StepHotel/StepHotel';\nexport { default as StepRoom } from '@/pages/steps/StepRoom/StepRoom';\nexport { default as StepThanks } from '@/pages/steps/StepThanks/StepThanks';\nexport * from '@/translations/Translation';\nexport { default as StepManager } from '@/util/StepManager';\n\n// Util\n\nexport type { default as ColorProfile } from '@/models/Client/Hotel/ColorProfile';\nexport * from '@/util/Color';\nexport * from '@/util/Debounce';\n\n// Hooks\n\nexport * from '@/events/index';\nexport * from '@/hooks/CurrentHotelHook';\nexport * from '@/hooks/EventHook';\n\n/** @deprecated use `roomstay.events` instead */\nexport { default as RoomstayEventManager } from '@/events/RoomstayEventManager';\n\nexport const events = {\n on: RoomstayEventManager.addEvent,\n raise: RoomstayEventManager.raise,\n};\n\ndeclare const RS_VERSION: string;\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EnvironmentName } from '@planpay/web';
|
|
2
|
-
import type { EBookingPaymentMethod, EHotelCardProcessor } from '@roomstay/core';
|
|
2
|
+
import type { EBookingPaymentMethod, EHotelCardProcessor, EIntegration, EHotelStateFieldConfiguration } from '@roomstay/core';
|
|
3
3
|
import { DeepPartial } from 'react-hook-form';
|
|
4
4
|
import ColorProfile from '../Client/Hotel/ColorProfile';
|
|
5
5
|
import { DistanceUnitType } from '../Client/Hotel/DistanceUnitType.types';
|
|
@@ -54,11 +54,6 @@ export type HotelRoomDTO = {
|
|
|
54
54
|
prePerkDisclaimer?: string;
|
|
55
55
|
perks?: ConfigHotel['perks'];
|
|
56
56
|
};
|
|
57
|
-
export declare enum EIntegration {
|
|
58
|
-
Big4 = "Big4",
|
|
59
|
-
Top10 = "Top10",
|
|
60
|
-
Gday = "Gday"
|
|
61
|
-
}
|
|
62
57
|
export type HotelDTO = {
|
|
63
58
|
id: number;
|
|
64
59
|
name: string;
|
|
@@ -110,6 +105,7 @@ export type HotelDTO = {
|
|
|
110
105
|
maxAdults?: number;
|
|
111
106
|
maxChildren?: number;
|
|
112
107
|
maxInfants?: number;
|
|
108
|
+
stateFieldConfiguration?: EHotelStateFieldConfiguration;
|
|
113
109
|
} & Pick<AdminHotelConfig, 'childConfiguration'>;
|
|
114
110
|
export declare enum VGSCardName {
|
|
115
111
|
Visa = "visa",
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SynxisToVGSCardNameMapping = exports.VGSCardName =
|
|
3
|
+
exports.SynxisToVGSCardNameMapping = exports.VGSCardName = void 0;
|
|
4
4
|
const Hotel_1 = require("../Client/Hotel/Hotel");
|
|
5
|
-
var EIntegration;
|
|
6
|
-
(function (EIntegration) {
|
|
7
|
-
EIntegration["Big4"] = "Big4";
|
|
8
|
-
EIntegration["Top10"] = "Top10";
|
|
9
|
-
EIntegration["Gday"] = "Gday";
|
|
10
|
-
})(EIntegration = exports.EIntegration || (exports.EIntegration = {}));
|
|
11
5
|
var VGSCardName;
|
|
12
6
|
(function (VGSCardName) {
|
|
13
7
|
VGSCardName["Visa"] = "visa";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HotelDTO.js","sourceRoot":"/","sources":["src/models/Api/HotelDTO.ts"],"names":[],"mappings":";;;AAMA,uDAA8F;
|
|
1
|
+
{"version":3,"file":"HotelDTO.js","sourceRoot":"/","sources":["src/models/Api/HotelDTO.ts"],"names":[],"mappings":";;;AAMA,uDAA8F;AAgH9F,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,wCAAyB,CAAA;IACzB,0BAAW,CAAA;IACX,wCAAyB,CAAA;IACzB,uCAAwB,CAAA;IACxB,oCAAqB,CAAA;AACzB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAEY,QAAA,0BAA0B,GAAsD;IACzF,CAAC,wBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI;IACzC,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU;IACrD,CAAC,wBAAgB,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG;IACvC,CAAC,wBAAgB,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,eAAe;IAC/D,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU;IACrD,CAAC,wBAAgB,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ;CACpD,CAAC","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport type { EBookingPaymentMethod, EHotelCardProcessor, EIntegration, EHotelStateFieldConfiguration } from '@roomstay/core';\nimport { DeepPartial } from 'react-hook-form';\n\nimport ColorProfile from '@/models/Client/Hotel/ColorProfile';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { AdminHotelConfig, ConfigHotel, EPaymentCardType } from '@/models/Client/Hotel/Hotel';\nimport HotelAddress from '@/models/Client/Hotel/HotelAddress';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { WeekdayStartsOn } from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\nexport type HotelServiceDTO = {\n detail: string;\n included: boolean;\n name: string;\n onsite: boolean;\n};\n\nexport type HotelRoomsDTO = {\n [roomTypeCode: string]: HotelRoomDTO;\n};\n\nexport type HotelRoomGroupsDTO = {\n groupName: string;\n id: string;\n filters: { [id: string]: { name: string; type: 'select'; includeAllAbove: boolean; requireInput: boolean; options: any } };\n}[];\n\nexport type HotelRoomAmenitiesDTO = {\n type: string;\n description: string;\n};\n\nexport type HotelRoomDTO = {\n code: string;\n name: string;\n shortDescription: string;\n longDescription: string;\n images: string[];\n quantity: number;\n maxOccupancy: number;\n bedQuantity: number;\n showBedType?: boolean;\n standardNumBeds: number;\n maxRollaways: number;\n bedType: string;\n amenities: HotelRoomAmenitiesDTO[];\n features: HotelRoomAmenitiesDTO[];\n bedTypeOverride?: string;\n roomGroupId?: string;\n roomSize?: number;\n prePerkDisclaimer?: string;\n perks?: ConfigHotel['perks'];\n};\n\nexport type HotelDTO = {\n id: number;\n name: string;\n chainId: number;\n chainName: string;\n\n address: HotelAddress;\n phone: string;\n\n latitude: string;\n longitude: string;\n\n utcOffset: string;\n\n languageCode: string;\n currencyCode: string;\n\n checkInTime: string;\n checkOutTime: string;\n\n paymentCardTypes: EPaymentCardType[];\n\n description: string;\n locationDescription: string;\n policies: string;\n\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n\n rooms: { [roomTypeCode: string]: HotelRoomDTO };\n dataSource: HotelDataSource;\n\n // Following fields are only present if dataSource = 'roomstay'\n logo?: string;\n colors: DeepPartial<ColorProfile>;\n distanceUnitType?: DistanceUnitType;\n weekdayStartsOn?: WeekdayStartsOn;\n\n crossSellHotelIds?: string[];\n paymentMethods: EBookingPaymentMethod[];\n cardProcessor: EHotelCardProcessor;\n planpay?: {\n username: string;\n minDaysShowPlanpay: number;\n env: EnvironmentName;\n };\n\n email?: string;\n hotelUrl?: string;\n heroImage?: string;\n images?: string[];\n integrations?: EIntegration[];\n roomGroups: HotelRoomGroupsDTO;\n requireDeposit?: boolean;\n availableCountries?: { name: string; value: string }[];\n preventCancellation?: boolean;\n maxAdults?: number;\n maxChildren?: number;\n maxInfants?: number;\n\n stateFieldConfiguration?: EHotelStateFieldConfiguration;\n} & Pick<AdminHotelConfig, 'childConfiguration'>;\n\nexport enum VGSCardName {\n Visa = 'visa',\n Mastercard = 'mastercard',\n JCB = 'jcb',\n DinersClub = 'dinersclub',\n AmericanExpress = 'amex',\n UnionPay = 'unionpay',\n}\n\nexport const SynxisToVGSCardNameMapping: { [synxisName in EPaymentCardType]: VGSCardName } = {\n [EPaymentCardType.Visa]: VGSCardName.Visa,\n [EPaymentCardType.Mastercard]: VGSCardName.Mastercard,\n [EPaymentCardType.JCB]: VGSCardName.JCB,\n [EPaymentCardType.AmericanExpress]: VGSCardName.AmericanExpress,\n [EPaymentCardType.DinersClub]: VGSCardName.DinersClub,\n [EPaymentCardType.UnionPay]: VGSCardName.UnionPay,\n};\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { IBookingQuoteResponse
|
|
1
|
+
import { IBookingQuoteResponse } from '@roomstay/core';
|
|
2
2
|
import dayjs from 'dayjs';
|
|
3
3
|
import { ReservationDTO } from './Api/ReservationsDTO';
|
|
4
4
|
import BasketRowDifferences from './BasketRowDifferences';
|
|
5
5
|
import type { Room } from './Room/Room';
|
|
6
6
|
import type { RoomRate } from './Room/RoomRate';
|
|
7
|
+
import UserProfile from './UserProfile';
|
|
7
8
|
import { Color } from '../util/Color';
|
|
8
9
|
export default class BasketRow {
|
|
9
10
|
private uniqId;
|
|
@@ -19,9 +20,9 @@ export default class BasketRow {
|
|
|
19
20
|
private startDate;
|
|
20
21
|
private endDate;
|
|
21
22
|
private promoOnly;
|
|
22
|
-
private member?;
|
|
23
23
|
private upsellPrevRoom?;
|
|
24
24
|
quoteDetails: NonNullable<IBookingQuoteResponse>['rows'][number];
|
|
25
|
+
checkoutDefaults?: Partial<UserProfile>;
|
|
25
26
|
constructor(rate?: RoomRate, uniqId?: string);
|
|
26
27
|
getStale(): boolean;
|
|
27
28
|
getRate(): RoomRate | null;
|
|
@@ -61,7 +62,6 @@ export default class BasketRow {
|
|
|
61
62
|
setPreGuestsState(): void;
|
|
62
63
|
discardGuestsState(): void;
|
|
63
64
|
setRate(rate: RoomRate | null, upsellEnabled?: boolean): void;
|
|
64
|
-
setMember(member: Partial<IRoomstayMember>): void;
|
|
65
65
|
setUpsellPrevRoom(roomCode: string, price: number): void;
|
|
66
66
|
getUpsellPrevRoom(): {
|
|
67
67
|
code?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasketRow.js","sourceRoot":"/","sources":["src/models/BasketRow.ts"],"names":[],"mappings":";;;;;AACA,kDAA0B;AAM1B,wCAAqC;AACrC,oEAA4D;AAE5D,MAAqB,SAAS;IAsC1B,YAAmB,IAAe,EAAE,MAAe;;QA7B3C,mBAAc,GAMlB;YACA,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,IAAA,eAAK,GAAE;YAClB,OAAO,EAAE,IAAA,eAAK,GAAE;SACnB,CAAC;QAkBE;;;MAGF;QACE,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,IAAI,CAAC,MAAM,GAAG,MAAA,oCAAc,CAAC,MAAM,mCAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,MAAA,oCAAc,CAAC,QAAQ,mCAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,MAAA,oCAAc,CAAC,OAAO,mCAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5F,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,kBAAkB;QACrB,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,EAAE;YAClC,OAAO,aAAK,CAAC,OAAO,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YAC3C,OAAO,aAAK,CAAC,KAAK,CAAC;SACtB;QAED,OAAO,aAAK,CAAC,IAAI,CAAC;IACtB,CAAC;IAEM,gBAAgB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE5B,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC,IAAI,CAAY,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,6BAA6B,CAAC,IAAI,CAAY,CAAA,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,OAAO,CAAC;IAC3K,CAAC;IAEM,eAAe;QAClB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,cAAc;QACjB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACzC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACvC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,gBAAgB,CAAC,MAAM,GAAG,WAAW,EAAE,SAAS,GAAG,GAAG;QACzD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACxF;IACL,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,CAAC;IAEM,YAAY,CAAC,IAAY;QAC5B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE;YACvC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAEM,YAAY,CAAC,KAAc;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,QAAQ,CAAC,MAAe;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,kBAAkB,CAAC,MAAmC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,CAAC;IAEM,YAAY,CAAC,IAAiB;QACjC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,KAAI,IAAI,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;IAEM,UAAU,CAAC,IAAiB;QAC/B,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,KAAI,IAAI,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;IACL,CAAC;IAEM,SAAS,CAAC,MAAc;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,QAAgB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,UAAU,CAAC,OAAe;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,iBAAiB;QACpB,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/C,CAAC;IAEM,kBAAkB;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO,CAAC,IAAqB,EAAE,aAAuB;;QACzD,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,cAAc,GAAG;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;gBACpB,KAAK,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,aAAa,EAAE;aACpC,CAAC;SACL;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAC9B;IACL,CAAC;IAEM,SAAS,CAAC,MAAgC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,KAAa;QACpD,IAAI,CAAC,cAAc,GAAG;YAClB,IAAI,EAAE,QAAQ;YACd,KAAK;SACR,CAAC;IACN,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEM,aAAa,CAAC,SAAS,GAAG,KAAK;;QAClC,OAAO,MAAA,IAAI,CAAC,OAAO,EAAE,0CAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAEM,wBAAwB,CAAC,GAAmB;QAC/C,MAAM,WAAW,GAAyB,EAAE,CAAC;QAE7C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACnF,WAAW,CAAC,UAAU,GAAG;gBACrB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC5B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;aAC5B,CAAC;SACL;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;YACjC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE9B,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;CACJ;AAhRD,4BAgRC","sourcesContent":["import { IBookingQuoteResponse, IRoomstayMember } from '@roomstay/core';\nimport dayjs from 'dayjs';\n\nimport { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport BasketRowDifferences from '@/models/BasketRowDifferences';\nimport type { Room } from '@/models/Room/Room';\nimport type { RoomRate } from '@/models/Room/RoomRate';\nimport { Color } from '@/util/Color';\nimport { DEFAULT_VALUES } from '@/util/DefaultValueManager';\n\nexport default class BasketRow {\n private uniqId: string;\n\n private room!: Room;\n private rate!: RoomRate | null;\n private isStale!: boolean;\n private adults: number;\n private children: number;\n private infants: number;\n private preGuestsState: {\n adults: number;\n children: number;\n infants: number;\n startDate: dayjs.Dayjs;\n endDate: dayjs.Dayjs;\n } = {\n adults: 0,\n children: 0,\n infants: 0,\n startDate: dayjs(),\n endDate: dayjs(),\n };\n\n private promoCode: string;\n private promoCodeStatus: 'valid' | 'invalid' | 'new';\n\n private startDate!: dayjs.Dayjs;\n private endDate!: dayjs.Dayjs;\n\n private promoOnly: boolean;\n private member?: Partial<IRoomstayMember>;\n private upsellPrevRoom?: {\n code?: string;\n price?: number;\n };\n\n public quoteDetails!: NonNullable<IBookingQuoteResponse>['rows'][number];\n\n public constructor(rate?: RoomRate, uniqId?: string) {\n /*\n Rate is optional since we can create row entries\n on first step, where there is no ability to select rate.\n */\n if (rate) {\n this.setRate(rate);\n }\n\n this.adults = DEFAULT_VALUES.ADULTS ?? 1;\n this.children = DEFAULT_VALUES.CHILDREN ?? 0;\n this.infants = DEFAULT_VALUES.INFANTS ?? 0;\n\n this.promoCode = '';\n this.promoCodeStatus = 'new';\n this.promoOnly = false;\n\n this.uniqId = uniqId ? uniqId : btoa(((Date.now() % 1000) / 1000) * Math.random() + '');\n }\n\n public getStale() {\n return this.isStale;\n }\n\n public getRate() {\n return this.rate;\n }\n\n public getPromoCode() {\n return this.promoCode.toUpperCase();\n }\n\n public getPromoOnly() {\n return this.promoOnly;\n }\n\n public getPromoCodeColour() {\n if (this.promoCodeStatus === 'valid') {\n return Color.Success;\n } else if (this.promoCodeStatus === 'invalid') {\n return Color.Alert;\n }\n\n return Color.Navy;\n }\n\n public isPromoCodeValid() {\n const rate = this.getRate();\n\n return (rate?.getAveragePrice(true) as number) < (rate?.getAveragePriceBeforeDiscount(true) as number) && this.getPromoCode() && this.getPromoCodeStatus() === 'valid';\n }\n\n public getNumberOfDays() {\n if (this.endDate && this.startDate) {\n return this.endDate.diff(this.startDate, 'day');\n }\n\n return 0;\n }\n\n public getRoom() {\n return this.room;\n }\n\n public getStartDate() {\n return this.startDate;\n }\n\n public getEndDate() {\n return this.endDate;\n }\n\n public getArrivalDate() {\n if (this.startDate) {\n return this.startDate.format('D MMM');\n }\n\n return null;\n }\n\n public getDepartureDate() {\n if (this.endDate) {\n return this.endDate.format('D MMM');\n }\n\n return null;\n }\n\n public getStayDateRange(format = 'ddd D MMM', separator = ',') {\n if (this.startDate && this.endDate) {\n return `${this.startDate.format(format)}${separator} ${this.endDate.format(format)}`;\n }\n }\n\n public getAdults() {\n return this.adults;\n }\n\n public getChildren() {\n return this.children;\n }\n\n public getInfants() {\n return this.infants;\n }\n\n public getPreGuestsState() {\n return this.preGuestsState;\n }\n\n public getID() {\n return this.uniqId;\n }\n\n public getPromoCodeStatus() {\n return this.promoCodeStatus;\n }\n\n public isValid(): boolean {\n return this.startDate && this.endDate && !!this.rate;\n }\n\n public setPromoCode(code: string) {\n if (this.promoCode !== code.toUpperCase()) {\n this.setPromoCodeStatus('new');\n this.promoOnly = false;\n }\n\n this.promoCode = code.toUpperCase();\n }\n\n public setPromoOnly(value: boolean) {\n this.promoOnly = value;\n }\n\n public setStale(status: boolean) {\n this.isStale = status;\n }\n\n public setPromoCodeStatus(status: 'valid' | 'invalid' | 'new') {\n this.promoCodeStatus = this.promoCode ? status : 'new';\n }\n\n public setStartDate(date: dayjs.Dayjs) {\n if (date?.isValid() || date === undefined) {\n this.startDate = date;\n }\n }\n\n public setEndDate(date: dayjs.Dayjs) {\n if (date?.isValid() || date === undefined) {\n this.endDate = date;\n }\n }\n\n public setAdults(adults: number) {\n this.adults = adults;\n }\n\n public setChildren(children: number) {\n this.children = children;\n }\n\n public setInfants(infants: number) {\n this.infants = infants;\n }\n\n public setPreGuestsState() {\n this.preGuestsState.adults = this.adults;\n this.preGuestsState.children = this.children;\n this.preGuestsState.infants = this.infants;\n this.preGuestsState.startDate = this.startDate;\n this.preGuestsState.endDate = this.endDate;\n }\n\n public discardGuestsState() {\n this.setAdults(this.preGuestsState.adults);\n this.setChildren(this.preGuestsState.children);\n this.setInfants(this.preGuestsState.infants);\n this.setStartDate(this.preGuestsState.startDate);\n this.setEndDate(this.preGuestsState.endDate);\n }\n\n public setRate(rate: RoomRate | null, upsellEnabled?: boolean) {\n if (upsellEnabled) {\n this.upsellPrevRoom = {\n code: this.room.code,\n price: this.rate?.getTotalPrice(),\n };\n }\n\n this.rate = rate;\n if (rate) {\n this.room = rate.getRoom();\n }\n }\n\n public setMember(member: Partial<IRoomstayMember>) {\n this.member = member;\n }\n\n public setUpsellPrevRoom(roomCode: string, price: number) {\n this.upsellPrevRoom = {\n code: roomCode,\n price,\n };\n }\n\n public getUpsellPrevRoom() {\n return this.upsellPrevRoom;\n }\n\n public getTotalPrice(beforeTax = false) {\n return this.getRate()?.getTotalPrice(beforeTax);\n }\n\n public checkDiffFromReservation(res: ReservationDTO) {\n const differences: BasketRowDifferences = {};\n\n if (Number(res.total.afterTax).toFixed(2) !== Number(this.getTotalPrice()).toFixed(2)) {\n differences.totalPrice = {\n before: this.getTotalPrice(),\n after: res.total.afterTax,\n };\n }\n\n if (Object.keys(differences).length) {\n differences.id = this.getID();\n\n return differences;\n } else {\n return false;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BasketRow.js","sourceRoot":"/","sources":["src/models/BasketRow.ts"],"names":[],"mappings":"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","sourcesContent":["import { IBookingQuoteResponse, IRoomstayMember } from '@roomstay/core';\nimport dayjs from 'dayjs';\n\nimport { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport BasketRowDifferences from '@/models/BasketRowDifferences';\nimport type { Room } from '@/models/Room/Room';\nimport type { RoomRate } from '@/models/Room/RoomRate';\nimport UserProfile from '@/models/UserProfile';\nimport { Color } from '@/util/Color';\nimport { DEFAULT_VALUES } from '@/util/DefaultValueManager';\n\nexport default class BasketRow {\n private uniqId: string;\n\n private room!: Room;\n private rate!: RoomRate | null;\n private isStale!: boolean;\n private adults: number;\n private children: number;\n private infants: number;\n private preGuestsState: {\n adults: number;\n children: number;\n infants: number;\n startDate: dayjs.Dayjs;\n endDate: dayjs.Dayjs;\n } = {\n adults: 0,\n children: 0,\n infants: 0,\n startDate: dayjs(),\n endDate: dayjs(),\n };\n\n private promoCode: string;\n private promoCodeStatus: 'valid' | 'invalid' | 'new';\n\n private startDate!: dayjs.Dayjs;\n private endDate!: dayjs.Dayjs;\n\n private promoOnly: boolean;\n\n private upsellPrevRoom?: {\n code?: string;\n price?: number;\n };\n\n public quoteDetails!: NonNullable<IBookingQuoteResponse>['rows'][number];\n\n public checkoutDefaults?: Partial<UserProfile>;\n\n public constructor(rate?: RoomRate, uniqId?: string) {\n /*\n Rate is optional since we can create row entries\n on first step, where there is no ability to select rate.\n */\n if (rate) {\n this.setRate(rate);\n }\n\n this.adults = DEFAULT_VALUES.ADULTS ?? 1;\n this.children = DEFAULT_VALUES.CHILDREN ?? 0;\n this.infants = DEFAULT_VALUES.INFANTS ?? 0;\n\n this.promoCode = '';\n this.promoCodeStatus = 'new';\n this.promoOnly = false;\n\n this.uniqId = uniqId ? uniqId : btoa(((Date.now() % 1000) / 1000) * Math.random() + '');\n }\n\n public getStale() {\n return this.isStale;\n }\n\n public getRate() {\n return this.rate;\n }\n\n public getPromoCode() {\n return this.promoCode.toUpperCase();\n }\n\n public getPromoOnly() {\n return this.promoOnly;\n }\n\n public getPromoCodeColour() {\n if (this.promoCodeStatus === 'valid') {\n return Color.Success;\n } else if (this.promoCodeStatus === 'invalid') {\n return Color.Alert;\n }\n\n return Color.Navy;\n }\n\n public isPromoCodeValid() {\n const rate = this.getRate();\n\n return (rate?.getAveragePrice(true) as number) < (rate?.getAveragePriceBeforeDiscount(true) as number) && this.getPromoCode() && this.getPromoCodeStatus() === 'valid';\n }\n\n public getNumberOfDays() {\n if (this.endDate && this.startDate) {\n return this.endDate.diff(this.startDate, 'day');\n }\n\n return 0;\n }\n\n public getRoom() {\n return this.room;\n }\n\n public getStartDate() {\n return this.startDate;\n }\n\n public getEndDate() {\n return this.endDate;\n }\n\n public getArrivalDate() {\n if (this.startDate) {\n return this.startDate.format('D MMM');\n }\n\n return null;\n }\n\n public getDepartureDate() {\n if (this.endDate) {\n return this.endDate.format('D MMM');\n }\n\n return null;\n }\n\n public getStayDateRange(format = 'ddd D MMM', separator = ',') {\n if (this.startDate && this.endDate) {\n return `${this.startDate.format(format)}${separator} ${this.endDate.format(format)}`;\n }\n }\n\n public getAdults() {\n return this.adults;\n }\n\n public getChildren() {\n return this.children;\n }\n\n public getInfants() {\n return this.infants;\n }\n\n public getPreGuestsState() {\n return this.preGuestsState;\n }\n\n public getID() {\n return this.uniqId;\n }\n\n public getPromoCodeStatus() {\n return this.promoCodeStatus;\n }\n\n public isValid(): boolean {\n return this.startDate && this.endDate && !!this.rate;\n }\n\n public setPromoCode(code: string) {\n if (this.promoCode !== code.toUpperCase()) {\n this.setPromoCodeStatus('new');\n this.promoOnly = false;\n }\n\n this.promoCode = code.toUpperCase();\n }\n\n public setPromoOnly(value: boolean) {\n this.promoOnly = value;\n }\n\n public setStale(status: boolean) {\n this.isStale = status;\n }\n\n public setPromoCodeStatus(status: 'valid' | 'invalid' | 'new') {\n this.promoCodeStatus = this.promoCode ? status : 'new';\n }\n\n public setStartDate(date: dayjs.Dayjs) {\n if (date?.isValid() || date === undefined) {\n this.startDate = date;\n }\n }\n\n public setEndDate(date: dayjs.Dayjs) {\n if (date?.isValid() || date === undefined) {\n this.endDate = date;\n }\n }\n\n public setAdults(adults: number) {\n this.adults = adults;\n }\n\n public setChildren(children: number) {\n this.children = children;\n }\n\n public setInfants(infants: number) {\n this.infants = infants;\n }\n\n public setPreGuestsState() {\n this.preGuestsState.adults = this.adults;\n this.preGuestsState.children = this.children;\n this.preGuestsState.infants = this.infants;\n this.preGuestsState.startDate = this.startDate;\n this.preGuestsState.endDate = this.endDate;\n }\n\n public discardGuestsState() {\n this.setAdults(this.preGuestsState.adults);\n this.setChildren(this.preGuestsState.children);\n this.setInfants(this.preGuestsState.infants);\n this.setStartDate(this.preGuestsState.startDate);\n this.setEndDate(this.preGuestsState.endDate);\n }\n\n public setRate(rate: RoomRate | null, upsellEnabled?: boolean) {\n if (upsellEnabled) {\n this.upsellPrevRoom = {\n code: this.room.code,\n price: this.rate?.getTotalPrice(),\n };\n }\n\n this.rate = rate;\n if (rate) {\n this.room = rate.getRoom();\n }\n }\n\n public setUpsellPrevRoom(roomCode: string, price: number) {\n this.upsellPrevRoom = {\n code: roomCode,\n price,\n };\n }\n\n public getUpsellPrevRoom() {\n return this.upsellPrevRoom;\n }\n\n public getTotalPrice(beforeTax = false) {\n return this.getRate()?.getTotalPrice(beforeTax);\n }\n\n public checkDiffFromReservation(res: ReservationDTO) {\n const differences: BasketRowDifferences = {};\n\n if (Number(res.total.afterTax).toFixed(2) !== Number(this.getTotalPrice()).toFixed(2)) {\n differences.totalPrice = {\n before: this.getTotalPrice(),\n after: res.total.afterTax,\n };\n }\n\n if (Object.keys(differences).length) {\n differences.id = this.getID();\n\n return differences;\n } else {\n return false;\n }\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { EnvironmentName } from '@planpay/web';
|
|
2
|
-
import { EBookingPaymentMethod, EHotelCardProcessor, IHotelColorScheme } from '@roomstay/core';
|
|
2
|
+
import { EBookingPaymentMethod, EHotelCardProcessor, EIntegration, EHotelStateFieldConfiguration, IHotelColorScheme } from '@roomstay/core';
|
|
3
3
|
import type { ReactChild } from 'react';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
4
|
+
import type { InternalMemberSignInInputs } from '../../../components/steps/room/MemberSignInModal/InternalMemberSignInModal.types';
|
|
5
|
+
import type { HotelRoomGroupsDTO, HotelRoomsDTO, HotelServiceDTO } from '../../Api/HotelDTO';
|
|
6
6
|
import type { HotelInfoPageProps, TransportDistances } from '../../Api/HotelOverrideDTO';
|
|
7
7
|
import type { HasDatalayerTags } from './Company';
|
|
8
8
|
import type { DistanceUnitType } from './DistanceUnitType.types';
|
|
@@ -89,6 +89,7 @@ export interface AdminHotelConfig {
|
|
|
89
89
|
};
|
|
90
90
|
};
|
|
91
91
|
preventCancellation?: boolean;
|
|
92
|
+
stateFieldConfiguration?: EHotelStateFieldConfiguration;
|
|
92
93
|
}
|
|
93
94
|
/**
|
|
94
95
|
* This config comes from hard static local file
|
|
@@ -104,7 +105,7 @@ export interface ClientHotelConfig {
|
|
|
104
105
|
bestRateNoBSUrl?: string;
|
|
105
106
|
memberOnlyRates?: string[];
|
|
106
107
|
memberOnlyPromoCode?: string;
|
|
107
|
-
memberOnlySignupInputs?:
|
|
108
|
+
memberOnlySignupInputs?: InternalMemberSignInInputs;
|
|
108
109
|
googleMapsImage?: string;
|
|
109
110
|
/**
|
|
110
111
|
* Whether to show the Breakfast / Lunch / Dinner included
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hotel.js","sourceRoot":"/","sources":["src/models/Client/Hotel/Hotel.ts"],"names":[],"mappings":";;;AAiBA,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,8BAAU,CAAA;IACV,0CAAsB,CAAA;IACtB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACnB,CAAC,EAPW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAO3B","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport { EBookingPaymentMethod, EHotelCardProcessor, IHotelColorScheme } from '@roomstay/core';\nimport type { ReactChild } from 'react';\n\nimport type {
|
|
1
|
+
{"version":3,"file":"Hotel.js","sourceRoot":"/","sources":["src/models/Client/Hotel/Hotel.ts"],"names":[],"mappings":";;;AAiBA,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,8BAAU,CAAA;IACV,0CAAsB,CAAA;IACtB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACnB,CAAC,EAPW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAO3B","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport { EBookingPaymentMethod, EHotelCardProcessor, EIntegration, EHotelStateFieldConfiguration, IHotelColorScheme } from '@roomstay/core';\nimport type { ReactChild } from 'react';\n\nimport type { InternalMemberSignInInputs } from '@/components/steps/room/MemberSignInModal/InternalMemberSignInModal.types';\nimport type { HotelRoomGroupsDTO, HotelRoomsDTO, HotelServiceDTO } from '@/models/Api/HotelDTO';\nimport type { HotelInfoPageProps, TransportDistances } from '@/models/Api/HotelOverrideDTO';\nimport type { HasDatalayerTags } from '@/models/Client/Hotel/Company';\nimport type { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport type HotelAddress from '@/models/Client/Hotel/HotelAddress';\nimport type { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport type { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport type { HotelRoomOverwrite } from '@/models/Client/Hotel/HotelRoomOverwrite';\nimport type { WeekdayStartsOn } from '@/models/Client/Hotel/WeekdayStartsOn.types';\nimport type { Language } from '@/providers/LanguageProvider';\nimport { RoomSort } from '@/providers/RoomSortProvider';\n\nexport enum EPaymentCardType {\n Visa = 'VI',\n Mastercard = 'MC',\n JCB = 'JC',\n AmericanExpress = 'AX',\n DinersClub = 'DN',\n UnionPay = 'UP',\n}\n\nexport interface IVGSVaultNames {\n standard: string;\n members: string;\n}\n\n/**\n * This config comes from admin\n */\nexport interface AdminHotelConfig {\n hotelID: string;\n name: string;\n address?: HotelAddress;\n latitude?: number;\n longitude?: number;\n phone?: string;\n email?: string;\n checkInTime?: string;\n checkOutTime?: string;\n paymentCardTypes?: EPaymentCardType[];\n description?: string;\n locationDescription?: string;\n policies?: string;\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n rooms: HotelRoomsDTO;\n hasLoadedDetails?: boolean;\n dataSource: HotelDataSource;\n defaultCurrency: string;\n paymentMethods: EBookingPaymentMethod[];\n planpay?: {\n username: string;\n minDaysShowPlanpay: number;\n env: EnvironmentName;\n };\n hotelUrl: string;\n heroImage: string;\n memberOnlyModalImage?: string;\n images?: string[];\n logo: string | ReactChild;\n colors: IHotelColorScheme;\n distanceUnitType: DistanceUnitType;\n startsWeekOnDay?: WeekdayStartsOn;\n crossSellHotelIds?: string[];\n maxOccupancy?: number;\n maxAdults?: number;\n maxChildren?: number;\n maxInfants?: number;\n hideByLine?: boolean;\n transportDistances?: TransportDistances;\n roomGroups: HotelRoomGroupsDTO;\n cardProcessor: EHotelCardProcessor;\n\n requireDeposit?: boolean;\n availableCountries?: { name: string; value: string }[];\n\n childConfiguration?: {\n supportChildren?: boolean;\n supportInfants: boolean;\n childRange: { min: number; max: number };\n infantRange: { min: number; max: number };\n };\n preventCancellation?: boolean;\n\n stateFieldConfiguration?: EHotelStateFieldConfiguration;\n}\n\n/**\n * This config comes from hard static local file\n */\nexport interface ClientHotelConfig {\n providerHotelID: string;\n shortName?: string;\n defaultDatepickerType?: 'Month' | 'Week';\n // TODO: need to do magic to see if we need to append / prepend stuff, for now we assume that it's only used while on the site.\n checkoutUrl?: string;\n defaultLanguage: Language;\n privacyPolicyUrl: string;\n bookNowPayLaterUrl?: string;\n bestRateNoBSUrl?: string;\n\n memberOnlyRates?: string[];\n memberOnlyPromoCode?: string;\n memberOnlySignupInputs?: InternalMemberSignInInputs;\n googleMapsImage?: string;\n /**\n * Whether to show the Breakfast / Lunch / Dinner included\n */\n showMealPill?: boolean;\n perks: HotelPerk[];\n /**\n * Hide perks on room row\n */\n perksHideOnRoomRow?: boolean;\n /**\n * Hide perks on room detail modal\n */\n perksHideOnRoomDetail?: boolean;\n perksShowDisclaimer?: boolean;\n /** @deprecated Use the vgs.vaultNames.standard property now */\n vgsVaultName?: string;\n vgs?: {\n vaultNames: IVGSVaultNames;\n };\n showAddonLoader: boolean;\n overwrites?: { [code: string]: Partial<HotelRoomOverwrite> };\n forwardFindReservationToSynxis?: boolean;\n additionalOptions?: { [name: string]: any };\n googleReCaptcha?: {\n loadForMembers?: boolean;\n siteKey?: string;\n };\n /**\n * Show description on RoomDetails\n */\n showDescriptionOnRoomDetails?: boolean;\n /**\n * Customize the Member modal colours. Specifically replacing the green (success) with the primary color of hotel (accent)\n */\n memberOnlyModalUsePrimaryColor?: boolean;\n /**\n * Callback to trigger specific events on load of a hotel.\n *\n * This is where you can specify custom fields, language overrides, feature toggles etc.\n */\n onLoad?: () => void;\n currentRoomSort?: RoomSort; //override default room sort\n}\n\nexport interface ConfigHotel extends ClientHotelConfig, AdminHotelConfig, HasDatalayerTags {}\n\nexport type Hotel = ConfigHotel & {\n lowestPrice?: {\n value: number;\n isLoading: boolean;\n };\n integrations?: EIntegration[];\n maxAdults?: number; //fixed from frontend\n hotelInfo?: HotelInfoPageProps; //fixed from frontend\n};\n\n/**\n * Used for DetailsHotel event\n */\nexport type InitialHotelDetailsEventPayload = {\n name: string;\n hotelID: number | string;\n hotelUrl: string;\n currency: string;\n language: Language;\n address?: HotelAddress;\n};\n"]}
|
|
@@ -2,6 +2,7 @@ import { EBookingPaymentMethod, IBookingPayment } from '@roomstay/core';
|
|
|
2
2
|
import ReservationsDTO from './Api/ReservationsDTO';
|
|
3
3
|
import BasketRowDifferences from './BasketRowDifferences';
|
|
4
4
|
export declare enum EUserProfileFormKey {
|
|
5
|
+
Title = "Title",
|
|
5
6
|
Forename = "Forename",
|
|
6
7
|
Surname = "Surname",
|
|
7
8
|
Email = "Email",
|
|
@@ -9,6 +10,7 @@ export declare enum EUserProfileFormKey {
|
|
|
9
10
|
Address = "Address",
|
|
10
11
|
City = "City",
|
|
11
12
|
PostCode = "PostCode",
|
|
13
|
+
State = "State",
|
|
12
14
|
Country = "Country",
|
|
13
15
|
CountryId = "CountryId",
|
|
14
16
|
CountryCode = "CountryCode"
|
|
@@ -25,6 +27,7 @@ export interface ConfirmationFormValues {
|
|
|
25
27
|
userProfiles: TUserProfileFormValues[];
|
|
26
28
|
copyCheckBox?: boolean;
|
|
27
29
|
paymentMethod: EBookingPaymentMethod;
|
|
30
|
+
marketingOptIn: boolean;
|
|
28
31
|
}
|
|
29
32
|
export interface IBookValidationResult {
|
|
30
33
|
differences: BasketRowDifferences[];
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EUserProfileFormKey = void 0;
|
|
4
4
|
var EUserProfileFormKey;
|
|
5
5
|
(function (EUserProfileFormKey) {
|
|
6
|
+
EUserProfileFormKey["Title"] = "Title";
|
|
6
7
|
EUserProfileFormKey["Forename"] = "Forename";
|
|
7
8
|
EUserProfileFormKey["Surname"] = "Surname";
|
|
8
9
|
EUserProfileFormKey["Email"] = "Email";
|
|
@@ -10,6 +11,7 @@ var EUserProfileFormKey;
|
|
|
10
11
|
EUserProfileFormKey["Address"] = "Address";
|
|
11
12
|
EUserProfileFormKey["City"] = "City";
|
|
12
13
|
EUserProfileFormKey["PostCode"] = "PostCode";
|
|
14
|
+
EUserProfileFormKey["State"] = "State";
|
|
13
15
|
EUserProfileFormKey["Country"] = "Country";
|
|
14
16
|
EUserProfileFormKey["CountryId"] = "CountryId";
|
|
15
17
|
EUserProfileFormKey["CountryCode"] = "CountryCode";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Confirmation.js","sourceRoot":"/","sources":["src/models/Confirmation.ts"],"names":[],"mappings":";;;AAKA,IAAY,
|
|
1
|
+
{"version":3,"file":"Confirmation.js","sourceRoot":"/","sources":["src/models/Confirmation.ts"],"names":[],"mappings":";;;AAKA,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC3B,sCAAe,CAAA;IACf,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;IACnB,sCAAe,CAAA;IACf,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,oCAAa,CAAA;IACb,4CAAqB,CAAA;IACrB,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,8CAAuB,CAAA;IACvB,kDAA2B,CAAA;AAC/B,CAAC,EAbW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAa9B","sourcesContent":["import { EBookingPaymentMethod, IBookingPayment } from '@roomstay/core';\n\nimport ReservationsDTO from './Api/ReservationsDTO';\nimport BasketRowDifferences from './BasketRowDifferences';\n\nexport enum EUserProfileFormKey {\n Title = 'Title',\n Forename = 'Forename',\n Surname = 'Surname',\n Email = 'Email',\n Phone = 'Phone',\n Address = 'Address',\n City = 'City',\n PostCode = 'PostCode',\n State = 'State',\n Country = 'Country',\n CountryId = 'CountryId',\n CountryCode = 'CountryCode',\n}\n\nexport type TUserProfileFormValues = {\n [userProfileKey in EUserProfileFormKey]: string;\n} & { AuxInputs?: { [key: string]: string | number } };\n\nexport interface ConfirmationFormValues {\n IATANumber?: string;\n userProfiles: TUserProfileFormValues[];\n copyCheckBox?: boolean;\n paymentMethod: EBookingPaymentMethod;\n marketingOptIn: boolean;\n}\n\nexport interface IBookValidationResult {\n differences: BasketRowDifferences[];\n warnings: string[];\n}\n\nexport type FBookValidationCallback = (validationResult?: IBookValidationResult) => void;\nexport type FBookSuccessCallback = (data: ReservationsDTO) => Promise<void>;\nexport type FBookValidateFunction = () => Promise<boolean>;\nexport type FBookGetPaymentDetails = () => Promise<IBookingPayment>;\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SignInUser } from '../contexts/index.js';
|
|
1
2
|
import { IBookingPayment } from '@roomstay/core';
|
|
2
3
|
import dayjs from 'dayjs';
|
|
3
4
|
import type BasketRow from './BasketRow';
|
|
@@ -15,6 +16,8 @@ export type RoomstaySession = {
|
|
|
15
16
|
endDate: dayjs.Dayjs | null;
|
|
16
17
|
hotelID: number | string;
|
|
17
18
|
source: string;
|
|
19
|
+
user?: SignInUser;
|
|
20
|
+
memberId?: string;
|
|
18
21
|
basketRows: BasketRow[];
|
|
19
22
|
reservationRequest?: {
|
|
20
23
|
userProfiles: UserProfile[];
|
|
@@ -30,6 +33,8 @@ export type SerializedRoomstaySession = {
|
|
|
30
33
|
endDate: string;
|
|
31
34
|
hotelID: number | string;
|
|
32
35
|
source: string;
|
|
36
|
+
user?: string;
|
|
37
|
+
memberId?: string;
|
|
33
38
|
basketRows: SerializedRoomstaySessionBasketRow[];
|
|
34
39
|
reservation?: ReservationsDTO;
|
|
35
40
|
reservationRequest?: RoomstaySession['reservationRequest'];
|