{"version":3,"file":"assets/js/chunks/6899.80b8f8e182c808047e1e.js","mappings":"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","sources":["webpack://web-pwa/./src/domain/geoentity/Reviews.less?fbda","webpack://web-pwa/./src/domain/geoentity/Reviews.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityHotelListItemDetails.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityHotelListItemDetails.less?f17f","webpack://web-pwa/./src/domain/geoentity/ReservationButton.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityGenericListItemDetails.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityListItemDetails.jsx","webpack://web-pwa/./src/domain/geoentity/useGetGeoentityTypeForListItem.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityListItem.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityListItem.less?6902","webpack://web-pwa/./src/domain/geoentity/GeoentityOpeningMessage.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityStructuredData.jsx","webpack://web-pwa/./src/domain/utils/withMemoByProps.js","webpack://web-pwa/./src/domain/map/markers/PoiMarkerHTML.jsx","webpack://web-pwa/./src/domain/map/markers/PoiMarkerHTML.less?fa9c","webpack://web-pwa/./src/domain/map/markers/PoiMarker.jsx","webpack://web-pwa/./src/domain/map/markers/PoisMarkers.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityListPlaceholder.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityListStructuredData.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityList.jsx","webpack://web-pwa/./src/domain/geoentity/CornerShops.less?1e58","webpack://web-pwa/./src/domain/geoentity/CornerShops.jsx","webpack://web-pwa/./src/domain/geoentity/useCommonGeoentityClickTagProps.js","webpack://web-pwa/./src/domain/geoentity/useGeoentityListItem.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityFuelListItem.less?8afb","webpack://web-pwa/./src/domain/geoentity/GeoentityFuelCard.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityFuelCards.jsx","webpack://web-pwa/./src/domain/geoentity/GeoentityFuelListItem.jsx","webpack://web-pwa/./src/domain/router/NavButton.jsx","webpack://web-pwa/./src/domain/geoentity/GoToGeoentityButton.jsx","webpack://web-pwa/./src/domain/geoentity/useTagBiForGeoentity.js","webpack://web-pwa/./src/domain/genericComponents/JsonLD.jsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"text\":\"Svwj1\",\"averageNote\":\"kpCus\"};","import React from 'react'\nimport s from './Reviews.less'\nimport { formatNumber } from '../../utils/number'\n\nexport default function Reviews({ reviews }) {\n  if (!reviews) return <></>\n  const { averageNote, maxNote, numberOfReviews } = reviews\n  const max = maxNote ? `/${maxNote}` : ''\n  const number = numberOfReviews ? `(${numberOfReviews} avis)` : ''\n  return (\n    <span className={s.text}>\n      <span className={s.averageNote}>{formatNumber(averageNote)}</span>\n      {max} {number}\n    </span>\n  )\n}\n","import React from 'react'\n\nimport { useSelector } from 'react-redux'\nimport { selectFilterHotelDates, selectHasFilterMultiDatePicker } from '../../store/geoentity/filter.selectors'\nimport GoToGeoentityButton from './GoToGeoentityButton'\nimport RectangleActionButton, {\n  COLOR_GREY_EMPTY,\n  SIZE_MEDIUM\n} from '../genericComponents/buttons/RectangleActionButton'\n\nimport sListItem from './GeoentityListItem.less'\nimport sHotelListItem from './GeoentityHotelListItemDetails.less'\nimport Reviews from './Reviews'\nimport classNames from 'classnames'\n\nconst IncentiveMessage = ({ hasDateFilter }) =>\n  hasDateFilter ? (\n    __BROWSER__ ? (\n      <span className={sHotelListItem.incentiveText}>{'Ajoutez vos dates pour voir les prix et la disponibilité'}</span>\n    ) : (\n      <span className={sHotelListItem.emptyIncentiveText} />\n    )\n  ) : (\n    <></>\n  )\n\nconst GeoentityHotelListItemDetails = ({ poi, noExternalButtons }) => {\n  const { additionalInfo, reviews } = poi\n  const { price, freeCancellation, breakfastIncluded, numberOfNights, numberOfPeople } = additionalInfo\n  const hasDateFilter = useSelector(selectHasFilterMultiDatePicker)\n  const areFilterDatesFilled = Boolean(useSelector(selectFilterHotelDates))\n\n  const numberOfNightsLabel = numberOfNights > 1 ? 'nuits' : 'nuit'\n  const numberOfPeopleLabel = numberOfPeople > 1 ? 'adultes' : 'adulte'\n\n  return (\n    <div\n      className={classNames(\n        sHotelListItem.contentContainer,\n        areFilterDatesFilled && sHotelListItem.contentContainerWithPrice\n      )}\n    >\n      <div>\n        <div className={sListItem.text}>\n          <Reviews reviews={reviews} />\n        </div>\n        {areFilterDatesFilled ? (\n          price?.value && (\n            <>\n              <span className={sHotelListItem.price}>\n                {price.value} {price.currency}\n              </span>\n              <div className={sHotelListItem.nightText}>\n                {numberOfNights && numberOfPeople && (\n                  <span>{`pour ${numberOfNights} ${numberOfNightsLabel}, ${numberOfPeople} ${numberOfPeopleLabel}`}</span>\n                )}\n              </div>\n            </>\n          )\n        ) : (\n          <IncentiveMessage hasDateFilter={hasDateFilter} />\n        )}\n\n        <div className={sHotelListItem.commoditiesText}>\n          {breakfastIncluded && <span>Petit déjeuner inclus</span>}\n          {freeCancellation && <span>Annulation gratuite</span>}\n        </div>\n      </div>\n      <div className={classNames(sHotelListItem.button, areFilterDatesFilled && sHotelListItem.buttonWithPrice)}>\n        <GoToGeoentityButton poi={poi}>\n          <RectangleActionButton\n            label=\"Voir l'offre\"\n            color={COLOR_GREY_EMPTY}\n            className={noExternalButtons ? sListItem.fakeButtonLandingPage : sListItem.buttonMoreInfo}\n            size={SIZE_MEDIUM}\n          />\n        </GoToGeoentityButton>\n      </div>\n    </div>\n  )\n}\n\nexport default GeoentityHotelListItemDetails\n","// extracted by mini-css-extract-plugin\nexport default {\"contentContainer\":\"RDpLO\",\"contentContainerWithPrice\":\"bLJNt\",\"price\":\"moflj\",\"incentiveText\":\"Rdr33\",\"emptyIncentiveText\":\"TrV2k\",\"button\":\"cIxCD\",\"buttonWithPrice\":\"cYcEx\",\"nightText\":\"aigvV\",\"commoditiesText\":\"ent4E\"};","import useTagBiForGeoentity from './useTagBiForGeoentity'\nimport { SPD_GEOENTITY_LIST_LINK } from '../analytics/BiTagger'\nimport classNames from 'classnames'\nimport s from './GeoentityListItem.less'\nimport RectangleActionButton, {\n  COLOR_ORANGE_EMPTY,\n  SIZE_MEDIUM\n} from '../genericComponents/buttons/RectangleActionButton'\nimport React from 'react'\n\nexport const ReservationButton = ({ reservationUrl, clickTagPropsForRedirection }) => {\n  const sendBiTagNow = useTagBiForGeoentity(SPD_GEOENTITY_LIST_LINK, { targeturl: reservationUrl })\n  return (\n    <span className={classNames(s.button, s.buttonForeground)}>\n      <RectangleActionButton\n        label=\"Réserver\"\n        color={COLOR_ORANGE_EMPTY}\n        tagData={clickTagPropsForRedirection}\n        href={reservationUrl}\n        targetBlank={true}\n        nofollow={true}\n        onClick={() => {\n          sendBiTagNow()\n        }}\n        size={SIZE_MEDIUM}\n      />\n    </span>\n  )\n}\n","import React from 'react'\nimport useGeoentityListItem from './useGeoentityListItem'\nimport { getColorFromOpeningStatus } from '../../store/geoentity/geoentity.helpers'\nimport SVGIcon from '../svg/SVGIcon'\nimport s from './GeoentityListItem.less'\nimport cultery from '../genericComponents/assets/cultery.svg'\nimport Reviews from './Reviews'\nimport GeoentityOpeningMessage from './GeoentityOpeningMessage'\nimport CornerShops from './CornerShops'\nimport RectangleActionButton, {\n  COLOR_GREY_EMPTY,\n  SIZE_MEDIUM\n} from '../genericComponents/buttons/RectangleActionButton'\nimport GoToGeoentityButton from './GoToGeoentityButton'\nimport { ReservationButton } from './ReservationButton'\n\nconst getCookingType = (prestations = '') => /Types de cuisine : ([^,]+)/.exec(prestations)?.[1]\n\nconst GeoentityGenericListItemDetails = ({ poi, noExternalButtons }) => {\n  const { additionalInfo = {}, cornerShops, openingStatus, reviews } = poi\n  const { teasing, secondTeasing, prestations } = additionalInfo\n  const { reservationUrl, clickTagPropsForRedirection } = useGeoentityListItem(poi)\n  const cookingType = getCookingType(prestations)\n\n  const { message: openingMessage, status } = openingStatus ?? {}\n  const openingMessageColor = getColorFromOpeningStatus(status)\n\n  return (\n    <>\n      {cookingType && (\n        <div className={s.cookingType}>\n          <SVGIcon url={cultery} />\n          <div className={s.text}>{cookingType}</div>\n        </div>\n      )}\n      <div className={s.text}>\n        <Reviews reviews={reviews} />\n      </div>\n      {teasing && <div className={s.text} dangerouslySetInnerHTML={{ __html: teasing }} />}\n      {secondTeasing && <div className={s.text} dangerouslySetInnerHTML={{ __html: secondTeasing }} />}\n      <GeoentityOpeningMessage openingMessage={openingMessage} openingMessageColor={openingMessageColor} />\n      <CornerShops cornerShops={cornerShops} />\n      <div className={s.button}>\n        <GoToGeoentityButton poi={poi}>\n          <RectangleActionButton\n            label=\"Plus d'infos\"\n            color={COLOR_GREY_EMPTY}\n            className={noExternalButtons ? s.fakeButtonLandingPage : s.buttonMoreInfo}\n            size={SIZE_MEDIUM}\n          />\n        </GoToGeoentityButton>\n        {!noExternalButtons && reservationUrl && (\n          <ReservationButton\n            reservationUrl={reservationUrl}\n            clickTagPropsForRedirection={clickTagPropsForRedirection}\n          />\n        )}\n      </div>\n    </>\n  )\n}\n\nexport default GeoentityGenericListItemDetails\n","import React from 'react'\nimport GeoentityHotelListItemDetails from './GeoentityHotelListItemDetails'\nimport GeoentityGenericListItemDetails from './GeoentityGenericListItemDetails'\nimport { GEOENTITY_HOTEL_CELL_TYPE } from '../../store/geoentity/geoentity.constants'\nimport useGetGeoentityTypeForListItem from './useGetGeoentityTypeForListItem'\nconst GeoentityListItemDetails = ({ noExternalButtons, poi }) => {\n  const type = useGetGeoentityTypeForListItem(poi)\n\n  switch (type) {\n    case GEOENTITY_HOTEL_CELL_TYPE:\n      return <GeoentityHotelListItemDetails poi={poi} noExternalButtons={noExternalButtons} />\n    default:\n      return <GeoentityGenericListItemDetails poi={poi} noExternalButtons={noExternalButtons} />\n  }\n}\n\nexport default GeoentityListItemDetails\n","import { isHotelPoi, isStationServiceRubric } from '../../store/geoentity/geoentity.helpers'\nimport {\n  GEOENTITY_FUEL_CELL_TYPE,\n  GEOENTITY_GENERIC_CELL_TYPE,\n  GEOENTITY_HOTEL_CELL_TYPE\n} from '../../store/geoentity/geoentity.constants'\nimport { selectHotelIdList } from '../../store/poiassets/poiassets.selectors'\nimport { useSelector } from 'react-redux'\n\nconst useGetGeoentityTypeForListItem = poi => {\n  const hotelIdList = useSelector(selectHotelIdList)\n  const isHotel = isHotelPoi(hotelIdList, poi)\n\n  if (isStationServiceRubric(poi?.rubric?.id)) return GEOENTITY_FUEL_CELL_TYPE\n  if (isHotel) return GEOENTITY_HOTEL_CELL_TYPE\n  return GEOENTITY_GENERIC_CELL_TYPE\n}\n\nexport default useGetGeoentityTypeForListItem\n","import classNames from 'classnames'\nimport React from 'react'\nimport CrossBrowserImage from '../genericComponents/CrossBrowserImage'\nimport s from './GeoentityListItem.less'\nimport GoToGeoentityButton from './GoToGeoentityButton'\nimport PromoIcon from './promo.svg'\nimport useGeoentityListItem from './useGeoentityListItem'\nimport GeoentityListItemDetails from './GeoentityListItemDetails'\n\nconst GeoentityListItem = ({ poi, noExternalButtons, type }) => {\n  const { name, rubric = {}, additionalInfo = {}, addressLabel } = poi\n  const { promo } = additionalInfo\n  const illustrationUrl = additionalInfo?.illustration?.url\n\n  const { label: rubricLabel } = rubric\n\n  const { displayOptions, geoentityImageAlt, liMouseListeners, isSelected } = useGeoentityListItem(poi)\n\n  return (\n    <li className={classNames(s.item, isSelected && s.selectedItem)} {...liMouseListeners}>\n      <div className={s.content}>\n        <div className={s.name}>\n          <GoToGeoentityButton poi={poi} className={s.link} isLink>\n            {name}\n          </GoToGeoentityButton>\n          {promo && (\n            <div className={s.promo}>\n              <img src={PromoIcon} alt=\"Promo icône\" /> Promo\n            </div>\n          )}\n        </div>\n        {displayOptions.address && <div className={s.text}>{addressLabel}</div>}\n        {displayOptions.rubric && <div className={s.text}>{rubricLabel}</div>}\n        <GeoentityListItemDetails type={type} noExternalButtons={noExternalButtons} poi={poi} />\n      </div>\n      <CrossBrowserImage className={s.illustration} src={illustrationUrl} alt={geoentityImageAlt} />\n    </li>\n  )\n}\n\nexport default GeoentityListItem\n","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"fIkky\",\"selectedItem\":\"olrF7\",\"chevronCenter\":\"Q0EJ_\",\"chevronLeft\":\"vHsu2\",\"chevronRight\":\"cPSIS\",\"content\":\"jwmtC\",\"name\":\"wfuvE\",\"link\":\"rMnFa\",\"text\":\"bd_CD\",\"illustration\":\"W6330\",\"promo\":\"ttECb\",\"cookingType\":\"DCUys\",\"button\":\"yEKtc\",\"fakeButtonLandingPage\":\"cXsuo\",\"buttonForeground\":\"OIygg\"};","import React from 'react'\nimport s from './GeoentityFuelListItem.less'\n\nconst GeoentityOpeningMessage = ({ openingMessage, openingMessageColor }) => {\n  if (!openingMessage) return <></>\n\n  return (\n    <div className={s.openingMessage} style={{ color: openingMessageColor }}>\n      {openingMessage}\n    </div>\n  )\n}\n\nexport default GeoentityOpeningMessage\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { ROUTE_SEO_GEOENTITY } from '../../routes'\nimport { isFranceCountryCode } from '../../routes/address/Countries'\nimport { selectCurrentGeoentity } from '../../store/geoentity/geoentity.selectors'\nimport { isEmpty } from '../../utils/lang'\nimport { capitalize } from '../../utils/string'\nimport JsonLd from '../genericComponents/JsonLD'\nimport { generateFullRoute } from '../router/routeUtils'\n\nexport const getStructuredBusinessType = rubricId => {\n  switch (rubricId) {\n    case 'hotel':\n    case 'restaurant':\n      return { '@type': capitalize(rubricId) }\n    default:\n      return { '@type': 'LocalBusiness' }\n  }\n}\n\nconst getStructuredAddress = (addressComponents = {}) => {\n  const { way, town, postcode, countryCode } = addressComponents\n\n  if (way && town && postcode && countryCode)\n    return {\n      address: {\n        '@type': 'PostalAddress',\n        streetAddress: way,\n        addressLocality: town,\n        postalCode: postcode,\n        addressCountry: isFranceCountryCode(countryCode) ? 'FR' : undefined\n      }\n    }\n\n  return {}\n}\n\nexport const getStructuredAggregateRating = ratingComponent => {\n  if (isEmpty(ratingComponent)) return {}\n\n  const { averageNote, maxNote, numberOfReviews } = ratingComponent\n\n  return {\n    aggregateRating: {\n      '@type': 'AggregateRating',\n      ratingValue: averageNote,\n      ratingCount: numberOfReviews || 1,\n      bestRating: maxNote\n    }\n  }\n}\n\nexport const getStructuredImage = imageUrl => {\n  if (!imageUrl) return null\n\n  return {\n    image: [imageUrl]\n  }\n}\n\nconst GeoentityStructuredData = () => {\n  const geoentity = useSelector(selectCurrentGeoentity)\n\n  if (!geoentity?.name) return <></>\n\n  const { id, name, rubric, additionalInfo, reviews } = geoentity\n  const imageUrl = additionalInfo?.illustration?.url\n\n  const data = {\n    '@context': 'https://schema.org',\n    ...getStructuredBusinessType(rubric?.id),\n    name,\n    url: generateFullRoute(ROUTE_SEO_GEOENTITY, { geoentityId: id }),\n    ...getStructuredImage(imageUrl),\n    ...getStructuredAddress(geoentity),\n    ...getStructuredAggregateRating(reviews)\n  }\n\n  return <JsonLd data={data} />\n}\nexport default GeoentityStructuredData\n","import React from 'react'\nimport { getPropertyByString } from '../../utils/object'\n\nconst withMemoByProps = (Component, propsToWatch) =>\n  React.memo(Component, (props, nextProps) => {\n    return propsToWatch.every(name => getPropertyByString(props, name) === getPropertyByString(nextProps, name))\n  })\n\nexport default withMemoByProps\n","import classNames from 'classnames'\nimport React from 'react'\nimport SVGIcon from '../../svg/SVGIcon'\nimport s from './PoiMarkerHTML.less'\n\nconst PoiMarkerHTML = ({ isCurrent, icon, color, src, price, priceColor, visited }) => (\n  <div className={classNames(s.root, isCurrent && s.active, visited && s.visited)}>\n    <div className={s.tip} />\n    <div className={s.content}>\n      {icon && (\n        <div className={s.icon} style={{ backgroundColor: color }}>\n          <SVGIcon icon={icon} />\n        </div>\n      )}\n      {src && (\n        <div className={s.image}>\n          <img src={src} />\n        </div>\n      )}\n      {price && (\n        <div className={s.price} style={{ backgroundColor: priceColor }}>\n          <span>{price}</span>\n        </div>\n      )}\n    </div>\n  </div>\n)\n\nexport default PoiMarkerHTML\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"FKpjJ\",\"active\":\"vWfNv\",\"visited\":\"XZKYY\",\"tip\":\"jfHf7\",\"content\":\"fpjQq\",\"icon\":\"xcFqp\",\"image\":\"BFCcg\",\"price\":\"YKvja\"};","import React from 'react'\nimport { getPoiRubricId } from '../../../store/geoentity/geoentity.accessors'\nimport useErrorBoundaryCallback from '../../utils/useErrorBoundaryCallback'\nimport useEventCallback from '../../utils/useEventCallback'\nimport withMemoByProps from '../../utils/withMemoByProps'\nimport Marker from './Marker'\nimport PoiMarkerHTML from './PoiMarkerHTML'\n\nconst PoiMarker = ({ id, additionalInfo, isCurrent, navigateToPoi, focusPoi, unfocusPoi, vde, ...marker }) => {\n  const rubricId = getPoiRubricId(marker)\n\n  const onSelect = useErrorBoundaryCallback(() => {\n    focusPoi(id)\n  }, [focusPoi])\n\n  const onUnselect = useErrorBoundaryCallback(() => {\n    unfocusPoi(id)\n  }, [unfocusPoi])\n\n  const onClick = useEventCallback(() => {\n    navigateToPoi({ id, additionalInfo, rubricId, vde })\n  }, [navigateToPoi])\n\n  return (\n    <Marker isCurrent={isCurrent} onSelect={onSelect} onUnselect={onUnselect} onClick={onClick} {...marker}>\n      <PoiMarkerHTML isCurrent={isCurrent} {...marker} />\n    </Marker>\n  )\n}\n\nexport default withMemoByProps(PoiMarker, [\n  'isCurrent',\n  'additionalInfo.fuels.length',\n  'price',\n  'priceColor',\n  'rubric.id',\n  'zIndex',\n])\n","import React from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectCurrentFuelColor, selectCurrentFuelFilterId } from '../../../store/geoentity/fuels.selectors'\nimport { focusGeoentity } from '../../../store/geoentity/geoentity.actions'\nimport {\n  getMarkerMainInformation,\n  getPoiPriceDataForMarker,\n  poiZIndexWeightCompare\n} from '../../../store/geoentity/geoentity.helpers'\nimport {\n  selectCurrentGeoentityId,\n  selectFocusedPoiId,\n  selectGeoentities,\n  selectVdeGeoentities, selectVisitedPoiIds\n} from '../../../store/geoentity/geoentity.selectors'\nimport { navigateToGeoentity } from '../../../store/history/history.actions'\nimport useConfigureAndSendTag from '../../analytics/useConfigureAndSendTag'\nimport { useAction } from '../../utils/react-redux'\nimport { withMapInitialized } from '../map.utils'\nimport PoiMarker from './PoiMarker'\n\nimport { requestUnfocusGeoentity } from '../../../store/geoentity/geoentitySlice'\nimport { TAG_CLICK_POI } from '../../analytics/analytics.tagids.constants'\n\nconst usePoisDataForMarkers = vde => {\n  const pois = useSelector(vde ? selectVdeGeoentities : selectGeoentities)\n  const fuelId = useSelector(selectCurrentFuelFilterId)\n  const fuelColor = useSelector(selectCurrentFuelColor)\n  const currentPoiId = useSelector(selectCurrentGeoentityId)\n  const focusedPoiId = useSelector(selectFocusedPoiId)\n  const visitedPoiIds = useSelector(selectVisitedPoiIds)\n\n  const poisCount = pois.length\n  const getZIndex = ({ idx, poi }) => {\n    const { isCurrent, isFocus } = poi\n    if (isFocus) return poisCount + 2\n    if (isCurrent) return poisCount + 1\n    return poisCount - idx\n  }\n\n  return pois\n    .map(poi => {\n      const isCurrent = poi.id === currentPoiId\n      const isFocus = poi.id === focusedPoiId\n      const priceData = getPoiPriceDataForMarker(poi, fuelId, fuelColor)\n\n      return {\n        ...poi,\n        ...getMarkerMainInformation({ poi, price: priceData?.price }),\n        ...priceData,\n        isCurrent: isCurrent || isFocus,\n        visited: visitedPoiIds.includes(poi.id)\n      }\n    })\n    .sort(poiZIndexWeightCompare)\n    .map((poi, idx) => ({\n      ...poi,\n      zIndex: getZIndex({ poi, idx })\n    }))\n}\n\n// webpack:BrowserOnly\nconst PoisMarkers = ({ vde }) => {\n  const dispatch = useDispatch()\n  const markers = usePoisDataForMarkers(vde)\n  const configureAndSendTag = useConfigureAndSendTag()\n  const execNavigateToGeoentity = useAction(navigateToGeoentity)\n  const execFocusGeoentity = useAction(focusGeoentity)\n\n  const navigateToPoi = ({ id, additionalInfo, rubricId }) => {\n    configureAndSendTag({\n      type: TAG_CLICK_POI,\n      tagInfo: {\n        affichage: 'carte',\n        appId: additionalInfo?.appId,\n        catId: rubricId\n      }\n    })\n    execNavigateToGeoentity({ id, scrollTop: true })\n  }\n\n  return (\n    <>\n      {(markers || []).map(marker => {\n        return (\n          <PoiMarker\n            key={marker.id}\n            navigateToPoi={navigateToPoi}\n            focusPoi={execFocusGeoentity}\n            unfocusPoi={() => dispatch(requestUnfocusGeoentity())}\n            {...marker}\n          />\n        )\n      })}\n    </>\n  )\n}\n\nexport default withMapInitialized(PoisMarkers)\n","import React from 'react'\nimport ContentLoader from 'react-content-loader'\n\nconst MyLoader = props => (\n  <ContentLoader speed={2} width={415} height={700} backgroundColor=\"#e6e6e6\" foregroundColor=\"#cdcdcd\" {...props}>\n    <rect x=\"310\" y=\"5\" rx=\"5\" ry=\"5\" width=\"85\" height=\"85\" />\n    <rect x=\"24\" y=\"51\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"8\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"32\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"66\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"0\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"310\" y=\"193\" rx=\"5\" ry=\"5\" width=\"85\" height=\"85\" />\n    <rect x=\"0\" y=\"94\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"24\" y=\"144\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"101\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"125\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"159\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"187\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"305\" y=\"94\" rx=\"5\" ry=\"5\" width=\"1\" height=\"94\" />\n    <rect x=\"24\" y=\"240\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"197\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"221\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"255\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"283\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"310\" y=\"383\" rx=\"5\" ry=\"5\" width=\"85\" height=\"85\" />\n    <rect x=\"24\" y=\"334\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"291\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"315\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"349\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"377\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"305\" y=\"284\" rx=\"5\" ry=\"5\" width=\"1\" height=\"94\" />\n    <rect x=\"24\" y=\"430\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"387\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"411\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"445\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"473\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"310\" y=\"573\" rx=\"5\" ry=\"5\" width=\"85\" height=\"85\" />\n    <rect x=\"24\" y=\"524\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"481\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"505\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"539\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"567\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n    <rect x=\"305\" y=\"474\" rx=\"5\" ry=\"5\" width=\"1\" height=\"94\" />\n    <rect x=\"24\" y=\"620\" rx=\"5\" ry=\"5\" width=\"88\" height=\"10\" />\n    <rect x=\"24\" y=\"577\" rx=\"5\" ry=\"5\" width=\"205\" height=\"13\" />\n    <rect x=\"24\" y=\"601\" rx=\"5\" ry=\"5\" width=\"180\" height=\"10\" />\n    <rect x=\"24\" y=\"635\" rx=\"14\" ry=\"14\" width=\"60\" height=\"20\" />\n    <rect x=\"0\" y=\"663\" rx=\"5\" ry=\"5\" width=\"400\" height=\"1\" />\n  </ContentLoader>\n)\n\nexport default MyLoader\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { ROUTE_SEO_GEOENTITY } from '../../routes'\nimport { selectFirstAddress } from '../../store/address/address.selectors'\nimport { selectCurrentGeoentityId, selectGeoentities } from '../../store/geoentity/geoentity.selectors'\nimport { selectGeoentityTypeDataForSearch } from '../../store/poiassets/poiassets.selectors'\nimport { selectTownFromPath } from '../../store/seo/seo.selectors'\nimport JsonLd from '../genericComponents/JsonLD'\nimport { generateFullRoute } from '../router/routeUtils'\nimport { getStructuredAggregateRating, getStructuredBusinessType, getStructuredImage } from './GeoentityStructuredData'\n\nconst getItems = (geoentities, currentGeoentityId) =>\n  geoentities\n    .filter(({ id }) => id !== currentGeoentityId)\n    .map((poi, idx) => {\n      const { id, name, rubric, additionalInfo, reviews } = poi\n      const imageUrl = additionalInfo?.illustration?.url\n\n      return {\n        '@type': 'ListItem',\n        position: idx + 1,\n        item: {\n          ...getStructuredBusinessType(rubric?.id),\n          name,\n          url: generateFullRoute(ROUTE_SEO_GEOENTITY, { geoentityId: id }),\n          ...getStructuredImage(imageUrl),\n          ...(currentGeoentityId ? {} : getStructuredAggregateRating(reviews))\n        }\n      }\n    })\n\nconst GeoentityListStructuredData = () => {\n  const geoentities = useSelector(selectGeoentities)\n  const currentGeoentityId = useSelector(selectCurrentGeoentityId)\n  const { town } = useSelector(selectFirstAddress)\n  const { zip } = useSelector(selectTownFromPath)\n  const { label } = useSelector(selectGeoentityTypeDataForSearch)\n\n  if (!geoentities) return <></>\n\n  const name = label && town ? { name: `${label} à ${town} ${zip}, France` } : {}\n\n  const data = {\n    '@context': 'https://schema.org',\n    '@type': 'ItemList',\n    ...name,\n    itemListElement: getItems(geoentities, currentGeoentityId)\n  }\n\n  return <JsonLd data={data} />\n}\n\nexport default GeoentityListStructuredData\n","import React, { useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectCurrentFuelFilterIdWithoutFallback } from '../../store/geoentity/fuels.selectors'\nimport { isStationServiceRubric } from '../../store/geoentity/geoentity.helpers'\nimport { selectGeoentities, selectIsWaitingForRequestedGeoentities } from '../../store/geoentity/geoentity.selectors'\nimport { searchFieldsForComparaisonCheck } from '../../store/history/history.search'\nimport { selectCurrentHistoryRouteOptions } from '../../store/history/history.selectors'\nimport { isEqual } from '../../utils/lang'\nimport { pick } from '../../utils/object'\nimport { useScrollContext } from '../genericComponents/ResponsiveScrollableWrapper/ResponsiveScrollableWrapper'\nimport GeoentityFuelListItem from './GeoentityFuelListItem'\nimport GeoentityListItem from './GeoentityListItem'\nimport GeoentityListPlaceholder from './GeoentityListPlaceholder'\nimport GeoentityListStructuredData from './GeoentityListStructuredData'\n\nconst GeoentityList = ({ noExternalButtons = false, geoentitiesSelector = selectGeoentities }) => {\n  const isWaitingForGeoentities = useSelector(selectIsWaitingForRequestedGeoentities)\n  const pois = useSelector(geoentitiesSelector)\n  const scrollContext = useScrollContext()\n  const [lastParams, setLastParams] = useState({})\n  const currentParams = pick(useSelector(selectCurrentHistoryRouteOptions), searchFieldsForComparaisonCheck)\n\n  useEffect(() => {\n    if (__BROWSER__ && !isEqual(currentParams, lastParams)) {\n      setLastParams(currentParams)\n      scrollContext.scrollTop()\n    }\n  }, [currentParams, lastParams])\n\n  const currentFuelFilterId = useSelector(selectCurrentFuelFilterIdWithoutFallback)\n  if (currentFuelFilterId)\n    pois.sort((a, b) =>\n      a?.additionalInfo?.fuels?.find(({ id }) => id === currentFuelFilterId) &&\n      !b?.additionalInfo?.fuels?.find(({ id }) => id === currentFuelFilterId)\n        ? -1\n        : 1\n    )\n  if (pois.length === 0 && isWaitingForGeoentities) return <GeoentityListPlaceholder />\n\n  return (\n    <ul>\n      <GeoentityListStructuredData />\n      {pois.map((poi, index) =>\n        isStationServiceRubric(poi?.rubric?.id) ? (\n          <GeoentityFuelListItem key={poi.id} poi={poi} noExternalButtons={noExternalButtons} index={index} />\n        ) : (\n          <GeoentityListItem key={poi.id} poi={poi} noExternalButtons={noExternalButtons} />\n        )\n      )}\n    </ul>\n  )\n}\n\nexport default GeoentityList\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"Y5hEJ\",\"logo\":\"Gb3Fd\"};","import React from 'react'\nimport { getImageUrl } from '../utils/image'\nimport s from './CornerShops.less'\n\nexport default function CornerShops({ cornerShops }) {\n  if (!cornerShops) return <></>\n  return (\n    <div className={s.text}>\n      Présent ici :\n      {cornerShops.map(({ id, iconUrl }) => (\n        <img key={id} className={s.logo} src={getImageUrl(iconUrl)} />\n      ))}\n    </div>\n  )\n}\n","import { useMemo } from 'react'\nimport {\n  getPoiApplicationId,\n  getPoiRubricId,\n  getReservationTemplatizeUrl\n} from '../../store/geoentity/geoentity.accessors'\nimport { isEmpty } from '../../utils/lang'\nimport { TAG_PUBLISHER } from '../analytics/analytics.tagids.constants'\nimport { useSelector } from 'react-redux'\nimport { selectCurrentGeoentity } from '../../store/geoentity/geoentity.selectors'\n\nconst useCommonGeoentityClickTagProps = (tag, specificGeoentity) => {\n  const currentGeoentity = useSelector(selectCurrentGeoentity)\n  const geoentity = specificGeoentity ?? currentGeoentity\n  const isReservable = !isEmpty(getReservationTemplatizeUrl(geoentity))\n\n  return useMemo(\n    () => ({\n      tagInfo: {\n        tag,\n        Rubrique: getPoiRubricId(geoentity),\n        Application: getPoiApplicationId(geoentity),\n        Disponibilite: isReservable ? 'D' : 'ND'\n      },\n      type: TAG_PUBLISHER\n    }),\n    [tag, geoentity, isReservable]\n  )\n}\n\nexport default useCommonGeoentityClickTagProps\n","import { useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectShouldDisplayFilters } from '../../store/geoentity/filter.selectors'\nimport { focusGeoentity } from '../../store/geoentity/geoentity.actions'\nimport { selectCurrentGeoentityId } from '../../store/geoentity/geoentity.selectors'\nimport { unfocusGeoentity } from '../../store/geoentity/geoentitySlice'\nimport {\n  isAddressRoute,\n  selectCurrentHistoryRoute,\n  selectCurrentHistoryRouteOptions\n} from '../../store/history/history.selectors'\nimport { isGE } from '../Device'\nimport { PUB_TAG } from '../analytics/PublisherTagsService'\nimport { useScrollContext } from '../genericComponents/ResponsiveScrollableWrapper/ResponsiveScrollableWrapper'\nimport { PREHEADER_HEIGHT } from '../header/header-constants'\nimport useComputedHeaderHeight from '../ui/useHeaderHeight'\nimport { getPoiImageAlt, getPoiReservationLink, RESERVATION_URL_TYPE_LIST } from '../utils/geoentity'\nimport { useAction } from '../utils/react-redux'\nimport useEventCallback from '../utils/useEventCallback'\nimport s from './GeoentityListItem.less'\nimport useCommonGeoentityClickTagProps from './useCommonGeoentityClickTagProps'\n\nconst useContextPoiDisplayOptions = () => {\n  const route = useSelector(selectCurrentHistoryRoute)\n  const defaultDisplay = {\n    address: true,\n    rubric: false\n  }\n  if (isAddressRoute(route))\n    return {\n      ...defaultDisplay,\n      address: false,\n      rubric: true\n    }\n  return defaultDisplay\n}\n\nconst useLiMouseListeners = ({ id }) => {\n  const dispatch = useDispatch()\n  const execFocusGeoentity = useAction(focusGeoentity)\n\n  const onMouseEnter = useEventCallback(() => execFocusGeoentity(id), [execFocusGeoentity, id])\n  const onMouseLeave = useEventCallback(() => dispatch(unfocusGeoentity()), [])\n\n  return isGE()\n    ? {\n        onMouseEnter,\n        onMouseLeave\n      }\n    : {}\n}\n\nconst useGeoentityListItem = poi => {\n  const { id: poiId } = poi\n  const scrollContext = useScrollContext()\n  const reservationUrl = getPoiReservationLink(poi, RESERVATION_URL_TYPE_LIST)\n\n  const displayOptions = useContextPoiDisplayOptions()\n  const clickTagPropsForRedirection = useCommonGeoentityClickTagProps(\n    PUB_TAG.PUB_LISTEREPONSE_REDIRECTIONRESERVATION,\n    poi\n  )\n\n  const geoentityImageAlt = getPoiImageAlt(poi)\n  const currentGeoentityId = useSelector(selectCurrentGeoentityId)\n\n  const liMouseListeners = useLiMouseListeners({ id: poiId })\n  const { scrollTop } = useSelector(selectCurrentHistoryRouteOptions)\n  const shouldDisplayFilters = useSelector(selectShouldDisplayFilters)\n  const computedHeaderHeight = useComputedHeaderHeight(false, shouldDisplayFilters) + PREHEADER_HEIGHT\n\n  const isSelected = poiId === currentGeoentityId\n\n  useEffect(() => {\n    if (isGE() && isSelected) {\n      const selectedElement = document.querySelector(`li.${s.selectedItem}`)\n\n      if (scrollTop && selectedElement?.getBoundingClientRect) {\n        scrollContext.scrollTo(\n          selectedElement.getBoundingClientRect().top + scrollContext.getScrollValue() - computedHeaderHeight\n        )\n      }\n    }\n  }, [isSelected, computedHeaderHeight])\n\n  return {\n    reservationUrl,\n    displayOptions,\n    clickTagPropsForRedirection,\n    geoentityImageAlt,\n    liMouseListeners,\n    isSelected\n  }\n}\n\nexport default useGeoentityListItem\n","// extracted by mini-css-extract-plugin\nexport default {\"gasContainer\":\"OS_O_\",\"gasPrice\":\"JAhJp\",\"gasPriceOpacity\":\"PH_Ex\",\"moreFuelsNumber\":\"an5h8\",\"gasName\":\"IL2wJ\",\"gasNameContent\":\"cFe0R\",\"gasPriceText\":\"yBEMf\",\"openingMessage\":\"_KTGp\",\"fuelContent\":\"oUHgN\",\"fuelTextualContent\":\"Qq05e\",\"geoentityLogo\":\"r0IXY\",\"gasStationIcon\":\"tC6kL\",\"fuelHeader\":\"XhiXS\",\"geoentityDistance\":\"TJaZF\"};","import React from 'react'\nimport { FUEL_DEFAULT_COLOR, DEFAULT_FUEL_ID } from '../../store/geoentity/geoentity.constants'\nimport { selectFuelInformation } from '../../store/geoentity/fuels.selectors'\nimport { useSelector } from 'react-redux'\nimport { getFuelLabelFromId, getFuelPriceDisplayValue } from '../../store/geoentity/geoentity.helpers'\nimport s from './GeoentityFuelListItem.less'\nimport classNames from 'classnames'\n\nconst GeoentityFuelCard = ({ fuel, opacity }) => {\n  const fuelInformations = useSelector(selectFuelInformation)\n  const matchingFuelInformation = fuelInformations?.find(fuelInfo => fuelInfo.id === fuel.id) ?? {}\n\n  const { color } = matchingFuelInformation\n  const fuelName = getFuelLabelFromId(fuel.id ?? DEFAULT_FUEL_ID)\n  const fuelColor = color?.hex ?? FUEL_DEFAULT_COLOR\n\n  if (!matchingFuelInformation) return <></>\n\n  return (\n    <div className={classNames(s.gasPrice, opacity && s.gasPriceOpacity)} style={{ borderColor: fuelColor }}>\n      <div className={s.gasName} style={{ backgroundColor: fuelColor }}>\n        <span className={s.gasNameContent}>{fuelName}</span>\n      </div>\n      <div className={s.gasPriceText}>{getFuelPriceDisplayValue(fuel)}</div>\n    </div>\n  )\n}\n\nexport default GeoentityFuelCard\n","import React from 'react'\nimport GeoentityFuelCard from './GeoentityFuelCard'\nimport s from './GeoentityFuelListItem.less'\nimport { useSelector } from 'react-redux'\nimport {} from '../search/filters/filters.constants'\nimport { DEFAULT_FUEL_ID } from '../../store/geoentity/geoentity.constants'\nimport { isPE } from '../Device'\nimport { selectCurrentFuelFilterIdWithoutFallback } from '../../store/geoentity/fuels.selectors'\n\nconst GeoentityFuelCards = ({ poi }) => {\n  const { additionalInfo = {} } = poi\n  const { fuels } = additionalInfo\n\n  const displayNumber = isPE() ? 2 : 3\n\n  const currentFuelFilterId = useSelector(selectCurrentFuelFilterIdWithoutFallback)\n  const shouldApplyFilterStyle = Boolean(currentFuelFilterId)\n\n  const currentFuelId = currentFuelFilterId ?? DEFAULT_FUEL_ID\n  const firstFuelToDisplay = fuels.find(fuel => fuel.id === currentFuelId)\n  const fuelsToDisplay = [firstFuelToDisplay].concat(fuels.filter(fuel => fuel.id !== currentFuelId))\n  const hiddenFuelsLength = fuelsToDisplay.length > displayNumber ? fuelsToDisplay.length - displayNumber : 0\n\n  return (\n    <div className={s.gasContainer}>\n      {fuelsToDisplay.slice(0, displayNumber).map((fuel, index) => (\n        <GeoentityFuelCard key={fuel.id} fuel={fuel} opacity={shouldApplyFilterStyle && index !== 0} />\n      ))}\n      {hiddenFuelsLength > 0 && <span className={s.moreFuelsNumber}>+{hiddenFuelsLength}</span>}\n    </div>\n  )\n}\n\nexport default GeoentityFuelCards\n","import classNames from 'classnames'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectCurrentFuelFilterId } from '../../store/geoentity/fuels.selectors'\nimport { getColorFromOpeningStatus } from '../../store/geoentity/geoentity.helpers'\nimport { selectGeolocationPosition, selectIsGeoLocationOn } from '../../store/geolocation/geolocation.selectors'\nimport { selectSubCategoryById } from '../../store/poiassets/poiassets.selectors'\nimport { isPE } from '../Device'\nimport CrossBrowserImage from '../genericComponents/CrossBrowserImage'\nimport RectangleActionButton, {\n  COLOR_GREY_EMPTY,\n  SIZE_MEDIUM\n} from '../genericComponents/buttons/RectangleActionButton'\nimport SVGIcon from '../svg/SVGIcon'\nimport { getDistanceByFlyCrow } from '../utils/map'\nimport { useSelectorWithProps } from '../utils/react-redux'\nimport CornerShops from './CornerShops'\nimport GeoentityFuelCards from './GeoentityFuelCards'\nimport sFuelListItem from './GeoentityFuelListItem.less'\nimport sListItem from './GeoentityListItem.less'\nimport GeoentityOpeningMessage from './GeoentityOpeningMessage'\nimport GoToGeoentityButton from './GoToGeoentityButton'\nimport Reviews from './Reviews'\nimport PromoIcon from './promo.svg'\nimport useGeoentityListItem from './useGeoentityListItem'\n\nconst GeoentityFuelListItem = ({ poi, noExternalButtons, index }) => {\n  const { name, rubric = {}, cornerShops, additionalInfo = {}, addressLabel, reviews, openingStatus, coordinates } = poi\n  const { secondTeasing, promo, fuels } = additionalInfo\n  const illustrationUrl = additionalInfo?.illustration?.url\n  const { label: rubricLabel } = rubric\n\n  const currentFuelId = useSelector(selectCurrentFuelFilterId)\n  const isGeolocationActive = useSelector(selectIsGeoLocationOn)\n  const currentPosition = useSelector(selectGeolocationPosition)\n  const poiDistance = currentPosition?.lng\n    ? getDistanceByFlyCrow(currentPosition?.lng, currentPosition?.lat, coordinates.lng, coordinates.lat)\n    : null\n\n  const { displayOptions, liMouseListeners, isSelected, geoentityImageAlt } = useGeoentityListItem(poi)\n\n  const { message: openingMessage, status } = openingStatus ?? {}\n  const openingMessageColor = getColorFromOpeningStatus(status)\n  const gasStationColor = useSelectorWithProps(selectSubCategoryById, { id: 'station-service' })\n  const matchingFuel = fuels?.find(fuel => fuel?.id === currentFuelId)\n\n  return (\n    <li className={classNames(sListItem.item, isSelected && sListItem.selectedItem)} {...liMouseListeners}>\n      <div className={classNames(sListItem.content, sFuelListItem.fuelContent)}>\n        {isPE() && __BROWSER__ && (\n          <div className={sFuelListItem.fuelHeader}>\n            <div className={sFuelListItem.geoentityLogo} style={{ backgroundColor: gasStationColor?.color }}>\n              <SVGIcon className={sFuelListItem.gasStationIcon} icon={'station-service'} />\n            </div>\n            {isGeolocationActive && poiDistance >= 0 && (\n              <div className={sFuelListItem.geoentityDistance}>{`à ${poiDistance?.toFixed(1)} km`}</div>\n            )}\n          </div>\n        )}\n        <div className={sFuelListItem.fuelTextualContent}>\n          <div className={sListItem.name}>\n            <GoToGeoentityButton poi={poi} className={sListItem.link} isLink>\n              {name}\n            </GoToGeoentityButton>\n            {promo && (\n              <div className={sListItem.promo}>\n                <img src={PromoIcon} alt=\"Promo icône\" /> Promo\n              </div>\n            )}\n          </div>\n          {displayOptions.address && <div className={sListItem.text}>{addressLabel}</div>}\n          {displayOptions.rubric && <div className={sListItem.text}>{rubricLabel}</div>}\n          <div className={sListItem.text}>\n            <Reviews reviews={reviews} />\n          </div>\n          <div className={sListItem.text} dangerouslySetInnerHTML={{ __html: secondTeasing }} />\n          <GeoentityOpeningMessage openingMessage={openingMessage} openingMessageColor={openingMessageColor} />\n          <CornerShops cornerShops={cornerShops} />\n          {matchingFuel && <GeoentityFuelCards poi={poi} />}\n          <div className={sListItem.button}>\n            <GoToGeoentityButton poi={poi}>\n              <RectangleActionButton\n                label=\"Plus d'infos\"\n                color={COLOR_GREY_EMPTY}\n                className={noExternalButtons ? sListItem.fakeButtonLandingPage : sListItem.buttonMoreInfo}\n                size={SIZE_MEDIUM}\n              />\n            </GoToGeoentityButton>\n          </div>\n        </div>\n      </div>\n      <CrossBrowserImage className={sListItem.illustration} src={illustrationUrl} alt={geoentityImageAlt} />\n    </li>\n  )\n}\n\nexport default GeoentityFuelListItem\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport { navigateTo } from '../../store/history/history.actions'\nimport ActionButton from '../genericComponents/buttons/ActionButton'\nimport { useAction } from '../utils/react-redux'\nimport useEventCallback from '../utils/useEventCallback'\n\nexport default function NavButton({ to, children, className, href, tagData }) {\n  const execNavigateTo = useAction(navigateTo)\n  const onClick = useEventCallback(() => {\n    execNavigateTo(to)\n  }, [execNavigateTo])\n\n  return (\n    <ActionButton className={className} onClick={onClick} href={href} noNavigate tagData={tagData}>\n      {children}\n    </ActionButton>\n  )\n}\n\nNavButton.propTypes = {\n  children: PropTypes.node.isRequired,\n  className: PropTypes.string,\n  href: PropTypes.string,\n  to: PropTypes.shape({\n    route: PropTypes.string,\n    fullRoute: PropTypes.string,\n    routeOptions: PropTypes.object,\n    selectedStoreState: PropTypes.object\n  }),\n  tagData: PropTypes.shape({\n    tagInfo: PropTypes.object,\n    type: PropTypes.string\n  })\n}\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { ROUTE_SEO_GEOENTITY } from '../../routes'\nimport { TAG_CLICK_POI_FICHE_ADDRESSE } from '../analytics/analytics.tagids.constants'\nimport { selectNavigateToGeoentityParameters } from '../../store/history/history.navigate.selectors'\nimport NavButton from '../router/NavButton'\nimport { generateFullRoute } from '../router/routeUtils'\n\nexport default function GoToGeoentityButton({ children, poi, className, isLink = false }) {\n  const navigateToParams = useSelector(store => selectNavigateToGeoentityParameters(store, { id: poi.id }))\n  return (\n    <NavButton\n      href={isLink ? generateFullRoute(ROUTE_SEO_GEOENTITY, { geoentityId: poi.id }) : ''}\n      to={navigateToParams}\n      tagData={{\n        type: TAG_CLICK_POI_FICHE_ADDRESSE,\n        tagInfo: {\n          appId: poi.tabs?.[0]?.appId,\n          catId: poi?.rubric?.id\n        }\n      }}\n      className={className}\n    >\n      {children}\n    </NavButton>\n  )\n}\n","import { tagBi } from '../analytics/BiTagger'\nimport { useSelector } from 'react-redux'\nimport { selectCurrentGeoentityId } from '../../store/geoentity/geoentity.selectors'\n\nexport default function useTagBiForGeoentity(biTagId, moreParams = {}) {\n  const geoentityId = useSelector(selectCurrentGeoentityId)\n\n  return () => tagBi(biTagId, { geoentity: geoentityId, ...moreParams })\n}\n","import React from 'react'\nimport { isEmpty } from '../../utils/lang'\n\nexport default function JsonLd({ data }) {\n  if (isEmpty(data)) return <></>\n  return <script type=\"application/ld+json\" dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }} />\n}\n"],"names":["Reviews","_ref","reviews","React","averageNote","maxNote","numberOfReviews","max","number","className","s","text","formatNumber","IncentiveMessage","hasDateFilter","_ref2","poi","noExternalButtons","additionalInfo","price","freeCancellation","breakfastIncluded","numberOfNights","numberOfPeople","useSelector","selectHasFilterMultiDatePicker","areFilterDatesFilled","Boolean","selectFilterHotelDates","numberOfNightsLabel","numberOfPeopleLabel","classNames","sListItem","value","currency","GoToGeoentityButton","RectangleActionButton","label","color","COLOR_GREY_EMPTY","fakeButtonLandingPage","buttonMoreInfo","size","SIZE_MEDIUM","ReservationButton","reservationUrl","clickTagPropsForRedirection","sendBiTagNow","useTagBiForGeoentity","SPD_GEOENTITY_LIST_LINK","targeturl","button","buttonForeground","COLOR_ORANGE_EMPTY","tagData","href","targetBlank","nofollow","onClick","cornerShops","openingStatus","teasing","secondTeasing","prestations","useGeoentityListItem","cookingType","_exec","exec","arguments","length","undefined","getCookingType","message","openingMessage","status","openingMessageColor","getColorFromOpeningStatus","SVGIcon","url","cultery","dangerouslySetInnerHTML","__html","GeoentityOpeningMessage","CornerShops","_poi$rubric","hotelIdList","selectHotelIdList","isHotel","isHotelPoi","isStationServiceRubric","rubric","id","GEOENTITY_FUEL_CELL_TYPE","GEOENTITY_HOTEL_CELL_TYPE","GEOENTITY_GENERIC_CELL_TYPE","useGetGeoentityTypeForListItem","GeoentityHotelListItemDetails","GeoentityGenericListItemDetails","_additionalInfo$illus","type","name","addressLabel","promo","illustrationUrl","illustration","rubricLabel","displayOptions","geoentityImageAlt","liMouseListeners","isSelected","_extends","item","selectedItem","content","link","isLink","src","PromoIcon","alt","address","GeoentityListItemDetails","CrossBrowserImage","style","getStructuredBusinessType","rubricId","capitalize","getStructuredAddress","addressComponents","way","town","postcode","countryCode","streetAddress","addressLocality","postalCode","addressCountry","isFranceCountryCode","getStructuredAggregateRating","ratingComponent","isEmpty","aggregateRating","ratingValue","ratingCount","bestRating","getStructuredImage","imageUrl","image","GeoentityStructuredData","geoentity","selectCurrentGeoentity","data","generateFullRoute","ROUTE_SEO_GEOENTITY","geoentityId","JsonLd","Component","propsToWatch","isCurrent","icon","priceColor","visited","backgroundColor","navigateToPoi","focusPoi","unfocusPoi","vde","marker","getPoiRubricId","onSelect","useErrorBoundaryCallback","onUnselect","useEventCallback","Marker","PoiMarkerHTML","props","nextProps","every","getPropertyByString","withMapInitialized","dispatch","useDispatch","markers","pois","selectVdeGeoentities","selectGeoentities","fuelId","selectCurrentFuelFilterId","fuelColor","selectCurrentFuelColor","currentPoiId","selectCurrentGeoentityId","focusedPoiId","selectFocusedPoiId","visitedPoiIds","selectVisitedPoiIds","poisCount","getZIndex","idx","isFocus","map","priceData","getPoiPriceDataForMarker","getMarkerMainInformation","includes","sort","poiZIndexWeightCompare","zIndex","usePoisDataForMarkers","configureAndSendTag","useConfigureAndSendTag","execNavigateToGeoentity","useAction","navigateToGeoentity","execFocusGeoentity","focusGeoentity","_ref3","TAG_CLICK_POI","tagInfo","affichage","appId","catId","scrollTop","PoiMarker","key","requestUnfocusGeoentity","ContentLoader","speed","width","height","foregroundColor","x","y","rx","ry","getItems","geoentities","currentGeoentityId","filter","position","GeoentityListStructuredData","selectFirstAddress","zip","selectTownFromPath","selectGeoentityTypeDataForSearch","itemListElement","geoentitiesSelector","isWaitingForGeoentities","selectIsWaitingForRequestedGeoentities","scrollContext","useScrollContext","lastParams","setLastParams","useState","currentParams","pick","selectCurrentHistoryRouteOptions","searchFieldsForComparaisonCheck","useEffect","isEqual","currentFuelFilterId","selectCurrentFuelFilterIdWithoutFallback","a","b","_a$additionalInfo","_b$additionalInfo","fuels","find","GeoentityListPlaceholder","index","GeoentityFuelListItem","GeoentityListItem","iconUrl","logo","getImageUrl","useCommonGeoentityClickTagProps","tag","specificGeoentity","currentGeoentity","isReservable","getReservationTemplatizeUrl","useMemo","Rubrique","Application","getPoiApplicationId","Disponibilite","TAG_PUBLISHER","poiId","getPoiReservationLink","RESERVATION_URL_TYPE_LIST","useContextPoiDisplayOptions","route","selectCurrentHistoryRoute","defaultDisplay","isAddressRoute","PUB_TAG","PUB_LISTEREPONSE_REDIRECTIONRESERVATION","getPoiImageAlt","onMouseEnter","onMouseLeave","unfocusGeoentity","isGE","useLiMouseListeners","shouldDisplayFilters","selectShouldDisplayFilters","computedHeaderHeight","useComputedHeaderHeight","PREHEADER_HEIGHT","selectedElement","document","querySelector","getBoundingClientRect","scrollTo","top","getScrollValue","fuel","opacity","fuelInformations","selectFuelInformation","matchingFuelInformation","fuelInfo","fuelName","getFuelLabelFromId","DEFAULT_FUEL_ID","hex","FUEL_DEFAULT_COLOR","gasPrice","gasPriceOpacity","borderColor","gasName","gasNameContent","gasPriceText","getFuelPriceDisplayValue","displayNumber","isPE","shouldApplyFilterStyle","currentFuelId","fuelsToDisplay","concat","hiddenFuelsLength","gasContainer","slice","GeoentityFuelCard","moreFuelsNumber","coordinates","isGeolocationActive","selectIsGeoLocationOn","currentPosition","selectGeolocationPosition","poiDistance","lng","getDistanceByFlyCrow","lat","gasStationColor","useSelectorWithProps","selectSubCategoryById","matchingFuel","sFuelListItem","fuelContent","fuelHeader","geoentityLogo","gasStationIcon","geoentityDistance","toFixed","fuelTextualContent","GeoentityFuelCards","NavButton","to","children","execNavigateTo","navigateTo","ActionButton","noNavigate","propTypes","PropTypes","isRequired","fullRoute","routeOptions","selectedStoreState","_poi$tabs","navigateToParams","store","selectNavigateToGeoentityParameters","TAG_CLICK_POI_FICHE_ADDRESSE","tabs","biTagId","moreParams","tagBi","JSON","stringify"],"sourceRoot":""}