@roomstay/frontend 1.5.5 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/103.bundle.js +1 -0
- package/dist/main.bundle.js +1 -1
- package/dist/src/components/steps/confirmation/RoomContactDetails.js +2 -1
- package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +9 -6
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +43 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
- package/dist/src/util/Validation.d.ts +1 -0
- package/dist/src/util/Validation.js +5 -0
- package/dist/src/util/Validation.js.map +1 -0
- package/dist/test.bundle.js +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +1 -1
- package/dist/876.bundle.js +0 -1
|
@@ -31,6 +31,7 @@ const AutoAutoHeight_1 = require("../../../animations/AutoAutoHeight");
|
|
|
31
31
|
const DataLayer_1 = require("../../../util/DataLayer");
|
|
32
32
|
const EnhancedPhoneNumberField_1 = require("../../generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField");
|
|
33
33
|
const E164PhoneNumberFieldFeature_1 = require("../../../providers/feature/E164PhoneNumberFieldFeature");
|
|
34
|
+
const Validation_1 = require("../../../util/Validation");
|
|
34
35
|
function RoomContactDetails(props) {
|
|
35
36
|
const { register, formState, getValues, control } = react_hook_form_1.useFormContext();
|
|
36
37
|
const errors = formState.errors;
|
|
@@ -149,7 +150,7 @@ function RoomContactDetails(props) {
|
|
|
149
150
|
message: t(Translation_1.Translation.Step.Confirmation.Inputs.Required, { field: t(Translation_1.Translation.Step.Confirmation.Inputs.Email) }),
|
|
150
151
|
},
|
|
151
152
|
pattern: {
|
|
152
|
-
value:
|
|
153
|
+
value: Validation_1.EMAIL_REGEX,
|
|
153
154
|
message: t(Translation_1.Translation.Step.Confirmation.Inputs.InvalidEmail),
|
|
154
155
|
},
|
|
155
156
|
}))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomContactDetails.js","sourceRoot":"/","sources":["src/components/steps/confirmation/RoomContactDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport Text from '../../generic/Text';\nimport InputGroup from '../../generic/InputGroup/InputGroup';\nimport TextBox from '../../generic/TextBox';\nimport { TextType } from '../../generic/Text';\nimport { Translation } from '../../../translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport { useState } from 'react';\nimport Headline from '../../generic/Headline';\nimport Icon, { IconType } from '../../generic/Icon';\nimport { Color } from '../../../util/Color';\nimport StepConfirmationCountrySelector from './StepConfirmationCountrySelector';\nimport BasketRow from '../../../models/BasketRow';\nimport StringHelper from '../../../util/StringHelper';\nimport LineBreak from '../../generic/LineBreak';\n\nimport { useFormContext, Controller } from 'react-hook-form';\nimport Alert, { AlertType } from '../../generic/Alert';\nimport AutoAutoHeight from '../../../animations/AutoAutoHeight';\nimport DataLayer, { InteractionStep, InteractionType } from '../../../util/DataLayer';\nimport { EnhancedPhoneNumberField } from '../../generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField';\nimport E164PhoneNumberFieldFeature from '../../../providers/feature/E164PhoneNumberFieldFeature';\n\nexport interface RoomContactDetailsProps {\n roomNumber: number;\n basketRow: BasketRow;\n\n showErrors?: boolean;\n expandable?: boolean;\n}\n\nexport default function RoomContactDetails(props: RoomContactDetailsProps) {\n const { register, formState, getValues, control } = useFormContext();\n const errors = formState.errors;\n\n const { t } = useTranslation();\n\n const [isOpen, setIsOpen] = useState(props.roomNumber === 1);\n const row = props.basketRow;\n\n const hasErrors =\n Object.keys(errors)\n .join('')\n .indexOf('' + props.roomNumber) !== -1;\n\n const getValidationClass = (name: string) => {\n const paddedName = padInputName(name);\n\n if (errors && (formState.touchedFields[paddedName] || props.showErrors)) {\n if (errors[paddedName]) {\n return 'error';\n } else {\n return 'success';\n }\n } else {\n return null;\n }\n };\n\n if (hasErrors && !isOpen) {\n setIsOpen(true);\n }\n\n const padInputName = (name: string) => {\n return `${name}${props.roomNumber}`;\n };\n\n const inputValues = Object.keys(getValues());\n const openExpandable = () => {\n if (props.expandable) setIsOpen(!isOpen);\n };\n const setForename = () => {\n DataLayer.instance.sendInteraction('Forename - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setSurname = () => {\n DataLayer.instance.sendInteraction('Surname - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setEmail = () => {\n DataLayer.instance.sendInteraction('Email - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setPhone = () => {\n DataLayer.instance.sendInteraction('Phone - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setAddress = () => {\n DataLayer.instance.sendInteraction('Address - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setCity = () => {\n DataLayer.instance.sendInteraction('City - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setPostCode = () => {\n DataLayer.instance.sendInteraction('PostCode - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setCountry = (event: any) => {\n DataLayer.instance.sendInteraction('Country - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n\n return (\n <>\n <div className=\"u-marg-bottom\" onClick={openExpandable}>\n <div className=\"u-flex u-marg-bottom align-items-center\">\n <Headline bold={true}>\n {t(Translation.Misc.Room)} {props.roomNumber}\n </Headline>\n {props.expandable && <Icon icon={isOpen ? IconType.ArrowDown2 : IconType.ArrowUp2} color={Color.Grey} />}\n </div>\n <div className=\"u-marg-bottom\">\n <Text>\n <strong className=\"u-block@l-\">{row.getRoom().name}</strong> for {StringHelper.pluralWithDictAndCount(row.getAdults(), Translation.Step.Date.Adult, t)}\n , \n {StringHelper.pluralWithDictAndCount(row.getChildren(), Translation.Step.Date.Child, t)}\n </Text>\n <div className=\"step-one-status--dates u-flex justify-content-start\">\n <Text type={TextType.Small} color={Color.Accent}>\n <strong>{row.getStartDate().format('ddd, MMM D')}</strong>\n </Text>\n <Icon icon={IconType.ArrowRight2} size={'18px'} />\n <Text type={TextType.Small} color={Color.Accent}>\n <strong>{row.getEndDate().format('ddd, MMM D')}</strong>\n </Text>\n </div>\n </div>\n {inputValues.map((error, index: number) => {\n if (error.endsWith(`${props.roomNumber}`)) {\n let errorMessage = errors[error]?.message ?? '';\n errorMessage = errorMessage ? errorMessage : error.replace(`${props.roomNumber}`, '') + ' is required';\n\n return (\n <AutoAutoHeight key={error} open={props.showErrors && hasErrors && !!errors[error]}>\n <div className=\"u-flex\">\n <Alert icon={IconType.Error} type={AlertType.Danger} noMargin={index === inputValues.length - 1}>\n <Text type={TextType.Small}>{errorMessage}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n );\n }\n })}\n </div>\n <div className=\"room-contact-details--row\" style={{ maxHeight: isOpen ? '' : 0 }}>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Confirmation.ContactInfo)}</strong>\n </Text>\n </div>\n <InputGroup dimensions=\"2/2\">\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Forename) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Forename')}\n {...register(padInputName('Forename'), {\n onChange: setForename,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Forename) }),\n },\n })}\n />\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Surname) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Surname')}\n {...register(padInputName('Surname'), {\n onChange: setSurname,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Surname) }),\n },\n })}\n />\n </InputGroup>\n\n <InputGroup dimensions={'2/2'}>\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Email) + ' *'}\n wide={true}\n validationStatus={getValidationClass('Email')}\n required={true}\n {...register(padInputName('Email'), {\n onChange: setEmail,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Email) }),\n },\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: t(Translation.Step.Confirmation.Inputs.InvalidEmail),\n },\n })}\n />\n {E164PhoneNumberFieldFeature.isActive() ? (\n <Controller\n control={control}\n name={padInputName('Phone')}\n rules={{\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Phone) }),\n },\n minLength: {\n value: 5,\n message: 'Phone number is required',\n },\n maxLength: {\n value: 17,\n message: 'Phone number is too long',\n },\n pattern: {\n value: /^[1-9](\\ |\\d){1,15}$/g,\n message: 'Incorrect phone number entered',\n },\n }}\n render={({ field, fieldState }) => {\n return (\n <EnhancedPhoneNumberField\n validationStatus={getValidationClass('Phone')}\n {...field}\n onChange={(e) => {\n field.onChange(e);\n setPhone();\n }}\n />\n );\n }}\n />\n ) : (\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Phone) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Phone')}\n {...register(padInputName('Phone'), {\n onChange: setPhone,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Phone) }),\n },\n })}\n />\n )}\n </InputGroup>\n </div>\n <div className=\"\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Confirmation.Address)}</strong>\n </Text>\n </div>\n\n <InputGroup dimensions={'3/1'}>\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Address) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Address')}\n {...register(padInputName('Address'), {\n onChange: setAddress,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Address) }),\n },\n })}\n />\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.City) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('City')}\n {...register(padInputName('City'), {\n onChange: setCity,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.City) }),\n },\n })}\n />\n </InputGroup>\n <InputGroup dimensions={'2/2'}>\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.PostCode) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('PostCode')}\n {...register(padInputName('PostCode'), {\n onChange: setPostCode,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.PostCode) }),\n },\n })}\n />\n <Controller\n control={control}\n name={padInputName('Country')}\n rules={{\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Country) }),\n },\n }}\n render={({ field }) => {\n const { ref, ...rest } = field;\n return <StepConfirmationCountrySelector validationStatus={getValidationClass('Country')} {...rest} defaultValue={null} />;\n }}\n />\n </InputGroup>\n </div>\n </div>\n <LineBreak />\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RoomContactDetails.js","sourceRoot":"/","sources":["src/components/steps/confirmation/RoomContactDetails.tsx"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,6CAAsC;AACtC,oEAA6D;AAC7D,mDAA4C;AAC5C,6CAA8C;AAC9C,mEAAgE;AAChE,iDAA+C;AAC/C,iCAAiC;AACjC,qDAA8C;AAC9C,6CAAoD;AACpD,+CAA4C;AAC5C,uFAAgF;AAEhF,6DAAsD;AACtD,uDAAgD;AAEhD,qDAA6D;AAC7D,+CAAuD;AACvD,uEAAgE;AAChE,uDAAsF;AACtF,qHAAkH;AAClH,wGAAiG;AACjG,yDAAuD;AAUvD,SAAwB,kBAAkB,CAAC,KAA8B;IACrE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gCAAc,EAAE,CAAC;IACrE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEhC,MAAM,EAAE,CAAC,EAAE,GAAG,8BAAc,EAAE,CAAC;IAE/B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAQ,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;IAE5B,MAAM,SAAS,GACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACd,IAAI,CAAC,EAAE,CAAC;SACR,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;YACrE,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;gBACpB,OAAO,OAAO,CAAC;aAClB;iBAAM;gBACH,OAAO,SAAS,CAAC;aACpB;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC,CAAC;IAEF,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE;QACtB,SAAS,CAAC,IAAI,CAAC,CAAC;KACnB;IAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,IAAI,KAAK,CAAC,UAAU;YAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,yBAAyB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IAC7H,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,wBAAwB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IAC5H,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,sBAAsB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IAC1H,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,sBAAsB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IAC1H,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IACvH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IACpH,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IACxH,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;QAC9B,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,aAAa,CAAC,CAAC;IACvH,CAAC,CAAC;IAEF,OAAO,CACH;QACI,6BAAK,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,cAAc;YAClD,6BAAK,SAAS,EAAC,yCAAyC;gBACpD,oBAAC,kBAAQ,IAAC,IAAI,EAAE,IAAI;oBACf,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;oBAAG,KAAK,CAAC,UAAU,CACrC;gBACV,KAAK,CAAC,UAAU,IAAI,oBAAC,cAAI,IAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,eAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,eAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI,CACtG;YACN,6BAAK,SAAS,EAAC,eAAe;gBAC1B,oBAAC,cAAI;oBACD,gCAAQ,SAAS,EAAC,YAAY,IAAE,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAU;;oBAAM,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;;oBAErJ,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CACpF;gBACP,6BAAK,SAAS,EAAC,qDAAqD;oBAChE,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,MAAM;wBAC3C,oCAAS,GAAG,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAU,CACvD;oBACP,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,GAAI;oBAClD,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,MAAM;wBAC3C,oCAAS,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAU,CACrD,CACL,CACJ;YACL,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;;gBACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE;oBACvC,IAAI,YAAY,eAAG,MAAM,CAAC,KAAK,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC;oBAChD,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;oBAEvG,OAAO,CACH,oBAAC,wBAAc,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,IAAI,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBAC9E,6BAAK,SAAS,EAAC,QAAQ;4BACnB,oBAAC,eAAK,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,iBAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC;gCAC3F,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,YAAY,CAAQ,CAC7C,CACN,CACO,CACpB,CAAC;iBACL;YACL,CAAC,CAAC,CACA;QACN,6BAAK,SAAS,EAAC,2BAA2B,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5E,6BAAK,SAAS,EAAC,sBAAsB;gBACjC,6BAAK,SAAS,EAAC,sBAAsB;oBACjC,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACtB,oCAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAU,CAC5D,CACL;gBACN,oBAAC,oBAAU,IAAC,UAAU,EAAC,KAAK;oBACxB,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,EACpE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAC5C,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;wBACnC,QAAQ,EAAE,WAAW;wBACrB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;yBACzH;qBACJ,CAAC,EACJ;oBACF,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EACnE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAC3C,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;wBAClC,QAAQ,EAAE,UAAU;wBACpB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;yBACxH;qBACJ,CAAC,EACJ,CACO;gBAEb,oBAAC,oBAAU,IAAC,UAAU,EAAE,KAAK;oBACzB,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EACjE,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAC7C,QAAQ,EAAE,IAAI,IACV,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;wBAChC,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;yBACtH;wBACD,OAAO,EAAE;4BACL,KAAK,EAAE,wBAAW;4BAClB,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;yBAChE;qBACJ,CAAC,EACJ;oBACD,qCAA2B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CACtC,oBAAC,4BAAU,IACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,EAC3B,KAAK,EAAE;4BACH,QAAQ,EAAE;gCACN,KAAK,EAAE,IAAI;gCACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;6BACtH;4BACD,SAAS,EAAE;gCACP,KAAK,EAAE,CAAC;gCACR,OAAO,EAAE,0BAA0B;6BACtC;4BACD,SAAS,EAAE;gCACP,KAAK,EAAE,EAAE;gCACT,OAAO,EAAE,0BAA0B;6BACtC;4BACD,OAAO,EAAE;gCACL,KAAK,EAAE,uBAAuB;gCAC9B,OAAO,EAAE,gCAAgC;6BAC5C;yBACJ,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;4BAC9B,OAAO,CACH,oBAAC,mDAAwB,kBACrB,gBAAgB,EAAE,kBAAkB,CAAC,OAAO,CAAC,IACzC,KAAK,IACT,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oCACZ,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oCAClB,QAAQ,EAAE,CAAC;gCACf,CAAC,IACH,CACL,CAAC;wBACN,CAAC,GACH,CACL,CAAC,CAAC,CAAC,CACA,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,EACjE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,kBAAkB,CAAC,OAAO,CAAC,IACzC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;wBAChC,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;yBACtH;qBACJ,CAAC,EACJ,CACL,CACQ,CACX;YACN,6BAAK,SAAS,EAAC,EAAE;gBACb,6BAAK,SAAS,EAAC,sBAAsB;oBACjC,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wBACtB,oCAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAU,CACxD,CACL;gBAEN,oBAAC,oBAAU,IAAC,UAAU,EAAE,KAAK;oBACzB,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EACnE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAC3C,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;wBAClC,QAAQ,EAAE,UAAU;wBACpB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;yBACxH;qBACJ,CAAC,EACJ;oBACF,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAChE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,CAAC,IACxC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;wBAC/B,QAAQ,EAAE,OAAO;wBACjB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;yBACrH;qBACJ,CAAC,EACJ,CACO;gBACb,oBAAC,oBAAU,IAAC,UAAU,EAAE,KAAK;oBACzB,oBAAC,iBAAO,kBACJ,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,EACpE,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,EACd,gBAAgB,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAC5C,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;wBACnC,QAAQ,EAAE,WAAW;wBACrB,QAAQ,EAAE;4BACN,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;yBACzH;qBACJ,CAAC,EACJ;oBACF,oBAAC,4BAAU,IACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAC7B,KAAK,EAAE;4BACH,QAAQ,EAAE;gCACN,KAAK,EAAE,IAAI;gCACX,OAAO,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;6BACxH;yBACJ,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;4BAClB,MAAM,EAAE,GAAG,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAAxB,OAAgB,CAAQ,CAAC;4BAC/B,OAAO,oBAAC,yCAA+B,kBAAC,gBAAgB,EAAE,kBAAkB,CAAC,SAAS,CAAC,IAAM,IAAI,IAAE,YAAY,EAAE,IAAI,IAAI,CAAC;wBAC9H,CAAC,GACH,CACO,CACX,CACJ;QACN,oBAAC,mBAAS,OAAG,CACd,CACN,CAAC;AACN,CAAC;AA1RD,qCA0RC","sourcesContent":["import * as React from 'react';\nimport Text from '../../generic/Text';\nimport InputGroup from '../../generic/InputGroup/InputGroup';\nimport TextBox from '../../generic/TextBox';\nimport { TextType } from '../../generic/Text';\nimport { Translation } from '../../../translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport { useState } from 'react';\nimport Headline from '../../generic/Headline';\nimport Icon, { IconType } from '../../generic/Icon';\nimport { Color } from '../../../util/Color';\nimport StepConfirmationCountrySelector from './StepConfirmationCountrySelector';\nimport BasketRow from '../../../models/BasketRow';\nimport StringHelper from '../../../util/StringHelper';\nimport LineBreak from '../../generic/LineBreak';\n\nimport { useFormContext, Controller } from 'react-hook-form';\nimport Alert, { AlertType } from '../../generic/Alert';\nimport AutoAutoHeight from '../../../animations/AutoAutoHeight';\nimport DataLayer, { InteractionStep, InteractionType } from '../../../util/DataLayer';\nimport { EnhancedPhoneNumberField } from '../../generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField';\nimport E164PhoneNumberFieldFeature from '../../../providers/feature/E164PhoneNumberFieldFeature';\nimport { EMAIL_REGEX } from '../../../util/Validation';\n\nexport interface RoomContactDetailsProps {\n roomNumber: number;\n basketRow: BasketRow;\n\n showErrors?: boolean;\n expandable?: boolean;\n}\n\nexport default function RoomContactDetails(props: RoomContactDetailsProps) {\n const { register, formState, getValues, control } = useFormContext();\n const errors = formState.errors;\n\n const { t } = useTranslation();\n\n const [isOpen, setIsOpen] = useState(props.roomNumber === 1);\n const row = props.basketRow;\n\n const hasErrors =\n Object.keys(errors)\n .join('')\n .indexOf('' + props.roomNumber) !== -1;\n\n const getValidationClass = (name: string) => {\n const paddedName = padInputName(name);\n\n if (errors && (formState.touchedFields[paddedName] || props.showErrors)) {\n if (errors[paddedName]) {\n return 'error';\n } else {\n return 'success';\n }\n } else {\n return null;\n }\n };\n\n if (hasErrors && !isOpen) {\n setIsOpen(true);\n }\n\n const padInputName = (name: string) => {\n return `${name}${props.roomNumber}`;\n };\n\n const inputValues = Object.keys(getValues());\n const openExpandable = () => {\n if (props.expandable) setIsOpen(!isOpen);\n };\n const setForename = () => {\n DataLayer.instance.sendInteraction('Forename - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setSurname = () => {\n DataLayer.instance.sendInteraction('Surname - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setEmail = () => {\n DataLayer.instance.sendInteraction('Email - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setPhone = () => {\n DataLayer.instance.sendInteraction('Phone - Contact Info', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setAddress = () => {\n DataLayer.instance.sendInteraction('Address - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setCity = () => {\n DataLayer.instance.sendInteraction('City - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setPostCode = () => {\n DataLayer.instance.sendInteraction('PostCode - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n const setCountry = (event: any) => {\n DataLayer.instance.sendInteraction('Country - Address', InteractionType.FORM_FIELD, InteractionStep.GUEST_DETAILS);\n };\n\n return (\n <>\n <div className=\"u-marg-bottom\" onClick={openExpandable}>\n <div className=\"u-flex u-marg-bottom align-items-center\">\n <Headline bold={true}>\n {t(Translation.Misc.Room)} {props.roomNumber}\n </Headline>\n {props.expandable && <Icon icon={isOpen ? IconType.ArrowDown2 : IconType.ArrowUp2} color={Color.Grey} />}\n </div>\n <div className=\"u-marg-bottom\">\n <Text>\n <strong className=\"u-block@l-\">{row.getRoom().name}</strong> for {StringHelper.pluralWithDictAndCount(row.getAdults(), Translation.Step.Date.Adult, t)}\n , \n {StringHelper.pluralWithDictAndCount(row.getChildren(), Translation.Step.Date.Child, t)}\n </Text>\n <div className=\"step-one-status--dates u-flex justify-content-start\">\n <Text type={TextType.Small} color={Color.Accent}>\n <strong>{row.getStartDate().format('ddd, MMM D')}</strong>\n </Text>\n <Icon icon={IconType.ArrowRight2} size={'18px'} />\n <Text type={TextType.Small} color={Color.Accent}>\n <strong>{row.getEndDate().format('ddd, MMM D')}</strong>\n </Text>\n </div>\n </div>\n {inputValues.map((error, index: number) => {\n if (error.endsWith(`${props.roomNumber}`)) {\n let errorMessage = errors[error]?.message ?? '';\n errorMessage = errorMessage ? errorMessage : error.replace(`${props.roomNumber}`, '') + ' is required';\n\n return (\n <AutoAutoHeight key={error} open={props.showErrors && hasErrors && !!errors[error]}>\n <div className=\"u-flex\">\n <Alert icon={IconType.Error} type={AlertType.Danger} noMargin={index === inputValues.length - 1}>\n <Text type={TextType.Small}>{errorMessage}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n );\n }\n })}\n </div>\n <div className=\"room-contact-details--row\" style={{ maxHeight: isOpen ? '' : 0 }}>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Confirmation.ContactInfo)}</strong>\n </Text>\n </div>\n <InputGroup dimensions=\"2/2\">\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Forename) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Forename')}\n {...register(padInputName('Forename'), {\n onChange: setForename,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Forename) }),\n },\n })}\n />\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Surname) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Surname')}\n {...register(padInputName('Surname'), {\n onChange: setSurname,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Surname) }),\n },\n })}\n />\n </InputGroup>\n\n <InputGroup dimensions={'2/2'}>\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Email) + ' *'}\n wide={true}\n validationStatus={getValidationClass('Email')}\n required={true}\n {...register(padInputName('Email'), {\n onChange: setEmail,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Email) }),\n },\n pattern: {\n value: EMAIL_REGEX,\n message: t(Translation.Step.Confirmation.Inputs.InvalidEmail),\n },\n })}\n />\n {E164PhoneNumberFieldFeature.isActive() ? (\n <Controller\n control={control}\n name={padInputName('Phone')}\n rules={{\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Phone) }),\n },\n minLength: {\n value: 5,\n message: 'Phone number is required',\n },\n maxLength: {\n value: 17,\n message: 'Phone number is too long',\n },\n pattern: {\n value: /^[1-9](\\ |\\d){1,15}$/g,\n message: 'Incorrect phone number entered',\n },\n }}\n render={({ field, fieldState }) => {\n return (\n <EnhancedPhoneNumberField\n validationStatus={getValidationClass('Phone')}\n {...field}\n onChange={(e) => {\n field.onChange(e);\n setPhone();\n }}\n />\n );\n }}\n />\n ) : (\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Phone) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Phone')}\n {...register(padInputName('Phone'), {\n onChange: setPhone,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Phone) }),\n },\n })}\n />\n )}\n </InputGroup>\n </div>\n <div className=\"\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Confirmation.Address)}</strong>\n </Text>\n </div>\n\n <InputGroup dimensions={'3/1'}>\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.Address) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('Address')}\n {...register(padInputName('Address'), {\n onChange: setAddress,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Address) }),\n },\n })}\n />\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.City) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('City')}\n {...register(padInputName('City'), {\n onChange: setCity,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.City) }),\n },\n })}\n />\n </InputGroup>\n <InputGroup dimensions={'2/2'}>\n <TextBox\n placeholder={t(Translation.Step.Confirmation.Inputs.PostCode) + ' *'}\n wide={true}\n required={true}\n validationStatus={getValidationClass('PostCode')}\n {...register(padInputName('PostCode'), {\n onChange: setPostCode,\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.PostCode) }),\n },\n })}\n />\n <Controller\n control={control}\n name={padInputName('Country')}\n rules={{\n required: {\n value: true,\n message: t(Translation.Step.Confirmation.Inputs.Required, { field: t(Translation.Step.Confirmation.Inputs.Country) }),\n },\n }}\n render={({ field }) => {\n const { ref, ...rest } = field;\n return <StepConfirmationCountrySelector validationStatus={getValidationClass('Country')} {...rest} defaultValue={null} />;\n }}\n />\n </InputGroup>\n </div>\n </div>\n <LineBreak />\n </>\n );\n}\n"]}
|
|
@@ -63,12 +63,15 @@ function RoomRates(props) {
|
|
|
63
63
|
};
|
|
64
64
|
const maxRows = hasFeaturedRates && !showingMoreOpen ? featuredRates.length : numOfRatesToShowFirst;
|
|
65
65
|
let rowsLeftToOpen = 0;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
if (featuredRates && featuredRates.length) {
|
|
67
|
+
featuredRates.sort(RoomSortProvider_1.default.getSortByFunction(sortBy));
|
|
68
|
+
// First we add Featured Rates to the top of the list - no limits there
|
|
69
|
+
featuredRates.forEach((row) => {
|
|
70
|
+
if (row) {
|
|
71
|
+
itemsToRender.push(renderRoomRateRow(row, true));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
72
75
|
// Then we do a tricky check to see if MOD intent should be displayed
|
|
73
76
|
if (!hasFeaturedRates || showingMoreOpen) {
|
|
74
77
|
if (!props.hideMemberOnlyRow &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomRates.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/roomRates/RoomRates.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RoomRates.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/roomRates/RoomRates.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport RoomRateRow from './RoomRateRow';\nimport { RoomRate } from '../../../../../models/Room/RoomRate';\nimport { useState, useEffect, useContext, useMemo } from 'react';\nimport { IconType } from '../../../../generic/Icon';\nimport BEButton from '../../../../generic/BEButton';\nimport { Color } from '../../../../../util/Color';\nimport { BasketContext, BookingEngineContext } from '@frontend/contexts';\nimport RoomSortProvider from '../../../../../providers/RoomSortProvider';\n\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from '../../../../../translations/Translation';\nimport DataLayer from '../../../../../util/DataLayer';\nimport MembersOnlyRow from './MembersOnlyRow';\nimport ScreenSize from '../../../../../util/ScreenSize';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { CompanyContext } from '@frontend/contexts';\nexport interface RoomRatesProps {\n roomCode: string;\n rates: RoomRate[];\n\n featuredRates?: RoomRate[];\n\n classNames?: string;\n\n hideMemberOnlyRow?: boolean;\n\n // Inline Booking Widget overrides\n getButtonLabel?: (isRoomSelectedAndEditing: boolean, isThisSelectedRow: boolean) => string;\n onAddToBasketOverride?: (rate: RoomRate) => void;\n}\n\nexport default function RoomRates(props: RoomRatesProps) {\n const { t } = useTranslation();\n const [showingMoreOpen, setShowingMoreOpen] = useState(false);\n\n const basketContext = useContext(BasketContext);\n const beContext = useContext(BookingEngineContext);\n\n const ccx = useContext(CompanyContext);\n\n const { hotel } = useCurrentHotel();\n\n const { rates } = props;\n\n const numOfRatesToShowFirst = beContext.screenSize <= ScreenSize.Medium ? 2 : 3;\n\n const sortBy = beContext.currentRoomSort;\n\n useEffect(() => {\n if (basketContext.selectedBasketRow?.getRoom() && basketContext.selectedBasketRow.getRoom().code === props.roomCode) {\n setShowingMoreOpen(true);\n }\n }, [basketContext.selectedBasketRow]);\n\n useEffect(() => {\n DataLayer.instance.sendRoomImpressions();\n }, [showingMoreOpen]);\n\n return useMemo(() => {\n const featuredRates = props.featuredRates?.filter((rate) => !!rate);\n const hasFeaturedRates = !!featuredRates && featuredRates.length > 0;\n\n let sortedRates: RoomRate[];\n\n if (rates.length !== 0) {\n sortedRates = rates.sort(RoomSortProvider.getSortByFunction(sortBy));\n }\n\n // Need two sorts because of MOD\n sortedRates = rates.sort((a, b) => {\n if (a.isMemberOnly) {\n return -1;\n } else if (b.isMemberOnly) {\n return 1;\n } else {\n return 0;\n }\n });\n\n const showMoreOnClick = () => {\n setShowingMoreOpen(true);\n };\n\n const itemsToRender = [];\n\n const renderRoomRateRow = (rate: RoomRate, isPromo = false) => {\n return <RoomRateRow key={rate.name} rate={rate} getButtonLabel={props.getButtonLabel} onAddToBasketOverride={props.onAddToBasketOverride} isPromoRate={isPromo} />;\n };\n\n const maxRows = hasFeaturedRates && !showingMoreOpen ? featuredRates.length : numOfRatesToShowFirst;\n let rowsLeftToOpen = 0;\n\n if (featuredRates && featuredRates.length) {\n featuredRates.sort(RoomSortProvider.getSortByFunction(sortBy));\n // First we add Featured Rates to the top of the list - no limits there\n featuredRates.forEach((row) => {\n if (row) {\n itemsToRender.push(renderRoomRateRow(row, true));\n }\n });\n }\n\n // Then we do a tricky check to see if MOD intent should be displayed\n if (!hasFeaturedRates || showingMoreOpen) {\n if (\n !props.hideMemberOnlyRow &&\n !!hotel?.memberOnlyPromoCode &&\n (!ccx.signedInUser || hotel?.memberOnlyPromoCode === basketContext?.selectedBasketRow?.getPromoCode())\n ) {\n itemsToRender.push(<MembersOnlyRow />);\n }\n }\n\n // Then we add the remaining rates to the render list - stop adding if we hit `maxRows`\n sortedRates.forEach((rate: RoomRate) => {\n if (itemsToRender.length < maxRows || showingMoreOpen) {\n itemsToRender.push(renderRoomRateRow(rate));\n } else {\n rowsLeftToOpen++;\n }\n });\n\n return (\n <div className={props.classNames ?? ''}>\n {itemsToRender.map((item: any, index: number) => {\n return <React.Fragment key={index}>{item}</React.Fragment>;\n })}\n {rowsLeftToOpen > 0 && (\n <div className=\"room-show-more\">\n <BEButton icon={IconType.ArrowDown2} iconPosition=\"right\" stopIconAnimation={true} isText={true} textColor={Color.Navy} onClick={showMoreOnClick}>\n {t(Translation.Step.Room.RoomInfo.Show)} {rowsLeftToOpen} {t(Translation.Step.Room.RoomInfo.MoreRates)}\n </BEButton>\n </div>\n )}\n </div>\n );\n }, [props.featuredRates, rates, beContext.currentRoomSort, showingMoreOpen]);\n}\n"]}
|
|
@@ -43,10 +43,12 @@ const hooks_1 = require("@frontend/hooks");
|
|
|
43
43
|
const BasketRow_1 = require("../../models/BasketRow");
|
|
44
44
|
const contexts_1 = require("@frontend/contexts");
|
|
45
45
|
const FeaturedPromoFeature_1 = require("providers/feature/FeaturedPromoFeature");
|
|
46
|
+
const RoomListSearchEvent_1 = require("events/actions/RoomListSearchEvent");
|
|
46
47
|
function InlineRoomMiniEngineElement(props) {
|
|
47
48
|
var _a;
|
|
48
49
|
const { hotel } = hooks_1.useCurrentHotel();
|
|
49
50
|
const basketContext = react_1.useContext(contexts_1.BasketContext);
|
|
51
|
+
const ccx = react_1.useContext(contexts_1.CompanyContext);
|
|
50
52
|
const row = basketContext.currentBasketRows[0];
|
|
51
53
|
const [isLoading, setLoading] = react_1.useState(true);
|
|
52
54
|
const [ranFirstLoad, setRanFirstLoad] = react_1.useState(false);
|
|
@@ -58,6 +60,7 @@ function InlineRoomMiniEngineElement(props) {
|
|
|
58
60
|
const { t } = react_i18next_1.useTranslation();
|
|
59
61
|
const [ref, bounds] = react_use_measure_1.default();
|
|
60
62
|
const thisElement = React.useRef();
|
|
63
|
+
const { raise } = hooks_1.useEvent();
|
|
61
64
|
let promoCodeTooltip = '';
|
|
62
65
|
if ((row === null || row === void 0 ? void 0 : row.getPromoCodeStatus()) === 'new') {
|
|
63
66
|
promoCodeTooltip = row.getPromoCode() ? 'Promo Code is being checked... please wait.' : 'Set a Promo Code for a possible offer!';
|
|
@@ -95,7 +98,7 @@ function InlineRoomMiniEngineElement(props) {
|
|
|
95
98
|
}
|
|
96
99
|
}, [row === null || row === void 0 ? void 0 : row.getPromoCode()]);
|
|
97
100
|
react_1.useEffect(() => {
|
|
98
|
-
var _a, _b, _c;
|
|
101
|
+
var _a, _b, _c, _d, _e, _f;
|
|
99
102
|
if (!(rooms && rooms.length > 0))
|
|
100
103
|
return;
|
|
101
104
|
const room = rooms[0];
|
|
@@ -117,6 +120,45 @@ function InlineRoomMiniEngineElement(props) {
|
|
|
117
120
|
else {
|
|
118
121
|
nonPromoRates = room.getRates();
|
|
119
122
|
}
|
|
123
|
+
try {
|
|
124
|
+
const search = {
|
|
125
|
+
checkInTime: (_d = row === null || row === void 0 ? void 0 : row.getStartDate()) === null || _d === void 0 ? void 0 : _d.format('YYYY-M-D'),
|
|
126
|
+
checkOutTime: (_e = row === null || row === void 0 ? void 0 : row.getEndDate()) === null || _e === void 0 ? void 0 : _e.format('YYYY-M-D'),
|
|
127
|
+
numAdults: row === null || row === void 0 ? void 0 : row.getAdults(),
|
|
128
|
+
numChildren: row === null || row === void 0 ? void 0 : row.getChildren(),
|
|
129
|
+
numRooms: 1,
|
|
130
|
+
promoCode: promoCode,
|
|
131
|
+
};
|
|
132
|
+
const eventRooms = (_f = rooms === null || rooms === void 0 ? void 0 : rooms.map((room) => {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
const { name, code } = room;
|
|
135
|
+
const foundRoom = {
|
|
136
|
+
name,
|
|
137
|
+
code,
|
|
138
|
+
lowestPrice: room.getLowestPrice(),
|
|
139
|
+
highestPrice: room.getHighestPrice(),
|
|
140
|
+
currency: ccx.currentCurrency,
|
|
141
|
+
rates: (_b = (_a = room.getRates()) === null || _a === void 0 ? void 0 : _a.map((rate) => {
|
|
142
|
+
const { name, code } = rate;
|
|
143
|
+
return {
|
|
144
|
+
name,
|
|
145
|
+
code,
|
|
146
|
+
price: {
|
|
147
|
+
averagePrice: rate.getAveragePrice(),
|
|
148
|
+
totalPrice: rate.getTotalPrice(),
|
|
149
|
+
currency: ccx.currentCurrency,
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
})) !== null && _b !== void 0 ? _b : [],
|
|
153
|
+
};
|
|
154
|
+
return foundRoom;
|
|
155
|
+
})) !== null && _f !== void 0 ? _f : [];
|
|
156
|
+
const event = new RoomListSearchEvent_1.RoomListSearchEvent(search, eventRooms);
|
|
157
|
+
raise(event);
|
|
158
|
+
}
|
|
159
|
+
catch (ex) {
|
|
160
|
+
console.warn(ex);
|
|
161
|
+
}
|
|
120
162
|
setStandardRates(nonPromoRates);
|
|
121
163
|
}, [rooms]);
|
|
122
164
|
react_1.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAA+B;AAC/B,yCAAmC;AAEnC,qDAAuC;AACvC,+BAA+B;AAE/B,gEAAyD;AACzD,yFAAkF;AAClF,kEAA2D;AAC3D,0DAAmD;AACnD,gEAA6D;AAC7D,iDAA+C;AAC/C,wDAA+D;AAC/D,wDAA+D;AAC/D,4CAAyC;AACzC,oDAAmF;AACnF,2FAAoF;AACpF,6EAAsE;AACtE,uDAA8C;AAG9C,4EAAgF;AAChF,8DAAkE;AAClE,oEAA6D;AAC7D,6EAAsE;AACtE,6EAAsE;AACtE,iCAAiE;AACjE,yDAA2C;AAE3C,gGAA6F;AAC7F,0FAAmF;AAEnF,4CAA4C;AAC5C,4EAAqE;AACrE,4DAAqD;AAGrD,2CAAkD;AAElD,sDAA+C;AAE/C,iDAA6H;AAC7H,iFAA0E;AAM1E,SAAwB,2BAA2B,CAAC,KAAuC;;IACvF,MAAM,EAAE,KAAK,EAAE,GAAG,uBAAe,EAAE,CAAC;IAEpC,MAAM,aAAa,GAAG,kBAAU,CAAC,wBAAa,CAAC,CAAC;IAEhD,MAAM,GAAG,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,gBAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,gBAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,gBAAQ,CAAS,EAAE,CAAC,CAAC;IAE/C,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,gBAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,gBAAQ,CAAa,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,gBAAQ,CAAa,EAAE,CAAC,CAAC;IAEnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,gBAAQ,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,GAAG,CAAC;IAChE,MAAM,EAAE,CAAC,EAAE,GAAG,8BAAc,EAAE,CAAC;IAE/B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,2BAAU,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAEnC,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB,QAAO,KAAK,EAAE;QACrC,gBAAgB,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,wCAAwC,CAAC;KACpI;SAAM;QACH,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB,QAAO,OAAO,EAAE;YACvC,gBAAgB,GAAG,+BAA+B,CAAC;SACtD;aAAM;YACH,gBAAgB,GAAG,sBAAsB,CAAC;SAC7C;KACJ;IAED,iBAAS,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,GAAG,EAAE;YACN,aAAa,CAAC,YAAY,CAAC,IAAI,mBAAS,EAAE,CAAC,CAAC;YAC5C,OAAO;SACV;QAED,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;YAChE,oBAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC3E,IAAI,CAAC,SAAS,EAAE;oBACZ,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAChF,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,eAAe,CAAC,IAAI,CAAC,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,GAAG,EAAE;YACR,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,iBAAS,CAAC,GAAG,EAAE;QACX,IAAI,GAAG,EAAE;YACL,gBAAgB,EAAE,CAAC;SACtB;IACL,CAAC,EAAE,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,GAAG,CAAC,CAAC;IAE1B,iBAAS,CAAC,GAAG,EAAE;;QACX,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAAE,OAAO;QAEzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,aAAa,GAAe,EAAE,CAAC;QACnC,IAAI,iBAAiB,GAAe,EAAE,CAAC;QAEvC,IAAI,8BAAoB,CAAC,QAAQ,EAAE,EAAE;YACjC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACvC,IAAI,OAAA,WAAW,CAAC,SAAS,0CAAE,WAAW,qBAAO,aAAa,CAAC,iBAAiB,0CAAE,YAAY,4CAAI,WAAW,GAAE,EAAE;oBACzG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;iBAC1C;qBAAM;oBACH,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;aACJ;YAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;aACvC;SACJ;aAAM;YACH,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnC;QAED,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,iBAAS,CAAC,GAAG,EAAE;QACX,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE;YACf,4DAA4D;YAC5D,6BAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACjD;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAA8D,EAAE,EAAE;QAC5G,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,EAAE;YACtC,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,2BAAe,CAAC,YAAY,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;YAClG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACzB;QAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE;YAChE,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,2BAAe,CAAC,YAAY,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;YAClG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAED,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,SAAsB,EAAE,OAAoB,EAAE,EAAE;QACtE,IAAI,SAAS,IAAI,OAAO,EAAE;YACtB,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAExB,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7C;IACL,CAAC,CAAC;IAEF,IAAI,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,GAAE,IAAI,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,GAAE,EAAE;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAChC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;KAC/C;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,MAAM,gBAAgB,GAAG,GAAS,EAAE;QAChC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,CAAC,MAAM,oBAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACxI,UAAU,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAA,CAAC;IACF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,KAAU,EAAE,EAAE;QAChD,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,MAAM,8BAA8B,GAAG,CAAC,KAAU,EAAE,EAAE;QAClD,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;QACrC,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;QAE5G,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACvB,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,IAAI,EAAE;gBACN,mBAAmB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,IAAc,EAAE,EAAE;QACpD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACnC,mBAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAE5G,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAClD,OAAO;aACF,aAAa,CAAC;YACX,IAAI,EAAE,0BAAgB,CAAC,OAAO,EAAE;SACnC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;;YACP,iCAAiC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,mCAAI,YAAY,IAAI,0BAAgB,CAAC,UAAU,EAAE,YAAY,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5I,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,YAAY,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,GAAG,CAAC;QAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACjC,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,2BAAe,CAAC,MAAM,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;QACxG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAE,EAAE;QACjC,eAAe,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,YAAY,SAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,CAAC,CAAC;IAE9C,OAAO,eAAO,CACV,GAAG,EAAE;;QAAC,OAAA,CACF;YACI,6BAAK,SAAS,EAAE,yBAAyB,SAAS,EAAE;gBAChD,6BAAK,SAAS,EAAE,8DAA8D,EAAE,GAAG,EAAE,GAAG;oBACpF,6BAAK,SAAS,EAAC,2DAA2D;wBACtE,oBAAC,4BAAkB,IACf,SAAS,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,IAC5B,mBAAmB,EAAE,gBAAgB,EACrC,SAAS,EAAC,4DAA4D;4BAEtE,oBAAC,mBAAS,IAAC,KAAK,EAAC,qDAAqD,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa;gCAC9H,6BAAK,SAAS,EAAC,+EAA+E;oCAC1F,oBAAC,cAAI,IAAC,KAAK,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,IAAG,CAAC,CAAC,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,QAAQ,EAAE,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAE,CAAC,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,GAAE;wCAChI,kCAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,IAAG,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,cAAc,CAAQ,CACzE;oCACP,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,WAAW,GAAI;oCACpC,oBAAC,cAAI,IACD,KAAK,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,IAAG,CAAC,CAAC,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,QAAQ,EAC9D,SAAS,EAAC,qCAAqC,EAC/C,IAAI,EAAE,CAAC,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,GAAE;wCAE/B,kCAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,IAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAQ,CAC/E,CACL,CACE,CACK;wBACrB,oBAAC,mBAAS,IAAC,KAAK,EAAC,yBAAyB,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa;4BAClG,6BAAK,SAAS,EAAC,mEAAmE;gCAC9E,oBAAC,gBAAM,IACH,QAAQ,EAAE,4BAA4B,EACtC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,IAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;wCACzG,KAAK,IAAI,CAAC,CAAC;wCACX,OAAO;4CACH,IAAI,EAAE,sBAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;4CAChF,KAAK;yCACR,CAAC;oCACN,CAAC,CAAC,GACJ,CACA,CACE;wBACZ,oBAAC,mBAAS,IAAC,KAAK,EAAC,2BAA2B,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa;4BACpG,6BAAK,SAAS,EAAC,mEAAmE;gCAC9E,oBAAC,gBAAM,IACH,QAAQ,EAAE,8BAA8B,EACxC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,IAAG,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;wCACzG,OAAO;4CACH,IAAI,EAAE,sBAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;4CAChF,KAAK;yCACR,CAAC;oCACN,CAAC,CAAC,GACJ,CACA,CACE;wBACZ,oBAAC,mBAAS,IAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa;4BAC3F,6BAAK,SAAS,EAAC,+CAA+C,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB;gCAC3G,6BAAK,SAAS,EAAC,8DAA8D;oCACzE,oBAAC,cAAI,IAAC,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAE,eAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,IAAG,CAAC,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB,GAAG,CAAC,CAAC,aAAK,CAAC,IAAI,IACxH,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,IAAG,CAAC,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,GAAG,CAAC,CAAC,YAAY,CACtD;oCACP,oBAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,GAAI,CACtD,CACJ,CACE;wBACZ,oBAAC,cAAO,IACJ,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,6BAAmB,CAAC,eAAe,EAC9C,QAAQ,EAAE,WAAW,CAAC,OAAO,EAC7B,iBAAiB,EAAE,IAAI,EACvB,YAAY,EAAE;gCACV,QAAQ,EAAE,QAAQ;gCAClB,UAAU,EAAE,QAAQ;6BACvB,EACD,eAAe,EAAE;gCACb,QAAQ,EAAE,KAAK;gCACf,UAAU,EAAE,MAAM;6BACrB,EACD,OAAO,EAAE,mBAAmB;4BAE5B,6BAAK,SAAS,EAAC,cAAc;gCACzB;oCACI,oBAAC,wBAAc,IACX,KAAK,QAAE,aAAa,CAAC,iBAAiB,0CAAE,YAAY,IACpD,QAAQ,EAAE,eAAe,EACzB,KAAK,EACD,OAAA,aAAa,CAAC,iBAAiB,0CAAE,kBAAkB,QAAO,KAAK;4CAC3D,CAAC,CAAC,OAAA,aAAa,CAAC,iBAAiB,0CAAE,kBAAkB,QAAO,OAAO;4CACnE,CAAC,CAAC,IAAI,GAEhB,CACA;gCAEN,6BAAK,SAAS,EAAC,0DAA0D;oCACrE,oBAAC,kBAAQ,IAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,uBAAuB,aAE1D,CACT,CACJ,CACA,CACR;oBACN,6BAAK,SAAS,EAAE,kCAAkC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACxE,oBAAC,kBAAQ,IAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,kBAEnG,CACT,CACJ;gBACN,6BAAK,SAAS,EAAC,kBAAkB,IAC5B,CAAC,SAAS,CAAC,CAAC,CAAC,CACV,oBAAC,wBAAc,IAAC,IAAI,EAAE,CAAC,SAAS;oBAC5B;wBACI,oBAAC,mDAAwB,OAAG;wBAC3B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChB,oBAAC,mBAAS,IACN,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACvB,cAAc,EAAE,qBAAqB,EACrC,qBAAqB,EAAE,4BAA4B,GACrD,CACL,CAAC,CAAC,CAAC,CACA,oBAAC,uBAAa,OAAG,CACpB,CACF,CACU,CACpB,CAAC,CAAC,CAAC,CACA,oBAAC,qBAAW,OAAG,CAClB,CACC,CACJ,CACP,CACN,CAAA;KAAA,EACD,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAC1F,CAAC;AACN,CAAC;AAlUD,8CAkUC;AAEY,QAAA,iCAAiC,GAAG,CAAC,SAAkB,EAAE,MAA4B,EAAE,EAAE;IAClG,kBAAM,CACF,oBAAC,sCAA2B,IAAC,MAAM,EAAE,MAAM;QACvC,oBAAC,6BAAU;YACP,oBAAC,gDAA0B;gBACvB,oBAAC,kCAAmB;oBAChB,oBAAC,gCAAqB,IAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO;wBAC5D,oBAAC,+BAAoB;4BACjB,oBAAC,2BAA2B,IAAC,MAAM,EAAE,MAAM,GAAI,CAC5B,CACH,CACN,CACG,CACpB,CACa,EAC9B,SAAS,CACZ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport API from '../../api/BookingAPI';\nimport * as dayjs from 'dayjs';\n\nimport BEButton from '../../components/generic/BEButton';\nimport FloatingDatePicker from '../../components/generic/date/FloatingDatePicker';\nimport BETooltip from '../../components/generic/BETooltip';\nimport StringHelper from '../../util/StringHelper';\nimport { Translation } from '../../translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport Icon, { IconType } from '../../components/generic/Icon';\nimport Text, { TextType } from '../../components/generic/Text';\nimport { Color } from '../../util/Color';\nimport DataLayer, { InteractionType, InteractionStep } from '../../util/DataLayer';\nimport RoomRates from '../../components/steps/room/roomDetails/roomRates/RoomRates';\nimport LargeLoader from '../../components/generic/loader/LargeLoader';\nimport { HashRouter } from 'react-router-dom';\nimport type { InlineRoomMiniEngine } from './InlineRoomMiniEngine';\n\nimport { NotificationContextWrapper } from '../../contexts/NotificationContext';\nimport { ErrorContextWrapper } from '../../contexts/ErrorContext';\nimport AutoAutoHeight from '../../animations/AutoAutoHeight';\nimport RoomstayThemeEngine from '../../providers/RoomstayThemeEngine';\nimport RatesNotFound from '../../components/steps/room/RatesNotFound';\nimport { useContext, useState, useEffect, useMemo } from 'react';\nimport useMeasure from 'react-use-measure';\nimport { RoomRate } from '../../models/Room/RoomRate';\nimport { BookNowPayLaterInfoBlock } from '../../components/generic/BookNowPayLaterInfoBlock';\nimport StepConfirmation from '../../pages/steps/StepConfirmation/StepConfirmation';\n\nimport { Popover } from '@material-ui/core';\nimport PromoCodeInput from '../../components/generic/PromoCodeInput';\nimport Select from '../../components/generic/Select';\nimport { Room } from '../../models/Room/Room';\n\nimport { useCurrentHotel } from '@frontend/hooks';\n\nimport BasketRow from '../../models/BasketRow';\n\nimport { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContextWrapper } from '@frontend/contexts';\nimport FeaturedPromoFeature from 'providers/feature/FeaturedPromoFeature';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { hotel } = useCurrentHotel();\n\n const basketContext = useContext(BasketContext);\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 const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? 'Promo Code is being checked... please wait.' : 'Set a Promo Code for a possible offer!';\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = 'Successful promo code entered';\n } else {\n promoCodeTooltip = 'Error code not valid';\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel.hotelID).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms.filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row]);\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 let 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 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 basketContext.updateBasketRow(row);\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 setLoading(true);\n setRooms((await API.Availability.fetchAvailabilityData(row, hotel.hotelID)).filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return 'Book Now';\n };\n\n const updateNumberOfAdultsOnChange = (value: any) => {\n updatePeopleValues({ adults: value });\n };\n const updateNumberOfChildrenOnChange = (value: any) => {\n updatePeopleValues({ children: value });\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());\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 return useMemo(\n () => (\n <>\n <div className={`room-builder-progress ${isCompact}`}>\n <div className={`u-flex w-100 flex-wrap room-builder-progress--item --current`} ref={ref}>\n <div className=\"u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-\">\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className=\"u-w-100@xl- room-builder-progress--value u-marg-left--none\"\n >\n <BETooltip title=\"Select Arrival and departure dates by clicking here\" arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\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\n color={row?.getDepartureDate() ? Color.Accent : Color.Graphite}\n className=\"u-marg-right u-mw-75 u-align-center\"\n bold={!!row?.getDepartureDate()}\n >\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n </BETooltip>\n </FloatingDatePicker>\n <BETooltip title=\"Update number of adults\" arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfAdultsOnChange}\n items={[...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,\n };\n })}\n />\n </div>\n </BETooltip>\n <BETooltip title=\"Update number of children\" arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfChildrenOnChange}\n items={[...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,\n };\n })}\n />\n </div>\n </BETooltip>\n <BETooltip title={promoCodeTooltip} arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\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 </BETooltip>\n <Popover\n open={isPromoModalOpen}\n container={RoomstayThemeEngine.EngineContainer}\n anchorEl={thisElement.current}\n disableScrollLock={true}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n onClose={setPromoCodeOnClose}\n >\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 : null\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText={true} size=\"small\" onClick={cancelPromoPopupOnClick}>\n Cancel\n </BEButton>\n </div>\n </div>\n </Popover>\n </div>\n <div className={`u-flex flex-xl-nowrap flex-row ${isCompact ? 'w-100' : ''}`}>\n <BEButton filled={true} primary={true} isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n Check Rates\n </BEButton>\n </div>\n </div>\n <div className=\"u-border-rounded\">\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n />\n ) : (\n <RatesNotFound />\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 <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"]}
|
|
1
|
+
{"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport API from '../../api/BookingAPI';\nimport * as dayjs from 'dayjs';\n\nimport BEButton from '../../components/generic/BEButton';\nimport FloatingDatePicker from '../../components/generic/date/FloatingDatePicker';\nimport BETooltip from '../../components/generic/BETooltip';\nimport StringHelper from '../../util/StringHelper';\nimport { Translation } from '../../translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport Icon, { IconType } from '../../components/generic/Icon';\nimport Text, { TextType } from '../../components/generic/Text';\nimport { Color } from '../../util/Color';\nimport DataLayer, { InteractionType, InteractionStep } from '../../util/DataLayer';\nimport RoomRates from '../../components/steps/room/roomDetails/roomRates/RoomRates';\nimport LargeLoader from '../../components/generic/loader/LargeLoader';\nimport { HashRouter } from 'react-router-dom';\nimport type { InlineRoomMiniEngine } from './InlineRoomMiniEngine';\n\nimport { NotificationContextWrapper } from '../../contexts/NotificationContext';\nimport { ErrorContextWrapper } from '../../contexts/ErrorContext';\nimport AutoAutoHeight from '../../animations/AutoAutoHeight';\nimport RoomstayThemeEngine from '../../providers/RoomstayThemeEngine';\nimport RatesNotFound from '../../components/steps/room/RatesNotFound';\nimport { useContext, useState, useEffect, useMemo } from 'react';\nimport useMeasure from 'react-use-measure';\nimport { RoomRate } from '../../models/Room/RoomRate';\nimport { BookNowPayLaterInfoBlock } from '../../components/generic/BookNowPayLaterInfoBlock';\nimport StepConfirmation from '../../pages/steps/StepConfirmation/StepConfirmation';\n\nimport { Popover } from '@material-ui/core';\nimport PromoCodeInput from '../../components/generic/PromoCodeInput';\nimport Select from '../../components/generic/Select';\nimport { Room } from '../../models/Room/Room';\n\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\n\nimport BasketRow from '../../models/BasketRow';\n\nimport { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContext, CompanyContextWrapper } from '@frontend/contexts';\nimport FeaturedPromoFeature from 'providers/feature/FeaturedPromoFeature';\nimport { SearchParameters } from 'models/SearchParameters';\nimport { RoomListSearch } from 'models/RoomListSearch';\nimport { RoomListSearchEvent } from 'events/actions/RoomListSearchEvent';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { hotel } = useCurrentHotel();\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 const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef();\n\n const { raise } = useEvent();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? 'Promo Code is being checked... please wait.' : 'Set a Promo Code for a possible offer!';\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = 'Successful promo code entered';\n } else {\n promoCodeTooltip = 'Error code not valid';\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel.hotelID).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms.filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row]);\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 let 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 };\n\n const eventRooms: RoomListSearch[] =\n rooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name,\n code,\n lowestPrice: room.getLowestPrice(),\n highestPrice: room.getHighestPrice(),\n currency: ccx.currentCurrency,\n\n rates:\n room.getRates()?.map((rate) => {\n const { name, code } = rate;\n return {\n name,\n code,\n\n price: {\n averagePrice: rate.getAveragePrice(),\n totalPrice: rate.getTotalPrice(),\n currency: ccx.currentCurrency,\n },\n };\n }) ?? [],\n };\n\n return foundRoom;\n }) ?? [];\n\n const event = new RoomListSearchEvent(search, 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 basketContext.updateBasketRow(row);\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 setLoading(true);\n setRooms((await API.Availability.fetchAvailabilityData(row, hotel.hotelID)).filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return 'Book Now';\n };\n\n const updateNumberOfAdultsOnChange = (value: any) => {\n updatePeopleValues({ adults: value });\n };\n const updateNumberOfChildrenOnChange = (value: any) => {\n updatePeopleValues({ children: value });\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());\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 return useMemo(\n () => (\n <>\n <div className={`room-builder-progress ${isCompact}`}>\n <div className={`u-flex w-100 flex-wrap room-builder-progress--item --current`} ref={ref}>\n <div className=\"u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-\">\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className=\"u-w-100@xl- room-builder-progress--value u-marg-left--none\"\n >\n <BETooltip title=\"Select Arrival and departure dates by clicking here\" arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\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\n color={row?.getDepartureDate() ? Color.Accent : Color.Graphite}\n className=\"u-marg-right u-mw-75 u-align-center\"\n bold={!!row?.getDepartureDate()}\n >\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n </BETooltip>\n </FloatingDatePicker>\n <BETooltip title=\"Update number of adults\" arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfAdultsOnChange}\n items={[...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,\n };\n })}\n />\n </div>\n </BETooltip>\n <BETooltip title=\"Update number of children\" arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfChildrenOnChange}\n items={[...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,\n };\n })}\n />\n </div>\n </BETooltip>\n <BETooltip title={promoCodeTooltip} arrow={true} enterDelay={500} wrapperClasses={'u-w-100@xl-'}>\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 </BETooltip>\n <Popover\n open={isPromoModalOpen}\n container={RoomstayThemeEngine.EngineContainer}\n anchorEl={thisElement.current}\n disableScrollLock={true}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'center',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n onClose={setPromoCodeOnClose}\n >\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 : null\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText={true} size=\"small\" onClick={cancelPromoPopupOnClick}>\n Cancel\n </BEButton>\n </div>\n </div>\n </Popover>\n </div>\n <div className={`u-flex flex-xl-nowrap flex-row ${isCompact ? 'w-100' : ''}`}>\n <BEButton filled={true} primary={true} isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n Check Rates\n </BEButton>\n </div>\n </div>\n <div className=\"u-border-rounded\">\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n />\n ) : (\n <RatesNotFound />\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 <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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const EMAIL_REGEX: RegExp;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EMAIL_REGEX = void 0;
|
|
4
|
+
exports.EMAIL_REGEX = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
5
|
+
//# sourceMappingURL=Validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Validation.js","sourceRoot":"/","sources":["src/util/Validation.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,wJAAwJ,CAAC","sourcesContent":["export const EMAIL_REGEX = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n"]}
|