{"version":3,"file":"assets/js/chunks/1126.b450f04dbda882adfbf3.js","mappings":"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","sources":["webpack://web-pwa/./src/domain/genericComponents/DatePicker.jsx","webpack://web-pwa/./src/domain/genericComponents/DatePicker.less?7199","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/UserAccountIncentivePreferences.jsx","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/UserAccountIncentivePreferences.less?a0cf","webpack://web-pwa/./src/domain/itineraryOptions/ItineraryOptionsDialog.jsx","webpack://web-pwa/./src/domain/itinerary/ItineraryHeaderForm.less?cf27","webpack://web-pwa/./src/domain/itinerary/steps/AddStepButton.jsx","webpack://web-pwa/./src/domain/itinerary/steps/AddStepButton.less?7447","webpack://web-pwa/./src/domain/itinerary/steps/InvertStepsButton.jsx","webpack://web-pwa/./src/domain/itinerary/steps/InvertStepsButton.less?5c07","webpack://web-pwa/./src/domain/itinerary/steps/RemoveStepButton.jsx","webpack://web-pwa/./src/domain/itinerary/steps/RemoveStepButton.less?d060","webpack://web-pwa/./src/domain/itinerary/steps/StepsButtons.less?b2df","webpack://web-pwa/./src/domain/itinerary/steps/StepsButtons.jsx","webpack://web-pwa/./src/domain/itinerary/ItineraryHeaderForm.jsx","webpack://web-pwa/./src/domain/itineraryOptions/OptionButton.less?5dea","webpack://web-pwa/./src/domain/itineraryOptions/ItineraryOptionButton.jsx","webpack://web-pwa/./src/domain/itineraryOptions/ItineraryTimeOptionButton.jsx","webpack://web-pwa/./src/domain/itinerary/ItinerarySubHeader.jsx","webpack://web-pwa/./src/domain/itinerary/ItinerarySubHeader.less?2894","webpack://web-pwa/./src/domain/itinerary/OptionsDialog.jsx","webpack://web-pwa/./src/domain/itinerary/OptionsDialog.less?1dd2","webpack://web-pwa/./src/domain/advertising/InlineDesktopAdBanner.less?f757","webpack://web-pwa/./src/domain/advertising/InlineDesktopAdBanner.jsx","webpack://web-pwa/./src/domain/itinerary/steps/ArrivalMarker.jsx","webpack://web-pwa/./src/domain/itinerary/itinerary-commons.less?6973","webpack://web-pwa/./src/domain/itinerary/steps/DepartureMarker.jsx","webpack://web-pwa/./src/domain/itinerary/steps/StepsMarkers.jsx","webpack://web-pwa/./src/domain/suggest/MyPosition.jsx","webpack://web-pwa/./src/domain/suggest/MyPosition.less?3216","webpack://web-pwa/./src/domain/autopromo/AutoPromoGE.less?8ba1","webpack://web-pwa/./src/domain/autopromo/AutoPromoGE.jsx","webpack://web-pwa/./src/domain/itinerary/steps/ArrivalMarkerHTML.jsx","webpack://web-pwa/./src/domain/itinerary/steps/ArrivalMarkerHTML.less?09e5","webpack://web-pwa/./src/domain/suggest/ItinerarySuggestContent.jsx","webpack://web-pwa/./src/domain/genericComponents/TimePicker.jsx","webpack://web-pwa/./src/domain/genericComponents/TimePicker.less?2058","webpack://web-pwa/./src/domain/itineraryOptions/ItineraryTimeOptionsDialog.jsx","webpack://web-pwa/./src/domain/itineraryOptions/ItineraryTimeOptionsDialog.less?27b4"],"sourcesContent":["import classNames from 'classnames'\nimport React, { useRef, useState } from 'react'\nimport { getCurrentDateISO, getFutureDateISO, hasDateAlreadyPassed } from '../utils/date'\nimport s from './DatePicker.less'\n\n// webpack:BrowserOnly\nconst DatePicker = props => {\n const inputRef = useRef(null)\n const todayDate = getCurrentDateISO()\n const {\n name,\n value = '',\n min = todayDate,\n max = getFutureDateISO({ days: 365 }),\n label,\n className,\n onChange,\n ariaLabel\n } = props\n\n const [shouldDisplayLabel, setShouldDisplayLabel] = useState(true)\n\n const onDateChange = () => {\n if (onChange) {\n if (hasDateAlreadyPassed(inputRef.current.value)) onChange(todayDate)\n else onChange(inputRef.current.value)\n }\n }\n\n const onFocus = e => {\n setShouldDisplayLabel(false)\n }\n\n const onBlur = e => {\n if (e.target.value === '') setShouldDisplayLabel(true)\n }\n\n const classnames = classNames(s.dateInput, className)\n\n const getLabelValue = () => {\n if (value === '' && shouldDisplayLabel) return label\n return ''\n }\n\n return (\n <div className={s.dateContainer}>\n <span aria-label={label} className={s.label}>\n {getLabelValue()}\n </span>\n <input\n ref={inputRef}\n type=\"date\"\n name={name}\n className={classnames}\n required\n min={min}\n max={max}\n value={value}\n onChange={onDateChange}\n onFocus={onFocus}\n onBlur={onBlur}\n aria-label={ariaLabel}\n />\n </div>\n )\n}\n\nexport default DatePicker\n","// extracted by mini-css-extract-plugin\nexport default {\"label\":\"vHNr7\",\"dateContainer\":\"RcFzG\",\"dateInput\":\"gv_fv\"};","import React, { useEffect } from 'react'\nimport { useDispatch } from 'react-redux'\nimport cross from '../../genericComponents/assets/cross.svg'\nimport { SIZE_MEDIUM } from '../../genericComponents/buttons/RectangleActionButton'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { withEverySelectorTruthy } from '../../utils/react-redux'\nimport useEventCallback from '../../utils/useEventCallback'\nimport UserLoginButton from '../UserLoginButton'\nimport { withUserNotConnected } from '../shared/withKeycloak'\nimport s from './UserAccountIncentivePreferences.less'\nimport { hideUserAccountPreferencesIncentive } from '../../../store/incentive/incentiveSlice'\nimport { selectIsPreferencesUserAccountIncentiveDisplayed } from '../../../store/incentive/incentive.selectors'\n\nconst UserAccountIncentivePreferences = () => {\n const dispatch = useDispatch()\n const hideIncentive = () => dispatch(hideUserAccountPreferencesIncentive())\n const onClose = useEventCallback(hideIncentive)\n\n useEffect(() => hideIncentive, [])\n\n return (\n <div className={s.root}>\n <div className={s.closeButton} onClick={onClose}>\n <SVGIcon url={cross} />\n </div>\n <div className={s.text}>\n <span>{\"Ça vous dirait qu'on garde en mémoire\"}</span> <span className={s.highlight}>vos préférences ?</span>\n </div>\n <div>\n <UserLoginButton size={SIZE_MEDIUM} />\n </div>\n </div>\n )\n}\n\nexport default withUserNotConnected(\n withEverySelectorTruthy(selectIsPreferencesUserAccountIncentiveDisplayed)(UserAccountIncentivePreferences)\n)\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"f4Oik\",\"text\":\"IOKw1\",\"highlight\":\"L2eOO\",\"closeButton\":\"VUeBJ\"};","import React, { useEffect } from 'react'\nimport { fetchItineraryOptionsConfig } from '../../store/itineraryOptions/itineraryOptions.actions'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport OptionsDialog from '../itinerary/OptionsDialog'\nimport useUIDisplay from '../ui/useUIDisplay'\nimport UserAccountIncentivePreferences from '../UserAccount/connectionIncentive/UserAccountIncentivePreferences'\nimport { useAction } from '../utils/react-redux'\nimport ItineraryOptions from './ItineraryOptions'\n\nconst ItineraryOptionsDialog = () => {\n const execFetchItineraryOptionsConfig = useAction(fetchItineraryOptionsConfig)\n const { isUIDisplayed } = useUIDisplay(UI_ELEMENTS.ITINERARY_OPTIONS_DIALOG)\n\n useEffect(() => {\n execFetchItineraryOptionsConfig()\n }, [isUIDisplayed])\n\n return (\n <OptionsDialog isDisplayed={isUIDisplayed} title=\"itinerary.options.title\">\n <ItineraryOptions />\n <UserAccountIncentivePreferences />\n </OptionsDialog>\n )\n}\n\nexport default withEmptyFallbackErrorBoundary(ItineraryOptionsDialog)\n","// extracted by mini-css-extract-plugin\nexport default {\"ItineraryForm\":\"HU1Oa\",\"focusOnStep\":\"hwnmG\",\"default\":\"ADl91\",\"departure\":\"ByLMv\",\"arrival\":\"RiCUz\",\"focus\":\"fz9Vx\",\"StepsButtons\":\"Yhxer\"};","import classNames from 'classnames'\nimport React from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {\n selectIsComputingDone,\n selectIsComputingDoneOrFailed,\n selectItineraryError\n} from '../../../store/itinerary/itinerary.selectors'\nimport { addStep } from '../../../store/itinerary/itinerarySlice'\nimport plus from '../../genericComponents/assets/plus.svg?raw'\nimport useEventCallback from '../../utils/useEventCallback'\nimport s from './AddStepButton.less'\n\nconst AddStepButton = () => {\n const dispatch = useDispatch()\n const onClick = useEventCallback(() => dispatch(addStep()))\n const isComputingDone = useSelector(selectIsComputingDoneOrFailed)\n\n return (\n <div\n className={classNames('icon', s.addStepButton, !isComputingDone && 'disabled')}\n onClick={isComputingDone ? onClick : undefined}\n dangerouslySetInnerHTML={{ __html: plus }}\n ></div>\n )\n}\n\nexport default AddStepButton\n","// extracted by mini-css-extract-plugin\nexport default {\"addStepButton\":\"SCJFa\"};","import classNames from 'classnames'\nimport React from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { selectIsComputingDone, selectIsComputingDoneOrFailed } from '../../../store/itinerary/itinerary.selectors'\nimport { invertSteps } from '../../../store/itinerary/itinerarySlice'\nimport invertedArrows from '../../genericComponents/assets/inverted-arrows.svg?raw'\nimport useEventCallback from '../../utils/useEventCallback'\nimport s from './InvertStepsButton.less'\n\nconst InvertStepsButton = ({ stepId }) => {\n const dispatch = useDispatch()\n const onClick = useEventCallback(() => dispatch(invertSteps(stepId)), [stepId])\n const isComputingDone = useSelector(selectIsComputingDoneOrFailed)\n\n return (\n <div\n className={classNames('icon', s.root, !isComputingDone && 'disabled')}\n onClick={isComputingDone ? onClick : undefined}\n dangerouslySetInnerHTML={{ __html: invertedArrows }}\n ></div>\n )\n}\n\nexport default InvertStepsButton\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"sugtt\"};","import React from 'react'\nimport { removeStep } from '../../../store/itinerary/itinerarySlice'\nimport SVGIcon from '../../svg/SVGIcon'\nimport s from './RemoveStepButton.less'\nimport useEventCallback from '../../utils/useEventCallback'\nimport iconUrl from '../../genericComponents/assets/remove.svg'\nimport classNames from 'classnames'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {\n selectIsComputingDone,\n selectIsComputingDoneOrFailed,\n selectItineraryError\n} from '../../../store/itinerary/itinerary.selectors'\n\nconst RemoveStepButton = ({ stepId }) => {\n const dispatch = useDispatch()\n const onClick = useEventCallback(() => dispatch(removeStep(stepId)))\n const isComputingDone = useSelector(selectIsComputingDoneOrFailed)\n\n return (\n <div onClick={isComputingDone ? onClick : undefined} className={classNames(s.root, !isComputingDone && 'disabled')}>\n <SVGIcon url={iconUrl} ssrWhite />\n </div>\n )\n}\n\nexport default RemoveStepButton\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"VnJHW\"};","// extracted by mini-css-extract-plugin\nexport default {\"item\":\"Gr5dI\",\"invertButtons\":\"pcWsJ\"};","import classNames from 'classnames'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { STEP_IDS } from '../../../store/itinerary/itinerary.constants'\nimport AddStepButton from './AddStepButton'\nimport InvertStepsButton from './InvertStepsButton'\nimport RemoveStepButton from './RemoveStepButton'\nimport s from './StepsButtons.less'\nimport { selectStopStepIds } from './steps.selectors'\nimport { getMaxStops } from './steps.utils'\n\nexport function StepsButtons() {\n const stopStepIds = useSelector(selectStopStepIds)\n const displayAddStep = stopStepIds.length < getMaxStops()\n\n return (\n <>\n <ul>\n <li className={s.item} key=\"add-step\">\n {displayAddStep && <AddStepButton />}\n </li>\n {stopStepIds.map(stepId => (\n <li className={s.item} key={`remove-${stepId}`}>\n <RemoveStepButton stepId={stepId} />\n </li>\n ))}\n </ul>\n <ul className={s.invertButtons}>\n <li className={classNames(s.item)} key=\"invert-steps\">\n <InvertStepsButton stepId={STEP_IDS.departure} />\n </li>\n {stopStepIds.map(stepId => (\n <li className={s.item} key={`invert-${stepId}`}>\n <InvertStepsButton stepId={stepId} />\n </li>\n ))}\n </ul>\n </>\n )\n}\n\nexport default StepsButtons\n","import React, { createRef, useRef, useState } from 'react'\n\nimport classNames from 'classnames'\nimport { useDispatch, useSelector, useStore } from 'react-redux'\nimport { selectIsSuggestRouteFromItinerary } from '../../store/history/history.selectors'\nimport { SET_STEP_FROM } from '../../store/itinerary/itinerary.constants'\nimport { setStepIdx } from '../../store/itinerary/itinerarySlice'\nimport { selectIsItineraryDepartureNow } from '../../store/itineraryOptions/itineraryTimeOptions.selectors'\nimport { searchItineraryLocation } from '../../store/search/search.actions'\nimport { suggestServiceCtx } from '../../store/suggest/suggest.service.constants'\nimport { SPD_RESPONSE_SEARCH_ITINERARY } from '../analytics/BiTagger'\nimport BackButton from '../header/BackButton'\nimport SearchInput from '../header/SearchInput'\nimport { withTranslation } from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport BookinSearchExtension from './BookingSearchExtension'\nimport s from './ItineraryHeaderForm.less'\nimport { getStepIdx, selectAllSteps } from './steps/steps.selectors'\nimport StepsButtons from './steps/StepsButtons'\n\nexport const ItineraryHeaderForm = ({ t }) => {\n const isItineraryDepartureNow = useSelector(selectIsItineraryDepartureNow)\n const steps = useSelector(selectAllSteps)\n const idx = useSelector(getStepIdx)\n const { getState } = useStore()\n const execSearchItineraryLocation = useAction(searchItineraryLocation)\n const dispatch = useDispatch()\n const [loading, setLoading] = useState(false)\n const [value, setValue] = useState('')\n const SearchInputRefs = useRef([])\n\n const showAllSteps = idx === undefined\n const firstStepToFillIndex = steps.findIndex(({ label }) => !label)\n SearchInputRefs.current = steps.map((_, i) => (SearchInputRefs.current[i] ? SearchInputRefs.current[i] : createRef()))\n\n const onFocus = idx => () => {\n setValue(steps?.[idx]?.label ?? '')\n dispatch(setStepIdx(idx))\n }\n\n const onChange = ({ value }) => {\n setValue(value)\n }\n\n const onSubmit = e => {\n e.preventDefault()\n if (!value || idx >= SearchInputRefs.current.length) return\n\n setLoading(true)\n BookinSearchExtension.openPopup({ steps, idx, departureNow: isItineraryDepartureNow })\n\n return SearchInputRefs.current[idx].current\n .onSubmit()\n .then(() =>\n execSearchItineraryLocation({\n terms: value,\n options: { from: SET_STEP_FROM.searchForm },\n tagid: SPD_RESPONSE_SEARCH_ITINERARY\n })\n )\n .catch(e => {\n BookinSearchExtension.closePopup()\n })\n .finally(() => {\n setLoading(false)\n if (selectIsSuggestRouteFromItinerary(getState())) {\n // We’re testing if we’re still on suggest, meaning we’re stuck on an ambiguity\n // It is important to call the selector with getState because we should have changed route after submit()\n BookinSearchExtension.closePopup()\n }\n })\n }\n\n const getPrefix = i => {\n if (i === 0) return t('itinerary.from')\n if (i === steps.length - 1) return t('itinerary.to')\n return t('itinerary.via')\n }\n const getPlaceholder = i => {\n if (i === 0) return t('itinerary.departure')\n if (i === steps.length - 1) return t('itinerary.arrival')\n return `${t('itinerary.step')} ${i}`\n }\n\n const renderSteps = () => {\n return steps.map(({ ui: { stepId }, label }, i) => {\n const isFirstStepToFill = i === firstStepToFillIndex\n const showThatStep = idx === i\n\n return (\n (showAllSteps || showThatStep) && (\n <SearchInput\n key={`${stepId}-${i}-${steps.length}`}\n prefix={getPrefix(i)}\n idx={i}\n ref={SearchInputRefs.current[i]}\n loading={loading}\n placeholder={getPlaceholder(i)}\n suggestFilterType={suggestServiceCtx.filter.places}\n value={showThatStep ? value : label || ''}\n className={classNames(s.default, showThatStep && s.focus, s[`${stepId}`])}\n onFocus={onFocus(i)}\n onChange={onChange}\n isFirstStepToFill={isFirstStepToFill}\n />\n )\n )\n })\n }\n\n return (\n <>\n <nav>\n <BackButton />\n </nav>\n <form onSubmit={onSubmit} className={classNames(s.ItineraryForm, !showAllSteps && s.focusOnStep)}>\n {renderSteps()}\n </form>\n <div className={s.StepsButtons}>\n <StepsButtons />\n </div>\n </>\n )\n}\n\nexport default withTranslation(ItineraryHeaderForm)\n","// extracted by mini-css-extract-plugin\nexport default {\"OptionButton\":\"acISy\",\"iconCalendar\":\"bGHCU\",\"myOptionsButton\":\"AFW_D\"};","import classnames from 'classnames'\nimport React, { useCallback } from 'react'\nimport { ROUTE_ITINERARY_OPTIONS_DIALOG } from '../../routes'\nimport { navigateTo } from '../../store/history/history.actions'\nimport gear from '../genericComponents/assets/gear.svg?raw'\nimport T from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport s from './OptionButton.less'\n\nconst ItineraryOptionButton = ({ className }) => {\n const execNavigateTo = useAction(navigateTo)\n const onClick = useCallback(() => execNavigateTo({ route: ROUTE_ITINERARY_OPTIONS_DIALOG }), [])\n\n return (\n <div className={classnames(s.OptionButton, s.myOptionsButton, className)} onClick={onClick}>\n <div className={classnames('icon', s.icon)} dangerouslySetInnerHTML={{ __html: gear }}></div>\n <span>\n <T id=\"itinerary.options\" />\n </span>\n </div>\n )\n}\n\nexport default ItineraryOptionButton\n","import classnames from 'classnames'\nimport React, { useCallback } from 'react'\nimport { useSelector } from 'react-redux'\nimport { ROUTE_ITINERARY_TIME_OPTIONS_DIALOG } from '../../routes'\nimport { navigateTo } from '../../store/history/history.actions'\nimport { getItineraryTimeTitle } from '../../store/itineraryOptions/itineraryTimeOptions.selectors'\nimport { selectLocale } from '../../store/navigation/navigation.selectors'\nimport calendar from '../genericComponents/assets/calendar.svg?raw'\nimport { useTranslateAsObject } from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport s from './OptionButton.less'\n\nconst ItineraryTimeOptionButton = ({ className }) => {\n const getLocaleTitle = useSelector(getItineraryTimeTitle)\n const locale = useSelector(selectLocale)\n const execNavigateTo = useAction(navigateTo)\n const onClick = useCallback(() => execNavigateTo({ route: ROUTE_ITINERARY_TIME_OPTIONS_DIALOG }), [])\n const itineraryTimeTranslations = useTranslateAsObject([\n 'itinerary.options.date.start',\n 'itinerary.options.date.end',\n 'date.now',\n 'date.today',\n 'date.tomorrow',\n 'date.the',\n 'date.at'\n ])\n\n return (\n <div className={classnames(s.OptionButton, className)} onClick={onClick}>\n <div className={classnames('icon', s.icon, s.iconCalendar)} dangerouslySetInnerHTML={{ __html: calendar }}></div>\n <span>{getLocaleTitle(locale, itineraryTimeTranslations)}</span>\n </div>\n )\n}\n\nexport default ItineraryTimeOptionButton\n","import React from 'react'\nimport ItinraryOptionButton from '../itineraryOptions/ItineraryOptionButton'\nimport ItineraryTimeOptionButton from '../itineraryOptions/ItineraryTimeOptionButton'\nimport s from './ItinerarySubHeader.less'\n\nconst ItinerarySubHeader = () => (\n <>\n <div className={s.itinerarySubHeader}>\n <ItineraryTimeOptionButton className={s.itineraryTimeOptionButton} />\n <ItinraryOptionButton className={s.itineraryOptionButton} />\n </div>\n </>\n)\n\nexport default ItinerarySubHeader\n","// extracted by mini-css-extract-plugin\nexport default {\"itinerarySubHeader\":\"qaSKX\",\"itineraryTimeOptionButton\":\"YiE2i\",\"itineraryOptionButton\":\"h6j5o\"};","import classnames from 'classnames'\nimport React from 'react'\nimport { Helmet } from 'react-helmet'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { ROUTE_ITINERARY_COMPUTING } from '../../routes'\nimport { navigateBack, navigateTo } from '../../store/history/history.actions'\nimport { resetItineraryExceptSteps } from '../../store/itinerary/itinerarySlice'\nimport SlideInOut from '../animation/SlideInOut'\nimport arrowLeft from '../genericComponents/assets/arrow-left.svg'\nimport RectangleActionButton, { COLOR_GREEN, SIZE_BIG } from '../genericComponents/buttons/RectangleActionButton'\nimport T from '../i18n/T'\nimport SVGIcon from '../svg/SVGIcon'\nimport { useAction } from '../utils/react-redux'\nimport s from './OptionsDialog.less'\nimport { areStepsFilled } from './steps/steps.selectors'\n\nconst Header = ({ title, onClick }) => {\n return (\n <div className={s.header}>\n <div className={classnames('icon', s.BackButton)} onClick={onClick}>\n <SVGIcon url={arrowLeft} />\n </div>\n <h2>\n <T id={title} />\n </h2>\n </div>\n )\n}\n\nexport const BasicOptionsDialog = ({ title, children }) => {\n const dispatch = useDispatch()\n const execNavigateTo = useAction(navigateTo)\n const execNavigateBack = useAction(navigateBack)\n const shouldNavigateToItineraryComputing = useSelector(areStepsFilled)\n\n const exitHandler = () => {\n dispatch(resetItineraryExceptSteps())\n if (shouldNavigateToItineraryComputing)\n execNavigateTo({\n route: ROUTE_ITINERARY_COMPUTING\n })\n else execNavigateBack()\n }\n\n return (\n <dialog className={s.OptionsDialog}>\n <Header title={title} onClick={exitHandler} />\n <div className={s.content}>\n {children}\n <div className={s.OptionsDialogValidateArea}>\n <RectangleActionButton\n color={COLOR_GREEN}\n size={SIZE_BIG}\n onClick={exitHandler}\n className={s.OptionsDialogValidateButton}\n label=\"itinerary.options.validate\"\n />\n </div>\n </div>\n </dialog>\n )\n}\n\nexport default function OptionsDialog(props) {\n const { isDisplayed } = props\n return (\n <SlideInOut display={isDisplayed}>\n {() =>\n isDisplayed && (\n <>\n <Helmet>\n <body className={classnames(isDisplayed && 'unscrollable')} />\n </Helmet>\n <BasicOptionsDialog {...props} />\n </>\n )\n }\n </SlideInOut>\n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"OptionsDialog\":\"YFqjk\",\"content\":\"b7x4f\",\"header\":\"q1J_P\",\"BackButton\":\"LraoN\",\"OptionsDialogValidateArea\":\"fAaZ7\",\"OptionsDialogValidateButton\":\"gO76r\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"MnsFf\",\"content\":\"MzVrQ\"};","import classnames from 'classnames'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { ROUTE_ITINERARY_ROADBOOK } from '../../routes'\nimport { selectAddressKeywords, selectGeoentityAdsKeywords, selectItineraryKeywords } from '../../store/ad/ad.selectors'\nimport { selectCurrentHistoryRoute } from '../../store/history/history.selectors'\nimport { isGE } from '../Device'\nimport AdLoader from './AdLoader'\nimport s from './InlineDesktopAdBanner.less'\n\nconst InlineDesktopAdBanner = ({ adName, keywordsSelector, className, placeHolderHeight = 250 }) => {\n if (__SERVER__ || (__BROWSER__ && isGE())) {\n return (\n <div className={classnames(s.container, className)}>\n <AdLoader\n adName={adName}\n keywordsSelector={keywordsSelector}\n className={s.content}\n placeHolderHeight={placeHolderHeight}\n />\n </div>\n )\n }\n return <></>\n}\n\nexport const AdDesktopBannerHP = () => <InlineDesktopAdBanner adName=\"hp_banner_desktop\" />\n\nexport const AdDesktopAddressHP = () => (\n <InlineDesktopAdBanner adName=\"address_rectangle_desktop\" keywordsSelector={selectAddressKeywords} />\n)\n\nexport const AdDesktopItineraryHP = () => <InlineDesktopAdBanner adName=\"hp_itinerary_banner_desktop\" />\n\nexport const AdDesktopRectangleItineraryResult = () => {\n const route = useSelector(selectCurrentHistoryRoute)\n const adName =\n route === ROUTE_ITINERARY_ROADBOOK\n ? 'roadbook_routelist_rectangle_desktop'\n : 'itinerary_routelist_rectangle_desktop'\n\n return (\n <InlineDesktopAdBanner\n adName={adName}\n className={s.AdDesktopRectangleItineraryResult}\n keywordsSelector={selectItineraryKeywords}\n />\n )\n}\n\nexport const AdDesktopExpenseReportBanner = ({ className }) => (\n <InlineDesktopAdBanner\n adName=\"expense_report_banner\"\n keywordsSelector={selectItineraryKeywords}\n className={className}\n />\n)\n\nexport const AdDesktopExpenseReportRectangleRight = ({ className }) => (\n <InlineDesktopAdBanner\n adName=\"expense_report_rectangle_right\"\n keywordsSelector={selectItineraryKeywords}\n className={className}\n />\n)\n\nexport const AdDesktopExpenseReportRectangleLeft = ({ className }) => (\n <InlineDesktopAdBanner\n adName=\"expense_report_rectangle_left\"\n keywordsSelector={selectItineraryKeywords}\n className={className}\n />\n)\n\nexport const AdDesktopRectangleGeoentity = () => (\n <InlineDesktopAdBanner adName=\"poi_rectangle_desktop\" keywordsSelector={selectGeoentityAdsKeywords} />\n)\n","import React, { useCallback } from 'react'\nimport useConfigureAndSendTag from '../../analytics/useConfigureAndSendTag'\nimport Marker from '../../map/markers/Marker'\nimport ArrivalMarkerHTML from './ArrivalMarkerHTML'\nimport { useAction } from '../../utils/react-redux'\nimport { setArrivalFromPoint } from '../../../store/itinerary/itinerary.actions'\n\nimport { TAG_DRAG_AND_DROP } from '../../analytics/analytics.tagids.constants'\nimport { ACTION } from '../../analytics/ClickTagsService'\nimport analyticsConstants from '../../analytics/analytics.constants'\n\nexport default function ArrivalMarker({ coords: { lng, lat } }) {\n const execSetArrivalFromPoint = useAction(setArrivalFromPoint)\n const configureAndSendTag = useConfigureAndSendTag()\n\n const onDragEnd = useCallback(event => {\n const position = event?.target?._lngLat\n\n if (!position) return\n\n execSetArrivalFromPoint(position)\n configureAndSendTag({\n type: TAG_DRAG_AND_DROP,\n tagInfo: { [ACTION]: analyticsConstants.itinerary.dragndrop.action.arrival }\n })\n }, [])\n\n return (\n <Marker\n key={`${lng}_${lat}`}\n coordinates={{ lng, lat }}\n anchorPosition=\"bottom\"\n dragOptions={{\n onDragEnd\n }}\n >\n <ArrivalMarkerHTML />\n </Marker>\n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"itineraryDepartureIcon\":\"AwsTD\",\"departureIcon\":\"peC18\",\"stepMarker\":\"CO11I\"};","import React, { useCallback } from 'react'\nimport useConfigureAndSendTag from '../../analytics/useConfigureAndSendTag'\nimport Marker from '../../map/markers/Marker'\nimport sItineraryCommon from '../itinerary-commons.less'\nimport classnames from 'classnames'\n\nimport { useAction } from '../../utils/react-redux'\nimport { setDepartureFromPoint, setStepFromPoint } from '../../../store/itinerary/itinerary.actions'\nimport { TAG_DRAG_AND_DROP } from '../../analytics/analytics.tagids.constants'\nimport { ACTION } from '../../analytics/ClickTagsService'\nimport analyticsConstants from '../../analytics/analytics.constants'\n\nexport default function DepartureMarker({ coords: { lng, lat }, step, stepIdx }) {\n const execSetDepartureFromPoint = useAction(setDepartureFromPoint)\n const execSetStepFromPoint = useAction(setStepFromPoint)\n const configureAndSendTag = useConfigureAndSendTag()\n\n const onDragEnd = useCallback(event => {\n const position = event?.target?._lngLat\n\n if (!position) return\n\n if (step) {\n execSetStepFromPoint(position, stepIdx)\n } else {\n execSetDepartureFromPoint(position)\n }\n\n configureAndSendTag({\n type: TAG_DRAG_AND_DROP,\n tagInfo: {\n [ACTION]: step\n ? analyticsConstants.itinerary.dragndrop.action.step\n : analyticsConstants.itinerary.dragndrop.action.departure\n }\n })\n }, [])\n\n return (\n <Marker\n key={`${lng}_${lat}`}\n coordinates={{ lng, lat }}\n anchorPosition=\"center\"\n dragOptions={{\n onDragEnd\n }}\n >\n <div className={classnames(sItineraryCommon.itineraryDepartureIcon, step && sItineraryCommon.stepMarker)} />\n </Marker>\n )\n}\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { withMapInitialized } from '../../map/map.utils'\nimport { isCoords } from '../../utils/location'\nimport ArrivalMarker from './ArrivalMarker'\nimport DepartureMarker from './DepartureMarker'\nimport { selectStepsCoordinates } from './steps.selectors'\n\nconst StepsMarkers = () => {\n const { departure, arrival, stops } = useSelector(selectStepsCoordinates)\n\n return (\n <>\n {isCoords(departure) && <DepartureMarker coords={departure} />}\n {stops.map(\n (step, index) =>\n isCoords(step) && (\n <DepartureMarker key={`${step.lat}-${step.lng}`} coords={step} step={true} stepIdx={index + 1} />\n )\n )}\n {isCoords(arrival) && <ArrivalMarker coords={arrival} />}\n </>\n )\n}\n\n// webpack:BrowserOnly\nexport default withMapInitialized(StepsMarkers)\n","import classNames from 'classnames'\nimport React from 'react'\nimport mappyLogoFilled from '../genericComponents/assets/mappy-logo-filled.svg'\nimport T from '../i18n/T'\nimport SVGIcon from '../svg/SVGIcon'\nimport s from './MyPosition.less'\nimport { useSelector } from 'react-redux'\nimport { selectGeolocationStatus } from '../../store/geolocation/geolocation.selectors'\nimport { GEOLOC_STATUS_BLOCKED } from '../../store/map/map.constants'\n\nconst MyPosition = ({ onClick }) => {\n const isBlockedStatus = useSelector(selectGeolocationStatus) === GEOLOC_STATUS_BLOCKED\n\n return (\n <div className={s.root} onClick={onClick}>\n <div className={s.labelLine}>\n <span className={classNames('icon', s.icon)}>\n <SVGIcon url={mappyLogoFilled} />\n </span>\n <span className={s.label}>\n <T id={'suggest.my-position'} />\n </span>\n </div>\n {isBlockedStatus && (\n <div className={s.error}>\n <T id={'geolocation.error'} />\n </div>\n )}\n </div>\n )\n}\n\nexport default MyPosition\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"QNVXw\",\"labelLine\":\"zulY1\",\"icon\":\"nOzYu\",\"label\":\"k1_F4\",\"error\":\"iau4a\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"aWOdN\",\"content\":\"fSwUY\",\"device\":\"zn0Lv\",\"title\":\"QraF5\",\"text\":\"DCTcM\"};","import classnames from 'classnames'\nimport React from 'react'\nimport analyticsConstants from '../analytics/analytics.constants'\nimport { SIZE_BIG } from '../genericComponents/buttons/RectangleActionButton'\nimport { withFrenchSite } from '../i18n/i18nSite'\nimport devicePng from './assets/device.png'\nimport deviceWebp from './assets/device.webp'\nimport s from './AutoPromoGE.less'\nimport AutoPromoOpenButton from './AutoPromoOpenButton'\nimport ImageWithFallback from '../ui/ImageWithFallback'\n\nconst AutoPromoGE = ({ className }) => {\n return (\n <div className={classnames(className, s.wrapper)}>\n <div className={s.content}>\n <ImageWithFallback className={s.device} image={deviceWebp} fallbackImage={devicePng} width=\"102\" height=\"142\" />\n <div>\n <div className={s.title}>{'Tout Mappy dans votre poche'}</div>\n <p className={s.text}>{'Un GPS efficace et gratuit, trafic en temps réel et alertes de vitesse'}</p>\n <div className={s.infos}>\n <AutoPromoOpenButton size={SIZE_BIG} area={analyticsConstants.autopromo.area.main} />\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default withFrenchSite(AutoPromoGE)\n","import React from 'react'\nimport checkeredFlag from '../../genericComponents/assets/checkered-flag.svg'\nimport ImageMarker from '../../map/markers/ImageMarker'\nimport SVGIcon from '../../svg/SVGIcon'\nimport s from './ArrivalMarkerHTML.less'\nimport markerGrey from './marker-fond-gris.png'\n\nconst ArrivalMarkerHTML = ({ width = 31, height = 37 }) => {\n return (\n <div className={s.arrivalMarker} style={{ width, height }}>\n <ImageMarker height={height} width={width} src={markerGrey} />\n <span className={s.arrivalMarkerFlag}>\n <SVGIcon url={checkeredFlag} ssrWhite />\n </span>\n </div>\n )\n}\n\nexport default ArrivalMarkerHTML\n","// extracted by mini-css-extract-plugin\nexport default {\"arrivalMarker\":\"xFbVK\",\"arrivalMarkerFlag\":\"llAZo\"};","import React from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { findAddressforGeolocation } from '../../dataSource/address/address.request'\nimport { TAG_SUGGEST } from '../analytics/analytics.tagids.constants'\nimport { getCurrentLocation } from '../../store/geolocation/geolocation.actions'\nimport { setGeolocationStatus } from '../../store/geolocation/geolocationSlice'\nimport { setStepFromAddress, setStepFromSuggestion } from '../../store/itinerary/itinerary.actions'\nimport { selectIsItineraryDepartureNow } from '../../store/itineraryOptions/itineraryTimeOptions.selectors'\nimport { GEOLOC_STATUS_BLOCKED } from '../../store/map/map.constants'\nimport { selectLocale } from '../../store/navigation/navigation.selectors'\nimport {\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION,\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION_FALSE,\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION_TRUE,\n saveToLocalStorage\n} from '../../utils/browserStorageService'\nimport { removeHtmlEmSpanAndITags, removeHtmlEmTags } from '../../utils/string'\nimport useConfigureAndSendTag from '../analytics/useConfigureAndSendTag'\nimport { isPE } from '../Device'\nimport BookinSearchExtension from '../itinerary/BookingSearchExtension'\nimport { getStepIdx, selectAllSteps } from '../itinerary/steps/steps.selectors'\nimport { useAction } from '../utils/react-redux'\nimport MyPosition from './MyPosition'\nimport SuggestContent from './SuggestContent'\nimport { SUGGEST_FROM_VALUES } from './suggest.constants'\n\nconst ItinerarySuggestContent = () => {\n const dispatch = useDispatch()\n const execSetStepFromSuggestion = useAction(setStepFromSuggestion)\n const execGetCurrentLocation = useAction(getCurrentLocation)\n const execSetStepFromAddress = useAction(setStepFromAddress)\n const configureAndSendTag = useConfigureAndSendTag()\n const steps = useSelector(selectAllSteps)\n const idx = useSelector(getStepIdx)\n const departureNow = useSelector(selectIsItineraryDepartureNow)\n const locale = useSelector(selectLocale)\n\n const onClick = suggest => {\n const { labels = [], address, type, subtype, from } = suggest\n const label = removeHtmlEmTags(address || labels.join(' '))\n const split_label = labels.map(removeHtmlEmSpanAndITags)\n\n if (from === SUGGEST_FROM_VALUES.favorites) {\n configureAndSendTag({\n type: TAG_SUGGEST,\n tagInfo: { type, subtype, from }\n })\n }\n\n BookinSearchExtension.openPopup({ steps, idx, departureNow })\n\n execSetStepFromSuggestion({\n suggest: {\n ...suggest,\n label,\n split_label\n }\n })\n }\n const onMyPositionClick = () => {\n configureAndSendTag({\n type: TAG_SUGGEST,\n tagInfo: { from: SUGGEST_FROM_VALUES.geolocation }\n })\n\n return Promise.resolve()\n .then(() => execGetCurrentLocation())\n .then(geolocation => findAddressforGeolocation({ ...geolocation, locale }))\n .then(response => {\n if (isPE()) {\n saveToLocalStorage(\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION,\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION_TRUE\n )\n }\n const address = response?.addresses?.[0]\n if (address) execSetStepFromAddress(address)\n })\n .catch(error => {\n dispatch(setGeolocationStatus(GEOLOC_STATUS_BLOCKED))\n if (isPE()) {\n saveToLocalStorage(\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION,\n BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION_FALSE\n )\n }\n })\n }\n\n return <SuggestContent positionComponent={<MyPosition onClick={onMyPositionClick} />} onClick={onClick} />\n}\n\nexport default ItinerarySuggestContent\n","import classNames from 'classnames'\nimport React, { useRef } from 'react'\nimport { getCurrentTime } from '../utils/date'\nimport s from './TimePicker.less'\n\n// webpack:BrowserOnly\nexport default function DatePicker({ name, value, label, className, onChange }) {\n const now = getCurrentTime()\n const inputRef = useRef()\n\n // Accepted value property should respect ISO time format : HH:MM\n return (\n <>\n <label>\n {label}\n <input\n ref={inputRef}\n type=\"time\"\n name={name}\n className={classNames(s.timeInput, className)}\n placeholder=\"hh:mm\"\n required\n value={value || now}\n onChange={() => onChange?.(inputRef.current.value)}\n />\n </label>\n </>\n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"timeInput\":\"MTpRr\"};","import classNames from 'classnames'\nimport React from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {\n setItineraryArrivalLater,\n setItineraryDate,\n setItineraryDepartureLater,\n setItineraryDepartureNow,\n setItineraryTime\n} from '../../store/itineraryOptions/itineraryOptionsSlice'\nimport { selectItineraryTimeOptions } from '../../store/itineraryOptions/itineraryTimeOptions.selectors'\nimport {\n ARRIVAL_LATER,\n DEPARTURE_LATER,\n DEPARTURE_NOW\n} from '../../store/itineraryOptions/itineraryTimeOptionsWhenTypes'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport DatePicker from '../genericComponents/DatePicker'\nimport TimePicker from '../genericComponents/TimePicker'\nimport checkmark from '../genericComponents/assets/checkmark.svg'\nimport T from '../i18n/T'\nimport OptionsDialog from '../itinerary/OptionsDialog'\nimport SVGIcon from '../svg/SVGIcon'\nimport useUIDisplay from '../ui/useUIDisplay'\nimport s from './ItineraryTimeOptionsDialog.less'\n\nexport const ItineraryTimeOptionsDialog = () => {\n const { isUIDisplayed } = useUIDisplay(UI_ELEMENTS.ITINERARY_TIME_OPTIONS_DIALOG)\n const { when, date, time } = useSelector(selectItineraryTimeOptions)\n const dispatch = useDispatch()\n\n const onDateChange = date => dispatch(setItineraryDate({ date }))\n const onTimeChange = time => dispatch(setItineraryTime({ time }))\n\n const values = [\n {\n key: DEPARTURE_NOW,\n labelKey: 'itinerary.options.date.leaving-now',\n datetime: false,\n action: () => dispatch(setItineraryDepartureNow())\n },\n {\n key: DEPARTURE_LATER,\n labelKey: 'itinerary.options.date.leaving-later',\n datetime: true,\n action: () => dispatch(setItineraryDepartureLater())\n },\n {\n key: ARRIVAL_LATER,\n labelKey: 'itinerary.options.date.arrival-at',\n datetime: true,\n action: () => dispatch(setItineraryArrivalLater())\n }\n ]\n\n return (\n <OptionsDialog isDisplayed={isUIDisplayed} title=\"itinerary.options.date.title\">\n <ul className={s.list}>\n {values.map(({ key, labelKey, datetime, action }) => {\n const selected = when === key\n return (\n <li key={key} className={classNames(s.item, selected && s.active)} onClick={() => !selected && action()}>\n {selected && (\n <span className={s.coche}>\n <SVGIcon url={checkmark} />\n </span>\n )}\n <span className={s.label}>\n <T id={labelKey} />\n </span>\n {datetime && selected && (\n <div className={s.datetime}>\n <DatePicker className={s.date} value={date} onChange={onDateChange} />\n <TimePicker className={s.time} value={time} onChange={onTimeChange} />\n </div>\n )}\n </li>\n )\n })}\n </ul>\n </OptionsDialog>\n )\n}\n\nexport default withEmptyFallbackErrorBoundary(ItineraryTimeOptionsDialog)\n","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"pLI64\",\"item\":\"yvgA9\",\"active\":\"SCwi6\",\"label\":\"DdZ8O\",\"coche\":\"ORsqU\",\"datetime\":\"gCoUB\",\"date\":\"BXQsb\",\"time\":\"yuMdY\"};"],"names":["props","inputRef","useRef","todayDate","getCurrentDateISO","name","value","min","max","getFutureDateISO","days","label","className","onChange","ariaLabel","shouldDisplayLabel","setShouldDisplayLabel","useState","classnames","classNames","React","ref","type","required","onDateChange","hasDateAlreadyPassed","current","onFocus","e","onBlur","target","withUserNotConnected","withEverySelectorTruthy","selectIsPreferencesUserAccountIncentiveDisplayed","UserAccountIncentivePreferences","dispatch","useDispatch","hideIncentive","hideUserAccountPreferencesIncentive","onClose","useEventCallback","useEffect","onClick","SVGIcon","url","cross","UserLoginButton","size","SIZE_MEDIUM","withEmptyFallbackErrorBoundary","ItineraryOptionsDialog","execFetchItineraryOptionsConfig","useAction","fetchItineraryOptionsConfig","isUIDisplayed","useUIDisplay","UI_ELEMENTS","ITINERARY_OPTIONS_DIALOG","OptionsDialog","isDisplayed","title","ItineraryOptions","AddStepButton","addStep","isComputingDone","useSelector","selectIsComputingDoneOrFailed","undefined","dangerouslySetInnerHTML","__html","_ref","stepId","invertSteps","removeStep","iconUrl","ssrWhite","stopStepIds","selectStopStepIds","displayAddStep","length","getMaxStops","s","key","map","RemoveStepButton","InvertStepsButton","STEP_IDS","departure","withTranslation","t","isItineraryDepartureNow","selectIsItineraryDepartureNow","steps","selectAllSteps","idx","getStepIdx","getState","useStore","execSearchItineraryLocation","searchItineraryLocation","loading","setLoading","setValue","SearchInputRefs","showAllSteps","firstStepToFillIndex","findIndex","_ref2","_","i","createRef","_steps$idx","setStepIdx","_ref3","getPrefix","getPlaceholder","BackButton","onSubmit","preventDefault","BookinSearchExtension","openPopup","departureNow","then","terms","options","from","SET_STEP_FROM","searchForm","tagid","SPD_RESPONSE_SEARCH_ITINERARY","catch","closePopup","finally","selectIsSuggestRouteFromItinerary","ItineraryForm","focusOnStep","_ref4","ui","isFirstStepToFill","showThatStep","SearchInput","prefix","placeholder","suggestFilterType","suggestServiceCtx","filter","places","focus","StepsButtons","execNavigateTo","navigateTo","useCallback","route","ROUTE_ITINERARY_OPTIONS_DIALOG","OptionButton","myOptionsButton","icon","T","id","getLocaleTitle","getItineraryTimeTitle","locale","selectLocale","ROUTE_ITINERARY_TIME_OPTIONS_DIALOG","itineraryTimeTranslations","useTranslateAsObject","iconCalendar","ItinerarySubHeader","ItineraryTimeOptionButton","ItinraryOptionButton","Header","arrowLeft","BasicOptionsDialog","children","execNavigateBack","navigateBack","shouldNavigateToItineraryComputing","areStepsFilled","exitHandler","resetItineraryExceptSteps","ROUTE_ITINERARY_COMPUTING","RectangleActionButton","color","COLOR_GREEN","SIZE_BIG","SlideInOut","display","Helmet","InlineDesktopAdBanner","adName","keywordsSelector","placeHolderHeight","isGE","container","AdLoader","content","AdDesktopBannerHP","AdDesktopAddressHP","selectAddressKeywords","AdDesktopItineraryHP","AdDesktopRectangleItineraryResult","selectCurrentHistoryRoute","ROUTE_ITINERARY_ROADBOOK","selectItineraryKeywords","AdDesktopExpenseReportBanner","AdDesktopExpenseReportRectangleRight","AdDesktopExpenseReportRectangleLeft","AdDesktopRectangleGeoentity","selectGeoentityAdsKeywords","ArrivalMarker","coords","lng","lat","execSetArrivalFromPoint","setArrivalFromPoint","configureAndSendTag","useConfigureAndSendTag","onDragEnd","event","_event$target","position","_lngLat","TAG_DRAG_AND_DROP","tagInfo","ACTION","analyticsConstants","itinerary","dragndrop","action","arrival","Marker","coordinates","anchorPosition","dragOptions","ArrivalMarkerHTML","DepartureMarker","step","stepIdx","execSetDepartureFromPoint","setDepartureFromPoint","execSetStepFromPoint","setStepFromPoint","withMapInitialized","StepsMarkers","stops","selectStepsCoordinates","isCoords","index","isBlockedStatus","selectGeolocationStatus","GEOLOC_STATUS_BLOCKED","mappyLogoFilled","withFrenchSite","wrapper","ImageWithFallback","device","image","deviceWebp","fallbackImage","devicePng","width","height","text","infos","AutoPromoOpenButton","area","autopromo","main","style","ImageMarker","src","markerGrey","checkeredFlag","ItinerarySuggestContent","execSetStepFromSuggestion","setStepFromSuggestion","execGetCurrentLocation","getCurrentLocation","execSetStepFromAddress","setStepFromAddress","SuggestContent","positionComponent","MyPosition","onMyPositionClick","TAG_SUGGEST","SUGGEST_FROM_VALUES","geolocation","Promise","resolve","findAddressforGeolocation","response","_response$addresses","isPE","saveToLocalStorage","BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION","BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION_TRUE","address","addresses","error","setGeolocationStatus","BROWSER_STORAGE_ALLOW_DEFAULT_USER_POSITION_FALSE","suggest","labels","subtype","removeHtmlEmTags","join","split_label","removeHtmlEmSpanAndITags","favorites","DatePicker","now","getCurrentTime","ItineraryTimeOptionsDialog","ITINERARY_TIME_OPTIONS_DIALOG","when","date","time","selectItineraryTimeOptions","setItineraryDate","onTimeChange","setItineraryTime","values","DEPARTURE_NOW","labelKey","datetime","setItineraryDepartureNow","DEPARTURE_LATER","setItineraryDepartureLater","ARRIVAL_LATER","setItineraryArrivalLater","selected","checkmark","TimePicker"],"sourceRoot":""}