@roomstay/frontend 2.6.112 → 2.7.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/177.bundle.js +1 -1
- package/dist/279.bundle.js +1 -1
- package/dist/288.bundle.js +1 -1
- package/dist/370.bundle.js +1 -1
- package/dist/422.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/537.bundle.js +1 -1
- package/dist/836.bundle.js +1 -1
- package/dist/873.bundle.js +1 -1
- package/dist/972.bundle.js +1 -1
- package/dist/978.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +2 -13
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -1
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js +3 -2
- package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
- package/dist/src/components/steps/room/AvailableUpgradesModal.js +20 -11
- package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js +14 -3
- package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +42 -22
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +5 -5
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +19 -8
- package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
- package/dist/src/contexts/HotelOverridesContext.js +7 -3
- package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
- package/dist/src/engines/BaseEngine.d.ts +17 -0
- package/dist/src/engines/BaseEngine.js.map +1 -1
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +1 -5
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -0
- package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
- package/dist/src/models/Room/Room.d.ts +2 -0
- package/dist/src/models/Room/Room.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateComponent.js +10 -4
- package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
- package/dist/src/providers/FeatureProvider.js +2 -0
- package/dist/src/providers/FeatureProvider.js.map +1 -1
- package/dist/src/providers/feature/StepDateNextButtonAboveDatepickerFeature.d.ts +6 -0
- package/dist/src/providers/feature/StepDateNextButtonAboveDatepickerFeature.js +10 -0
- package/dist/src/providers/feature/StepDateNextButtonAboveDatepickerFeature.js.map +1 -0
- package/dist/src/util/SyncBasketAddonRowQuantities.d.ts +11 -0
- package/dist/src/util/SyncBasketAddonRowQuantities.js +44 -0
- package/dist/src/util/SyncBasketAddonRowQuantities.js.map +1 -0
- package/dist/test.bundle.js +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n getPricesIncludeFeesMessage: (hotelId: string) => Promise<string>;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO>({});\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n try {\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n\n loadingSet(false);\n overridesSet(apiData);\n } catch (error) {\n console.error('Failed to fetch hotel overrides', error);\n }\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const disableGroupRoomsAllTab = useMemo(() => {\n return !!overrides?.disableGroupRoomsAllTab;\n }, [overrides?.disableGroupRoomsAllTab]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const messages = useMemo(() => {\n if (overrides.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n const getPricesIncludeFeesMessage = async (hotelId: string): Promise<string> => {\n if (hotelId === hotel?.hotelID) {\n const translated = t(Translation.Step.Room.RoomInfo.IncludesTaxes);\n return translated;\n }\n\n try {\n const overrideData = await API.Hotel.fetchOverrides(hotelId);\n const msg = overrideData?.messages?.pricesIncludeFeesMessage || DefaultPricesIncludeFeesMessage;\n return msg;\n } catch {\n return DefaultPricesIncludeFeesMessage;\n }\n };\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n\n getPricesIncludeFeesMessage,\n disableGroupRoomsAllTab,\n orderUnavailableRoomsLast,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n\nconst DefaultPricesIncludeFeesMessage = 'Including taxes & fees.';\n"]}
|
|
1
|
+
{"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n getPricesIncludeFeesMessage: (hotelId: string) => Promise<string>;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO | null>(null);\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n try {\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n\n loadingSet(false);\n overridesSet(apiData);\n } catch (error) {\n console.error('Failed to fetch hotel overrides', error);\n }\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides?.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const disableGroupRoomsAllTab = useMemo(() => {\n return !!overrides?.disableGroupRoomsAllTab;\n }, [overrides?.disableGroupRoomsAllTab]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const showPromocodeFieldInCheckout: boolean = useMemo(() => {\n return !!overrides?.showPromocodeFieldInCheckout;\n }, [overrides?.showPromocodeFieldInCheckout]);\n\n const messages = useMemo(() => {\n if (overrides?.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n const getPricesIncludeFeesMessage = async (hotelId: string): Promise<string> => {\n if (hotelId === hotel?.hotelID) {\n const translated = t(Translation.Step.Room.RoomInfo.IncludesTaxes);\n return translated;\n }\n\n try {\n const overrideData = await API.Hotel.fetchOverrides(hotelId);\n const msg = overrideData?.messages?.pricesIncludeFeesMessage || DefaultPricesIncludeFeesMessage;\n return msg;\n } catch {\n return DefaultPricesIncludeFeesMessage;\n }\n };\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n\n getPricesIncludeFeesMessage,\n disableGroupRoomsAllTab,\n orderUnavailableRoomsLast,\n showPromocodeFieldInCheckout,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n\nconst DefaultPricesIncludeFeesMessage = 'Including taxes & fees.';\n"]}
|
|
@@ -1,9 +1,26 @@
|
|
|
1
|
+
import dayjs from 'dayjs';
|
|
1
2
|
import { RoomstaySession } from '../models/RoomstaySession';
|
|
2
3
|
import LocalStorageProvider from '../providers/storage/LocalStorageProvider';
|
|
3
4
|
import SessionProvider from '../providers/storage/SessionProvider';
|
|
5
|
+
export interface BookingEngineOnBooking {
|
|
6
|
+
id: string;
|
|
7
|
+
checkIn: dayjs.Dayjs;
|
|
8
|
+
checkout: dayjs.Dayjs;
|
|
9
|
+
promoCode?: string;
|
|
10
|
+
guests: {
|
|
11
|
+
adults: number;
|
|
12
|
+
children: number;
|
|
13
|
+
infants: number;
|
|
14
|
+
room: number;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
4
17
|
export interface BaseEngineConfig {
|
|
5
18
|
disableChild?: boolean;
|
|
6
19
|
maxAdults?: number;
|
|
20
|
+
defaultValues?: Partial<Omit<BookingEngineOnBooking, 'id' | 'checkIn' | 'checkout'>> & {
|
|
21
|
+
checkIn?: string;
|
|
22
|
+
checkout?: string;
|
|
23
|
+
};
|
|
7
24
|
}
|
|
8
25
|
export declare enum BookingEngineSource {
|
|
9
26
|
Inline = "inline",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseEngine.js","sourceRoot":"/","sources":["src/engines/BaseEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"BaseEngine.js","sourceRoot":"/","sources":["src/engines/BaseEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0FAAkE;AAClE,oGAA4E;AAC5E,0FAAkE;AAsBlE,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;IACjB,yDAAkC,CAAA;IAClC,4CAAqB,CAAA;IACrB,uDAAgC,CAAA;IAChC,oCAAa,CAAA;AACjB,CAAC,EANW,mBAAmB,mCAAnB,mBAAmB,QAM9B;AAED,MAAsB,UAAU;IAS5B,YAAY,gBAA6B,EAAE,MAAU;QAarC,UAAK,GAAG,GAAS,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,SAAS,GAAQ,IAAI,CAAC;YAC1B,IAAI,WAAW,EAAE,CAAC;gBACd,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAS,EAAE;gBACpE,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClE,CAAC,CAAA,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,IAAI,8BAAoB,EAAE,CAAC;YAElD,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC,CAAA,CAAC;QA/BE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,MAAW,CAAC,CAAC;QAChC,CAAC;QAED,2BAA2B;QAC3B,6BAAmB,CAAC,eAAe,GAAG,gBAAgB,CAAC;QACvD,6BAAmB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAuBM,iBAAiB;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,MAAS;QACtB,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CAGJ;AA1ED,gCA0EC","sourcesContent":["import dayjs from 'dayjs';\n\nimport { RoomstaySession } from '@/models/RoomstaySession';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport LocalStorageProvider from '@/providers/storage/LocalStorageProvider';\nimport SessionProvider from '@/providers/storage/SessionProvider';\n\nexport interface BookingEngineOnBooking {\n id: string;\n checkIn: dayjs.Dayjs;\n checkout: dayjs.Dayjs;\n promoCode?: string;\n guests: {\n adults: number;\n children: number;\n infants: number;\n room: number;\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BaseEngineConfig {\n disableChild?: boolean;\n maxAdults?: number;\n defaultValues?: Partial<Omit<BookingEngineOnBooking, 'id' | 'checkIn' | 'checkout'>> & { checkIn?: string; checkout?: string };\n}\n\nexport enum BookingEngineSource {\n Inline = 'inline',\n RecentSearches = 'recent-searches',\n Fullpage = 'fullpage',\n BookingWizard = 'booking-wizard',\n Auth = 'auth',\n}\n\nexport abstract class BaseEngine<C extends BaseEngineConfig> {\n protected source!: BookingEngineSource;\n protected readonly bookingContainer: HTMLElement;\n protected sessionProvider!: SessionProvider;\n protected initialSession!: RoomstaySession;\n protected storageProvider!: LocalStorageProvider;\n\n protected engineConfig!: C;\n\n constructor(bookingContainer: HTMLElement, config?: C) {\n this.bookingContainer = bookingContainer;\n this.bookingContainer.classList.add('roomstay-booking-container');\n\n if (this.engineConfig) {\n this.setConfig(config as C);\n }\n\n // TODO: Update these calls\n RoomstayThemeEngine.EngineContainer = bookingContainer;\n RoomstayThemeEngine.init();\n }\n\n public readonly start = async () => {\n const queryParams = new URLSearchParams(window.location.hash.replace(/^#\\/.+\\//, ''));\n let sessionId: any = null;\n if (queryParams) {\n if (queryParams.has('session')) {\n sessionId = queryParams.get('session');\n }\n }\n\n this.sessionProvider = new SessionProvider();\n this.sessionProvider.initialize(sessionId, this.source).then(async () => {\n this.initialSession = await this.sessionProvider.getSession();\n });\n\n this.storageProvider = new LocalStorageProvider();\n\n setTimeout(() => {\n this.render();\n }, 1);\n };\n\n public getInitialSession(): RoomstaySession | null {\n if (this.initialSession) {\n return this.initialSession;\n }\n\n console.error('Tried Loading session without engine initializing first.');\n return null;\n }\n\n public getSessionProvider() {\n return this.sessionProvider;\n }\n\n public getStorageProvider() {\n return this.storageProvider;\n }\n\n public setConfig(config: C) {\n // TODO: add hook updates in here.\n this.engineConfig = config;\n }\n\n public getConfig() {\n return this.engineConfig;\n }\n\n public getSource(): BookingEngineSource {\n return this.source;\n }\n\n protected abstract render(): Promise<void>;\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { EBookingWizardOverlayDirection, EBookingWizardTheme } from '../../components/generic/BookingWizard/BookingWizard';
|
|
3
|
-
import type { BookingWizardContextType
|
|
3
|
+
import type { BookingWizardContextType } from '../../components/generic/BookingWizard/BookingWizardContext';
|
|
4
4
|
import { BookingWizardGuestSelectorProps } from '../../components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector';
|
|
5
5
|
import { BaseEngine, BaseEngineConfig } from '../BaseEngine';
|
|
6
6
|
import { ShowPromoCodeAlertProps, ShowYearOnCalendarProps } from '../../models/Api/HotelOverrideDTO';
|
|
@@ -27,10 +27,6 @@ export interface BookingWizardEngineConfig extends BaseEngineConfig, ShowYearOnC
|
|
|
27
27
|
dateFormat?: string;
|
|
28
28
|
hideTooltips?: boolean;
|
|
29
29
|
overlayDirection?: EBookingWizardOverlayDirection;
|
|
30
|
-
defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id' | 'checkIn' | 'checkout'>> & {
|
|
31
|
-
checkIn?: string;
|
|
32
|
-
checkout?: string;
|
|
33
|
-
};
|
|
34
30
|
onSubmit?: BookingWizardContextType['onSubmit'];
|
|
35
31
|
notes?: {
|
|
36
32
|
date?: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookingWizardEngine.js","sourceRoot":"/","sources":["src/engines/BookingWizardEngine/BookingWizardEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,qDAAyF;AACzF,yGAA+F;AAK/F,0FAAkE;
|
|
1
|
+
{"version":3,"file":"BookingWizardEngine.js","sourceRoot":"/","sources":["src/engines/BookingWizardEngine/BookingWizardEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,qDAAyF;AACzF,yGAA+F;AAK/F,0FAAkE;AA4ClE,MAAa,mBAAoB,SAAQ,uBAAqC;IAC1E,YAAmB,gBAA6B,EAAE,MAAkC;QAChF,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,aAAa,CAAC;QAEhD,4CAA4C;QAC5C,6BAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEe,MAAM;;YAClB,IAAA,gDAAmB,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;QACzG,CAAC;KAAA;CACJ;AAZD,kDAYC","sourcesContent":["import { ReactNode } from 'react';\n\nimport { EBookingWizardOverlayDirection, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\nimport type { BookingWizardContextType } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BookingWizardGuestSelectorProps } from '@/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector';\nimport { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { renderBookingWizard } from '@/engines/BookingWizardEngine/BookingWizardEngineElement';\nimport { ShowPromoCodeAlertProps, ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\nimport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport type { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport interface BookingWizardEngineConfig extends BaseEngineConfig, ShowYearOnCalendarProps, ShowPromoCodeAlertProps, Pick<Hotel, 'startsWeekOnDay'> {\n widgetType: 'property' | 'group';\n theme: EBookingWizardTheme;\n layout: 'horizontal' | 'vertical' | 'button';\n useMobileButtonLayout?: boolean;\n\n properties: TBookingWizardProperties;\n selectedProperty?: BookingWizardProperty;\n defaultColors: BookingWizardProperty['colors'];\n\n wrapperClassname?: string;\n contentClassname?: string;\n maxOccupancy?: number;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n hideGuestSelect?: boolean;\n hidePromocode?: boolean;\n hideProperty?: boolean;\n dateFormat?: string;\n\n hideTooltips?: boolean;\n overlayDirection?: EBookingWizardOverlayDirection;\n\n onSubmit?: BookingWizardContextType['onSubmit'];\n\n // New option for new theme\n notes?: {\n date?: ReactNode; // Show at bottom left corner of Date Selector popup\n guest?: ReactNode; // Show at bottom of Guest Selector popup\n };\n guestAgeConfig?: Pick<BookingWizardGuestSelectorProps, 'minAdultAge' | 'maxAdultAge' | 'ageRange'>;\n\n // Enable property search and optionally provide a custom search filter function.\n searchConfig?: {\n companyId: number;\n searchFilter?: (properties: TBookingWizardProperties, query?: string) => TBookingWizardProperties;\n sortCompareFn?: <T>(a: T, b: T) => number;\n combineAddress?: (address: BookingWizardProperty['address']) => string;\n };\n}\n\nexport class BookingWizardEngine extends BaseEngine<BookingWizardEngineConfig> {\n public constructor(bookingContainer: HTMLElement, config?: BookingWizardEngineConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.BookingWizard;\n\n // TODO: Make this a more permanent solution\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n }\n\n protected async render() {\n renderBookingWizard(RoomstayThemeEngine.createElementOrReuseExisting('div', 'booking-wizard'), this);\n }\n}\n"]}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -67,6 +67,7 @@ export { default as PlanPayPricePreviewFeature } from './providers/feature/PlanP
|
|
|
67
67
|
export { default as RoomRateReadMoreVersionFeature } from './providers/feature/RoomRateReadMoreVersionFeature';
|
|
68
68
|
export { default as RoomUpsellFeature } from './providers/feature/RoomUpsellFeature';
|
|
69
69
|
export { default as ShowIATANumberOnCheckoutFeature } from './providers/feature/ShowIATANumberOnCheckoutFeature';
|
|
70
|
+
export { default as StepDateNextButtonAboveDatepickerFeature } from './providers/feature/StepDateNextButtonAboveDatepickerFeature';
|
|
70
71
|
export { registerReplacement, withDI } from './providers/DIProvider';
|
|
71
72
|
export * from './providers/RoomstayThemeEngine';
|
|
72
73
|
export { default as RoomstayThemeEngine } from './providers/RoomstayThemeEngine';
|
package/dist/src/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.PlanPayPricePreviewFeature = exports.MemberPortalFeature = exports.InlineAddonStepFeature = exports.HotelGroupFeature = exports.GuestTitleFieldFeature = exports.GiftCardFeature = exports.FullPageEngineSmallSpacingFeature = exports.FeaturedPromoFeature = exports.E164PhoneNumberFieldFeature = exports.DerbysoftClickTrackingFeature = exports.DatePickerTypeFeature = exports.ConfirmationVerifyFeature = exports.SessionProvider = exports.LocalStorageProvider = exports.RoomSort = exports.RatePillProvider = exports.FeatureProvider = exports.CurrencyProvider = exports.SmallSpinner = exports.StepNoRoomBestRateAlert = exports.RoomModalPerkRow = exports.BE_ROOM_MODAL_PERK_ROW = exports.RatesNotFoundBlock = exports.BE_RATES_NOT_FOUND_BLOCK = exports.NoRoomsFoundBlock = exports.BE_NO_ROOMS_FOUND_BLOCK = exports.HotelInfoPerksRow = exports.BE_HOTEL_INFO_PERK_ROW = exports.OccupancyWarningBlock = exports.BE_OCCUPANCY_WARNING_BLOCK = exports.StepConfirmationCountrySelector = exports.BE_NO_ADDONS_FOUND_BLOCK = exports.AddonsNotFoundBlock = exports.TextBox = exports.TextArea = exports.RadioFields = exports.LineBreak = exports.InputGroup = exports.Icon = exports.Headline = exports.Currency = exports.Checkbox = exports.EBookingWizardTheme = exports.EBookingWizardOverlayDirection = 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 = exports.HotelDataSource = exports.API = exports.useFormContext = exports.DataLayer = exports.RoomstayThemeEngine = exports.withDI = exports.registerReplacement = exports.ShowIATANumberOnCheckoutFeature = exports.RoomUpsellFeature = exports.RoomRateReadMoreVersionFeature = 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 = exports.HotelDataSource = exports.API = exports.useFormContext = exports.DataLayer = exports.RoomstayThemeEngine = exports.withDI = exports.registerReplacement = exports.StepDateNextButtonAboveDatepickerFeature = exports.ShowIATANumberOnCheckoutFeature = exports.RoomUpsellFeature = exports.RoomRateReadMoreVersionFeature = 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"));
|
|
@@ -149,6 +149,8 @@ var RoomUpsellFeature_1 = require("./providers/feature/RoomUpsellFeature");
|
|
|
149
149
|
Object.defineProperty(exports, "RoomUpsellFeature", { enumerable: true, get: function () { return __importDefault(RoomUpsellFeature_1).default; } });
|
|
150
150
|
var ShowIATANumberOnCheckoutFeature_1 = require("./providers/feature/ShowIATANumberOnCheckoutFeature");
|
|
151
151
|
Object.defineProperty(exports, "ShowIATANumberOnCheckoutFeature", { enumerable: true, get: function () { return __importDefault(ShowIATANumberOnCheckoutFeature_1).default; } });
|
|
152
|
+
var StepDateNextButtonAboveDatepickerFeature_1 = require("./providers/feature/StepDateNextButtonAboveDatepickerFeature");
|
|
153
|
+
Object.defineProperty(exports, "StepDateNextButtonAboveDatepickerFeature", { enumerable: true, get: function () { return __importDefault(StepDateNextButtonAboveDatepickerFeature_1).default; } });
|
|
152
154
|
// Contexts
|
|
153
155
|
var DIProvider_1 = require("./providers/DIProvider");
|
|
154
156
|
Object.defineProperty(exports, "registerReplacement", { enumerable: true, get: function () { return DIProvider_1.registerReplacement; } });
|
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 { EBookingWizardOverlayDirection, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\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 { default as AddonsNotFoundBlock, BE_NO_ADDONS_FOUND_BLOCK } from '@/components/steps/addons/AddonsNotFoundBlock';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport { BE_OCCUPANCY_WARNING_BLOCK, default as OccupancyWarningBlock } from '@/components/steps/date/OccupancyWarningBlock';\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 { BE_RATES_NOT_FOUND_BLOCK, default as RatesNotFoundBlock } from '@/components/steps/room/RatesNotFoundBlock';\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';\nexport { default as LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nexport { default as SessionProvider } from '@/providers/storage/SessionProvider';\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 GiftCardFeature } from '@/providers/feature/GiftCardFeature';\nexport { default as GuestTitleFieldFeature } from '@/providers/feature/GuestTitleFieldFeature';\nexport { default as HotelGroupFeature } from '@/providers/feature/HotelGroupFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as MemberPortalFeature } from '@/providers/feature/MemberPortalFeature';\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 * from '@/util/Analytics/Analytics';\nexport * from '@/util/Analytics/GoogleAnalytics4';\nexport * from '@/util/Analytics/UniversalAnalytics';\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\nexport * from './config';\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 { EBookingWizardOverlayDirection, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\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 { default as AddonsNotFoundBlock, BE_NO_ADDONS_FOUND_BLOCK } from '@/components/steps/addons/AddonsNotFoundBlock';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport { BE_OCCUPANCY_WARNING_BLOCK, default as OccupancyWarningBlock } from '@/components/steps/date/OccupancyWarningBlock';\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 { BE_RATES_NOT_FOUND_BLOCK, default as RatesNotFoundBlock } from '@/components/steps/room/RatesNotFoundBlock';\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';\nexport { default as LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nexport { default as SessionProvider } from '@/providers/storage/SessionProvider';\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 GiftCardFeature } from '@/providers/feature/GiftCardFeature';\nexport { default as GuestTitleFieldFeature } from '@/providers/feature/GuestTitleFieldFeature';\nexport { default as HotelGroupFeature } from '@/providers/feature/HotelGroupFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as MemberPortalFeature } from '@/providers/feature/MemberPortalFeature';\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';\nexport { default as StepDateNextButtonAboveDatepickerFeature } from '@/providers/feature/StepDateNextButtonAboveDatepickerFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport * from '@/util/Analytics/Analytics';\nexport * from '@/util/Analytics/GoogleAnalytics4';\nexport * from '@/util/Analytics/UniversalAnalytics';\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\nexport * from './config';\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HotelOverrideDTO.js","sourceRoot":"/","sources":["src/models/Api/HotelOverrideDTO.ts"],"names":[],"mappings":"","sourcesContent":["import { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\n\nexport interface TransportDistancesConfig {\n subTitle?: string;\n unit?: string;\n suffix?: string;\n}\nexport interface TransportDistances {\n /** Seems that the old way had these as numbers, and if the unit wasn't metric done conversions on the number\n As they're inputting the string directly now I've changed the Distance component to accept both types and only\n run the conversion on numbers.\n */\n displayCard?: boolean;\n plane?: string | number;\n train?: string | number;\n tram?: string | number;\n bus?: string | number;\n taxi?: string | number;\n car?: string | number;\n ferry?: string | number;\n location?: string | number;\n configuration?: {\n plane?: TransportDistancesConfig;\n train?: TransportDistancesConfig;\n tram?: TransportDistancesConfig;\n bus?: TransportDistancesConfig;\n taxi?: TransportDistancesConfig;\n car?: TransportDistancesConfig;\n ferry?: TransportDistancesConfig;\n location?: TransportDistancesConfig;\n };\n}\n\nexport interface ShowYearOnCalendarProps {\n showYearOnCalendar?: boolean;\n yearDisplayOption?: string;\n}\n\nexport interface ShowPromoCodeAlertProps {\n showPromoCodeAlert?: boolean;\n promoCodeAlertType?: 'popup' | 'notification';\n}\n\nexport interface IPageTitle {\n enable: boolean;\n HotelInfo: string;\n FindReservation: string;\n Date: string;\n Room: string;\n Addon: string;\n Confirmation: string;\n Thanks: string;\n}\n\nexport interface IOverrideMessage {\n enable: boolean;\n BestRatePerks: string;\n BestRatePerksAlert: string;\n PreSignUp: string;\n PostSignUp: string;\n pricesIncludeFeesMessage?: string;\n}\n\nexport interface HotelOverrideDTO extends ShowYearOnCalendarProps, ShowPromoCodeAlertProps {\n hideByLine?: boolean;\n overrideDistanceUnitType?: boolean;\n distanceUnitType?: DistanceUnitType;\n transportDistances?: TransportDistances;\n phoneNumberInSummary?: string;\n enabledEventIds?: string[];\n pageTitle?: IPageTitle;\n showPromoCodeDescription?: boolean;\n alwaysShowDecimals?: boolean;\n messages?: IOverrideMessage;\n /**\n * If true, displays the long description next to the short description side by side in the room modal\n */\n roomModalDescSideBySide?: boolean;\n /**\n * If true, Disable grouping rooms in the All Accommodation tab\n * Default: false\n */\n disableGroupRoomsAllTab?: boolean;\n orderUnavailableRoomsLast?: boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HotelOverrideDTO.js","sourceRoot":"/","sources":["src/models/Api/HotelOverrideDTO.ts"],"names":[],"mappings":"","sourcesContent":["import { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\n\nexport interface TransportDistancesConfig {\n subTitle?: string;\n unit?: string;\n suffix?: string;\n}\nexport interface TransportDistances {\n /** Seems that the old way had these as numbers, and if the unit wasn't metric done conversions on the number\n As they're inputting the string directly now I've changed the Distance component to accept both types and only\n run the conversion on numbers.\n */\n displayCard?: boolean;\n plane?: string | number;\n train?: string | number;\n tram?: string | number;\n bus?: string | number;\n taxi?: string | number;\n car?: string | number;\n ferry?: string | number;\n location?: string | number;\n configuration?: {\n plane?: TransportDistancesConfig;\n train?: TransportDistancesConfig;\n tram?: TransportDistancesConfig;\n bus?: TransportDistancesConfig;\n taxi?: TransportDistancesConfig;\n car?: TransportDistancesConfig;\n ferry?: TransportDistancesConfig;\n location?: TransportDistancesConfig;\n };\n}\n\nexport interface ShowYearOnCalendarProps {\n showYearOnCalendar?: boolean;\n yearDisplayOption?: string;\n}\n\nexport interface ShowPromoCodeAlertProps {\n showPromoCodeAlert?: boolean;\n promoCodeAlertType?: 'popup' | 'notification';\n}\n\nexport interface IPageTitle {\n enable: boolean;\n HotelInfo: string;\n FindReservation: string;\n Date: string;\n Room: string;\n Addon: string;\n Confirmation: string;\n Thanks: string;\n}\n\nexport interface IOverrideMessage {\n enable: boolean;\n BestRatePerks: string;\n BestRatePerksAlert: string;\n PreSignUp: string;\n PostSignUp: string;\n pricesIncludeFeesMessage?: string;\n}\n\nexport interface HotelOverrideDTO extends ShowYearOnCalendarProps, ShowPromoCodeAlertProps {\n hideByLine?: boolean;\n overrideDistanceUnitType?: boolean;\n distanceUnitType?: DistanceUnitType;\n transportDistances?: TransportDistances;\n phoneNumberInSummary?: string;\n enabledEventIds?: string[];\n pageTitle?: IPageTitle;\n showPromoCodeDescription?: boolean;\n alwaysShowDecimals?: boolean;\n messages?: IOverrideMessage;\n /**\n * If true, displays the long description next to the short description side by side in the room modal\n */\n roomModalDescSideBySide?: boolean;\n /**\n * If true, Disable grouping rooms in the All Accommodation tab\n * Default: false\n */\n disableGroupRoomsAllTab?: boolean;\n orderUnavailableRoomsLast?: boolean;\n showPromocodeFieldInCheckout: boolean;\n}\n"]}
|
|
@@ -21,6 +21,7 @@ export interface IRoom {
|
|
|
21
21
|
prePerkDisclaimer?: string;
|
|
22
22
|
perks?: ConfigHotel['perks'];
|
|
23
23
|
doNotUpsell: boolean;
|
|
24
|
+
upsellRoomCodes: string[];
|
|
24
25
|
}
|
|
25
26
|
export declare class Room implements RoomRateSortable, Serializable<Room, IRoom> {
|
|
26
27
|
id?: number;
|
|
@@ -40,6 +41,7 @@ export declare class Room implements RoomRateSortable, Serializable<Room, IRoom>
|
|
|
40
41
|
prePerkDisclaimer?: string;
|
|
41
42
|
perks?: ConfigHotel['perks'];
|
|
42
43
|
doNotUpsell: boolean;
|
|
44
|
+
upsellRoomCodes: string[];
|
|
43
45
|
extraDetails?: HotelRoomDTO;
|
|
44
46
|
constructor(props?: Partial<IRoom>);
|
|
45
47
|
static fromData(data: any): Room;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Room.js","sourceRoot":"/","sources":["src/models/Room/Room.ts"],"names":[],"mappings":"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","sourcesContent":["import { HotelRoomDTO } from '@/models/Api/HotelDTO';\nimport { ConfigHotel, Hotel } from '@/models/Client/Hotel/Hotel';\nimport { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport { IRoomRate, RoomRate, RoomRatePriceInclusion } from '@/models/Room/RoomRate';\nimport RoomRateSortable from '@/models/Room/RoomRateSortable';\nimport { Serializable } from '@/models/Serializable';\n\nexport interface IRoom {\n id: number;\n\n code: string;\n name: string;\n longDescription: string;\n shortDescription: string;\n\n occupancy: number;\n\n images: string[];\n rates: IRoomRate[];\n roomGroupId?: string;\n auxiliaryValues: { [key: string]: (string | number)[] };\n order: number;\n\n prePerkDisclaimer?: string;\n perks?: ConfigHotel['perks'];\n doNotUpsell: boolean;\n}\n\nexport class Room implements RoomRateSortable, Serializable<Room, IRoom> {\n public id?: number;\n public code?: string;\n public name?: string;\n public longDescription?: string;\n public shortDescription?: string;\n\n public occupancy?: number;\n\n public images: string[];\n public roomGroupId?: string;\n public auxiliaryValues?: { [key: string]: (string | number)[] } = {};\n public filteredRates?: RoomRate[];\n private rates: RoomRate[];\n public order?: number;\n\n public prePerkDisclaimer?: string;\n public perks?: ConfigHotel['perks'];\n public doNotUpsell!: boolean;\n\n public extraDetails?: HotelRoomDTO;\n\n public constructor(props?: Partial<IRoom>) {\n this.rates = [];\n this.images = [];\n this.auxiliaryValues = {};\n\n if (props) {\n this.applyData(props);\n }\n }\n\n public static fromData(data: any) {\n const room = new this();\n\n if (!data.images && data.imageUrls) {\n data.images = data.imageUrls;\n }\n\n room.applyData(data);\n\n return room;\n }\n\n public getShortDescription(trim = true) {\n let shortDesc = this.shortDescription;\n\n if (trim) {\n shortDesc = (this.shortDescription?.length as number) > 97 ? this.shortDescription?.substr(0, 97) + '…' : this.shortDescription;\n }\n\n return shortDesc?.replace(/(<br>\\s*)+$/, '');\n }\n\n public getLongDescription() {\n return this.longDescription?.replace(/(<br>\\s*)+$/, '');\n }\n\n public applyData(data: Partial<IRoom>) {\n Object.keys(data).map((key: any) => {\n (this as any)[key] = (data as any)[key];\n }, this);\n\n this.filteredRates = this.rates;\n }\n\n public getLowestPriceType = (raw = false) => {\n return (\n ((raw ? this.rates : this.filteredRates) as RoomRate[])\n .reduce<RoomRate | null>((sum, rate) => {\n return sum && sum.getAveragePrice() < rate.getAveragePrice() ? sum : rate;\n }, null)\n ?.getPriceType() ?? RoomRatePriceInclusion.IncludingFeesAndTaxes\n );\n };\n\n public getLowestPrice(raw = false, rawPrice = false) {\n return (\n (raw ? this.rates : this.filteredRates)?.reduce<number>((sum: number, rate: RoomRate) => {\n const avrg = rate.getAveragePrice(rawPrice);\n return sum < avrg && sum ? sum : avrg;\n }, 0) ?? 0\n );\n }\n\n /**\n * Function for getting the lowest total price of the room from all the possible rates.\n * @param includeAllRates If set to true will include all rates, otherwise will only include filtered rates\n * @param getCost If set to true will return the cost of the rate, otherwise will return the average price see {@link RoomRate.getTotalPrice}\n * @returns\n */\n public getLowestTotalPrice(includeAllRates = false, getCost = false) {\n return (\n (includeAllRates ? this.rates : this.filteredRates)?.reduce<number>((sum: number, rate: RoomRate) => {\n const avrg = rate.getTotalPrice(getCost);\n return sum < avrg && sum ? sum : avrg;\n }, 0) ?? 0\n );\n }\n\n public getHighestPrice(raw = false) {\n return (\n (raw ? this.rates : this.filteredRates)?.reduce<number>((sum: number, rate: RoomRate) => (sum > rate.getAveragePrice() && sum ? sum : rate.getAveragePrice()), 0) ?? 0\n );\n }\n\n public addRate(rate: RoomRate) {\n rate.setRoom(this);\n this.rates.push(rate);\n }\n\n public getImages(): string[] {\n if (this.images && this.images.length) {\n return this.images;\n }\n\n return [];\n }\n\n public getOriginalRates(): RoomRate[] {\n return this.rates;\n }\n\n public getRates(): RoomRate[] {\n return (this.filteredRates as RoomRate[]).sort((a, b) => {\n return a.isMemberOnly ? -1 : b.isMemberOnly ? 1 : 0;\n });\n }\n\n public getRate(code: string): RoomRate | null {\n for (const rate in this.rates) {\n if (code === this.rates[rate].code) {\n return this.rates[rate];\n }\n }\n\n return null;\n }\n\n public getPriceSortValue() {\n return this.getLowestPrice();\n }\n\n public getRecommendedSortValue() {\n return this.order;\n }\n\n public getOrderSortValue() {\n return this.order;\n }\n\n public serialize() {\n const toSerialize: IRoom = {\n id: this.id,\n code: this.code,\n images: this.images,\n longDescription: this.longDescription,\n name: this.name,\n occupancy: this.occupancy,\n rates: this.rates.map((rate) => rate.serialize()),\n shortDescription: this.shortDescription,\n roomGroupId: this.roomGroupId,\n auxiliaryValues: this.auxiliaryValues,\n order: this.order,\n } as IRoom;\n\n return toSerialize;\n }\n\n public unSerialize(data: IRoom) {\n const newRates: RoomRate[] = data.rates?.map((serializedRate) => {\n const roomRate = new RoomRate();\n roomRate.unSerialize(serializedRate);\n\n return roomRate;\n });\n\n this.code = data.code;\n this.id = data.id;\n this.images = data.images;\n this.longDescription = data.longDescription;\n this.name = data.name;\n this.occupancy = data.occupancy;\n this.shortDescription = data.shortDescription;\n this.filteredRates = newRates;\n this.rates = newRates;\n\n this.roomGroupId = data.roomGroupId;\n this.auxiliaryValues = data.auxiliaryValues;\n this.order = data.order;\n\n return this;\n }\n\n public getRoomPerks({ hotel, room, perksLimitNumber }: { hotel?: Hotel; room?: Room; perksLimitNumber?: number }): {\n prePerkDisclaimer?: string;\n roomPerks: HotelPerk[];\n } {\n if (!room || !hotel) {\n return {\n roomPerks: hotel?.perks ?? [],\n };\n }\n const roomOverride = hotel?.overwrites?.[room?.code as string];\n let roomPerks = roomOverride?.perks?.length ? roomOverride?.perks : hotel?.perks;\n if (perksLimitNumber) {\n roomPerks = roomPerks?.slice(0, perksLimitNumber);\n }\n const prePerkDisclaimer = roomOverride?.prePerkDisclaimer ? roomOverride.prePerkDisclaimer : room?.prePerkDisclaimer;\n return {\n prePerkDisclaimer: prePerkDisclaimer,\n roomPerks: roomPerks ?? [],\n };\n }\n\n public isAvailable() {\n const rates = this.filteredRates ?? this.rates;\n\n return rates.some((rate) => Object.values(rate.nightRates).every((nightRate) => nightRate.available));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Room.js","sourceRoot":"/","sources":["src/models/Room/Room.ts"],"names":[],"mappings":"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","sourcesContent":["import { HotelRoomDTO } from '@/models/Api/HotelDTO';\nimport { ConfigHotel, Hotel } from '@/models/Client/Hotel/Hotel';\nimport { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport { IRoomRate, RoomRate, RoomRatePriceInclusion } from '@/models/Room/RoomRate';\nimport RoomRateSortable from '@/models/Room/RoomRateSortable';\nimport { Serializable } from '@/models/Serializable';\n\nexport interface IRoom {\n id: number;\n\n code: string;\n name: string;\n longDescription: string;\n shortDescription: string;\n\n occupancy: number;\n\n images: string[];\n rates: IRoomRate[];\n roomGroupId?: string;\n auxiliaryValues: { [key: string]: (string | number)[] };\n order: number;\n\n prePerkDisclaimer?: string;\n perks?: ConfigHotel['perks'];\n doNotUpsell: boolean;\n upsellRoomCodes: string[];\n}\n\nexport class Room implements RoomRateSortable, Serializable<Room, IRoom> {\n public id?: number;\n public code?: string;\n public name?: string;\n public longDescription?: string;\n public shortDescription?: string;\n\n public occupancy?: number;\n\n public images: string[];\n public roomGroupId?: string;\n public auxiliaryValues?: { [key: string]: (string | number)[] } = {};\n public filteredRates?: RoomRate[];\n private rates: RoomRate[];\n public order?: number;\n\n public prePerkDisclaimer?: string;\n public perks?: ConfigHotel['perks'];\n public doNotUpsell!: boolean;\n public upsellRoomCodes!: string[];\n\n public extraDetails?: HotelRoomDTO;\n\n public constructor(props?: Partial<IRoom>) {\n this.rates = [];\n this.images = [];\n this.auxiliaryValues = {};\n\n if (props) {\n this.applyData(props);\n }\n }\n\n public static fromData(data: any) {\n const room = new this();\n\n if (!data.images && data.imageUrls) {\n data.images = data.imageUrls;\n }\n\n room.applyData(data);\n\n return room;\n }\n\n public getShortDescription(trim = true) {\n let shortDesc = this.shortDescription;\n\n if (trim) {\n shortDesc = (this.shortDescription?.length as number) > 97 ? this.shortDescription?.substr(0, 97) + '…' : this.shortDescription;\n }\n\n return shortDesc?.replace(/(<br>\\s*)+$/, '');\n }\n\n public getLongDescription() {\n return this.longDescription?.replace(/(<br>\\s*)+$/, '');\n }\n\n public applyData(data: Partial<IRoom>) {\n Object.keys(data).map((key: any) => {\n (this as any)[key] = (data as any)[key];\n }, this);\n\n this.filteredRates = this.rates;\n }\n\n public getLowestPriceType = (raw = false) => {\n return (\n ((raw ? this.rates : this.filteredRates) as RoomRate[])\n .reduce<RoomRate | null>((sum, rate) => {\n return sum && sum.getAveragePrice() < rate.getAveragePrice() ? sum : rate;\n }, null)\n ?.getPriceType() ?? RoomRatePriceInclusion.IncludingFeesAndTaxes\n );\n };\n\n public getLowestPrice(raw = false, rawPrice = false) {\n return (\n (raw ? this.rates : this.filteredRates)?.reduce<number>((sum: number, rate: RoomRate) => {\n const avrg = rate.getAveragePrice(rawPrice);\n return sum < avrg && sum ? sum : avrg;\n }, 0) ?? 0\n );\n }\n\n /**\n * Function for getting the lowest total price of the room from all the possible rates.\n * @param includeAllRates If set to true will include all rates, otherwise will only include filtered rates\n * @param getCost If set to true will return the cost of the rate, otherwise will return the average price see {@link RoomRate.getTotalPrice}\n * @returns\n */\n public getLowestTotalPrice(includeAllRates = false, getCost = false) {\n return (\n (includeAllRates ? this.rates : this.filteredRates)?.reduce<number>((sum: number, rate: RoomRate) => {\n const avrg = rate.getTotalPrice(getCost);\n return sum < avrg && sum ? sum : avrg;\n }, 0) ?? 0\n );\n }\n\n public getHighestPrice(raw = false) {\n return (\n (raw ? this.rates : this.filteredRates)?.reduce<number>((sum: number, rate: RoomRate) => (sum > rate.getAveragePrice() && sum ? sum : rate.getAveragePrice()), 0) ?? 0\n );\n }\n\n public addRate(rate: RoomRate) {\n rate.setRoom(this);\n this.rates.push(rate);\n }\n\n public getImages(): string[] {\n if (this.images && this.images.length) {\n return this.images;\n }\n\n return [];\n }\n\n public getOriginalRates(): RoomRate[] {\n return this.rates;\n }\n\n public getRates(): RoomRate[] {\n return (this.filteredRates as RoomRate[]).sort((a, b) => {\n return a.isMemberOnly ? -1 : b.isMemberOnly ? 1 : 0;\n });\n }\n\n public getRate(code: string): RoomRate | null {\n for (const rate in this.rates) {\n if (code === this.rates[rate].code) {\n return this.rates[rate];\n }\n }\n\n return null;\n }\n\n public getPriceSortValue() {\n return this.getLowestPrice();\n }\n\n public getRecommendedSortValue() {\n return this.order;\n }\n\n public getOrderSortValue() {\n return this.order;\n }\n\n public serialize() {\n const toSerialize: IRoom = {\n id: this.id,\n code: this.code,\n images: this.images,\n longDescription: this.longDescription,\n name: this.name,\n occupancy: this.occupancy,\n rates: this.rates.map((rate) => rate.serialize()),\n shortDescription: this.shortDescription,\n roomGroupId: this.roomGroupId,\n auxiliaryValues: this.auxiliaryValues,\n order: this.order,\n } as IRoom;\n\n return toSerialize;\n }\n\n public unSerialize(data: IRoom) {\n const newRates: RoomRate[] = data.rates?.map((serializedRate) => {\n const roomRate = new RoomRate();\n roomRate.unSerialize(serializedRate);\n\n return roomRate;\n });\n\n this.code = data.code;\n this.id = data.id;\n this.images = data.images;\n this.longDescription = data.longDescription;\n this.name = data.name;\n this.occupancy = data.occupancy;\n this.shortDescription = data.shortDescription;\n this.filteredRates = newRates;\n this.rates = newRates;\n\n this.roomGroupId = data.roomGroupId;\n this.auxiliaryValues = data.auxiliaryValues;\n this.order = data.order;\n\n return this;\n }\n\n public getRoomPerks({ hotel, room, perksLimitNumber }: { hotel?: Hotel; room?: Room; perksLimitNumber?: number }): {\n prePerkDisclaimer?: string;\n roomPerks: HotelPerk[];\n } {\n if (!room || !hotel) {\n return {\n roomPerks: hotel?.perks ?? [],\n };\n }\n const roomOverride = hotel?.overwrites?.[room?.code as string];\n let roomPerks = roomOverride?.perks?.length ? roomOverride?.perks : hotel?.perks;\n if (perksLimitNumber) {\n roomPerks = roomPerks?.slice(0, perksLimitNumber);\n }\n const prePerkDisclaimer = roomOverride?.prePerkDisclaimer ? roomOverride.prePerkDisclaimer : room?.prePerkDisclaimer;\n return {\n prePerkDisclaimer: prePerkDisclaimer,\n roomPerks: roomPerks ?? [],\n };\n }\n\n public isAvailable() {\n const rates = this.filteredRates ?? this.rates;\n\n return rates.some((rate) => Object.values(rate.nightRates).every((nightRate) => nightRate.available));\n }\n}\n"]}
|
|
@@ -53,6 +53,7 @@ const StepOneDateRangePicker_1 = __importDefault(require("../../../components/st
|
|
|
53
53
|
const StepOneDateRangePickerLegend_1 = __importDefault(require("../../../components/steps/date/StepOneDateRangePickerLegend"));
|
|
54
54
|
const StepOneNextStepButton_1 = __importDefault(require("../../../components/steps/date/StepOneNextStepButton"));
|
|
55
55
|
const StepOneStatusPeople_1 = __importDefault(require("../../../components/steps/date/StepOneStatusPeople"));
|
|
56
|
+
const StepDateNextButtonAboveDatepickerFeature_1 = __importDefault(require("../../../providers/feature/StepDateNextButtonAboveDatepickerFeature"));
|
|
56
57
|
const Color_1 = require("../../../util/Color");
|
|
57
58
|
const ScreenSize_1 = __importDefault(require("../../../util/ScreenSize"));
|
|
58
59
|
const StepDate_1 = __importDefault(require("./StepDate"));
|
|
@@ -113,9 +114,14 @@ const StepDateComponent = () => {
|
|
|
113
114
|
react_1.default.createElement("div", { className: "step-one-status" },
|
|
114
115
|
react_1.default.createElement(StepOneDateRange_1.default, null),
|
|
115
116
|
react_1.default.createElement(StepOneStatusPeople_1.default, null))),
|
|
116
|
-
react_1.default.createElement("div", { className: "col-md-4" },
|
|
117
|
-
react_1.default.createElement(
|
|
117
|
+
react_1.default.createElement("div", { className: "col-md-4" }, StepDateNextButtonAboveDatepickerFeature_1.default.isActive() ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
118
|
+
react_1.default.createElement("div", { className: "u-flex justify-content-end align-items-end" },
|
|
119
|
+
react_1.default.createElement(StepDatePricePerRoom_1.default, { isMobile: false })),
|
|
120
|
+
react_1.default.createElement("div", { className: "u-flex justify-content-end u-marg-top--heavy" },
|
|
121
|
+
react_1.default.createElement(StepOneNextStepButton_1.default, null)))) : (react_1.default.createElement(StepDatePricePerRoom_1.default, { isMobile: false })))))),
|
|
118
122
|
react_1.default.createElement(LineBreak_1.default, null))),
|
|
123
|
+
StepDateNextButtonAboveDatepickerFeature_1.default.isActive() && context.screenSize < ScreenSize_1.default.Large && (react_1.default.createElement("div", { className: "u-marg-top--heavy u-marg-bottom--heavy next-step-button--above" },
|
|
124
|
+
react_1.default.createElement(StepOneNextStepButton_1.default, null))),
|
|
119
125
|
react_1.default.createElement("div", { className: "row flex-column-reverse flex-md-row align-items-center align-items-md-start" },
|
|
120
126
|
react_1.default.createElement("div", { ref: peopleRef, className: "col-md-4 col-xl-3" },
|
|
121
127
|
react_1.default.createElement(PeoplePicker_1.default, null)),
|
|
@@ -124,8 +130,8 @@ const StepDateComponent = () => {
|
|
|
124
130
|
react_1.default.createElement(react_1.Suspense, { fallback: "loading...." },
|
|
125
131
|
react_1.default.createElement(StepOneDateRangePicker_1.default, null))),
|
|
126
132
|
context.screenSize >= ScreenSize_1.default.Large ? react_1.default.createElement(StepOneDateRangePickerLegend_1.default, null) : react_1.default.createElement(LineBreak_1.default, null))),
|
|
127
|
-
react_1.default.createElement("div", { className: "u-flex justify-content-end" },
|
|
128
|
-
react_1.default.createElement(StepOneNextStepButton_1.default, null))));
|
|
133
|
+
!StepDateNextButtonAboveDatepickerFeature_1.default.isActive() && (react_1.default.createElement("div", { className: "u-flex justify-content-end" },
|
|
134
|
+
react_1.default.createElement(StepOneNextStepButton_1.default, null)))));
|
|
129
135
|
};
|
|
130
136
|
exports.default = StepDateComponent;
|
|
131
137
|
//# sourceMappingURL=StepDateComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepDateComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepDate/StepDateComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport { StepDateViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { HotelOverridesContext } from 'contexts/HotelOverridesContext';\nimport React, { lazy, Suspense, useContext, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Headline from '@/components/generic/Headline';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text from '@/components/generic/Text';\nimport PeoplePicker from '@/components/steps/date/PeoplePicker';\nimport StepDatePricePerRoom from '@/components/steps/date/StepDatePricePerRoom';\nimport StepOneDateRange from '@/components/steps/date/StepOneDateRange';\nimport StepOneDateRangePicker from '@/components/steps/date/StepOneDateRangePicker';\nimport StepOneDateRangePickerLegend from '@/components/steps/date/StepOneDateRangePickerLegend';\nimport StepOneNextStepButton from '@/components/steps/date/StepOneNextStepButton';\nimport StepOneStatusPeople from '@/components/steps/date/StepOneStatusPeople';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport StepDate from './StepDate';\nconst BEMobileSummary = lazy(() => import('@/components/summary/BEMobileSummary'));\n\nconst StepDateComponent = () => {\n const { currentStep } = useContext(FullPageEngineContext);\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const { selectedBasketRow, selectBasketRow } = basketContext;\n const ccx = useContext(CompanyContext);\n const { hideByLine } = useContext(HotelOverridesContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const peopleRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (context.screenSize <= ScreenSize.Medium && basketContext.endDate) {\n if (peopleRef) {\n setTimeout(() => {\n peopleRef.current?.scrollIntoView?.({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n }, 50);\n }\n }\n }, [basketContext.endDate]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepDateViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n /**\n * Ensures that a basket row is always selected when navigating back to the \"Step Date\" step.\n *\n * - In [Step Room], after assigning a rate, the selected basket row may be set to null.\n * - When navigating back to [Step Date], ensure that at least one basket row is selected.\n */\n if (currentStep.getName() === StepDate.getName() && !selectedBasketRow) {\n selectBasketRow(null);\n }\n }, [currentStep, selectedBasketRow]);\n\n return (\n <div className=\"container rs-step-date\">\n {context.screenSize <= ScreenSize.Medium && <BEMobileSummary />}\n {context.screenSize >= ScreenSize.Large && (\n <>\n <div className=\"row step-date-hotel-info\">\n <div className=\"col-md-4 col-lg-3\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.Reservation)}</Headline>\n </div>\n <Headline className=\"hotel-name\" color={Color.Navy}>\n {hotel?.name}\n </Headline>\n {!hideByLine && (\n <Text className=\"company-name\" color={Color.DarkGrey}>\n {t(Translation.Misc.By)} {ccx.name}\n </Text>\n )}\n </div>\n <div className=\"col-md-8 col-lg-9\">\n <div className=\"row justify-content-between\">\n <div className=\"col-md-6\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.SelectYourDate)}</Headline>\n </div>\n <div className=\"step-one-status\">\n <StepOneDateRange />\n <StepOneStatusPeople />\n </div>\n </div>\n <div className=\"col-md-4\">\n <StepDatePricePerRoom isMobile={false} />\n </div>\n </div>\n </div>\n </div>\n <LineBreak />\n </>\n )}\n\n <div className=\"row flex-column-reverse flex-md-row align-items-center align-items-md-start\">\n <div ref={peopleRef} className=\"col-md-4 col-xl-3\">\n <PeoplePicker />\n </div>\n <div className=\"col-md-8 col-xl-9\">\n <div className=\"w-100 u-flex justify-content-center flex-column align-items-center\">\n <Suspense fallback=\"loading....\">\n <StepOneDateRangePicker />\n </Suspense>\n </div>\n {context.screenSize >= ScreenSize.Large ? <StepOneDateRangePickerLegend /> : <LineBreak />}\n </div>\n </div>\n <div className=\"u-flex justify-content-end\">\n <StepOneNextStepButton />\n </div>\n </div>\n );\n};\nexport default StepDateComponent;\n"]}
|
|
1
|
+
{"version":3,"file":"StepDateComponent.js","sourceRoot":"/","sources":["src/pages/steps/StepDate/StepDateComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BookingEngineContext, CompanyContext, FullPageEngineContext } from '@frontend/contexts';\nimport { StepDateViewEvent } from '@frontend/events';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { HotelOverridesContext } from 'contexts/HotelOverridesContext';\nimport React, { lazy, Suspense, useContext, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport Headline from '@/components/generic/Headline';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text from '@/components/generic/Text';\nimport PeoplePicker from '@/components/steps/date/PeoplePicker';\nimport StepDatePricePerRoom from '@/components/steps/date/StepDatePricePerRoom';\nimport StepOneDateRange from '@/components/steps/date/StepOneDateRange';\nimport StepOneDateRangePicker from '@/components/steps/date/StepOneDateRangePicker';\nimport StepOneDateRangePickerLegend from '@/components/steps/date/StepOneDateRangePickerLegend';\nimport StepOneNextStepButton from '@/components/steps/date/StepOneNextStepButton';\nimport StepOneStatusPeople from '@/components/steps/date/StepOneStatusPeople';\nimport StepDateNextButtonAboveDatepickerFeature from '@/providers/feature/StepDateNextButtonAboveDatepickerFeature';\nimport { Color } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport StepDate from './StepDate';\nconst BEMobileSummary = lazy(() => import('@/components/summary/BEMobileSummary'));\n\nconst StepDateComponent = () => {\n const { currentStep } = useContext(FullPageEngineContext);\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const { selectedBasketRow, selectBasketRow } = basketContext;\n const ccx = useContext(CompanyContext);\n const { hideByLine } = useContext(HotelOverridesContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const peopleRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (context.screenSize <= ScreenSize.Medium && basketContext.endDate) {\n if (peopleRef) {\n setTimeout(() => {\n peopleRef.current?.scrollIntoView?.({ behavior: 'smooth', block: 'center', inline: 'nearest' });\n }, 50);\n }\n }\n }, [basketContext.endDate]);\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepDateViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n /**\n * Ensures that a basket row is always selected when navigating back to the \"Step Date\" step.\n *\n * - In [Step Room], after assigning a rate, the selected basket row may be set to null.\n * - When navigating back to [Step Date], ensure that at least one basket row is selected.\n */\n if (currentStep.getName() === StepDate.getName() && !selectedBasketRow) {\n selectBasketRow(null);\n }\n }, [currentStep, selectedBasketRow]);\n\n return (\n <div className=\"container rs-step-date\">\n {context.screenSize <= ScreenSize.Medium && <BEMobileSummary />}\n {context.screenSize >= ScreenSize.Large && (\n <>\n <div className=\"row step-date-hotel-info\">\n <div className=\"col-md-4 col-lg-3\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.Reservation)}</Headline>\n </div>\n <Headline className=\"hotel-name\" color={Color.Navy}>\n {hotel?.name}\n </Headline>\n {!hideByLine && (\n <Text className=\"company-name\" color={Color.DarkGrey}>\n {t(Translation.Misc.By)} {ccx.name}\n </Text>\n )}\n </div>\n <div className=\"col-md-8 col-lg-9\">\n <div className=\"row justify-content-between\">\n <div className=\"col-md-6\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Date.SelectYourDate)}</Headline>\n </div>\n <div className=\"step-one-status\">\n <StepOneDateRange />\n <StepOneStatusPeople />\n </div>\n </div>\n <div className=\"col-md-4\">\n {StepDateNextButtonAboveDatepickerFeature.isActive() ? (\n <>\n <div className=\"u-flex justify-content-end align-items-end\">\n <StepDatePricePerRoom isMobile={false} />\n </div>\n <div className=\"u-flex justify-content-end u-marg-top--heavy\">\n <StepOneNextStepButton />\n </div>\n </>\n ) : (\n <StepDatePricePerRoom isMobile={false} />\n )}\n </div>\n </div>\n </div>\n </div>\n <LineBreak />\n </>\n )}\n\n {StepDateNextButtonAboveDatepickerFeature.isActive() && context.screenSize < ScreenSize.Large && (\n <div className=\"u-marg-top--heavy u-marg-bottom--heavy next-step-button--above\">\n <StepOneNextStepButton />\n </div>\n )}\n\n <div className=\"row flex-column-reverse flex-md-row align-items-center align-items-md-start\">\n <div ref={peopleRef} className=\"col-md-4 col-xl-3\">\n <PeoplePicker />\n </div>\n <div className=\"col-md-8 col-xl-9\">\n <div className=\"w-100 u-flex justify-content-center flex-column align-items-center\">\n <Suspense fallback=\"loading....\">\n <StepOneDateRangePicker />\n </Suspense>\n </div>\n {context.screenSize >= ScreenSize.Large ? <StepOneDateRangePickerLegend /> : <LineBreak />}\n </div>\n </div>\n {!StepDateNextButtonAboveDatepickerFeature.isActive() && (\n <div className=\"u-flex justify-content-end\">\n <StepOneNextStepButton />\n </div>\n )}\n </div>\n );\n};\nexport default StepDateComponent;\n"]}
|
|
@@ -17,6 +17,7 @@ const NumberOfPeopleBookedPillFeature_1 = __importDefault(require("./feature/Num
|
|
|
17
17
|
const PlanPayPricePreviewFeature_1 = __importDefault(require("./feature/PlanPayPricePreviewFeature"));
|
|
18
18
|
const RoomUpsellFeature_1 = __importDefault(require("./feature/RoomUpsellFeature"));
|
|
19
19
|
const ShowIATANumberOnCheckoutFeature_1 = __importDefault(require("./feature/ShowIATANumberOnCheckoutFeature"));
|
|
20
|
+
const StepDateNextButtonAboveDatepickerFeature_1 = __importDefault(require("./feature/StepDateNextButtonAboveDatepickerFeature"));
|
|
20
21
|
const AnalyticsEventsFeature_1 = __importDefault(require("./feature/AnalyticsEventsFeature"));
|
|
21
22
|
const DerbysoftClickTrackingFeature_1 = __importDefault(require("./feature/DerbysoftClickTrackingFeature"));
|
|
22
23
|
const GiftCardFeature_1 = __importDefault(require("./feature/GiftCardFeature"));
|
|
@@ -56,6 +57,7 @@ FeatureProvider.features = [
|
|
|
56
57
|
HotelGroupFeature_1.default,
|
|
57
58
|
GiftCardFeature_1.default,
|
|
58
59
|
AnalyticsEventsFeature_1.default,
|
|
60
|
+
StepDateNextButtonAboveDatepickerFeature_1.default,
|
|
59
61
|
];
|
|
60
62
|
exports.default = FeatureProvider;
|
|
61
63
|
//# sourceMappingURL=FeatureProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureProvider.js","sourceRoot":"/","sources":["src/providers/FeatureProvider.ts"],"names":[],"mappings":";;;;;AAAA,8GAAsF;AACtF,sGAA8E;AAC9E,kHAA0F;AAC1F,oGAA4E;AAC5E,8HAAsG;AACtG,wGAAgF;AAChF,8FAAsE;AACtE,wGAAgF;AAChF,kGAA0E;AAC1E,oGAA4E;AAC5E,0HAAkG;AAClG,gHAAwF;AACxF,8FAAsE;AACtE,0HAAkG;
|
|
1
|
+
{"version":3,"file":"FeatureProvider.js","sourceRoot":"/","sources":["src/providers/FeatureProvider.ts"],"names":[],"mappings":";;;;;AAAA,8GAAsF;AACtF,sGAA8E;AAC9E,kHAA0F;AAC1F,oGAA4E;AAC5E,8HAAsG;AACtG,wGAAgF;AAChF,8FAAsE;AACtE,wGAAgF;AAChF,kGAA0E;AAC1E,oGAA4E;AAC5E,0HAAkG;AAClG,gHAAwF;AACxF,8FAAsE;AACtE,0HAAkG;AAClG,4IAAoH;AAEpH,8FAAsE;AACtE,4GAAoF;AACpF,gFAAwD;AACxD,8GAAsF;AAEtF,MAAqB,eAAe;IAuBzB,MAAM,CAAC,IAAI,CAAC,IAAuF,EAAE,OAAa;QACrH,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,IAAuF;QACxG,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjD,OAAO,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;;AApCc,wBAAQ,GAAG;IACtB,gCAAsB;IACtB,+BAAqB;IACrB,2BAAiB;IACjB,8BAAoB;IACpB,mCAAyB;IACzB,yCAA+B;IAC/B,qCAA2B;IAC3B,6BAAmB;IACnB,yCAA+B;IAC/B,2CAAiC;IACjC,8BAAoB;IACpB,oCAA0B;IAC1B,wCAA8B;IAC9B,uCAA6B;IAC7B,gCAAsB;IACtB,2BAAiB;IACjB,yBAAe;IACf,gCAAsB;IACtB,kDAAwC;CAC3C,CAAC;kBArBe,eAAe","sourcesContent":["import ConfirmationVerifyFeature from '@/providers/feature/ConfirmationVerifyFeature';\nimport DatePickerTypeFeature from '@/providers/feature/DatePickerTypeFeature';\nimport E164PhoneNumberFieldFeature from '@/providers/feature/E164PhoneNumberFieldFeature';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport FullPageEngineSmallSpacingFeature from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nimport GuestTitleFieldFeature from '@/providers/feature/GuestTitleFieldFeature';\nimport HotelGroupFeature from '@/providers/feature/HotelGroupFeature';\nimport InlineAddonStepFeature from '@/providers/feature/InlineAddonStepFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport ModifyBookingFeature from '@/providers/feature/ModifyBookingFeature';\nimport NumberOfPeopleBookedPillFeature from '@/providers/feature/NumberOfPeopleBookedPillFeature';\nimport PlanPayPricePreviewFeature from '@/providers/feature/PlanPayPricePreviewFeature';\nimport RoomUpsellFeature from '@/providers/feature/RoomUpsellFeature';\nimport ShowIATANumberOnCheckoutFeature from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\nimport StepDateNextButtonAboveDatepickerFeature from '@/providers/feature/StepDateNextButtonAboveDatepickerFeature';\n\nimport AnalyticsEventsFeature from './feature/AnalyticsEventsFeature';\nimport DerbysoftClickTrackingFeature from './feature/DerbysoftClickTrackingFeature';\nimport GiftCardFeature from './feature/GiftCardFeature';\nimport RoomRateReadMoreVersionFeature from './feature/RoomRateReadMoreVersionFeature';\n\nexport default class FeatureProvider {\n private static features = [\n InlineAddonStepFeature,\n DatePickerTypeFeature,\n RoomUpsellFeature,\n FeaturedPromoFeature,\n ConfirmationVerifyFeature,\n ShowIATANumberOnCheckoutFeature,\n E164PhoneNumberFieldFeature,\n MemberPortalFeature,\n NumberOfPeopleBookedPillFeature,\n FullPageEngineSmallSpacingFeature,\n ModifyBookingFeature,\n PlanPayPricePreviewFeature,\n RoomRateReadMoreVersionFeature,\n DerbysoftClickTrackingFeature,\n GuestTitleFieldFeature,\n HotelGroupFeature,\n GiftCardFeature,\n AnalyticsEventsFeature,\n StepDateNextButtonAboveDatepickerFeature,\n ];\n\n public static load(name: string | (typeof FeatureProvider.features)[keyof typeof FeatureProvider.features], options?: any) {\n for (const feature of this.features) {\n if (feature.getName() === name || name === feature) {\n feature.load(options);\n }\n }\n }\n\n public static unLoad(name: string | (typeof FeatureProvider.features)[keyof typeof FeatureProvider.features]) {\n for (const feature of this.features) {\n if (feature.getName() === name || name === feature) {\n feature.unLoad();\n }\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Feature_1 = require("./Feature");
|
|
4
|
+
class StepDateNextButtonAboveDatepickerFeature extends Feature_1.Feature {
|
|
5
|
+
constructor() {
|
|
6
|
+
super('StepDateNextButtonAboveDatepickerFeature');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.default = new StepDateNextButtonAboveDatepickerFeature();
|
|
10
|
+
//# sourceMappingURL=StepDateNextButtonAboveDatepickerFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepDateNextButtonAboveDatepickerFeature.js","sourceRoot":"/","sources":["src/providers/feature/StepDateNextButtonAboveDatepickerFeature.ts"],"names":[],"mappings":";;AAAA,yDAAsD;AAEtD,MAAM,wCAAyC,SAAQ,iBAAO;IAC1D;QACI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IACtD,CAAC;CACJ;AAED,kBAAe,IAAI,wCAAwC,EAAE,CAAC","sourcesContent":["import { Feature } from '@/providers/feature/Feature';\n\nclass StepDateNextButtonAboveDatepickerFeature extends Feature {\n public constructor() {\n super('StepDateNextButtonAboveDatepickerFeature');\n }\n}\n\nexport default new StepDateNextButtonAboveDatepickerFeature();\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import BasketAddonRow from '../models/BasketAddonRow';
|
|
2
|
+
import BasketRow from '../models/BasketRow';
|
|
3
|
+
/**
|
|
4
|
+
* Synchronizes addon row quantities based on basket row occupancy.
|
|
5
|
+
* Handles per-person, per-adult, per-child, and per-all-persons pricing types.
|
|
6
|
+
*
|
|
7
|
+
* @param addonRow - The addon row to potentially update
|
|
8
|
+
* @param basketRow - The basket row containing occupancy data
|
|
9
|
+
* @returns true if any field was changed, false otherwise
|
|
10
|
+
*/
|
|
11
|
+
export declare function syncBasketAddonRowQuantities(addonRow: BasketAddonRow, basketRow: BasketRow): boolean;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncBasketAddonRowQuantities = syncBasketAddonRowQuantities;
|
|
4
|
+
const core_1 = require("@roomstay/core");
|
|
5
|
+
/**
|
|
6
|
+
* Synchronizes addon row quantities based on basket row occupancy.
|
|
7
|
+
* Handles per-person, per-adult, per-child, and per-all-persons pricing types.
|
|
8
|
+
*
|
|
9
|
+
* @param addonRow - The addon row to potentially update
|
|
10
|
+
* @param basketRow - The basket row containing occupancy data
|
|
11
|
+
* @returns true if any field was changed, false otherwise
|
|
12
|
+
*/
|
|
13
|
+
function syncBasketAddonRowQuantities(addonRow, basketRow) {
|
|
14
|
+
const addon = addonRow.getAddon();
|
|
15
|
+
if (!addon)
|
|
16
|
+
return false;
|
|
17
|
+
const type = addon.pricingType;
|
|
18
|
+
const isPerPersonType = [core_1.EAddonPricingType.PER_PERSON, core_1.EAddonPricingType.PER_PERSON_PER_NIGHT].includes(type);
|
|
19
|
+
const syncAdults = [
|
|
20
|
+
core_1.EAddonPricingType.PER_PERSON,
|
|
21
|
+
core_1.EAddonPricingType.PER_PERSON_PER_NIGHT,
|
|
22
|
+
core_1.EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT,
|
|
23
|
+
core_1.EAddonPricingType.PER_ALL_PERSONS,
|
|
24
|
+
core_1.EAddonPricingType.PER_ALL_PERSONS_PER_NIGHT,
|
|
25
|
+
].includes(type);
|
|
26
|
+
const syncChildren = [core_1.EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT, core_1.EAddonPricingType.PER_ALL_PERSONS, core_1.EAddonPricingType.PER_ALL_PERSONS_PER_NIGHT].includes(type);
|
|
27
|
+
if (!syncAdults && !syncChildren)
|
|
28
|
+
return false;
|
|
29
|
+
let changed = false;
|
|
30
|
+
if (syncAdults && addonRow.getAdultQuantity() !== basketRow.getAdults()) {
|
|
31
|
+
addonRow.setAdultQuantity(basketRow.getAdults());
|
|
32
|
+
changed = true;
|
|
33
|
+
}
|
|
34
|
+
if (isPerPersonType && addonRow.getQuantity() !== basketRow.getAdults()) {
|
|
35
|
+
addonRow.setQuantity(basketRow.getAdults());
|
|
36
|
+
changed = true;
|
|
37
|
+
}
|
|
38
|
+
if (syncChildren && addonRow.getChildQuantity() !== basketRow.getChildren()) {
|
|
39
|
+
addonRow.setChildQuantity(basketRow.getChildren());
|
|
40
|
+
changed = true;
|
|
41
|
+
}
|
|
42
|
+
return changed;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=SyncBasketAddonRowQuantities.js.map
|