@roomstay/frontend 2.6.69 → 2.6.71

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.
Files changed (110) hide show
  1. package/dist/279.bundle.js +1 -1
  2. package/dist/288.bundle.js +1 -1
  3. package/dist/370.bundle.js +1 -1
  4. package/dist/430.bundle.js +1 -0
  5. package/dist/439.bundle.js +1 -0
  6. package/dist/537.bundle.js +1 -1
  7. package/dist/659.bundle.js +1 -0
  8. package/dist/903.bundle.js +1 -1
  9. package/dist/main.bundle.js +1 -1
  10. package/dist/src/animations/AutoAutoHeight.d.ts +1 -0
  11. package/dist/src/animations/AutoAutoHeight.js +5 -3
  12. package/dist/src/animations/AutoAutoHeight.js.map +1 -1
  13. package/dist/src/api/AvailabilityAPI.js +3 -6
  14. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  15. package/dist/src/api/HotelAPI.d.ts +1 -1
  16. package/dist/src/api/HotelAPI.js +1 -1
  17. package/dist/src/api/HotelAPI.js.map +1 -1
  18. package/dist/src/api/ReservationAPI.d.ts +5 -0
  19. package/dist/src/api/ReservationAPI.js +31 -7
  20. package/dist/src/api/ReservationAPI.js.map +1 -1
  21. package/dist/src/components/User/Forms/SignUpForm.js +1 -1
  22. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  23. package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.d.ts +14 -0
  24. package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.js +49 -0
  25. package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.js.map +1 -0
  26. package/dist/src/components/generic/date/DatePicker.js +6 -5
  27. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  28. package/dist/src/components/navigation/Header.js +1 -1
  29. package/dist/src/components/navigation/Header.js.map +1 -1
  30. package/dist/src/components/reservation/ReservationItem.js +15 -20
  31. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  32. package/dist/src/components/steps/confirmation/MastercardPaymentMethod.d.ts +27 -0
  33. package/dist/src/components/steps/confirmation/MastercardPaymentMethod.js +75 -0
  34. package/dist/src/components/steps/confirmation/MastercardPaymentMethod.js.map +1 -0
  35. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +4 -15
  36. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
  37. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  38. package/dist/src/components/steps/room/RoomList.js +17 -2
  39. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  40. package/dist/src/components/steps/room/StepRoomHotelDetails.js +4 -15
  41. package/dist/src/components/steps/room/StepRoomHotelDetails.js.map +1 -1
  42. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js +19 -2
  43. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js.map +1 -1
  44. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js +6 -2
  45. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js.map +1 -1
  46. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +6 -6
  47. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  48. package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.d.ts +5 -0
  49. package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.js +83 -0
  50. package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.js.map +1 -0
  51. package/dist/src/components/summary/BEMobileSummaryModal.js +4 -15
  52. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  53. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -0
  54. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  55. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +7 -0
  56. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  57. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +38 -20
  58. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  59. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +14 -4
  60. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  61. package/dist/src/contexts/HotelOverridesContext.js +8 -0
  62. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  63. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +12 -9
  64. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
  65. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +2 -3
  66. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  67. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.d.ts +17 -4
  68. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js +6 -0
  69. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js.map +1 -1
  70. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js +12 -6
  71. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js.map +1 -1
  72. package/dist/src/events/index.d.ts +1 -1
  73. package/dist/src/events/index.js +1 -1
  74. package/dist/src/events/index.js.map +1 -1
  75. package/dist/src/events/state/SelectedHotelChangeEvent.js.map +1 -1
  76. package/dist/src/handlers/payment/MastercardPaymentHandler.d.ts +2 -0
  77. package/dist/src/handlers/payment/MastercardPaymentHandler.js +41 -0
  78. package/dist/src/handlers/payment/MastercardPaymentHandler.js.map +1 -0
  79. package/dist/src/handlers/payment/PaymentHandler.d.ts +4 -0
  80. package/dist/src/handlers/payment/PaymentHandler.js.map +1 -1
  81. package/dist/src/hooks/useCalendarNightStay.d.ts +2 -2
  82. package/dist/src/hooks/useCalendarNightStay.js +5 -4
  83. package/dist/src/hooks/useCalendarNightStay.js.map +1 -1
  84. package/dist/src/models/Api/HotelDTO.d.ts +3 -1
  85. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  86. package/dist/src/models/Api/HotelOverrideDTO.d.ts +6 -0
  87. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  88. package/dist/src/models/Api/ReservationsDTO.d.ts +2 -25
  89. package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
  90. package/dist/src/models/Client/Hotel/Company.d.ts +2 -0
  91. package/dist/src/models/Client/Hotel/Company.js.map +1 -1
  92. package/dist/src/models/Client/Hotel/Hotel.d.ts +1 -0
  93. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  94. package/dist/src/models/Room/Room.d.ts +1 -0
  95. package/dist/src/models/Room/Room.js +3 -0
  96. package/dist/src/models/Room/Room.js.map +1 -1
  97. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +6 -15
  98. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  99. package/dist/src/providers/FilterProvider.js +1 -4
  100. package/dist/src/providers/FilterProvider.js.map +1 -1
  101. package/dist/src/translations/Translation.d.ts +5 -0
  102. package/dist/src/translations/Translation.js +5 -0
  103. package/dist/src/translations/Translation.js.map +1 -1
  104. package/dist/src/translations/languages/en-gb.js +5 -0
  105. package/dist/src/translations/languages/en-gb.js.map +1 -1
  106. package/dist/test.bundle.js +1 -1
  107. package/dist/vendors.bundle.js +1 -1
  108. package/package.json +2 -2
  109. package/dist/839.bundle.js +0 -1
  110. package/dist/950.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationContextProvider.js","sourceRoot":"/","sources":["src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CognitoUser } from '@aws-amplify/auth';\nimport { ClientMetaData } from '@aws-amplify/auth/lib-esm/types';\nimport {\n AuthenticationContext,\n CognitoLoginState,\n CompanyContext,\n ExtraClientMetadataParams,\n IAuthenticationContext,\n IPendingCredentials,\n RoomstayMemberContextProvider,\n} from '@frontend/contexts';\nimport base64 from 'base-64';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport { getAuth } from '@/util/AsyncAuth';\n\nconst useAuthenticationContext = (): IAuthenticationContext => {\n const { companyShort, selectedHotelID, colors, logoLink = '' } = useContext(CompanyContext);\n\n const clientMetadata = useMemo(\n () => ({\n hotelId: selectedHotelID,\n companyShort: companyShort,\n }),\n [selectedHotelID, companyShort]\n );\n\n const [pendingCredentials, setPendingCredentials] = useState<IPendingCredentials | null>(null);\n\n const [finishedInitializingContext, finishedInitializingContextSet] = useState<boolean>(false);\n const [isFetching, isFetchingSet] = useState<boolean>(true);\n const loading = useMemo(() => {\n return !finishedInitializingContext || isFetching;\n }, [finishedInitializingContext, isFetching]);\n\n const [cognitoUser, cognitoUserSet] = useState<CognitoUser | null>(null);\n const [cognitoLoginState, cognitoLoginStateSet] = useState<CognitoLoginState>(CognitoLoginState.Login);\n\n const [error, errorSet] = useState<Error>();\n\n /**\n * Set up the context, and try and immediately log in the user in the event that they're here\n */\n const initialiseContext = useCallback(async () => {\n const Auth = await getAuth();\n await Auth.currentAuthenticatedUser()\n .then((user) => {\n if (user) {\n const [userCompanyShort] = base64.decode(user.username).split('-');\n\n if (userCompanyShort === companyShort) {\n cognitoUserSet(user);\n cognitoLoginStateSet(CognitoLoginState.Success);\n }\n }\n })\n .catch((e) => {\n if (e !== 'The user is not authenticated') {\n errorSet(e);\n }\n });\n\n finishedInitializingContextSet(true);\n isFetchingSet(false);\n }, []);\n\n useEffect(() => {\n if (MemberPortalFeature.isActive()) {\n initialiseContext();\n }\n }, [initialiseContext, MemberPortalFeature.isActive()]);\n\n /**\n * Wrapper for our async calls to handle the `isFetching` and `error` state\n */\n const asyncWrapper: (func: (...params: any[]) => Promise<CognitoLoginState | undefined>, ...parameters: any[]) => Promise<CognitoLoginState | undefined> = async (\n func: (...params: any[]) => Promise<CognitoLoginState | undefined>,\n ...parameters: any[]\n ) => {\n isFetchingSet(true);\n errorSet(undefined);\n\n try {\n return await func(...parameters);\n } catch (e: any) {\n errorSet(e);\n } finally {\n isFetchingSet(false);\n }\n };\n\n const transformUsername = useCallback(\n (username: string) => {\n return base64.encode(`${companyShort}-${username.toLowerCase()}`);\n },\n [companyShort]\n );\n\n const login = async (email: string, password: string, extraClientMetadataParams?: ExtraClientMetadataParams) => {\n const Auth = await getAuth();\n let cState;\n\n const username = transformUsername(email);\n try {\n const cu = await Auth.signIn({\n username,\n password,\n });\n\n if (cu.challengeName === 'SMS_MFA' || cu.challengeName === 'SOFTWARE_TOKEN_MFA') {\n // TODO: Handle 2FA\n cState = CognitoLoginState.VerifyMFA;\n } else if (cu.challengeName === 'NEW_PASSWORD_REQUIRED') {\n // TODO: Change Password\n cState = CognitoLoginState.RequiresNewPassword;\n } else if (cu.challengeName === 'MFA_SETUP') {\n // TODO: SetUp MFA\n cState = CognitoLoginState.SetupMFA;\n } else {\n // Success???\n cognitoUserSet(cu);\n cState = CognitoLoginState.Success;\n }\n } catch (e: any) {\n if (e.code === 'PasswordResetRequiredException') {\n cState = CognitoLoginState.RequiresPasswordReset;\n } else if (e.code === 'UserNotConfirmedException') {\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.resendSignUp(username, { ...clientMetadata, ...(additionalMetadata || {}) });\n cState = CognitoLoginState.RequiresConfirmation;\n } else {\n throw e;\n }\n }\n\n if (cState) {\n cognitoLoginStateSet(cState);\n\n return cState;\n }\n };\n\n const register = async (email: string, password: string, additionalAttributes?: any, extraClientMetadataParams?: ExtraClientMetadataParams) => {\n const Auth = await getAuth();\n let cState: CognitoLoginState;\n\n try {\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n const signUpResult = await Auth.signUp({\n username: transformUsername(email),\n password,\n attributes: {\n email,\n ...additionalAttributes,\n },\n clientMetadata: { ...clientMetadata, ...(additionalMetadata || {}) },\n });\n\n if (!signUpResult.userConfirmed) {\n cState = CognitoLoginState.RequiresConfirmation;\n } else {\n cognitoUserSet(signUpResult.user);\n cState = CognitoLoginState.Success;\n }\n } catch (e: any) {\n switch (e.code) {\n case 'UsernameExistsException': {\n cState = CognitoLoginState.UsernameExists;\n break;\n }\n default: {\n throw e;\n }\n }\n }\n\n if (cState) {\n cognitoLoginStateSet(cState);\n return cState;\n }\n };\n\n const confirmAccount = async (code: string, extraClientMetadataParams?: ExtraClientMetadataParams) => {\n if (!pendingCredentials?.email) {\n throw new Error('No pending credentials');\n }\n const Auth = await getAuth();\n const username = transformUsername(pendingCredentials.email);\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.confirmSignUp(username, code, {\n clientMetadata: additionalMetadata,\n });\n if (pendingCredentials?.password) {\n try {\n return await login(pendingCredentials.email, pendingCredentials.password, { hotel });\n } catch (e: any) {\n if (e.code === 'NotAuthorizedException') {\n cognitoLoginStateSet(CognitoLoginState.Login);\n return CognitoLoginState.Login;\n } else {\n throw e;\n }\n }\n } else {\n cognitoLoginStateSet(CognitoLoginState.Login);\n return CognitoLoginState.Login;\n }\n };\n\n const forgotPassword = async (email: string, extraClientMetadataParams?: ExtraClientMetadataParams): Promise<CognitoLoginState> => {\n const Auth = await getAuth();\n const username = transformUsername(email);\n\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n\n try {\n await Auth.forgotPassword(username, { ...clientMetadata, ...(additionalMetadata || {}) });\n } catch (e: any) {\n switch (e.code) {\n case 'UserNotFoundException':\n cognitoLoginStateSet(CognitoLoginState.UserNotFound);\n return CognitoLoginState.UserNotFound;\n case 'InvalidParameterException':\n cognitoLoginStateSet(CognitoLoginState.RequiresConfirmation);\n await Auth.resendSignUp(username, { ...clientMetadata, ...(additionalMetadata || {}) });\n return CognitoLoginState.RequiresConfirmation;\n default:\n throw e;\n }\n }\n cognitoLoginStateSet(CognitoLoginState.ForgotPassword);\n return CognitoLoginState.ForgotPassword;\n };\n\n const resetPassword = async (email: string, code: string, password: string, extraClientMetadataParams?: ExtraClientMetadataParams): Promise<CognitoLoginState> => {\n const Auth = await getAuth();\n const username = transformUsername(email);\n try {\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.forgotPasswordSubmit(username, code, password, additionalMetadata);\n await login(email, password);\n } catch (e: any) {\n switch (e.code) {\n case 'CodeMismatchException':\n cognitoLoginStateSet(CognitoLoginState.CodeMismatch);\n return CognitoLoginState.CodeMismatch;\n default:\n throw e;\n }\n }\n cognitoLoginStateSet(CognitoLoginState.Success);\n return CognitoLoginState.Success;\n };\n\n const changePassword = async (currentPassword: string, newPassword: string, extraClientMetadataParams?: ExtraClientMetadataParams): Promise<CognitoLoginState> => {\n try {\n const Auth = await getAuth();\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.changePassword(cognitoUser, currentPassword, newPassword, additionalMetadata);\n } catch (e: any) {\n switch (e.code) {\n case CognitoLoginState.LimitExceededException:\n return CognitoLoginState.LimitExceededException;\n case CognitoLoginState.NotAuthorizedException:\n return CognitoLoginState.NotAuthorizedException;\n default:\n throw e;\n }\n }\n return CognitoLoginState.Success;\n };\n\n const logout = async () => {\n const Auth = await getAuth();\n await Auth.signOut();\n cognitoUserSet(null);\n cognitoLoginStateSet(CognitoLoginState.Login);\n\n return CognitoLoginState.Login;\n };\n\n const reset = () => {\n errorSet(undefined);\n };\n\n const getExtraClientMetadata = ({ hotel }: ExtraClientMetadataParams): ClientMetaData => {\n const { colors: hoteColor = colors, email, logo } = hotel || {};\n\n return {\n companyShort,\n hotelName: hotel?.name || '',\n hotelUrl: hotel?.hotelUrl || '',\n colorAccent: hoteColor.accent,\n colorAccent2: hoteColor.accent2,\n colorAccent3: hoteColor.accent3,\n hotelLogo: typeof logo === 'string' ? logo : logoLink || '',\n hotelEmail: email || '',\n hotelPhone: hotel?.phone || '',\n sourceUrlStr: window.location.href,\n instagramUrl: hotel?.instagramUrl || '',\n facebookUrl: hotel?.facebookUrl || '',\n linkedinUrl: hotel?.linkedinUrl || '',\n hotelFrontendID: selectedHotelID || '',\n };\n };\n\n return {\n loading,\n\n cognitoUser: cognitoUser as CognitoUser,\n cognitoLoginState,\n\n error,\n\n login: (...args) => asyncWrapper(login, ...args),\n register: (...args) => asyncWrapper(register, ...args),\n confirmAccount: (...args) => asyncWrapper(confirmAccount, ...args),\n forgotPassword: (...args) => asyncWrapper(forgotPassword, ...args),\n resetPassword: (...args) => asyncWrapper(resetPassword, ...args),\n changePassword: (...args) => asyncWrapper(changePassword, ...args),\n logout: (...args) => asyncWrapper(logout, ...args),\n reset,\n\n pendingCredentials,\n setPendingCredentials,\n };\n};\n\nexport const AuthenticationContextProvider: React.FC = ({ children }) => {\n const value = useAuthenticationContext();\n return (\n <AuthenticationContext.Provider value={value}>\n <RoomstayMemberContextProvider>{children}</RoomstayMemberContextProvider>\n </AuthenticationContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"AuthenticationContextProvider.js","sourceRoot":"/","sources":["src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CognitoUser } from '@aws-amplify/auth';\nimport { ClientMetaData } from '@aws-amplify/auth/lib-esm/types';\nimport {\n AuthenticationContext,\n CognitoLoginState,\n CompanyContext,\n ExtraClientMetadataParams,\n IAuthenticationContext,\n IPendingCredentials,\n RoomstayMemberContextProvider,\n} from '@frontend/contexts';\nimport base64 from 'base-64';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\n\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport { getAuth } from '@/util/AsyncAuth';\n\nconst useAuthenticationContext = (): IAuthenticationContext => {\n const { companyId, companyShort, selectedHotelID, colors, logoLink = '', name: companyName, logo: companyLogo } = useContext(CompanyContext);\n\n const clientMetadata = useMemo(\n () => ({\n hotelId: selectedHotelID || '0',\n companyShort: companyShort,\n }),\n [selectedHotelID, companyShort]\n );\n\n const [pendingCredentials, setPendingCredentials] = useState<IPendingCredentials | null>(null);\n\n const [finishedInitializingContext, finishedInitializingContextSet] = useState<boolean>(false);\n const [isFetching, isFetchingSet] = useState<boolean>(true);\n const loading = useMemo(() => {\n return !finishedInitializingContext || isFetching;\n }, [finishedInitializingContext, isFetching]);\n\n const [cognitoUser, cognitoUserSet] = useState<CognitoUser | null>(null);\n const [cognitoLoginState, cognitoLoginStateSet] = useState<CognitoLoginState>(CognitoLoginState.Login);\n\n const [error, errorSet] = useState<Error>();\n\n /**\n * Set up the context, and try and immediately log in the user in the event that they're here\n */\n const initialiseContext = useCallback(async () => {\n const Auth = await getAuth();\n await Auth.currentAuthenticatedUser()\n .then((user) => {\n if (user) {\n const [userCompanyShort] = base64.decode(user.username).split('-');\n\n if (userCompanyShort === companyShort) {\n cognitoUserSet(user);\n cognitoLoginStateSet(CognitoLoginState.Success);\n }\n }\n })\n .catch((e) => {\n if (e !== 'The user is not authenticated') {\n errorSet(e);\n }\n });\n\n finishedInitializingContextSet(true);\n isFetchingSet(false);\n }, []);\n\n useEffect(() => {\n if (MemberPortalFeature.isActive()) {\n initialiseContext();\n }\n }, [initialiseContext, MemberPortalFeature.isActive()]);\n\n /**\n * Wrapper for our async calls to handle the `isFetching` and `error` state\n */\n const asyncWrapper: (func: (...params: any[]) => Promise<CognitoLoginState | undefined>, ...parameters: any[]) => Promise<CognitoLoginState | undefined> = async (\n func: (...params: any[]) => Promise<CognitoLoginState | undefined>,\n ...parameters: any[]\n ) => {\n isFetchingSet(true);\n errorSet(undefined);\n\n try {\n return await func(...parameters);\n } catch (e: any) {\n errorSet(e);\n } finally {\n isFetchingSet(false);\n }\n };\n\n const transformUsername = useCallback(\n (username: string) => {\n return base64.encode(`${companyShort}-${username.toLowerCase()}`);\n },\n [companyShort]\n );\n\n const login = async (email: string, password: string, extraClientMetadataParams?: ExtraClientMetadataParams) => {\n const Auth = await getAuth();\n let cState;\n\n const username = transformUsername(email);\n try {\n const cu = await Auth.signIn({\n username,\n password,\n });\n\n if (cu.challengeName === 'SMS_MFA' || cu.challengeName === 'SOFTWARE_TOKEN_MFA') {\n // TODO: Handle 2FA\n cState = CognitoLoginState.VerifyMFA;\n } else if (cu.challengeName === 'NEW_PASSWORD_REQUIRED') {\n // TODO: Change Password\n cState = CognitoLoginState.RequiresNewPassword;\n } else if (cu.challengeName === 'MFA_SETUP') {\n // TODO: SetUp MFA\n cState = CognitoLoginState.SetupMFA;\n } else {\n // Success???\n cognitoUserSet(cu);\n cState = CognitoLoginState.Success;\n }\n } catch (e: any) {\n if (e.code === 'PasswordResetRequiredException') {\n cState = CognitoLoginState.RequiresPasswordReset;\n } else if (e.code === 'UserNotConfirmedException') {\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.resendSignUp(username, { ...clientMetadata, ...(additionalMetadata || {}) });\n cState = CognitoLoginState.RequiresConfirmation;\n } else {\n throw e;\n }\n }\n\n if (cState) {\n cognitoLoginStateSet(cState);\n\n return cState;\n }\n };\n\n const register = async (email: string, password: string, additionalAttributes?: any, extraClientMetadataParams?: ExtraClientMetadataParams) => {\n const Auth = await getAuth();\n let cState: CognitoLoginState;\n\n try {\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n const signUpResult = await Auth.signUp({\n username: transformUsername(email),\n password,\n attributes: {\n email,\n ...additionalAttributes,\n },\n clientMetadata: { ...clientMetadata, ...(additionalMetadata || {}) },\n });\n\n if (!signUpResult.userConfirmed) {\n cState = CognitoLoginState.RequiresConfirmation;\n } else {\n cognitoUserSet(signUpResult.user);\n cState = CognitoLoginState.Success;\n }\n } catch (e: any) {\n switch (e.code) {\n case 'UsernameExistsException': {\n cState = CognitoLoginState.UsernameExists;\n break;\n }\n default: {\n throw e;\n }\n }\n }\n\n if (cState) {\n cognitoLoginStateSet(cState);\n return cState;\n }\n };\n\n const confirmAccount = async (code: string, extraClientMetadataParams?: ExtraClientMetadataParams) => {\n if (!pendingCredentials?.email) {\n throw new Error('No pending credentials');\n }\n const Auth = await getAuth();\n const username = transformUsername(pendingCredentials.email);\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.confirmSignUp(username, code, {\n clientMetadata: additionalMetadata,\n });\n if (pendingCredentials?.password) {\n try {\n return await login(pendingCredentials.email, pendingCredentials.password, { hotel });\n } catch (e: any) {\n if (e.code === 'NotAuthorizedException') {\n cognitoLoginStateSet(CognitoLoginState.Login);\n return CognitoLoginState.Login;\n } else {\n throw e;\n }\n }\n } else {\n cognitoLoginStateSet(CognitoLoginState.Login);\n return CognitoLoginState.Login;\n }\n };\n\n const forgotPassword = async (email: string, extraClientMetadataParams?: ExtraClientMetadataParams): Promise<CognitoLoginState> => {\n const Auth = await getAuth();\n const username = transformUsername(email);\n\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n\n try {\n await Auth.forgotPassword(username, { ...clientMetadata, ...(additionalMetadata || {}) });\n } catch (e: any) {\n switch (e.code) {\n case 'UserNotFoundException':\n cognitoLoginStateSet(CognitoLoginState.UserNotFound);\n return CognitoLoginState.UserNotFound;\n case 'InvalidParameterException':\n cognitoLoginStateSet(CognitoLoginState.RequiresConfirmation);\n await Auth.resendSignUp(username, { ...clientMetadata, ...(additionalMetadata || {}) });\n return CognitoLoginState.RequiresConfirmation;\n default:\n throw e;\n }\n }\n cognitoLoginStateSet(CognitoLoginState.ForgotPassword);\n return CognitoLoginState.ForgotPassword;\n };\n\n const resetPassword = async (email: string, code: string, password: string, extraClientMetadataParams?: ExtraClientMetadataParams): Promise<CognitoLoginState> => {\n const Auth = await getAuth();\n const username = transformUsername(email);\n try {\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.forgotPasswordSubmit(username, code, password, additionalMetadata);\n await login(email, password);\n } catch (e: any) {\n switch (e.code) {\n case 'CodeMismatchException':\n cognitoLoginStateSet(CognitoLoginState.CodeMismatch);\n return CognitoLoginState.CodeMismatch;\n default:\n throw e;\n }\n }\n cognitoLoginStateSet(CognitoLoginState.Success);\n return CognitoLoginState.Success;\n };\n\n const changePassword = async (currentPassword: string, newPassword: string, extraClientMetadataParams?: ExtraClientMetadataParams): Promise<CognitoLoginState> => {\n try {\n const Auth = await getAuth();\n const { hotel } = extraClientMetadataParams || {};\n const additionalMetadata = getExtraClientMetadata({ hotel });\n await Auth.changePassword(cognitoUser, currentPassword, newPassword, additionalMetadata);\n } catch (e: any) {\n switch (e.code) {\n case CognitoLoginState.LimitExceededException:\n return CognitoLoginState.LimitExceededException;\n case CognitoLoginState.NotAuthorizedException:\n return CognitoLoginState.NotAuthorizedException;\n default:\n throw e;\n }\n }\n return CognitoLoginState.Success;\n };\n\n const logout = async () => {\n const Auth = await getAuth();\n await Auth.signOut();\n cognitoUserSet(null);\n cognitoLoginStateSet(CognitoLoginState.Login);\n\n return CognitoLoginState.Login;\n };\n\n const reset = () => {\n errorSet(undefined);\n };\n\n const getExtraClientMetadata = ({ hotel }: ExtraClientMetadataParams): ClientMetaData => {\n const { colors: hotelColors = colors, email, logo } = hotel || {};\n\n return {\n companyId: companyId?.toString() || '',\n companyShort,\n hotelName: hotel?.name || companyName || '',\n hotelUrl: hotel?.hotelUrl || logoLink || '',\n colorEmailHeaderBackground: hotelColors.emails?.headerBackground || hotelColors.accent,\n colorAccent: hotelColors.accent,\n colorAccent2: hotelColors.accent2,\n colorAccent3: hotelColors.accent3,\n hotelLogo: typeof logo === 'string' ? logo : companyLogo || '',\n hotelEmail: email || '',\n hotelPhone: hotel?.phone || '',\n sourceUrlStr: window.location.href,\n instagramUrl: hotel?.instagramUrl || '',\n facebookUrl: hotel?.facebookUrl || '',\n linkedinUrl: hotel?.linkedinUrl || '',\n hotelFrontendID: selectedHotelID || '',\n };\n };\n\n return {\n loading,\n\n cognitoUser: cognitoUser as CognitoUser,\n cognitoLoginState,\n\n error,\n\n login: (...args) => asyncWrapper(login, ...args),\n register: (...args) => asyncWrapper(register, ...args),\n confirmAccount: (...args) => asyncWrapper(confirmAccount, ...args),\n forgotPassword: (...args) => asyncWrapper(forgotPassword, ...args),\n resetPassword: (...args) => asyncWrapper(resetPassword, ...args),\n changePassword: (...args) => asyncWrapper(changePassword, ...args),\n logout: (...args) => asyncWrapper(logout, ...args),\n reset,\n\n pendingCredentials,\n setPendingCredentials,\n };\n};\n\nexport const AuthenticationContextProvider: React.FC = ({ children }) => {\n const value = useAuthenticationContext();\n return (\n <AuthenticationContext.Provider value={value}>\n <RoomstayMemberContextProvider>{children}</RoomstayMemberContextProvider>\n </AuthenticationContext.Provider>\n );\n};\n"]}
@@ -224,9 +224,8 @@ function InlineRoomMiniEngineElement(props) {
224
224
  }
225
225
  };
226
226
  if (!(row === null || row === void 0 ? void 0 : row.getArrivalDate()) && !(row === null || row === void 0 ? void 0 : row.getDepartureDate())) {
227
- const today = Date.now();
228
- row === null || row === void 0 ? void 0 : row.setStartDate((0, dayjs_1.default)(today));
229
- row === null || row === void 0 ? void 0 : row.setEndDate((0, dayjs_1.default)(today).add(1, 'day'));
227
+ row === null || row === void 0 ? void 0 : row.setStartDate((0, dayjs_1.default)().add(7, 'day'));
228
+ row === null || row === void 0 ? void 0 : row.setEndDate((0, dayjs_1.default)().add(8, 'day'));
230
229
  }
231
230
  const isCompact = bounds.width < 1000 ? '--compact' : '';
232
231
  const findRoomsOnClick = () => __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContext, CompanyContextWrapper } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport classNames from 'classnames';\nimport { ErrorContextWrapper } from 'contexts/ErrorContext';\nimport { NotificationContextWrapper } from 'contexts/NotificationContext';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { HashRouter } from 'react-router-dom';\nimport useMeasure from 'react-use-measure';\nimport { Translation } from 'translations/Translation';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport { BookingWizardOnBooking } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BookNowPayLaterInfoBlock } from '@/components/generic/BookNowPayLaterInfoBlock';\nimport FloatingDatePicker from '@/components/generic/date/FloatingDatePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport PromoCodeInput from '@/components/generic/PromoCodeInput';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport RatesNotFoundBlock from '@/components/steps/room/RatesNotFoundBlock';\nimport RoomRates from '@/components/steps/room/roomDetails/roomRates/RoomRates';\nimport type { InlineRoomMiniEngine } from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nimport { RoomListSearchEvent } from '@/events/actions/RoomListSearchEvent';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { RoomListSearch } from '@/models/RoomListSearch';\nimport { SearchParameters } from '@/models/SearchParameters';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport StringHelper from '@/util/StringHelper';\n\nimport styles from './InlineRoomMiniEngine.module.scss';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { layout = 'default', policy, priceDescription } = props.engine.getConfig();\n const isCardLayout = layout === 'card';\n\n const { hotel } = useCurrentHotel();\n\n const { memberNumber } = useSignedInMember();\n\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const row = basketContext.currentBasketRows[0];\n const [isLoading, setLoading] = useState(true);\n const [ranFirstLoad, setRanFirstLoad] = useState(false);\n const [rooms, setRooms] = useState<Room[]>([]);\n\n const [isPromoModalOpen, setIsPromoModalOpen] = useState(false);\n\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [promoCode, setPromoCode] = useState(row?.getPromoCode());\n\n const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef<HTMLDivElement | null>(null);\n\n const { raise } = useEvent();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? t(Translation.Step.Date.PromoCodeTooltip.Checking) : t(Translation.Step.Date.PromoCodeTooltip.NoValue);\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Valid);\n } else {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Invalid);\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n // Filters availability results by the provided room code.\n row.setEnableRoomCodeFilter(true);\n row.setRoomCode(props.engine.getRoomCode());\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]);\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row, memberNumber]);\n\n useEffect(() => {\n if (row) {\n findRoomsOnClick();\n }\n }, [row?.getPromoCode()]);\n\n useEffect(() => {\n if (!(rooms && rooms.length > 0)) return;\n\n const room = rooms[0];\n\n let nonPromoRates: RoomRate[] = [];\n const toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n try {\n const search: SearchParameters = {\n checkInTime: row?.getStartDate()?.format('YYYY-M-D'),\n checkOutTime: row?.getEndDate()?.format('YYYY-M-D'),\n numAdults: row?.getAdults(),\n numChildren: row?.getChildren(),\n numRooms: 1,\n promoCode: promoCode,\n roomCode: props.engine.getRoomCode(),\n };\n\n const eventRooms: RoomListSearch[] =\n rooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name: name as string,\n code: code as string,\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, eventRooms);\n raise(event);\n } catch (ex) {\n console.warn(ex);\n }\n\n setStandardRates(nonPromoRates);\n }, [rooms]);\n\n useEffect(() => {\n if (hotel?.colors) {\n // Do this manually as Guide Step manages this for Fullpage.\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel, hotel?.colors]);\n\n const updatePeopleValues = ({ adults, children }: { adults?: number; children?: number; promoCode?: string }) => {\n if (adults && adults !== row.getAdults()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setAdults(adults);\n }\n\n if ((children || children === 0) && children !== row.getChildren()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setChildren(children);\n }\n\n if (!isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n };\n\n const updateDateValues = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n if (startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n basketContext.updateBasketRow(row, false);\n }\n };\n\n if (!row?.getArrivalDate() && !row?.getDepartureDate()) {\n const today = Date.now();\n row?.setStartDate(dayjs(today));\n row?.setEndDate(dayjs(today).add(1, 'day'));\n }\n\n const isCompact = bounds.width < 1000 ? '--compact' : '';\n\n const findRoomsOnClick = async () => {\n if (isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n setLoading(true);\n setRooms(\n (await API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false))?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]\n );\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return t(Translation.Misc.BookNow);\n };\n\n const updateNumberOfAdultsOnChange = (value: string) => {\n updatePeopleValues({ adults: +value });\n };\n const updateNumberOfChildrenOnChange = (value: string) => {\n updatePeopleValues({ children: +value });\n };\n\n const defaultGuestValue: BookingWizardOnBooking['guests'] = {\n adults: row?.getAdults() ?? 1,\n children: row?.getChildren() ?? 0,\n infants: 0,\n room: 1,\n };\n\n const updatePromoCode = (code: string) => {\n DataLayer.instance.sendInteraction('Promo Code updated', InteractionType.FORM_FIELD, InteractionStep.ROOMS);\n\n if (row) {\n row.setPromoCode(code);\n basketContext.updateBasketRow(row);\n\n if (code) {\n setIsPromoModalOpen(false);\n }\n }\n };\n\n const onAddToBasketOverrideHandler = (rate: RoomRate) => {\n row.setRate(rate);\n basketContext.updateBasketRow(row);\n DataLayer.instance.sendRoomRateAddToCart(rate, row.getNumberOfDays(), row.getStartDate(), row.getEndDate(), row.getPreUpsellRoomRate());\n\n const session = props.engine.getSessionProvider();\n session\n .updateSession({\n step: StepConfirmation.getName(), // TODO:\n })\n .then(() => {\n // TODO: Remove this URL coupling\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepConfirmation.getStepUrl()}?session=${session.getCurrentSessionID()}`, '_self');\n });\n };\n const openPromoModalOnClick = () => {\n setIsPromoModalOpen(true);\n };\n const setPromoCodeOnClose = () => {\n setPromoCode(row?.getPromoCode());\n setIsPromoModalOpen(false);\n };\n const cancelPromoPopupOnClick = () => {\n DataLayer.instance.sendInteraction('Cancel Promo Popup', InteractionType.BUTTON, InteractionStep.ROOMS);\n setIsPromoModalOpen(false);\n };\n\n const changePromoCode = (val: any) => {\n updatePromoCode(val);\n };\n\n const maxOccupancy = hotel?.maxOccupancy ?? 1;\n\n const DatePickerSelector = () => {\n const inner = () => {\n if (isCardLayout) {\n return (\n <div className={classNames('u-cursor-pointer', styles['rs-inline-filter-item-dates-inner'])}>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckIn)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {row?.getArrivalDate() ? row.getArrivalDate() : t(Translation.Misc.CheckInPlaceHolder)}\n </Text>\n </div>\n </div>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckOut)}\n </Text>\n <Text className={styles['sub-title']}>{row?.getDepartureDate() ? row.getDepartureDate() : t(Translation.Misc.CheckOutPlaceHolder)}</Text>\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer\">\n <Text color={row?.getArrivalDate() ? Color.Accent : Color.Graphite} className=\"u-mw-75 u-align-center\" bold={!!row?.getArrivalDate()}>\n <span>{row?.getArrivalDate() ? row.getArrivalDate() : 'Arrival Date'}</span>\n </Text>\n <Icon icon={IconType.ArrowRight2} />\n <Text color={row?.getDepartureDate() ? Color.Accent : Color.Graphite} className=\"u-marg-right u-mw-75 u-align-center\" bold={!!row?.getDepartureDate()}>\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n );\n }\n };\n\n return (\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className={classNames('rs-inline-filter-item-dates', {\n 'u-w-100@xl- room-builder-progress--value u-marg-left--none ': !isCardLayout,\n [styles['rs-inline-filter-item-dates']]: isCardLayout,\n })}\n roomCode={props.engine.getRoomCode()}\n >\n <Tooltip title={t(Translation.Step.Date.SelectArrivalAndDepartureDatesByClickingHere)} wrapperClasses=\"u-w-100@xl-\">\n {inner()}\n </Tooltip>\n </FloatingDatePicker>\n );\n };\n\n const GuestSelector = () => {\n if (isCardLayout) {\n const numChildren = row?.getChildren?.() || 0;\n const maxAdults = maxOccupancy - numChildren;\n const maxChildren = maxOccupancy + 1 - (row?.getAdults?.() || 0);\n return (\n <GuestSelectorCustom\n maxAdults={maxAdults}\n maxChildren={maxChildren}\n onChange={(newValue) => {\n updatePeopleValues({\n adults: +newValue.adults,\n children: +newValue.children,\n });\n }}\n disableChild={false}\n showInfants={false}\n disableRoom\n applyButton={false}\n defaultValue={defaultGuestValue}\n promoCodeConfig={{\n promoCode: basketContext.selectedBasketRow?.getPromoCode(),\n setPromoCode,\n onChange: changePromoCode,\n valid: basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new' ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid' : undefined,\n }}\n />\n );\n } else {\n return (\n <>\n <Tooltip title={t(Translation.Step.Date.UpdateAdults)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-adult\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center \">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy - (row?.getChildren() ? row.getChildren() : 0))].map((v: any, value: number) => {\n value += 1;\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Adult, t),\n value: value.toString(),\n };\n })}\n value={row?.getAdults()?.toString()}\n onChange={updateNumberOfAdultsOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n <Tooltip title={t(Translation.Step.Date.UpdateChildren)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-children\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy + 1 - (row?.getAdults() ? row.getAdults() : 0))].map((v: any, value: number) => {\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Child, t),\n value: value.toString(),\n };\n })}\n value={row?.getChildren()?.toString()}\n onChange={updateNumberOfChildrenOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n </>\n );\n }\n };\n return useMemo(\n () => (\n <>\n <div\n className={classNames(`room-builder-progress ${isCompact} rs-inline-container`, {\n [styles['rs-inline-container']]: isCardLayout,\n [styles['rs-inline-container--card-layout']]: isCardLayout,\n })}\n >\n <div\n className={classNames('rs-inline-filter-container', {\n 'u-flex w-100 flex-wrap room-builder-progress--item --current': !isCardLayout,\n [styles['rs-inline-filter-container']]: isCardLayout,\n })}\n ref={ref}\n >\n <div\n className={classNames('rs-inline-filter-inner', {\n 'u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-': !isCardLayout,\n [styles['rs-inline-filter-inner']]: isCardLayout,\n })}\n >\n <DatePickerSelector />\n <GuestSelector />\n\n <Tooltip\n title={promoCodeTooltip}\n wrapperClasses={classNames('u-w-100@xl- rs-inline-filter-item-promo', {\n [styles['rs-inline-filter-item-promo']]: isCardLayout,\n })}\n >\n <div className=\"room-builder-progress--value u-cursor-pointer\" ref={thisElement} onClick={openPromoModalOnClick}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl-\">\n <Text className=\"u-pad-right--light\" type={TextType.Body} color={row?.getPromoCode() ? row?.getPromoCodeColour() : Color.Navy}>\n {row?.getPromoCode() ? row?.getPromoCode() : 'Promo Code'}\n </Text>\n <Icon icon={IconType.Dropdown} color={Color.DarkGrey} />\n </div>\n </div>\n </Tooltip>\n <Overlay open={isPromoModalOpen} container={RoomstayThemeEngine.EngineContainer} followElement={thisElement.current} onClose={setPromoCodeOnClose}>\n <div className=\"u-pad--heavy\">\n <div>\n <PromoCodeInput\n value={basketContext.selectedBasketRow?.getPromoCode()}\n onChange={changePromoCode}\n valid={\n basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new'\n ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid'\n : undefined\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText size=\"small\" onClick={cancelPromoPopupOnClick}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </div>\n </Overlay>\n </div>\n <div\n className={classNames(`u-flex flex-xl-nowrap flex-row rs-inline-filter-button`, {\n 'w-100': isCompact,\n [styles['rs-inline-filter-button']]: isCardLayout,\n })}\n >\n <BEButton filled primary isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n {t(Translation.Misc.CheckRates)}\n </BEButton>\n </div>\n </div>\n <div\n className={classNames('u-border-rounded rs-inline-content', {\n [styles['rs-inline-content']]: isCardLayout,\n })}\n >\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n classNames={classNames('rs-inline-content-list', {\n [styles['rs-inline-content-list']]: isCardLayout,\n })}\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code as string}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n isCardLayout={isCardLayout}\n policy={policy}\n priceDescription={priceDescription}\n />\n ) : (\n <RatesNotFoundBlock />\n )}\n </>\n </AutoAutoHeight>\n ) : (\n <LargeLoader />\n )}\n </div>\n </div>\n </>\n ),\n [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]\n );\n}\n\nexport const renderInlineRoomMiniEngineElement = (container: Element, engine: InlineRoomMiniEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <HashRouter\n future={{\n v7_startTransition: false,\n v7_relativeSplatPath: false,\n }}\n >\n <NotificationContextWrapper>\n <ErrorContextWrapper>\n <CompanyContextWrapper configCompany={engine.getConfig().company}>\n <BasketContextWrapper>\n <InlineRoomMiniEngineElement engine={engine} />\n </BasketContextWrapper>\n </CompanyContextWrapper>\n </ErrorContextWrapper>\n </NotificationContextWrapper>\n </HashRouter>\n </BookingEngineContextWrapper>,\n container\n );\n};\n\nexport const GuestSelectorCustom = ({\n maxAdults,\n maxChildren,\n maxInfants = 10,\n defaultValue,\n onChange,\n disableChild,\n showInfants,\n disableRoom,\n applyButton,\n promoCodeConfig,\n}: {\n maxAdults?: number;\n maxChildren?: number;\n maxInfants?: number;\n defaultValue?: { adults?: number; children?: number; infants?: number; room?: number };\n onChange?: (params: { adults: number; children: number; infants: number; room: number }) => void;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n applyButton?: boolean;\n promoCodeConfig?: {\n promoCode: string;\n setPromoCode: React.Dispatch<React.SetStateAction<string>>;\n onChange: (val: any) => void;\n valid?: boolean;\n };\n}) => {\n const { t } = useTranslation();\n const ref = React.useRef(null);\n const targetRef = useRef(null);\n\n const [adults, setAdults] = useState(defaultValue?.adults ?? 1);\n const [children, setChildren] = useState(defaultValue?.children ?? 0);\n const [infants, setInfants] = useState(defaultValue?.infants ?? 0);\n const [room, setRoom] = useState(defaultValue?.room ?? 1);\n const [open, setOpen] = useState(false);\n\n const onChangeAdults = (newValue: number) => {\n setAdults(newValue);\n onChange?.({ adults: newValue, children: children, infants: infants, room: room });\n };\n const onChangeChildren = (newValue: number) => {\n setChildren(newValue);\n onChange?.({ adults: adults, children: newValue, infants: infants, room: room });\n };\n const onChangeInfants = (newValue: number) => {\n setInfants(newValue);\n onChange?.({ adults: adults, children: children, infants: newValue, room: room });\n };\n\n const onChangeRoom = (newValue: number) => {\n setRoom(newValue);\n onChange?.({ adults: adults, children: children, infants: infants, room: newValue });\n };\n\n const inner = () => {\n return (\n <div className={styles['popper--box']}>\n <div className={styles['popper--content']} ref={ref}>\n <div className={styles['row-wrapper']}>\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(adults, 'Adult', t)}\n </Text>\n <NumberIncrement number={adults} min={1} max={maxAdults} onChange={(value: number) => onChangeAdults(value)} textSize={TextType.Small} />\n </div>\n </div>\n {disableChild ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(children, 'Child', t)}\n </Text>\n <NumberIncrement number={children} min={0} max={maxChildren} onChange={(value: number) => onChangeChildren(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {showInfants ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(infants, 'Infant', t)}\n </Text>\n <NumberIncrement number={infants} min={0} onChange={(value: number) => onChangeInfants(value)} textSize={TextType.Small} />\n </div>\n\n <div className={styles.divider} />\n </div>\n ) : null}\n {disableRoom ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(room, 'Room', t)}\n </Text>\n <NumberIncrement number={room} min={1} max={10} onChange={(value: number) => onChangeRoom(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {promoCodeConfig ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={classNames(styles.row)}>\n <Text className={styles['title']} type={TextType.Small}>\n {t(Translation.Misc.Promocode)}\n </Text>\n <PromoCodeInput className={styles.promo} value={promoCodeConfig.promoCode} onChange={promoCodeConfig.onChange} valid={promoCodeConfig.valid} />\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n };\n\n const content = () => {\n return (\n <Overlay\n offset={[0, 6]}\n usePortal={false}\n followElement={targetRef.current}\n placement=\"top-start\"\n strategy=\"absolute\"\n open={open}\n onClose={() => setOpen?.(false)}\n className={styles.popper}\n hideStyles\n >\n {inner()}\n </Overlay>\n );\n };\n\n const getValueAsText = () => {\n const parts = [StringHelper.pluralWithCount(adults, 'Adult', t)];\n\n if (children > 0) {\n parts.push(StringHelper.pluralWithCount(children, 'Child', t));\n }\n\n if (infants > 0) {\n parts.push(StringHelper.pluralWithCount(infants, 'Infant', t));\n }\n\n return parts.join(' - ');\n };\n\n return (\n <div ref={targetRef} className={classNames('u-cursor-pointer', 'rs-inline-filter-item-guest', styles['rs-inline-filter-item-guest'])}>\n <div className={classNames(styles['card'])} onClick={() => setOpen?.(!open)}>\n <div className={styles['image']}>\n <Icon icon={IconType.People} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.Guests)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {getValueAsText()}\n </Text>\n </div>\n\n <Icon icon={IconType.Dropdown} />\n </div>\n {content()}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContext, CompanyContextWrapper } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport classNames from 'classnames';\nimport { ErrorContextWrapper } from 'contexts/ErrorContext';\nimport { NotificationContextWrapper } from 'contexts/NotificationContext';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { HashRouter } from 'react-router-dom';\nimport useMeasure from 'react-use-measure';\nimport { Translation } from 'translations/Translation';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport { BookingWizardOnBooking } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BookNowPayLaterInfoBlock } from '@/components/generic/BookNowPayLaterInfoBlock';\nimport FloatingDatePicker from '@/components/generic/date/FloatingDatePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport PromoCodeInput from '@/components/generic/PromoCodeInput';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport RatesNotFoundBlock from '@/components/steps/room/RatesNotFoundBlock';\nimport RoomRates from '@/components/steps/room/roomDetails/roomRates/RoomRates';\nimport type { InlineRoomMiniEngine } from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nimport { RoomListSearchEvent } from '@/events/actions/RoomListSearchEvent';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { RoomListSearch } from '@/models/RoomListSearch';\nimport { SearchParameters } from '@/models/SearchParameters';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport StringHelper from '@/util/StringHelper';\n\nimport styles from './InlineRoomMiniEngine.module.scss';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { layout = 'default', policy, priceDescription } = props.engine.getConfig();\n const isCardLayout = layout === 'card';\n\n const { hotel } = useCurrentHotel();\n\n const { memberNumber } = useSignedInMember();\n\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const row = basketContext.currentBasketRows[0];\n const [isLoading, setLoading] = useState(true);\n const [ranFirstLoad, setRanFirstLoad] = useState(false);\n const [rooms, setRooms] = useState<Room[]>([]);\n\n const [isPromoModalOpen, setIsPromoModalOpen] = useState(false);\n\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [promoCode, setPromoCode] = useState(row?.getPromoCode());\n\n const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef<HTMLDivElement | null>(null);\n\n const { raise } = useEvent();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? t(Translation.Step.Date.PromoCodeTooltip.Checking) : t(Translation.Step.Date.PromoCodeTooltip.NoValue);\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Valid);\n } else {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Invalid);\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n // Filters availability results by the provided room code.\n row.setEnableRoomCodeFilter(true);\n row.setRoomCode(props.engine.getRoomCode());\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]);\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row, memberNumber]);\n\n useEffect(() => {\n if (row) {\n findRoomsOnClick();\n }\n }, [row?.getPromoCode()]);\n\n useEffect(() => {\n if (!(rooms && rooms.length > 0)) return;\n\n const room = rooms[0];\n\n let nonPromoRates: RoomRate[] = [];\n const toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n try {\n const search: SearchParameters = {\n checkInTime: row?.getStartDate()?.format('YYYY-M-D'),\n checkOutTime: row?.getEndDate()?.format('YYYY-M-D'),\n numAdults: row?.getAdults(),\n numChildren: row?.getChildren(),\n numRooms: 1,\n promoCode: promoCode,\n roomCode: props.engine.getRoomCode(),\n };\n\n const eventRooms: RoomListSearch[] =\n rooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name: name as string,\n code: code as string,\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, eventRooms);\n raise(event);\n } catch (ex) {\n console.warn(ex);\n }\n\n setStandardRates(nonPromoRates);\n }, [rooms]);\n\n useEffect(() => {\n if (hotel?.colors) {\n // Do this manually as Guide Step manages this for Fullpage.\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel, hotel?.colors]);\n\n const updatePeopleValues = ({ adults, children }: { adults?: number; children?: number; promoCode?: string }) => {\n if (adults && adults !== row.getAdults()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setAdults(adults);\n }\n\n if ((children || children === 0) && children !== row.getChildren()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setChildren(children);\n }\n\n if (!isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n };\n\n const updateDateValues = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n if (startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n basketContext.updateBasketRow(row, false);\n }\n };\n\n if (!row?.getArrivalDate() && !row?.getDepartureDate()) {\n row?.setStartDate(dayjs().add(7, 'day'));\n row?.setEndDate(dayjs().add(8, 'day'));\n }\n\n const isCompact = bounds.width < 1000 ? '--compact' : '';\n\n const findRoomsOnClick = async () => {\n if (isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n setLoading(true);\n setRooms(\n (await API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false))?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]\n );\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return t(Translation.Misc.BookNow);\n };\n\n const updateNumberOfAdultsOnChange = (value: string) => {\n updatePeopleValues({ adults: +value });\n };\n const updateNumberOfChildrenOnChange = (value: string) => {\n updatePeopleValues({ children: +value });\n };\n\n const defaultGuestValue: BookingWizardOnBooking['guests'] = {\n adults: row?.getAdults() ?? 1,\n children: row?.getChildren() ?? 0,\n infants: 0,\n room: 1,\n };\n\n const updatePromoCode = (code: string) => {\n DataLayer.instance.sendInteraction('Promo Code updated', InteractionType.FORM_FIELD, InteractionStep.ROOMS);\n\n if (row) {\n row.setPromoCode(code);\n basketContext.updateBasketRow(row);\n\n if (code) {\n setIsPromoModalOpen(false);\n }\n }\n };\n\n const onAddToBasketOverrideHandler = (rate: RoomRate) => {\n row.setRate(rate);\n basketContext.updateBasketRow(row);\n DataLayer.instance.sendRoomRateAddToCart(rate, row.getNumberOfDays(), row.getStartDate(), row.getEndDate(), row.getPreUpsellRoomRate());\n\n const session = props.engine.getSessionProvider();\n session\n .updateSession({\n step: StepConfirmation.getName(), // TODO:\n })\n .then(() => {\n // TODO: Remove this URL coupling\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepConfirmation.getStepUrl()}?session=${session.getCurrentSessionID()}`, '_self');\n });\n };\n const openPromoModalOnClick = () => {\n setIsPromoModalOpen(true);\n };\n const setPromoCodeOnClose = () => {\n setPromoCode(row?.getPromoCode());\n setIsPromoModalOpen(false);\n };\n const cancelPromoPopupOnClick = () => {\n DataLayer.instance.sendInteraction('Cancel Promo Popup', InteractionType.BUTTON, InteractionStep.ROOMS);\n setIsPromoModalOpen(false);\n };\n\n const changePromoCode = (val: any) => {\n updatePromoCode(val);\n };\n\n const maxOccupancy = hotel?.maxOccupancy ?? 1;\n\n const DatePickerSelector = () => {\n const inner = () => {\n if (isCardLayout) {\n return (\n <div className={classNames('u-cursor-pointer', styles['rs-inline-filter-item-dates-inner'])}>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckIn)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {row?.getArrivalDate() ? row.getArrivalDate() : t(Translation.Misc.CheckInPlaceHolder)}\n </Text>\n </div>\n </div>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckOut)}\n </Text>\n <Text className={styles['sub-title']}>{row?.getDepartureDate() ? row.getDepartureDate() : t(Translation.Misc.CheckOutPlaceHolder)}</Text>\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer\">\n <Text color={row?.getArrivalDate() ? Color.Accent : Color.Graphite} className=\"u-mw-75 u-align-center\" bold={!!row?.getArrivalDate()}>\n <span>{row?.getArrivalDate() ? row.getArrivalDate() : 'Arrival Date'}</span>\n </Text>\n <Icon icon={IconType.ArrowRight2} />\n <Text color={row?.getDepartureDate() ? Color.Accent : Color.Graphite} className=\"u-marg-right u-mw-75 u-align-center\" bold={!!row?.getDepartureDate()}>\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n );\n }\n };\n\n return (\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className={classNames('rs-inline-filter-item-dates', {\n 'u-w-100@xl- room-builder-progress--value u-marg-left--none ': !isCardLayout,\n [styles['rs-inline-filter-item-dates']]: isCardLayout,\n })}\n roomCode={props.engine.getRoomCode()}\n >\n <Tooltip title={t(Translation.Step.Date.SelectArrivalAndDepartureDatesByClickingHere)} wrapperClasses=\"u-w-100@xl-\">\n {inner()}\n </Tooltip>\n </FloatingDatePicker>\n );\n };\n\n const GuestSelector = () => {\n if (isCardLayout) {\n const numChildren = row?.getChildren?.() || 0;\n const maxAdults = maxOccupancy - numChildren;\n const maxChildren = maxOccupancy + 1 - (row?.getAdults?.() || 0);\n return (\n <GuestSelectorCustom\n maxAdults={maxAdults}\n maxChildren={maxChildren}\n onChange={(newValue) => {\n updatePeopleValues({\n adults: +newValue.adults,\n children: +newValue.children,\n });\n }}\n disableChild={false}\n showInfants={false}\n disableRoom\n applyButton={false}\n defaultValue={defaultGuestValue}\n promoCodeConfig={{\n promoCode: basketContext.selectedBasketRow?.getPromoCode(),\n setPromoCode,\n onChange: changePromoCode,\n valid: basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new' ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid' : undefined,\n }}\n />\n );\n } else {\n return (\n <>\n <Tooltip title={t(Translation.Step.Date.UpdateAdults)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-adult\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center \">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy - (row?.getChildren() ? row.getChildren() : 0))].map((v: any, value: number) => {\n value += 1;\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Adult, t),\n value: value.toString(),\n };\n })}\n value={row?.getAdults()?.toString()}\n onChange={updateNumberOfAdultsOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n <Tooltip title={t(Translation.Step.Date.UpdateChildren)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-children\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy + 1 - (row?.getAdults() ? row.getAdults() : 0))].map((v: any, value: number) => {\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Child, t),\n value: value.toString(),\n };\n })}\n value={row?.getChildren()?.toString()}\n onChange={updateNumberOfChildrenOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n </>\n );\n }\n };\n return useMemo(\n () => (\n <>\n <div\n className={classNames(`room-builder-progress ${isCompact} rs-inline-container`, {\n [styles['rs-inline-container']]: isCardLayout,\n [styles['rs-inline-container--card-layout']]: isCardLayout,\n })}\n >\n <div\n className={classNames('rs-inline-filter-container', {\n 'u-flex w-100 flex-wrap room-builder-progress--item --current': !isCardLayout,\n [styles['rs-inline-filter-container']]: isCardLayout,\n })}\n ref={ref}\n >\n <div\n className={classNames('rs-inline-filter-inner', {\n 'u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-': !isCardLayout,\n [styles['rs-inline-filter-inner']]: isCardLayout,\n })}\n >\n <DatePickerSelector />\n <GuestSelector />\n\n <Tooltip\n title={promoCodeTooltip}\n wrapperClasses={classNames('u-w-100@xl- rs-inline-filter-item-promo', {\n [styles['rs-inline-filter-item-promo']]: isCardLayout,\n })}\n >\n <div className=\"room-builder-progress--value u-cursor-pointer\" ref={thisElement} onClick={openPromoModalOnClick}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl-\">\n <Text className=\"u-pad-right--light\" type={TextType.Body} color={row?.getPromoCode() ? row?.getPromoCodeColour() : Color.Navy}>\n {row?.getPromoCode() ? row?.getPromoCode() : 'Promo Code'}\n </Text>\n <Icon icon={IconType.Dropdown} color={Color.DarkGrey} />\n </div>\n </div>\n </Tooltip>\n <Overlay open={isPromoModalOpen} container={RoomstayThemeEngine.EngineContainer} followElement={thisElement.current} onClose={setPromoCodeOnClose}>\n <div className=\"u-pad--heavy\">\n <div>\n <PromoCodeInput\n value={basketContext.selectedBasketRow?.getPromoCode()}\n onChange={changePromoCode}\n valid={\n basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new'\n ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid'\n : undefined\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText size=\"small\" onClick={cancelPromoPopupOnClick}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </div>\n </Overlay>\n </div>\n <div\n className={classNames(`u-flex flex-xl-nowrap flex-row rs-inline-filter-button`, {\n 'w-100': isCompact,\n [styles['rs-inline-filter-button']]: isCardLayout,\n })}\n >\n <BEButton filled primary isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n {t(Translation.Misc.CheckRates)}\n </BEButton>\n </div>\n </div>\n <div\n className={classNames('u-border-rounded rs-inline-content', {\n [styles['rs-inline-content']]: isCardLayout,\n })}\n >\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n classNames={classNames('rs-inline-content-list', {\n [styles['rs-inline-content-list']]: isCardLayout,\n })}\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code as string}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n isCardLayout={isCardLayout}\n policy={policy}\n priceDescription={priceDescription}\n />\n ) : (\n <RatesNotFoundBlock />\n )}\n </>\n </AutoAutoHeight>\n ) : (\n <LargeLoader />\n )}\n </div>\n </div>\n </>\n ),\n [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]\n );\n}\n\nexport const renderInlineRoomMiniEngineElement = (container: Element, engine: InlineRoomMiniEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <HashRouter\n future={{\n v7_startTransition: false,\n v7_relativeSplatPath: false,\n }}\n >\n <NotificationContextWrapper>\n <ErrorContextWrapper>\n <CompanyContextWrapper configCompany={engine.getConfig().company}>\n <BasketContextWrapper>\n <InlineRoomMiniEngineElement engine={engine} />\n </BasketContextWrapper>\n </CompanyContextWrapper>\n </ErrorContextWrapper>\n </NotificationContextWrapper>\n </HashRouter>\n </BookingEngineContextWrapper>,\n container\n );\n};\n\nexport const GuestSelectorCustom = ({\n maxAdults,\n maxChildren,\n maxInfants = 10,\n defaultValue,\n onChange,\n disableChild,\n showInfants,\n disableRoom,\n applyButton,\n promoCodeConfig,\n}: {\n maxAdults?: number;\n maxChildren?: number;\n maxInfants?: number;\n defaultValue?: { adults?: number; children?: number; infants?: number; room?: number };\n onChange?: (params: { adults: number; children: number; infants: number; room: number }) => void;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n applyButton?: boolean;\n promoCodeConfig?: {\n promoCode: string;\n setPromoCode: React.Dispatch<React.SetStateAction<string>>;\n onChange: (val: any) => void;\n valid?: boolean;\n };\n}) => {\n const { t } = useTranslation();\n const ref = React.useRef(null);\n const targetRef = useRef(null);\n\n const [adults, setAdults] = useState(defaultValue?.adults ?? 1);\n const [children, setChildren] = useState(defaultValue?.children ?? 0);\n const [infants, setInfants] = useState(defaultValue?.infants ?? 0);\n const [room, setRoom] = useState(defaultValue?.room ?? 1);\n const [open, setOpen] = useState(false);\n\n const onChangeAdults = (newValue: number) => {\n setAdults(newValue);\n onChange?.({ adults: newValue, children: children, infants: infants, room: room });\n };\n const onChangeChildren = (newValue: number) => {\n setChildren(newValue);\n onChange?.({ adults: adults, children: newValue, infants: infants, room: room });\n };\n const onChangeInfants = (newValue: number) => {\n setInfants(newValue);\n onChange?.({ adults: adults, children: children, infants: newValue, room: room });\n };\n\n const onChangeRoom = (newValue: number) => {\n setRoom(newValue);\n onChange?.({ adults: adults, children: children, infants: infants, room: newValue });\n };\n\n const inner = () => {\n return (\n <div className={styles['popper--box']}>\n <div className={styles['popper--content']} ref={ref}>\n <div className={styles['row-wrapper']}>\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(adults, 'Adult', t)}\n </Text>\n <NumberIncrement number={adults} min={1} max={maxAdults} onChange={(value: number) => onChangeAdults(value)} textSize={TextType.Small} />\n </div>\n </div>\n {disableChild ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(children, 'Child', t)}\n </Text>\n <NumberIncrement number={children} min={0} max={maxChildren} onChange={(value: number) => onChangeChildren(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {showInfants ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(infants, 'Infant', t)}\n </Text>\n <NumberIncrement number={infants} min={0} onChange={(value: number) => onChangeInfants(value)} textSize={TextType.Small} />\n </div>\n\n <div className={styles.divider} />\n </div>\n ) : null}\n {disableRoom ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(room, 'Room', t)}\n </Text>\n <NumberIncrement number={room} min={1} max={10} onChange={(value: number) => onChangeRoom(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {promoCodeConfig ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={classNames(styles.row)}>\n <Text className={styles['title']} type={TextType.Small}>\n {t(Translation.Misc.Promocode)}\n </Text>\n <PromoCodeInput className={styles.promo} value={promoCodeConfig.promoCode} onChange={promoCodeConfig.onChange} valid={promoCodeConfig.valid} />\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n };\n\n const content = () => {\n return (\n <Overlay\n offset={[0, 6]}\n usePortal={false}\n followElement={targetRef.current}\n placement=\"top-start\"\n strategy=\"absolute\"\n open={open}\n onClose={() => setOpen?.(false)}\n className={styles.popper}\n hideStyles\n >\n {inner()}\n </Overlay>\n );\n };\n\n const getValueAsText = () => {\n const parts = [StringHelper.pluralWithCount(adults, 'Adult', t)];\n\n if (children > 0) {\n parts.push(StringHelper.pluralWithCount(children, 'Child', t));\n }\n\n if (infants > 0) {\n parts.push(StringHelper.pluralWithCount(infants, 'Infant', t));\n }\n\n return parts.join(' - ');\n };\n\n return (\n <div ref={targetRef} className={classNames('u-cursor-pointer', 'rs-inline-filter-item-guest', styles['rs-inline-filter-item-guest'])}>\n <div className={classNames(styles['card'])} onClick={() => setOpen?.(!open)}>\n <div className={styles['image']}>\n <Icon icon={IconType.People} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.Guests)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {getValueAsText()}\n </Text>\n </div>\n\n <Icon icon={IconType.Dropdown} />\n </div>\n {content()}\n </div>\n );\n};\n"]}
@@ -1,12 +1,24 @@
1
1
  import { Placement } from '@popperjs/core';
2
- import { IRoomstayMember } from '@roomstay/core';
2
+ import { IHotelColorScheme, IRoomstayMember } from '@roomstay/core';
3
3
  import { MenuItemType } from '../../components/generic/modal/SigninModal/AuthenticatedUserModal';
4
4
  import { BaseEngine, BaseEngineConfig } from '../BaseEngine';
5
5
  import { ConfigCompany } from '../../models/Client/Hotel/Company';
6
- import { Hotel } from '../../models/Client/Hotel/Hotel';
6
+ import { ConfigHotel, Hotel } from '../../models/Client/Hotel/Hotel';
7
+ import { Language } from '../../providers/LanguageProvider';
8
+ export interface GroupWidgetConfig {
9
+ name?: string;
10
+ logo?: string;
11
+ logoLink?: string;
12
+ checkoutUrl?: string;
13
+ colors?: IHotelColorScheme;
14
+ defaultLanguage?: Language;
15
+ privacyPolicyUrl?: string;
16
+ hotels: ConfigHotel[];
17
+ }
7
18
  export interface MemberPortalWidgetConfig extends BaseEngineConfig {
8
- company: Pick<ConfigCompany, 'colors' | 'companyShort'>;
9
- hotel: Hotel;
19
+ company: Pick<ConfigCompany, 'colors' | 'companyShort' | 'companyId'>;
20
+ hotel?: Hotel;
21
+ groupWidgetConfig?: GroupWidgetConfig;
10
22
  authMenuItem?: MenuItemType[];
11
23
  buttonClass?: string;
12
24
  overlayPlacement?: Placement;
@@ -17,6 +29,7 @@ export interface MemberPortalWidgetConfig extends BaseEngineConfig {
17
29
  }
18
30
  export declare class MemberPortalWidget extends BaseEngine<MemberPortalWidgetConfig> {
19
31
  constructor(bookingContainer: HTMLElement, config?: MemberPortalWidgetConfig);
32
+ setConfig(config: MemberPortalWidgetConfig): void;
20
33
  protected render(): Promise<void>;
21
34
  static readonly MEMBER_PORTAL_PARAM = "memberPortal";
22
35
  }
@@ -23,6 +23,12 @@ class MemberPortalWidget extends BaseEngine_1.BaseEngine {
23
23
  // TODO: Make this a more permanent solution
24
24
  RoomstayThemeEngine_1.default.EngineContainer.classList.add('--transparent-bg');
25
25
  }
26
+ setConfig(config) {
27
+ if (!config.hotel && !config.groupWidgetConfig) {
28
+ throw new Error('MemberPortalWidget requires either a hotel or groupWidgetConfig to be provided');
29
+ }
30
+ super.setConfig(config);
31
+ }
26
32
  render() {
27
33
  return __awaiter(this, void 0, void 0, function* () {
28
34
  (0, MemberPortalWidgetElement_1.renderMemberPortalWidget)(RoomstayThemeEngine_1.default.createElementOrReuseExisting('div', 'member-portal-widget'), this);
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPortalWidget.js","sourceRoot":"/","sources":["src/engines/MemberPortalWidget/MemberPortalWidget.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,qDAAyF;AAGzF,0FAAkE;AAElE,2EAAuE;AAcvE,MAAa,kBAAmB,SAAQ,uBAAoC;IACxE,YAAmB,gBAA6B,EAAE,MAAiC;QAC/E,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,IAAI,CAAC;QAEvC,4CAA4C;QAC5C,6BAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEe,MAAM;;YAClB,IAAA,oDAAwB,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;QACpH,CAAC;KAAA;;AAXL,gDAcC;AAD0B,sCAAmB,GAAG,cAAc,CAAC","sourcesContent":["import { Placement } from '@popperjs/core';\nimport { IRoomstayMember } from '@roomstay/core';\n\nimport { MenuItemType } from '@/components/generic/modal/SigninModal/AuthenticatedUserModal';\nimport { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nimport { renderMemberPortalWidget } from './MemberPortalWidgetElement';\n\nexport interface MemberPortalWidgetConfig extends BaseEngineConfig {\n company: Pick<ConfigCompany, 'colors' | 'companyShort'>;\n hotel: Hotel;\n authMenuItem?: MenuItemType[];\n buttonClass?: string;\n overlayPlacement?: Placement;\n fallbackPlacements?: Placement;\n onSignedIn?: (user: IRoomstayMember) => void;\n onSignedOut?: () => void;\n renderInput?: (member?: IRoomstayMember | null, isLoading?: boolean) => JSX.Element | string;\n}\n\nexport class MemberPortalWidget extends BaseEngine<MemberPortalWidgetConfig> {\n public constructor(bookingContainer: HTMLElement, config?: MemberPortalWidgetConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.Auth;\n\n // TODO: Make this a more permanent solution\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n }\n\n protected async render() {\n renderMemberPortalWidget(RoomstayThemeEngine.createElementOrReuseExisting('div', 'member-portal-widget'), this);\n }\n\n public static readonly MEMBER_PORTAL_PARAM = 'memberPortal';\n}\n"]}
1
+ {"version":3,"file":"MemberPortalWidget.js","sourceRoot":"/","sources":["src/engines/MemberPortalWidget/MemberPortalWidget.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,qDAAyF;AAIzF,0FAAkE;AAElE,2EAAuE;AA0BvE,MAAa,kBAAmB,SAAQ,uBAAoC;IACxE,YAAmB,gBAA6B,EAAE,MAAiC;QAC/E,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,IAAI,CAAC;QAEvC,4CAA4C;QAC5C,6BAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEM,SAAS,CAAC,MAAgC;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;SACrG;QAED,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAEe,MAAM;;YAClB,IAAA,oDAAwB,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;QACpH,CAAC;KAAA;;AAnBL,gDAsBC;AAD0B,sCAAmB,GAAG,cAAc,CAAC","sourcesContent":["import { Placement } from '@popperjs/core';\nimport { IHotelColorScheme, IRoomstayMember } from '@roomstay/core';\n\nimport { MenuItemType } from '@/components/generic/modal/SigninModal/AuthenticatedUserModal';\nimport { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport { ConfigHotel, Hotel } from '@/models/Client/Hotel/Hotel';\nimport { Language } from '@/providers/LanguageProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nimport { renderMemberPortalWidget } from './MemberPortalWidgetElement';\n\nexport interface GroupWidgetConfig {\n name?: string;\n logo?: string;\n logoLink?: string;\n checkoutUrl?: string;\n colors?: IHotelColorScheme;\n defaultLanguage?: Language;\n privacyPolicyUrl?: string;\n hotels: ConfigHotel[];\n}\n\nexport interface MemberPortalWidgetConfig extends BaseEngineConfig {\n company: Pick<ConfigCompany, 'colors' | 'companyShort' | 'companyId'>;\n hotel?: Hotel;\n groupWidgetConfig?: GroupWidgetConfig;\n authMenuItem?: MenuItemType[];\n buttonClass?: string;\n overlayPlacement?: Placement;\n fallbackPlacements?: Placement;\n onSignedIn?: (user: IRoomstayMember) => void;\n onSignedOut?: () => void;\n renderInput?: (member?: IRoomstayMember | null, isLoading?: boolean) => JSX.Element | string;\n}\n\nexport class MemberPortalWidget extends BaseEngine<MemberPortalWidgetConfig> {\n public constructor(bookingContainer: HTMLElement, config?: MemberPortalWidgetConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.Auth;\n\n // TODO: Make this a more permanent solution\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n }\n\n public setConfig(config: MemberPortalWidgetConfig): void {\n if (!config.hotel && !config.groupWidgetConfig) {\n throw new Error('MemberPortalWidget requires either a hotel or groupWidgetConfig to be provided');\n }\n\n super.setConfig(config);\n }\n\n protected async render() {\n renderMemberPortalWidget(RoomstayThemeEngine.createElementOrReuseExisting('div', 'member-portal-widget'), this);\n }\n\n public static readonly MEMBER_PORTAL_PARAM = 'memberPortal';\n}\n"]}
@@ -64,18 +64,20 @@ function MemberPortalWidgetElement({ engine }) {
64
64
  }, [roomstayMember]);
65
65
  // Detect changes to the roomstay path
66
66
  (0, react_1.useEffect)(() => {
67
+ var _a;
67
68
  const href = window.location.href.split('#');
69
+ const checkoutUrl = ((_a = engineConfig.groupWidgetConfig) === null || _a === void 0 ? void 0 : _a.checkoutUrl) || (hotel === null || hotel === void 0 ? void 0 : hotel.checkoutUrl);
68
70
  // Ensure the user is redirected to the checkout if a member portal link is clicked
69
- if (href.length > 1 && (hotel === null || hotel === void 0 ? void 0 : hotel.checkoutUrl) && href[0] !== hotel.checkoutUrl) {
71
+ if (href.length > 1 && checkoutUrl && href[0] !== checkoutUrl) {
70
72
  // Add Member portal flag to URL to ensure member portal in enabled when the user lands in the checkout
71
73
  const params = new URLSearchParams(window.location.search);
72
74
  params.set(MemberPortalWidget_1.MemberPortalWidget.MEMBER_PORTAL_PARAM, true.toString());
73
75
  // Redirected to the checkout
74
- const url = new URL(hotel.checkoutUrl, window.location.origin);
76
+ const url = new URL(checkoutUrl, window.location.origin);
75
77
  url.hash = location.pathname + '?' + params.toString();
76
78
  window.location.href = url.toString();
77
79
  }
78
- }, [location]);
80
+ }, [location, engineConfig.groupWidgetConfig]);
79
81
  const buttonElement = (0, react_1.useMemo)(() => {
80
82
  if (engineConfig.renderInput) {
81
83
  return (react_1.default.createElement("div", { ref: loginAnchorEl, onClick: onLoginClickHandler }, engineConfig.renderInput(roomstayMember, loading)));
@@ -114,15 +116,19 @@ function MemberPortalWidgetElement({ engine }) {
114
116
  }
115
117
  exports.default = MemberPortalWidgetElement;
116
118
  const renderMemberPortalWidget = (container, engine) => {
119
+ var _a, _b, _c, _d, _e;
117
120
  const config = engine.getConfig();
118
121
  const companyConfig = config.company;
119
122
  const company = {
120
- name: '',
121
- logo: '',
123
+ companyId: companyConfig.companyId,
124
+ name: ((_a = config.groupWidgetConfig) === null || _a === void 0 ? void 0 : _a.name) || '',
125
+ logo: ((_b = config.groupWidgetConfig) === null || _b === void 0 ? void 0 : _b.logo) || '',
126
+ logoLink: ((_c = config.groupWidgetConfig) === null || _c === void 0 ? void 0 : _c.logoLink) || '',
122
127
  companyShort: companyConfig.companyShort,
123
128
  colors: companyConfig.colors,
124
129
  selectedHotel: config.hotel,
125
- hotels: [config.hotel],
130
+ hotels: ((_d = config.groupWidgetConfig) === null || _d === void 0 ? void 0 : _d.hotels) || (config.hotel ? [config.hotel] : []),
131
+ privacyPolicyUrl: (_e = config.groupWidgetConfig) === null || _e === void 0 ? void 0 : _e.privacyPolicyUrl,
126
132
  };
127
133
  (0, react_dom_1.render)(react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(react_1.default.Fragment, null) },
128
134
  react_1.default.createElement(react_router_dom_1.HashRouter, { future: {
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPortalWidgetElement.js","sourceRoot":"/","sources":["src/engines/MemberPortalWidget/MemberPortalWidgetElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, AuthenticationContextProvider, BookingEngineContextWrapper, CompanyContextWrapper, RoomstayMemberContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { Suspense, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { HashRouter, useLocation } from 'react-router-dom';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport { AuthenticatedUserModal, AuthenticatedUserModalProps } from '@/components/generic/modal/SigninModal/AuthenticatedUserModal';\nimport { UnauthenticatedUserModal, UnauthenticatedUserModalProps } from '@/components/generic/modal/SigninModal/UnauthenticatedUserModal';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\nimport { MemberPortalWidget } from './MemberPortalWidget';\n\nexport interface MemberPortalWidgetElementProps {\n engine: MemberPortalWidget;\n}\n\nexport default function MemberPortalWidgetElement({ engine }: MemberPortalWidgetElementProps) {\n const engineConfig = engine.getConfig();\n\n const { roomstayMember } = useContext(RoomstayMemberContext);\n const { loading } = useContext(AuthenticationContext);\n\n const { t } = useTranslation();\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n const loginAnchorEl = useRef<HTMLDivElement | null>(null);\n\n const { hotel } = useCurrentHotel();\n const location = useLocation();\n\n const closeLoginClickHandler = () => {\n setLoginModalOpen(false);\n };\n\n const onLoginClickHandler = () => {\n setLoginModalOpen(true);\n };\n\n useEffect(() => {\n if (roomstayMember) {\n engineConfig.onSignedIn?.(roomstayMember);\n }\n }, [roomstayMember]);\n\n // Detect changes to the roomstay path\n useEffect(() => {\n const href = window.location.href.split('#');\n\n // Ensure the user is redirected to the checkout if a member portal link is clicked\n if (href.length > 1 && hotel?.checkoutUrl && href[0] !== hotel.checkoutUrl) {\n // Add Member portal flag to URL to ensure member portal in enabled when the user lands in the checkout\n const params = new URLSearchParams(window.location.search);\n params.set(MemberPortalWidget.MEMBER_PORTAL_PARAM, true.toString());\n\n // Redirected to the checkout\n const url = new URL(hotel.checkoutUrl, window.location.origin);\n url.hash = location.pathname + '?' + params.toString();\n window.location.href = url.toString();\n }\n }, [location]);\n\n const buttonElement = useMemo(() => {\n if (engineConfig.renderInput) {\n return (\n <div ref={loginAnchorEl} onClick={onLoginClickHandler}>\n {engineConfig.renderInput(roomstayMember, loading)}\n </div>\n );\n } else {\n return (\n <div ref={loginAnchorEl} style={{ width: 'fit-content' }}>\n {roomstayMember ? (\n <BEButton isLoading={loading} size=\"small\" className={engineConfig.buttonClass} onClick={onLoginClickHandler} stopIconAnimation>\n {roomstayMember.forename} {roomstayMember.surname}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n ) : (\n <BEButton isLoading={loading} size=\"small\" className={engineConfig.buttonClass} onClick={onLoginClickHandler} stopIconAnimation>\n {t(Translation.Navigation.SignIn.SignIn)}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n )}\n </div>\n );\n }\n }, [engineConfig.renderInput, roomstayMember, loading]);\n\n const authProps: AuthenticatedUserModalProps = {\n open: loginModalOpen,\n anchorEl: loginAnchorEl.current,\n menuItems: engineConfig.authMenuItem,\n placement: engineConfig.overlayPlacement || 'bottom-end',\n fallbackPlacements: engineConfig.fallbackPlacements,\n onClose: closeLoginClickHandler,\n onSignedOut: engineConfig.onSignedOut,\n };\n\n const unauthProps: UnauthenticatedUserModalProps = {\n open: loginModalOpen,\n anchorEl: loginAnchorEl.current,\n placement: engineConfig.overlayPlacement || 'bottom-end',\n fallbackPlacements: engineConfig.fallbackPlacements,\n onClose: closeLoginClickHandler,\n };\n\n return (\n <>\n {buttonElement}\n <Suspense fallback={SmallSpinner}>{roomstayMember ? <AuthenticatedUserModal {...authProps} /> : <UnauthenticatedUserModal {...unauthProps} />}</Suspense>\n </>\n );\n}\n\nexport const renderMemberPortalWidget = (container: Element, engine: MemberPortalWidget) => {\n const config = engine.getConfig();\n const companyConfig = config.company;\n\n const company: ConfigCompany = {\n name: '',\n logo: '',\n companyShort: companyConfig.companyShort,\n colors: companyConfig.colors,\n selectedHotel: config.hotel,\n hotels: [config.hotel],\n };\n\n render(\n <Suspense fallback={<></>}>\n <HashRouter\n future={{\n v7_startTransition: false,\n v7_relativeSplatPath: false,\n }}\n >\n <BookingEngineContextWrapper engine={engine}>\n <CompanyContextWrapper configCompany={company}>\n <AuthenticationContextProvider>\n <MemberPortalWidgetElement engine={engine} />\n </AuthenticationContextProvider>\n </CompanyContextWrapper>\n </BookingEngineContextWrapper>\n </HashRouter>\n </Suspense>,\n container\n );\n};\n"]}
1
+ {"version":3,"file":"MemberPortalWidgetElement.js","sourceRoot":"/","sources":["src/engines/MemberPortalWidget/MemberPortalWidgetElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import { AuthenticationContext, AuthenticationContextProvider, BookingEngineContextWrapper, CompanyContextWrapper, RoomstayMemberContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { Suspense, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { HashRouter, useLocation } from 'react-router-dom';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SmallSpinner from '@/components/generic/loader/SmallSpinner';\nimport { AuthenticatedUserModal, AuthenticatedUserModalProps } from '@/components/generic/modal/SigninModal/AuthenticatedUserModal';\nimport { UnauthenticatedUserModal, UnauthenticatedUserModalProps } from '@/components/generic/modal/SigninModal/UnauthenticatedUserModal';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\nimport { MemberPortalWidget } from './MemberPortalWidget';\n\nexport interface MemberPortalWidgetElementProps {\n engine: MemberPortalWidget;\n}\n\nexport default function MemberPortalWidgetElement({ engine }: MemberPortalWidgetElementProps) {\n const engineConfig = engine.getConfig();\n\n const { roomstayMember } = useContext(RoomstayMemberContext);\n const { loading } = useContext(AuthenticationContext);\n\n const { t } = useTranslation();\n const [loginModalOpen, setLoginModalOpen] = useState(false);\n const loginAnchorEl = useRef<HTMLDivElement | null>(null);\n\n const { hotel } = useCurrentHotel();\n const location = useLocation();\n\n const closeLoginClickHandler = () => {\n setLoginModalOpen(false);\n };\n\n const onLoginClickHandler = () => {\n setLoginModalOpen(true);\n };\n\n useEffect(() => {\n if (roomstayMember) {\n engineConfig.onSignedIn?.(roomstayMember);\n }\n }, [roomstayMember]);\n\n // Detect changes to the roomstay path\n useEffect(() => {\n const href = window.location.href.split('#');\n const checkoutUrl = engineConfig.groupWidgetConfig?.checkoutUrl || hotel?.checkoutUrl;\n\n // Ensure the user is redirected to the checkout if a member portal link is clicked\n if (href.length > 1 && checkoutUrl && href[0] !== checkoutUrl) {\n // Add Member portal flag to URL to ensure member portal in enabled when the user lands in the checkout\n const params = new URLSearchParams(window.location.search);\n params.set(MemberPortalWidget.MEMBER_PORTAL_PARAM, true.toString());\n\n // Redirected to the checkout\n const url = new URL(checkoutUrl, window.location.origin);\n url.hash = location.pathname + '?' + params.toString();\n window.location.href = url.toString();\n }\n }, [location, engineConfig.groupWidgetConfig]);\n\n const buttonElement = useMemo(() => {\n if (engineConfig.renderInput) {\n return (\n <div ref={loginAnchorEl} onClick={onLoginClickHandler}>\n {engineConfig.renderInput(roomstayMember, loading)}\n </div>\n );\n } else {\n return (\n <div ref={loginAnchorEl} style={{ width: 'fit-content' }}>\n {roomstayMember ? (\n <BEButton isLoading={loading} size=\"small\" className={engineConfig.buttonClass} onClick={onLoginClickHandler} stopIconAnimation>\n {roomstayMember.forename} {roomstayMember.surname}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n ) : (\n <BEButton isLoading={loading} size=\"small\" className={engineConfig.buttonClass} onClick={onLoginClickHandler} stopIconAnimation>\n {t(Translation.Navigation.SignIn.SignIn)}\n <span className=\"u-white u-pad-left--light\" style={{ marginRight: -13 }}>\n <Icon icon={IconType.ArrowDown2} size=\"1.3em\" color={Color.DarkGrey} />\n </span>\n </BEButton>\n )}\n </div>\n );\n }\n }, [engineConfig.renderInput, roomstayMember, loading]);\n\n const authProps: AuthenticatedUserModalProps = {\n open: loginModalOpen,\n anchorEl: loginAnchorEl.current,\n menuItems: engineConfig.authMenuItem,\n placement: engineConfig.overlayPlacement || 'bottom-end',\n fallbackPlacements: engineConfig.fallbackPlacements,\n onClose: closeLoginClickHandler,\n onSignedOut: engineConfig.onSignedOut,\n };\n\n const unauthProps: UnauthenticatedUserModalProps = {\n open: loginModalOpen,\n anchorEl: loginAnchorEl.current,\n placement: engineConfig.overlayPlacement || 'bottom-end',\n fallbackPlacements: engineConfig.fallbackPlacements,\n onClose: closeLoginClickHandler,\n };\n\n return (\n <>\n {buttonElement}\n <Suspense fallback={SmallSpinner}>{roomstayMember ? <AuthenticatedUserModal {...authProps} /> : <UnauthenticatedUserModal {...unauthProps} />}</Suspense>\n </>\n );\n}\n\nexport const renderMemberPortalWidget = (container: Element, engine: MemberPortalWidget) => {\n const config = engine.getConfig();\n const companyConfig = config.company;\n\n const company: ConfigCompany = {\n companyId: companyConfig.companyId,\n name: config.groupWidgetConfig?.name || '',\n logo: config.groupWidgetConfig?.logo || '',\n logoLink: config.groupWidgetConfig?.logoLink || '',\n companyShort: companyConfig.companyShort,\n colors: companyConfig.colors,\n selectedHotel: config.hotel,\n hotels: config.groupWidgetConfig?.hotels || (config.hotel ? [config.hotel] : []),\n privacyPolicyUrl: config.groupWidgetConfig?.privacyPolicyUrl,\n };\n\n render(\n <Suspense fallback={<></>}>\n <HashRouter\n future={{\n v7_startTransition: false,\n v7_relativeSplatPath: false,\n }}\n >\n <BookingEngineContextWrapper engine={engine}>\n <CompanyContextWrapper configCompany={company}>\n <AuthenticationContextProvider>\n <MemberPortalWidgetElement engine={engine} />\n </AuthenticationContextProvider>\n </CompanyContextWrapper>\n </BookingEngineContextWrapper>\n </HashRouter>\n </Suspense>,\n container\n );\n};\n"]}