@roomstay/frontend 1.4.0 → 1.5.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/{661.bundle.js → 171.bundle.js} +1 -1
- package/dist/201.bundle.js +1 -1
- package/dist/449.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/steps/room/RoomList.js +35 -0
- package/dist/src/components/steps/room/RoomList.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomErrorForm.js +4 -2
- package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +13 -0
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/events/RoomstayEventManager.d.ts +1 -1
- package/dist/src/events/RoomstayEventManager.js.map +1 -1
- package/dist/src/events/actions/GuestSearchEvent.d.ts +7 -0
- package/dist/src/events/actions/GuestSearchEvent.js +15 -0
- package/dist/src/events/actions/GuestSearchEvent.js.map +1 -0
- package/dist/src/events/actions/InitialHotelDetailsEvent.d.ts +7 -0
- package/dist/src/events/actions/InitialHotelDetailsEvent.js +15 -0
- package/dist/src/events/actions/InitialHotelDetailsEvent.js.map +1 -0
- package/dist/src/events/actions/RoomListSearchEvent.d.ts +9 -0
- package/dist/src/events/actions/RoomListSearchEvent.js +16 -0
- package/dist/src/events/actions/RoomListSearchEvent.js.map +1 -0
- package/dist/src/events/index.d.ts +8 -0
- package/dist/src/events/index.js +8 -0
- package/dist/src/events/index.js.map +1 -1
- package/dist/src/events/views/FindReservationResultsViewEvent.d.ts +7 -0
- package/dist/src/events/views/FindReservationResultsViewEvent.js +15 -0
- package/dist/src/events/views/FindReservationResultsViewEvent.js.map +1 -0
- package/dist/src/events/views/FindReservationViewEvent.d.ts +5 -0
- package/dist/src/events/views/FindReservationViewEvent.js +14 -0
- package/dist/src/events/views/FindReservationViewEvent.js.map +1 -0
- package/dist/src/events/views/StepAddonViewEvent.d.ts +7 -0
- package/dist/src/events/views/StepAddonViewEvent.js +15 -0
- package/dist/src/events/views/StepAddonViewEvent.js.map +1 -0
- package/dist/src/events/views/StepDateViewEvent.d.ts +5 -0
- package/dist/src/events/views/StepDateViewEvent.js +14 -0
- package/dist/src/events/views/StepDateViewEvent.js.map +1 -0
- package/dist/src/events/views/StepHotelInfoViewEvent.d.ts +5 -0
- package/dist/src/events/views/StepHotelInfoViewEvent.js +14 -0
- package/dist/src/events/views/StepHotelInfoViewEvent.js.map +1 -0
- package/dist/src/events/views/StepHotelViewEvent.d.ts +5 -0
- package/dist/src/events/views/StepHotelViewEvent.js +14 -0
- package/dist/src/events/views/StepHotelViewEvent.js.map +1 -0
- package/dist/src/events/views/StepThanksViewEvent.d.ts +7 -0
- package/dist/src/events/views/StepThanksViewEvent.js +15 -0
- package/dist/src/events/views/StepThanksViewEvent.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +9 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Api/IEventReservation.d.ts +7 -0
- package/dist/src/models/Api/IEventReservation.js +3 -0
- package/dist/src/models/Api/IEventReservation.js.map +1 -0
- package/dist/src/models/Client/Hotel/Hotel.d.ts +11 -0
- package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
- package/dist/src/models/RoomListSearch.d.ts +18 -0
- package/dist/src/models/RoomListSearch.js +3 -0
- package/dist/src/models/RoomListSearch.js.map +1 -0
- package/dist/src/models/SearchParameters.d.ts +8 -0
- package/dist/src/models/SearchParameters.js +3 -0
- package/dist/src/models/SearchParameters.js.map +1 -0
- package/dist/src/pages/findReservation/FindReservation.js +4 -0
- package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservationResults.js +27 -0
- package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
- package/dist/src/pages/hotel/HotelInfo.js +6 -0
- package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +8 -0
- package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
- package/dist/src/pages/steps/StepDate/StepDateComponent.js +6 -0
- package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +9 -4
- package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +19 -0
- package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
- package/dist/src/translations/languages/en-gb.js +1 -1
- package/dist/src/translations/languages/en-gb.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,8 @@ const ScreenSize_1 = require("../../../util/ScreenSize");
|
|
|
14
14
|
const hooks_1 = require("@frontend/hooks");
|
|
15
15
|
const contexts_2 = require("@frontend/contexts");
|
|
16
16
|
const StepRoomErrorForm_1 = require("./StepRoomErrorForm");
|
|
17
|
+
const GuestSearchEvent_1 = require("events/actions/GuestSearchEvent");
|
|
18
|
+
const RoomListSearchEvent_1 = require("events/actions/RoomListSearchEvent");
|
|
17
19
|
function RoomList() {
|
|
18
20
|
var _a;
|
|
19
21
|
const basketContext = react_1.useContext(contexts_1.BasketContext);
|
|
@@ -33,6 +35,7 @@ function RoomList() {
|
|
|
33
35
|
const children = selectedRow === null || selectedRow === void 0 ? void 0 : selectedRow.getChildren();
|
|
34
36
|
const sortBy = beContext.currentRoomSort;
|
|
35
37
|
let listWhenLastScrolled = null;
|
|
38
|
+
const { raise } = hooks_1.useEvent();
|
|
36
39
|
const scrollIntoView = () => {
|
|
37
40
|
if (roomListRef.current && listWhenLastScrolled !== rooms) {
|
|
38
41
|
listWhenLastScrolled = rooms;
|
|
@@ -41,6 +44,11 @@ function RoomList() {
|
|
|
41
44
|
}
|
|
42
45
|
};
|
|
43
46
|
react_1.useEffect(() => {
|
|
47
|
+
const search = {};
|
|
48
|
+
(search.checkInTime = startDate.format('YYYY-M-D')), (search.checkOutTime = endDate.format('YYYY-M-D')), (search.numAdults = adults), (search.numChildren = children);
|
|
49
|
+
(search.numRooms = 1), (search.promoCode = promoCode);
|
|
50
|
+
const event = new GuestSearchEvent_1.GuestSearchEvent(search);
|
|
51
|
+
raise(event);
|
|
44
52
|
const filters = Object.values(beContext.currentFilters).filter((filter) => !!filter);
|
|
45
53
|
let isCancelled = false;
|
|
46
54
|
let row = basketContext.selectedBasketRow;
|
|
@@ -55,10 +63,37 @@ function RoomList() {
|
|
|
55
63
|
setIsLoading(true);
|
|
56
64
|
FilterProvider_1.default.getRoomList(row, filters, hotel.hotelID)
|
|
57
65
|
.then((availableRooms) => {
|
|
66
|
+
var _a;
|
|
58
67
|
if (!isCancelled) {
|
|
59
68
|
setRooms(availableRooms);
|
|
60
69
|
setOpenRoom(basketContext.selectedBasketRow);
|
|
61
70
|
setApiHasError(false);
|
|
71
|
+
const foundRooms = (_a = availableRooms === null || availableRooms === void 0 ? void 0 : availableRooms.map((room) => {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
const { name, code } = room;
|
|
74
|
+
const foundRoom = {
|
|
75
|
+
name,
|
|
76
|
+
code,
|
|
77
|
+
lowestPrice: room.getLowestPrice(),
|
|
78
|
+
highestPrice: room.getHighestPrice(),
|
|
79
|
+
currency: ccx.currentCurrency,
|
|
80
|
+
rates: (_b = (_a = room.getRates()) === null || _a === void 0 ? void 0 : _a.map((rate) => {
|
|
81
|
+
const { name, code } = rate;
|
|
82
|
+
return {
|
|
83
|
+
name,
|
|
84
|
+
code,
|
|
85
|
+
price: {
|
|
86
|
+
averagePrice: rate.getAveragePrice(),
|
|
87
|
+
totalPrice: rate.getTotalPrice(),
|
|
88
|
+
currency: ccx.currentCurrency,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
})) !== null && _b !== void 0 ? _b : [],
|
|
92
|
+
};
|
|
93
|
+
return foundRoom;
|
|
94
|
+
})) !== null && _a !== void 0 ? _a : [];
|
|
95
|
+
const event = new RoomListSearchEvent_1.RoomListSearchEvent(search, foundRooms);
|
|
96
|
+
raise(event);
|
|
62
97
|
}
|
|
63
98
|
})
|
|
64
99
|
.catch(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomList.js","sourceRoot":"/","sources":["src/components/steps/room/RoomList.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useState, useMemo, useRef, useEffect } from 'react';\nimport { BasketContext, BookingEngineContext } from '@frontend/contexts';\nimport * as React from 'react';\nimport RoomDetails from './roomDetails/RoomDetails';\nimport NoRoomsFoundBlock from './NoRoomsFoundBlock';\nimport { Room } from '../../../models/Room/Room';\nimport LargeLoader from '../../generic/loader/LargeLoader';\nimport RoomSortProvider from '../../../providers/RoomSortProvider';\nimport Filter from '../../../models/Room/Filters/Filter';\nimport FilterProvider from '../../../providers/FilterProvider';\nimport RoomListCrossSellBlock from './RoomListCrossSellBlock';\nimport DataLayer from '../../../util/DataLayer';\nimport ScreenSize from '../../../util/ScreenSize';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { CompanyContext } from '@frontend/contexts';\nimport { StepRoomErrorForm } from './StepRoomErrorForm';\n\nexport default function RoomList() {\n const basketContext = useContext(BasketContext);\n const beContext = useContext(BookingEngineContext);\n const ccx = useContext(CompanyContext);\n\n const { hotel } = useCurrentHotel();\n\n const [rooms, setRooms] = React.useState<Room[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n\n const [openRoom, setOpenRoom] = useState(null);\n const [apiHasError, setApiHasError] = useState(null);\n\n const roomListRef = useRef(null);\n\n const selectedRow = basketContext.selectedBasketRow;\n\n const startDate = selectedRow?.getStartDate();\n const endDate = selectedRow?.getEndDate();\n const promoCode = selectedRow?.getPromoCode();\n\n const adults = selectedRow?.getAdults();\n const children = selectedRow?.getChildren();\n const sortBy = beContext.currentRoomSort;\n\n let listWhenLastScrolled: Room[] = null;\n\n const scrollIntoView = () => {\n if (roomListRef.current && listWhenLastScrolled !== rooms) {\n listWhenLastScrolled = rooms;\n const offset = beContext.screenSize <= ScreenSize.Medium ? 185 : 350;\n\n window.scrollTo({ top: window.scrollY + (roomListRef.current.getBoundingClientRect().top - offset), behavior: 'smooth' });\n }\n };\n\n useEffect(() => {\n const filters: Filter[] = Object.values(beContext.currentFilters).filter((filter) => !!filter) as Filter[];\n\n let isCancelled = false;\n\n let row = basketContext.selectedBasketRow;\n\n if (!row && !rooms.length) {\n row = basketContext.attemptSelectUnfilledRow();\n }\n\n if (!row) {\n const validRows = basketContext.getAllValidRows();\n row = validRows[validRows.length - 1];\n }\n\n if (row) {\n setIsLoading(true);\n FilterProvider.getRoomList(row, filters, hotel.hotelID)\n .then((availableRooms) => {\n if (!isCancelled) {\n setRooms(availableRooms);\n setOpenRoom(basketContext.selectedBasketRow);\n setApiHasError(false);\n }\n })\n .catch(() => {\n if (!isCancelled) {\n setRooms([]);\n setOpenRoom(null);\n setApiHasError(true);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n\n return () => {\n setIsLoading(false);\n isCancelled = true;\n };\n }, [adults, children, startDate, endDate, promoCode, ccx.currentLanguage, beContext.currentFilters, basketContext.selectedBasketRow?.getStale()]);\n\n return useMemo(() => {\n const sortedRooms = [...rooms];\n if (sortedRooms.length !== 0) {\n sortedRooms.sort(RoomSortProvider.getSortByFunction(sortBy));\n }\n\n setTimeout(() => {\n scrollIntoView();\n }, 100);\n\n const elements = (\n <div ref={roomListRef}>\n {isLoading ? (\n <LargeLoader />\n ) : sortedRooms.length ? (\n sortedRooms.map((room, index) => <RoomDetails key={room.code} room={room} disableMarginBottom={index === sortedRooms.length - 1} />)\n ) : (\n <>\n {apiHasError ? <StepRoomErrorForm /> : <NoRoomsFoundBlock />}\n {hotel?.crossSellHotelIds?.map((hotelId) => (\n <RoomListCrossSellBlock key={hotelId} hotelId={hotelId} />\n ))}\n </>\n )}\n </div>\n );\n\n DataLayer.instance.sendRoomImpressions();\n\n return elements;\n }, [rooms, isLoading, openRoom, sortBy, beContext.currentFilters]);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RoomList.js","sourceRoot":"/","sources":["src/components/steps/room/RoomList.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useContext, useState, useMemo, useRef, useEffect } from 'react';\nimport { BasketContext, BookingEngineContext } from '@frontend/contexts';\nimport * as React from 'react';\nimport RoomDetails from './roomDetails/RoomDetails';\nimport NoRoomsFoundBlock from './NoRoomsFoundBlock';\nimport { Room } from '../../../models/Room/Room';\nimport LargeLoader from '../../generic/loader/LargeLoader';\nimport RoomSortProvider from '../../../providers/RoomSortProvider';\nimport Filter from '../../../models/Room/Filters/Filter';\nimport FilterProvider from '../../../providers/FilterProvider';\nimport RoomListCrossSellBlock from './RoomListCrossSellBlock';\nimport DataLayer from '../../../util/DataLayer';\nimport ScreenSize from '../../../util/ScreenSize';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { CompanyContext } from '@frontend/contexts';\nimport { StepRoomErrorForm } from './StepRoomErrorForm';\nimport { SearchParameters } from 'models/SearchParameters';\nimport { GuestSearchEvent } from 'events/actions/GuestSearchEvent';\nimport { RoomListSearch, RoomRateSearch, RoomRateSearchPrice } from 'models/RoomListSearch';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport { RoomListSearchEvent } from 'events/actions/RoomListSearchEvent';\n\nexport default function RoomList() {\n const basketContext = useContext(BasketContext);\n const beContext = useContext(BookingEngineContext);\n const ccx = useContext(CompanyContext);\n\n const { hotel } = useCurrentHotel();\n\n const [rooms, setRooms] = React.useState<Room[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n\n const [openRoom, setOpenRoom] = useState(null);\n const [apiHasError, setApiHasError] = useState(null);\n\n const roomListRef = useRef(null);\n\n const selectedRow = basketContext.selectedBasketRow;\n\n const startDate = selectedRow?.getStartDate();\n const endDate = selectedRow?.getEndDate();\n const promoCode = selectedRow?.getPromoCode();\n\n const adults = selectedRow?.getAdults();\n const children = selectedRow?.getChildren();\n const sortBy = beContext.currentRoomSort;\n\n let listWhenLastScrolled: Room[] = null;\n\n const { raise } = useEvent();\n\n const scrollIntoView = () => {\n if (roomListRef.current && listWhenLastScrolled !== rooms) {\n listWhenLastScrolled = rooms;\n const offset = beContext.screenSize <= ScreenSize.Medium ? 185 : 350;\n\n window.scrollTo({ top: window.scrollY + (roomListRef.current.getBoundingClientRect().top - offset), behavior: 'smooth' });\n }\n };\n\n useEffect(() => {\n const search = {} as SearchParameters;\n (search.checkInTime = startDate.format('YYYY-M-D')), (search.checkOutTime = endDate.format('YYYY-M-D')), (search.numAdults = adults), (search.numChildren = children);\n (search.numRooms = 1), (search.promoCode = promoCode);\n\n const event = new GuestSearchEvent(search);\n raise(event);\n\n const filters: Filter[] = Object.values(beContext.currentFilters).filter((filter) => !!filter) as Filter[];\n\n let isCancelled = false;\n\n let row = basketContext.selectedBasketRow;\n\n if (!row && !rooms.length) {\n row = basketContext.attemptSelectUnfilledRow();\n }\n\n if (!row) {\n const validRows = basketContext.getAllValidRows();\n row = validRows[validRows.length - 1];\n }\n\n if (row) {\n setIsLoading(true);\n FilterProvider.getRoomList(row, filters, hotel.hotelID)\n .then((availableRooms) => {\n if (!isCancelled) {\n setRooms(availableRooms);\n setOpenRoom(basketContext.selectedBasketRow);\n setApiHasError(false);\n\n const foundRooms: RoomListSearch[] =\n availableRooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name,\n code,\n lowestPrice: room.getLowestPrice(),\n highestPrice: room.getHighestPrice(),\n currency: ccx.currentCurrency,\n\n rates:\n room.getRates()?.map((rate) => {\n const { name, code } = rate;\n return {\n name,\n code,\n\n price: {\n averagePrice: rate.getAveragePrice(),\n totalPrice: rate.getTotalPrice(),\n currency: ccx.currentCurrency,\n },\n };\n }) ?? [],\n };\n\n return foundRoom;\n }) ?? [];\n\n const event = new RoomListSearchEvent(search, foundRooms);\n raise(event);\n }\n })\n .catch(() => {\n if (!isCancelled) {\n setRooms([]);\n setOpenRoom(null);\n setApiHasError(true);\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n\n return () => {\n setIsLoading(false);\n isCancelled = true;\n };\n }, [adults, children, startDate, endDate, promoCode, ccx.currentLanguage, beContext.currentFilters, basketContext.selectedBasketRow?.getStale()]);\n\n return useMemo(() => {\n const sortedRooms = [...rooms];\n if (sortedRooms.length !== 0) {\n sortedRooms.sort(RoomSortProvider.getSortByFunction(sortBy));\n }\n\n setTimeout(() => {\n scrollIntoView();\n }, 100);\n\n const elements = (\n <div ref={roomListRef}>\n {isLoading ? (\n <LargeLoader />\n ) : sortedRooms.length ? (\n sortedRooms.map((room, index) => <RoomDetails key={room.code} room={room} disableMarginBottom={index === sortedRooms.length - 1} />)\n ) : (\n <>\n {apiHasError ? <StepRoomErrorForm /> : <NoRoomsFoundBlock />}\n {hotel?.crossSellHotelIds?.map((hotelId) => (\n <RoomListCrossSellBlock key={hotelId} hotelId={hotelId} />\n ))}\n </>\n )}\n </div>\n );\n\n DataLayer.instance.sendRoomImpressions();\n\n return elements;\n }, [rooms, isLoading, openRoom, sortBy, beContext.currentFilters]);\n}\n"]}
|
|
@@ -70,8 +70,10 @@ exports.StepRoomErrorForm = () => {
|
|
|
70
70
|
React.createElement("div", { className: "u-marg-bottom--light" },
|
|
71
71
|
React.createElement(Icon_1.default, { icon: Icon_1.IconType.Error, color: Color_1.Color.Alert, size: '24px' })),
|
|
72
72
|
React.createElement("div", { className: "u-marg-bottom--light" },
|
|
73
|
-
React.createElement(Headline_1.default, { bold: true, color: Color_1.Color.Alert },
|
|
74
|
-
|
|
73
|
+
React.createElement(Headline_1.default, { bold: true, color: Color_1.Color.Alert },
|
|
74
|
+
React.createElement("span", { style: { color: 'inherit' }, dangerouslySetInnerHTML: { __html: t(Translation_1.Translation.Step.Room.ErrorForm.Title) } }))),
|
|
75
|
+
React.createElement(Text_1.default, { type: Text_1.TextType.Small },
|
|
76
|
+
React.createElement("span", { dangerouslySetInnerHTML: { __html: t(Translation_1.Translation.Step.Room.ErrorForm.Description) } }))),
|
|
75
77
|
React.createElement("div", { className: "col-lg-6" },
|
|
76
78
|
React.createElement("form", null,
|
|
77
79
|
React.createElement(AutoAutoHeight_1.default, { open: !!formState.errors }, Object.values(formState.errors).map((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepRoomErrorForm.js","sourceRoot":"/","sources":["src/components/steps/room/StepRoomErrorForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext } from '@frontend/contexts';\nimport AutoAutoHeight from 'animations/AutoAutoHeight';\nimport API from 'api/BookingAPI';\nimport Alert, { AlertType } from 'components/generic/Alert';\nimport BEButton from 'components/generic/BEButton';\nimport Headline from 'components/generic/Headline';\nimport Icon, { IconType } from 'components/generic/Icon';\nimport Text, { TextType } from 'components/generic/Text';\nimport TextBox from 'components/generic/TextBox';\nimport * as dayjs from 'dayjs';\nimport { useCurrentHotel } from 'hooks/CurrentHotelHook';\nimport * as React from 'react';\nimport { useContext, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport { Color } from 'util/Color';\n\nexport const StepRoomErrorForm = () => {\n const { register, handleSubmit, formState } = useForm();\n const { hotel } = useCurrentHotel();\n const basketContext = useContext(BasketContext);\n const { t } = useTranslation();\n\n const [apiStatus, setApiStatus] = useState<{ success?: boolean; message?: string }>({});\n const [isLoading, setIsLoading] = useState(false);\n\n const onSubmit = async (values: any) => {\n setApiStatus({});\n setIsLoading(true);\n\n try {\n const br = basketContext.selectedBasketRow;\n let searchQuery = '';\n [\n { name: 'Adults', value: br.getAdults() },\n { name: 'Children', value: br.getChildren() },\n { name: 'Promo Code', value: br.getPromoCode() },\n { name: 'Dates range', value: br.getStayDateRange('ddd D MMM YYYY', ' till ') },\n { name: 'Date Sent', value: dayjs().format('dd D MMM YYYY') },\n ].forEach(({ name, value }) => {\n if (value) {\n searchQuery += `${name}: ${value}\\n`;\n }\n });\n\n await API.Error.sendRoomFallbackForm(hotel.hotelID, {\n name: values.name,\n telephone: values.telephone,\n email: values.email,\n searchQuery,\n });\n\n setApiStatus({ success: true });\n } catch (ex) {\n setApiStatus({ success: false, message: t(Translation.Step.Room.ErrorForm.APIError) });\n }\n\n setIsLoading(false);\n };\n\n return (\n <div className=\"u-fill-white u-rounded\">\n <div className=\"row u-pad--heavy\">\n <div className=\"col-lg-6 d-flex justify-content-center flex-column\">\n <div className=\"u-marg-bottom--light\">\n <Icon icon={IconType.Error} color={Color.Alert} size={'24px'} />\n </div>\n <div className=\"u-marg-bottom--light\">\n <Headline bold={true} color={Color.Alert}>\n {t(Translation.Step.Room.ErrorForm.Title)}\n </Headline>\n </div>\n\n <Text type={TextType.Small}>{t(Translation.Step.Room.ErrorForm.Description)}</Text>\n </div>\n <div className=\"col-lg-6\">\n <form>\n <AutoAutoHeight open={!!formState.errors}>\n {Object.values(formState.errors).map((error) => {\n return (\n <Alert type={AlertType.Danger}>\n <Text type={TextType.Small}>{error.message}</Text>\n </Alert>\n );\n })}\n </AutoAutoHeight>\n <div className=\"u-marg-bottom--light u-marg-top\">\n <TextBox\n placeholder={t(Translation.Step.Room.ErrorForm.Inputs.Name)}\n {...register('name', {\n required: {\n value: true,\n message: `${t(Translation.Step.Room.ErrorForm.Inputs.Name)} is a required field`,\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom--light\">\n <TextBox\n placeholder={t(Translation.Step.Room.ErrorForm.Inputs.Email)}\n {...register('email', {\n required: {\n value: true,\n message: `${t(Translation.Step.Room.ErrorForm.Inputs.Email)} is a required field`,\n },\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: 'Email must be valid',\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom--light\">\n <TextBox\n placeholder={t(Translation.Step.Room.ErrorForm.Inputs.Telephone)}\n {...register('telephone', {\n required: {\n value: true,\n message: `${t(Translation.Step.Room.ErrorForm.Inputs.Telephone)} is a required field`,\n },\n })}\n />\n </div>\n <BEButton filled={true} primary={true} onClick={handleSubmit(onSubmit)} isLoading={isLoading} disabled={isLoading || apiStatus.success}>\n {t(Translation.Step.Room.ErrorForm.ContactUsButton)}\n </BEButton>\n\n <AutoAutoHeight open={apiStatus.success}>\n <div className=\"u-pad-top\">\n <Text color={Color.Success}>{t(Translation.Step.Room.ErrorForm.ConfirmationMessage)}</Text>\n </div>\n </AutoAutoHeight>\n\n <AutoAutoHeight open={apiStatus.success === false}>\n <div className=\"u-pad-top\">\n <Text color={Color.Alert}>{apiStatus.message}</Text>\n </div>\n </AutoAutoHeight>\n </form>\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"StepRoomErrorForm.js","sourceRoot":"/","sources":["src/components/steps/room/StepRoomErrorForm.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext } from '@frontend/contexts';\nimport AutoAutoHeight from 'animations/AutoAutoHeight';\nimport API from 'api/BookingAPI';\nimport Alert, { AlertType } from 'components/generic/Alert';\nimport BEButton from 'components/generic/BEButton';\nimport Headline from 'components/generic/Headline';\nimport Icon, { IconType } from 'components/generic/Icon';\nimport Text, { TextType } from 'components/generic/Text';\nimport TextBox from 'components/generic/TextBox';\nimport * as dayjs from 'dayjs';\nimport { useCurrentHotel } from 'hooks/CurrentHotelHook';\nimport * as React from 'react';\nimport { useContext, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport { Color } from 'util/Color';\n\nexport const StepRoomErrorForm = () => {\n const { register, handleSubmit, formState } = useForm();\n const { hotel } = useCurrentHotel();\n const basketContext = useContext(BasketContext);\n const { t } = useTranslation();\n\n const [apiStatus, setApiStatus] = useState<{ success?: boolean; message?: string }>({});\n const [isLoading, setIsLoading] = useState(false);\n\n const onSubmit = async (values: any) => {\n setApiStatus({});\n setIsLoading(true);\n\n try {\n const br = basketContext.selectedBasketRow;\n let searchQuery = '';\n [\n { name: 'Adults', value: br.getAdults() },\n { name: 'Children', value: br.getChildren() },\n { name: 'Promo Code', value: br.getPromoCode() },\n { name: 'Dates range', value: br.getStayDateRange('ddd D MMM YYYY', ' till ') },\n { name: 'Date Sent', value: dayjs().format('dd D MMM YYYY') },\n ].forEach(({ name, value }) => {\n if (value) {\n searchQuery += `${name}: ${value}\\n`;\n }\n });\n\n await API.Error.sendRoomFallbackForm(hotel.hotelID, {\n name: values.name,\n telephone: values.telephone,\n email: values.email,\n searchQuery,\n });\n\n setApiStatus({ success: true });\n } catch (ex) {\n setApiStatus({ success: false, message: t(Translation.Step.Room.ErrorForm.APIError) });\n }\n\n setIsLoading(false);\n };\n\n return (\n <div className=\"u-fill-white u-rounded\">\n <div className=\"row u-pad--heavy\">\n <div className=\"col-lg-6 d-flex justify-content-center flex-column\">\n <div className=\"u-marg-bottom--light\">\n <Icon icon={IconType.Error} color={Color.Alert} size={'24px'} />\n </div>\n <div className=\"u-marg-bottom--light\">\n <Headline bold={true} color={Color.Alert}>\n <span style={{ color: 'inherit' }} dangerouslySetInnerHTML={{ __html: t(Translation.Step.Room.ErrorForm.Title) }} />\n </Headline>\n </div>\n\n <Text type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: t(Translation.Step.Room.ErrorForm.Description) }} />\n </Text>\n </div>\n <div className=\"col-lg-6\">\n <form>\n <AutoAutoHeight open={!!formState.errors}>\n {Object.values(formState.errors).map((error) => {\n return (\n <Alert type={AlertType.Danger}>\n <Text type={TextType.Small}>{error.message}</Text>\n </Alert>\n );\n })}\n </AutoAutoHeight>\n <div className=\"u-marg-bottom--light u-marg-top\">\n <TextBox\n placeholder={t(Translation.Step.Room.ErrorForm.Inputs.Name)}\n {...register('name', {\n required: {\n value: true,\n message: `${t(Translation.Step.Room.ErrorForm.Inputs.Name)} is a required field`,\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom--light\">\n <TextBox\n placeholder={t(Translation.Step.Room.ErrorForm.Inputs.Email)}\n {...register('email', {\n required: {\n value: true,\n message: `${t(Translation.Step.Room.ErrorForm.Inputs.Email)} is a required field`,\n },\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: 'Email must be valid',\n },\n })}\n />\n </div>\n <div className=\"u-marg-bottom--light\">\n <TextBox\n placeholder={t(Translation.Step.Room.ErrorForm.Inputs.Telephone)}\n {...register('telephone', {\n required: {\n value: true,\n message: `${t(Translation.Step.Room.ErrorForm.Inputs.Telephone)} is a required field`,\n },\n })}\n />\n </div>\n <BEButton filled={true} primary={true} onClick={handleSubmit(onSubmit)} isLoading={isLoading} disabled={isLoading || apiStatus.success}>\n {t(Translation.Step.Room.ErrorForm.ContactUsButton)}\n </BEButton>\n\n <AutoAutoHeight open={apiStatus.success}>\n <div className=\"u-pad-top\">\n <Text color={Color.Success}>{t(Translation.Step.Room.ErrorForm.ConfirmationMessage)}</Text>\n </div>\n </AutoAutoHeight>\n\n <AutoAutoHeight open={apiStatus.success === false}>\n <div className=\"u-pad-top\">\n <Text color={Color.Alert}>{apiStatus.message}</Text>\n </div>\n </AutoAutoHeight>\n </form>\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -22,6 +22,8 @@ const StaticContextProvider_1 = require("../../providers/StaticContextProvider")
|
|
|
22
22
|
const DataLayer_1 = require("../../util/DataLayer");
|
|
23
23
|
const StepManager_1 = require("../../util/StepManager");
|
|
24
24
|
const StepHotel_1 = require("../../pages/steps/StepHotel/StepHotel");
|
|
25
|
+
const hooks_1 = require("@frontend/hooks");
|
|
26
|
+
const events_1 = require("../../events");
|
|
25
27
|
exports.CompanyContextWrapper = ({ configCompany: company, children }) => {
|
|
26
28
|
var _a, _b, _c, _d;
|
|
27
29
|
const beContext = react_1.useContext(contexts_1.BookingEngineContext);
|
|
@@ -44,6 +46,7 @@ exports.CompanyContextWrapper = ({ configCompany: company, children }) => {
|
|
|
44
46
|
const [currentLanguage, setCurrentLanguage] = react_1.useState((_d = (_c = getSelectedHotel()) === null || _c === void 0 ? void 0 : _c.defaultLanguage) !== null && _d !== void 0 ? _d : LanguageProvider_1.Language.en_us);
|
|
45
47
|
const [signedInUser, setSignedInUser] = react_1.useState(null);
|
|
46
48
|
const [isSigningIn, setIsSigningIn] = react_1.useState(false);
|
|
49
|
+
const { raise } = hooks_1.useEvent();
|
|
47
50
|
const getHotelFromArrayWithId = (id, arrayOfHotels) => {
|
|
48
51
|
for (const nextHotel of arrayOfHotels) {
|
|
49
52
|
if (nextHotel.hotelID + '' === id + '') {
|
|
@@ -60,6 +63,16 @@ exports.CompanyContextWrapper = ({ configCompany: company, children }) => {
|
|
|
60
63
|
const newHotelArray = oldHotels.map((mappingHotel) => {
|
|
61
64
|
if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {
|
|
62
65
|
modified = true;
|
|
66
|
+
const hotelDetails = {
|
|
67
|
+
name: newHotel.name,
|
|
68
|
+
hotelID: newHotel.hotelID,
|
|
69
|
+
hotelUrl: newHotel.hotelUrl,
|
|
70
|
+
currency: newHotel.defaultCurrency,
|
|
71
|
+
language: newHotel.defaultLanguage,
|
|
72
|
+
address: newHotel.address,
|
|
73
|
+
};
|
|
74
|
+
const event = new events_1.InitialHotelDetailsEvent(hotelDetails);
|
|
75
|
+
raise(event);
|
|
63
76
|
if (callback) {
|
|
64
77
|
return callback(mappingHotel);
|
|
65
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useState, useEffect, useContext, ReactChild } from 'react';\n\nimport { BookingEngineContext, CompanyContext } from '@frontend/contexts';\nimport type { ConfigCompany } from '../../models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel } from '../../models/Client/Hotel/Hotel';\nimport { Language } from '../../providers/LanguageProvider';\nimport { HotelDataSource } from '../../models/Client/Hotel/HotelDataSource.types';\nimport TimeHelper from '../../util/TimeHelper';\nimport API from '../../api/BookingAPI';\nimport BasketRow from '../../models/BasketRow';\nimport ColorProfile from '../../models/Client/Hotel/ColorProfile';\nimport CurrencyProvider from '../../providers/CurrencyProvider';\nimport StaticContextProvider from '../../providers/StaticContextProvider';\nimport DataLayer from '../../util/DataLayer';\nimport StepManager from '../../util/StepManager';\nimport { CompanyContextType } from './CompanyContextType.type';\nimport StepHotel from '../../pages/steps/StepHotel/StepHotel';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [brandSuffix, setBrandSuffix] = useState(company.brandSuffix);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [signedInUser, setSignedInUser] = useState(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n if (callback) {\n return callback(mappingHotel);\n }\n\n return newHotel;\n }\n\n return mappingHotel;\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n }\n\n return newHotelArray;\n });\n };\n\n const refreshHotelFromApi = React.useCallback(async (hotelId: string): Promise<Hotel> => {\n const currentHotelVersion: Hotel = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n };\n\n const details = await API.Hotel.fetchData(currentLanguage, newHotel);\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as ColorProfile;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n }\n\n if (details.rooms) {\n const roomArray = Object.values(details.rooms);\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n return updatedHotel;\n });\n return newHotel;\n }, []);\n\n useEffect(() => {\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setBrandSuffix(company.brandSuffix);\n\n DataLayer.instance.setBrandSuffix(company.brandSuffix);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n if (StepManager.getFirstStep() !== StepHotel) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await refreshHotelFromApi(selectedHotelID);\n\n if (selectedHotel) {\n CurrencyProvider.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.setProviderHotelID(selectedHotel.providerHotelID);\n DataLayer.instance.setHotelName(selectedHotel.name);\n\n if (selectedHotel.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(selectedHotel);\n }\n\n beContext.engine.getSessionProvider().setHotelID(selectedHotelID);\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n const existingUser = localStorage.getItem('hotel' + selectedHotel.hotelID + 'user');\n if (existingUser) {\n setSignedInUser(existingUser);\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.setProviderHotelID('');\n DataLayer.instance.setHotelName(name);\n if (company?.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(company);\n }\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n name,\n companyShort,\n logo,\n logoLink,\n brandSuffix,\n\n colors,\n hotels,\n\n signedInUser,\n isSigningIn,\n\n selectedHotelID,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const resetPriceToZero = (isLoading = false) => {\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: 0, isLoading } }));\n };\n\n resetPriceToZero(true);\n\n API.Availability.getCheapestPricePerDay(row.getStartDate(), row.getEndDate(), row.getAdults(), row.getChildren(), row.getPromoCode(), targetHotel.hotelID).then(\n (prices) => {\n let wasSet = false;\n if (prices) {\n let lowest = 0;\n const allPrices = Object.values(prices);\n if (allPrices?.length > 0) {\n lowest = Object.values(prices).reduce((prevValue, newValue) => (prevValue > newValue ? newValue : prevValue));\n\n wasSet = true;\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: lowest, isLoading: false } }));\n }\n }\n\n if (!wasSet) {\n resetPriceToZero();\n }\n }\n );\n }\n },\n\n changeHotel: (hotel: string | Hotel) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n },\n openMemberSignupModal: () => {\n setIsSigningIn(true);\n },\n signUserIn: (user: string) => {\n DataLayer.instance.sendMemberSignUp();\n workingContext.closeMemberSignupModal();\n localStorage.setItem('hotel' + selectedHotelID + 'user', user);\n setSignedInUser(user);\n },\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n refreshHotelFromApi,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAA+B;AAC/B,iCAAoE;AAEpE,iDAA0E;AAG1E,uEAA4D;AAC5D,2FAAkF;AAClF,sDAA+C;AAC/C,qDAAuC;AAGvC,uEAAgE;AAChE,iFAA0E;AAC1E,oDAA6C;AAC7C,wDAAiD;AAEjD,qEAA8D;AAC9D,2CAA2C;AAC3C,yCAAwD;AAO3C,QAAA,qBAAqB,GAAG,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAA8B,EAAE,EAAE;;IACtG,MAAM,SAAS,GAAG,kBAAU,CAAC,+BAAoB,CAAC,CAAC;IAEnD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,eAAe,GAAG,EAAE,KAAK,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE;gBAC7C,OAAO,KAAK,CAAC;aAChB;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,gBAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAQ,CAAU,OAAO,CAAC,MAAiB,CAAC,CAAC;IACzE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,gBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,gBAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,gBAAQ,EAAU,CAAC;IAEjE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,gBAAQ,aAAS,gBAAgB,EAAE,0CAAE,eAAe,mCAAI,KAAK,CAAC,CAAC;IAC7G,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,gBAAQ,aAAW,gBAAgB,EAAE,0CAAE,eAAe,mCAAI,2BAAQ,CAAC,KAAK,CAAC,CAAC;IAExH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,gBAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,EAAE,KAAK,EAAE,GAAG,gBAAQ,EAAE,CAAC;IAE7B,MAAM,uBAAuB,GAAG,CAAC,EAAU,EAAE,aAAsC,EAAE,EAAE;QACnF,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;YACnC,IAAI,SAAS,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACpC,OAAO,SAAS,CAAC;aACpB;SACJ;IACL,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,EAAU,EAAS,EAAE;QACzC,OAAO,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAU,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,QAAe,EAAE,QAAkC,EAAE,EAAE;QACxE,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;gBACjD,IAAI,YAAY,CAAC,OAAO,GAAG,EAAE,KAAK,QAAQ,CAAC,OAAO,GAAG,EAAE,EAAE;oBACrD,QAAQ,GAAG,IAAI,CAAC;oBAEhB,MAAM,YAAY,GAAoC;wBAClD,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,QAAQ,EAAE,QAAQ,CAAC,eAAe;wBAClC,QAAQ,EAAE,QAAQ,CAAC,eAAe;wBAClC,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC5B,CAAC;oBAEF,MAAM,KAAK,GAAG,IAAI,iCAAwB,CAAC,YAAY,CAAC,CAAC;oBACzD,KAAK,CAAC,KAAK,CAAC,CAAC;oBAEb,IAAI,QAAQ,EAAE;wBACV,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC;qBACjC;oBAED,OAAO,QAAQ,CAAC;iBACnB;gBAED,OAAO,YAAY,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE;gBACX,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;YAED,OAAO,aAAa,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAO,OAAe,EAAkB,EAAE;QACpF,MAAM,mBAAmB,GAAU,cAAc,CAAC,OAAO,CAAU,CAAC;QACpE,MAAM,QAAQ,qBACP,mBAAmB,CACzB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,oBAAG,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAErE,WAAW,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,EAAE;YACnC,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACjC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAEvC,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjD,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnD,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAEnC,YAAY,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3E,YAAY,CAAC,YAAY,GAAG,oBAAU,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAE7E,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACzD,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC/C,YAAY,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAC/D,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAEzC,YAAY,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YACnD,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACzD,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAEnC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACrC,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAE7C,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;YAEpD,IAAI,YAAY,CAAC,UAAU,KAAK,uCAAe,CAAC,QAAQ,EAAE;gBACtD,IAAI,OAAO,CAAC,IAAI,EAAE;oBACd,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;iBACpC;gBAED,IAAI,OAAO,CAAC,MAAM,EAAE;oBAChB,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAsB,CAAC;iBACxD;gBAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBAC1B,YAAY,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;iBAC5D;gBAED,IAAI,OAAO,CAAC,eAAe,EAAE;oBACzB,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;iBAC1D;gBAED,IAAI,OAAO,CAAC,iBAAiB,EAAE;oBAC3B,YAAY,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;iBAC9D;aACJ;YAED,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,SAAS,CAAC,MAAM,EAAE;oBAClB,YAAY,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;wBAClE,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBACvD,CAAC,EAAE,CAAC,CAAC,CAAC;iBACT;aACJ;YAED,OAAO,YAAY,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAA,EAAE,EAAE,CAAC,CAAC;IAEP,iBAAS,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1B,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEpC,mBAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE;YAC3D,OAAO,gCAAK,KAAK,KAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAW,CAAC;QACvF,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,YAAY,CAAC,CAAC;QAExB,IAAI,OAAO,CAAC,aAAa,EAAE;YACvB,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE,CAAC;YACvH,MAAM,WAAW,GAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAChF,IAAI,WAAW,EAAE;gBACb,kBAAkB,CAAC,OAAO,CAAC,CAAC;aAC/B;iBAAM;gBACH,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,uEAAuE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;aAC/G;SACJ;aAAM;YACH;;;;;;cAME;YAEF,IAAI,qBAAW,CAAC,YAAY,EAAE,KAAK,mBAAS,EAAE;gBAC1C,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,2CAA2C,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAClF;SACJ;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;;QAC1D,IAAI,eAAe,EAAE;YACjB,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAEjE,IAAI,aAAa,EAAE;gBACf,0BAAgB,CAAC,iBAAiB,OAAC,aAAa,CAAC,eAAe,mCAAI,KAAK,CAAC,CAAC;gBAE3E,+BAAqB,CAAC,mBAAmB,SAAG,aAAa,CAAC,eAAe,mCAAI,EAAE,CAAC;gBAEhF,mBAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBACrE,mBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAEpD,UAAI,aAAa,CAAC,SAAS,0CAAE,MAAM,CAAC,MAAM,EAAE;oBACxC,mBAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;iBAC1C;gBAED,SAAS,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAElE,kBAAkB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBAElD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;gBACpF,IAAI,YAAY,EAAE;oBACd,eAAe,CAAC,YAAY,CAAC,CAAC;iBACjC;gBAED,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,+CAArB,aAAa,EAAa;aAC7B;SACJ;aAAM;YACH,mBAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAC1C,mBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACtC,UAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,MAAM,CAAC,MAAM,EAAE;gBACnC,mBAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACpC;SACJ;IACL,CAAC,CAAA,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,iBAAS,CAAC,GAAG,EAAE;QACX,wBAAwB,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE/B,iBAAS,CAAC,GAAG,EAAE;;QACX,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QAEzC,mBAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,QAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,mCAAI,eAAe,CAAC,CAAC;IAC5G,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvC,gCAAgC;IAChC,uCAAuC;IAEvC,MAAM,cAAc,GAAuB;QACvC,eAAe;QACf,eAAe;QAEf,IAAI;QACJ,YAAY;QACZ,IAAI;QACJ,QAAQ;QACR,WAAW;QAEX,MAAM;QACN,MAAM;QAEN,YAAY;QACZ,WAAW;QAEX,eAAe;QAEf,yBAAyB,EAAE,CAAC,KAAqB,EAAE,GAAc,EAAE,EAAE;YACjE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAE3F,IAAI,WAAW,IAAI,GAAG,EAAE;gBACpB,MAAM,gBAAgB,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,EAAE;oBAC3C,WAAW,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,iCAAM,aAAa,KAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAG,CAAC,CAAC;gBAC9G,CAAC,CAAC;gBAEF,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAEvB,oBAAG,CAAC,YAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAC3J,CAAC,MAAM,EAAE,EAAE;oBACP,IAAI,MAAM,GAAG,KAAK,CAAC;oBACnB,IAAI,MAAM,EAAE;wBACR,IAAI,MAAM,GAAG,CAAC,CAAC;wBACf,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACxC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,IAAG,CAAC,EAAE;4BACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;4BAE9G,MAAM,GAAG,IAAI,CAAC;4BACd,WAAW,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC,iCAAM,aAAa,KAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAG,CAAC,CAAC;yBACzH;qBACJ;oBAED,IAAI,CAAC,MAAM,EAAE;wBACT,gBAAgB,EAAE,CAAC;qBACtB;gBACL,CAAC,CACJ,CAAC;aACL;QACL,CAAC;QAED,WAAW,EAAE,CAAC,KAAqB,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAE3F,IAAI,WAAW,EAAE;gBACb,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,uEAAuE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC5G,OAAO,KAAK,CAAC;aAChB;QACL,CAAC;QAED,sBAAsB,EAAE,GAAG,EAAE;YACzB,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,qBAAqB,EAAE,GAAG,EAAE;YACxB,cAAc,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE;YACzB,mBAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACtC,cAAc,CAAC,sBAAsB,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,CAAC,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,kBAAkB;QAClB,kBAAkB;QAElB,mBAAmB;KACtB,CAAC;IAEF,OAAO,oBAAC,yBAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,cAAc,IAAG,QAAQ,CAA2B,CAAC;AAChG,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { useState, useEffect, useContext, ReactChild } from 'react';\n\nimport { BookingEngineContext, CompanyContext } from '@frontend/contexts';\nimport type { ConfigCompany } from '../../models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from '../../models/Client/Hotel/Hotel';\nimport { Language } from '../../providers/LanguageProvider';\nimport { HotelDataSource } from '../../models/Client/Hotel/HotelDataSource.types';\nimport TimeHelper from '../../util/TimeHelper';\nimport API from '../../api/BookingAPI';\nimport BasketRow from '../../models/BasketRow';\nimport ColorProfile from '../../models/Client/Hotel/ColorProfile';\nimport CurrencyProvider from '../../providers/CurrencyProvider';\nimport StaticContextProvider from '../../providers/StaticContextProvider';\nimport DataLayer from '../../util/DataLayer';\nimport StepManager from '../../util/StepManager';\nimport { CompanyContextType } from './CompanyContextType.type';\nimport StepHotel from '../../pages/steps/StepHotel/StepHotel';\nimport { useEvent } from '@frontend/hooks';\nimport { InitialHotelDetailsEvent } from '../../events';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [brandSuffix, setBrandSuffix] = useState(company.brandSuffix);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [signedInUser, setSignedInUser] = useState(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return callback(mappingHotel);\n }\n\n return newHotel;\n }\n\n return mappingHotel;\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n }\n\n return newHotelArray;\n });\n };\n\n const refreshHotelFromApi = React.useCallback(async (hotelId: string): Promise<Hotel> => {\n const currentHotelVersion: Hotel = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n };\n\n const details = await API.Hotel.fetchData(currentLanguage, newHotel);\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as ColorProfile;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n }\n\n if (details.rooms) {\n const roomArray = Object.values(details.rooms);\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n return updatedHotel;\n });\n return newHotel;\n }, []);\n\n useEffect(() => {\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setBrandSuffix(company.brandSuffix);\n\n DataLayer.instance.setBrandSuffix(company.brandSuffix);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n if (StepManager.getFirstStep() !== StepHotel) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await refreshHotelFromApi(selectedHotelID);\n\n if (selectedHotel) {\n CurrencyProvider.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.setProviderHotelID(selectedHotel.providerHotelID);\n DataLayer.instance.setHotelName(selectedHotel.name);\n\n if (selectedHotel.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(selectedHotel);\n }\n\n beContext.engine.getSessionProvider().setHotelID(selectedHotelID);\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n const existingUser = localStorage.getItem('hotel' + selectedHotel.hotelID + 'user');\n if (existingUser) {\n setSignedInUser(existingUser);\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.setProviderHotelID('');\n DataLayer.instance.setHotelName(name);\n if (company?.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(company);\n }\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n name,\n companyShort,\n logo,\n logoLink,\n brandSuffix,\n\n colors,\n hotels,\n\n signedInUser,\n isSigningIn,\n\n selectedHotelID,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const resetPriceToZero = (isLoading = false) => {\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: 0, isLoading } }));\n };\n\n resetPriceToZero(true);\n\n API.Availability.getCheapestPricePerDay(row.getStartDate(), row.getEndDate(), row.getAdults(), row.getChildren(), row.getPromoCode(), targetHotel.hotelID).then(\n (prices) => {\n let wasSet = false;\n if (prices) {\n let lowest = 0;\n const allPrices = Object.values(prices);\n if (allPrices?.length > 0) {\n lowest = Object.values(prices).reduce((prevValue, newValue) => (prevValue > newValue ? newValue : prevValue));\n\n wasSet = true;\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: lowest, isLoading: false } }));\n }\n }\n\n if (!wasSet) {\n resetPriceToZero();\n }\n }\n );\n }\n },\n\n changeHotel: (hotel: string | Hotel) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n },\n openMemberSignupModal: () => {\n setIsSigningIn(true);\n },\n signUserIn: (user: string) => {\n DataLayer.instance.sendMemberSignUp();\n workingContext.closeMemberSignupModal();\n localStorage.setItem('hotel' + selectedHotelID + 'user', user);\n setSignedInUser(user);\n },\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n refreshHotelFromApi,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RoomstayEvent } from './RoomstayEvent';
|
|
2
|
-
export declare type RoomstayEventCallback = (event: RoomstayEvent) => Promise<boolean>;
|
|
2
|
+
export declare type RoomstayEventCallback = (event: RoomstayEvent) => Promise<void | boolean>;
|
|
3
3
|
/**
|
|
4
4
|
* Roomstay event manager, always used as a global object, but wrapped in a class.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomstayEventManager.js","sourceRoot":"/","sources":["src/events/RoomstayEventManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAwD;AAKxD,MAAM,oBAAoB,GAAgD,EAAE,CAAC;AAE7E;;;;GAIG;AACH,MAAM,oBAAoB;IACT,KAAK,CAAC,KAAoB;;;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,QAAC,MAAA,cAAc,CAAC,WAAW,EAAC,QAAQ,mDAAI,EAAE;gBACrI,sBAAsB;gBACtB,MAAM,IAAI,6BAAa,CAAC,mDAAmD,CAAC,CAAC;aAChF;YAED,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;gBAC5B,KAAK,MAAM,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;oBAC/C,IAAI;wBACA,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACzB;oBAAC,OAAO,EAAE,EAAE;wBACT,sBAAsB;wBACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACrB;iBACJ;aACJ;;KACJ;IAEM,QAAQ,CAAC,SAAiC,EAAE,QAA+B;;QAC9E,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,IAAI;YACA,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,GAAG,SAAS,CAAC;aACpB;iBAAM;gBACH,IAAI,SAAG,MAAC,SAAkC,EAAC,QAAQ,kDAAI,CAAC;aAC3D;YAED,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE;gBACnE,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACnC;YAED,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1C,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,EAAE,EAAE;YACT,oDAAoD;YACpD,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE3C,kBAAe,OAAO,CAAC","sourcesContent":["import { RoomstayError } from '../errors/RoomstayError';\nimport { RoomstayEvent } from './RoomstayEvent';\n\nexport type RoomstayEventCallback = (event: RoomstayEvent) => Promise<boolean>;\n\nconst GlobalRoomstayEvents: { [name: string]: RoomstayEventCallback[] } = {};\n\n/**\n * Roomstay event manager, always used as a global object, but wrapped in a class.\n *\n * Future improvements - Adding on fail / on\n */\nclass RoomstayEventManager {\n public async raise(event: RoomstayEvent) {\n const eventPrototype = Object.getPrototypeOf(event);\n\n if (!eventPrototype || !Object.prototype.hasOwnProperty.call(eventPrototype, 'constructor') || !eventPrototype.constructor.getLabel?.()) {\n // TODO: Custom logger\n throw new RoomstayError('Failed to raise event as object passed is invalid');\n }\n\n const name = eventPrototype.constructor.getLabel();\n\n if (GlobalRoomstayEvents[name]) {\n for (const callback of GlobalRoomstayEvents[name]) {\n try {\n await callback(event);\n } catch (ex) {\n // TODO: Custom logger\n console.error(ex);\n }\n }\n }\n }\n\n public addEvent(eventType: RoomstayEvent | string, callback: RoomstayEventCallback) {\n if (!callback || typeof callback !== 'function') {\n return false;\n }\n\n try {\n let name = '';\n if (typeof eventType === 'string') {\n name = eventType;\n } else {\n name = (eventType as typeof RoomstayEvent).getLabel?.();\n }\n\n if (!name) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(GlobalRoomstayEvents, name)) {\n GlobalRoomstayEvents[name] = [];\n }\n\n GlobalRoomstayEvents[name].push(callback);\n\n return true;\n } catch (ex) {\n // TODO: Add logging if user enters something whack\n return false;\n }\n }\n}\n\nconst manager = new RoomstayEventManager();\n\nexport default manager;\n"]}
|
|
1
|
+
{"version":3,"file":"RoomstayEventManager.js","sourceRoot":"/","sources":["src/events/RoomstayEventManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2DAAwD;AAKxD,MAAM,oBAAoB,GAAgD,EAAE,CAAC;AAE7E;;;;GAIG;AACH,MAAM,oBAAoB;IACT,KAAK,CAAC,KAAoB;;;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,QAAC,MAAA,cAAc,CAAC,WAAW,EAAC,QAAQ,mDAAI,EAAE;gBACrI,sBAAsB;gBACtB,MAAM,IAAI,6BAAa,CAAC,mDAAmD,CAAC,CAAC;aAChF;YAED,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;gBAC5B,KAAK,MAAM,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;oBAC/C,IAAI;wBACA,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACzB;oBAAC,OAAO,EAAE,EAAE;wBACT,sBAAsB;wBACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACrB;iBACJ;aACJ;;KACJ;IAEM,QAAQ,CAAC,SAAiC,EAAE,QAA+B;;QAC9E,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,IAAI;YACA,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,GAAG,SAAS,CAAC;aACpB;iBAAM;gBACH,IAAI,SAAG,MAAC,SAAkC,EAAC,QAAQ,kDAAI,CAAC;aAC3D;YAED,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE;gBACnE,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACnC;YAED,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1C,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,EAAE,EAAE;YACT,oDAAoD;YACpD,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE3C,kBAAe,OAAO,CAAC","sourcesContent":["import { RoomstayError } from '../errors/RoomstayError';\nimport { RoomstayEvent } from './RoomstayEvent';\n\nexport type RoomstayEventCallback = (event: RoomstayEvent) => Promise<void | boolean>;\n\nconst GlobalRoomstayEvents: { [name: string]: RoomstayEventCallback[] } = {};\n\n/**\n * Roomstay event manager, always used as a global object, but wrapped in a class.\n *\n * Future improvements - Adding on fail / on\n */\nclass RoomstayEventManager {\n public async raise(event: RoomstayEvent) {\n const eventPrototype = Object.getPrototypeOf(event);\n\n if (!eventPrototype || !Object.prototype.hasOwnProperty.call(eventPrototype, 'constructor') || !eventPrototype.constructor.getLabel?.()) {\n // TODO: Custom logger\n throw new RoomstayError('Failed to raise event as object passed is invalid');\n }\n\n const name = eventPrototype.constructor.getLabel();\n\n if (GlobalRoomstayEvents[name]) {\n for (const callback of GlobalRoomstayEvents[name]) {\n try {\n await callback(event);\n } catch (ex) {\n // TODO: Custom logger\n console.error(ex);\n }\n }\n }\n }\n\n public addEvent(eventType: RoomstayEvent | string, callback: RoomstayEventCallback) {\n if (!callback || typeof callback !== 'function') {\n return false;\n }\n\n try {\n let name = '';\n if (typeof eventType === 'string') {\n name = eventType;\n } else {\n name = (eventType as typeof RoomstayEvent).getLabel?.();\n }\n\n if (!name) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(GlobalRoomstayEvents, name)) {\n GlobalRoomstayEvents[name] = [];\n }\n\n GlobalRoomstayEvents[name].push(callback);\n\n return true;\n } catch (ex) {\n // TODO: Add logging if user enters something whack\n return false;\n }\n }\n}\n\nconst manager = new RoomstayEventManager();\n\nexport default manager;\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SearchParameters } from 'models/SearchParameters';
|
|
2
|
+
import { RoomstayEvent } from '../RoomstayEvent';
|
|
3
|
+
export declare class GuestSearchEvent extends RoomstayEvent {
|
|
4
|
+
search: SearchParameters;
|
|
5
|
+
constructor(details: SearchParameters);
|
|
6
|
+
static getLabel(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GuestSearchEvent = void 0;
|
|
4
|
+
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
|
+
class GuestSearchEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
+
constructor(details) {
|
|
7
|
+
super();
|
|
8
|
+
this.search = details;
|
|
9
|
+
}
|
|
10
|
+
static getLabel() {
|
|
11
|
+
return 'Search/Guest';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.GuestSearchEvent = GuestSearchEvent;
|
|
15
|
+
//# sourceMappingURL=GuestSearchEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuestSearchEvent.js","sourceRoot":"/","sources":["src/events/actions/GuestSearchEvent.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AAEjD,MAAa,gBAAiB,SAAQ,6BAAa;IAE/C,YAAmB,OAAyB;QACxC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,cAAc,CAAC;IAC1B,CAAC;CACJ;AAXD,4CAWC","sourcesContent":["import { SearchParameters } from 'models/SearchParameters';\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class GuestSearchEvent extends RoomstayEvent {\n public search: SearchParameters;\n public constructor(details: SearchParameters) {\n super();\n\n this.search = details;\n }\n\n static getLabel(): string {\n return 'Search/Guest';\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InitialHotelDetailsEventPayload } from 'models/Client/Hotel/Hotel';
|
|
2
|
+
import { RoomstayEvent } from '../RoomstayEvent';
|
|
3
|
+
export declare class InitialHotelDetailsEvent extends RoomstayEvent {
|
|
4
|
+
hotelDetails: InitialHotelDetailsEventPayload;
|
|
5
|
+
constructor(details: InitialHotelDetailsEventPayload);
|
|
6
|
+
static getLabel(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InitialHotelDetailsEvent = void 0;
|
|
4
|
+
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
|
+
class InitialHotelDetailsEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
+
constructor(details) {
|
|
7
|
+
super();
|
|
8
|
+
this.hotelDetails = details;
|
|
9
|
+
}
|
|
10
|
+
static getLabel() {
|
|
11
|
+
return 'Details/Hotel';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.InitialHotelDetailsEvent = InitialHotelDetailsEvent;
|
|
15
|
+
//# sourceMappingURL=InitialHotelDetailsEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InitialHotelDetailsEvent.js","sourceRoot":"/","sources":["src/events/actions/InitialHotelDetailsEvent.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AAEjD,MAAa,wBAAyB,SAAQ,6BAAa;IAEvD,YAAmB,OAAwC;QACvD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AAXD,4DAWC","sourcesContent":["import { InitialHotelDetailsEventPayload } from 'models/Client/Hotel/Hotel';\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class InitialHotelDetailsEvent extends RoomstayEvent {\n public hotelDetails: InitialHotelDetailsEventPayload;\n public constructor(details: InitialHotelDetailsEventPayload) {\n super();\n\n this.hotelDetails = details;\n }\n\n static getLabel(): string {\n return 'Details/Hotel';\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RoomListSearch } from 'models/RoomListSearch';
|
|
2
|
+
import { SearchParameters } from 'models/SearchParameters';
|
|
3
|
+
import { RoomstayEvent } from '../RoomstayEvent';
|
|
4
|
+
export declare class RoomListSearchEvent extends RoomstayEvent {
|
|
5
|
+
search: SearchParameters;
|
|
6
|
+
roomList: RoomListSearch[];
|
|
7
|
+
constructor(searchParams: SearchParameters, rooms: RoomListSearch[]);
|
|
8
|
+
static getLabel(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoomListSearchEvent = void 0;
|
|
4
|
+
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
|
+
class RoomListSearchEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
+
constructor(searchParams, rooms) {
|
|
7
|
+
super();
|
|
8
|
+
this.search = searchParams;
|
|
9
|
+
this.roomList = rooms;
|
|
10
|
+
}
|
|
11
|
+
static getLabel() {
|
|
12
|
+
return 'Search/RoomList';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.RoomListSearchEvent = RoomListSearchEvent;
|
|
16
|
+
//# sourceMappingURL=RoomListSearchEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoomListSearchEvent.js","sourceRoot":"/","sources":["src/events/actions/RoomListSearchEvent.ts"],"names":[],"mappings":";;;AAEA,oDAAiD;AAEjD,MAAa,mBAAoB,SAAQ,6BAAa;IAIlD,YAAmB,YAA8B,EAAE,KAAuB;QACtE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,iBAAiB,CAAC;IAC7B,CAAC;CACJ;AAdD,kDAcC","sourcesContent":["import { RoomListSearch } from 'models/RoomListSearch';\nimport { SearchParameters } from 'models/SearchParameters';\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class RoomListSearchEvent extends RoomstayEvent {\n public search: SearchParameters;\n public roomList: RoomListSearch[];\n\n public constructor(searchParams: SearchParameters, rooms: RoomListSearch[]) {\n super();\n\n this.search = searchParams;\n this.roomList = rooms;\n }\n\n static getLabel(): string {\n return 'Search/RoomList';\n }\n}\n"]}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
export * from './views/StepCheckoutViewEvent';
|
|
2
|
+
export * from './views/StepDateViewEvent';
|
|
3
|
+
export * from './views/StepHotelInfoViewEvent';
|
|
4
|
+
export * from './views/StepHotelViewEvent';
|
|
5
|
+
export * from './views/StepAddonViewEvent';
|
|
6
|
+
export * from './views/StepThanksViewEvent';
|
|
7
|
+
export * from './views/FindReservationViewEvent';
|
|
8
|
+
export * from './views/FindReservationResultsViewEvent';
|
|
2
9
|
export * from './actions/AddToCartEvent';
|
|
3
10
|
export * from './actions/RemoveFromCartEvent';
|
|
11
|
+
export * from './actions/InitialHotelDetailsEvent';
|
package/dist/src/events/index.js
CHANGED
|
@@ -11,6 +11,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./views/StepCheckoutViewEvent"), exports);
|
|
14
|
+
__exportStar(require("./views/StepDateViewEvent"), exports);
|
|
15
|
+
__exportStar(require("./views/StepHotelInfoViewEvent"), exports);
|
|
16
|
+
__exportStar(require("./views/StepHotelViewEvent"), exports);
|
|
17
|
+
__exportStar(require("./views/StepAddonViewEvent"), exports);
|
|
18
|
+
__exportStar(require("./views/StepThanksViewEvent"), exports);
|
|
19
|
+
__exportStar(require("./views/FindReservationViewEvent"), exports);
|
|
20
|
+
__exportStar(require("./views/FindReservationResultsViewEvent"), exports);
|
|
14
21
|
__exportStar(require("./actions/AddToCartEvent"), exports);
|
|
15
22
|
__exportStar(require("./actions/RemoveFromCartEvent"), exports);
|
|
23
|
+
__exportStar(require("./actions/InitialHotelDetailsEvent"), exports);
|
|
16
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA8C;AAC9C,4DAA0C;AAC1C,iEAA+C;AAC/C,6DAA2C;AAC3C,6DAA2C;AAC3C,8DAA4C;AAC5C,mEAAiD;AACjD,0EAAwD;AAExD,2DAAyC;AACzC,gEAA8C;AAC9C,qEAAmD","sourcesContent":["export * from './views/StepCheckoutViewEvent';\nexport * from './views/StepDateViewEvent';\nexport * from './views/StepHotelInfoViewEvent';\nexport * from './views/StepHotelViewEvent';\nexport * from './views/StepAddonViewEvent';\nexport * from './views/StepThanksViewEvent';\nexport * from './views/FindReservationViewEvent';\nexport * from './views/FindReservationResultsViewEvent';\n\nexport * from './actions/AddToCartEvent';\nexport * from './actions/RemoveFromCartEvent';\nexport * from './actions/InitialHotelDetailsEvent';\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IEventReservation } from 'models/Api/IEventReservation';
|
|
2
|
+
import { RoomstayEvent } from '../RoomstayEvent';
|
|
3
|
+
export declare class FindReservationResultsViewEvent extends RoomstayEvent {
|
|
4
|
+
reservations: IEventReservation[];
|
|
5
|
+
constructor(res: IEventReservation[]);
|
|
6
|
+
static getLabel(): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindReservationResultsViewEvent = void 0;
|
|
4
|
+
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
|
+
class FindReservationResultsViewEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
+
constructor(res) {
|
|
7
|
+
super();
|
|
8
|
+
this.reservations = res;
|
|
9
|
+
}
|
|
10
|
+
static getLabel() {
|
|
11
|
+
return 'View/FindReservation/Results';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.FindReservationResultsViewEvent = FindReservationResultsViewEvent;
|
|
15
|
+
//# sourceMappingURL=FindReservationResultsViewEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindReservationResultsViewEvent.js","sourceRoot":"/","sources":["src/events/views/FindReservationResultsViewEvent.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AAEjD,MAAa,+BAAgC,SAAQ,6BAAa;IAE9D,YAAmB,GAAwB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,8BAA8B,CAAC;IAC1C,CAAC;CACJ;AAXD,0EAWC","sourcesContent":["import { IEventReservation } from 'models/Api/IEventReservation';\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class FindReservationResultsViewEvent extends RoomstayEvent {\n public reservations: IEventReservation[];\n public constructor(res: IEventReservation[]) {\n super();\n\n this.reservations = res;\n }\n\n static getLabel(): string {\n return 'View/FindReservation/Results';\n }\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindReservationViewEvent = void 0;
|
|
4
|
+
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
|
+
class FindReservationViewEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
}
|
|
9
|
+
static getLabel() {
|
|
10
|
+
return 'View/FindReservation';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.FindReservationViewEvent = FindReservationViewEvent;
|
|
14
|
+
//# sourceMappingURL=FindReservationViewEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindReservationViewEvent.js","sourceRoot":"/","sources":["src/events/views/FindReservationViewEvent.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,MAAa,wBAAyB,SAAQ,6BAAa;IACvD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,sBAAsB,CAAC;IAClC,CAAC;CACJ;AARD,4DAQC","sourcesContent":["import { RoomstayEvent } from '../RoomstayEvent';\n\nexport class FindReservationViewEvent extends RoomstayEvent {\n public constructor() {\n super();\n }\n\n static getLabel(): string {\n return 'View/FindReservation';\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepAddonViewEvent = void 0;
|
|
4
|
+
const RoomstayEvent_1 = require("../RoomstayEvent");
|
|
5
|
+
class StepAddonViewEvent extends RoomstayEvent_1.RoomstayEvent {
|
|
6
|
+
constructor(rows) {
|
|
7
|
+
super();
|
|
8
|
+
this.basketRows = rows;
|
|
9
|
+
}
|
|
10
|
+
static getLabel() {
|
|
11
|
+
return 'View/Addon';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.StepAddonViewEvent = StepAddonViewEvent;
|
|
15
|
+
//# sourceMappingURL=StepAddonViewEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepAddonViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepAddonViewEvent.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AAEjD,MAAa,kBAAmB,SAAQ,6BAAa;IAEjD,YAAmB,IAAiB;QAChC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAXD,gDAWC","sourcesContent":["import BasketRow from '../../models/BasketRow';\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepAddonViewEvent extends RoomstayEvent {\n public basketRows: BasketRow[];\n public constructor(rows: BasketRow[]) {\n super();\n\n this.basketRows = rows;\n }\n\n static getLabel(): string {\n return 'View/Addon';\n }\n}\n"]}
|