@roomstay/frontend 2.3.16 → 2.3.17

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.
@@ -37,14 +37,26 @@ const debounceReload = (0, Debounce_1.debounce)(() => {
37
37
  web_1.planpay.pricePreview.refresh({});
38
38
  }, 150);
39
39
  const PlanpayPrice = ({ price, checkin, currency }) => {
40
- var _a;
41
40
  const { hotel } = (0, hooks_1.useCurrentHotel)();
42
41
  (0, react_1.useEffect)(() => {
43
42
  debounceReload();
44
43
  }, [price, currency, checkin]);
45
44
  if (!(hotel === null || hotel === void 0 ? void 0 : hotel.planpay))
46
45
  return null;
47
- return (react_1.default.createElement("div", { style: { whiteSpace: 'nowrap', marginRight: -16 }, "data-planpay-data-type": "price-preview", "data-planpay-total-cost": price, "data-planpay-currency-code": currency, "data-planpay-redemption-date": checkin, "data-planpay-payment-deadline": "0", "data-planpay-total-minimum-deposit": "0", "data-planpay-merchant-id": (_a = hotel === null || hotel === void 0 ? void 0 : hotel.planpay) === null || _a === void 0 ? void 0 : _a.username }));
46
+ // TODO Liem disable this feature for planpay release
47
+ return react_1.default.createElement("div", { className: "u-marg-top--light" });
48
+ // return (
49
+ // <div
50
+ // style={{ whiteSpace: 'nowrap', marginRight: -16 }}
51
+ // data-planpay-data-type="price-preview"
52
+ // data-planpay-total-cost={price}
53
+ // data-planpay-currency-code={currency}
54
+ // data-planpay-redemption-date={checkin}
55
+ // data-planpay-payment-deadline="0"
56
+ // data-planpay-total-minimum-deposit="0"
57
+ // data-planpay-merchant-id={hotel?.planpay?.username}
58
+ // />
59
+ // );
48
60
  };
49
61
  exports.PlanpayPrice = PlanpayPrice;
50
62
  //# sourceMappingURL=PlanpayPrice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanpayPrice.js","sourceRoot":"/","sources":["src/components/generic/PlanpayPrice/PlanpayPrice.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,sCAAuC;AACvC,+CAAgE;AAEhE,8CAA2C;AAE3C,aAAO,CAAC,IAAI,CAAC;IACT,kCAAkC;IAClC,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;IACjC,aAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC,EAAE,GAAG,CAAC,CAAC;AAQD,MAAM,YAAY,GAA0B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;;IAChF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,cAAc,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA;QAAE,OAAO,IAAI,CAAC;IAEjC,OAAO,CACH,uCACI,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,4BAC1B,eAAe,6BACb,KAAK,gCACF,QAAQ,kCACN,OAAO,mCACP,GAAG,wCACE,GAAG,8BACZ,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,QAAQ,GACpD,CACL,CAAC;AACN,CAAC,CAAC;AArBW,QAAA,YAAY,gBAqBvB","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport { planpay } from '@planpay/web';\nimport React, { FC, PropsWithChildren, useEffect } from 'react';\n\nimport { debounce } from '@/util/Debounce';\n\nplanpay.init({\n // environment: hotel.planpay.env,\n environment: 'prod',\n showDebug: false,\n});\n\nconst debounceReload = debounce(() => {\n planpay.pricePreview.refresh({});\n}, 150);\n\nexport interface PlanpayPriceProps extends PropsWithChildren<any> {\n price: number;\n checkin: string;\n currency: string;\n}\n\nexport const PlanpayPrice: FC<PlanpayPriceProps> = ({ price, checkin, currency }) => {\n const { hotel } = useCurrentHotel();\n\n useEffect(() => {\n debounceReload();\n }, [price, currency, checkin]);\n\n if (!hotel?.planpay) return null;\n\n return (\n <div\n style={{ whiteSpace: 'nowrap', marginRight: -16 }}\n data-planpay-data-type=\"price-preview\"\n data-planpay-total-cost={price}\n data-planpay-currency-code={currency}\n data-planpay-redemption-date={checkin}\n data-planpay-payment-deadline=\"0\"\n data-planpay-total-minimum-deposit=\"0\"\n data-planpay-merchant-id={hotel?.planpay?.username}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"PlanpayPrice.js","sourceRoot":"/","sources":["src/components/generic/PlanpayPrice/PlanpayPrice.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,sCAAuC;AACvC,+CAAgE;AAEhE,8CAA2C;AAE3C,aAAO,CAAC,IAAI,CAAC;IACT,kCAAkC;IAClC,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE;IACjC,aAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC,EAAE,GAAG,CAAC,CAAC;AAQD,MAAM,YAAY,GAA0B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,cAAc,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA;QAAE,OAAO,IAAI,CAAC;IACjC,qDAAqD;IACrD,OAAO,uCAAK,SAAS,EAAC,mBAAmB,GAAO,CAAC;IACjD,WAAW;IACX,WAAW;IACX,6DAA6D;IAC7D,iDAAiD;IACjD,0CAA0C;IAC1C,gDAAgD;IAChD,iDAAiD;IACjD,4CAA4C;IAC5C,iDAAiD;IACjD,8DAA8D;IAC9D,SAAS;IACT,KAAK;AACT,CAAC,CAAC;AAtBW,QAAA,YAAY,gBAsBvB","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport { planpay } from '@planpay/web';\nimport React, { FC, PropsWithChildren, useEffect } from 'react';\n\nimport { debounce } from '@/util/Debounce';\n\nplanpay.init({\n // environment: hotel.planpay.env,\n environment: 'prod',\n showDebug: false,\n});\n\nconst debounceReload = debounce(() => {\n planpay.pricePreview.refresh({});\n}, 150);\n\nexport interface PlanpayPriceProps extends PropsWithChildren<any> {\n price: number;\n checkin: string;\n currency: string;\n}\n\nexport const PlanpayPrice: FC<PlanpayPriceProps> = ({ price, checkin, currency }) => {\n const { hotel } = useCurrentHotel();\n\n useEffect(() => {\n debounceReload();\n }, [price, currency, checkin]);\n\n if (!hotel?.planpay) return null;\n // TODO Liem disable this feature for planpay release\n return <div className=\"u-marg-top--light\"></div>;\n // return (\n // <div\n // style={{ whiteSpace: 'nowrap', marginRight: -16 }}\n // data-planpay-data-type=\"price-preview\"\n // data-planpay-total-cost={price}\n // data-planpay-currency-code={currency}\n // data-planpay-redemption-date={checkin}\n // data-planpay-payment-deadline=\"0\"\n // data-planpay-total-minimum-deposit=\"0\"\n // data-planpay-merchant-id={hotel?.planpay?.username}\n // />\n // );\n};\n"]}
@@ -80,6 +80,7 @@ function FullPageEngineContextWrapper() {
80
80
  (_a = beContext.sessionProvider) === null || _a === void 0 ? void 0 : _a.updateSession({ step: currentStep.getName() });
81
81
  }, [currentStep]);
82
82
  (0, react_1.useEffect)(() => {
83
+ var _a;
83
84
  const currentBasketRows = basketContext.currentBasketRows;
84
85
  let addXRooms = 1;
85
86
  // TODO: this probably needs to be the only place this is set, and listen for URL changes
@@ -189,14 +190,14 @@ function FullPageEngineContextWrapper() {
189
190
  firstBasketRow = basketRow;
190
191
  }
191
192
  }
192
- if ((firstBasketRow === null || firstBasketRow === void 0 ? void 0 : firstBasketRow.getStartDate()) && firstBasketRow.getEndDate()) {
193
+ if ((firstBasketRow === null || firstBasketRow === void 0 ? void 0 : firstBasketRow.getStartDate()) && firstBasketRow.getEndDate() && hotel) {
193
194
  setInitialStep((0, GetStepRoom_1.default)());
194
195
  }
195
196
  }
196
197
  else {
197
198
  const initialSession = beContext.engine.getInitialSession();
198
199
  if (initialSession) {
199
- setInitialStep(StepManager_1.default.getStepFromName(initialSession.step));
200
+ setInitialStep((_a = StepManager_1.default.getStepFromName(initialSession.step)) !== null && _a !== void 0 ? _a : StepManager_1.default.getFirstStep());
200
201
  }
201
202
  }
202
203
  setUrlFlagsParsed(true);
@@ -1 +1 @@
1
- {"version":3,"file":"FullPageEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContextProvider,\n BasketContext,\n BookingEngineContext,\n CompanyContext,\n FullPageBookingEngineUrlParameters,\n FullPageEngineContext,\n FullPageEngineContextType,\n ModalContextWrapper,\n} from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Redirect, Route, useLocation, useRouteMatch } from 'react-router-dom';\nimport StepRoute from 'routes/NaturallyProgressedStepRoute';\n\nimport { API_DATE_FORMAT } from '@/api/BaseAPI';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { RoomstayMark } from '@/components/generic/RoomstayMark';\nimport ScrollToTop from '@/components/generic/ScrollToTop';\nimport Header from '@/components/navigation/Header';\nimport { PageColorComponent } from '@/components/pages/PageColorComponent';\nimport AvailableUpgradesModal from '@/components/steps/room/AvailableUpgradesModal';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { EAppQueryParameters } from '@/models/AppQueryParameters';\nimport BasketRow from '@/models/BasketRow';\nimport RateTypeFilter from '@/models/Room/Filters/RateTypeFilter';\nimport RoomTypeFilter from '@/models/Room/Filters/RoomTypeFilter';\nimport FindReservation, { EFindReservationPath, QUERY_PARAM_NAME } from '@/pages/findReservation/FindReservation';\nimport FindReservationResults from '@/pages/findReservation/FindReservationResults';\nimport HotelInfo from '@/pages/hotel/HotelInfo';\nimport HotelInfoPlaceholder from '@/pages/hotel/HotelInfoPlaceholder';\nimport Step from '@/pages/steps/Step';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport getStepRoom from '@/util/GetStepRoom';\nimport { ROUTES } from '@/util/RouteManager';\nimport StepManager from '@/util/StepManager';\n\nconst AccountRouter = React.lazy(() =>\n import('@/pages/account/AccountRouter').then(({ AccountRouter }) => ({\n default: AccountRouter,\n }))\n);\n\nexport function FullPageEngineContextWrapper() {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const beContext = useContext(BookingEngineContext);\n\n const [engineReady, setEngineReady] = useState(false);\n const [urlFlagsParsed, setUrlFlagsParsed] = useState(false);\n const [urlParameters, setUrlParameters] = useState<FullPageBookingEngineUrlParameters>({});\n\n const [currentStep, setCurrentStep] = useState<Step>(StepManager.getStepFromName(beContext.engine.getInitialSession()?.step as string) ?? StepManager.getFirstStep());\n const [initialStep, setInitialStep] = useState<Step>(StepManager.getFirstStep());\n\n const { hotel } = useCurrentHotel();\n\n const location = useLocation();\n const historyConsistentPush = useHistoryConsistentPush();\n\n const isInStepRoot = useRouteMatch({\n path: StepManager.STEP_BASE,\n });\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ step: currentStep.getName() });\n }, [currentStep]);\n\n useEffect(() => {\n const currentBasketRows = basketContext.currentBasketRows;\n\n let addXRooms = 1;\n\n // TODO: this probably needs to be the only place this is set, and listen for URL changes\n if (currentBasketRows.length === 0) {\n const urlParameterBuilder: FullPageBookingEngineUrlParameters = {};\n\n if (location.search) {\n const query = new URLSearchParams(location.search);\n\n const format = API_DATE_FORMAT;\n\n let start = dayjs(query.get(EAppQueryParameters.Arrive), format);\n let end = dayjs(query.get(EAppQueryParameters.Depart), format);\n\n const promoCode = query.get(EAppQueryParameters.PromoCode);\n const promoOnly = query.get(EAppQueryParameters.PromoOnly);\n\n const promoFeatured = query.get(EAppQueryParameters.PromoFeatured);\n\n if (promoCode) {\n urlParameterBuilder.promoCode = promoCode;\n }\n\n if (promoOnly && promoOnly.toLowerCase() !== 'false') {\n urlParameterBuilder.promoOnly = Boolean(promoOnly);\n }\n\n if (promoFeatured && promoFeatured.toLowerCase() !== 'false') {\n FeatureProvider.load(FeaturedPromoFeature);\n urlParameterBuilder.promoFeatured = true;\n }\n\n const roomCode = query.get(EAppQueryParameters.Room);\n if (roomCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RoomType']: new RoomTypeFilter([roomCode]),\n });\n }\n\n const rateCode = query.get(EAppQueryParameters.Rate);\n if (rateCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RateType']: new RateTypeFilter([rateCode]),\n });\n }\n\n const hotelId = query.get(EAppQueryParameters.Hotel);\n\n if (hotelId) {\n if (ccx.changeHotel(hotelId)) {\n if (!start.isValid()) {\n start = dayjs().add(1, 'day');\n }\n\n if (!end.isValid()) {\n end = start.add(1, 'day');\n }\n\n setInitialStep(getStepRoom());\n }\n\n urlParameterBuilder.hotelId = hotelId;\n }\n\n const defaultCity = query.get(EAppQueryParameters.DefaultCity);\n if (defaultCity) {\n urlParameterBuilder.defaultCity = defaultCity;\n }\n\n // We're doing dates last, as other properties, like hotelID might change them if they're not already set\n if (start.isValid() && end.isValid()) {\n if (start.isBefore(dayjs())) {\n start = dayjs();\n }\n\n if (end.isBefore(start)) {\n end = start.add(1, 'day');\n } else if (end.isBefore(dayjs().add(1, 'day'))) {\n end = dayjs().add(1, 'day');\n }\n\n urlParameterBuilder.startDate = start;\n urlParameterBuilder.endDate = end;\n }\n\n const adults = Number.parseInt(query.get(EAppQueryParameters.Adults) as string, 10);\n if (!isNaN(adults) && adults > 1) {\n if (!hotel || (hotel.maxOccupancy as number) >= adults) {\n urlParameterBuilder.adults = adults;\n }\n }\n\n const children = Number.parseInt(query.get(EAppQueryParameters.Children) as string, 10);\n if (!isNaN(children) && children > 0) {\n if (!hotel || (hotel.maxOccupancy as number) + (isNaN(adults) ? 0 : adults) >= children) {\n urlParameterBuilder.children = children;\n }\n }\n\n const roomCount = Number.parseInt(query.get(EAppQueryParameters.Rooms) as string, 10);\n if (!isNaN(roomCount) && roomCount > 1) {\n urlParameterBuilder.rooms = addXRooms = roomCount;\n }\n\n setUrlParameters(urlParameterBuilder);\n }\n\n let firstBasketRow: BasketRow | undefined = undefined;\n const { startDate, endDate, promoCode, promoOnly, adults, children } = urlParameterBuilder;\n for (let i = 0; i < addXRooms; i++) {\n const basketRow = new BasketRow();\n\n if (startDate) {\n basketRow.setStartDate(startDate);\n }\n\n if (endDate) {\n basketRow.setEndDate(endDate);\n }\n\n if (promoCode) {\n basketRow.setPromoCode(promoCode);\n }\n\n if (promoOnly) {\n basketRow.setPromoOnly(promoOnly);\n }\n\n if (adults) {\n basketRow.setAdults(adults);\n }\n\n if (children) {\n basketRow.setChildren(children);\n }\n\n basketContext.addBasketRow(basketRow, false, i !== 0);\n\n if (i === 0) {\n firstBasketRow = basketRow;\n }\n }\n\n if (firstBasketRow?.getStartDate() && firstBasketRow.getEndDate()) {\n setInitialStep(getStepRoom());\n }\n } else {\n const initialSession = beContext.engine.getInitialSession();\n if (initialSession) {\n setInitialStep(StepManager.getStepFromName(initialSession.step) as Step);\n }\n }\n\n setUrlFlagsParsed(true);\n }, []);\n\n /**\n * Engine Ready useEffect, used to deffer loading the UI until everything engine wise is set up properly\n */\n useEffect(() => {\n if (!engineReady) {\n if (ccx.hotels.length > 0 && urlFlagsParsed) {\n setEngineReady(true);\n }\n }\n }, [ccx.hotels, urlFlagsParsed]);\n\n useEffect(() => {\n if (engineReady) {\n if (isInStepRoot && initialStep) {\n // We want to respect the browsers pathname, and only redirect to a defined step if\n // the pathname isn't set, or matches an unknown page.\n\n // Is the current location in the path? i.e does the user want to be somewhere specific\n let pathInLoadedSteps = false;\n for (const step of StepManager.getSteps()) {\n // Using match instead of equals as some clients have skipped the trailing slash\n // We also want to make sure to only match the start of the path, in case step contains nested paths.\n if (location.pathname.match(new RegExp(`${step.getStepUrl()}.+`, 'ig'))) {\n pathInLoadedSteps = true;\n break;\n }\n }\n\n // We're in /step/ but on a not recognized one.\n if (!pathInLoadedSteps) {\n historyConsistentPush(initialStep.getStepUrl());\n }\n }\n }\n }, [engineReady]);\n\n const workingContext: FullPageEngineContextType = { urlParameters, currentStep, setCurrentStep };\n\n const renderRouteHandler = () => {\n return <Redirect to={StepManager.getFirstStep().getStepUrl()} />;\n };\n\n return (\n <FullPageEngineContext.Provider value={workingContext}>\n <AuthenticationContextProvider>\n <ModalContextWrapper>\n <ScrollToTop />\n <Route exact path=\"/\" render={renderRouteHandler} />\n <header className=\"engine-header\">\n <Header />\n </header>\n {engineReady && (\n <>\n <div className=\"engine-page\">\n <React.Suspense fallback={<HotelInfoPlaceholder />}>\n <Route exact path={ROUTES.HOTEL_INFO} component={HotelInfo} />\n </React.Suspense>\n <React.Suspense fallback={<div>Loading...</div>}>\n <Route\n exact\n path={`/:${QUERY_PARAM_NAME}(${Object.values(EFindReservationPath)\n .filter((path) => MemberPortalFeature.isActive() || path === EFindReservationPath.FindReservation)\n .join('|')})`}\n component={FindReservation}\n />\n <Route path=\"/find-reservation/:ref/:email\" component={FindReservationResults} />\n </React.Suspense>\n\n <PrivateRoute path=\"/account\">\n {MemberPortalFeature.isActive() && (\n <React.Suspense\n fallback={\n <div>\n <LargeLoader />\n </div>\n }\n >\n <AccountRouter />\n </React.Suspense>\n )}\n </PrivateRoute>\n </div>\n <div className=\"engine-body\">\n <AvailableUpgradesModal />\n {StepManager.getSteps().map((step: Step) => (\n <StepRoute key={step.getName()} step={step} />\n ))}\n <Route path=\"*\" component={PageColorComponent} />\n </div>\n </>\n )}\n <RoomstayMark />\n </ModalContextWrapper>\n </AuthenticationContextProvider>\n </FullPageEngineContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"FullPageEngineContextWrapper.js","sourceRoot":"/","sources":["src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthenticationContextProvider,\n BasketContext,\n BookingEngineContext,\n CompanyContext,\n FullPageBookingEngineUrlParameters,\n FullPageEngineContext,\n FullPageEngineContextType,\n ModalContextWrapper,\n} from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Redirect, Route, useLocation, useRouteMatch } from 'react-router-dom';\nimport StepRoute from 'routes/NaturallyProgressedStepRoute';\n\nimport { API_DATE_FORMAT } from '@/api/BaseAPI';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport { RoomstayMark } from '@/components/generic/RoomstayMark';\nimport ScrollToTop from '@/components/generic/ScrollToTop';\nimport Header from '@/components/navigation/Header';\nimport { PageColorComponent } from '@/components/pages/PageColorComponent';\nimport AvailableUpgradesModal from '@/components/steps/room/AvailableUpgradesModal';\nimport { PrivateRoute } from '@/containers/PrivateRoute';\nimport { useHistoryConsistentPush } from '@/hooks/HistoryConsistentPush';\nimport { EAppQueryParameters } from '@/models/AppQueryParameters';\nimport BasketRow from '@/models/BasketRow';\nimport RateTypeFilter from '@/models/Room/Filters/RateTypeFilter';\nimport RoomTypeFilter from '@/models/Room/Filters/RoomTypeFilter';\nimport FindReservation, { EFindReservationPath, QUERY_PARAM_NAME } from '@/pages/findReservation/FindReservation';\nimport FindReservationResults from '@/pages/findReservation/FindReservationResults';\nimport HotelInfo from '@/pages/hotel/HotelInfo';\nimport HotelInfoPlaceholder from '@/pages/hotel/HotelInfoPlaceholder';\nimport Step from '@/pages/steps/Step';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport getStepRoom from '@/util/GetStepRoom';\nimport { ROUTES } from '@/util/RouteManager';\nimport StepManager from '@/util/StepManager';\n\nconst AccountRouter = React.lazy(() =>\n import('@/pages/account/AccountRouter').then(({ AccountRouter }) => ({\n default: AccountRouter,\n }))\n);\n\nexport function FullPageEngineContextWrapper() {\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const beContext = useContext(BookingEngineContext);\n\n const [engineReady, setEngineReady] = useState(false);\n const [urlFlagsParsed, setUrlFlagsParsed] = useState(false);\n const [urlParameters, setUrlParameters] = useState<FullPageBookingEngineUrlParameters>({});\n\n const [currentStep, setCurrentStep] = useState<Step>(StepManager.getStepFromName(beContext.engine.getInitialSession()?.step as string) ?? StepManager.getFirstStep());\n const [initialStep, setInitialStep] = useState<Step>(StepManager.getFirstStep());\n\n const { hotel } = useCurrentHotel();\n\n const location = useLocation();\n const historyConsistentPush = useHistoryConsistentPush();\n\n const isInStepRoot = useRouteMatch({\n path: StepManager.STEP_BASE,\n });\n\n useEffect(() => {\n beContext.sessionProvider?.updateSession({ step: currentStep.getName() });\n }, [currentStep]);\n\n useEffect(() => {\n const currentBasketRows = basketContext.currentBasketRows;\n\n let addXRooms = 1;\n\n // TODO: this probably needs to be the only place this is set, and listen for URL changes\n if (currentBasketRows.length === 0) {\n const urlParameterBuilder: FullPageBookingEngineUrlParameters = {};\n\n if (location.search) {\n const query = new URLSearchParams(location.search);\n\n const format = API_DATE_FORMAT;\n\n let start = dayjs(query.get(EAppQueryParameters.Arrive), format);\n let end = dayjs(query.get(EAppQueryParameters.Depart), format);\n\n const promoCode = query.get(EAppQueryParameters.PromoCode);\n const promoOnly = query.get(EAppQueryParameters.PromoOnly);\n\n const promoFeatured = query.get(EAppQueryParameters.PromoFeatured);\n\n if (promoCode) {\n urlParameterBuilder.promoCode = promoCode;\n }\n\n if (promoOnly && promoOnly.toLowerCase() !== 'false') {\n urlParameterBuilder.promoOnly = Boolean(promoOnly);\n }\n\n if (promoFeatured && promoFeatured.toLowerCase() !== 'false') {\n FeatureProvider.load(FeaturedPromoFeature);\n urlParameterBuilder.promoFeatured = true;\n }\n\n const roomCode = query.get(EAppQueryParameters.Room);\n if (roomCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RoomType']: new RoomTypeFilter([roomCode]),\n });\n }\n\n const rateCode = query.get(EAppQueryParameters.Rate);\n if (rateCode) {\n // TODO: Refactor this to come from this context instead.\n beContext.setCurrentFilters({\n ...beContext.currentFilters,\n ['RateType']: new RateTypeFilter([rateCode]),\n });\n }\n\n const hotelId = query.get(EAppQueryParameters.Hotel);\n\n if (hotelId) {\n if (ccx.changeHotel(hotelId)) {\n if (!start.isValid()) {\n start = dayjs().add(1, 'day');\n }\n\n if (!end.isValid()) {\n end = start.add(1, 'day');\n }\n\n setInitialStep(getStepRoom());\n }\n\n urlParameterBuilder.hotelId = hotelId;\n }\n\n const defaultCity = query.get(EAppQueryParameters.DefaultCity);\n if (defaultCity) {\n urlParameterBuilder.defaultCity = defaultCity;\n }\n\n // We're doing dates last, as other properties, like hotelID might change them if they're not already set\n if (start.isValid() && end.isValid()) {\n if (start.isBefore(dayjs())) {\n start = dayjs();\n }\n\n if (end.isBefore(start)) {\n end = start.add(1, 'day');\n } else if (end.isBefore(dayjs().add(1, 'day'))) {\n end = dayjs().add(1, 'day');\n }\n\n urlParameterBuilder.startDate = start;\n urlParameterBuilder.endDate = end;\n }\n\n const adults = Number.parseInt(query.get(EAppQueryParameters.Adults) as string, 10);\n if (!isNaN(adults) && adults > 1) {\n if (!hotel || (hotel.maxOccupancy as number) >= adults) {\n urlParameterBuilder.adults = adults;\n }\n }\n\n const children = Number.parseInt(query.get(EAppQueryParameters.Children) as string, 10);\n if (!isNaN(children) && children > 0) {\n if (!hotel || (hotel.maxOccupancy as number) + (isNaN(adults) ? 0 : adults) >= children) {\n urlParameterBuilder.children = children;\n }\n }\n\n const roomCount = Number.parseInt(query.get(EAppQueryParameters.Rooms) as string, 10);\n if (!isNaN(roomCount) && roomCount > 1) {\n urlParameterBuilder.rooms = addXRooms = roomCount;\n }\n\n setUrlParameters(urlParameterBuilder);\n }\n\n let firstBasketRow: BasketRow | undefined = undefined;\n const { startDate, endDate, promoCode, promoOnly, adults, children } = urlParameterBuilder;\n for (let i = 0; i < addXRooms; i++) {\n const basketRow = new BasketRow();\n\n if (startDate) {\n basketRow.setStartDate(startDate);\n }\n\n if (endDate) {\n basketRow.setEndDate(endDate);\n }\n\n if (promoCode) {\n basketRow.setPromoCode(promoCode);\n }\n\n if (promoOnly) {\n basketRow.setPromoOnly(promoOnly);\n }\n\n if (adults) {\n basketRow.setAdults(adults);\n }\n\n if (children) {\n basketRow.setChildren(children);\n }\n\n basketContext.addBasketRow(basketRow, false, i !== 0);\n\n if (i === 0) {\n firstBasketRow = basketRow;\n }\n }\n\n if (firstBasketRow?.getStartDate() && firstBasketRow.getEndDate() && hotel) {\n setInitialStep(getStepRoom());\n }\n } else {\n const initialSession = beContext.engine.getInitialSession();\n if (initialSession) {\n setInitialStep(StepManager.getStepFromName(initialSession.step) ?? StepManager.getFirstStep());\n }\n }\n\n setUrlFlagsParsed(true);\n }, []);\n\n /**\n * Engine Ready useEffect, used to deffer loading the UI until everything engine wise is set up properly\n */\n useEffect(() => {\n if (!engineReady) {\n if (ccx.hotels.length > 0 && urlFlagsParsed) {\n setEngineReady(true);\n }\n }\n }, [ccx.hotels, urlFlagsParsed]);\n\n useEffect(() => {\n if (engineReady) {\n if (isInStepRoot && initialStep) {\n // We want to respect the browsers pathname, and only redirect to a defined step if\n // the pathname isn't set, or matches an unknown page.\n\n // Is the current location in the path? i.e does the user want to be somewhere specific\n let pathInLoadedSteps = false;\n for (const step of StepManager.getSteps()) {\n // Using match instead of equals as some clients have skipped the trailing slash\n // We also want to make sure to only match the start of the path, in case step contains nested paths.\n if (location.pathname.match(new RegExp(`${step.getStepUrl()}.+`, 'ig'))) {\n pathInLoadedSteps = true;\n break;\n }\n }\n\n // We're in /step/ but on a not recognized one.\n if (!pathInLoadedSteps) {\n historyConsistentPush(initialStep.getStepUrl());\n }\n }\n }\n }, [engineReady]);\n\n const workingContext: FullPageEngineContextType = { urlParameters, currentStep, setCurrentStep };\n\n const renderRouteHandler = () => {\n return <Redirect to={StepManager.getFirstStep().getStepUrl()} />;\n };\n\n return (\n <FullPageEngineContext.Provider value={workingContext}>\n <AuthenticationContextProvider>\n <ModalContextWrapper>\n <ScrollToTop />\n <Route exact path=\"/\" render={renderRouteHandler} />\n <header className=\"engine-header\">\n <Header />\n </header>\n {engineReady && (\n <>\n <div className=\"engine-page\">\n <React.Suspense fallback={<HotelInfoPlaceholder />}>\n <Route exact path={ROUTES.HOTEL_INFO} component={HotelInfo} />\n </React.Suspense>\n <React.Suspense fallback={<div>Loading...</div>}>\n <Route\n exact\n path={`/:${QUERY_PARAM_NAME}(${Object.values(EFindReservationPath)\n .filter((path) => MemberPortalFeature.isActive() || path === EFindReservationPath.FindReservation)\n .join('|')})`}\n component={FindReservation}\n />\n <Route path=\"/find-reservation/:ref/:email\" component={FindReservationResults} />\n </React.Suspense>\n\n <PrivateRoute path=\"/account\">\n {MemberPortalFeature.isActive() && (\n <React.Suspense\n fallback={\n <div>\n <LargeLoader />\n </div>\n }\n >\n <AccountRouter />\n </React.Suspense>\n )}\n </PrivateRoute>\n </div>\n <div className=\"engine-body\">\n <AvailableUpgradesModal />\n {StepManager.getSteps().map((step: Step) => (\n <StepRoute key={step.getName()} step={step} />\n ))}\n <Route path=\"*\" component={PageColorComponent} />\n </div>\n </>\n )}\n <RoomstayMark />\n </ModalContextWrapper>\n </AuthenticationContextProvider>\n </FullPageEngineContext.Provider>\n );\n}\n"]}
@@ -72,6 +72,7 @@ export { default as StepRoom } from './pages/steps/StepRoom/StepRoom';
72
72
  export { default as StepThanks } from './pages/steps/StepThanks/StepThanks';
73
73
  export * from './translations/Translation';
74
74
  export { default as StepManager } from './util/StepManager';
75
+ export type { default as ColorProfile } from './models/Client/Hotel/ColorProfile';
75
76
  export * from './util/Color';
76
77
  export * from './util/Debounce';
77
78
  export * from './events/index';
package/dist/src/index.js CHANGED
@@ -151,7 +151,6 @@ Object.defineProperty(exports, "StepThanks", { enumerable: true, get: function (
151
151
  __exportStar(require("./translations/Translation"), exports);
152
152
  var StepManager_2 = require("./util/StepManager");
153
153
  Object.defineProperty(exports, "StepManager", { enumerable: true, get: function () { return __importDefault(StepManager_2).default; } });
154
- // Util
155
154
  __exportStar(require("./util/Color"), exports);
156
155
  __exportStar(require("./util/Debounce"), exports);
157
156
  // Hooks
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: Look into resolving this.\nimport ReactRaw from 'react';\n\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepDate from '@/pages/steps/StepDate/StepDate';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepThanks from '@/pages/steps/StepThanks/StepThanks';\nimport StepManager from '@/util/StepManager';\n\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport { default as AutoAutoHeight } from '@/animations/AutoAutoHeight';\nexport * from '@/components/generic/Alert';\nexport { default as Alert } from '@/components/generic/Alert';\nexport { default as BEButton } from '@/components/generic/BEButton';\nexport { default as Checkbox } from '@/components/generic/Checkbox/Checkbox';\nexport { default as Headline } from '@/components/generic/Headline';\nexport { default as Icon } from '@/components/generic/Icon/Icon';\nexport * from '@/components/generic/Icon/Icon';\nexport { default as InputGroup } from '@/components/generic/InputGroup/InputGroup';\nexport { default as LineBreak } from '@/components/generic/LineBreak';\nexport { default as RadioFields } from '@/components/generic/radio/RadioFields';\nexport * from '@/components/generic/Select/index';\nexport * from '@/components/generic/Text';\nexport { default as TextArea } from '@/components/generic/TextArea';\nexport { default as TextBox } from '@/components/generic/TextBox';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport { BE_NO_ROOMS_FOUND_BLOCK } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from '@/components/steps/room/NoRoomsFoundBlock';\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/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';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from '@/providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from '@/providers/feature/DatePickerTypeFeature';\nexport { default as E164PhoneNumberFieldFeature } from '@/providers/feature/E164PhoneNumberFieldFeature';\nexport { default as FeaturedPromoFeature } from '@/providers/feature/FeaturedPromoFeature';\nexport { default as FullPageEngineSmallSpacingFeature } from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as RoomUpsellFeature } from '@/providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport { default as SessionProvider } from '@/providers/SessionProvider';\nexport { default as DataLayer } from '@/util/DataLayer';\nexport * from '@/util/DataLayer';\nexport * from '@/util/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 * 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 * from '@/util/Color';\nexport * from '@/util/Debounce';\n\n// Hooks\n\nexport * from '@/events/index';\nexport * from '@/hooks/CurrentHotelHook';\nexport * from '@/hooks/EventHook';\n\n/** @deprecated use `roomstay.events` instead */\nexport { default as RoomstayEventManager } from '@/events/RoomstayEventManager';\n\nexport const events = {\n on: RoomstayEventManager.addEvent,\n raise: RoomstayEventManager.raise,\n};\n\ndeclare const RS_VERSION: string;\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: Look into resolving this.\nimport ReactRaw from 'react';\n\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepDate from '@/pages/steps/StepDate/StepDate';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepThanks from '@/pages/steps/StepThanks/StepThanks';\nimport StepManager from '@/util/StepManager';\n\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport { default as AutoAutoHeight } from '@/animations/AutoAutoHeight';\nexport * from '@/components/generic/Alert';\nexport { default as Alert } from '@/components/generic/Alert';\nexport { default as BEButton } from '@/components/generic/BEButton';\nexport { default as Checkbox } from '@/components/generic/Checkbox/Checkbox';\nexport { default as Headline } from '@/components/generic/Headline';\nexport { default as Icon } from '@/components/generic/Icon/Icon';\nexport * from '@/components/generic/Icon/Icon';\nexport { default as InputGroup } from '@/components/generic/InputGroup/InputGroup';\nexport { default as LineBreak } from '@/components/generic/LineBreak';\nexport { default as RadioFields } from '@/components/generic/radio/RadioFields';\nexport * from '@/components/generic/Select/index';\nexport * from '@/components/generic/Text';\nexport { default as TextArea } from '@/components/generic/TextArea';\nexport { default as TextBox } from '@/components/generic/TextBox';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport { BE_NO_ROOMS_FOUND_BLOCK } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from '@/components/steps/room/NoRoomsFoundBlock';\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/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';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from '@/providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from '@/providers/feature/DatePickerTypeFeature';\nexport { default as E164PhoneNumberFieldFeature } from '@/providers/feature/E164PhoneNumberFieldFeature';\nexport { default as FeaturedPromoFeature } from '@/providers/feature/FeaturedPromoFeature';\nexport { default as FullPageEngineSmallSpacingFeature } from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as RoomUpsellFeature } from '@/providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport { default as SessionProvider } from '@/providers/SessionProvider';\nexport { default as DataLayer } from '@/util/DataLayer';\nexport * from '@/util/DataLayer';\nexport * from '@/util/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 * from '@/models/Client/Hotel/Company';\nexport * from '@/models/Client/Hotel/DistanceUnitType.types';\nexport * from '@/models/Client/Hotel/Hotel';\nexport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nexport * from '@/models/Client/Hotel/HotelPerk';\nexport * from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\n// Steps\nexport { default as StepAddon } from '@/pages/steps/StepAddon/StepAddon';\nexport { default as StepConfirmation } from '@/pages/steps/StepConfirmation/StepConfirmation';\nexport { default as StepDate } from '@/pages/steps/StepDate/StepDate';\nexport { default as StepGroupedRoom } from '@/pages/steps/StepGroupedRoom/StepGroupedRoom';\nexport { default as StepHotel } from '@/pages/steps/StepHotel/StepHotel';\nexport { default as StepRoom } from '@/pages/steps/StepRoom/StepRoom';\nexport { default as StepThanks } from '@/pages/steps/StepThanks/StepThanks';\nexport * from '@/translations/Translation';\nexport { default as StepManager } from '@/util/StepManager';\n\n// Util\n\nexport type { default as ColorProfile } from '@/models/Client/Hotel/ColorProfile';\nexport * from '@/util/Color';\nexport * from '@/util/Debounce';\n\n// Hooks\n\nexport * from '@/events/index';\nexport * from '@/hooks/CurrentHotelHook';\nexport * from '@/hooks/EventHook';\n\n/** @deprecated use `roomstay.events` instead */\nexport { default as RoomstayEventManager } from '@/events/RoomstayEventManager';\n\nexport const events = {\n on: RoomstayEventManager.addEvent,\n raise: RoomstayEventManager.raise,\n};\n\ndeclare const RS_VERSION: string;\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}