{"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":[]}