{"version":3,"file":"assets/js/chunks/ROUTE_SEARCH_BY_APP.0fca2c34e7f443e5ac9c.js","mappings":"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","sources":["webpack://web-pwa/./src/domain/search/SearchInputIcon.less?d80b","webpack://web-pwa/./src/domain/search/SearchInputIcon.jsx","webpack://web-pwa/./src/domain/header/QuickSearchInput.jsx","webpack://web-pwa/./src/domain/header/QuickSearchInput.less?9e32","webpack://web-pwa/./src/domain/header/SearchInput.less?f742","webpack://web-pwa/./src/domain/header/SearchInput.jsx","webpack://web-pwa/./src/domain/utils/usePrevious.js","webpack://web-pwa/./src/domain/animation/SlideInOut.jsx","webpack://web-pwa/./src/domain/animation/SlideInOut.less?741e","webpack://web-pwa/./src/domain/address/AddressHeaderForm.jsx","webpack://web-pwa/./src/domain/address/AddressHeaderForm.less?9671","webpack://web-pwa/./src/domain/suggest/AddressSuggestContent.jsx","webpack://web-pwa/./src/domain/seo/MetaTags.jsx","webpack://web-pwa/./src/domain/genericComponents/TextError.jsx","webpack://web-pwa/./src/domain/genericComponents/TextError.less?a829","webpack://web-pwa/./src/domain/address/AddressList.less?3c08","webpack://web-pwa/./src/domain/address/AddressItem.jsx","webpack://web-pwa/./src/domain/address/AddressItem.less?9a5a","webpack://web-pwa/./src/domain/address/AddressList.jsx","webpack://web-pwa/./src/routes/address/AddressSearchDialogContent.jsx","webpack://web-pwa/./src/domain/search/SearchDialog.jsx","webpack://web-pwa/./src/domain/search/SearchDialog.less?1f12","webpack://web-pwa/./src/domain/error/PageNotFoundError.js","webpack://web-pwa/./src/domain/search/SearchMetaManager.jsx","webpack://web-pwa/./src/routes/search/search.route.js","webpack://web-pwa/./src/store/seo/seo-search.actions.js","webpack://web-pwa/./src/domain/search/search.page.jsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"common\":\"XwtJj\",\"icon\":\"ngGSR\"};","import classnames from 'classnames'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectGeoentityIconFromRouteOptions } from '../../store/poiassets/poiassets.selectors'\nimport SVGIcon from '../svg/SVGIcon'\nimport s from './SearchInputIcon.less'\n\nfunction SearchInputIcon() {\n const { iconId, mob_roundImage } = useSelector(selectGeoentityIconFromRouteOptions)\n if (iconId) return \n if (mob_roundImage) return \n return <>\n}\n\nexport default SearchInputIcon\n","import React, { useCallback, useRef } from 'react'\nimport s from './QuickSearchInput.less'\n\nconst QuickSearchInput = ({ searchInputRef, onChange }) => {\n const quickInputRef = useRef()\n\n const handleChange = useCallback(\n event => {\n searchInputRef.current.focus()\n onChange({ value: event.target.value })\n quickInputRef.current.value = ''\n },\n [searchInputRef, onChange, quickInputRef]\n )\n return \n}\n\nexport default QuickSearchInput\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"ofhDU\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"ptu98\",\"transparent\":\"pzs6I\",\"homePageContainer\":\"i7nEr\",\"prefix\":\"PeGRg\",\"field\":\"SLh43\",\"greenPlaceholder\":\"o0B0M\",\"whitePlaceholder\":\"xoOtT\",\"throbber\":\"HB2G0\",\"withIcon\":\"SY57p\",\"btnOk\":\"CN2Sb\"};","import classNames from 'classnames'\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { ROUTE_SUGGEST } from '../../routes'\nimport { navigateTo } from '../../store/history/history.actions'\nimport { selectCurrentHistoryRoute, selectIsHomePage } from '../../store/history/history.selectors'\nimport { selectHasSearchIconFromRouteOptions } from '../../store/poiassets/poiassets.selectors'\nimport { setSearchTerms } from '../../store/search/searchSlice'\nimport { suggest } from '../../store/suggest/suggest.actions'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { isGE } from '../Device'\nimport Throbber from '../loading/Throbber'\nimport { isPagelessRoute } from '../router/routeUtils'\nimport SearchInputIcon from '../search/SearchInputIcon'\nimport useUIDisplay from '../ui/useUIDisplay'\nimport { useAction } from '../utils/react-redux'\nimport useDebounce from '../utils/useDebounce'\nimport { usePrevious } from '../utils/usePrevious'\nimport QuickSearchInput from './QuickSearchInput'\nimport s from './SearchInput.less'\n\nconst SearchInput = forwardRef((props, ref) => {\n const {\n value,\n loading,\n onChange,\n onFocus,\n suggestFilterType,\n className,\n placeholder,\n idx = 0,\n prefix,\n hasGreenPlaceholder = false,\n navigateToSuggestOnFocus = true,\n isFirstStepToFill = true,\n transparent\n } = props\n\n const dispatch = useDispatch()\n const [hasFocus, setFocus] = useState(false)\n const route = useSelector(selectCurrentHistoryRoute)\n const hasIcon = useSelector(selectHasSearchIconFromRouteOptions)\n const prevRoute = usePrevious(route)\n const execSuggest = useAction(suggest)\n const execNavigateTo = useAction(navigateTo)\n const [isReady, setIsReady] = useState(false)\n const inputRef = useRef()\n const debouncedValue = useDebounce(value, 250)\n const hasDebouncedValueChangeOnce = useRef(false) // to ignore suggest on first render\n const isBtnOkDisplayed = isGE() && route === ROUTE_SUGGEST && !loading\n const isQuickSearch = isGE() && !hasFocus && (!value || value === '') && isFirstStepToFill\n const inputId = `SearchInput${idx}`\n const { showUI } = useUIDisplay(UI_ELEMENTS.SUGGEST)\n const isHomePage = useSelector(selectIsHomePage)\n\n const onSubmit = useCallback(() => {\n dispatch(setSearchTerms(value))\n return Promise.resolve().then(() => blur())\n }, [value])\n\n useImperativeHandle(ref, () => {\n return { onSubmit }\n })\n\n useEffect(() => {\n if (__BROWSER__) setIsReady(true)\n }, [__BROWSER__])\n\n useEffect(() => {\n if (route !== prevRoute && isPagelessRoute(prevRoute) && !isPagelessRoute(route)) {\n blur()\n }\n }, [route])\n\n const doSuggest = val => {\n dispatch(setSearchTerms(val))\n return execSuggest({ terms: val, suggestFilterType })\n }\n\n useEffect(() => {\n if (hasDebouncedValueChangeOnce.current && hasFocus) {\n doSuggest(debouncedValue)\n }\n hasDebouncedValueChangeOnce.current = true\n }, [hasFocus, debouncedValue])\n\n const handleChange = event => {\n onChange?.({ value: event.target.value })\n }\n\n const handleFocus = useCallback(\n e => {\n setTimeout(() => {\n if (value.length !== 0) e.target.select()\n }, 0)\n if (navigateToSuggestOnFocus) execNavigateTo({ route: ROUTE_SUGGEST })\n showUI()\n onFocus?.()\n setFocus(true)\n },\n [execNavigateTo, showUI, doSuggest, onFocus, setFocus]\n )\n\n const blur = useCallback(() => {\n inputRef?.current?.blur()\n setFocus(false)\n }, [inputRef, setFocus])\n\n return (\n \n {prefix && (\n \n )}\n {hasIcon && }\n \n {loading && (\n \n \n \n )}\n {isBtnOkDisplayed && }\n {isQuickSearch && }\n \n )\n})\n\nSearchInput.displayName = 'SearchInput'\nexport default SearchInput\n","import { useEffect, useRef } from 'react'\n\nexport const usePrevious = value => {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}\n","import React from 'react'\nimport { CSSTransition } from 'react-transition-group'\nimport s from './SlideInOut.less'\nimport * as Device from '../Device'\n\nconst SlideInOut = props => {\n const { display, children } = props\n\n return __BROWSER__ && !Device.isGE() ? (\n \n {animationState => children(animationState)}\n \n ) : (\n
{children()}
\n )\n}\n\nexport default SlideInOut\n","// extracted by mini-css-extract-plugin\nexport default {\"slideInEnter\":\"k6sbO\",\"slideInEnterActive\":\"BfkgQ\",\"slideInExit\":\"mvBm5\",\"slideInExitActive\":\"RAjNi\",\"show\":\"de9l7\",\"hide\":\"VN9rJ\"};","import React, { useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { searchAddress } from '../../store/address/address.actions'\nimport { selectIsFrenchSite } from '../../store/navigation/navigation.selectors'\nimport { selectSearchTerms } from '../../store/search/search.selectors'\nimport { suggestServiceCtx } from '../../store/suggest/suggest.service.constants'\nimport BackButton from '../header/BackButton'\nimport SearchInput from '../header/SearchInput'\nimport { useT } from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport s from './AddressHeaderForm.less'\n\nexport const AddressHeaderForm = ({ hasBackTag, transparent }) => {\n const isFrench = useSelector(selectIsFrenchSite)\n const searchTerms = useSelector(selectSearchTerms)\n const [value, setValue] = useState(searchTerms)\n const [loading, setLoading] = useState(false)\n const execSearchAddress = useAction(searchAddress)\n const SearchInputRef = useRef()\n const placeholder = useT('header.search.placeholder')\n\n useEffect(() => {\n // if searchTerms has been reset, we empty search field\n setValue(searchTerms)\n }, [searchTerms])\n\n const onChange = ({ value: val }) => {\n setValue(val)\n }\n\n const onSubmit = e => {\n e.preventDefault()\n if (!value) return\n\n setLoading(true)\n\n return SearchInputRef.current\n .onSubmit()\n .then(() => execSearchAddress({ terms: value }))\n .finally(() => {\n setLoading(false)\n })\n }\n\n return (\n <>\n \n
\n \n \n \n )\n}\n\nexport default AddressHeaderForm\n","// extracted by mini-css-extract-plugin\nexport default {\"AddressHeaderForm\":\"lx8xP\"};","import React from 'react'\nimport { searchAddress } from '../../store/address/address.actions'\nimport { TAG_SUGGEST } from '../analytics/analytics.tagids.constants'\nimport { setSearchTerms } from '../../store/search/searchSlice'\nimport { removeHtmlEmTags } from '../../utils/string'\nimport useConfigureAndSendTag from '../analytics/useConfigureAndSendTag'\nimport { useAction } from '../utils/react-redux'\nimport SuggestContent from './SuggestContent'\nimport { SUGGEST_FROM_VALUES } from './suggest.constants'\nimport { useDispatch } from 'react-redux'\n\nconst AddressSuggestContent = () => {\n const dispatch = useDispatch()\n const execSearchAddress = useAction(searchAddress)\n const configureAndSendTag = useConfigureAndSendTag()\n\n const onClick = suggest => {\n const { labels, address, type, subtype, from } = suggest\n const label = removeHtmlEmTags(address || labels.join(' '))\n dispatch(setSearchTerms(label))\n\n if (from === SUGGEST_FROM_VALUES.favorites) {\n configureAndSendTag({\n type: TAG_SUGGEST,\n tagInfo: { type, subtype, from }\n })\n }\n\n execSearchAddress({ terms: label })\n }\n\n return \n}\n\nexport default AddressSuggestContent\n","import React, { useCallback } from 'react'\nimport { Helmet } from 'react-helmet'\nimport { selectLocale } from '../../store/navigation/navigation.selectors'\nimport logo from '../branding/Mappy-310.png'\nimport translations from './MetaTags.json'\n\nimport { useSelector } from 'react-redux'\nimport { selectCurrentHistoryFullRoute } from '../../store/history/history.selectors'\nimport { getHrefLangBySubdomain, SUBDOMAIN_EN, SUBDOMAINS } from '../i18n'\nimport { isAbsoluteUrl } from '../utils/url'\nimport { generateAbsoluteBaseUrl } from './seo'\n\nconst getImageUrl = ({ image, locale, logo }) => {\n const img = image || logo\n if (!isAbsoluteUrl(img)) return `${generateAbsoluteBaseUrl(locale)}${img}`\n if (img.startsWith('//')) return `https:${img}`\n return img\n}\n\nconst getAlternateLinks = ({ alternateLinkPath, shouldIgnoreEn }) =>\n SUBDOMAINS.map((subdomain, idx) => {\n // not returning an empty React fragment here `<>` so returning array\n // is not filling alternate links with irrelevant and undefined components\n if (subdomain === SUBDOMAIN_EN && shouldIgnoreEn) return undefined\n\n return (\n \n )\n })\n\nconst MetaTags = ({\n title: givenTitle,\n description: givenDescription,\n image,\n url,\n alternateLinkPath,\n canonical,\n type,\n shouldIgnoreEn\n}) => {\n const locale = useSelector(selectLocale)\n const currentFullRoute = useSelector(selectCurrentHistoryFullRoute)\n\n const { title: defaultTitle, description: defaultDescription } = translations?.[locale] ?? {}\n const title = givenTitle || defaultTitle\n const description = givenDescription || defaultDescription\n const img = getImageUrl({ locale, image, logo })\n const typ = type || 'website'\n\n const buildCanonicalRoute = useCallback(() => {\n const canonicalUrl = !canonical ? currentFullRoute : canonical\n\n return canonicalUrl.split('#')[0]\n }, [currentFullRoute])\n\n return (\n \n {title}\n \n \n \n \n {url && }\n \n \n {alternateLinkPath && getAlternateLinks({ alternateLinkPath, shouldIgnoreEn })}\n \n \n )\n}\n\nexport default MetaTags\n","import React from 'react'\nimport s from './TextError.less'\n\nimport { selectLocale } from '../../store/navigation/navigation.selectors'\nimport { translate } from '../i18n/T'\nimport { useSelector } from 'react-redux'\nimport { isString } from '../../utils/string'\n\nexport const defaultErrorMessage = 'Erreur'\n\nconst getMessage = ({ error, locale }) => {\n if (isString(error)) return error\n const errorName = error?.name\n if (errorName) {\n const translatedMessage = translate(locale)(errorName)\n if (translatedMessage !== errorName) return translatedMessage\n }\n return error?.message ?? defaultErrorMessage\n}\n\nexport const TextError = ({ error }) => {\n const locale = useSelector(selectLocale)\n\n if (!error) return <>\n\n return (\n
\n {getMessage({ error, locale })}\n
\n )\n}\n\nexport default TextError\n","// extracted by mini-css-extract-plugin\nexport default {\"TextError\":\"FKp6_\",\"TextErrorMessage\":\"B8teB\"};","// extracted by mini-css-extract-plugin\nexport default {\"AddressList\":\"Xxl1Q\"};","import React from 'react'\nimport { useAction } from '../utils/react-redux'\nimport { setAmbiguityAddress } from '../../store/location/location.actions'\nimport s from './AddressItem.less'\nimport useEventCallback from '../utils/useEventCallback'\n\nconst AddressItem = ({ address }) => {\n const execSetAddress = useAction(setAmbiguityAddress)\n const [firstLabel, ...otherLabels] = address.split_label\n\n const onClick = useEventCallback(() => {\n execSetAddress(address)\n }, [execSetAddress])\n\n return (\n \n )\n}\n\nexport default AddressItem\n","// extracted by mini-css-extract-plugin\nexport default {\"AddressItem_link\":\"srFvv\",\"AddressItem_mainLabel\":\"Qh228\",\"AddressItem_secondaryLabel\":\"WBFZf\"};","import React from 'react'\nimport s from './AddressList.less'\nimport { useSelector } from 'react-redux'\nimport { selectAddresses } from '../../store/address/address.selectors'\nimport AddressItem from './AddressItem'\n\nexport default function AddressList() {\n const addresses = useSelector(selectAddresses)\n\n if (addresses.length <= 1) return <>\n\n return (\n
\n
    \n {addresses.map((address, idx) => (\n
  • \n \n
  • \n ))}\n
\n
\n )\n}\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport AddressList from '../../domain/address/AddressList'\nimport TextError from '../../domain/genericComponents/TextError'\nimport { selectAddressError } from '../../store/address/address.selectors'\n\nconst AddressSearchDialogContent = () => {\n const addressError = useSelector(selectAddressError)\n\n if (addressError) {\n return \n }\n\n return \n}\n\nexport default AddressSearchDialogContent\n","import React from 'react'\nimport classNames from 'classnames'\nimport s from './SearchDialog.less'\nimport SlideInOut from '../animation/SlideInOut'\nimport { isUIElementDisplayed } from '../../store/ui/ui.selectors'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { useSelector } from 'react-redux'\n\nconst SearchDialog = ({ children, suggestContent }) => {\n const searchDialogIsDisplayed = useSelector(isUIElementDisplayed(UI_ELEMENTS.SEARCH_DIALOG))\n const suggestIsDisplayed = useSelector(isUIElementDisplayed(UI_ELEMENTS.SUGGEST))\n\n return (\n \n {animationState => (\n \n
\n {(animationState === 'exiting' || suggestIsDisplayed) && suggestContent}\n {!suggestIsDisplayed && children}\n
\n
\n )}\n
\n )\n}\n\nexport default SearchDialog\n","// extracted by mini-css-extract-plugin\nexport default {\"SearchDialog\":\"Imy2_\",\"SearchDialog_displayed\":\"zIaNN\",\"SearchDialog_scrollableContent\":\"VCemQ\"};","export const PageNotFoundErrorCode = 404\n\nexport default class PageNotFoundError extends Error {\n constructor(e = 'Page non trouvée') {\n super(e)\n this.originalError = e\n this.name = 'PageNotFoundError'\n this.type = PageNotFoundErrorCode\n }\n}\n","import React from 'react'\nimport MetaTags from '../seo/MetaTags'\nimport { selectGeoentityTypeDataForSearch } from '../../store/poiassets/poiassets.selectors'\nimport { useSelector } from 'react-redux'\nimport { selectSeoCurrentRubricLabel } from '../../store/seo/seo.selectors'\n\nexport const useMetaData = () => {\n const { label, isHotel } = useSelector(selectGeoentityTypeDataForSearch)\n const currentRubricLabel = useSelector(selectSeoCurrentRubricLabel)\n\n const displayLabel = currentRubricLabel ?? label\n\n if (!label && !currentRubricLabel) return {}\n\n if (isHotel) {\n return {\n title: 'Hôtels à proximité - Réservations, Localisation, Horaires - Mappy',\n description:\n 'Réservez ou trouvez les adresses et horaires des hôtels sur la carte de France ou à proximité de votre position'\n }\n }\n\n return {\n title: `${displayLabel} à proximité - Localisation, Horaires - Mappy`,\n description: `Trouvez les adresses et horaires des ${displayLabel} sur la carte de France ou à proximité de votre position`\n }\n}\n\nconst SearchMetaManager = () => {\n const metaData = useMetaData()\n return \n}\n\nexport default SearchMetaManager\n","import PageNotFoundError from '../../domain/error/PageNotFoundError'\nimport { LOCALES } from '../../domain/i18n'\nimport { HOTEL_DATEPICKER_ID } from '../../domain/search/filters/filters.constants'\nimport { renderPage } from '../../domain/search/search.page'\nimport { getCountryBBoxForLocale } from '../../parameters'\nimport { selectHasFilterMultiDatePicker } from '../../store/geoentity/filter.selectors'\nimport { loadFuelInformation, searchGeoentities } from '../../store/geoentity/geoentity.actions'\nimport { isStationServiceRubric } from '../../store/geoentity/geoentity.helpers'\nimport { resetGeoentityFilterParameters, resetGeoentityList } from '../../store/geoentity/geoentitySlice'\nimport { requestGeolocationStatus } from '../../store/geolocation/geolocationSlice'\nimport { searchFieldsHaveNotChanged } from '../../store/history/history.search'\nimport {\n isGeoentityOnSearchRoute,\n isSearchFiltersRoute,\n selectCurrentHistoryRouteOptions,\n selectIsASearchPage,\n selectIsSearchPage\n} from '../../store/history/history.selectors'\nimport { requestMove } from '../../store/map/map.actions'\nimport { GEOLOC_STATUS_FETCH_ACTIVE } from '../../store/map/map.constants'\nimport { selectMapActiveBbox } from '../../store/map/map.selectors'\nimport { activateGeoIp } from '../../store/map/mapSlice'\nimport { selectIsFrenchSite } from '../../store/navigation/navigation.selectors'\nimport { loadPoiAssetsConfiguration } from '../../store/poiassets/poiassets.actions'\nimport { getGeoentityTypeDataForSearch } from '../../store/poiassets/poiassets.selectors'\nimport { search } from '../../store/search/search.actions'\nimport { getSearchMaxPois } from '../../store/search/search.selectors'\nimport { searchServiceCtx } from '../../store/search/search.service.constants'\nimport { resetSearchParameters, setSearchParameters, setSearchTerms } from '../../store/search/searchSlice'\nimport {\n loadRubrics,\n loadSiblingsCityActivity,\n loadTopTownsForApp,\n loadTopTownsForRubric\n} from '../../store/seo/seo-poi.actions'\nimport {\n loadSearchFooterData,\n setSearchCurrentRubric,\n setSearchH1Title,\n setSearchParentRubric\n} from '../../store/seo/seo-search.actions'\nimport { selectRubrics } from '../../store/seo/seo.selectors'\nimport { resetSeoH1Title, resetSeoParentRubric, resetSeoRubricLabel } from '../../store/seo/seoSlice'\nimport { setGeoentityActiveFilter } from '../../store/ui/ui.actions'\nimport { hideUiElement, resetUiDrawerClientTop, resetUiGeoentityActiveFilter } from '../../store/ui/uiSlice'\nimport { handleRouteLoading } from '../routeService'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\n\nexport const checkIfBackFromPoiOrFilters = (routeParams, prevRoute) =>\n (isGeoentityOnSearchRoute(prevRoute?.route) && searchFieldsHaveNotChanged(routeParams, prevRoute?.params)) ||\n isSearchFiltersRoute(prevRoute?.route)\n\nconst resetGeoentitiesSearchUI = isBackFromPoiOrFilters => (dispatch, getState) => {\n if (!isBackFromPoiOrFilters) {\n dispatch(resetGeoentityFilterParameters())\n dispatch(resetUiGeoentityActiveFilter())\n }\n}\nconst setGeoentityFilterSearchUI = isBackFromPoiOrFilters => (dispatch, getState) => {\n if (selectHasFilterMultiDatePicker(getState()) && !isBackFromPoiOrFilters) {\n setGeoentityActiveFilter(HOTEL_DATEPICKER_ID)(dispatch, getState)\n }\n}\n\nconst getAccordingBbox = getState => {\n const urlHashBbox = selectCurrentHistoryRouteOptions(getState())?.bbox\n const storeActiveBbox = selectMapActiveBbox(getState())\n const defaultFranceBbox = getCountryBBoxForLocale(LOCALES.fr_FR)\n\n return urlHashBbox || storeActiveBbox || defaultFranceBbox\n}\n\nexport const onRouteEnter = ({ params, store: { getState, dispatch }, routeContext: { prevRoute, state } }) => {\n if (!selectIsFrenchSite(getState())) {\n throw new PageNotFoundError('storeloc page accessed from foreign site')\n }\n\n dispatch(setSearchParameters(params))\n\n if (__SERVER__) {\n dispatch(\n requestGeolocationStatus(GEOLOC_STATUS_FETCH_ACTIVE, {\n mapMove: true,\n GE: { doNotRequest: true }\n })\n )\n }\n dispatch(activateGeoIp())\n\n const isBackFromPoiOrFilters = checkIfBackFromPoiOrFilters(params, prevRoute)\n if (!state?.doNotResetGeoentityDisplayList) {\n resetGeoentitiesSearchUI(isBackFromPoiOrFilters)(dispatch, getState)\n }\n\n return loadPoiAssetsConfiguration()(dispatch, getState)\n .then(() => {\n if (__SERVER__ && params.rubric) {\n return loadRubrics()(dispatch, getState).then(() => {\n const rubrics = selectRubrics(getState())\n if (!(params.rubric in rubrics)) {\n throw new PageNotFoundError(`unknown rubricId ${params.rubric}`)\n }\n })\n }\n })\n .then(() => {\n const { label, appOrRubricIds, searchTerms, biTagId, isRubric } = getGeoentityTypeDataForSearch(\n getState(),\n params\n )\n\n if (__SERVER__) {\n if (!appOrRubricIds || !label) {\n throw new PageNotFoundError(`unknown appId ${params.app}`)\n }\n setSearchH1Title()(dispatch, getState)\n if (isRubric) {\n setSearchCurrentRubric()(dispatch, getState)\n setSearchParentRubric()(dispatch, getState)\n }\n } else if (prevRoute?.params && !searchFieldsHaveNotChanged(params, prevRoute?.params)) {\n dispatch(resetSeoH1Title())\n dispatch(resetSeoRubricLabel())\n dispatch(resetSeoParentRubric())\n }\n\n dispatch(setSearchTerms(label))\n\n const bbox = getAccordingBbox(getState)\n\n if (isBackFromPoiOrFilters) {\n if (bbox) requestMove({ bbox, options: { avoidAnimation: true } })(dispatch, getState)\n return Promise.resolve()\n }\n\n if (appOrRubricIds) {\n return Promise.resolve()\n .then(() => {\n const shouldLoadFuelInformation = isStationServiceRubric(appOrRubricIds)\n if (shouldLoadFuelInformation) return loadFuelInformation()(dispatch, getState)\n })\n .then(() => {\n return searchGeoentities({\n appOrRubricIds,\n bbox,\n biTagId,\n max: getSearchMaxPois(),\n extendBbox: state?.extendBbox ?? 1\n })(dispatch, getState)\n })\n } else if (searchTerms) {\n const avoidSearching = state?.avoidSearching ?? false\n\n return (\n !avoidSearching &&\n search({\n terms: searchTerms,\n searchFilterType: searchServiceCtx.filter.poi,\n bbox,\n navigateAfterSearch: false\n })(dispatch, getState)\n )\n }\n return Promise.resolve()\n })\n .then(() => {\n const { appOrRubricIds } = getGeoentityTypeDataForSearch(getState(), params)\n\n return Promise.all([\n __SERVER__ ? loadTopTownsForApp(appOrRubricIds, 51)(dispatch, getState) : Promise.resolve(),\n __SERVER__ ? loadTopTownsForRubric(appOrRubricIds, 101)(dispatch, getState) : Promise.resolve(),\n __SERVER__ ? loadSiblingsCityActivity(appOrRubricIds)(dispatch, getState) : Promise.resolve(),\n loadSearchFooterData()(dispatch, getState),\n setGeoentityFilterSearchUI(isBackFromPoiOrFilters)(dispatch, getState)\n ])\n })\n}\n\nexport const onRouteLeave = ({ routeContext }) => {\n const {\n store: { dispatch, getState }\n } = routeContext\n\n dispatch(hideUiElement(UI_ELEMENTS.ALL_FILTERS_DIALOG))\n\n if (!selectIsSearchPage(getState())) {\n dispatch(resetUiGeoentityActiveFilter())\n dispatch(resetUiDrawerClientTop())\n }\n if (!selectIsASearchPage(getState())) {\n dispatch(resetSearchParameters())\n dispatch(resetGeoentityList())\n dispatch(resetGeoentityFilterParameters())\n dispatch(resetSeoH1Title())\n }\n}\n\nexport default handleRouteLoading({ onRouteEnter, renderPage, onRouteLeave })\n","import { selectGeoentityTypeDataForSearch } from '../poiassets/poiassets.selectors'\nimport hotelCities from './hotel-footer-cities.json'\nimport { selectRubricById } from './seo.selectors'\nimport { setSeoActivities, setSeoH1Title, setSeoParentRubric, setSeoRubricLabel } from './seoSlice'\n\nexport const setSearchH1Title = () => (dispatch, getState) => {\n const { label, isRubric, isHotel } = selectGeoentityTypeDataForSearch(getState())\n const title = isRubric ? (isHotel ? 'Réservez votre hôtel avec Mappy' : `${label} autour de moi`) : label\n\n dispatch(setSeoH1Title(title))\n}\n\nexport const setSearchCurrentRubric = () => (dispatch, getState) => {\n const { label } = selectGeoentityTypeDataForSearch(getState())\n dispatch(setSeoRubricLabel(label))\n}\n\nexport const setSearchParentRubric = () => (dispatch, getState) => {\n const { appOrRubricIds } = selectGeoentityTypeDataForSearch(getState())\n const { rubricParentId } = selectRubricById(getState(), { rubricId: appOrRubricIds })\n const rubricParentLabel = selectRubricById(getState(), { rubricId: rubricParentId }).label\n dispatch(setSeoParentRubric({ rubricParentId, rubricParentLabel }))\n}\n\nexport const loadSearchFooterData = () => (dispatch, getState) => {\n return Promise.all([loadSearchFooterCities()(dispatch, getState)])\n}\n\nexport const loadSearchFooterCities = () => (dispatch, getState) => {\n const { isHotel } = selectGeoentityTypeDataForSearch(getState())\n if (isHotel) {\n dispatch(\n setSeoActivities({\n results: hotelCities.map(city => ({\n ...city,\n label: 'Hôtels',\n id: 'hotel'\n }))\n })\n )\n }\n return Promise.resolve()\n}\n","import React from 'react'\nimport AddressSearchDialogContent from '../../routes/address/AddressSearchDialogContent'\nimport { PAGE_CLASSES } from '../../routes/pageClasses.constants'\nimport AddressHeaderForm from '../address/AddressHeaderForm'\nimport Page from '../genericComponents/Page'\nimport Header from '../header/Header'\nimport Map from '../map/Map'\nimport PoisMarkers from '../map/markers/PoisMarkers'\nimport AddressSuggestContent from '../suggest/AddressSuggestContent'\nimport SearchDialog from './SearchDialog'\nimport SearchMain from './SearchMain'\nimport SearchMetaManager from './SearchMetaManager'\n\nexport const renderPage = () => {\n const { SearchHomePage, withToaster } = PAGE_CLASSES\n return (\n \n \n \n \n \n
\n \n
\n }>\n \n \n \n
\n )\n}\n"],"names":["iconId","mob_roundImage","useSelector","selectGeoentityIconFromRouteOptions","React","SVGIcon","icon","className","classnames","s","src","_ref","searchInputRef","onChange","quickInputRef","useRef","handleChange","useCallback","event","current","focus","value","target","ref","autoFocus","SearchInput","forwardRef","props","loading","onFocus","suggestFilterType","placeholder","idx","prefix","hasGreenPlaceholder","navigateToSuggestOnFocus","isFirstStepToFill","transparent","dispatch","useDispatch","hasFocus","setFocus","useState","route","selectCurrentHistoryRoute","hasIcon","selectHasSearchIconFromRouteOptions","prevRoute","useEffect","usePrevious","execSuggest","useAction","suggest","execNavigateTo","navigateTo","isReady","setIsReady","inputRef","debouncedValue","useDebounce","hasDebouncedValueChangeOnce","isBtnOkDisplayed","isGE","ROUTE_SUGGEST","isQuickSearch","inputId","showUI","useUIDisplay","UI_ELEMENTS","SUGGEST","isHomePage","selectIsHomePage","onSubmit","setSearchTerms","Promise","resolve","then","blur","useImperativeHandle","__BROWSER__","isPagelessRoute","doSuggest","val","terms","handleFocus","e","setTimeout","length","select","_inputRef$current","classNames","htmlFor","SearchInputIcon","type","id","disabled","autoComplete","Throbber","QuickSearchInput","displayName","display","children","Device","CSSTransition","in","timeout","enter","enterActive","exit","exitActive","unmountOnExit","animationState","hasBackTag","isFrench","selectIsFrenchSite","searchTerms","selectSearchTerms","setValue","setLoading","execSearchAddress","searchAddress","SearchInputRef","useT","BackButton","hasTag","preventDefault","finally","suggestServiceCtx","filter","all","places","_ref2","AddressSuggestContent","configureAndSendTag","useConfigureAndSendTag","SuggestContent","onClick","labels","address","subtype","from","label","removeHtmlEmTags","join","SUGGEST_FROM_VALUES","favorites","TAG_SUGGEST","tagInfo","getImageUrl","image","locale","logo","img","isAbsoluteUrl","startsWith","generateAbsoluteBaseUrl","_ref3","title","givenTitle","description","givenDescription","url","alternateLinkPath","canonical","shouldIgnoreEn","selectLocale","currentFullRoute","selectCurrentHistoryFullRoute","defaultTitle","defaultDescription","translations","typ","buildCanonicalRoute","split","Helmet","name","content","property","toLowerCase","SUBDOMAINS","map","subdomain","SUBDOMAIN_EN","key","rel","href","hreflang","getHrefLangBySubdomain","getAlternateLinks","TextError","error","isString","errorName","translatedMessage","translate","message","getMessage","execSetAddress","setAmbiguityAddress","firstLabel","otherLabels","split_label","useEventCallback","AddressList","addresses","selectAddresses","AddressItem","AddressSearchDialogContent","addressError","selectAddressError","suggestContent","searchDialogIsDisplayed","isUIElementDisplayed","SEARCH_DIALOG","suggestIsDisplayed","SlideInOut","PageNotFoundError","Error","constructor","arguments","undefined","super","this","originalError","SearchMetaManager","metaData","useMetaData","isHotel","selectGeoentityTypeDataForSearch","currentRubricLabel","selectSeoCurrentRubricLabel","displayLabel","MetaTags","checkIfBackFromPoiOrFilters","routeParams","isGeoentityOnSearchRoute","searchFieldsHaveNotChanged","params","isSearchFiltersRoute","setGeoentityFilterSearchUI","isBackFromPoiOrFilters","getState","selectHasFilterMultiDatePicker","setGeoentityActiveFilter","HOTEL_DATEPICKER_ID","onRouteEnter","store","routeContext","state","setSearchParameters","activateGeoIp","doNotResetGeoentityDisplayList","resetGeoentityFilterParameters","resetUiGeoentityActiveFilter","resetGeoentitiesSearchUI","loadPoiAssetsConfiguration","appOrRubricIds","biTagId","isRubric","getGeoentityTypeDataForSearch","resetSeoH1Title","resetSeoRubricLabel","resetSeoParentRubric","bbox","_selectCurrentHistory","urlHashBbox","selectCurrentHistoryRouteOptions","storeActiveBbox","selectMapActiveBbox","defaultFranceBbox","getCountryBBoxForLocale","LOCALES","fr_FR","getAccordingBbox","requestMove","options","avoidAnimation","isStationServiceRubric","loadFuelInformation","searchGeoentities","max","getSearchMaxPois","extendBbox","avoidSearching","search","searchFilterType","searchServiceCtx","poi","navigateAfterSearch","setSeoActivities","results","hotelCities","city","loadSearchFooterCities","loadSearchFooterData","onRouteLeave","hideUiElement","ALL_FILTERS_DIALOG","selectIsSearchPage","resetUiDrawerClientTop","selectIsASearchPage","resetSearchParameters","resetGeoentityList","handleRouteLoading","renderPage","SearchHomePage","withToaster","PAGE_CLASSES","Page","cssClasses","Map","PoisMarkers","Header","AddressHeaderForm","SearchDialog","SearchMain"],"sourceRoot":""}