{"version":3,"file":"static/chunks/6303.32ac0caee1a8a63b.js","mappings":"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","sources":["webpack://_N_E/../../libs/mi-groups-components/src/organisms/RfpTray/RfpTray.styles.tsx","webpack://_N_E/../../libs/mi-groups-components/src/organisms/RfpTray/RfpCard/RfpCard.styles.tsx","webpack://_N_E/../../libs/mi-groups-components/src/organisms/RfpTray/RfpCard/RfpCard.tsx","webpack://_N_E/../../libs/mi-groups-components/src/organisms/RfpTray/CompareHotelsModal/CompareHotelsModal.styles.tsx","webpack://_N_E/../../libs/mi-groups-components/src/organisms/RfpTray/CompareHotelsModal/CompareHotelsModal.tsx","webpack://_N_E/../../libs/mi-groups-components/src/organisms/RfpTray/RfpTray.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { baseVariables, toRem } from '@marriott/mi-ui-library';\n\nconst { mediaQuery, font, color } = baseVariables;\n\nexport const StyledRfpHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: ${toRem(24)} 0;\n\n .rfp-title {\n margin-bottom: 0;\n color: ${color.base10};\n font-size: ${toRem(16)};\n line-height: ${toRem(20)};\n font-weight: ${font.fontWeightMedium};\n }\n`;\n\nexport const StyledRfpTray = styled.div`\n width: 100%;\n height: ${toRem(430)};\n padding: 0 ${toRem(24)} ${toRem(24)} ${toRem(24)};\n background-color: ${color.base20};\n border: ${toRem(1)} solid ${color.neutral20};\n border-radius: ${toRem(12)} ${toRem(12)} 0 0;\n box-shadow: 0 0 ${toRem(8)} 0 rgba(0, 0, 0, 0.07);\n\n @media ${mediaQuery.md} {\n height: ${toRem(240)};\n }\n\n @media ${mediaQuery.lg} {\n height: ${toRem(300)};\n }\n\n .container {\n height: 100%;\n padding: 0;\n\n @media ${mediaQuery.md} {\n padding: 0 ${toRem(16)};\n }\n\n .rfp-properties {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 70%;\n\n @media ${mediaQuery.md} {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n height: 70%;\n }\n\n @media ${mediaQuery.lg} {\n height: 75%;\n }\n }\n\n .rfp-cta {\n width: 100%;\n margin: ${toRem(24)} 0;\n @media ${mediaQuery.md} {\n width: auto;\n margin: 0;\n }\n }\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { baseVariables, toRem } from '@marriott/mi-ui-library';\n\nconst { mediaQuery, font, color } = baseVariables;\n\nexport const StyledRfpCard = styled.div`\n height: 31%;\n border-radius: ${toRem(12)};\n position: relative;\n\n @media ${mediaQuery.md} {\n width: 32%;\n height: 100%;\n }\n\n .card-container {\n height: 100%;\n\n div:first-child {\n height: 100%;\n\n .card-image {\n width: 100%;\n height: 100%;\n border-radius: ${toRem(12)};\n object-fit: cover;\n }\n }\n\n .card-title {\n width: 70%;\n background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.2));\n color: ${color.base20};\n font-size: ${font.fontM};\n line-height: ${toRem(20)};\n font-weight: ${font.fontWeightRegular};\n box-shadow: ${toRem(0)} ${toRem(-5)} ${toRem(30)} ${toRem(-5)} rgba(0, 0, 0, 1);\n position: absolute;\n left: 5%;\n bottom: 10%;\n overflow: hidden;\n ${css`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n `}\n }\n\n .undo-layer {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(255, 255, 255, 0.75);\n border-radius: ${12};\n button {\n background: transparent;\n font-size: ${toRem(16)};\n font-weight: ${font.fontWeightMedium};\n &:focus-visible {\n outline: -webkit-focus-ring-color auto ${toRem(1)};\n }\n }\n }\n }\n\n .remove-card {\n width: ${toRem(32)};\n height: ${toRem(32)};\n padding: ${toRem(4)};\n background-color: ${color.neutral20};\n color: ${color.base10};\n border-radius: ${toRem(4)};\n font-size: ${toRem(24)};\n position: absolute;\n top: ${toRem(8)};\n right: ${toRem(8)};\n &:focus-visible {\n outline: -webkit-focus-ring-color auto ${toRem(1)};\n }\n }\n\n .card-shell {\n height: 100%;\n background-color: ${color.neutral20};\n border-radius: ${toRem(12)};\n\n .shell-title {\n margin-bottom: ${toRem(8)};\n color: ${color.base10};\n font-size: ${toRem(16)};\n line-height: ${toRem(20)};\n font-weight: ${font.fontWeightRegular};\n }\n\n .shell-subtitle {\n font-size: ${font.fontXs};\n line-height: ${toRem(14)};\n font-weight: ${font.fontWeightRegular};\n color: ${color.base10};\n }\n }\n`;\n","import { FC } from 'react';\nimport { StyledRfpCard } from './RfpCard.styles';\nimport { RfpCardProps } from './RfpCard.types';\nimport { Image, Button } from '@marriott/mi-ui-library';\n\nexport const RfpCard: FC<RfpCardProps> = ({\n item,\n index,\n labels,\n isSearchResults,\n canRemove,\n onRemove,\n onUndoRemove,\n}) => {\n const { basicInformation, image, isMarkForRemoved } = item;\n const { property, optional, removeAriaLabel, undoProperty } = labels;\n\n return (\n <StyledRfpCard>\n {basicInformation?.name ? (\n <div className=\"card-container\">\n <div role=\"img\" tabIndex={0} aria-label={`${basicInformation.name} ${image?.altText}`}>\n <Image\n title=\"\"\n defaultImageURL={`${image?.defaultImageUrl}`}\n altText={image?.altText}\n customClass=\"card-image\"\n />\n </div>\n {isSearchResults || (!isSearchResults && canRemove && !isMarkForRemoved) ? (\n <Button\n className={'icon-clear remove-card'}\n ariaLabel={`${removeAriaLabel?.replace('{name}', basicInformation.name)}`}\n callback={() => onRemove(item.id)}\n />\n ) : null}\n <div className=\"card-title\">{basicInformation.name}</div>\n {!isSearchResults && isMarkForRemoved ? (\n <div className=\"undo-layer\">\n <Button ariaLabel={`${undoProperty} ${basicInformation.name}`} callback={() => onUndoRemove(item.id)}>\n {undoProperty}\n </Button>\n </div>\n ) : null}\n </div>\n ) : isSearchResults ? (\n <div className=\"card-shell d-flex justify-content-center align-items-center flex-column\">\n <span className=\"shell-title\">{`${property} ${index + 1}`}</span>\n <span className=\"shell-subtitle\">{optional}</span>\n </div>\n ) : null}\n </StyledRfpCard>\n );\n};\n","import styled from 'styled-components';\nimport { toRem, baseVariables } from '@marriott/mi-ui-library';\n\nconst { mediaQuery, font, color } = baseVariables;\n\nexport const StyledCompareHotelsModal = styled.div`\n .compare-hotels-modal {\n border-radius: ${toRem(14)} ${toRem(14)} 0 0;\n\n .header-heading {\n font-size: ${font.fontL};\n line-height: ${font.lineHeightXl};\n font-weight: ${font.fontWeightMedium};\n }\n\n .modal-body {\n .card-container {\n height: 100%;\n .compact-card {\n height: 100%;\n }\n }\n\n .carousel-nav {\n cursor: pointer;\n }\n\n .map-container {\n border-radius: ${toRem(15)};\n overflow: hidden;\n .map-marker {\n width: 80%;\n white-space: normal;\n font-weight: ${font.fontWeightRegular};\n line-height: ${font.lineHeightM};\n background-color: ${color.base20};\n }\n .gm-style-mtc button,\n .gm-fullscreen-control,\n .gm-svpc,\n .gm-control-active,\n .gm-style-cc button {\n &:focus-visible {\n outline: -webkit-focus-ring-color auto ${toRem(1)};\n }\n }\n }\n }\n\n .modal-footer {\n background-color: ${color.base20};\n border-top: none;\n }\n\n @media ${mediaQuery.md} {\n border-radius: ${toRem(14)};\n\n .header-heading {\n font-size: ${font.fontXxl};\n line-height: ${font.lineHeightXxl};\n }\n\n .modal-body {\n max-height: 68dvh !important;\n }\n }\n }\n`;\n","import { FC, useEffect, useState, useContext } from 'react';\nimport clsx from 'clsx';\nimport { CarouselContext, CarouselProvider, Slide, Slider } from 'pure-react-carousel';\nimport { baseVariables, Button, MapComponent, MapMarker, Modal, toRem, Types } from '@marriott/mi-ui-library';\nimport { HotelBasicInformation, HotelMediaContent } from '@marriott/mi-groups-graphql';\nimport { Marker } from '../../../molecules/MapView/MapView.types';\nimport { useMediaQuery } from '../../../hooks';\nimport {\n getPropertyLargestRoomArea,\n getPropertyAirportDistanceLabel,\n getPropertyItemValue,\n getReviewsUrl,\n getAreaValueAndUnitForLocale,\n isAllowedForLocale,\n} from '../../../utils';\nimport { useRfpTrayStore, useLocaleStore } from '../../../store';\nimport { PropertyCardType, PropertyCard } from '../../../molecules';\nimport { RfpProperty } from '../RfpCard/RfpCard.types';\nimport { CompareHotelsModalProps, PropertyCarouselProps } from './CompareHotelsModal.types';\nimport { StyledCompareHotelsModal } from './CompareHotelsModal.styles';\n\nexport const CarouselNavigation = ({ totalSlides }: { totalSlides: number }) => {\n const carouselContext = useContext(CarouselContext);\n const [activeSlide, setActiveSlide] = useState(0);\n\n useEffect(() => {\n function onChange() {\n const currentSlide = carouselContext.state.currentSlide;\n setActiveSlide(Math.ceil(currentSlide));\n }\n carouselContext?.subscribe(onChange);\n return () => carouselContext?.unsubscribe(onChange);\n }, [carouselContext]);\n\n return (\n <div className=\"d-flex justify-content-center\">\n <div className=\"carouselControlType3b\">\n <div>\n {Array.from(Array(totalSlides)).map((_, index) => (\n <Button\n key={index}\n ariaLabel={`carousel-nav-${index + 1}`}\n className={clsx('carousel-nav', activeSlide === index && 'is-active')}\n testId={`carousel-nav-${index}`}\n callback={() => carouselContext.setStoreState({ currentSlide: index })}\n />\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport const PropertyCarousel: FC<PropertyCarouselProps> = ({ labels, properties }) => {\n const isTablet = useMediaQuery(baseVariables.mediaQuery.md);\n\n const propertyCard = (property: RfpProperty) => {\n const { seoNickname, media, reviews, airports, basicInformation, meetingRooms } = property;\n const { brand, name, numberOfRooms, numberOfSuites } = (basicInformation as HotelBasicInformation) || {};\n\n const reviewsAndDistance = {\n rating: `${getPropertyItemValue(reviews?.stars?.count || '')}`,\n reviewCount: reviews?.numberOfReviews?.count\n ? `${getPropertyItemValue(reviews.numberOfReviews.count)} ${labels.reviews}`\n : '',\n reviewLink: getReviewsUrl(seoNickname || '', brand?.id),\n reviewTooltipText: labels.reviewTooltipText,\n distance: getPropertyAirportDistanceLabel(airports || [], labels.toAirport),\n };\n\n const getPropertyAttributes = () => {\n const attributes = [];\n\n if (meetingRooms?.totalNumberOfMeetingRooms) {\n attributes.push({\n label: labels.meetingEventRooms,\n value: `${meetingRooms.totalNumberOfMeetingRooms}`,\n });\n }\n\n if (numberOfRooms || numberOfSuites) {\n attributes.push({\n label: labels.guestRooms,\n value: getPropertyItemValue(parseInt(numberOfRooms ?? '0', 10) + parseInt(numberOfSuites ?? '0', 10)),\n });\n }\n\n const eventSpaceArea = meetingRooms?.totalAreaOfMeetingSpace;\n const eventSpaceAreaUnit = meetingRooms?.areaUnit;\n\n if (eventSpaceArea) {\n const { area, unit } = getAreaValueAndUnitForLocale(eventSpaceArea, eventSpaceAreaUnit!, labels.spaceUnit);\n attributes.push({\n label: labels.totalEventSpace,\n value: getPropertyItemValue(area, unit),\n });\n }\n\n const largestRoomArea = getPropertyLargestRoomArea(meetingRooms?.edges || []);\n const largestRoomAreaUnit = meetingRooms?.areaUnit;\n\n if (largestRoomArea) {\n const { area, unit } = getAreaValueAndUnitForLocale(+largestRoomArea, largestRoomAreaUnit!, labels.spaceUnit);\n attributes.push({\n label: labels.largestRoom,\n value: getPropertyItemValue(area, unit),\n });\n }\n\n return attributes;\n };\n\n return (\n <div key={property.id} className=\"pb-3 card-container\">\n <PropertyCard\n id={property.id}\n type={PropertyCardType.COMPACT}\n media={media as HotelMediaContent}\n mediaLabels={{\n carouselAriaLabel: labels.carouselAriaLabel,\n carouselImageAriaLabel: labels.carouselImageAriaLabel,\n logoAriaLabel: labels.logoAriaLabel,\n }}\n brand={brand}\n propertyName={{\n title: name || '',\n }}\n reviewsAndDistance={reviewsAndDistance}\n showDescription={true}\n description={getPropertyAttributes()}\n />\n </div>\n );\n };\n\n return (\n <div data-testid=\"property-card-carousel\">\n {isTablet && properties?.length === 3 ? (\n <CarouselProvider\n naturalSlideWidth={10}\n naturalSlideHeight={640}\n totalSlides={properties?.length}\n visibleSlides={2}\n isIntrinsicHeight={true}\n step={1}\n dragStep={1}\n >\n <Slider classNameTray=\"slider\">\n {properties?.map((property, index) => (\n <Slide key={property.id} index={index} className=\"slide\">\n {propertyCard(property)}\n </Slide>\n ))}\n </Slider>\n <CarouselNavigation totalSlides={2} />\n </CarouselProvider>\n ) : (\n <div className={clsx('d-md-flex justify-content-md-between')}>\n {properties?.map(property => propertyCard(property))}\n </div>\n )}\n </div>\n );\n};\n\nexport const CompareHotelsModal: FC<CompareHotelsModalProps> = props => {\n const { onClose, show, labels } = props;\n const { color, font } = baseVariables;\n\n const apiKey = process.env['GOOGLE_MAP_API_KEY'] ?? '';\n const mapId = process.env['GOOGLE_MAP_ID'] ?? '';\n\n const isTablet = useMediaQuery(baseVariables.mediaQuery.md);\n\n const { locale } = useLocaleStore();\n const { properties } = useRfpTrayStore();\n\n const availableProperties = properties.filter(property => !property?.isMarkForRemoved);\n\n const markers = availableProperties.map(property => ({\n id: property.id,\n name: property.basicInformation?.name || '',\n lat: +((property.basicInformation as HotelBasicInformation)?.latitude ?? 0),\n lng: +((property.basicInformation as HotelBasicInformation)?.longitude ?? 0),\n isActive: false,\n }));\n\n const center = {\n lat: markers[0].lat ?? 0,\n lng: markers[0].lng ?? 0,\n };\n\n return (\n <StyledCompareHotelsModal>\n <Modal\n modalId=\"compareHotelsModal\"\n role=\"dialog\"\n labelledBy=\"compareHotelsModal\"\n secondaryClassName=\"compare-hotels-modal\"\n show={show}\n popupOpenState={show}\n handleBlur={true}\n disableScrollOnBody={true}\n setPopupOpenState={onClose}\n onClose={onClose}\n >\n <Modal.Header\n headingTagElement={Types.tags.div}\n labelText={labels.title}\n popupHeaderOnCLoseFunc={onClose}\n closeIconClickTrackValue=\"no tracking\"\n ></Modal.Header>\n <Modal.Body className=\"custom-scrollbar mt-3 px-3 px-md-4 modal-body\">\n <>\n <PropertyCarousel labels={labels} properties={availableProperties} />\n {isAllowedForLocale(locale) && (\n <div className=\"map-container\">\n <MapComponent\n googleMapsApiKey={apiKey}\n mapId={mapId}\n mapContainerStyle={{ height: '100%', width: '100%' }}\n mapHeight={isTablet ? toRem(420) : toRem(270)}\n zoom={15}\n center={center}\n options={{\n fullscreenControl: true,\n zoomControl: true,\n gestureHandling: 'greedy',\n mapTypeControlOptions: {\n mapTypeIds: [window.google.maps.MapTypeId.ROADMAP, window.google.maps.MapTypeId.SATELLITE],\n style: window.google.maps.MapTypeControlStyle.DROPDOWN_MENU,\n },\n }}\n children={markers?.map((marker: Marker) => (\n <MapMarker\n key={marker.id}\n label={{\n text: marker.name,\n fontSize: font.fontS,\n color: color.base10,\n className: 'm-map-pin map-marker',\n }}\n position={{ lat: marker.lat, lng: marker.lng }}\n />\n ))}\n />\n </div>\n )}\n </>\n </Modal.Body>\n <Modal.FooterGeneric className=\"modal-footer\" />\n </Modal>\n </StyledCompareHotelsModal>\n );\n};\n","import { FC, useState, useEffect } from 'react';\nimport { EditableComponent } from '@adobe/aem-react-editable-components';\nimport { LazyQueryHookOptions, useLazyQuery } from '@apollo/client';\nimport { getPropertiesByIdsQuery, RfpPropertyDetails } from '@marriott/mi-groups-graphql';\nimport { Button, baseVariables } from '@marriott/mi-ui-library';\nimport { StyledRfpTray, StyledRfpHeader } from './RfpTray.styles';\nimport { RfpTrayProps, RfpTrayView } from './RfpTray.types';\nimport { RfpCard } from './RfpCard';\nimport { CompareHotelsModal } from './CompareHotelsModal';\nimport { RfpSessionData } from '../EventProfile/EventProfile.types';\nimport { useLocaleStore, useRfpTrayStore, useSearchResultsStore } from '../../store';\nimport { Drawer } from '../../molecules/Drawer';\nimport { RFP_TRAY_MAX_SIZE } from '../../constants';\nimport { useMediaQuery } from '../../hooks';\nimport {\n getRfpSessionData,\n updateSession,\n getShortlistedMarshaCodes,\n getRfpProperty,\n getSession,\n getSearchQueryOptions,\n getQueryParams,\n isSearchCriteriaFoundInSession,\n} from '../../utils';\nimport clsx from 'clsx';\n\nexport const RfpTrayConfig = {\n emptyLabel: 'RfpTray',\n isEmpty: () => true,\n resourceType: `${process.env['NEXT_PUBLIC_AEM_SITE']}/components/content/rfp/rfptray`,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const RfpTray: FC<{ model: RfpTrayProps }> = (props: any) => {\n const {\n selectedProperties,\n property,\n optional,\n targetUrl,\n undoProperty,\n createRfpCta,\n compare,\n compareHotels,\n removeAriaLabel,\n showAriaLabel,\n hideAriaLabel,\n isSearchResultPage = true,\n createRfpTrackLocation,\n } = props.model;\n\n const isTabletAndAboveView = useMediaQuery(baseVariables.mediaQuery.md);\n const isDesktop = useMediaQuery(baseVariables.mediaQuery.lg);\n\n const {\n propertyIds,\n properties,\n visibility,\n setProperties,\n removeProperty,\n markAsRemovedProperty,\n undoMarkAsRemovedProperty,\n setVisibility,\n } = useRfpTrayStore();\n const { searchResults, isQuickGroupEnabled } = useSearchResultsStore();\n const { locale, rtl } = useLocaleStore();\n\n const [loader, setLoader] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n const [getPropertiesByIds] = useLazyQuery(getPropertiesByIdsQuery);\n\n const rfpProperties = Array.from({ length: RFP_TRAY_MAX_SIZE }, (_, index) => {\n if (properties[index]) {\n return properties[index];\n } else {\n return {\n id: '',\n basicInformation: {\n name: '',\n },\n image: {\n defaultImageUrl: '',\n title: '',\n altText: '',\n },\n };\n }\n });\n\n const isSingleProperty = isSearchResultPage\n ? false\n : properties.filter(property => !property.isMarkForRemoved)?.length === 1;\n\n const shortlistedMarshaCodes = getShortlistedMarshaCodes(properties);\n const marshaCodes = Object.keys(shortlistedMarshaCodes).join(',');\n\n useEffect(() => {\n if (isSearchResultPage) {\n populateRfpTray();\n } else {\n if (propertyIds?.length) {\n getRfpProperties(propertyIds);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [propertyIds]);\n\n const populateRfpTray = async () => {\n try {\n const { sessionData } = (await getSession()) as RfpSessionData;\n const groupSearchData = sessionData?.cacheData?.data;\n const queryOptions = getSearchQueryOptions(getQueryParams(window.location.search));\n\n if (groupSearchData && isSearchCriteriaFoundInSession(groupSearchData, queryOptions)) {\n const propertyIds = Object.keys(groupSearchData?.AriesGroupSearch?.rfpShortlistedMarshaCodes);\n if (propertyIds?.length) {\n getRfpProperties(propertyIds);\n }\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n const getRfpProperties = (propertyIds: Array<string>) => {\n const uxlOptions: LazyQueryHookOptions = {\n variables: { ids: propertyIds },\n context: {\n headers: {\n 'accept-language': locale,\n },\n },\n fetchPolicy: 'no-cache',\n onCompleted: data => {\n const properties = data.propertiesByIds?.map((property: RfpPropertyDetails) =>\n getRfpProperty(property, isDesktop as boolean, isTabletAndAboveView as boolean)\n );\n if (properties?.length) {\n setProperties(properties);\n }\n },\n };\n\n getPropertiesByIds(uxlOptions);\n };\n\n const handleRemove = (id: string | number) => {\n isSearchResultPage ? removeProperty(id) : markAsRemovedProperty(id);\n };\n\n const handleCreateRfp = async () => {\n const rfpSessionData = getRfpSessionData(\n searchResults?.total,\n shortlistedMarshaCodes,\n isQuickGroupEnabled,\n locale\n ) as unknown as Record<string, string>;\n\n try {\n setLoader(true);\n await updateSession(rfpSessionData);\n setLoader(false);\n window.location.href = `${targetUrl}?locale=${locale.replace(\n '-',\n '_'\n )}&dest=rfp&marshaCode=${marshaCodes}&erfpSignInOverlay=true`;\n } catch (e) {\n setLoader(false);\n }\n };\n\n const changeRfpTrayView = (isExpanded: boolean) => {\n setVisibility(isExpanded ? RfpTrayView.EXPANDED : RfpTrayView.COLLAPSED);\n };\n\n const createRfpAction = (\n <Button\n className={clsx('m-button-s', 'rfp-cta', loader && 'm-button skeleton-loader')}\n custom_click_track_value={`${createRfpTrackLocation} | ${createRfpCta} |internal`}\n callback={handleCreateRfp}\n >\n {createRfpCta}\n </Button>\n );\n\n const compareAction = (\n <Button\n className={clsx('m-button-s', 'rfp-cta', isSingleProperty && 'disabled')}\n isDisabled={isSingleProperty}\n custom_click_track_value={`Compare hotels|${compare} Button|internal|evar106=${marshaCodes.replace(\n /,\\s*/g,\n ' '\n )},event24`}\n callback={() => setShowModal(true)}\n >\n {compare}\n </Button>\n );\n\n const header = (\n <StyledRfpHeader>\n <h2 className=\"rfp-title\">{`${selectedProperties} (${\n isSearchResultPage ? properties.length : properties.filter(property => !property.isMarkForRemoved)?.length\n })`}</h2>\n {isTabletAndAboveView ? (isSearchResultPage ? createRfpAction : compareAction) : null}\n </StyledRfpHeader>\n );\n\n return (\n <EditableComponent config={RfpTrayConfig} {...props}>\n {properties.length ? (\n <>\n <Drawer\n variant=\"drawer\"\n placement=\"bottom\"\n initialState={visibility === RfpTrayView.EXPANDED}\n title={<div className=\"container\">{header}</div>}\n labels={{\n drawerAriaLabel: selectedProperties,\n hideAriaLabel,\n showAriaLabel,\n }}\n dir={rtl ? 'rtl' : 'ltr'}\n onChange={changeRfpTrayView}\n >\n <StyledRfpTray data-testid=\"rfptray\" data-component-name=\"o-groups-rfptray\">\n <div className=\"container\">\n {header}\n <div className=\"rfp-properties\">\n {rfpProperties.map((item, index) => (\n <RfpCard\n key={index}\n item={item}\n index={index}\n labels={{ property, optional, removeAriaLabel, undoProperty }}\n isSearchResults={isSearchResultPage}\n canRemove={!isSingleProperty}\n onRemove={handleRemove}\n onUndoRemove={undoMarkAsRemovedProperty}\n />\n ))}\n </div>\n {isTabletAndAboveView ? null : isSearchResultPage ? createRfpAction : compareAction}\n </div>\n </StyledRfpTray>\n </Drawer>\n {showModal && (\n <CompareHotelsModal labels={compareHotels} show={showModal} onClose={() => setShowModal(false)} />\n )}\n </>\n ) : null}\n </EditableComponent>\n );\n};\n"],"names":["mediaQuery","font","color","baseVariables","StyledRfpHeader","styled","div","toRem","base10","fontWeightMedium","base20","neutral20","md","lg","StyledRfpCard","fontM","fontWeightRegular","css","fontXs","RfpCard","item","index","labels","isSearchResults","canRemove","onRemove","onUndoRemove","basicInformation","image","isMarkForRemoved","property","optional","removeAriaLabel","undoProperty","name","className","role","tabIndex","aria-label","altText","Image","title","defaultImageURL","defaultImageUrl","customClass","Button","ariaLabel","replace","callback","id","span","StyledCompareHotelsModal","fontL","lineHeightXl","lineHeightM","fontXxl","lineHeightXxl","totalSlides","carouselContext","useContext","CarouselContext","activeSlide","setActiveSlide","useState","useEffect","onChange","Math","ceil","state","currentSlide","subscribe","unsubscribe","Array","from","map","_","clsx","testId","setStoreState","properties","isTablet","useMediaQuery","propertyCard","reviews","seoNickname","media","airports","meetingRooms","brand","numberOfRooms","numberOfSuites","reviewsAndDistance","rating","getPropertyItemValue","stars","count","reviewCount","numberOfReviews","reviewLink","getReviewsUrl","reviewTooltipText","distance","getPropertyAirportDistanceLabel","toAirport","PropertyCard","type","PropertyCardType","COMPACT","mediaLabels","carouselAriaLabel","carouselImageAriaLabel","logoAriaLabel","propertyName","showDescription","description","getPropertyAttributes","attributes","totalNumberOfMeetingRooms","push","label","meetingEventRooms","value","guestRooms","parseInt","eventSpaceArea","totalAreaOfMeetingSpace","eventSpaceAreaUnit","areaUnit","area","unit","getAreaValueAndUnitForLocale","spaceUnit","totalEventSpace","largestRoomArea","getPropertyLargestRoomArea","edges","largestRoomAreaUnit","largestRoom","data-testid","length","CarouselProvider","naturalSlideWidth","naturalSlideHeight","visibleSlides","isIntrinsicHeight","step","dragStep","Slider","classNameTray","Slide","CarouselNavigation","props","markers","onClose","show","locale","useLocaleStore","useRfpTrayStore","availableProperties","filter","lat","latitude","lng","longitude","isActive","center","Modal","modalId","labelledBy","secondaryClassName","popupOpenState","handleBlur","disableScrollOnBody","setPopupOpenState","Header","headingTagElement","Types","labelText","popupHeaderOnCLoseFunc","closeIconClickTrackValue","Body","PropertyCarousel","isAllowedForLocale","MapComponent","googleMapsApiKey","process","mapId","mapContainerStyle","height","width","mapHeight","zoom","options","fullscreenControl","zoomControl","gestureHandling","mapTypeControlOptions","mapTypeIds","window","google","maps","MapTypeId","ROADMAP","SATELLITE","style","MapTypeControlStyle","DROPDOWN_MENU","children","MapMarker","text","marker","fontSize","fontS","position","FooterGeneric","RfpTrayConfig","emptyLabel","isEmpty","resourceType","RfpTray","selectedProperties","targetUrl","createRfpCta","compare","compareHotels","showAriaLabel","hideAriaLabel","isSearchResultPage","createRfpTrackLocation","model","isTabletAndAboveView","isDesktop","propertyIds","visibility","setProperties","removeProperty","markAsRemovedProperty","undoMarkAsRemovedProperty","setVisibility","searchResults","isQuickGroupEnabled","useSearchResultsStore","rtl","loader","setLoader","showModal","setShowModal","getPropertiesByIds","useLazyQuery","getPropertiesByIdsQuery","rfpProperties","RFP_TRAY_MAX_SIZE","isSingleProperty","shortlistedMarshaCodes","getShortlistedMarshaCodes","marshaCodes","Object","keys","join","populateRfpTray","getRfpProperties","sessionData","groupSearchData","getSession","cacheData","data","queryOptions","getSearchQueryOptions","getQueryParams","location","search","isSearchCriteriaFoundInSession","AriesGroupSearch","rfpShortlistedMarshaCodes","error","console","variables","ids","context","headers","fetchPolicy","onCompleted","propertiesByIds","getRfpProperty","handleRemove","handleCreateRfp","rfpSessionData","getRfpSessionData","total","updateSession","href","e","createRfpAction","custom_click_track_value","compareAction","isDisabled","header","h2","EditableComponent","config","Drawer","variant","placement","initialState","RfpTrayView","EXPANDED","drawerAriaLabel","dir","changeRfpTrayView","isExpanded","COLLAPSED","StyledRfpTray","data-component-name","CompareHotelsModal"],"sourceRoot":"","ignoreList":[]}