{"version":3,"file":"assets/js/chunks/8542.869f2d503caee7608959.js","mappings":"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","sources":["webpack://web-pwa/./src/domain/address/CityDescription.less?7988","webpack://web-pwa/./src/domain/genericComponents/ShareUrlButton.jsx","webpack://web-pwa/./src/domain/genericComponents/ShareUrlButton.less?8cca","webpack://web-pwa/./src/domain/error/PermanentRedirectError.js","webpack://web-pwa/./src/routes/routeErrors.utils.js","webpack://web-pwa/./src/domain/advertising/InlineMobileAdBanner.jsx","webpack://web-pwa/./src/domain/advertising/InlineMobileAdBanner.less?d513","webpack://web-pwa/./src/domain/address/ZoneDescription.jsx","webpack://web-pwa/./src/domain/address/AddressShareButton.jsx","webpack://web-pwa/./src/domain/genericComponents/CircledButtonWithLabel.jsx","webpack://web-pwa/./src/domain/genericComponents/CircledButtonWithLabel.less?61fd","webpack://web-pwa/./src/domain/seo/zones/ZoneMainContent.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/FavoriteButton.jsx","webpack://web-pwa/./src/domain/suggest/AddressSuggestContent.jsx","webpack://web-pwa/./src/domain/genericComponents/TextShortener.jsx","webpack://web-pwa/./src/domain/genericComponents/TextShortener.less?828c","webpack://web-pwa/./src/domain/utils/Clipboard.js","webpack://web-pwa/./src/domain/seo/zones/ZoneContent.jsx","webpack://web-pwa/./src/domain/address/AddressContent.less?46b3","webpack://web-pwa/./src/domain/error/PageNotFoundError.js","webpack://web-pwa/./src/domain/address/AddressMainContent.less?df95"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"description\":\"oqui8\"};","import React, { useState } from 'react'\nimport { TAG_CLICK_SHARE } from '../analytics/analytics.tagids.constants'\nimport { isPE } from '../Device'\nimport { useT } from '../i18n/T'\nimport copyTextToClipboard from '../utils/Clipboard'\nimport CircledButtonWithLabel, { LogoVariants } from './CircledButtonWithLabel'\nimport StatusMessage from './StatusMessage'\nimport TagActionButton from './TagActionButton'\nimport { useTemporaryVisible } from './useTemporaryVisible'\nimport s from './ShareUrlButton.less'\nimport RectangleActionButton, { COLOR_GREY_EMPTY, SIZE_MEDIUM } from './buttons/RectangleActionButton'\nimport shareIconUrl from '../genericComponents/assets/share-molecule.svg'\n\n// webpack:BrowserOnly\nconst ShareUrlButton = ({ title = 'Mappy', description = '', logoVariant = LogoVariants.sharpDarkGreyBorder, url, rectangleButton = false }) => {\n const [statusText, setStatusText] = useState()\n const [visible, setVisible] = useTemporaryVisible()\n\n const msgCopyOK = useT('share.link.ok')\n const msgCopyKO = useT('share.link.ko')\n\n if (!url) return <></>\n\n const onClick = () => {\n const hasShareSupport = navigator.share\n\n if (hasShareSupport && isPE()) {\n navigator\n .share({\n title,\n text: description,\n url\n })\n .catch(err => {\n // Ignore user share cancel\n if (err.name !== 'AbortError') throw err\n })\n } else {\n copyTextToClipboard(url)\n .then(() => {\n setStatusText(msgCopyOK)\n })\n .catch(err => {\n console.error('error', err)\n setStatusText(msgCopyKO)\n })\n .finally(() => {\n setVisible(true)\n })\n }\n }\n\n return (\n <span>\n {rectangleButton ? (\n <RectangleActionButton\n iconUrl={shareIconUrl}\n label=\"share.action\"\n size={SIZE_MEDIUM}\n color={COLOR_GREY_EMPTY}\n tagData={{ type: TAG_CLICK_SHARE }}\n deferClick\n onClick={onClick}\n />\n ) : (\n <TagActionButton type={TAG_CLICK_SHARE} deferClick onClick={onClick}>\n <CircledButtonWithLabel svgUrl={shareIconUrl} label=\"share.action\" logoVariant={logoVariant} />\n </TagActionButton>\n )}\n <StatusMessage message={statusText} visible={visible} className={s.statusMessage} />\n </span>\n )\n}\n\nexport default ShareUrlButton\n","// extracted by mini-css-extract-plugin\nexport default {\"statusMessage\":\"BZhDV\"};","export const PermanentRedirectErrorCode = 301\n\nexport default class PermanentRedirectError extends Error {\n constructor(url = '/', host, e = 'Redirection permanente') {\n super(e)\n this.name = 'Moved Permamently'\n this.type = PermanentRedirectErrorCode\n this.url = url\n this.host = host\n }\n}\n","import AddressNotFoundError from '../domain/error/AddressNotFoundError'\nimport PageNotFoundError from '../domain/error/PageNotFoundError'\nimport PermanentRedirectError from '../domain/error/PermanentRedirectError'\nimport ServerError from '../domain/error/ServerError'\n\nexport const getTechnicalError = err => {\n if (__BROWSER__) return err\n if (err instanceof AddressNotFoundError) return new PageNotFoundError(err)\n if (err instanceof PermanentRedirectError) return err\n if (err instanceof ServerError) return err\n return new ServerError(err)\n}\n\nexport const technicalErrorCatcher = err => Promise.reject(getTechnicalError(err))\n","import classNames from 'classnames'\nimport React from 'react'\nimport { selectAddressKeywords, selectGeoentityAdsKeywords, selectItineraryKeywords } from '../../store/ad/ad.selectors'\nimport { isPE } from '../Device'\nimport AdLoader from './AdLoader'\nimport s from './InlineMobileAdBanner.less'\n\nconst InlineMobileAdBanner = ({ adName, keywordsSelector, className, placeHolderHeight = 50 }) => {\n if (__SERVER__ || (__BROWSER__ && isPE())) {\n return (\n <div className={classNames(s.container, className)}>\n <AdLoader\n adName={adName}\n className={s.content}\n keywordsSelector={keywordsSelector}\n placeHolderHeight={placeHolderHeight}\n />\n </div>\n )\n }\n return <></>\n}\n\nexport const AdMobileBannerAddress = () => (\n <InlineMobileAdBanner adName=\"address_banner_mobile\" keywordsSelector={selectAddressKeywords} />\n)\n\nexport const AdMobileBannerGeoentity = () => (\n <InlineMobileAdBanner adName=\"poi_banner_mobile\" keywordsSelector={selectGeoentityAdsKeywords} />\n)\n\nexport const AdMobileBannerItineraryHP = () => <InlineMobileAdBanner adName=\"hp_itinerary_banner_mobile\" />\n\nexport const AdMobileBannerRoadbook = () => (\n <InlineMobileAdBanner adName=\"roadbook_banner_mobile\" keywordsSelector={selectItineraryKeywords} />\n)\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"cPDxH\",\"content\":\"iwsnL\"};","import React from 'react'\nimport s from './CityDescription.less'\n\nimport { useSelector } from 'react-redux'\nimport { selectDescription } from '../../store/address/address.selectors'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport TextShortener from '../genericComponents/TextShortener'\nimport { withFrenchLanguage } from '../i18n/i18nSite'\n\nconst ZoneDescription = ({ ZoneDescription }) => {\n const zoneDescription = useSelector(selectDescription)\n if (!zoneDescription) return <></>\n\n return (\n <div className={s.description}>\n <TextShortener text={zoneDescription} />\n </div>\n )\n}\n\nexport default withEmptyFallbackErrorBoundary(withFrenchLanguage(ZoneDescription))\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectFirstAddress } from '../../store/address/address.selectors'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport ShareUrlButton from '../genericComponents/ShareUrlButton'\n\n// webpack:BrowserOnly\nexport default withEmptyFallbackErrorBoundary(function AddressShareButton() {\n const { label } = useSelector(selectFirstAddress)\n\n return <ShareUrlButton title={label} description={label} url={location.href} />\n})\n","import React from 'react'\nimport classNames from 'classnames'\nimport s from './CircledButtonWithLabel.less'\nimport T from '../i18n/T'\nimport SVGIcon from '../svg/SVGIcon'\n\nexport const LogoVariants = {\n smoothGreyBorder: 'logo-variant-smoothGreyBorder',\n sharpDarkGreyBorder: 'logo-variant-sharpDarkGreyBorder',\n sharpGreenBorder: 'logo-variant-sharpGreenBorder',\n blue: 'logo-variant-blue'\n}\n\nconst CircledButtonWithLabel = ({\n logo,\n svgId,\n svgUrl,\n label,\n onClick,\n recenter,\n logoVariant = LogoVariants.smoothGreyBorder\n}) => (\n <span className={classNames(s.container, logoVariant)} onClick={onClick}>\n <span className={classNames(s.logo, recenter && s.recenter)}>\n {svgId ? <SVGIcon icon={svgId} /> : svgUrl ? <SVGIcon url={svgUrl} /> : logo}\n </span>\n <span className={s.label}>\n <T id={label} />\n </span>\n </span>\n)\n\nexport default CircledButtonWithLabel\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"DgC48\",\"logo\":\"q7yI8\",\"recenter\":\"C4Nm4\",\"label\":\"yJ56o\"};","import React from 'react'\nimport s from '../../address/AddressMainContent.less'\nimport FakeHotelCalendar from '../../address/FakeHotelCalendar'\nimport GeoentitiesAtAddressPicker from '../../address/GeoentitiesAtAddressPicker'\nimport { AdDesktopAddressHP } from '../../advertising/InlineDesktopAdBanner'\nimport { AdMobileBannerAddress } from '../../advertising/InlineMobileAdBanner'\nimport Footer from '../../footer/Footer'\nimport ZoneContent from './ZoneContent'\n\nconst ZoneMainContent = ({ titleContent }) => (\n <>\n <div className={s.addressMainContent}>\n <ZoneContent titleContent={titleContent} />\n <AdDesktopAddressHP />\n <GeoentitiesAtAddressPicker />\n <AdMobileBannerAddress />\n <FakeHotelCalendar />\n </div>\n <Footer />\n </>\n)\n\nexport default ZoneMainContent\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectSelectedAdressAsFavorite } from '../../../../store/address/address.selectors'\nimport { TAG_CLICK_USER_FAVORITES_BUTTON } from '../../../analytics/analytics.tagids.constants'\nimport { selectCurrentGeoentityAsFavorite } from '../../../../store/geoentity/geoentity.selectors'\nimport { MODAL_IDS } from '../../../../store/ui/ui.constants'\nimport { addUserOtherFavorite, deleteUserFavorite } from '../../../../store/userAccount/userAccount.actions'\nimport {\n selectFavoriteByCurrentPoiId,\n selectFavoriteBySelectedAddress,\n selectIsUserAccountEnabled,\n selectIsUserConnected,\n selectUserFavoritesLimitNotReached\n} from '../../../../store/userAccount/userAccount.selectors'\nimport { ACTION } from '../../../analytics/ClickTagsService'\nimport analyticsConstants from '../../../analytics/analytics.constants'\nimport CircledButtonWithLabel, { LogoVariants } from '../../../genericComponents/CircledButtonWithLabel'\nimport TagActionButton from '../../../genericComponents/TagActionButton'\nimport useModal from '../../../ui/useModal'\nimport { useAction } from '../../../utils/react-redux'\nimport UserFavoriteError from './UserFavoriteError'\nimport RectangleActionButton, {\n COLOR_GREY_EMPTY,\n SIZE_MEDIUM\n} from '../../../genericComponents/buttons/RectangleActionButton'\nimport { isPE } from '../../../Device'\nimport heartIconUrl from '../../../genericComponents/assets/heart-favorite.svg'\nimport heartActiveIconUrl from '../../../genericComponents/assets/heart-favorite-active.svg'\n\nconst FavoriteButton = ({ favoriteSelector, transformFavoriteSelector, rectangleButton = false }) => {\n const canStillAddFavorite = useSelector(selectUserFavoritesLimitNotReached)\n const isUserAccountAvailable = useSelector(selectIsUserAccountEnabled)\n const isConnected = useSelector(selectIsUserConnected)\n const execAddUserOtherFavorite = useAction(addUserOtherFavorite)\n const execDeleteUserFavorite = useAction(deleteUserFavorite)\n const { displayModal } = useModal(MODAL_IDS.USER_ACCOUNT_INCENTIVE_POPIN)\n const favorite = useSelector(favoriteSelector)\n const isFavorite = Boolean(favorite)\n const poiOrAddressAsFavorite = useSelector(transformFavoriteSelector)\n const iconUrl = isFavorite ? heartActiveIconUrl : heartIconUrl\n const label = isFavorite ? 'useraccount.favorite.delete' : 'useraccount.favorite.add'\n const logoVariant = isFavorite ? LogoVariants.sharpGreenBorder : LogoVariants.sharpDarkGreyBorder\n const shouldDisplayIncentivePopin = isUserAccountAvailable && !isConnected\n\n const action = () => {\n if (shouldDisplayIncentivePopin) {\n displayModal()\n } else if (isFavorite) {\n execDeleteUserFavorite(favorite)\n } else {\n execAddUserOtherFavorite(poiOrAddressAsFavorite)\n }\n }\n\n const getTagAction = () => {\n const { cardAdd, cardAddIncentive, cardDelete } = analyticsConstants.user.favorites.action\n\n if (shouldDisplayIncentivePopin) return cardAddIncentive\n\n return isFavorite ? cardDelete : cardAdd\n }\n\n if (!isFavorite && !canStillAddFavorite) return <></>\n\n return (\n <span>\n {rectangleButton ? (\n <RectangleActionButton\n iconUrl={iconUrl}\n label={label}\n color={COLOR_GREY_EMPTY}\n size={SIZE_MEDIUM}\n onClick={action}\n deferClick\n tagData={{\n type: TAG_CLICK_USER_FAVORITES_BUTTON,\n tagInfo: {\n [ACTION]: getTagAction()\n }\n }}\n />\n ) : (\n <TagActionButton\n onClick={action}\n deferClick\n type={TAG_CLICK_USER_FAVORITES_BUTTON}\n tagInfo={{\n [ACTION]: getTagAction()\n }}\n >\n <CircledButtonWithLabel svgUrl={iconUrl} label={label} logoVariant={logoVariant} />\n </TagActionButton>\n )}\n\n <UserFavoriteError />\n </span>\n\n )\n}\n\nexport const AddressFavoriteButton = () => (\n <FavoriteButton\n transformFavoriteSelector={selectSelectedAdressAsFavorite}\n favoriteSelector={selectFavoriteBySelectedAddress}\n />\n)\n\nexport const GeoentityFavoriteButton = () => (\n <FavoriteButton\n transformFavoriteSelector={selectCurrentGeoentityAsFavorite}\n favoriteSelector={selectFavoriteByCurrentPoiId}\n rectangleButton={isPE()}\n />\n)\n","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 <SuggestContent onClick={onClick} />\n}\n\nexport default AddressSuggestContent\n","import React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { useSelector } from 'react-redux'\nimport s from './TextShortener.less'\nimport { truncate } from '../../utils/string'\nimport { selectCurrentHistoryFullRoute } from '../../store/history/history.selectors'\n\nconst DEFAULT_MAX_CHAR = 150\nconst DEFAULT_EXPAND_BUTTON_LABEL = 'En savoir plus'\n\nconst TextShortener = ({ text, expandButtonLabel = DEFAULT_EXPAND_BUTTON_LABEL, maxChar = DEFAULT_MAX_CHAR }) => {\n const [short, setShort] = useState(__BROWSER__)\n\n useShortenOnRouteChange(setShort)\n\n if (!text) return <></>\n\n const needShortening = text.length > maxChar\n\n return (\n <div onClick={() => needShortening && setShort(false)}>\n <span>{short ? truncate(maxChar)(text) : text}</span>\n {short && needShortening && <span className={s.more}>{expandButtonLabel}</span>}\n </div>\n )\n}\n\nconst useShortenOnRouteChange = setShort => {\n const fullRoute = useSelector(selectCurrentHistoryFullRoute)\n\n useEffect(() => setShort(true), [fullRoute, setShort])\n}\n\nTextShortener.propTypes = {\n text: PropTypes.string,\n expandButtonLabel: PropTypes.string,\n maxChar: PropTypes.number\n}\n\nexport default TextShortener\n","// extracted by mini-css-extract-plugin\nexport default {\"more\":\"cqwF5\"};","function fallbackCopyTextToClipboard(text) {\n const textArea = document.createElement('textarea')\n textArea.value = text\n\n textArea.style.position = 'fixed'\n textArea.style.top = '0'\n textArea.style.left = '0'\n\n document.body.appendChild(textArea)\n textArea.focus()\n textArea.select()\n\n let error = null\n try {\n if (!document.execCommand('copy')) error = 'copy error'\n } catch (err) {\n error = err\n }\n\n document.body.removeChild(textArea)\n return error ? Promise.reject(error) : Promise.resolve()\n}\n\n// webpack:BrowserOnly\nexport default function copyTextToClipboard(text) {\n return !navigator.clipboard ? fallbackCopyTextToClipboard(text) : navigator.clipboard.writeText(text)\n}\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectFirstAddress } from '../../../store/address/address.selectors'\nimport { selectIsUserAccountEnabled } from '../../../store/userAccount/userAccount.selectors'\nimport s from '../../address/AddressContent.less'\nimport AddressShareButton from '../../address/AddressShareButton'\nimport ZoneDescription from '../../address/ZoneDescription'\nimport { AddressFavoriteButton } from '../../UserAccount/connected/userFavorites/FavoriteButton'\n\nconst ZoneContent = ({ titleContent }) => {\n const shouldDisplayFavoriteButton = useSelector(selectIsUserAccountEnabled)\n\n return (\n <div className={s.addressContent}>\n <div className={s.mainHeader}>\n {titleContent}\n <div className={s.actions}>\n <div className={s.actionBtnWrapper}>\n <AddressShareButton />\n </div>\n {shouldDisplayFavoriteButton && (\n <div className={s.actionBtnWrapper}>\n <AddressFavoriteButton />\n </div>\n )}\n </div>\n </div>\n <ZoneDescription />\n </div>\n )\n}\n\nexport default ZoneContent\n\nexport const CountryTitle = () => {\n const firstAddress = useSelector(selectFirstAddress)\n return (\n <h1 className={s.addressTitle}>\n <span className={s.locationMainAddress}>{firstAddress.countryLabel}</span>\n </h1>\n )\n}\n\nexport const RegionTitle = () => {\n const firstAddress = useSelector(selectFirstAddress)\n return (\n <h1 className={s.addressTitle}>\n <span className={s.locationMainAddress}>{firstAddress.regionLabel}</span>\n <span className={s.locationSubAddress}>{firstAddress.regionCode}</span>\n </h1>\n )\n}\n\nexport const DepartmentTitle = () => {\n const firstAddress = useSelector(selectFirstAddress)\n return (\n <h1 className={s.addressTitle}>\n <span className={s.locationMainAddress}>{firstAddress.departmentLabel}</span>\n <span className={s.locationSubAddress}>{firstAddress.departmentCode}</span>\n </h1>\n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"addressContent\":\"Daq54\",\"mainHeader\":\"y58Vp\",\"addressInfo\":\"F3zHp\",\"addressTitle\":\"EII_l\",\"locationMainAddress\":\"hfgs2\",\"locationSubAddress\":\"JjfIr\",\"actions\":\"hy9Qw\",\"actionBtnWrapper\":\"FlpQz\"};","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","// extracted by mini-css-extract-plugin\nexport default {\"addressMainContent\":\"B9naG\"};"],"names":["_ref","title","description","logoVariant","LogoVariants","sharpDarkGreyBorder","url","rectangleButton","statusText","setStatusText","useState","visible","setVisible","useTemporaryVisible","msgCopyOK","useT","msgCopyKO","React","onClick","navigator","share","isPE","text","catch","err","name","copyTextToClipboard","then","console","error","finally","RectangleActionButton","iconUrl","shareIconUrl","label","size","SIZE_MEDIUM","color","COLOR_GREY_EMPTY","tagData","type","TAG_CLICK_SHARE","deferClick","TagActionButton","CircledButtonWithLabel","svgUrl","StatusMessage","message","className","PermanentRedirectError","Error","constructor","arguments","length","undefined","host","super","this","technicalErrorCatcher","Promise","reject","InlineMobileAdBanner","adName","keywordsSelector","placeHolderHeight","classNames","AdLoader","AdMobileBannerAddress","selectAddressKeywords","AdMobileBannerGeoentity","selectGeoentityAdsKeywords","AdMobileBannerItineraryHP","AdMobileBannerRoadbook","selectItineraryKeywords","withEmptyFallbackErrorBoundary","withFrenchLanguage","ZoneDescription","zoneDescription","useSelector","selectDescription","s","TextShortener","selectFirstAddress","ShareUrlButton","location","href","smoothGreyBorder","sharpGreenBorder","blue","logo","svgId","recenter","SVGIcon","icon","T","id","titleContent","addressMainContent","ZoneContent","AdDesktopAddressHP","GeoentitiesAtAddressPicker","FakeHotelCalendar","Footer","FavoriteButton","favoriteSelector","transformFavoriteSelector","canStillAddFavorite","selectUserFavoritesLimitNotReached","isUserAccountAvailable","selectIsUserAccountEnabled","isConnected","selectIsUserConnected","execAddUserOtherFavorite","useAction","addUserOtherFavorite","execDeleteUserFavorite","deleteUserFavorite","displayModal","useModal","MODAL_IDS","USER_ACCOUNT_INCENTIVE_POPIN","favorite","isFavorite","Boolean","poiOrAddressAsFavorite","heartActiveIconUrl","heartIconUrl","shouldDisplayIncentivePopin","action","getTagAction","cardAdd","cardAddIncentive","cardDelete","analyticsConstants","user","favorites","TAG_CLICK_USER_FAVORITES_BUTTON","tagInfo","ACTION","UserFavoriteError","AddressFavoriteButton","selectSelectedAdressAsFavorite","selectFavoriteBySelectedAddress","GeoentityFavoriteButton","selectCurrentGeoentityAsFavorite","selectFavoriteByCurrentPoiId","AddressSuggestContent","dispatch","useDispatch","execSearchAddress","searchAddress","configureAndSendTag","useConfigureAndSendTag","SuggestContent","suggest","labels","address","subtype","from","removeHtmlEmTags","join","setSearchTerms","SUGGEST_FROM_VALUES","TAG_SUGGEST","terms","DEFAULT_MAX_CHAR","DEFAULT_EXPAND_BUTTON_LABEL","expandButtonLabel","maxChar","short","setShort","__BROWSER__","useShortenOnRouteChange","needShortening","truncate","fullRoute","selectCurrentHistoryFullRoute","useEffect","propTypes","PropTypes","clipboard","writeText","textArea","document","createElement","value","style","position","top","left","body","appendChild","focus","select","execCommand","removeChild","resolve","fallbackCopyTextToClipboard","shouldDisplayFavoriteButton","addressContent","mainHeader","actions","actionBtnWrapper","AddressShareButton","CountryTitle","firstAddress","addressTitle","locationMainAddress","countryLabel","RegionTitle","regionLabel","locationSubAddress","regionCode","DepartmentTitle","departmentLabel","departmentCode","PageNotFoundError","e","originalError"],"sourceRoot":""}