{"version":3,"file":"static/js/439.703c1a74.chunk.js","mappings":"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","sources":["components/destination/index.js","components/dropdown/index.js","assets/images/crosshair.svg","components/interactive-map/timeline/index.js","components/interactive-map/overlapping-pins/index.js","components/interactive-map/index.js","components/interactive-map-wrapper/index.js","containers/dropdown-gallery-description/index.js","containers/section-child/index.js"],"sourcesContent":["import React, { useContext, useState, useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport { BasicData } from '@App';\nimport { Trans } from '@lingui/macro';\nimport { getFormattedDate, getSliderImages } from '@utils/Utils';\nimport { useIsMobile } from '@utils/hooks/useIsMobile';\nimport { Tabs, Tab } from '@components/form/tabs';\nimport SliderComponent from '@components/slider';\nimport InteractiveMapWrapper from '@components/interactive-map-wrapper';\nimport SectionChildContainer from '@containers/section-child';\nimport SlideUp from '@components/slide-up';\nimport DropdownGalleryDescription from '@containers/dropdown-gallery-description';\n\nimport './style.scss';\n\nconst Destination = ({leg, id, legType, extendedContent, startDate, startDay, endDate, endDay }) => {\n const mobile = useIsMobile();\n const { destinations } = useContext(BasicData);\n const basicData = useContext(BasicData);\n\n const [renderMap, setRenderMap] = useState(false);\n const [activeMarkers, setActiveMarkers] = useState(false)\n const markers = useSelector(state => state.map.mapMarkers);\n\n const getContent = useCallback((destinationId) => {\n const destinationKeys = ['overview', 'general_information', 'entry_requirements', 'currency', 'transport', 'health', 'safety', 'electricity', 'cuisine', 'climate', 'dress', 'internet'];\n\n const hasBasicContent = destinations && destinations[destinationId];\n const hasExtendedContent = extendedContent && extendedContent[destinationId];\n\n if (hasBasicContent && hasExtendedContent) {\n const { country } = { ...destinations[destinationId], ...extendedContent[destinationId] };\n \n return destinationKeys\n .filter(key => country?.hasOwnProperty(key) && country[key] !== '')\n .map((key) => {\n const name = key.replace(/_/g, ' ');\n const description = country[key];\n const images = key === 'overview' ? country['images'] : null;\n\n return {\n name: name,\n description: description,\n images: images,\n }\n })\n }\n else if (hasBasicContent && !hasExtendedContent) {\n return destinations[destinationId];\n }\n else if (!hasBasicContent && hasExtendedContent) {\n return extendedContent[destinationId];\n }\n else {\n return null\n }\n\n }, [destinations, extendedContent])\n\n const onTabClick = useCallback((i, event) => {\n if (event.target.textContent === \"Map\") {\n const marker = markers?.filter(x => x.id === event.target.closest('.destination').id);\n if (marker[0]) {\n setActiveMarkers([marker[0].index]);\n setRenderMap(true);\n }\n }\n }, [markers])\n\n return (\n <>\n \n
Destination
\n

{destinations && destinations[id] ? destinations[id].name : \"\"}

\n
{getFormattedDate(startDate, endDate, startDay, endDay)}
\n
\n \n \n
\n \n {extendedContent[id]?.images &&\n \n {mobile &&
Gallery
}\n \n
\n }\n\n {legType !== \"Mobile\" &&\n \n {renderMap && activeMarkers.length > 0 &&\n
\n \n
\n }\n
\n }\n\n {extendedContent[id]?.country && (\n \n {mobile ? (\n <>\n \n \n \n \n ) : (\n
\n \n
\n )}\n
\n )}\n \n
\n
\n
\n \n )\n}\n\nexport default Destination;","import { useCallback, useEffect, useState } from 'react';\nimport { useIsMobile } from '@utils/hooks/useIsMobile';\nimport { Trans } from '@lingui/macro';\n\nimport './style.scss';\n\nconst Dropdown = ({ values = [], onChange, value = 0, text }) => {\n const mobile = useIsMobile();\n const [open, setOpen] = useState(false);\n const [active, setActive] = useState(value);\n\n const capitalizeFirstLetterOfEachWord = (str) => {\n if (str === 'General Information') {\n str = 'General'\n }\n\n return str?.toLowerCase()\n .split(' ')\n .map(str => str.charAt(0).toUpperCase() + str.slice(1))\n .join(' ')\n }\n\n const onClick = () => {\n !mobile && setOpen(!open);\n }\n\n const onSelect = (index) => {\n setActive(index);\n onChange(index);\n }\n\n const prevItem = useCallback(() => {\n const newActive = active === 0 ? values.length - 1 : active - 1;\n setActive(newActive);\n onChange(newActive);\n }, [active, onChange, values])\n\n const nextItem = useCallback(() => {\n const newActive = active === values.length - 1 ? 0 : active + 1;\n setActive(newActive);\n onChange(newActive);\n }, [active, values, onChange])\n\n useEffect(() => {\n setActive(value);\n }, [value])\n\n return (\n
setOpen(false)} tabIndex={-1}>\n
\n
\n {mobile && }\n {text ? (\n {text}\n ) : (\n \n )}\n {!mobile && }\n {mobile && }\n
\n
\n
\n {values.map((val, i) => (\n
onSelect(i)}>\n
\n
\n ))}\n
\n
\n )\n}\n\nexport default Dropdown;","var _path, _path2, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgCrosshair(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 24,\n viewBox: \"0 0 25 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.5 12C1.5 5.9 6.4 1 12.5 1C18.6 1 23.5 5.9 23.5 12C23.5 18.1 18.6 23 12.5 23C6.4 23 1.5 18.1 1.5 12ZM13.5 18V20.9C17.7 20.5 21 17.2 21.4 13H18.5C17.9 13 17.5 12.6 17.5 12C17.5 11.4 17.9 11 18.5 11H21.4C21 6.9 17.7 3.6 13.5 3.1V6C13.5 6.6 13.1 7 12.5 7C11.9 7 11.5 6.6 11.5 6V3.1C7.3 3.5 4 6.8 3.6 11H6.5C7.1 11 7.5 11.4 7.5 12C7.5 12.6 7.1 13 6.5 13H3.6C4 17.1 7.3 20.4 11.5 20.9V18C11.5 17.4 11.9 17 12.5 17C13.1 17 13.5 17.4 13.5 18Z\",\n fill: \"#534D67\"\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_2445_74395\",\n style: {\n maskType: \"luminance\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 1,\n y: 1,\n width: 23,\n height: 22\n }, _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.5 12C1.5 5.9 6.4 1 12.5 1C18.6 1 23.5 5.9 23.5 12C23.5 18.1 18.6 23 12.5 23C6.4 23 1.5 18.1 1.5 12ZM13.5 18V20.9C17.7 20.5 21 17.2 21.4 13H18.5C17.9 13 17.5 12.6 17.5 12C17.5 11.4 17.9 11 18.5 11H21.4C21 6.9 17.7 3.6 13.5 3.1V6C13.5 6.6 13.1 7 12.5 7C11.9 7 11.5 6.6 11.5 6V3.1C7.3 3.5 4 6.8 3.6 11H6.5C7.1 11 7.5 11.4 7.5 12C7.5 12.6 7.1 13 6.5 13H3.6C4 17.1 7.3 20.4 11.5 20.9V18C11.5 17.4 11.9 17 12.5 17C13.1 17 13.5 17.4 13.5 18Z\",\n fill: \"white\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_2445_74395)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.5 0H24.5V24H0.5V0Z\",\n fill: \"#534D67\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrosshair);\nexport default __webpack_public_path__ + \"static/media/crosshair.0649a811ae10e3645503efa5ada641aa.svg\";\nexport { ForwardRef as ReactComponent };","import { Trans } from \"@lingui/macro\";\nimport { useEffect, useState } from \"react\";\n\nimport './style.scss'\nimport crosshair from '@assets/images/crosshair.svg'\n\nconst Timeline = ({ markerData, timelineRefs, config, handleMarkerClick, handleRecenterClick, onTimelineOpen }) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const toggle = () => {\n setIsOpen(!isOpen)\n onTimelineOpen(isOpen)\n }\n\n const recenter = () => {\n handleRecenterClick()\n }\n\n useEffect(() => {\n if (config) {\n setIsOpen(config?.timeLineOptions?.isOpen)\n }\n }, [config])\n return (\n
\n
\n
\n {markerData?.map((marker, i) => (\n
handleMarkerClick(i, marker.name)}>\n
\n {marker?.children?.timelineChildren}\n
\n
\n ))}\n
\n
\n\n {config?.timeLineOptions?.showToggle &&\n
\n {isOpen ?
Close
:
}\n
\n }\n\n {config?.timeLineOptions?.showRecenter &&\n
\n
Recentre \"\"
\n
\n }\n
\n )\n}\n\nexport default Timeline","\nimport { useState, createRef } from \"react\";\nimport { Marker } from 'react-map-gl';\n\nimport './style.scss'\n\nconst OverLappingPins = ({ pins, index, mapRefs, overlappingPinsRefs, config, handleMarkerClick }) => {\n const [isCollapsed, setIsCollapsed] = useState(false);\n\n return (\n \n
\n
\n
handleMarkerClick(pins[0]?.markerIndex)} ref={mapRefs?.current[pins[0]?.markerIndex] ?? createRef()}> {pins[0]?.children?.mapChildren}
\n
\n
\n {pins.map((marker, i) => (\n
handleMarkerClick(marker?.markerIndex)} ref={mapRefs?.current[marker?.markerIndex] ?? createRef()}>{marker?.children?.mapChildren}
\n ))}\n
\n\n {pins.length > 3 &&\n
setIsCollapsed(!isCollapsed)} className='collapse'>\n {isCollapsed ? : }\n
\n }\n
\n
\n
\n
\n )\n}\n\nexport default OverLappingPins","import React, { useCallback, useRef, createRef, useEffect, useState } from 'react';\nimport { useGlobalEnvConfig } from \"@environment/GlobalEnvConfigProvider\";\nimport { Map, Marker, Source, Layer, NavigationControl } from 'react-map-gl';\nimport mapboxgl from 'mapbox-gl';\nimport Timeline from './timeline';\nimport OverLappingPins from './overlapping-pins';\n\nimport 'mapbox-gl/dist/mapbox-gl.css';\nimport './style.scss';\n\n// eslint-disable-next-line import/no-webpack-loader-syntax, import/no-unresolved\nmapboxgl.workerClass = require('worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker').default;\n\nconst InteractiveMap = ({ activeMarkers, onMapLoad, markerData, layerData, config, timelineConfig, onMarkerClick, onZoom, onRecenter, onTimelineOpen }) => {\n const { REACT_APP_MAPBOX_ACCESS_TOKEN, REACT_APP_MAPBOX_STYLE } = useGlobalEnvConfig();\n const defaultMapStyles = { position: 'relative', width: '100%', height: '85vh', zIndex: 0 }\n const map = useRef();\n const timelineRefs = useRef([]);\n const mapRefs = useRef([]);\n const overlappingPinsRefs = useRef([]);\n\n const [overlappingPins, setOverlappingPins] = useState([]);\n const [mapConfig, setMapConfig] = useState(null);\n const prevIndex = useRef();\n\n const handleMarkerClick = useCallback((i, name) => {\n if (Number.isInteger(i)) {\n const marker = mapRefs?.current[i].current;\n onMarkerClick(marker, i, prevIndex.current, timelineRefs, map, name);\n }\n }, [onMarkerClick]);\n\n const handleRecenterClick = useCallback((i) => {\n onRecenter();\n }, [onRecenter]);\n\n const zoomHandler = useCallback((e) => {\n if (e) {\n onZoom(e)\n }\n }, [onZoom]);\n\n const mapLoad = useCallback(() => {\n if (map && timelineRefs && mapRefs && overlappingPinsRefs && overlappingPins) {\n onMapLoad(map, timelineRefs, mapRefs, overlappingPinsRefs, overlappingPins)\n }\n }, [onMapLoad, overlappingPins]);\n\n\n useEffect(() => {\n if (markerData) {\n mapRefs.current = markerData?.map((element, i) => (\n mapRefs.current[i] ?? createRef()\n ))\n\n timelineRefs.current = markerData?.map((element, i) => (\n timelineRefs.current[i] ?? createRef()\n ))\n\n //Group markers with the same lat long values - It will always find itself so need to check for more than 1\n const grouped = Object.values(markerData.filter(r => r.type !== \"route\").reduce((acc, cur) => {\n acc[cur.latitude && cur.longitude] = [...(acc[cur.latitude && cur.longitude] || []), cur];\n return acc;\n }, {})).filter(x => x.length > 1);\n\n setOverlappingPins(grouped)\n }\n }, [markerData]);\n\n useEffect(() => {\n if (config) {\n setMapConfig(config);\n }\n\n map?.current?.resize()\n }, [config]);\n\n useEffect(() => {\n if (overlappingPins.length) {\n overlappingPinsRefs.current = overlappingPins?.map((element, i) => (\n overlappingPinsRefs.current[i] ?? createRef()\n ))\n }\n }, [overlappingPins]);\n\n return (\n <>\n\n
\n {mapConfig &&\n mapLoad()}\n reuseMaps\n optimizeForTerrain\n onZoom={(e) => zoomHandler(e)}\n maxZoom={config?.maxZoom ? config?.maxZoom : 14}\n cooperativeGestures\n interactive\n pitchWithRotate={false}\n style={config?.mapStyles ? config.mapStyles : defaultMapStyles}\n padding={config?.mapPadding ? config?.mapPadding : 0}\n mapStyle={`mapbox://styles/${REACT_APP_MAPBOX_STYLE}?optimize=true`}\n mapboxAccessToken={REACT_APP_MAPBOX_ACCESS_TOKEN}\n projection={'mercator'}\n initialViewState={config?.initialViewState ? config?.initialViewState : { zoom: 0 }}\n logoPosition={\"bottom-right\"}\n localFontFamily={config?.mapFont ? config?.mapFont : ''}\n >\n {layerData && layerData.filter(x => x.geoJson).map((routeJson, i) => (\n \n \n {routeJson.layerStyles.map((style, index) => (\n \n ))}\n \n \n ))}\n\n {markerData && markerData.map((marker, i) => (\n \n {!overlappingPins.filter((group) => group.some((p) => marker.markerIndex === p.markerIndex)).length && marker?.children?.mapChildren &&\n handleMarkerClick(i)} longitude={marker.longitude} latitude={marker.latitude} style={{ zIndex: activeMarkers?.includes(i) ? 2 : 0 }} >\n
\n {marker?.children?.mapChildren}\n
\n
\n }\n
\n ))}\n\n {overlappingPins?.length > 0 && overlappingPins?.map((pins, i) => (\n \n \n \n ))}\n\n {config?.showControls &&\n \n }\n \n }\n\n {markerData && timelineRefs &&\n \n }\n
\n\n \n )\n}\n\nexport default InteractiveMap;","import { useEffect, useState, useRef, useCallback, useContext } from \"react\"\nimport { useGlobalEnvConfig } from \"@environment/GlobalEnvConfigProvider\";\nimport { Trans } from '@lingui/macro';\nimport mapboxgl from 'mapbox-gl';\nimport InteractiveMap from '@components/interactive-map';\nimport SlideUp from '@components/slide-up'\nimport { safeImageUrl, getLetters, getTextColorClass, getColor, getRouteColor, getIcon, createCurvedRoute, getLightenedColor, getLayerStyles, getLayerData, getMarkerStyle, routeMarkerStyle } from '@utils/Utils';\nimport { useIsMobile } from '@utils/hooks/useIsMobile';\nimport { TinyColor } from \"@ctrl/tinycolor\";\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setMapMarkers } from '@utils/redux/slices/map';\nimport { BasicData } from '@App';\n\nimport './style.scss';\n\nconst InteractiveMapWrapper = ({ basicData, activeMarkers = [] }) => {\n const { REACT_APP_RESOURCE_DOMAIN } = useGlobalEnvConfig();\n const { theme } = useContext(BasicData);\n\n let markerIndex = 0;\n const dispatch = useDispatch();\n\n const colors = getColor(theme);\n const activeTextColor = getTextColorClass(colors?.secondary);\n const activePinTextColor = getTextColorClass(colors?.accent);\n const mobile = useIsMobile();\n\n const [interactiveMap, setInteractiveMap] = useState(null);\n const [activeMarkerCollection, setActiveMarkerCollection] = useState();\n const [markerState, setMarkerState] = useState(null);\n const [layerState, setLayerState] = useState(null);\n const [mapConfig, setMapConfig] = useState({});\n const [timeLineConfig, setTimelineConfig] = useState(null)\n const [activeOverlappingPins, setactiveOverlappingPins] = useState({});\n const markersStore = useSelector(state => state.map.mapMarkers);\n\n const prevZoom = useRef(0);\n const initialBounds = useRef();\n const reCenterBounds = useRef();\n const timelineRefs = useRef();\n const mapMarkerRefs = useRef();\n const layerData = useRef([]);\n const markerData = useRef([]);\n const overlappingPinsRefs = useRef([]);\n const overlappingPinsData = useRef();\n const prevGroup = useRef({});\n\n\n //INTERACTIVE MAP FUNCTIONS AND EVENTS\n const handleOverlappingPinActiveState = useCallback((marker) => {\n let overlappingPinsIndex = null;\n let overlappingPinMarkerIndex = null\n\n overlappingPinsData?.current?.forEach((group, gi) => {\n group.forEach((p, gmi) => {\n if (p.markerIndex === marker.markerIndex) {\n overlappingPinsIndex = gi;\n overlappingPinMarkerIndex = gmi;\n }\n })\n })\n\n setactiveOverlappingPins({\n markerData: marker,\n overlappingPinsIndex: overlappingPinsIndex,\n overlappingPinMarkerIndex: overlappingPinMarkerIndex,\n markerGroup: overlappingPinsRefs.current[overlappingPinsIndex]\n })\n }, [])\n\n\n //Creates a route layer including the marker in the middle\n const createRoute = useCallback((leg, route) => {\n let layerGeometry = [];\n let markerCoordinates = [];\n let bearing = 0;\n let children = {};\n let accommodation = {};\n let thumbnail = '';\n let name = '';\n let rotateIcon = route.mode === \"ScheduledFlight\" || (route.mode === \"CharterFlight\" && (route.variant === \"charterFlight_Plane\" || route.variant === \"\"));\n const accommodations = basicData?.accommodations;\n\n if (leg.type === \"Mobile\" && (route.mode === \"BoatNoRoute\" || route.mode === \"Boat\" || route.mode === \"TrainNoRoute\" || route.mode === \"Train\" || route.mode === \"Transfer\")) {\n accommodation = accommodations[leg.accommodation_id];\n thumbnail = accommodation?.images ? safeImageUrl(REACT_APP_RESOURCE_DOMAIN, accommodation?.images[0], 380, 250, \"c\") : '';\n name = accommodations[leg.accommodation_id]?.name;\n }\n\n if (route.points && route.points.length > 2) {\n layerGeometry = route?.points;\n markerCoordinates = route?.points[Math.floor(route?.points.length / 2)];\n } else {\n const curve = createCurvedRoute(route);\n layerGeometry = curve?.points;\n markerCoordinates = curve?.midPoint;\n bearing = curve?.bearing;\n }\n\n if (route.mode === \"ScheduledFlight\" || route.mode === \"CharterFlight\" || route.mode === \"BoatNoRoute\" || route.mode === \"TrainNoRoute\" || route.mode === \"Train\" || route.mode === \"Boat\") {\n children = {\n mapChildren:\n
\n \n
,\n timelineChildren: <>\n
\n \n
\n
\n\n {thumbnail &&\n \"\"\n }\n\n
\n {name &&

{name}

}\n {(route.from && route.mode !== 'Train') &&

{route.from}

}\n {(route.route_label) &&

{route.route_label ? {route.route_label} : ''}

}\n {route.duration &&

{route.duration}

}\n
\n\n {(route.start_time || route.end_time) &&\n
\n {route.start_time &&

Depart: {route.start_time}

}\n {route.end_time &&

Arrive: {route.end_time}

}\n
\n }\n
\n \n }\n } else if (route.mode === \"NoTransit\" || route.mode === \"Placeholder\") {\n children = {\n mapChildren:
,\n timelineChildren:
\n }\n } else {\n children = {\n mapChildren:\n
100000 ? 0 : 8} className={`icon route-marker ${route.mode.toLowerCase()}`} style={routeMarkerStyle(route)}>\n \n
,\n timelineChildren: <>\n
\n \n
\n
\n

{route.route_label}

\n\n {(route.distance || route.duration) &&\n
\n {route.distance && route.distance > 0 &&

{`${route.distance} km`}

}\n {route.duration &&

{route.duration}

}\n
\n }\n
\n \n }\n }\n\n\n if (markerCoordinates.length && layerGeometry.length) {\n markerData.current = [...markerData.current, {\n id: `route-marker-${markerIndex}`,\n latitude: markerCoordinates[1] || 0,\n longitude: markerCoordinates[0] || 0,\n name: route.route_label,\n elementClass: route?.mode ? route?.mode?.toLowerCase() : 'pin-marker',\n mode: route.mode,\n type: 'route',\n leg_id: leg.id,\n children: children\n }]\n\n layerData.current = [...layerData.current, {\n layerStyles: getLayerStyles(markerIndex, getRouteColor(route.mode)),\n geoJson: getLayerData(layerGeometry),\n mode: route.mode\n }]\n\n markerIndex++;\n }\n }, [basicData?.accommodations, markerIndex, REACT_APP_RESOURCE_DOMAIN])\n\n\n const setMutedMapLayers = useCallback((layerCopy) => {\n if (layerCopy) {\n layerCopy.forEach((route, i) => {\n if (route.layerStyles && route.layerStyles?.length) {\n const color = getLightenedColor(route.mode);\n route.layerStyles[0].paint = { 'line-color': color, 'line-width': 5 };\n route.layerStyles[1].paint = { 'circle-color': color, 'circle-radius': 6 };\n }\n })\n setLayerState(layerCopy)\n }\n }, [])\n\n\n const setMutedMapMarkers = useCallback(() => {\n const legIdToModeMap = {};\n\n markerState.forEach(marker => {\n const { mode, leg_id } = marker;\n if (leg_id && !legIdToModeMap[leg_id]) {\n legIdToModeMap[leg_id] = mode;\n }\n });\n\n mapMarkerRefs?.current?.forEach((marker, i) => {\n const currentMode = markerState[i].mode;\n const currentLegId = markerState[i].leg_id;\n let modeToUse = currentMode;\n\n if (!modeToUse && currentLegId) {\n modeToUse = legIdToModeMap[currentLegId];\n }\n \n const color = modeToUse ? getLightenedColor(modeToUse) : new TinyColor(`#${colors?.accent}`).tint(60).toHexString();\n\n if (!currentMode && marker?.current?.children[0]?.classList.contains('standard-accommodation')) {\n marker?.current?.children[0]?.style.setProperty(\"background-color\", new TinyColor(`#${colors?.accent}`).tint(60).toHexString()); \n } else if (marker?.current) {\n marker?.current?.children[0]?.style.setProperty(\"background-color\", color);\n }\n });\n\n timelineRefs?.current?.forEach((marker, i) => {\n const currentMode = markerState[i].mode;\n const currentLegId = markerState[i].leg_id;\n let modeToUse = currentMode;\n\n if (!modeToUse && currentLegId) {\n modeToUse = legIdToModeMap[currentLegId];\n }\n \n const color = modeToUse ? getLightenedColor(modeToUse) : new TinyColor(`#${colors?.accent}`).tint(60).toHexString();\n if (!currentMode && marker?.current.classList.contains('standard-accommodation')) {\n marker?.current?.children[0].children[0].style.setProperty(\"background-color\", new TinyColor(`#${colors?.accent}`).tint(60).toHexString()); \n } else if (marker?.current){\n marker?.current?.children[0].children[0].style.setProperty(\"background-color\", color);\n }\n })\n\n }, [colors?.accent, markerState])\n\n\n const onMarkerClick = useCallback((markerRef, index, prevIndex, timelineRefs, map, name) => {\n const element = timelineRefs.current[index].current;\n const root = markerRef.closest('.interactive-map');\n const layerCopy = JSON.parse(JSON.stringify(layerState));\n\n if (overlappingPinsRefs?.current) {\n handleOverlappingPinActiveState(markerState[index])\n }\n\n if (element) {\n timelineRefs.current.forEach((el) => { el.current.classList.remove('active', activeTextColor) })\n timelineRefs.current[index].current.classList.add('active', activeTextColor);\n if (name === 'Own Arrangement') {return}\n let time = 0;\n\n if (!root.querySelector('.map-timeline-overlay').classList.contains('open')) {\n setTimelineConfig(prev => ({\n ...prev,\n timeLineOptions: {\n ...prev?.timeLineOptions,\n isOpen: true,\n },\n }))\n\n //Let the open animation finish first before scrolling\n time = 400;\n }\n\n const t = setTimeout(() => {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n clearTimeout(t)\n }, time);\n }\n\n if (markerRef) {\n const line = layerCopy[index]?.geoJson?.features?.filter(x => x.geometry.type === \"LineString\");\n const lngLat = markerRef._lngLat ?? { lng: markerState[index].longitude, lat: markerState[index].latitude };\n\n let padding = mobile ? 30 : root.querySelector('.map-timeline-overlay').classList.contains('open') ? { left: (window.innerWidth * 0.2), top: 100, right: 100, bottom: 100 } : 100;\n\n const observer = new IntersectionObserver((entries, observer) => {\n if (!entries[0].isIntersecting) {\n\n if (line) {\n const coordinates = line[0].geometry.coordinates ? line[0].geometry.coordinates : lngLat;\n const bounds = new mapboxgl.LngLatBounds(\n coordinates[0],\n coordinates[0]\n );\n\n for (const coord of coordinates) {\n bounds.extend(coord);\n }\n\n map.current.fitBounds(bounds, {\n padding: padding\n });\n } else {\n map.current.flyTo({\n center: [lngLat.lng, lngLat.lat],\n essential: true,\n zoom: 7\n });\n }\n } else {\n observer.disconnect()\n }\n }, {\n root: root,\n threshold: [1],\n rootMargin: mapConfig?.timeLineOptions?.isOpen || !mobile ? mapConfig?.timeLineOptions?.alignment === \"left\" ? `100px 100px 100px -320px` : \"100px -320px 100px 100px\" : \"100px\",\n });\n\n observer.observe(markerRef);\n\n const siblings = root.querySelectorAll('.icon');\n siblings.forEach((el) => { el.classList.remove('active') });\n\n //Ignore overlapping pins\n if (markerRef.classList.contains('marker-content')) {\n markerRef.children[0]?.classList.add('active');\n }\n }\n\n //Mute the rest of the map\n setMutedMapMarkers();\n setMutedMapLayers(layerCopy);\n\n //Set active color on clicked route and marker\n if (layerCopy[index] && layerCopy[index].layerStyles) {\n const color = getRouteColor(layerCopy[index].mode);\n layerCopy[index].layerStyles[0].paint = { 'line-color': color, 'line-width': 5 };\n layerCopy[index].layerStyles[1].paint = { 'circle-color': color, 'circle-radius': 6 };\n }\n\n if (markerState[index]?.type === \"route\") {\n map?.current?.moveLayer(`line-route-${index}`);\n map?.current?.moveLayer(`line-point-layer-${index}`);\n }\n\n setActiveMarkerCollection([index]);\n\n }, [markerState, activeTextColor, mobile, mapConfig?.timeLineOptions, handleOverlappingPinActiveState, setMutedMapMarkers, setMutedMapLayers, layerState]);\n\n\n //MAPBOX EVENTS\n const onZoom = useCallback((event) => {\n let mapZoom = event?.viewState?.zoom;\n let zoomLevel = Math.trunc(mapZoom);\n\n if (zoomLevel !== prevZoom.current) {\n const rm = document.querySelectorAll('.route-marker');\n for (let i = 0, len = rm.length; i < len; i++) {\n parseInt(rm[i].dataset?.zoomlevel) <= zoomLevel ? rm[i].classList.add('show') : rm[i].classList.remove('show');\n }\n\n prevZoom.current = zoomLevel;\n }\n }, [])\n\n const onMapLoad = useCallback((map, tRefs, mRefs, opRefs, opData) => {\n if (map && map?.current) {\n setInteractiveMap(map);\n }\n\n if (opRefs.current && opData) {\n overlappingPinsRefs.current = opRefs.current;\n overlappingPinsData.current = opData;\n }\n\n if (tRefs.current) {\n timelineRefs.current = tRefs.current;\n timelineRefs?.current[0].current?.classList?.add('active', activeTextColor);\n }\n\n if (mRefs.current) {\n mapMarkerRefs.current = mRefs.current;\n\n if (mapMarkerRefs.current[0].current?.classList.contains('marker-content')) {\n mapMarkerRefs.current[0].current?.children[0]?.classList.add('active');\n } else {\n const overlappingPinsParent = mapMarkerRefs.current[0].current?.closest('.overlapping-pins')\n \n if (overlappingPinsParent) {\n overlappingPinsParent.querySelector('.primary-marker').classList.add('active');\n }\n }\n }\n }, [activeTextColor])\n\n\n const onRecenter = useCallback(() => {\n const root = interactiveMap?.current.getMap()._container.closest('.interactive-map');\n\n if (!Array.isArray(reCenterBounds.current)) {\n interactiveMap?.current?.fitBounds(reCenterBounds.current, {\n padding: mobile ? 30 : root.querySelector('.map-timeline-overlay').classList.contains('open') ? { left: (window.innerWidth * 0.2), top: 100, right: 100, bottom: 100 } : 100\n });\n } else {\n interactiveMap?.current?.flyTo({\n center: reCenterBounds.current,\n essential: true,\n zoom: 7\n });\n }\n }, [interactiveMap, mobile])\n\n\n const onTimelineOpen = useCallback((isOpen) => {\n if (!isOpen && activeMarkers.length) {\n const element = timelineRefs.current[activeMarkers[0]].current;\n\n if (element) {\n const t = setTimeout(() => {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n clearTimeout(t)\n }, 400);\n }\n }\n }, [activeMarkers])\n\n\n //USEEFFECTS\n \n // change colors on map based on DTC changes\n useEffect(() => {\n if (!timelineRefs?.current || !mapMarkerRefs?.current) return;\n\n const updatePinColor = (pins, color) => {\n const pinsList = Array.isArray(pins) ? pins : [pins];\n\n pinsList.forEach((pin) => {\n if (pin) {\n pin.classList.remove('dark-text', 'light-text');\n pin.classList.add(color);\n\n const pinMarker = pin.closest('.pin-marker');\n if (pinMarker) {\n pinMarker.style.setProperty(\"background-color\", new TinyColor(colors?.accent).toHexString());\n }\n }\n });\n };\n\n const getValidPinsTimelineAndMap = (refs) => {\n return refs\n .map(ref => ref?.current)\n .filter(ref => {\n const pin = ref?.querySelector('.pin-marker p');\n return pin && \n !ref.classList.contains('boat') && \n !ref.classList.contains('train') && \n !ref.classList.contains('transfer') && \n (pin.classList.contains('light-text') || pin.classList.contains('dark-text'));\n })\n .map(ref => ref.querySelector('.pin-marker p'));\n };\n \n const activeTimelineCard = timelineRefs.current.find((timelineRef) =>\n timelineRef.current.classList.contains('active')\n );\n \n if (activeTimelineCard?.current) {\n activeTimelineCard.current.classList.remove('dark-text', 'light-text');\n activeTimelineCard.current.classList.add(activeTextColor);\n }\n\n const timelinePins = getValidPinsTimelineAndMap(timelineRefs.current);\n updatePinColor(timelinePins, activePinTextColor);\n\n const mapPins = getValidPinsTimelineAndMap(mapMarkerRefs.current);\n updatePinColor(mapPins, activePinTextColor);\n\n overlappingPinsRefs.current.forEach(element => updatePinColor(element.current.querySelector('.primary-marker p'), activePinTextColor))\n }, [timelineRefs, mapMarkerRefs, activePinTextColor, activeTextColor, colors?.accent]); \n\n useEffect(() => {\n setMapConfig({\n overlappingPinsOptions: {\n pinStyles: {\n primaryPin: {\n color: activePinTextColor\n },\n secondaryPin: {},\n secondaryPinWrapper: {\n backgroundColor: new TinyColor(`#${colors?.accent}`).setAlpha(0.3)\n }\n }\n },\n mapStyles: { position: 'relative', width: '100%', height: '100%' },\n maxZoom: 14,\n showControls: true,\n mapFont: basicData?.theme?.headings_font,\n initialViewState: {\n fitBoundsOptions: {\n padding: mobile ? 30 : { left: (!mobile ? window.innerWidth * 0.2 : 100), top: 100, right: 100, bottom: 100 }\n }\n }\n })\n }, [activePinTextColor, basicData?.theme?.headings_font, colors?.accent, mobile])\n\n\n useEffect(() => {\n setTimelineConfig({\n showTimeline: true,\n timeLineOptions: {\n alignment: \"left\",\n buttonLabel: 'Show Route Info',\n showToggle: !mobile,\n showRecenter: true,\n isOpen: !activeMarkers.length,\n timelineStyles: {\n backgroundColor: new TinyColor(`#${colors?.secondary}`).setAlpha(0.3)\n }\n }\n })\n }, [colors?.secondary, mobile, activeMarkers?.length])\n\n\n useEffect(() => {\n if (activeOverlappingPins) {\n const groupRef = activeOverlappingPins.markerGroup?.current;\n const color = new TinyColor(`#${colors?.accent}`).tint(60).toHexString();\n\n if (groupRef) {\n groupRef.firstChild.querySelector('.pin-marker').querySelector('p').textContent = activeOverlappingPins.markerData?.letter;\n groupRef.firstChild.querySelector('.primary-marker').classList.add('active');\n const isSameGroup = activeOverlappingPins.overlappingPinsIndex === prevGroup.current?.overlappingPinsIndex;\n\n if (!isSameGroup && prevGroup.current) {\n const prevMarker = prevGroup?.current?.markerGroup?.current;\n\n if (prevMarker) {\n prevMarker.firstChild.querySelector('.primary-marker').classList.remove('active');\n }\n }\n\n if (activeOverlappingPins.overlappingPinsIndex > prevGroup.current.overlappingPinsIndex && isSameGroup) {\n groupRef.firstChild.lastChild.style.transform = `translateX(${activeOverlappingPins.overlappingPinMarkerIndex * 40}px)`\n\n } else {\n groupRef.firstChild.lastChild.style.transform = `translateX(-${activeOverlappingPins.overlappingPinMarkerIndex * 40}px)`\n }\n }\n\n if (activeOverlappingPins?.overlappingPinsIndex !== null) {\n const activeGroup = overlappingPinsRefs.current[activeOverlappingPins?.overlappingPinsIndex];\n\n if (activeGroup) {\n const secondaryMarkers = activeGroup.current.querySelector('.secondary-markers').querySelectorAll('.icon');\n secondaryMarkers.forEach((el) => {\n el.style.setProperty(\"background-color\", color);\n })\n\n overlappingPinsRefs.current.forEach((group, i) => {\n if (i !== activeOverlappingPins?.overlappingPinsIndex) {\n const inactiveMarkers = group.current.querySelectorAll('.icon');\n\n inactiveMarkers.forEach((el) => {\n el.style.setProperty(\"background-color\", color);\n })\n }\n })\n } else {\n overlappingPinsRefs.current.forEach((group, i) => {\n const inactiveMarkers = group.current.querySelectorAll('.icon');\n\n inactiveMarkers.forEach((el) => {\n el.style.setProperty(\"background-color\", color);\n })\n })\n }\n } else {\n overlappingPinsRefs.current.forEach((group, i) => {\n const inactiveMarkers = group.current.querySelectorAll('.icon');\n group.current.querySelector('.primary-marker').classList.remove('active');\n\n inactiveMarkers.forEach((el) => {\n el.style.setProperty(\"background-color\", color);\n })\n })\n }\n\n prevGroup.current = activeOverlappingPins\n }\n }, [activeOverlappingPins, colors?.accent])\n\n\n //On map tab click the activeMarkers are changed\n useEffect(() => {\n if (interactiveMap && activeMarkers.length) {\n if (timelineRefs?.current && mapMarkerRefs?.current) {\n const marker = markersStore?.filter(x => x.index === activeMarkers[0]);\n const activeTimelineElement = timelineRefs?.current[activeMarkers[0]];\n const activeRouteElement = mapMarkerRefs?.current[activeMarkers[0]];\n\n if (marker) {\n const leg = basicData?.trip_summary?.legs.filter(x => x.id === marker[0]?.leg_id);\n const accommodations = basicData?.accommodations;\n\n if (overlappingPinsRefs?.current) {\n handleOverlappingPinActiveState(markerState[activeMarkers[0]]);\n }\n\n if (leg) {\n const accommodation = accommodations[leg[0].accommodation_id];\n\n if (accommodation) {\n const coords = [[accommodation.longitude], [accommodation.latitude]]\n reCenterBounds.current = coords;\n interactiveMap?.current?.flyTo({\n center: coords,\n essential: true,\n zoom: 7\n });\n }\n\n setTimelineConfig(prev => ({\n ...prev,\n timeLineOptions: {\n ...prev?.timeLineOptions,\n isOpen: false,\n },\n }))\n }\n }\n\n setActiveMarkerCollection(activeMarkers)\n\n if (activeTimelineElement && activeRouteElement) {\n timelineRefs.current.map(x => x.current?.classList?.remove('active', activeTextColor));\n activeTimelineElement.current.classList.add('active', activeTextColor);\n mapMarkerRefs.current?.map(x => x.current?.children[0]?.classList?.remove('active'));\n\n if (activeRouteElement.current?.classList.contains('marker-content')) {\n activeRouteElement.current?.children[0].classList.add('active');\n }\n }\n }\n }\n }, [activeMarkers, interactiveMap, activeTextColor, basicData?.accommodations, basicData?.trip_summary?.legs, handleOverlappingPinActiveState, markersStore, markerState])\n\n\n useEffect(() => {\n if (basicData && layerData?.current?.length === 0 && markerData?.current?.length === 0) {\n const legs = basicData?.trip_summary?.legs;\n const routes = basicData?.trip_summary?.routes;\n const accommodations = basicData?.accommodations;\n const destinations = basicData?.destinations;\n\n let letterIndex = 0;\n\n legs?.forEach((leg, i) => {\n let legRoutes = [];\n let endLegRoutes = [];\n let initialRoutes = routes?.filter(x => x.start_leg_id === 0 && x.end_leg_id === leg.id); // routes before first accommodation;\n initialRoutes?.forEach((route) => { createRoute(leg, route) });\n\n //Accommodation markers are created\n if (leg?.accommodation_id) {\n const accommodation = accommodations[leg.accommodation_id];\n const tumbnail = accommodation?.images ? safeImageUrl(REACT_APP_RESOURCE_DOMAIN, accommodation?.images[0], 380, 250, \"c\") : '';\n const letter = getLetters(letterIndex)\n\n //Igonore mobile legs if they have accommodations - We only want the routes\n if (leg.type !== \"Mobile\") {\n const routeFallback = routes?.find(x => x.start_leg_id !== 0 && x.end_leg_id !== 0 && (x.start_leg_id === leg.id || x.end_leg_id === leg.id));\n \n markerData.current = [...markerData?.current, {\n id: `pin-marker-${markerIndex}`,\n latitude: accommodation?.latitude || routeFallback?.end_content_entity_location[0] || 0,\n longitude: accommodation?.longitude || routeFallback?.end_content_entity_location[1] || 0,\n name: accommodation?.name,\n elementClass: `pin-marker pin-marker-${markerIndex} standard-accommodation`,\n type: 'pin',\n accommodation_id: leg.accommodation_id,\n element_id: `destination-${leg.id}-${leg.destination_id}`,\n leg_id: leg.id,\n markerIndex: markerIndex,\n letterIndex: letterIndex,\n letter: letter,\n children: {\n mapChildren:\n
\n

{letter}

\n
,\n timelineChildren: <>\n
\n

{letter}

\n
\n
\n {tumbnail &&\n \"\"\n }\n\n
\n

{accommodations[leg.accommodation_id]?.name}

\n\n {(accommodation.category || leg.nights) &&\n

{accommodation.category ? {accommodation.category} • : ''} {leg.nights && {leg.nights} {leg.nights === 1 ? Night : Nights}}

\n }\n
\n\n
\n \n }\n }]\n\n //Add dummy null values to maintain indexing\n layerData.current = [...layerData.current, {\n geoJson: null,\n layerStyles: null,\n }]\n\n letterIndex++;\n markerIndex++;\n\n legRoutes = routes?.filter(x => x.start_leg_id !== 0 && x.end_leg_id !== 0 && x.start_leg_id === leg.id);\n legRoutes?.forEach((route) => {createRoute(leg, route); });\n\n } else if (leg.type === \"Mobile\") {\n\n if (leg.stops) {\n\n leg.stops?.forEach((legStop,index) => {\n const letter = getLetters(letterIndex)\n const route = routes?.find(route => route.start_leg_id === leg.id && route.start_day === legStop.end_day);\n const destination = destinations[legStop.destination_id];\n const mobileRouteFirstInstance = routes?.find(route => route.start_leg_id === leg.id);\n \n if (accommodation.category !== 'Train') {\n legRoutes = routes?.filter(route => route.start_leg_id !== 0 && route.end_leg_id !== 0 && route.start_leg_id === leg.id && route.start_leg_id === route.end_leg_id && route.to === legStop.name);\n legRoutes?.forEach((route) => {createRoute(leg, route); });\n }\n\n if(index === 0) {\n if (accommodation.category !== 'Mobile Safari') {\n legRoutes = routes?.filter(route => route.start_leg_id !== 0 && route.end_leg_id !== 0 && route.start_leg_id === leg.id && route.start_leg_id === route.end_leg_id);\n legRoutes?.forEach((route) => {createRoute(leg, route); });\n }\n \n if (accommodation.category !== 'Train' && accommodation.category !== 'Cruise Ship') {\n markerData.current = [...markerData?.current, {\n id: `pin-marker-${markerIndex}`,\n latitude: destination.latitude || 0,\n longitude: destination.longitude || 0,\n name: accommodation?.name,\n elementClass: `pin-marker pin-marker-${markerIndex} ${mobileRouteFirstInstance?.mode?.toLowerCase()} disabled`,\n type: 'pin',\n accommodation_id: leg.accommodation_id,\n element_id: `destination-${leg.id}-${legStop.destination_id}`,\n leg_id: leg.id,\n markerIndex: markerIndex,\n letterIndex: letterIndex,\n letter: letter,\n children: {\n mapChildren:\n
\n

{letter}

\n
,\n timelineChildren: <>\n
\n \n
\n
\n {tumbnail &&\n \"\"\n }\n\n
\n {accommodation.name &&

{accommodation.name}

}\n {(accommodation.category || leg.nights) &&

{accommodation.category ? {accommodation.category} • : ''} {leg.nights && {leg.nights} {leg.nights === 1 ? Night : Nights}}

}\n\n
\n
\n \n }\n }]\n\n layerData.current = [...layerData.current, {\n geoJson: null,\n layerStyles: null,\n }]\n\n markerIndex++;\n }\n }\n\n markerData.current = [...markerData?.current, {\n id: `pin-marker-${markerIndex}`,\n latitude: route?.start_content_entity_location[0] || destination.latitude || 0,\n longitude: route?.start_content_entity_location[1] || destination.longitude || 0,\n name: accommodation?.name,\n elementClass: `pin-marker pin-marker-${markerIndex} ${mobileRouteFirstInstance?.mode?.toLowerCase()}`,\n type: 'pin',\n accommodation_id: leg.accommodation_id,\n element_id: `destination-${leg.id}-${legStop.destination_id}`,\n leg_id: leg.id,\n markerIndex: markerIndex,\n letterIndex: letterIndex,\n letter: letter,\n children: {\n mapChildren:\n
\n

{letter}

\n
,\n timelineChildren: <>\n
\n

{letter}

\n
\n
\n
\n

{legStop.type}

\n {(legStop.name || destinations[legStop.destination_id]?.name) && (\n

{legStop.name || destinations[legStop.destination_id]?.name}

\n )}\n
\n
\n \n }\n }]\n \n //Add dummy null values to maintain indexing\n layerData.current = [...layerData.current, {\n geoJson: null,\n layerStyles: null,\n }]\n \n letterIndex++;\n markerIndex++; \n\n if (index === leg.stops.length-1) {\n legRoutes = routes?.filter(route => route.start_leg_id !== 0 && route.end_leg_id !== 0 && route.start_leg_id === leg.id && route.start_leg_id !== route.end_leg_id);\n legRoutes?.forEach((route) => {createRoute(leg, route); });\n }\n });\n } else {\n legRoutes = routes?.filter(route => route.start_leg_id !== 0 && route.end_leg_id !== 0 && route.start_leg_id === leg.id && (route.start_leg_id === route.end_leg_id || route.start_leg_id !== route.end_leg_id));\n legRoutes?.forEach((route) => {createRoute(leg, route); });\n }\n }\n \n } else if (!leg.accommodation_id && leg.id !== 0) { \n // OwnArrangement pins and overnightTravel\n const accommodation = '';\n const tumbnail = '';\n const letter = getLetters(letterIndex);\n\n if (leg.type === 'OvernightTravel') {\n markerData.current = [...markerData?.current, {\n id: `pin-marker-${markerIndex}`,\n latitude: i * 10 / 100, // fixes overlapping pins issue\n longitude: i * 10 / 100, // fixes overlapping pins issue\n name: leg.name,\n elementClass: `pin-marker pin-marker-${markerIndex} disabled`,\n type: 'pin',\n accommodation_id: null,\n element_id: `destination-${leg.id}`,\n leg_id: leg.id,\n markerIndex: markerIndex,\n letterIndex: letterIndex,\n letter: letter,\n children: {\n mapChildren:\n <>\n \n ,\n timelineChildren: <>\n
\n

{letter}

\n
\n
\n {tumbnail &&\n \"\"\n }\n
\n

{leg.name}

\n \n {(accommodation.category || leg.nights) &&\n

{accommodation.category ? {accommodation.category} • : ''} {leg.nights && {leg.nights} {leg.nights === 1 ? Night : Nights}}

\n }\n
\n
\n \n }\n }];\n \n //Add dummy null values to maintain indexing\n layerData.current = [...layerData.current, {\n geoJson: null,\n layerStyles: null,\n }]\n \n // letterIndex++;\n markerIndex++;\n } else {\n markerData.current = [...markerData?.current, {\n id: `pin-marker-${markerIndex}`,\n latitude: i * 10 / 100, // fixes overlapping pins issue\n longitude: i * 10 / 100, // fixes overlapping pins issue\n name: leg.name,\n elementClass: `pin-marker pin-marker-${markerIndex}`,\n type: 'pin',\n accommodation_id: null,\n element_id: `destination-${leg.id}`,\n leg_id: leg.id,\n markerIndex: markerIndex,\n letterIndex: letterIndex,\n letter: letter,\n children: {\n mapChildren:\n <>\n \n ,\n timelineChildren: <>\n
\n

{letter}

\n
\n
\n {tumbnail &&\n \"\"\n }\n
\n

{leg.name}

\n \n {(accommodation.category || leg.nights) &&\n

{accommodation.category ? {accommodation.category} • : ''} {leg.nights && {leg.nights} {leg.nights === 1 ? Night : Nights}}

\n }\n
\n
\n \n }\n }];\n \n //Add dummy null values to maintain indexing\n layerData.current = [...layerData.current, {\n geoJson: null,\n layerStyles: null,\n }]\n \n letterIndex++;\n markerIndex++;\n }\n\n legRoutes = routes?.filter(route => route.start_leg_id !== 0 && route.end_leg_id !== 0 && route.start_leg_id === leg.id);\n legRoutes?.forEach((route) => {createRoute(leg, route); });\n }\n \n endLegRoutes = routes?.filter(route => route.end_leg_id === 0 && route.start_leg_id === leg.id);\n endLegRoutes?.forEach((route) => { createRoute(leg, route) });\n })\n\n setMarkerState(markerData.current);\n setLayerState(layerData.current)\n }\n }, [basicData, activePinTextColor, createRoute, markerIndex, dispatch, colors.accent, REACT_APP_RESOURCE_DOMAIN])\n\n\n //Update redux for access to marker indexes etc outside of the map\n useEffect(() => {\n if (!markersStore?.length) {\n dispatch(setMapMarkers(markerState?.map((m, i) => {\n return { id: m.element_id, index: i, leg_id: m.leg_id }\n })))\n }\n }, [markerState, dispatch, markersStore])\n\n\n useEffect(() => {\n if (basicData && layerState?.length) {\n let boundCoords = layerState.filter(r => r.geoJson).map((route) => {\n return route?.geoJson?.features.map((feature) => {\n return feature?.geometry?.coordinates;\n })\n }).flat(2);\n\n if (!boundCoords?.length) {\n boundCoords = markerState.map((marker) => {\n return [marker.longitude, marker.latitude]\n });\n }\n\n const initalBounds = new mapboxgl.LngLatBounds(\n boundCoords[0],\n boundCoords[0]\n );\n\n for (const coord of boundCoords) {\n initalBounds.extend(coord);\n };\n\n if (initalBounds) {\n initialBounds.current = initalBounds;\n reCenterBounds.current = initalBounds;\n\n setMapConfig(prev => ({\n ...prev,\n initialViewState: {\n bounds: initalBounds,\n fitBoundsOptions: {\n padding: mobile ? 30 : { left: (!mobile ? window.innerWidth * 0.2 : 100), top: 100, right: 100, bottom: 100 }\n }\n }\n }))\n }\n }\n }, [layerState, basicData, mobile, markerState])\n\n interactiveMap?.current?.on('resize', () => {\n interactiveMap?.current?.fitBounds(initialBounds.current, {\n padding: 30\n });\n })\n\n const onSlideUpOpen = useCallback((isOpen) => {\n if (isOpen) {\n //Fixes bug where map is rendered in hidden container so gets default sizes\n setTimeout(() => {\n interactiveMap?.current?.resize();\n }, 0);\n }\n }, [interactiveMap])\n\n if (!Object.keys(basicData?.accommodations ?? {}).length && !Object.keys(basicData?.trip_summary?.routes ?? {}).length) return;\n\n return (\n
\n {markerState && layerState && mapConfig &&\n <>\n {mobile\n ? \n
View on the Map
\n \n
\n : \n }\n\n \n }\n
\n )\n}\n\nexport default InteractiveMapWrapper","import { useCallback, useMemo, useState } from 'react';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Lazy } from 'swiper';\n\nimport Dropdown from '@components/dropdown';\nimport SliderComponent from '@components/slider';\nimport { getSliderImages } from '@utils/Utils';\nimport { useIsMobile } from '@utils/hooks/useIsMobile';\n\nimport './style.scss';\nimport 'swiper/css/lazy';\n\nconst DropdownGalleryDescription = ({countryName = null, content, leg, sliderSizes = '65vw', contentType = \"\" }) => {\n const [swiper, setSwiper] = useState();\n const [activeItem, setActiveItem] = useState(0);\n const mobile = useIsMobile();\n\n const filteredContent = useMemo(() => {\n if (leg?.display_selected_rooms_only && contentType === \"rooms\") {\n const roomIds = leg.rooms?.map((room) => room.id) || [];\n\n return content?.filter(x => roomIds.includes(x.id));\n }\n else {\n return content;\n }\n }, [content, leg, contentType])\n\n const images = useCallback((index) => (\n filteredContent &&\n filteredContent[index] &&\n filteredContent[index].images\n ? getSliderImages(filteredContent[index].images)\n : null\n ), [filteredContent])\n\n const onSlideChange = useCallback(s => {\n setActiveItem(s.realIndex);\n }, [])\n\n const onChange = useCallback((index) => {\n swiper.slideToLoop(index, 500, true);\n }, [swiper])\n\n const header = useMemo(() => (\n filteredContent?.length === 1\n ?
{filteredContent[0].name}
\n : x.name)} value={activeItem} onChange={onChange} />\n ), [filteredContent, activeItem, onChange])\n\n const mainSwiper = useMemo(() => (\n 1}\n loopedSlides={filteredContent.length - 1}\n runCallbacksOnInit={false}\n preloadImages={true}\n modules={[Lazy]}\n lazy={{\n checkInView: false,\n enabled: true,\n loadPrevNext: false,\n }}\n onSlideChange={onSlideChange}\n onSwiper={setSwiper}\n >\n {filteredContent.map((x, i) => (\n \n {images(i) && (\n
\n \n
\n )}\n {x.description &&\n
\n }\n \n ))}\n \n ), [filteredContent, images, onSlideChange, sliderSizes])\n\n if (mobile) {\n return (\n
\n {header}\n {mainSwiper}\n
\n )\n } else {\n return (\n
\n\n {countryName && (

{countryName}

)}\n \n {\n filteredContent?.length === 1 ?
{filteredContent[0].name}
: x.name)} onChange={setActiveItem} />\n }\n\n {filteredContent[activeItem]?.description && countryName &&\n
\n }\n\n {filteredContent?.map((x, i) => {\n if (countryName && filteredContent[activeItem].name === 'overview') {\n return (\n
\n \n
\n )\n } else if (images(i) && !countryName) {\n return (\n
\n \n
\n );\n }\n else {\n return null;\n }\n })}\n\n {filteredContent[activeItem]?.description && !countryName &&\n
\n }\n
\n )\n }\n}\n\nexport default DropdownGalleryDescription;","import './style.scss';\n\nconst SectionChildContainer = ({ sticky, children, ...props }) => {\n return (\n
\n {children}\n
\n )\n}\n\nexport default SectionChildContainer;"],"names":["leg","id","legType","extendedContent","startDate","startDay","endDate","endDay","mobile","useIsMobile","destinations","useContext","BasicData","basicData","useState","renderMap","setRenderMap","activeMarkers","setActiveMarkers","markers","useSelector","state","map","mapMarkers","getContent","useCallback","destinationId","hasBasicContent","hasExtendedContent","country","filter","key","hasOwnProperty","name","replace","description","images","onTabClick","i","event","target","textContent","marker","x","closest","index","sticky","className","getFormattedDate","dangerouslySetInnerHTML","__html","title","getSliderImages","sizes","withNavigation","thumbsPosition","length","header","countryName","content","values","onChange","value","text","open","setOpen","active","setActive","capitalizeFirstLetterOfEachWord","str","toLowerCase","split","charAt","toUpperCase","slice","join","prevItem","newActive","nextItem","useEffect","onClick","onBlur","tabIndex","val","markerData","timelineRefs","config","handleMarkerClick","handleRecenterClick","onTimelineOpen","isOpen","setIsOpen","timeLineOptions","alignment","style","timelineStyles","ref","current","elementClass","children","timelineChildren","showToggle","buttonLabel","showRecenter","alt","src","crosshair","pins","mapRefs","overlappingPinsRefs","isCollapsed","setIsCollapsed","longitude","latitude","overlappingPinsOptions","pinStyles","primaryPin","markerIndex","createRef","mapChildren","secondaryPinWrapper","secondaryPin","mapboxgl","require","onMapLoad","layerData","timelineConfig","onMarkerClick","onZoom","onRecenter","useGlobalEnvConfig","REACT_APP_MAPBOX_ACCESS_TOKEN","REACT_APP_MAPBOX_STYLE","useRef","overlappingPins","setOverlappingPins","mapConfig","setMapConfig","prevIndex","Number","isInteger","zoomHandler","e","mapLoad","element","grouped","Object","r","type","reduce","acc","cur","resize","mapWrapperStyles","onLoad","reuseMaps","optimizeForTerrain","maxZoom","cooperativeGestures","interactive","pitchWithRotate","mapStyles","position","width","height","zIndex","padding","mapPadding","mapStyle","mapboxAccessToken","projection","initialViewState","zoom","logoPosition","localFontFamily","mapFont","geoJson","routeJson","data","layerStyles","group","some","p","includes","showControls","REACT_APP_RESOURCE_DOMAIN","theme","dispatch","useDispatch","colors","getColor","activeTextColor","getTextColorClass","secondary","activePinTextColor","accent","interactiveMap","setInteractiveMap","activeMarkerCollection","setActiveMarkerCollection","markerState","setMarkerState","layerState","setLayerState","timeLineConfig","setTimelineConfig","activeOverlappingPins","setactiveOverlappingPins","markersStore","prevZoom","initialBounds","reCenterBounds","mapMarkerRefs","overlappingPinsData","prevGroup","handleOverlappingPinActiveState","overlappingPinsIndex","overlappingPinMarkerIndex","forEach","gi","gmi","markerGroup","createRoute","route","layerGeometry","markerCoordinates","bearing","accommodation","thumbnail","rotateIcon","mode","variant","accommodations","accommodation_id","safeImageUrl","points","Math","floor","curve","createCurvedRoute","midPoint","routeMarkerStyle","transform","toFixed","getIcon","from","route_label","duration","start_time","end_time","distance","leg_id","getLayerStyles","getRouteColor","getLayerData","setMutedMapLayers","layerCopy","color","getLightenedColor","paint","setMutedMapMarkers","legIdToModeMap","currentMode","currentLegId","modeToUse","TinyColor","tint","toHexString","classList","contains","setProperty","markerRef","root","JSON","parse","stringify","el","remove","add","time","querySelector","prev","t","setTimeout","scrollIntoView","behavior","block","clearTimeout","line","features","geometry","lngLat","_lngLat","lng","lat","left","window","innerWidth","top","right","bottom","IntersectionObserver","entries","observer","isIntersecting","disconnect","coordinates","bounds","coord","extend","fitBounds","flyTo","center","essential","threshold","rootMargin","observe","querySelectorAll","moveLayer","mapZoom","viewState","zoomLevel","trunc","rm","document","len","parseInt","dataset","zoomlevel","tRefs","mRefs","opRefs","opData","overlappingPinsParent","getMap","_container","Array","isArray","updatePinColor","pin","pinMarker","getValidPinsTimelineAndMap","refs","activeTimelineCard","find","timelineRef","timelinePins","mapPins","backgroundColor","setAlpha","headings_font","fitBoundsOptions","showTimeline","groupRef","firstChild","letter","isSameGroup","prevMarker","lastChild","activeGroup","inactiveMarkers","activeTimelineElement","activeRouteElement","trip_summary","legs","coords","routes","letterIndex","legRoutes","initialRoutes","start_leg_id","end_leg_id","tumbnail","getLetters","routeFallback","end_content_entity_location","element_id","destination_id","getMarkerStyle","category","nights","stops","legStop","start_day","end_day","destination","mobileRouteFirstInstance","to","display","start_content_entity_location","setMapMarkers","m","boundCoords","feature","flat","initalBounds","on","onSlideUpOpen","keys","onOpen","sliderSizes","contentType","swiper","setSwiper","activeItem","setActiveItem","filteredContent","useMemo","display_selected_rooms_only","roomIds","rooms","room","onSlideChange","s","realIndex","slideToLoop","mainSwiper","slidesPerView","speed","loop","loopedSlides","runCallbacksOnInit","preloadImages","modules","Lazy","lazy","checkInView","enabled","loadPrevNext","onSwiper","nested","spaceBetween","props"],"sourceRoot":""}