{"version":3,"file":"static/chunks/3079.cb8efe6c7e9d5382.js","mappings":"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","sources":["webpack://_N_E/../../libs/mi-groups-components/src/organisms/ReslinkGuest/ReslinkGuest.tsx"],"sourcesContent":["import React, { FC, useEffect, useState } from 'react';\nimport { InlineMessages, InlineMessagesType } from '@marriott/mi-ui-library';\nimport { EditableComponent } from '@adobe/aem-react-editable-components';\nimport { useQuery } from '@apollo/client';\nimport {\n getReslinkEventByIdQuery,\n HotelMediaContent,\n ReslinkEventByIdResponse,\n ReslinkEventByIdInput,\n ReslinkType,\n} from '@marriott/mi-groups-graphql';\nimport { useLocaleStore } from '../../store';\nimport { isAllowedForLocale, getQueryParams, setCalendarOptions } from '../../utils';\nimport { ViewType } from '../SearchResults/SearchResults.types';\nimport { ViewToggle } from '../../molecules';\nimport { PROPERTY_IMAGE_LIST_CATEGORY_LIMIT, HTTP_SUCCESS_CODE } from '../../constants';\nimport { ReslinkGuestProps } from './ReslinkGuest.types';\nimport { PropertyMap } from './PropertyMap';\nimport { EventBanner } from './EventBanner';\nimport { PropertyList } from './PropertyList';\nimport { StyledPropertyList } from './ReslinkGuest.styles';\n\nexport const ReslinkGuestConfig = {\n emptyLabel: 'ReslinkGuest',\n isEmpty: () => true,\n resourceType: `${process.env['NEXT_PUBLIC_AEM_SITE']}/components/content/reslink/reslinkguest`,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const ReslinkGuest: FC<{ model: ReslinkGuestProps }> = (props: any) => {\n const {\n carouselAriaLabel,\n carouselImageAriaLabel,\n logoAriaLabel,\n bannerImageAltText,\n externalLinkAriaLabel,\n bookBy,\n toAirport,\n reviews,\n reviewTooltipText,\n freeWifi,\n viewHotelDetails,\n priceType,\n dateLabels,\n roomsAndGuests,\n checkAvailability,\n trackingProperties,\n hotelDetails: hotelDetailsLabel,\n overview,\n amenities,\n map,\n mapAriaLabel,\n errors,\n } = props.model;\n\n const { shortWeekdayNames, longWeekdayNames, shortMonthNames, longMonthNames } = dateLabels;\n\n const { locale } = useLocaleStore();\n\n const [eventId, setEventId] = useState('');\n const [reslinkType, setReslinkType] = useState<ReslinkType>(ReslinkType.NONE);\n const [showMapView, setShowMapView] = useState(false);\n\n useEffect(() => {\n setCalendarOptions({\n shortWeekdayNames,\n longWeekdayNames,\n shortMonthNames,\n longMonthNames,\n });\n }, [shortWeekdayNames, longWeekdayNames, shortMonthNames, longMonthNames]);\n\n useEffect(() => {\n const { id, key } = getQueryParams(window.location.search);\n setEventId(id);\n setReslinkType(ReslinkType[key as keyof typeof ReslinkType] ?? ReslinkType.NONE);\n }, []);\n\n const reslinkEventInput: ReslinkEventByIdInput = {\n input: { eventId, reslinkType },\n imageLimitPerCategory: PROPERTY_IMAGE_LIST_CATEGORY_LIMIT,\n };\n\n const {\n data: eventData,\n loading,\n error,\n } = useQuery<{\n groupsReslinkEventById: ReslinkEventByIdResponse;\n }>(getReslinkEventByIdQuery, {\n variables: reslinkEventInput,\n context: {\n headers: {\n 'accept-language': locale,\n 'uxl-cache-disable': true,\n },\n },\n fetchPolicy: 'no-cache',\n skip: !eventId,\n });\n\n const { groupsReslinkEventById } = eventData || {};\n const { eventName, eventDescription, eventCustomLinks, customImageURLs, hotelDetails, httpStatus } =\n groupsReslinkEventById || {};\n\n const filteredHotelDetails =\n reslinkType === ReslinkType.GRP ? hotelDetails?.filter(property => property.miniHotelInfo.length) : hotelDetails;\n const allPropertiesExpired = reslinkType === ReslinkType.GRP && !filteredHotelDetails?.length;\n\n const transformMedia = {\n photoGallery: {\n hotelView: {\n edges: customImageURLs?.map((item, index) => ({\n node: {\n alternateDescription: `${bannerImageAltText} ${index + 1}`,\n imageUrls: {\n wideHorizontal: `${item.link}`,\n classicHorizontal: `${item.link}`,\n square: `${item.link}`,\n },\n },\n })),\n },\n },\n };\n\n const toggleView = () => {\n setShowMapView(!showMapView);\n };\n\n return (\n <EditableComponent config={ReslinkGuestConfig} {...props}>\n {loading ? (\n <div className=\"m-spinner-m d-block mx-auto my-4\"></div>\n ) : error || (eventData && httpStatus && httpStatus !== HTTP_SUCCESS_CODE) ? (\n <div className=\"py-4\">\n <InlineMessages\n type={InlineMessagesType.Error}\n title={errors.apiFailure.title}\n messageList={[errors.apiFailure.description]}\n />\n </div>\n ) : eventData && !groupsReslinkEventById?.isActive ? (\n <div className=\"py-4\">\n <div className=\"t-title-m mb-2\">{errors.disabled.title}</div>\n <div>{errors.disabled.description}</div>\n </div>\n ) : allPropertiesExpired ? (\n <div className=\"py-4\">\n <div className=\"t-title-m mb-2\">{errors?.expiredProperties?.title}</div>\n <div>{errors?.expiredProperties?.description}</div>\n </div>\n ) : (\n <div className=\"m-container-fullbleed\">\n {eventName && !showMapView ? (\n <EventBanner\n eventTitle={eventName}\n eventDescription={eventDescription as string}\n customLinks={eventCustomLinks}\n externalLinkAriaLabel={externalLinkAriaLabel}\n {...(customImageURLs?.length ? { media: transformMedia as HotelMediaContent } : null)}\n />\n ) : null}\n <StyledPropertyList>\n {filteredHotelDetails?.length ? (\n <div className=\"container\">\n {showMapView ? (\n <PropertyMap\n reslinkType={reslinkType}\n propertyLabels={props.model}\n properties={filteredHotelDetails}\n toggleView={toggleView}\n />\n ) : (\n <>\n <PropertyList\n reslinkType={reslinkType}\n isMapView={showMapView}\n properties={filteredHotelDetails}\n propertyLabels={{\n carouselAriaLabel,\n carouselImageAriaLabel,\n logoAriaLabel,\n bookBy,\n toAirport,\n reviews,\n reviewTooltipText,\n freeWifi,\n viewHotelDetails,\n priceType,\n dateLabels,\n roomsAndGuests,\n checkAvailability,\n trackingProperties,\n hotelDetails: hotelDetailsLabel,\n overview,\n amenities,\n mapAriaLabel,\n apiError: errors.apiFailure.title,\n }}\n />\n {isAllowedForLocale(locale) && (\n <ViewToggle\n ctaLabel={map}\n variant={ViewType.MAP_VIEW}\n ctaAriaLabel={mapAriaLabel}\n toggleView={toggleView}\n />\n )}\n </>\n )}\n </div>\n ) : null}\n </StyledPropertyList>\n </div>\n )}\n </EditableComponent>\n );\n};\n"],"names":["ReslinkGuestConfig","emptyLabel","isEmpty","resourceType","process","errors","carouselAriaLabel","carouselImageAriaLabel","logoAriaLabel","bannerImageAltText","externalLinkAriaLabel","bookBy","toAirport","reviews","reviewTooltipText","freeWifi","viewHotelDetails","priceType","dateLabels","roomsAndGuests","checkAvailability","trackingProperties","hotelDetails","hotelDetailsLabel","overview","amenities","map","mapAriaLabel","props","model","shortWeekdayNames","longWeekdayNames","shortMonthNames","longMonthNames","locale","useLocaleStore","eventId","setEventId","useState","reslinkType","setReslinkType","ReslinkType","NONE","showMapView","setShowMapView","useEffect","setCalendarOptions","id","key","getQueryParams","window","location","search","reslinkEventInput","input","imageLimitPerCategory","PROPERTY_IMAGE_LIST_CATEGORY_LIMIT","data","eventData","loading","error","useQuery","getReslinkEventByIdQuery","variables","context","headers","fetchPolicy","skip","groupsReslinkEventById","eventName","eventDescription","eventCustomLinks","customImageURLs","httpStatus","filteredHotelDetails","GRP","filter","property","miniHotelInfo","length","allPropertiesExpired","transformMedia","photoGallery","hotelView","edges","item","index","node","alternateDescription","imageUrls","wideHorizontal","link","classicHorizontal","square","toggleView","EditableComponent","config","div","className","HTTP_SUCCESS_CODE","InlineMessages","type","InlineMessagesType","Error","title","apiFailure","messageList","description","isActive","expiredProperties","EventBanner","eventTitle","customLinks","media","StyledPropertyList","PropertyMap","propertyLabels","properties","PropertyList","isMapView","apiError","isAllowedForLocale","ViewToggle","ctaLabel","variant","ViewType","MAP_VIEW","ctaAriaLabel","disabled"],"sourceRoot":"","ignoreList":[]}