@geotrekce/geotrek-rando-widget 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
  2. package/dist/cjs/geotrek-rando-widget.cjs.js.br +0 -0
  3. package/dist/cjs/geotrek-rando-widget.cjs.js.gz +0 -0
  4. package/dist/cjs/grw-app.cjs.entry.js +5 -3
  5. package/dist/cjs/grw-app.cjs.entry.js.br +0 -0
  6. package/dist/cjs/grw-app.cjs.entry.js.gz +0 -0
  7. package/dist/cjs/grw-app.cjs.entry.js.map +1 -1
  8. package/dist/cjs/grw-common-button_21.cjs.entry.js +1 -1
  9. package/dist/cjs/grw-common-button_21.cjs.entry.js.br +0 -0
  10. package/dist/cjs/grw-common-button_21.cjs.entry.js.gz +0 -0
  11. package/dist/cjs/grw-common-button_21.cjs.entry.js.map +1 -1
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/loader.cjs.js.br +0 -0
  14. package/dist/cjs/loader.cjs.js.gz +0 -0
  15. package/dist/collection/components/grw-app/grw-app.css +1 -1
  16. package/dist/collection/components/grw-app/grw-app.css.br +0 -0
  17. package/dist/collection/components/grw-app/grw-app.css.gz +0 -0
  18. package/dist/collection/components/grw-app/grw-app.js +22 -2
  19. package/dist/collection/components/grw-app/grw-app.js.br +0 -0
  20. package/dist/collection/components/grw-app/grw-app.js.gz +0 -0
  21. package/dist/collection/components/grw-app/grw-app.js.map +1 -1
  22. package/dist/collection/components/grw-filters/grw-filters.css +1 -1
  23. package/dist/collection/components/grw-filters/grw-filters.css.br +0 -0
  24. package/dist/collection/components/grw-filters/grw-filters.css.gz +0 -0
  25. package/dist/esm/geotrek-rando-widget.js +1 -1
  26. package/dist/esm/geotrek-rando-widget.js.br +0 -0
  27. package/dist/esm/geotrek-rando-widget.js.gz +0 -0
  28. package/dist/esm/grw-app.entry.js +5 -3
  29. package/dist/esm/grw-app.entry.js.br +0 -0
  30. package/dist/esm/grw-app.entry.js.gz +0 -0
  31. package/dist/esm/grw-app.entry.js.map +1 -1
  32. package/dist/esm/grw-common-button_21.entry.js +1 -1
  33. package/dist/esm/grw-common-button_21.entry.js.br +0 -0
  34. package/dist/esm/grw-common-button_21.entry.js.gz +0 -0
  35. package/dist/esm/grw-common-button_21.entry.js.map +1 -1
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/esm/loader.js.br +0 -0
  38. package/dist/esm/loader.js.gz +0 -0
  39. package/dist/esm-es5/geotrek-rando-widget.js +1 -1
  40. package/dist/esm-es5/geotrek-rando-widget.js.br +0 -0
  41. package/dist/esm-es5/geotrek-rando-widget.js.gz +0 -0
  42. package/dist/esm-es5/geotrek-rando-widget.js.map +1 -1
  43. package/dist/esm-es5/grw-app.entry.js +1 -1
  44. package/dist/esm-es5/grw-app.entry.js.br +0 -0
  45. package/dist/esm-es5/grw-app.entry.js.gz +0 -0
  46. package/dist/esm-es5/grw-app.entry.js.map +1 -1
  47. package/dist/esm-es5/grw-common-button_21.entry.js +1 -1
  48. package/dist/esm-es5/grw-common-button_21.entry.js.br +0 -0
  49. package/dist/esm-es5/grw-common-button_21.entry.js.gz +0 -0
  50. package/dist/esm-es5/grw-common-button_21.entry.js.map +1 -1
  51. package/dist/esm-es5/loader.js +1 -1
  52. package/dist/esm-es5/loader.js.br +0 -0
  53. package/dist/esm-es5/loader.js.gz +0 -0
  54. package/dist/esm-es5/loader.js.map +1 -1
  55. package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
  56. package/dist/geotrek-rando-widget/geotrek-rando-widget.css.br +0 -0
  57. package/dist/geotrek-rando-widget/geotrek-rando-widget.css.gz +0 -0
  58. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  59. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.br +0 -0
  60. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.gz +0 -0
  61. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.map +1 -1
  62. package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js +2 -0
  63. package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.br +0 -0
  64. package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.gz +0 -0
  65. package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.map +1 -0
  66. package/dist/geotrek-rando-widget/p-b02ae30d.system.js +1 -1
  67. package/dist/geotrek-rando-widget/p-b02ae30d.system.js.br +0 -0
  68. package/dist/geotrek-rando-widget/p-b02ae30d.system.js.gz +0 -0
  69. package/dist/geotrek-rando-widget/p-b02ae30d.system.js.map +1 -1
  70. package/dist/geotrek-rando-widget/{p-e2a73eac.entry.js → p-c171e0d7.entry.js} +2 -2
  71. package/dist/geotrek-rando-widget/p-c171e0d7.entry.js.br +0 -0
  72. package/dist/geotrek-rando-widget/p-c171e0d7.entry.js.gz +0 -0
  73. package/dist/geotrek-rando-widget/p-c171e0d7.entry.js.map +1 -0
  74. package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js +2 -0
  75. package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.br +0 -0
  76. package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.gz +0 -0
  77. package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.map +1 -0
  78. package/dist/geotrek-rando-widget/{p-05f3277d.system.entry.js → p-ed66cd9d.system.entry.js} +2 -2
  79. package/dist/geotrek-rando-widget/p-ed66cd9d.system.entry.js.br +0 -0
  80. package/dist/geotrek-rando-widget/p-ed66cd9d.system.entry.js.gz +0 -0
  81. package/dist/geotrek-rando-widget/p-ed66cd9d.system.entry.js.map +1 -0
  82. package/dist/types/components/grw-app/grw-app.d.ts +1 -0
  83. package/dist/types/components.d.ts +2 -0
  84. package/package.json +1 -1
  85. package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.br +0 -0
  86. package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.gz +0 -0
  87. package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.map +0 -1
  88. package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js +0 -2
  89. package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.br +0 -0
  90. package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.gz +0 -0
  91. package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.map +0 -1
  92. package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.br +0 -0
  93. package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.gz +0 -0
  94. package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.map +0 -1
  95. package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js +0 -2
  96. package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.br +0 -0
  97. package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.gz +0 -0
  98. package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["grwCommonButtonCss","GrwCommonButton","prototype","render","_this_1","this","h","Host","style","fontFamily","part","class","onClick","action","translate","icon","name","grwExtendedFabCss","GrwExtendedFab","display","grwFiltersCss","GrwFilters","handleEraseTreksFilters","treksFilters","forEach","filter","state","property","currentFilter","selected","selectedActivitiesFilters","selectedThemesFilters","selectedLocationFilters","currentTreks","handleTreksFiltersAndSearch","resetFilter","emit","handleOkTreksFilters","handleFilters","handleSelectedSegment","selectedSegment","handleSegment","segment","mode","some","length","touristicContentsFilters","touristicEventsFilters","handleEraseTouristicContentsFilters","currentTouristicContents","handleTouristicContentsFiltersAndSearch","handleOkTouristicContentsFilters","handleEraseTouristicEventsFilters","currentTouristicEvents","handleTouristicEventsFiltersAndSearch","handleOkTouristicEventsFilters","treksWithinBounds","concat","language","treks","trek","erase","ok","home","themes","location","key","exportparts","filterName","practice","filterType","filterNameProperty","filterPlaceholder","placeholderPractices","difficulty","duration","elevation","routes","accessibility","activities","placeholderThemes","districts","crossedCities","placeholderCrossedCities","touristicContentsWithinBounds","touristicContents","touristicContent","services","category","touristicEventsWithinBounds","touristicEvents","touristicEvent","type","placeholderType","grwLoaderCss","GrwLoader","colorPrimaryContainer","colorOnPrimaryContainer","t","define","amd","L","extend","DomUtil","setTransform","o","e","i","n","a","s","Point","_round","apply","arguments","rotateFrom","TRANSFORM","x","y","setPosition","_leaflet_pos","Browser","any3d","left","top","DEG_TO_RAD","Math","PI","RAD_TO_DEG","Draggable","include","rotate","sin","cos","r","DivOverlay","getEvents","_updatePosition","_map","_rotate","_zoomAnimated","_getAnchor","getPosition","_container","subtract","rotatedPointToMapPanePoint","add","Popup","_animateZoom","_adjustPan","options","autoPan","_panAnim","_inProgress","_autopanning","parseInt","getStyle","offsetHeight","_containerWidth","_containerLeft","_containerBottom","_add","_getMapPanePos","point","autoPanPadding","autoPanPaddingTopLeft","autoPanPaddingBottomRight","_","getSize","d","p","keepInView","fire","panBy","Tooltip","_latLngToNewLayerPoint","_latlng","zoom","center","_setPosition","latLngToLayerPoint","Icon","_setIconStyles","shadowAnchor","iconAnchor","divideBy","className","marginLeft","marginTop","width","height","Marker","mergeOptions","rotation","rotateWithView","scale","_onDrag","_marker","_shadow","_icon","mapPanePointToRotatedPoint","layerPointToLatLng","latlng","oldLatLng","_oldLatLng","setLatLng","_onDragEnd","update","_initInteraction","dragging","enabled","Object","getPrototypeOf","disable","assign","bind","enable","_setPos","_bearing","_zIndex","zIndexOffset","_resetZIndex","setRotation","GridLayer","updateWhenIdle","_onRotate","Util","throttle","_onMoveEnd","updateInterval","_getTiledPixelBounds","_getNewPixelBounds","_tileZoom","Renderer","_update","onAdd","version","classList","_updateTransform","getZoomScale","_zoom","_topLeft","_bounds","_getPaddedPixelBounds","padding","min","_center","getCenter","getZoom","Map","bearing","initialize","setBearing","containerPointToLayerPoint","_getRotatePanePos","layerPointToContainerPoint","_subtract","mapBoundsToContainerBounds","getPixelOrigin","project","getNorthWest","getNorthEast","getSouthWest","getSouthEast","bounds","max","getBounds","LatLngBounds","containerPointToLatLng","wrapNum","_getPixelCenter","_rotatePane","_pivot","_rotatePanePos","getBearing","_initPanes","_panes","_paneRenderers","_mapPane","createPane","_norotatePane","markerZoomAnimation","addClass","markerPane","shadowPane","panInside","abs","toFixed","paddingTopLeft","paddingBottomRight","getBoundingClientRect","latLngToContainerPoint","contains","_enforcingBounds","t_1","e_1","panTo","getBoundsZoom","latLngBounds","getMinZoom","getMaxZoom","zoomSnap","l","getScaleZoom","round","ceil","floor","_getCenterOffset","_getNewPixelOrigin","_divideBy","_animatingZoom","_animateToZoom","Bounds","multiplyBy","_handleGeolocationResponse","_leaflet_id","coords","latitude","longitude","heading","LatLng","toBounds","accuracy","_locateOptions","setView","maxZoom","timestamp","CompassBearing","Handler","window","__deviceOrientationEvent","_throttled","_onDeviceOrientation","addHooks","DomEvent","on","removeHooks","off","webkitCompassHeading","alpha","absolute","orientation","addInitHook","trackContainerMutation","ContainerMutation","_observer","MutationObserver","invalidateSize","observe","getContainer","childList","attributes","characterData","subtree","attributeFilter","disconnect","bounceAtZoomLimits","TouchGestures","touchRotate","touchZoom","_onTouchStart","touches","_zooming","_rotating","mouseEventToContainerPoint","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","distanceTo","_startZoom","_startTheta","atan","_startBearing","_moved","_stop","document","_onTouchMove","_onTouchEnd","preventDefault","_limitZoom","unproject","_moveStart","cancelAnimFrame","_animRequest","_move","pinch","requestAnimFrame","zoomAnimation","_resetView","TouchRotate","touchGestures","shiftKeyRotate","ShiftKeyRotate","_handleShiftScroll","shiftKey","scrollWheelZoom","sign","deltaY","touch","TouchZoom","removeClass","Control","Rotate","position","closeOnZeroBearing","create","_arrow","backgroundImage","cursor","backgroundRepeat","backgroundPosition","_link","appendChild","href","title","stopPropagation","_handleMouseDown","stop","_cycleState","_refocusOnMap","_restyle","_follow","_canFollow","onRemove","dragstartX","pageX","dragstartY","pageY","_handleMouseDrag","_handleMouseUp","clientX","compassBearing","transform","backgroundColor","control","rotateControl","addControl","factory","module","exports","require$$0","Locate","LDomUtilApplyClassesMethod","method","element","classNames","split","call","addClasses","el","names","removeClasses","LocationMarker","setOptions","createIcon","opt","color","undefined","weight","fillColor","fillOpacity","opacity","_getIconSVG","_locationIcon","divIcon","html","svg","iconSize","w","setIcon","radius","s2","setStyle","CompassMarker","_heading","setHeading","depth","path","svgstyle","LocateControl","layer","keepCurrentZoomLevel","initialZoomLevel","getLocationBounds","locationEvent","flyTo","clickBehavior","inView","outOfView","inViewNotFollowing","returnToPrevBounds","cacheLocation","drawCircle","drawMarker","showCompass","markerClass","compassClass","circleStyle","markerStyle","compassStyle","followCircleStyle","followMarkerStyle","followCompassStyle","iconLoading","iconElementTag","textElementTag","circlePadding","metric","createButtonCallback","container","link","strings","setAttribute","text","textContent","parentNode","onLocationError","err","alert","message","onLocationOutsideMapBounds","outsideMapBoundsMsg","showPopup","metersUnit","feetUnit","popup","locateOptions","Infinity","watch","map","_layer","LayerGroup","addTo","_event","_compassHeading","_prevBounds","linkAndIcon","ev","_onClick","_resetVariables","_unload","_justClicked","wasFollowing","_isFollowing","_userPanned","_userZoomed","_active","behaviors","behavior","f","flyToBounds","fitBounds","start","_updateContainerStyle","_activate","_drawMarker","_deactivate","_cleanClasses","_removeMarker","stopFollowing","locate","_onLocationFound","_onLocationError","_onZoom","_onZoomEnd","oriAbs_1","_this_2","deviceorientation_1","DeviceOrientationEvent","requestPermission","then","permissionState","stopLocate","_isOutsideMapBounds","_ignoreEvent","_drawCompass","cStyle","_compass","removeFrom","_circle","circle","setRadius","distance","unit","mStyle","getPopupText","template","bindPopup","_popup","clearLayers","_setCompassHeading","angle","isNaN","parseFloat","isFinite","_onCompassNeedsCalibration","code","lat","lng","pad","getLatLng","maxBounds","_setClasses","locales","locale","registerLocale","setLocale","i18n","string","data","toString","padStart","m","target","download","body","click","removeChild","Promise","resolve","createElement","addEventListener","once","src","head","classed","beginPath","moveTo","Path2D","attr","strokeStyle","fillStyle","lineWidth","globalCompositeOperation","globalAlpha","stroke","fill","closePath","every","c","u","setProperty","v","g","insertAdjacentElement","querySelector","b","k","hasClass","random","substr","M","C","freeze","__proto__","formatTime","saveFile","lazyLoader","drawCanvas","clamp","toggleClass","replaceClass","toggleStyle","toggleEvent","append","insert","setAttributes","select","randomId","each","A","lightblue","area","magenta","yellow","purple","steelblue","red","lime","line","S","xAttr","yAttr","scaleX","scaleY","interpolation","d3","curve","xDiagCoord","y0","y1","z","strokeColor","strokeOpacity","D","tickSize","tickPadding","axis","ticks","tickFormat","label","labelX","labelY","onAxisMount","replace","toUpperCase","join","F","E","theme","xCoord","yCoord","labels","item","node","keys","sort","order","size","value","selectAll","T","margins","toLowerCase","ownerSVGElement","dispatch","detail","legend","bottom","I","getBBox","webkit","O","symbolTriangle","exit","remove","enter","merge","symbol","N","datum","pos","y2","x2","right","P","forceBounds","extent","B","G","range","scaleLinear","domain","H","grid","brush","tooltip","ruler","getContext","brushX","mask","canvas","context","panes","utils","_resize","test","navigator","platform","userAgent","_width","_height","pane","get","X","Colors","Area","Path","Axis","Grid","PositionMarker","LegendItem","Ruler","CheckPoint","Domain","Range","Scale","Bisect","bisector","invert","Chart","U","Class","includes","Evented","Mixin","Events","_data","_props","scales","paths","areas","grids","axes","legendItems","tooltipItems","_scales","_domains","_ranges","_paths","_brushEnabled","_zoomEnabled","zooming","_chart","_grid","_area","_point","_axis","_legend","_tooltip","_ruler","_initScale","_mask","_context","_brush","_drag","drag","_initInteractions","_maskGaps","push","index","_updateScale","_updateArea","_updateAxis","_updateLegend","_updateClipper","clear","_resetDrag","_hideDiagramIndicator","clearRect","_drawPath","preferCanvas","_hasActiveLayers","_initBrush","sourceEvent","pointers","_findIndexForXCoord","button","selection","dragstart","dragend","_initClipper","scaleExtent","translateExtent","buttons","_x","rescaleX","time","_initRuler","_initLegend","format","_y","imperial","_findCoordsForY","_registerAxisScale","xAxisMin","xAxisMax","yAxisMin","yAxisMax","altitude","_registerAreaPath","_registerAxisGrid","forceAxisBounds","xTicks","yTicks","_registerCheckPoint","_findIndexForLatLng","dist","_registerTooltip","substring","indexOf","nodes","Array","slice","reverse","reduce","_resetZoom","zoomIdentity","_showDiagramIndicator","j","Symbol","iterator","constructor","R","J","marker","markerIcon","interactive","_labels","getPane","maxElevation","getElement","Y","summary","reset","innerHTML","track_info","_registerSummary","V","autofitBounds","autohide","mobile","autohideMarker","almostover","collapsed","detached","distanceMarkers","lazy","direction","decimalsX","decimalsY","downloadLink","elevationDiv","followMarker","lazyLoadJS","polyline","lineCap","polylineSegments","reverseCoords","skipNullZCoords","slope","slopeDeltaMax","slopeRange","speed","speedDeltaMax","speedRange","timeFactor","timeFormat","timestamps","waypoints","wptIcons","wptLabels","xLabel","yLabel","zFollow","Mobile","W","Elevation","__mileFactor","__footFactor","__D3","__TOGEOJSON","__LGEOMUTIL","__LALMOSTOVER","__LDISTANCEM","addData","lazyLoad","_addData","_addLayer","_fireEvt","_initElevationDiv","isConnected","_clearChart","_layers","_clearLayers","_markers","_clearMarkers","_updateChart","_events","elechart_updated","fn","ctx","eachLayer","disableBrush","enableBrush","disableZoom","enableZoom","isValid","getZFollow","hide","featureGroup","_markedSegments","_chartEnabled","handlers","_setMapView","colors","_fixCanvasPaths","_fixTooltipSize","toGeoJSON","GeometryUtil","AlmostOver","DistanceMarkers","load","_parseFromString","_loadLayer","_loadFile","_initButton","_initChart","_initSummary","_initMarker","_initLayer","_hideMarker","_resizeChart","_rotateMarker","_keydownHandler","_updateSummary","redraw","setZFollow","show","geometry","_addGeoJSONData","coordinates","console","warn","features","_latlngs","feature","properties","meta","ele","hr","cad","atemp","coordinateProperties","props","id","_addPoint","alt","latLng","addLayer","Polyline","_addMarker","_initAlmostOverHandler","almostOver","addHandler","_mousemoveLayerHandler","_mouseoutHandler","_initDistanceMarkers","eleDiv","_initMapIntegrations","_collapse","_expand","Canvas","_fillStroke","hasLayer","outline","_updateMarker","_findItemForLatLng","_findItemForX","_xTicks","_yTicks","offsetWidth","clientWidth","_maxWidth","maxWidth","_mouseenterHandler","_dragendHandler","_mousemoveHandler","_rulerFilterHandler","_toggleChartHandler","_pane","zIndex","pointerEvents","_renderer","disableClickPropagation","disableScrollPropagation","_button","_toggle","_summary","fetch","_downloadURL","catch","geoJson","pointToLayer","desc","sym","hasOwnProperty","decodeURI","openPopup","bindTooltip","sticky","openTooltip","onEachFeature","_parseFromGeoJSONString","JSON","parse","_parseFromXMLString","trim","_prepareMultiLineStrings","_prepareAdditionalProperties","DOMParser","parseFromString","documentElement","tagName","getElementsByTagName","from","find","parentElement","pop","_registerDataAttribute","init","skipNull","splice","chart","_isFullscreen","_updateMapSegments","animate","elevation_max","setLatLngs","onclick","confirm","CustomEvent","dispatchEvent","__xTicks","__yTicks","distanceFactor","totlen","timeLabel","_timeAVGSpeed","timeAVGSpeed","speedFactor","Date","toLocaleTimeString","toLocaleDateString","toLocaleString","replaceAll","xTimeFormat","coordTimes","times","getTime","now","getTimezoneOffset","tottime","altitudeFactor","heightFactor","elevation_min","elevation_avg","altitudeDeltaMax","altitudeRange","visbile","maxele","minele","avgele","slopeLabel","ascent","descent","slope_max","slope_min","slope_avg","slop","formatNum","minslope","maxslope","avgslope","acceleration","speedLabel","speed_max","speed_min","speed_avg","minspeed","maxspeed","avgspeed","accelerationLabel","accelerationFactor","acceleration_max","acceleration_min","acceleration_avg","accelerationDeltaMax","accelerationRange","minacceleration","maxacceleration","avgacceleration","Utils","Components","enableDragging","disableDragging","loadChart","loadData","loadGPX","loadGeoJSON","loadXML","loadFile","_addGPXData","_registerFocusLabel","MarkerClusterGroup","FeatureGroup","maxClusterRadius","iconCreateFunction","clusterPane","spiderfyOnEveryZoom","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","singleMarkerMode","disableClusteringAtZoom","removeOutsideVisibleBounds","animateAddingMarkers","spiderfyShapePositions","spiderfyDistanceMultiplier","spiderLegPolylineOptions","chunkedLoading","chunkInterval","chunkDelay","chunkProgress","polygonOptions","_defaultIconCreateFunction","_featureGroup","addEventParent","_nonPointGroup","_inZoomAnimation","_needsClustering","_needsRemoving","_currentShownBounds","_queue","_childMarkerEventHandlers","_childMarkerDragStart","move","_childMarkerMoved","_childMarkerDragEnd","TRANSITION","_withAnimation","_noAnimation","_markerCluster","MarkerCluster","MarkerClusterNonAnimated","addLayers","_unspiderfy","_maxZoom","_topClusterLevel","_recalculateBounds","_refreshClustersIcons","__parent","_animationAddLayer","_animationAddLayerNonAnimated","removeLayer","removeLayers","_unspiderfyLayer","_removeLayer","clusterShow","_arraySplice","isArray","_extractNonGroupLayers","getChildCount","getAllChildMarkers","_recursivelyAddChildrenToMap","setTimeout","_gridClusters","_gridUnclustered","_noanimationUnspiderfy","_generateInitialClusters","getLayers","getLayer","stamp","_group","zoomToShowLayer","spiderfy","zoomToBounds","_maxLat","crs","projection","MAX_LATITUDE","newlatlng","_getExpandedVisibleBounds","_zoomEnd","_moveEnd","_spiderfierOnAdd","_bindEvents","_unbindEvents","_spiderfierOnRemove","_hideCoverage","getVisibleParent","_removeFromGridUnclustered","removeObject","__dragStart","_ignoreMove","isOpen","_moveChild","_childCount","_boundsNeedUpdate","_cLatLng","addObject","_childClusters","_iconNeedsUpdate","_isOrIsParent","originalEvent","relatedTarget","listens","DivIcon","_zoomOrSpiderfy","_showCoverage","keyCode","focus","_shownPolygon","_spiderfied","Polygon","getConvexHull","_mergeSplitClusters","_recursivelyRemoveChildrenFromMap","DistanceGrid","_overrideMarkerIcon","getNearObject","_addChild","_updateIcon","_enqueue","_queueTimeout","_processQueue","clearTimeout","intersects","_animationStart","_animationZoomIn","_animationZoomOut","_checkBoundsMaxLat","_mapBoundsInfinite","getNorth","_northEast","getSouth","_southWest","_addToMap","_recursively","_isSingleParent","clusterHide","_forceLayout","_recursivelyBecomeVisible","_recursivelyRestoreChildPositions","_animationEnd","_animationZoomOutSingle","_recursivelyAnimateChildrenInAndAddSelfToMap","falseFn","markerClusterGroup","_iconObj","createShadow","_setClusterCenter","_resetBounds","_wLatLng","_backupLatlng","_recursivelyAnimateChildrenIn","_restorePosition","setOpacity","_cellSize","_sqCellSize","_objectPoint","_getCoord","updateObject","eachObject","_sqDist","QuickHull","getDistant","findMostDistantPointFromBaseLine","maxPoint","newPoints","buildConvexHull","_2PI","_circleFootSeparation","_circleStartAngle","_spiralFootSeparation","_spiralLengthStart","_spiralLengthFactor","_circleSpiralSwitchover","_generatePointsSpiral","_generatePointsCircle","_animationSpiderfy","unspiderfy","_animationUnspiderfy","_preSpiderfyLatlng","setZIndexOffset","_spiderLeg","cluster","markers","SVG","_path","getTotalLength","strokeDasharray","strokeDashoffset","closePopup","_unspiderfyWrapper","_unspiderfyZoomStart","getRenderer","_unspiderfyZoomAnim","refreshClusters","_flagParentsIconsNeedUpdate","_refreshSingleMarkerModeMarkers","refreshIconOptions","defineProperty","grwMapCss","GrwMap","userLayersState","tileLayer","handleTreksWithinBoundsBind","handleTreksWithinBounds","handleTouristicContentsWithinBoundsBind","handleTouristicContentsWithinBounds","handleTouristicEventsWithinBoundsBind","handleTouristicEventsWithinBounds","class_1","onCenterOnMap","event","stepsIsInViewport","currentStepsLayer","handleLayerVisibility","descriptionIsInViewport","currentReferencePointsLayer","parkingIsInViewport","currentParkingLayer","onInformationDesksIsInViewport","currentInformationDesksLayer","sensitiveAreaIsInViewport","currentSensitiveAreasLayer","poiIsInViewport","currentPoisLayer","touristicContentsIsInViewport","currentToutisticContentsLayer","touristicEventsIsInViewport","currenttouristicEventsLayer","onCardTrekMouseOver","parentTrek","selectedTrekId","hideTrekLine","showTrekLine","addSelectedCurrentTrek","stepPopupIsOpen","selectedStepId","addSelectedCurrentStep","onCardTrekMouseLeave","trekPopupIsOpen","removeSelectedCurrentTrek","selectedCurrentStepLayer","removeSelectedCurrentStep","onTouristicContentMouseOver","touristicContentPopupIsOpen","selectedTouristicContentId","addSelectedTouristicContent","onTouristicContentMouseLeave","removeSelectedTouristicContent","onTouristicEventMouseOver","touristicEventPopupIsOpen","selectedTouristicEventId","addSelectedTouristicEvent","onTouristicEventMouseLeave","removeSelectedTouristicEvent","onTrekDownloadedSuccessConfirm","setMaxZoom","trekTilesMaxZoomOffline","onTrekDeleteSuccessConfirm","componentDidLoad","mapRef","Number","nameLayers","nameLayer","urlLayers","urlLayer","url","attributionLayers","attributionLayer","tileLayerOffline","attribution","crossOrigin","layersControl","layers","tileLayers","_f","Contract","contractContainer","contract","opts","currentTrek","addTrek","addTreks","currentTouristicContent","addTouristicContent","currentTouristicEvent","addTouristicEvent","addTouristicContents","addTouristicEvents","onChange","removeTreks","removeTouristicContents","removeTouristicEvents","removeTrek","removeTouristicContent","removeTouristicEvent","visible","handleLayersControlEvent","resetBounds","treksCurrentDepartureCoordinates","treksFeatureCollection","departure_geom","_a","practices","pictogram","imgSrc","attachments","thumbnail","_i","treksLayer","currentMapBounds","coordinate","getIcons","treksIcons_1","_g","sent","geoJSON","geoJsonPoint","autoPanOnFocus","__awaiter","getDataInStore","dataInStore","URL","createObjectURL","arrayBufferToBlob","trekDeparturePopup","trekImg","trekName","trekButton","trekCardPress","closeButton","treksMarkerClusterGroup","mapIsReady","toBBoxString","trekInStore","_t","currentTrekFeature","currentTrekLayer","parking_location","parkingImageSrc_1","getAssetPath","currentParking","advised_parking","_geoJsonPoint","parkingTooltip","parkingName","currentSensitiveAreas","currentSensitiveAreasFeatureCollection","sensitiveArea_1","sensitiveAreaTooltip","sensitiveAreaName","colorSensitiveArea","currentPois","currentPoisFeatureCollection","currentPoi","type_pictogram","poiTypes","poiType","_h","poiIcons_1","poiTooltip","poiName","trekTouristicContents","currentTouristicContentsFeatureCollection","category_pictogram","_b","touristicContentCategories","touristicContentCategory","_j","_k","toutisticContentsIcons_1","touristicContentTooltip","touristicContentName","currentTouristicEventsFeatureCollection","_c","touristicEventTypes","touristicEventType","_l","_m","toutisticEventsIcons_1","touristicEventTooltip","touristicEventName","currentInformationDesks","currentInformationDesksFeatureCollection","_o","_p","information_desks","currentInformationDesk","informationDesksIcons_1","informationDesksTooltip","informationDesksName","points_reference","currentReferencePointsFeatureCollection","index_1","parentTrekId","stepsFeatureCollection","currentTrekSteps","_d","_q","_r","stepIndex_1","elevationTranslation","elevationOptions","srcFolder","useGradient","hotline","closeBtn","edgeScale","linearGradient","elevationControl","stringify","departureArrival","departureArrivalLayer","overlays","steps","referencePoints","parking","sensitiveArea","informationPlaces","pois","addOverlay","featuresCollection","icons","getIcon","customCoordinates","trek_1","treksIcons","selectedCurrentTrekLayer","Boolean","stepIndex_2","findIndex","_layerControlInputs","userLayerState","layerId","overlay","onchange","checked","removeControl","getTrekGeometry","trekLine","colorTrekLine","touristicContentsFeatureCollection","currentToutisticContentLayer","toutisticContentIcons_1","touristicContentsCurrentCoordinates","toutisticContentsLayer","toutisticContentIcons_2","touristicContentCoordinatesPopup","touristicContentImg","touristicContentButton","touristicContentCardPress","touristicContentsMarkerClusterGroup","touristicEventsFeatureCollection","currentToutisticEventLayer","toutisticEventsIcons_2","touristicContentFeatureCollection","touristicContent_1","toutisticContentIcons","selectedTouristicContentLayer","touristicContentDeparturePopup","touristicEventsCurrentCoordinates","touristicEventsLayer","touristicEventsIcons_1","touristicEventCoordinatesPopup","touristicEventImg","touristicEventButton","touristicEventCardPress","touristicEventsMarkerClusterGroup","touristicEventFeatureCollection","touristicEvent_1","touristicEventsIcons","selectedTouristicEventLayer","touristicEventDeparturePopup","layersImageSrc","contractImageSrc","colorPrimaryApp","colorOnSurface","colorBackground","colorPoiIcon","isLargeView","ref","elevationRef","grwSearchCss","GrwSearch","onSearchChange","searchValue","onInput","placeholder","grwSegmentedSegmentCss","GrwSegmentedSegment","changeMode","grwSelectLanguageCss","GrwSelectLanguage","handleSelect","languages","toLocaleLowerCase","toLocaleUpperCase","grwSwitchCss","GrwSwitch","Mousewheel","swiper","extendParams","getWindow","mousewheel","releaseOnEdges","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","timeout","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","normalize","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","params","delta","isEnd","loop","animating","slideNext","raw","isBeginning","slidePrev","releaseScroll","handle","disableParentSwiper","closest","cssMode","targetEl","targetElContainsTarget","rtlFactor","rtlTranslate","isHorizontal","positions","getTranslate","minTranslate","maxTranslate","nested","freeMode","shift","prevEvent","newEvent_1","ignoreWheelEvents","wasBeginning","wasEnd","setTransition","setTranslate","updateProgress","updateActiveIndex","updateSlidesClasses","loopFix","byMousewheel","firstEvent","snapToThreshold_1","nextTick","slideToClosest","snapToThreshold","autoplay","autoplayDisableOnInteraction","returnValue","events","wrapperEl","removeEventListener","Scrollbar","getDocument","isTouched","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","lockClass","dragClass","scrollbarDisabledClass","horizontalClass","verticalClass","dragEl","rtl","progress","progressLoop","newSize","newPos","transitionDuration","updateSize","virtualSize","slidesOffsetBefore","centeredSlides","snapGrid","watchOverflow","isLocked","getPointerPosition","clientY","setDragPosition","positionRatio","elementOffset","onDragStart","onDragMove","onDragEnd","activeListener","passiveListeners","passive","capture","passiveListener","eventMethod","enableDraggable","disableDraggable","swiperEl","createElementIfNotDefined","originalParams","isElement","shadowRoot","querySelectorAll","uniqueNavElements","destroy","_s","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","onTouchStart","touchEventsData","velocities","onTouchEnd","currentPos","onTouchMove","touchStartTime","touchEndTime","timeDiff","slideTo","activeIndex","slides","lastMoveEvent","velocityEvent","velocity","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition_1","bounceAmount","needsLoopFix","allowMomentumBounce","nextSlide","swipeDirection","moveDistance","currentSlideSize","slidesSizesGrid","transitionStart","elementTransitionEnd","destroyed","transitionEnd","longSwipesMs","grwTouristicContentDetailCss","GrwTouristicContentDetail","swiperImages","Swiper","swiperImagesRef","modules","Navigation","Pagination","Keyboard","FreeMode","navigation","prevEl","prevElImagesRef","nextEl","nextElImagesRef","pagination","paginationElImagesRef","allowTouchMove","keyboard","onfullscreenchange","displayFullscreen","offline","handleFullscreen","close","requestFullscreen","exitFullscreen","defaultImageSrc","cities","currentCity","city","colorSecondaryContainer","colorOnSecondaryContainer","touristicContentDetailContainerRef","presentationRef","attachment","author","crossorigin","loading","pdf","rel","description_teaser","practical_info","descriptionRef","description","usefulInformation","contact","email","website","getTouristicContent","api","touristicContentId","getTouristicContentsNearTrek","trekId","GrwTouristicContentProvider","controller","AbortController","signal","cache","class_2","connectedCallback","handleTouristicContent","touristicContentInStore","handleOfflineTouristicContent","handleOnlineTouristicContent","getAllDataInStore","setFilesFromStore","imagesRegExp","requests","Response","portals","all","__spreadArray","responses","response","json","networkError","results","error","DOMException","ABORT_ERR","disconnectedCallback","abort","grwTouristicContentsListCss","GrwTouristicContentsList","step","shouldAddInfiniteScrollEvent","handleInfiniteScrollBind","handleInfiniteScroll","GrwTouristicContentsList$1","handleInfiniteScrollEvent","touristicContentsToDisplay","scroll","composedPath","scrollTop","scrollHeight","colorSurfaceContainerLow","GrwTouristicContentsProvider","handleTouristicContents","touristicContentsRequest","inBbox","structures","grwTouristicEventDetailCss","GrwTouristicEventDetail","touristicEventCategory","touristicEventDetailContainerRef","begin_date","end_date","date","startDate","endDate","getTouristicEvent","touristicEventId","getTouristicEventsNearTrek","GrwTouristicEventProvider","class_3","handleTouristicEvent","touristicEventInStore","handleOfflineTouristicEvent","handleOnlineTouristicEvent","grwTouristicEventsListCss","touristicEventsToDisplay","GrwTouristicEventsProvider","handleTouristicEvents","touristicEventsRequest","grwTrekDetailCss","threshold","presentation","indicator","recommendations","GrwTrekDetail","indicatorSelectedTrekOption","translateX","backgroundSize","class_4","swiperStep","swiperStepRef","initialSlide","getCurrentStepIndex","slidesPerView","spaceBetween","grabCursor","stepSwiperScrollbar","breakpointsBase","breakpoints","swiperPois","swiperPoisRef","poisSwiperScrollbar","swiperInformationDesks","swiperInformationDesksRef","informationDesksContentsSwiperScrollbar","swiperTouristicContents","swiperTouristicContentsRef","touristicContentsSwiperScrollbar","swiperTouristicEvents","swiperTouristicEventsRef","touristicEventsSwiperScrollbar","presentationObserver","IntersectionObserver","entries","isIntersecting","defaultOptions","handleIndicatorSelectedTrekOption","stepsRef","stepsObserver","descriptionObserver","recommendationRef","recommendationsObserver","parkingRef","parkingObserver","sensitiveAreaRef","sensitiveAreaObserver","informationPlacesRef","informationPlacesObserver","informationPlacesIsInViewport","accessibilityRef","accessibilityObserver","poiRef","poiObserver","touristicContentsRef","touristicContentObserver","touristicEventsRef","touristicEventObserver","handleOptions","difficulties","route","sources","source","accessibilities","accessibilitiesLevel","accessibilityLevel","accessibility_level","hasStep","children","advice","disabled_infrastructure","accessibility_slope","accessibility_width","accessibility_signage","accessibility_covering","accessibility_exposure","accessibility_advice","emergencyNumber","trekTouristicEvents","currentOption","previousVisibleOptions","previousWidthOptions","elementWidth","values","handleScrollTo","trekDetailContainerRef","scrollTo","offsetTop","downloadGlobalTiles","offlineLayer","treksDepartureCoordinates","writeOrUpdateTilesInStore","globalTilesMinZoomOffline","globalTilesMaxZoomOffline","downloadTrekTiles","trekTilesMinZoomOffline","downloadTrek","offlineTreks","getTreksList","inBboxFromProviders","citiesFromProviders","structuresFromProviders","themesFromProviders","portalsFromProviders","routesFromProviders","practicesFromProviders","treksList","offlineTrek","getDistricts","districtsList","writeOrUpdateDataInStore","writeOrUpdateFilesInStore","networks","ratings","ratingsScale","trekTouristicContent","trekTouristicEvent","steps_1","stepRequests_1","stepsTouristicContentsRequests_1","stepsTouristicEventsRequests_1","stepId","getTrek","trekSteps","stepsTouristicContentsResponses","stepsTouristicEventsResponses","stepsTouristicContentsResponse","index_2","stepsTouristicEventsResponse","index_3","trekDownloadedSuccessConfirm","deleteTrek","treksInStore","deleteOfflineTrekProperties","trekInStore_1","currentTrekStep","trekDeleteSuccessConfirm","displayTrekDownloadModal","trekDownloadConfirm","displayTrekDeleteModal","trekDeleteConfirm","onTrekDownloadPress","onTrekDeletePress","gpx","kml","arrival","ambiance","access","public_transport","gear","ratings_description","web_links","update_datetime","presentationOptionRef","stepsOptionRef","descriptionOptionRef","poisOptionRef","recommendationsOptionRef","sensitiveAreaOptionRef","environmentalSensitiveAreas","informationPlacesOptionRef","accessibilityOptionRef","touristicContentsOptionRef","touristicEventsOptionRef","onerror","formatDuration","formatLength","length_2d","formatAscent","formatDescent","_e","networkId","currentNetwork","network","trekRating","ratingScale","rating","downloads","enableOffline","parentTrekPress","departure","poi","weather","departure_city","frameborder","roadAccessAndParking","recommendedParking","transport","sensitiveAreasDescription","informationDesk","accessibilitySlope","accessibilityWidth","accessibilitySignage","accessibilityCovering","accessibilityExposure","accessibilityAdvices","isInsideHorizontalList","learnMore","weblink","GrwTrekProvider","class_5","districtsFromProviders","handleTrek","handleOfflineTrek","handleOnlineTrek","steps_2","_2","stepRequests_2","touristicContents_1","_u","_v","_w","_z","pois_1","_0","_1","Error","sensitiveAreas","informationDesks","steps_3","stepRequests_3","grwTreksListCss","GrwTreksList","treksToDisplay","GrwTreksProvider","class_6","handleTreks","handleOnlineTreks","handleOfflineTreks","durations","lengths","elevations","sortTreks","localeCompare","numeric","status","treksWithOfflineValue","trekIsAvailableOffline"],"sources":["src/components/grw-common-button/grw-common-button.scss?tag=grw-common-button&encapsulation=shadow","src/components/grw-common-button/grw-common-button.tsx","src/components/grw-extended-fab/grw-extended-fab.scss?tag=grw-extended-fab&encapsulation=shadow","src/components/grw-extended-fab/grw-extended-fab.tsx","src/components/grw-filters/grw-filters.scss?tag=grw-filters&encapsulation=shadow","src/components/grw-filters/grw-filters.tsx","src/components/grw-loader/grw-loader.scss?tag=grw-loader&encapsulation=shadow","src/components/grw-loader/grw-loader.tsx","node_modules/leaflet-rotate/dist/leaflet-rotate.js","node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","node_modules/leaflet-i18n/Leaflet.i18n.js","node_modules/@raruto/leaflet-elevation/dist/leaflet-elevation.min.js","node_modules/leaflet.markercluster/dist/leaflet.markercluster.js","src/components/grw-map/grw-map.scss?tag=grw-map&encapsulation=shadow","src/components/grw-map/grw-map.tsx","src/components/grw-search/grw-search.scss?tag=grw-search&encapsulation=shadow","src/components/grw-search/grw-search.tsx","src/components/grw-segmented-segment/grw-segmented-segment.scss?tag=grw-segmented-segment&encapsulation=shadow","src/components/grw-segmented-segment/grw-segmented-segment.tsx","src/components/grw-select-language/grw-select-language.scss?tag=grw-select-language&encapsulation=shadow","src/components/grw-select-language/grw-select-language.tsx","src/components/grw-switch/grw-switch.scss?tag=grw-switch&encapsulation=shadow","src/components/grw-switch/grw-switch.tsx","node_modules/swiper/modules/mousewheel/mousewheel.js","node_modules/swiper/modules/scrollbar/scrollbar.js","node_modules/swiper/modules/free-mode/free-mode.js","src/components/grw-touristic-content-detail/grw-touristic-content-detail.scss?tag=grw-touristic-content-detail&encapsulation=shadow","src/components/grw-touristic-content-detail/grw-touristic-content-detail.tsx","src/services/touristic-contents.service.ts","src/store/grw-touristic-content-provider.tsx","src/components/grw-touristic-contents-list/grw-touristic-contents-list.scss?tag=grw-touristic-contents-list&encapsulation=shadow","src/components/grw-touristic-contents-list/grw-touristic-contents-list.tsx","src/store/grw-touristic-contents-provider.tsx","src/components/grw-touristic-event-detail/grw-touristic-event-detail.scss?tag=grw-touristic-event-detail&encapsulation=shadow","src/components/grw-touristic-event-detail/grw-touristic-event-detail.tsx","src/services/touristic-events.service.ts","src/store/grw-touristic-event-provider.tsx","src/components/grw-touristic-events-list/grw-touristic-events-list.scss?tag=grw-touristic-events-list&encapsulation=shadow","src/components/grw-touristic-events-list/grw-touristic-events-list.tsx","src/store/grw-touristic-events-provider.tsx","src/components/grw-trek-detail/grw-trek-detail.scss?tag=grw-trek-detail&encapsulation=shadow","src/components/grw-trek-detail/grw-trek-detail.tsx","src/store/grw-trek-provider.tsx","src/components/grw-treks-list/grw-treks-list.scss?tag=grw-treks-list&encapsulation=shadow","src/components/grw-treks-list/grw-treks-list.tsx","src/store/grw-treks-provider.tsx"],"sourcesContent":[".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.common-button {\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1px;\n font-family: var(--font-family);\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n .common-button-icon {\n font-size: 18px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-common-button',\n styleUrl: 'grw-common-button.scss',\n shadow: true,\n})\nexport class GrwCommonButton {\n @Prop() action: Function;\n @Prop() icon: string;\n @Prop() name: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"common-button\" class=\"common-button\" onClick={() => this.action()}>\n {/* @ts-ignore */}\n <span part=\"common-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon}\n </span>\n <span part=\"common-button-label\" class=\"label\">\n {this.name}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.map-visibility-button {\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n text-decoration: none;\n padding: 16px;\n background-color: var(--fab-background-color);\n color: var(--fab-color);\n box-shadow: var(--elevation-1);\n border-radius: var(--border-radius, 12px);\n height: 56px;\n font-family: var(--font-family);\n font-size: 16px;\n width: unset;\n &:hover {\n box-shadow: var(--elevation-4);\n }\n .icon {\n font-size: 24px;\n margin-right: 8px;\n color: var(--fab-color);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-extended-fab',\n styleUrl: 'grw-extended-fab.scss',\n shadow: true,\n})\nexport class GrwExtendedFab {\n @Prop() action: Function;\n @Prop() icon: Function;\n @Prop() name: Function;\n @Prop() display: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"map-visibility-button\" class=\"map-visibility-button\" onClick={() => this.action()} style={{ display: this.display }}>\n {/* @ts-ignore */}\n <span part=\"map-visibility-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon()}\n </span>\n <span part=\"map-visibility-button-label\" class=\"label\">\n {this.name()}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".options-container {\n height: 100%;\n position: absolute;\n width: 100%;\n z-index: 1100;\n top: 0px;\n}\n\n.filters-container {\n background-color: var(--color-background);\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1100;\n .filters-treks-container,\n .filters-touristic-contents-container,\n .filters-touristic-events-container {\n height: 100%;\n }\n .segmented-buttons-container {\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface-variant);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n font-family: var(--font-family);\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n }\n}\n\n.filters-segment-container {\n overflow-y: visible;\n height: 100%;\n max-height: calc(100% - 64px - 42px - 32px);\n}\n\n.back-filters-container {\n background-color: rgba(0, 0, 0, 0.5);\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 1099;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.filters-options-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 64px;\n margin: 0px 16px;\n .filters-options-buttons-container {\n display: flex;\n .filter-option-button {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n margin: 8px 0px 0px 8px;\n padding: 8px 16px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-on-primary-container);\n background-color: transparent;\n font-family: var(--font-family);\n }\n }\n}\n\n.segment-container {\n overflow: scroll;\n height: 100%;\n}\n\n.filter-container {\n &:not(:last-child) {\n &::after {\n content: '';\n display: block;\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n }\n }\n &:last-child {\n margin-bottom: 16px;\n }\n}\n\n.current-treks-within-bounds-length {\n color: var(--color-on-surface-variant);\n font-family: var(--font-family);\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport {\n treksFilters,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n touristicEventsFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-filters',\n styleUrl: 'grw-filters.scss',\n shadow: true,\n})\nexport class GrwFilters {\n @Event() resetFilter: EventEmitter;\n\n @State() selectedSegment = 'selectedActivitiesFilters';\n\n @Prop() handleFilters: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n handleEraseTreksFilters() {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTreksFilters() {\n this.handleFilters();\n }\n\n handleSelectedSegment(selectedSegment) {\n this.selectedSegment = selectedSegment;\n }\n\n handleSegment(segment) {\n if (state.mode === 'treks') {\n return treksFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicContents') {\n return touristicContentsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicEvents') {\n return touristicEventsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n }\n }\n\n handleEraseTouristicContentsFilters() {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicContentsFilters() {\n this.handleFilters();\n }\n\n handleEraseTouristicEventsFilters() {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicEventsFilters() {\n this.handleFilters();\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"options-container\" class=\"options-container\">\n <div part=\"filters-container\" class=\"filters-container\">\n {state.mode === 'treks' && (\n <div part=\"filters-treks-container\" class=\"filters-treks-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.treksWithinBounds.length} ${\n state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTreksFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTreksFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].home.segment.treks} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedThemesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedThemesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedThemesFilters')}\n >\n {translate[state.language].themes} {state.selectedThemesFilters !== 0 && `(${state.selectedThemesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-activities-segment-container\">\n {state['practices'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].practice}\n filterType=\"practices\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n filterPlaceholder={translate[state.language].placeholderPractices}\n ></grw-filter>\n </div>\n )}\n {state['difficulties'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].difficulty}\n filterType=\"difficulties\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['durations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].duration}\n filterType=\"durations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['lengths'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].length}\n filterType=\"lengths\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['elevations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].elevation}\n filterType=\"elevations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['routes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].routes}\n filterType=\"routes\"\n filterNameProperty=\"route\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['accessibilities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].accessibility}\n filterType=\"accessibilities\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['labels'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].activities}\n filterType=\"labels\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedThemesFilters' && (\n <div part=\"filter-container\" class=\"segment-container\" key=\"treks-themes-segment-container\">\n {state['themes'].length > 0 && (\n <div part=\"\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].themes}\n filterPlaceholder={translate[state.language].placeholderThemes}\n filterType=\"themes\"\n filterNameProperty=\"label\"\n segment=\"selectedThemesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicContents' && (\n <div part=\"filters-touristic-contents-container\" class=\"filters-touristic-contents-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicContentsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicContentsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicContentsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicContentCategories'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].category}\n filterType=\"touristicContentCategories\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicEvents' && (\n <div part=\"filters-touristic-events-container\" class=\"filters-touristic-events-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicEventsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicEventsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicEventsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicEventTypes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].type}\n filterPlaceholder={translate[state.language].placeholderType}\n filterType=\"touristicEventTypes\"\n filterNameProperty=\"type\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-events-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n <div part=\"back-filters-container\" class=\"back-filters-container\" onClick={() => this.handleFilters()}></div>\n </div>\n </Host>\n );\n }\n}\n",".loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-loader',\n styleUrl: 'grw-loader.scss',\n shadow: true,\n})\nexport class GrwLoader {\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n\n render() {\n return (\n <Host style={{ '--color-primary-container': this.colorPrimaryContainer, '--color-on-primary-container': this.colorOnPrimaryContainer }}>\n <span part=\"loader\" class=\"loader\"></span>\n </Host>\n );\n }\n}\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";const t=L.extend({},L.DomUtil);L.extend(L.DomUtil,{setTransform:function(o,e,i,n,a){var s=e||new L.Point(0,0);if(!n)return e=s._round(),t.setTransform.apply(this,arguments);s=s.rotateFrom(n,a),o.style[L.DomUtil.TRANSFORM]=\"translate3d(\"+s.x+\"px,\"+s.y+\"px,0)\"+(i?\" scale(\"+i+\")\":\"\")+\" rotate(\"+n+\"rad)\"},setPosition:function(o,e,i,n,a){if(!i)return t.setPosition.apply(this,arguments);o._leaflet_pos=e,L.Browser.any3d?L.DomUtil.setTransform(o,e,a,i,n):(o.style.left=e.x+\"px\",o.style.top=e.y+\"px\")},DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI}),L.Draggable.include({}),L.extend(L.Point.prototype,{rotate:function(t){return this.rotateFrom(t,new L.Point(0,0))},rotateFrom:function(t,o){if(!t)return this;var e=Math.sin(t),i=Math.cos(t),n=o.x,a=o.y,s=this.x-n,r=this.y-a;return new L.Point(s*i-r*e+n,s*e+r*i+a)}});const o=L.extend({},L.DivOverlay.prototype);L.DivOverlay.include({getEvents:function(){return L.extend(o.getEvents.apply(this,arguments),{rotate:this._updatePosition})},_updatePosition:function(){if(this._map&&(o._updatePosition.apply(this,arguments),this._map&&this._map._rotate&&this._zoomAnimated)){var t=this._getAnchor(),e=L.DomUtil.getPosition(this._container).subtract(t);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(e).add(t))}}});const e=L.extend({},L.Popup.prototype);L.Popup.include({_animateZoom:function(t){if(e._animateZoom.apply(this,arguments),this._map&&this._map._rotate){var o=this._getAnchor(),i=L.DomUtil.getPosition(this._container).subtract(o);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(i).add(o))}},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress))if(this._autopanning)this._autopanning=!1;else{var t=this._map,o=parseInt(L.DomUtil.getStyle(this._container,\"marginBottom\"),10)||0,e=this._container.offsetHeight+o,i=this._containerWidth,n=new L.Point(this._containerLeft,-e-this._containerBottom);n._add(L.DomUtil.getPosition(this._container));var a=n._add(this._map._getMapPanePos()),s=L.point(this.options.autoPanPadding),r=L.point(this.options.autoPanPaddingTopLeft||s),h=L.point(this.options.autoPanPaddingBottomRight||s),_=t.getSize(),d=0,p=0;a.x+i+h.x>_.x&&(d=a.x+i-_.x+h.x),a.x-d-r.x<0&&(d=a.x-r.x),a.y+e+h.y>_.y&&(p=a.y+e-_.y+h.y),a.y-p-r.y<0&&(p=a.y-r.y),(d||p)&&(this.options.keepInView&&(this._autopanning=!0),t.fire(\"autopanstart\").panBy([d,p]))}}});const i=L.extend({},L.Tooltip.prototype);L.Tooltip.include({_animateZoom:function(t){if(!this._map._rotate)return i._animateZoom.apply(this,arguments);var o=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o=this._map.rotatedPointToMapPanePoint(o),this._setPosition(o)},_updatePosition:function(){if(!this._map._rotate)return i._updatePosition.apply(this,arguments);var t=this._map.latLngToLayerPoint(this._latlng);t=this._map.rotatedPointToMapPanePoint(t),this._setPosition(t)}}),L.extend({},L.Icon.prototype),L.Icon.include({_setIconStyles:function(t,o){var e=this.options,i=e[o+\"Size\"];\"number\"==typeof i&&(i=[i,i]);var n=L.point(i),a=L.point(\"shadow\"===o&&e.shadowAnchor||e.iconAnchor||n&&n.divideBy(2,!0));t.className=\"leaflet-marker-\"+o+\" \"+(e.className||\"\"),a&&(t.style.marginLeft=-a.x+\"px\",t.style.marginTop=-a.y+\"px\",t.style[L.DomUtil.TRANSFORM+\"Origin\"]=a.x+\"px \"+a.y+\"px 0px\"),n&&(t.style.width=n.x+\"px\",t.style.height=n.y+\"px\")}});const n=L.extend({},L.Marker.prototype);var a;L.Marker.mergeOptions({rotation:0,rotateWithView:!1,scale:void 0});var s={_onDrag:function(t){var o=this._marker,e=o.options.rotation||o.options.rotateWithView,i=o._shadow,n=L.DomUtil.getPosition(o._icon);!e&&i&&L.DomUtil.setPosition(i,n),o._map._rotate&&(n=o._map.mapPanePointToRotatedPoint(n));var a=o._map.layerPointToLatLng(n);o._latlng=a,t.latlng=a,t.oldLatLng=this._oldLatLng,e?o.setLatLng(a):o.fire(\"move\",t),o.fire(\"drag\",t)},_onDragEnd:function(t){this._marker._map._rotate&&this._marker.update(),a._onDragEnd.apply(this,arguments)}};L.Marker.include({getEvents:function(){return L.extend(n.getEvents.apply(this,arguments),{rotate:this.update})},_initInteraction:function(){var t=n._initInteraction.apply(this,arguments);return this.dragging&&this.dragging.enabled()&&this._map&&this._map._rotate&&(a=a||Object.getPrototypeOf(this.dragging),this.dragging.disable(),Object.assign(this.dragging,{_onDrag:s._onDrag.bind(this.dragging),_onDragEnd:s._onDragEnd.bind(this.dragging)}),this.dragging.enable()),t},_setPos:function(t){this._map._rotate&&(t=this._map.rotatedPointToMapPanePoint(t));var o=this.options.rotation||0;this.options.rotateWithView&&(o+=this._map._bearing),this._icon&&L.DomUtil.setPosition(this._icon,t,o,t,this.options.scale),this._shadow&&L.DomUtil.setPosition(this._shadow,t,o,t,this.options.scale),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},setRotation:function(t){this.options.rotation=t,this.update()}});const r=L.extend({},L.GridLayer.prototype);L.GridLayer.include({getEvents:function(){var t=r.getEvents.apply(this,arguments);return this._map._rotate&&!this.options.updateWhenIdle&&(this._onRotate||(this._onRotate=L.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.rotate=this._onRotate),t},_getTiledPixelBounds:function(t){return this._map._rotate?this._map._getNewPixelBounds(t,this._tileZoom):r._getTiledPixelBounds.apply(this,arguments)}});const h=L.extend({},L.Renderer.prototype);L.Renderer.include({getEvents:function(){return L.extend(h.getEvents.apply(this,arguments),{rotate:this._update})},onAdd:function(){h.onAdd.apply(this,arguments),L.version<=\"1.9.3\"&&this._container.classList.add(\"leaflet-zoom-animated\")},_updateTransform:function(t,o){if(!this._map._rotate)return h._updateTransform.apply(this,arguments);var e=this._map.getZoomScale(o,this._zoom),i=this._map._latLngToNewLayerPoint(this._topLeft,o,t);L.DomUtil.setTransform(this._container,i,e)},_update:function(){if(!this._map._rotate)return h._update.apply(this,arguments);this._bounds=this._map._getPaddedPixelBounds(this.options.padding),this._topLeft=this._map.layerPointToLatLng(this._bounds.min),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}});const _=L.extend({},L.Map.prototype);L.Map.mergeOptions({rotate:!1,bearing:0}),L.Map.include({initialize:function(t,o){o.rotate&&(this._rotate=!0,this._bearing=0),_.initialize.apply(this,arguments),this.options.rotate&&this.setBearing(this.options.bearing)},containerPointToLayerPoint:function(t){return this._rotate?L.point(t).subtract(this._getMapPanePos()).rotateFrom(-this._bearing,this._getRotatePanePos()).subtract(this._getRotatePanePos()):_.containerPointToLayerPoint.apply(this,arguments)},layerPointToContainerPoint:function(t){return this._rotate?L.point(t).add(this._getRotatePanePos()).rotateFrom(this._bearing,this._getRotatePanePos()).add(this._getMapPanePos()):_.layerPointToContainerPoint.apply(this,arguments)},rotatedPointToMapPanePoint:function(t){return L.point(t).rotate(this._bearing)._add(this._getRotatePanePos())},mapPanePointToRotatedPoint:function(t){return L.point(t)._subtract(this._getRotatePanePos()).rotate(-this._bearing)},mapBoundsToContainerBounds:function(t){if(!this._rotate&&_.mapBoundsToContainerBounds)return _.mapBoundsToContainerBounds.apply(this,arguments);const o=this.getPixelOrigin(),e=this.layerPointToContainerPoint(this.project(t.getNorthWest())._subtract(o)),i=this.layerPointToContainerPoint(this.project(t.getNorthEast())._subtract(o)),n=this.layerPointToContainerPoint(this.project(t.getSouthWest())._subtract(o)),a=this.layerPointToContainerPoint(this.project(t.getSouthEast())._subtract(o));return L.bounds([L.point(Math.min(e.x,i.x,a.x,n.x),Math.min(e.y,i.y,a.y,n.y)),L.point(Math.max(e.x,i.x,a.x,n.x),Math.max(e.y,i.y,a.y,n.y))])},getBounds:function(){if(!this._rotate)return _.getBounds.apply(this,arguments);var t=this.getSize();return new L.LatLngBounds([this.containerPointToLatLng([0,0]),this.containerPointToLatLng([t.x,0]),this.containerPointToLatLng([t.x,t.y]),this.containerPointToLatLng([0,t.y])])},setBearing:function(t){if(L.Browser.any3d&&this._rotate){var o=L.Util.wrapNum(t,[0,360])*L.DomUtil.DEG_TO_RAD,e=this._getPixelCenter(),i=this._getRotatePanePos().rotateFrom(-this._bearing,e),n=i.rotateFrom(o,e);L.DomUtil.setPosition(this._rotatePane,i,o,e),this._pivot=e,this._bearing=o,this._rotatePanePos=n,this.fire(\"rotate\")}},getBearing:function(){return this._bearing*L.DomUtil.RAD_TO_DEG},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),L.DomUtil.setPosition(this._mapPane,new L.Point(0,0)),this._rotate?(this._rotatePane=this.createPane(\"rotatePane\",this._mapPane),this._norotatePane=this.createPane(\"norotatePane\",this._mapPane),this.createPane(\"tilePane\",this._rotatePane),this.createPane(\"overlayPane\",this._rotatePane),this.createPane(\"shadowPane\",this._norotatePane),this.createPane(\"markerPane\",this._norotatePane),this.createPane(\"tooltipPane\",this._norotatePane),this.createPane(\"popupPane\",this._norotatePane)):(this.createPane(\"tilePane\"),this.createPane(\"overlayPane\"),this.createPane(\"shadowPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\")),this.options.markerZoomAnimation||(L.DomUtil.addClass(t.markerPane,\"leaflet-zoom-hide\"),L.DomUtil.addClass(t.shadowPane,\"leaflet-zoom-hide\"))},panInside(t,o){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.panInside.apply(this,arguments);o=o||{};const e=L.point(o.paddingTopLeft||o.padding||[0,0]),i=L.point(o.paddingBottomRight||o.padding||[0,0]),n=this._container.getBoundingClientRect(),a=this.latLngToContainerPoint(t),s=L.bounds([L.point(n),L.point(n).add(this.getSize())]),r=s.getCenter(),h=L.bounds([s.min.add(e),s.max.subtract(i)]),d=h.getSize();if(!h.contains(a)){this._enforcingBounds=!0;const t=a.subtract(h.getCenter()),e=h.extend(a).getSize().subtract(d);r.x+=t.x<0?-e.x:e.x,r.y+=t.y<0?-e.y:e.y,this.panTo(this.containerPointToLatLng(r),o),this._enforcingBounds=!1}return this},getBoundsZoom(t,o,e){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.getBoundsZoom.apply(this,arguments);t=L.latLngBounds(t),e=L.point(e||[0,0]);let i=this.getZoom()||0;const n=this.getMinZoom(),a=this.getMaxZoom(),s=this.getSize().subtract(e),r=this.mapBoundsToContainerBounds(t).getSize(),h=this.options.zoomSnap,d=s.x/r.x,p=s.y/r.y,l=o?Math.max(d,p):Math.min(d,p);return i=this.getScaleZoom(l,i),h&&(i=Math.round(i/(h/100))*(h/100),i=o?Math.ceil(i/h)*h:Math.floor(i/h)*h),Math.max(n,Math.min(a,i))},_getCenterOffset:function(t){var o=_._getCenterOffset.apply(this,arguments);return this._rotate&&(o=o.rotate(this._bearing)),o},_getRotatePanePos:function(){return this._rotatePanePos||new L.Point(0,0)},_getNewPixelOrigin:function(t,o){if(!this._rotate)return _._getNewPixelOrigin.apply(this,arguments);var e=this.getSize()._divideBy(2);return this.project(t,o).rotate(this._bearing)._subtract(e)._add(this._getMapPanePos())._add(this._getRotatePanePos()).rotate(-this._bearing)._round()},_getNewPixelBounds:function(t,o){if(t=t||this.getCenter(),o=o||this.getZoom(),!this._rotate&&_._getNewPixelBounds)return _._getNewPixelBounds.apply(this,arguments);var e=this._animatingZoom?Math.max(this._animateToZoom,this.getZoom()):this.getZoom(),i=this.getZoomScale(e,o),n=this.project(t,o).floor(),a=this.getSize(),s=new L.Bounds([this.containerPointToLayerPoint([0,0]).floor(),this.containerPointToLayerPoint([a.x,0]).floor(),this.containerPointToLayerPoint([0,a.y]).floor(),this.containerPointToLayerPoint([a.x,a.y]).floor()]).getSize().divideBy(2*i);return new L.Bounds(n.subtract(s),n.add(s))},_getPixelCenter:function(){return!this._rotate&&_._getPixelCenter?_._getPixelCenter.apply(this,arguments):this.getSize()._divideBy(2)._subtract(this._getMapPanePos())},_getPaddedPixelBounds:function(t){if(!this._rotate&&_._getPaddedPixelBounds)return _._getPaddedPixelBounds.apply(this,arguments);var o=t,e=this.getSize(),i=e.multiplyBy(-o),n=e.multiplyBy(1+o);return new L.Bounds([this.containerPointToLayerPoint([i.x,i.y]).floor(),this.containerPointToLayerPoint([i.x,n.y]).floor(),this.containerPointToLayerPoint([n.x,i.y]).floor(),this.containerPointToLayerPoint([n.x,n.y]).floor()])},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var o=t.coords.latitude,e=t.coords.longitude,i=t.coords.heading,n=new L.LatLng(o,e),a=n.toBounds(t.coords.accuracy),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(a);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var h={latlng:n,bounds:a,timestamp:t.timestamp,heading:i};for(var _ in t.coords)\"number\"==typeof t.coords[_]&&(h[_]=t.coords[_]);this.fire(\"locationfound\",h)}}}),L.Map.CompassBearing=L.Handler.extend({initialize:function(t){this._map=t,\"ondeviceorientationabsolute\"in window?this.__deviceOrientationEvent=\"deviceorientationabsolute\":\"ondeviceorientation\"in window&&(this.__deviceOrientationEvent=\"deviceorientation\"),this._throttled=L.Util.throttle(this._onDeviceOrientation,100,this)},addHooks:function(){this._map._rotate&&this.__deviceOrientationEvent?L.DomEvent.on(window,this.__deviceOrientationEvent,this._throttled,this):this.disable()},removeHooks:function(){this._map._rotate&&this.__deviceOrientationEvent&&L.DomEvent.off(window,this.__deviceOrientationEvent,this._throttled,this)},_onDeviceOrientation:function(t){var o=t.webkitCompassHeading||t.alpha,e=0;!t.absolute&&t.webkitCompassHeading&&(o=360-o),t.absolute||void 0===window.orientation||(e=window.orientation),this._map.setBearing(o-e)}}),L.Map.addInitHook(\"addHandler\",\"compassBearing\",L.Map.CompassBearing),L.Map.mergeOptions({trackContainerMutation:!1}),L.Map.ContainerMutation=L.Handler.extend({addHooks:function(){this._observer||(this._observer=new MutationObserver(L.Util.bind(this._map.invalidateSize,this._map))),this._observer.observe(this._map.getContainer(),{childList:!1,attributes:!0,characterData:!1,subtree:!1,attributeFilter:[\"style\"]})},removeHooks:function(){this._observer.disconnect()}}),L.Map.addInitHook(\"addHandler\",\"trackContainerMutation\",L.Map.ContainerMutation),L.Map.mergeOptions({bounceAtZoomLimits:!0}),L.Map.TouchGestures=L.Handler.extend({initialize:function(t){this._map=t,this.rotate=!!this._map.options.touchRotate,this.zoom=!!this._map.options.touchZoom},addHooks:function(){L.DomEvent.on(this._map._container,\"touchstart\",this._onTouchStart,this)},removeHooks:function(){L.DomEvent.off(this._map._container,\"touchstart\",this._onTouchStart,this)},_onTouchStart:function(t){var o=this._map;if(t.touches&&2===t.touches.length&&!o._animatingZoom&&!this._zooming&&!this._rotating){var e=o.mouseEventToContainerPoint(t.touches[0]),i=o.mouseEventToContainerPoint(t.touches[1]),n=e.subtract(i);this._centerPoint=o.getSize()._divideBy(2),this._startLatLng=o.containerPointToLatLng(this._centerPoint),this.zoom?(\"center\"!==o.options.touchZoom&&(this._pinchStartLatLng=o.containerPointToLatLng(e.add(i)._divideBy(2))),this._startDist=e.distanceTo(i),this._startZoom=o.getZoom(),this._zooming=!0):this._zooming=!1,this.rotate?(this._startTheta=Math.atan(n.x/n.y),this._startBearing=o.getBearing(),n.y<0&&(this._startBearing+=180),this._rotating=!0):this._rotating=!1,this._moved=!1,o._stop(),L.DomEvent.on(document,\"touchmove\",this._onTouchMove,this).on(document,\"touchend touchcancel\",this._onTouchEnd,this),L.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&(this._zooming||this._rotating)){var o,e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),a=i.subtract(n),s=i.distanceTo(n)/this._startDist;if(this._rotating){var r=(Math.atan(a.x/a.y)-this._startTheta)*L.DomUtil.RAD_TO_DEG;a.y<0&&(r+=180),r&&e.setBearing(this._startBearing-r)}if(this._zooming)if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),\"center\"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{if(o=i._add(n)._divideBy(2)._subtract(this._centerPoint),1===s&&0===o.x&&0===o.y)return;var h=-e.getBearing()*L.DomUtil.DEG_TO_RAD;this._center=e.unproject(e.project(this._pinchStartLatLng).subtract(o.rotate(h)))}this._moved||(e._moveStart(!0,!1),this._moved=!0),L.Util.cancelAnimFrame(this._animRequest);var _=e._move.bind(e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=L.Util.requestAnimFrame(_,this,!0),L.DomEvent.preventDefault(t)}},_onTouchEnd:function(){this._moved&&(this._zooming||this._rotating)?(this._zooming=!1,this._rotating=!1,L.Util.cancelAnimFrame(this._animRequest),L.DomEvent.off(document,\"touchmove\",this._onTouchMove,this).off(document,\"touchend touchcancel\",this._onTouchEnd,this),this.zoom&&(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):this._zooming=!1}}),L.Map.addInitHook(\"addHandler\",\"touchGestures\",L.Map.TouchGestures),L.Map.mergeOptions({touchRotate:!1}),L.Map.TouchRotate=L.Handler.extend({addHooks:function(){this._map.touchGestures.enable(),this._map.touchGestures.rotate=!0},removeHooks:function(){this._map.touchGestures.rotate=!1}}),L.Map.addInitHook(\"addHandler\",\"touchRotate\",L.Map.TouchRotate),L.Map.mergeOptions({shiftKeyRotate:!0}),L.Map.ShiftKeyRotate=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!0},removeHooks:function(){L.DomEvent.off(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!1},_handleShiftScroll:function(t){t.shiftKey?(t.preventDefault(),this._map.scrollWheelZoom.disable(),this._map.setBearing(this._map._bearing*L.DomUtil.RAD_TO_DEG+5*Math.sign(t.deltaY))):this._map.scrollWheelZoom.enable()}}),L.Map.addInitHook(\"addHandler\",\"shiftKeyRotate\",L.Map.ShiftKeyRotate),L.Map.addInitHook((function(){this.scrollWheelZoom.enabled()&&this.shiftKeyRotate.enabled()&&(this.scrollWheelZoom.disable(),this.scrollWheelZoom.enable())})),L.Map.mergeOptions({touchZoom:L.Browser.touch,bounceAtZoomLimits:!1}),L.Map.TouchZoom=L.Handler.extend({addHooks:function(){L.DomUtil.addClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.enable(),this._map.touchGestures.zoom=!0},removeHooks:function(){L.DomUtil.removeClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.zoom=!1}}),L.Map.addInitHook(\"addHandler\",\"touchZoom\",L.Map.TouchZoom),L.Control.Rotate=L.Control.extend({options:{position:\"topleft\",closeOnZeroBearing:!0},onAdd:function(t){var o=this._container=L.DomUtil.create(\"div\",\"leaflet-control-rotate leaflet-bar\"),e=this._arrow=L.DomUtil.create(\"span\",\"leaflet-control-rotate-arrow\");e.style.backgroundImage=\"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\\\")\",e.style.cursor=\"grab\",e.style.display=\"block\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.backgroundRepeat=\"no-repeat\",e.style.backgroundPosition=\"50%\";var i=this._link=L.DomUtil.create(\"a\",\"leaflet-control-rotate-toggle\",o);return i.appendChild(e),i.href=\"#\",i.title=\"Rotate map\",L.DomEvent.on(i,\"dblclick\",L.DomEvent.stopPropagation).on(i,\"mousedown\",this._handleMouseDown,this).on(i,\"click\",L.DomEvent.stop).on(i,\"click\",this._cycleState,this).on(i,\"click\",this._refocusOnMap,this),L.Browser.any3d||L.DomUtil.addClass(i,\"leaflet-disabled\"),this._restyle(),t.on(\"rotate\",this._restyle,this),this._follow=!1,this._canFollow=!1,this.options.closeOnZeroBearing&&0===t.getBearing()&&(o.style.display=\"none\"),o},onRemove:function(t){t.off(\"rotate\",this._restyle,this)},_handleMouseDown:function(t){L.DomEvent.stop(t),this.dragging=!0,this.dragstartX=t.pageX,this.dragstartY=t.pageY,L.DomEvent.on(document,\"mousemove\",this._handleMouseDrag,this).on(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseUp:function(t){L.DomEvent.stop(t),this.dragging=!1,L.DomEvent.off(document,\"mousemove\",this._handleMouseDrag,this).off(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseDrag:function(t){if(this.dragging){var o=t.clientX-this.dragstartX;this._map.setBearing(o)}},_cycleState:function(t){if(this._map){var o=this._map;o.touchRotate.enabled()||o.compassBearing.enabled()?o.compassBearing.enabled()?(o.compassBearing.disable(),o.setBearing(0),this.options.closeOnZeroBearing&&o.touchRotate.enable()):(o.touchRotate.disable(),o.compassBearing.enable()):o.touchRotate.enable(),this._restyle()}},_restyle:function(){if(this._map.options.rotate){var t=this._map,o=t.getBearing();this._arrow.style.transform=\"rotate(\"+o+\"deg)\",o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"block\"),t.compassBearing.enabled()?this._link.style.backgroundColor=\"orange\":t.touchRotate.enabled()?this._link.style.backgroundColor=null:(this._link.style.backgroundColor=\"grey\",0===o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"none\"))}else L.DomUtil.addClass(this._link,\"leaflet-disabled\")}}),L.control.rotate=function(t){return new L.Control.Rotate(t)},L.Map.mergeOptions({rotateControl:!0}),L.Map.addInitHook((function(){if(this.options.rotateControl){var t=\"object\"==typeof this.options.rotateControl?this.options.rotateControl:{};this.rotateControl=L.control.rotate(t),this.addControl(this.rotateControl)}}))}));\n//# sourceMappingURL=leaflet-rotate.js.map\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","// Following https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md\n(function (factory, window) {\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === 'function' && define.amd) {\n define(['leaflet'], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === 'object') {\n module.exports = factory(require('leaflet'));\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== 'undefined' && window.L) {\n factory(window.L);\n\n }\n}(function (L) {\n L.locales = {};\n L.locale = null;\n L.registerLocale = function registerLocale(code, locale) {\n L.locales[code] = L.Util.extend({}, L.locales[code], locale);\n };\n L.setLocale = function setLocale(code) {\n L.locale = code;\n };\n return L.i18n = L._ = function translate(string, data) {\n if (L.locale && L.locales[L.locale] && typeof L.locales[L.locale][string] !== \"undefined\") {\n string = L.locales[L.locale][string];\n }\n try {\n // Do not fail if some data is missing\n // a bad translation should not break the app\n string = L.Util.template(string, data);\n }\n catch (err) {/*pass*/\n }\n\n return string;\n };\n}, window));\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";!function(t,e){\"function\"==typeof define&&define.amd?define([\"leaflet\"],t):\"object\"==typeof exports&&(module.exports=t(require(\"leaflet\"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,a){t.locales[e]=t.Util.extend({},t.locales[e],a)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,a){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,a)}catch(t){}return e}}),window);var t=6e4,e=60*t,a=24*e;function i(i){var n=Math.floor(i/a),r=Math.floor((i-n*a)/e),o=Math.floor((i-n*a-r*e)/t),s=Math.round((i-n*a-r*e-o*t)/1e3);return 60===s&&(o++,s=0),60===o&&(r++,o=0),24===r&&(n++,r=0),(n?n+\"d \":\"\")+r.toString().padStart(2,0)+\":\"+o.toString().padStart(2,0)+\"'\"+s.toString().padStart(2,0)+'\"'}function n(t,e){var a=m(\"a\",\"\",{href:t,target:\"_new\",download:e||\"\",style:\"display:none;\"}),i=document.body;i.appendChild(a),a.click(),i.removeChild(a)}function r(t,e,a){return!1===e?Promise.resolve():a instanceof Promise?a:new Promise((function(e,a){var i=document.createElement(\"script\");i.addEventListener(\"load\",e,{once:!0}),i.src=t,document.head.appendChild(i)}))}function o(t,e){e.classed(\"canvas-path\",!0),t.beginPath(),t.moveTo(0,0);var a=new Path2D(e.attr(\"d\"));t.strokeStyle=e.attr(\"stroke\"),t.fillStyle=e.attr(\"fill\"),t.lineWidth=1.25,t.globalCompositeOperation=\"source-over\",t.globalAlpha=e.attr(\"stroke-opacity\")||.3,t.stroke(a),t.globalAlpha=e.attr(\"fill-opacity\")||.45,t.fill(a),t.globalAlpha=1,t.closePath()}function s(t,e){return e?t<e[0]?e[0]:t>e[1]?e[1]:t:t}function l(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.addClass(t,e)}))}function c(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.removeClass(t,e)}))}function h(t,e,a){return(a?l:c).call(null,t,e)}function d(t,e,a){e&&c(t,e),a&&l(t,a)}function u(t,e,a){return void 0===a?L.DomUtil.getStyle(t,e):t.style.setProperty(e,a)}function _(t,e,a,i){return u(t,e,i?a:\"\")}function p(t,e,a,i){return t[i?\"on\":\"off\"](e,a)}function m(t,e,a,i){var n=L.DomUtil.create(t,e||\"\");return a&&v(n,a),i&&f(i,n),n}function f(t,e){return t.appendChild(e)}function g(t,e,a){return t.insertAdjacentElement(a,e)}function v(t,e){for(var a in e)t.setAttribute(a,e[a])}function y(t,e){return(e||document).querySelector(t)}var x=L.DomEvent.on,b=L.DomEvent.off,k=L.DomUtil.hasClass;function w(){return Math.random().toString(36).substr(2,9)}function M(t,e){for(var a in t)e(t[a],a)}var C=Object.freeze({__proto__:null,formatTime:i,saveFile:n,lazyLoader:r,drawCanvas:o,clamp:s,addClass:l,removeClass:c,toggleClass:h,replaceClass:d,style:u,toggleStyle:_,toggleEvent:p,create:m,append:f,insert:g,setAttributes:v,select:y,on:x,off:b,hasClass:k,randomId:w,each:M}),A={lightblue:{area:\"#3366CC\",alpha:.45,stroke:\"#3366CC\"},magenta:{area:\"#FF005E\"},yellow:{area:\"#FF0\"},purple:{area:\"#732C7B\"},steelblue:{area:\"#4682B4\"},red:{area:\"#F00\"},lime:{area:\"#9CC222\",line:\"#566B13\"}},S=function(t){t.width;var e=t.height,a=t.xAttr,i=t.yAttr,n=t.scaleX,r=t.scaleY,o=t.interpolation,s=void 0===o?\"curveLinear\":o;return d3.area().curve(\"string\"==typeof s?d3[s]:s).x((function(t){return t.xDiagCoord=n(t[a])})).y0(e).y1((function(t){return r(t[i])}))},z=function(t){var e=t.name,a=t.color,i=t.strokeColor,n=t.strokeOpacity,r=t.fillOpacity,o=d3.create(\"svg:path\");return e&&o.classed(e,!0),o.style(\"pointer-events\",\"none\"),o.attr(\"fill\",a||\"#3366CC\").attr(\"stroke\",i||\"#000\").attr(\"stroke-opacity\",n||\"1\").attr(\"fill-opacity\",r||\"0.8\"),o},D=function(t){var e=t.type,a=void 0===e?\"axis\":e,i=t.tickSize,n=void 0===i?6:i,r=t.tickPadding,o=void 0===r?3:r,s=t.position,l=t.height,c=t.width,h=t.axis,d=t.scale,u=t.ticks,_=t.tickFormat,p=t.label,m=t.labelX,f=t.labelY,g=t.name,v=void 0===g?\"\":g,y=t.onAxisMount;return function(t){var e=0,i=0;\"bottom\"==s&&(i=l),\"right\"==s&&(e=c),\"x\"==h&&\"grid\"==a?n=-l:\"y\"==h&&\"grid\"==a&&(n=-c);var r=d3[\"axis\"+s.replace(/\\b\\w/g,(function(t){return t.toUpperCase()}))]().scale(d).ticks(u).tickPadding(o).tickSize(n).tickFormat(_),g=t.append(\"g\").attr(\"class\",[h,a,s,v].join(\" \")).attr(\"transform\",\"translate(\"+e+\",\"+i+\")\").call(r);return p&&g.append(\"svg:text\").attr(\"x\",m).attr(\"y\",f).text(p),y&&g.call(y),g}},F=function(t){return t.type=\"grid\",D(t)},E=function(t){var e=t.theme,a=t.xCoord,i=void 0===a?0:a,n=t.yCoord,r=void 0===n?0:n,o=t.labels,s=void 0===o?{}:o,l=t.item,c=void 0===l?{}:l,h=t.length,d=void 0===h?0:h;return function(t){t.attr(\"class\",\"height-focus-group\");var a,n=t.select(\".height-focus.line\"),o=t.select(\".height-focus.circle-lower\"),l=t.select(\".height-focus-label\");return n.node()||(n=t.append(\"svg:line\")),o.node()||(o=t.append(\"svg:circle\")),l.node()||(l=t.append(\"svg:text\")),isNaN(i)||isNaN(r)||(o.attr(\"class\",e+\" height-focus circle-lower\").attr(\"transform\",\"translate(\"+i+\",\"+r+\")\").attr(\"r\",6).attr(\"cx\",0).attr(\"cy\",0),n.attr(\"class\",e+\" height-focus line\").attr(\"x1\",i).attr(\"x2\",i).attr(\"y1\",r).attr(\"y2\",d),l.attr(\"class\",e+\" height-focus-label\").style(\"pointer-events\",\"none\").attr(\"x\",i+5).attr(\"y\",d),Object.keys(s).sort((function(t,e){return s[t].order-s[e].order})).forEach((function(t){(a=l.select(\".height-focus-\"+s[t].name)).size()||(a=l.append(\"svg:tspan\").attr(\"class\",\"height-focus-\"+s[t].name).attr(\"dy\",\"1.5em\")),a.text(\"function\"!=typeof s[t].value?s[t].value:s[t].value(c))})),l.select(\"tspan\").attr(\"dy\",l.selectAll(\"tspan\").size()>1?\"-1.5em\":\"0em\"),l.selectAll(\"tspan\").attr(\"x\",i+5)),t}},T=function(t){var e=t.name,a=t.label,i=t.width,n=t.height,r=t.margins,o=void 0===r?{}:r,s=t.color,l=t.path;return function(t){return t.attr(\"class\",\"legend-item legend-\"+e.toLowerCase()).attr(\"data-name\",e),t.on(\"click.legend\",(function(){return d3.select(t.node().ownerSVGElement||t).dispatch(\"legend_clicked\",{detail:{path:l.node(),name:e,legend:t.node(),enabled:!l.classed(\"leaflet-hidden\")}})})),t.append(\"svg:rect\").attr(\"x\",i/2-50).attr(\"y\",n+o.bottom/2).attr(\"width\",50).attr(\"height\",10).attr(\"fill\",s).attr(\"stroke\",\"#000\").attr(\"stroke-opacity\",\"0.5\").attr(\"fill-opacity\",\"0.25\"),t.append(\"svg:text\").text(L._(a||e)).attr(\"x\",i/2+5).attr(\"font-size\",10).style(\"text-decoration-thickness\",\"2px\").style(\"font-weight\",\"700\").attr(\"y\",n+o.bottom/2).attr(\"dy\",\"0.75em\"),t}},I=function(t){var e=t.xCoord,a=t.yCoord,i=t.width,n=t.height,r=t.labels,o=void 0===r?{}:r,s=t.item,l=void 0===s?{}:s;return function(t){var r=t.select(\".mouse-focus-line\"),s=t.select(\".mouse-focus-label\");r.node()||(r=t.append(\"svg:line\")),s.node()||(s=t.append(\"g\"));var c=s.select(\".mouse-focus-label-rect\"),h=s.select(\".mouse-focus-label-text\");c.node()||(c=s.append(\"svg:rect\")),h.node()||(h=s.append(\"svg:text\"));var d,u=0,_=0,p={width:0,height:0};try{p=h.node().getBBox()}catch(e){return t}return e&&(u=e+(e<i/2?10:-p.width-10)),a&&(_=Math.max(a-p.height,L.Browser.webkit?0:-1/0)),r.attr(\"class\",\"mouse-focus-line\").attr(\"x2\",e).attr(\"y2\",0).attr(\"x1\",e).attr(\"y1\",n),s.attr(\"class\",\"mouse-focus-label\"),c.attr(\"class\",\"mouse-focus-label-rect\").attr(\"x\",u-5).attr(\"y\",_-5).attr(\"width\",p.width+10).attr(\"height\",p.height+10).attr(\"rx\",3).attr(\"ry\",3),h.attr(\"class\",\"mouse-focus-label-text\").style(\"font-weight\",\"700\").attr(\"y\",_),Object.keys(o).sort((function(t,e){return o[t].order-o[e].order})).forEach((function(t){(d=h.select(\".mouse-focus-label-\"+o[t].name)).size()||(d=h.append(\"svg:tspan\",\".mouse-focus-label-x\").attr(\"class\",\"mouse-focus-label-\"+o[t].name).attr(\"dy\",\"1.5em\")),d.text(\"function\"!=typeof o[t].value?o[t].value:o[t].value(l))})),h.select(\"tspan\").attr(\"dy\",\"1em\"),h.selectAll(\"tspan\").attr(\"x\",u),t}},O=function(t){var e=t.height,a=t.width;return function(t){t.data([{x:0,y:e}]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"}));var i=t.selectAll(\".horizontal-drag-rect\").data([{w:a}]),n=t.selectAll(\".horizontal-drag-line\").data([{w:a}]),r=t.selectAll(\".horizontal-drag-label\").data([{w:a-8}]),o=t.selectAll(\".horizontal-drag-symbol\").data([{type:d3.symbolTriangle,x:a+7,y:0,angle:-90,size:50}]);return i.exit().remove(),n.exit().remove(),r.exit().remove(),o.exit().remove(),i.enter().append(\"svg:rect\").attr(\"class\",\"horizontal-drag-rect\").attr(\"x\",0).attr(\"y\",-8).attr(\"height\",8).attr(\"fill\",\"none\").attr(\"pointer-events\",\"all\").merge(i).attr(\"width\",(function(t){return t.w})),n.enter().append(\"svg:line\").attr(\"class\",\"horizontal-drag-line\").attr(\"x1\",0).merge(n).attr(\"x2\",(function(t){return t.w})),r.enter().append(\"svg:text\").attr(\"class\",\"horizontal-drag-label\").attr(\"text-anchor\",\"end\").attr(\"y\",-8).merge(r).attr(\"x\",(function(t){return t.w})),o.enter().append(\"svg:path\").attr(\"class\",\"horizontal-drag-symbol\").merge(o).attr(\"d\",d3.symbol().type((function(t){return t.type})).size((function(t){return t.size}))).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\") rotate(\"+t.angle+\")\"})),t}},N=function(t){var e=t.point,a=t.height,i=t.width,n=t.x,r=t.y;return function(t){return isNaN(n)||isNaN(r)||(e.item&&e.item.property(\"isConnected\")||(e.position=e.position||\"bottom\",e.item=t.append(\"g\"),e.item.append(\"svg:line\").attr(\"y1\",0).attr(\"x1\",0).attr(\"style\",\"stroke: rgb(51, 51, 51); stroke-width: 0.5; stroke-dasharray: 2, 2;\"),e.item.append(\"svg:circle\").attr(\"class\",\" height-focus circle-lower\").attr(\"r\",3),e.label&&e.item.append(\"svg:text\").attr(\"dx\",\"4px\").attr(\"dy\",\"-4px\")),e.item.datum({pos:e.position,x:n,y:r}).attr(\"class\",(function(t){return\"point \"+t.pos})).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})),e.item.select(\"line\").datum({y2:{top:-r,bottom:a-r}[e.position],x2:{left:-n,right:i-n}[e.position]||0}).attr(\"y2\",(function(t){return t.y2})).attr(\"x2\",(function(t){return t.x2})),e.label&&e.item.select(\"text\").text(e.label)),t}},P=function(t){var e=t.min,a=t.max,i=t.attr,n=t.name,r=t.forceBounds,o=t.scale;return function(t){i=i||n,o&&o.attr&&(i=o.attr);var s=t&&t.length?d3.extent(t,(function(t){return t[i]})):[0,1];return void 0!==e&&(e<s[0]||r)&&(s[0]=e),void 0!==a&&(a>s[1]||r)&&(s[1]=a),s}},B=function(t){var e=t.axis;return function(t,a){return\"x\"==e?[0,t]:\"y\"==e?[a,0]:void 0}},G=function(t){var e=t.data,a=t.attr,i=t.min,n=t.max,r=t.forceBounds,o=t.range;return d3.scaleLinear().range(o).domain(P({min:i,max:n,attr:a,forceBounds:r})(e))},H=function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=(t.ruler,e-n.left-n.right),o=a-n.top-n.bottom,s=d3.create(\"svg:svg\").attr(\"class\",\"background\"),l=s.append(\"g\"),c={grid:l.append(\"g\").attr(\"class\",\"grid\"),area:l.append(\"g\").attr(\"class\",\"area\"),axis:l.append(\"g\").attr(\"class\",\"axis\"),point:l.append(\"g\").attr(\"class\",\"point\"),brush:l.append(\"g\").attr(\"class\",\"brush\"),tooltip:l.append(\"g\").attr(\"class\",\"tooltip\").attr(\"display\",\"none\"),ruler:l.append(\"g\").attr(\"class\",\"ruler\"),legend:l.append(\"g\").attr(\"class\",\"legend\")},h=c.area.append(\"svg:mask\").attr(\"id\",\"elevation-clipper\").attr(\"fill-opacity\",1),d=h.append(\"svg:rect\").attr(\"class\",\"zoom\").attr(\"fill\",\"white\"),u=c.area.append(\"svg:foreignObject\").attr(\"mask\",\"url(#\"+h.attr(\"id\")+\")\"),_=u.append(\"xhtml:canvas\").attr(\"class\",\"canvas-plot\"),p=_.node().getContext(\"2d\");c.tooltip.call(I({xCoord:0,yCoord:0,height:o,width:r,labels:{}}));var m=d3.brushX().on(\"start.cursor end.cursor brush.cursor\",(function(){return c.brush.select(\".overlay\").attr(\"cursor\",null)})),f={mask:h,canvas:_,context:p,brush:m},g={svg:s,g:l,panes:c,utils:f,scale:function(t){return{x:G(t.x),y:G(t.y)}},_resize:function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=t.ruler,o=e-n.left-n.right,h=a-n.top-n.bottom;s.attr(\"viewBox\",\"0 0 \".concat(e,\" \").concat(a)).attr(\"width\",e).attr(\"height\",a),l.attr(\"transform\",\"translate(\"+n.left+\",\"+n.top+\")\"),/Mac|iPod|iPhone|iPad/.test(navigator.platform)&&/AppleWebkit/i.test(navigator.userAgent)&&_.style(\"transform\",\"translate(\"+n.left+\"px,\"+n.top+\"px)\"),d.attr(\"x\",0).attr(\"y\",0).attr(\"width\",o).attr(\"height\",h),u.attr(\"width\",o).attr(\"height\",h),_.attr(\"width\",o).attr(\"height\",h),r&&c.ruler.call(O({height:h,width:o})),c.brush.call(m.extent([[0,0],[o,h]])),c.brush.select(\".overlay\").attr(\"cursor\",null),g._width=o,g._height=h,g.svg.dispatch(\"resize\",{detail:{width:o,height:h}})},pane:function(t){return c[t]||(c[t]=l.append(\"g\").attr(\"class\",t)),c[t]},get:function(t){return f[t]}};return g._resize({width:e,height:a,margins:n}),g},X=Object.freeze({__proto__:null,Colors:A,Area:S,Path:z,Axis:D,Grid:F,PositionMarker:E,LegendItem:T,Tooltip:I,Ruler:O,CheckPoint:N,Domain:P,Range:B,Scale:G,Bisect:function(t){var e=t.data,a=void 0===e?[0,1]:e,i=t.scale,n=t.x,r=t.attr;return d3.bisector((function(t){return t[r]})).left(a,i.invert(n))},Chart:H}),U=L.Class.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,initialize:function(t,e){var a=this;this.options=t,this.control=e,this._data=[],this._props={scales:{},paths:{},areas:{},grids:{},axes:{},legendItems:{},tooltipItems:{}},this._scales={},this._domains={},this._ranges={},this._paths={},this._brushEnabled=t.dragging,this._zoomEnabled=t.zooming;var i=this._chart=H(t);this._container=i.svg;this._grid=i.pane(\"grid\"),this._area=i.pane(\"area\"),this._point=i.pane(\"point\"),this._axis=i.pane(\"axis\"),this._legend=i.pane(\"legend\"),this._tooltip=i.pane(\"tooltip\"),this._ruler=i.pane(\"ruler\"),this._initScale(),this._mask=i.get(\"mask\"),this._context=i.get(\"context\"),this._brush=i.get(\"brush\"),this._zoom=d3.zoom(),this._drag=d3.drag(),this._initInteractions(),this._maskGaps=[],e.on(\"eletrack_added\",(function(t){a._maskGaps.push(t.index),e.once(\"eledata_updated\",(function(t){return a._maskGaps.push(t.index)}))}))},update:function(t){return t&&(t.data&&(this._data=t.data),t.options&&(this.options=t.options)),this._updateScale(),this._updateArea(),this._updateAxis(),this._updateLegend(),this._updateClipper(),this},render:function(){var t=this;return function(e){return e.append((function(){return t._container.node()}))}},clear:function(){this._resetDrag(),this._hideDiagramIndicator(),this._area.selectAll(\"path\").attr(\"d\",\"M0 0\"),this._context.clearRect(0,0,this._width(),this._height()),this._maskGaps=[],this._mask.selectAll(\".gap\").remove()},_drawPath:function(t){var e=this._paths[t],a=this._props.areas[t];e.datum(this._data).attr(\"d\",S(L.extend({},a,{width:this._width(),height:this._height(),scaleX:this._scales[a.scaleX],scaleY:this._scales[a.scaleY]}))),e.classed(\"leaflet-hidden\")||(this.options.preferCanvas?o(this._context,e):this._area.append((function(){return e.node()})))},_hasActiveLayers:function(){var t=this._paths;for(var e in t)if(!t[e].classed(\"leaflet-hidden\"))return!0;return!1},_initBrush:function(t){var e=this,a=function(t){if(e._data.length&&(\"brush\"!=t.type||t.sourceEvent)){var a=e._chart.panes.brush.select(\".overlay\").node(),i=d3.pointers(t,a)[0][0],n=e._data[e._findIndexForXCoord(i)];e.fire(\"mouse_move\",{item:n,xCoord:i})}};this._brush.filter((function(t){return e._brushEnabled&&!t.shiftKey&&!t.button})).on(\"end.update\",(function(t){if(e._data.length){var a=t.selection;if(a){var i=e._findIndexForXCoord(a[0]),n=e._findIndexForXCoord(a[1]);e.fire(\"dragged\",{dragstart:e._data[i],dragend:e._data[n]})}}})).on(\"brush.update\",a),this._chart.panes.brush.on(\"mouseenter.focus touchstart.focus\",this.fire.bind(this,\"mouse_enter\")).on(\"mouseout.focus touchend.focus\",this.fire.bind(this,\"mouse_out\")).on(\"mousemove.focus touchmove.focus\",a)},_initClipper:function(){var t=this,e=this._container,a=this.options.margins,i=this._zoom;i.scaleExtent([1,10]).extent([[a.left,0],[this._width()-a.right,this._height()]]).translateExtent([[a.left,-1/0],[this._width()-a.right,1/0]]).filter((function(e){return t._zoomEnabled&&(e.shiftKey||4==e.buttons)})).on(\"start\",(function(a){a.sourceEvent&&\"mousedown\"==a.sourceEvent.type&&e.style(\"cursor\",\"grabbing\"),1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!0),t._mask&&t._point.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")),t.zooming=!0})).on(\"end\",(function(a){1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!1),t._mask&&t._point.attr(\"mask\",null)),t.zooming=!1,e.style(\"cursor\",\"\")})).on(\"zoom\",(function(e){t.zooming=!1,t._updateScale(),t.zooming=!0,t._scales.distance=t._x=e.transform.rescaleX(t._x),t._scales.time&&(t._scales.time=e.transform.rescaleX(t._scales.time)),t._resetDrag(),e.sourceEvent&&\"mousemove\"==e.sourceEvent.type&&t._hideDiagramIndicator(),t.fire(\"zoom\")})),e.call(i)},_initInteractions:function(){this._initBrush(),this._initRuler(),this._initClipper(),this._initLegend()},_initLegend:function(){var t=this;this._container.on(\"legend_clicked\",(function(e){var a=e.detail,i=a.path,n=a.legend,r=a.name,o=a.enabled;if(i){var s=y(\"text\",n),l=y(\"rect\",n);_(s,\"text-decoration-line\",\"line-through\",o),_(l,\"fill-opacity\",\"0\",o),h(i,\"leaflet-hidden\",o),t._updateArea(),t.fire(\"elepath_toggle\",{path:i,name:r,legend:n,enabled:o})}}))},_initRuler:function(){var t=this;if(this.options.ruler){var e=d3.format(\".0f\"),a=this._drag;a.on(\"start end\",(function(e,a){var i=t._height(),n=t._ruler.data()[0].y;(n>=i||n<=0)&&t._ruler.select(\".horizontal-drag-label\").text(\"\"),t._hideDiagramIndicator()})).on(\"drag\",(function(a,i){var n=t._height(),r=d3.pointers(a,t._area.node())[0][1],o=r>0?r<n?r:n:0,s=t._y.invert(o),l=L.extend(t._ruler.data()[0],{y:o});t._ruler.data([l]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})).classed(\"active\",o<n),t._container.select(\".horizontal-drag-label\").text(e(s)+\" \"+(t.options.imperial?\"ft\":\"m\")),t.fire(\"ruler_filter\",{coords:r<n&&r>0?t._findCoordsForY(r):[]})})),this._ruler.call(a)}},_initScale:function(){var t=this.options;this._registerAxisScale({axis:\"x\",position:\"bottom\",attr:t.xAttr,min:t.xAxisMin,max:t.xAxisMax,name:\"distance\"}),this._registerAxisScale({axis:\"y\",position:\"left\",attr:t.yAttr,min:t.yAxisMin,max:t.yAxisMax,name:\"altitude\"}),this._x=this._scales.distance,this._y=this._scales.altitude},_registerAreaPath:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options;t.xAttr||(t.xAttr=e.xAttr),t.yAttr||(t.yAttr=e.yAttr),void 0===t.preferCanvas&&(t.preferCanvas=e.preferCanvas);var a=z(t);this._paths[t.name]=a,this._props.areas[t.name]=t,e.legend&&(this._props.legendItems[t.name]={name:t.name,label:t.label,color:t.color,path:a})},_registerAxisGrid:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x),this._props.grids[t.name||t.axis]=t},_registerAxisScale:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options,a=t.scale;if(\"function\"==typeof this._scales[t.name])t.scale=this._scales[t.name];else if(\"function\"!=typeof a){(a=L.extend({data:this._data,forceBounds:e.forceAxisBounds},a)).attr=a.attr||t.name;var i=this._domains[t.name]=P(t),n=this._ranges[t.name]=B(t);a.range=a.range||n(this._width(),this._height()),a.domain=a.domain||i(this._data),this._props.scales[t.name]=a,t.scale=this._scales[t.name]=G(a)}return t.ticks||(\"x\"==t.axis?t.ticks=e.xTicks:\"y\"==t.axis&&(t.ticks=e.yTicks)),this._props.axes[t.name]=t,a},_registerCheckPoint:function(t){var e,a,i;this._data.length&&(t.latlng?(e=this._data[this._findIndexForLatLng(t.latlng)],a=this._x(e.dist),i=this._y(e.z)):isNaN(t.dist)||(a=this._x(t.dist),e=this._data[this._findIndexForXCoord(a)],i=this._y(e.z)),this._point.call(N({point:t,width:this._width(),height:this._height(),x:a,y:i})))},_registerTooltip:function(t){var e;t.order=null!==(e=t.order)&&void 0!==e?e:100,this._props.tooltipItems[t.name]=t},_updateArea:function(){var t=this._paths;for(var e in this._context.clearRect(0,0,this._width(),this._height()),t)t[e].classed(\"leaflet-hidden\")||this._drawPath(e)},_updateAxis:function(){var t=this.options;this._grid.selectAll(\"g\").remove(),this._axis.selectAll(\"g\").remove();var e,a,i,n=this._props.grids,r=this._props.axes,o={width:this._width(),height:this._height(),tickFormat:\"\"},s={width:this._width(),height:this._height()};for(var l in n)e=L.extend({},o,n[l]),i=F(e),this._grid.call(i);for(var c in r)!1!==t[c]&&\"summary\"!==t[c]&&(e=L.extend({},s,r[c]),a=D(e),this._axis.call(a));this._axis.selectAll(\".y.axis.right\").each((function(t,e,a){var i=d3.select(a[e]),n=i.attr(\"transform\"),r=n.substring(n.indexOf(\"(\")+1,n.indexOf(\")\")).split(\",\");i.attr(\"transform\",\"translate(\"+(+r[0]+40*e)+\",\"+r[1]+\")\"),e>0&&(i.select(\":scope > path\").attr(\"opacity\",.25),i.selectAll(\":scope > .tick line\").attr(\"opacity\",.75))}))},_updateClipper:function(){var t=this,e=this.options.margins;this._zoom.scaleExtent([1,10]).extent([[e.left,0],[this._width()-e.right,this._height()]]).translateExtent([[e.left,-1/0],[this._width()-e.right,1/0]]),this._mask.selectAll(\".gap\").remove(),this._maskGaps.forEach((function(e,a){if(!(a>=t._maskGaps.length-2)){var i=t._data[t._maskGaps[a]],n=t._data[t._maskGaps[a+1]],r=t._x(t._data[t._findIndexForLatLng(i.latlng)].dist),o=t._x(t._data[t._findIndexForLatLng(n.latlng)].dist);t._mask.append(\"rect\").attr(\"x\",r).attr(\"y\",0).attr(\"width\",o-r).attr(\"height\",t._height()).attr(\"class\",\"gap\").attr(\"fill-opacity\",\"0.8\").attr(\"fill\",\"black\")}}))},_updateLegend:function(){var t=this;if(!1!==this.options.legend){var e,a=this._props.legendItems;for(var i in this._legend.selectAll(\"g\").remove(),a)e=T(L.extend({width:this._width(),height:this._height(),margins:this.options.margins},a[i])),this._legend.append(\"g\").call(e);var n=this._legend.selectAll(\".legend-item\"),r=n.nodes().length,o=Array(Math.floor(r/2)).fill(null).map((function(t,e){return 2*(e+1)-(1-Math.sign(r%2))})),s=o.slice().reverse().map((function(t){return-t}));r%2!=0&&s.push(0),o=s.concat(o);var l=this._axis.selectAll(\".x.axis.bottom\").nodes().length,c=30+2*l,h=30*r;r&&this.options.margins.right<h&&(this.options.margins.right=h,this.fire(\"margins_updated\")),l&&this.options.margins.bottom<c&&(this.options.margins.bottom=c,this.fire(\"margins_updated\")),n.each((function(e,a,i){var n=d3.select(i[a]),r=(n.select(\"rect\"),n.attr(\"data-name\")),s=t._paths[r],c=55*o[a],h=2*l;n.attr(\"transform\",\"translate(\"+c+\", \"+h+\")\"),r in t.options&&\"disabled\"==t.options[r]&&(s.classed(\"leaflet-hidden\",!0),n.select(\"text\").style(\"text-decoration-line\",\"line-through\"),n.select(\"rect\").style(\"fill-opacity\",\"0\")),t._mask&&s.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")}))}},_updateScale:function(){if(this.zooming)return{x:this._x,y:this._y};for(var t in this._scales)this._scales[t].domain(this._domains[t](this._data)).range(this._ranges[t](this._width(),this._height()));return{x:this._x,y:this._y}},_width:function(){return this._chart._width},_height:function(){return this._chart._height},_findCoordsForY:function(t){var e,a=this._data,i=this._y.invert(t),n=a.reduce((function(t,e,a){return e.z>=i&&t.push(a),t}),[]),r=0;return n.reduce((function(t,i,o){return n[e=o+1]===n[o]+1&&e!==n.length||(t.push(n.slice(r,e).map((function(t){return a[t].latlng}))),r=e),t}),[])},_findIndexForXCoord:function(t){var e=this;return d3.bisector((function(t){return t[e.options.xAttr]})).left(this._data||[0,1],this._x.invert(t))},_findIndexForLatLng:function(t){var e=null,a=1/0;return this._data.forEach((function(i,n){var r=t.distanceTo(i.latlng);r<a&&(a=r,e=n)})),e},_resetDrag:function(){this._chart.panes.brush.select(\".selection\").attr(\"width\")&&(this._chart.panes.brush.call(this._brush.clear),this._hideDiagramIndicator(),this.fire(\"reset_drag\"))},_resetZoom:function(){this._zoom&&this._zoom.transform(this._chart.svg,d3.zoomIdentity)},_showDiagramIndicator:function(t,e){this._tooltip.attr(\"display\",null).call(I({xCoord:e,yCoord:this._y(t[this.options.yAttr]),height:this._height(),width:this._width(),labels:this._props.tooltipItems,item:t}))},_hideDiagramIndicator:function(){this._tooltip.attr(\"display\",\"none\")}});function j(t){return(j=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var R,J=L.Class.extend({initialize:function(t){switch(this.options=t,this.options.marker){case\"elevation-line\":break;case\"position-marker\":this._marker=L.marker([0,0],{icon:this.options.markerIcon,zIndexOffset:1e6,interactive:!1})}return this._labels={},this},addTo:function(t){switch(this._map=t,this.options.marker){case\"elevation-line\":this._container=d3.select(t.getPane(\"elevationPane\")).select(\"svg > g\").call(E({}));break;case\"position-marker\":this._marker.addTo(t,{pane:\"overlayPane\"})}return this},update:function(t){if(t?this._props=t:t=this._props,t)switch(t.options&&(this.options=t.options),this._map||this.addTo(t.map),this._latlng=t.item.latlng,this.options.marker){case\"elevation-line\":if(this._container){var e=this._map.latLngToLayerPoint(this._latlng);e=L.extend({},t.item,this._map._rotate?this._map.rotatedPointToMapPanePoint(e):e),this._container.classed(\"leaflet-hidden\",!1),this._container.call(E({theme:this.options.theme,xCoord:e.x,yCoord:e.y,length:e.y-this._height()/t.maxElevation*e.z,labels:this._labels,item:e}))}break;case\"position-marker\":c(this._marker.getElement(),\"leaflet-hidden\"),this._marker.setLatLng(this._latlng)}},remove:function(){switch(this._props=null,this.options.marker){case\"elevation-line\":this._container&&this._container.classed(\"leaflet-hidden\",!0);break;case\"position-marker\":l(this._marker.getElement(),\"leaflet-hidden\")}},getLatLng:function(){return this._latlng},_height:function(){var t=this.options;return t.height-t.margins.top-t.margins.bottom},_registerTooltip:function(t){this._labels[t.name]=t}}),Y=L.Class.extend({initialize:function(t,e){this.options=t,this.control=e,this.labels={},u(this._container=m(\"div\",\"elevation-summary \"+(t.summary?t.summary+\"-summary\":\"\")),\"max-width\",t.width?t.width+\"px\":\"\")},render:function(){var t=this;return function(e){return e.append((function(){return t._container}))}},reset:function(){this._container.innerHTML=\"\"},append:function(t,e,a){return this._container.innerHTML+='<span class=\"'.concat(t,'\"><span class=\"summarylabel\">').concat(e,'</span><span class=\"summaryvalue\">').concat(a,\"</span></span>\"),this},update:function(){var t=this;Object.keys(this.labels).sort((function(e,a){return t.labels[e].order-t.labels[a].order})).forEach((function(e){t.append(e,L._(t.labels[e].label),\"function\"!=typeof t.labels[e].value?t.labels[e].value:t.labels[e].value(t.control.track_info))}))},_registerSummary:function(t){for(var e in t){var a;t[e].order=null!==(a=t[e].order)&&void 0!==a?a:100,this.labels[e]=t[e]}}}),V={autofitBounds:!0,autohide:!L.Browser.mobile,autohideMarker:!0,almostover:!0,altitude:!0,collapsed:!1,detached:!0,distance:!0,distanceMarkers:{lazy:!0,distance:!0,direction:!0},decimalsX:2,decimalsY:0,dragging:!L.Browser.mobile,downloadLink:\"link\",elevationDiv:\"#elevation-div\",followMarker:!0,forceAxisBounds:!1,height:200,imperial:!1,interpolation:\"curveLinear\",lazyLoadJS:!0,legend:!0,margins:{top:30,right:30,bottom:30,left:40},marker:\"elevation-line\",markerIcon:L.divIcon({className:\"elevation-position-marker\",html:'<i class=\"elevation-position-icon\"></i>',iconSize:[32,32],iconAnchor:[16,16]}),position:\"topright\",polyline:{className:\"elevation-polyline\",color:\"#000\",opacity:.75,weight:5,lineCap:\"round\"},polylineSegments:{className:\"elevation-polyline-segments\",color:\"#F00\",interactive:!1},preferCanvas:!1,reverseCoords:!1,ruler:!0,skipNullZCoords:!1,theme:\"lightblue-theme\",summary:\"inline\",slope:!1,slopeDeltaMax:void 0,slopeRange:void 0,speed:!1,speedDeltaMax:void 0,speedRange:void 0,time:!1,timeFactor:3600,timeFormat:!1,timestamps:!1,width:600,waypoints:!0,wptIcons:{\"\":L.divIcon({className:\"elevation-waypoint-marker\",html:'<i class=\"elevation-waypoint-icon default\"></i>',iconSize:[30,30],iconAnchor:[8,30]})},wptLabels:!0,xAttr:\"dist\",xLabel:\"km\",xTicks:void 0,yAttr:\"z\",yAxisMax:void 0,yAxisMin:void 0,yLabel:\"m\",yTicks:void 0,zFollow:!1,zooming:!L.Browser.Mobile},W=L.Control.Elevation=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:V,__mileFactor:.621371,__footFactor:3.28084,__D3:\"https://unpkg.com/d3@6.5.0/dist/d3.min.js\",__TOGEOJSON:\"https://unpkg.com/@tmcw/togeojson@4.5.0/dist/togeojson.umd.js\",__LGEOMUTIL:\"https://unpkg.com/leaflet-geometryutil@0.9.3/src/leaflet.geometryutil.js\",__LALMOSTOVER:\"https://unpkg.com/leaflet-almostover@1.0.1/src/leaflet.almostover.js\",__LDISTANCEM:\"https://unpkg.com/@raruto/leaflet-elevation@1.9.6/libs/leaflet-distance-marker.min.js\",addData:function(t,e){var a=this;this.lazyLoad(this.__D3).then((function(){void 0===e&&t.on&&(e=t),a._addData(t),a._addLayer(e),a._fireEvt(\"eledata_added\",{data:t,layer:e,track_info:a.track_info})}))},addTo:function(t){if(this.options.detached){var e=this._initElevationDiv();e.isConnected||g(t.getContainer(),e,\"afterend\"),f(e,this.onAdd(t))}else L.Control.prototype.addTo.call(this,t);return this},clear:function(){this._marker&&this._marker.remove(),this._chart&&this._clearChart(),this._layers&&this._clearLayers(),this._markers&&this._clearMarkers(),this._data=[],this.track_info={},this._fireEvt(\"eledata_clear\"),this._updateChart()},_clearChart:function(){var t=this;this._events&&this._events.elechart_updated&&this._events.elechart_updated.forEach((function(e){return t.off(\"elechart_updated\",e.fn,e.ctx)})),this._chart&&this._chart._container&&(this._chart._container.selectAll(\"g.point .point\").remove(),this._chart.clear())},_clearLayers:function(){this._layers&&this._layers.eachLayer&&(this._layers.eachLayer((function(t){return t.remove()})),this._layers.clearLayers())},_clearMarkers:function(){this._markers&&this._markers.eachLayer&&(this._markers.eachLayer((function(t){return t.remove()})),this._markers.clearLayers())},disableBrush:function(){this._chart._brushEnabled=!1,this._resetDrag()},enableBrush:function(){this._chart._brushEnabled=!0},disableZoom:function(){this._chart._zoomEnabled=!1,this._chart._resetZoom()},enableZoom:function(){this._chart._zoomEnabled=!0},fitBounds:function(t){t=t||this.getBounds(),this._map&&t.isValid()&&this._map.fitBounds(t)},getBounds:function(t){return t=t||this._data,L.latLngBounds(t.map((function(t){return t.latlng})))},getZFollow:function(){return this.options.zFollow},hide:function(){u(this._container,\"display\",\"none\")},initialize:function(t){this._data=[],this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._markedSegments=L.polyline([]),this._chartEnabled=!0,this.track_info={},this.handlers=[],L.setOptions(this,t),this.options.followMarker&&(this._setMapView=L.Util.throttle(this._setMapView,300,this)),this.options.legend&&(this.options.margins.bottom+=30),this.options.theme&&(this.options.polylineSegments.className+=\" \"+this.options.theme),!0===this.options.wptIcons&&(this.options.wptIcons=V.wptIcons),!0===this.options.distanceMarkers&&(this.options.distanceMarkers=V.distanceMarkers),this._markedSegments.setStyle(this.options.polylineSegments),L.extend(A,this.options.colors||{}),this._fixCanvasPaths(),this._fixTooltipSize()},lazyLoad:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\";if(!this.options.lazyLoadJS)return Promise.resolve();switch(t){case this.__D3:a=\"_d3LazyLoader\",e=\"object\"!==(\"undefined\"==typeof d3?\"undefined\":j(d3));break;case this.__TOGEOJSON:a=\"_togeojsonLazyLoader\",e=\"object\"!==(\"undefined\"==typeof toGeoJSON?\"undefined\":j(toGeoJSON));break;case this.__LGEOMUTIL:a=\"_geomutilLazyLoader\",e=\"object\"!==j(L.GeometryUtil);break;case this.__LALMOSTOVER:a=\"_almostoverLazyLoader\",e=\"function\"!=typeof L.Handler.AlmostOver;break;case this.__LDISTANCEM:a=\"_distanceMarkersLazyLoader\",e=\"function\"!=typeof L.DistanceMarkers}return L.Control.Elevation[a]=r(t,e,L.Control.Elevation[a])},load:function(t){var e=this;this._parseFromString(t).then((function(a){return a?e._loadLayer(a):e._loadFile(t)}))},onAdd:function(t){var e=this;this._map=t;var a=this._container=m(\"div\",\"elevation-control elevation \"+this.options.theme+\" \"+(this.options.detached?\"\":\"leaflet-control\"));return this.lazyLoad(this.__D3).then((function(){e._initButton(a),e._initChart(a),e._initSummary(a),e._initMarker(t),e._initLayer(t),t.on(\"zoom viewreset zoomanim\",e._hideMarker,e).on(\"resize\",e._resetView,e).on(\"resize\",e._resizeChart,e).on(\"rotate\",e._rotateMarker,e).on(\"mousedown\",e._resetDrag,e),x(t.getContainer(),\"mousewheel\",e._resetDrag,e),x(t.getContainer(),\"touchstart\",e._resetDrag,e),x(document,\"keydown\",e._keydownHandler,e),e.on(\"eledata_added eledata_loaded\",e._updateChart,e).on(\"eledata_added eledata_loaded\",e._updateSummary,e),e._updateChart(),e._updateSummary()})),a},onRemove:function(t){this._container=null,t.off(\"zoom viewreset zoomanim\",this._hideMarker,this).off(\"resize\",this._resetView,this).off(\"resize\",this._resizeChart,this).off(\"mousedown\",this._resetDrag,this),b(t.getContainer(),\"mousewheel\",this._resetDrag,this),b(t.getContainer(),\"touchstart\",this._resetDrag,this),b(document,\"keydown\",this._keydownHandler,this),this.off(\"eledata_added eledata_loaded\",this._updateChart,this).off(\"eledata_added eledata_loaded\",this._updateSummary,this)},redraw:function(){this._resizeChart()},setZFollow:function(t){this.options.zFollow=t},show:function(){u(this._container,\"display\",\"block\")},_addData:function(t){var e=this;if(t){var a=t.geometry;if(a)switch(a.type){case\"LineString\":this._addGeoJSONData(a.coordinates);break;case\"MultiLineString\":M(a.coordinates,(function(t){return e._addGeoJSONData(t)}));break;default:console.warn(\"Unsopperted GeoJSON feature geometry type:\"+a.type)}\"FeatureCollection\"===t.type&&M(t.features,(function(t){return e._addData(t)})),t._latlngs&&this._addGeoJSONData(t._latlngs,t.feature&&t.feature.properties)}},_addGeoJSONData:function(t,e){var a=this;t.forEach((function(t,i){var n,r,o,s,l;t.meta=null!==(n=t.meta)&&void 0!==n?n:{time:null,ele:null,hr:null,cad:null,atemp:null};var c=e&&e.coordinateProperties||e;a.fire(\"elepoint_init\",{point:t,props:c,id:i}),a._addPoint(null!==(r=t.lat)&&void 0!==r?r:t[1],null!==(o=t.lng)&&void 0!==o?o:t[0],null!==(s=null!==(l=t.alt)&&void 0!==l?l:t.meta.ele)&&void 0!==s?s:t[2]),a.fire(\"elepoint_added\",{point:t,index:a._data.length-1})})),this.fire(\"eletrack_added\",{coords:t,index:this._data.length-1})},_addPoint:function(t,e,a){if(this.options.reverseCoords){var i=[e,t];t=i[0],e=i[1]}this._data.push({x:t,y:e,z:a,latlng:L.latLng(t,e,a)}),this.fire(\"eledata_updated\",{index:this._data.length-1})},_addLayer:function(t){t&&this._layers.addLayer(t),t&&this.options.distanceMarkers&&this.options.distanceMarkers.lazy&&t.on(\"add remove\",(function(t){return L.DistanceMarkers&&t.target instanceof L.Polyline&&t.target[t.type+\"DistanceMarkers\"]()}))},_addMarker:function(t){t&&this._markers.addLayer(t)},_initAlmostOverHandler:function(t,e){var a=this;t&&this.options.almostOver&&this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LALMOSTOVER)})).then((function(){t.addHandler(\"almostOver\",L.Handler.AlmostOver),L.GeometryUtil&&t.almostOver&&t.almostOver.enabled()&&(t.almostOver.addLayer(e),t.on(\"almost:move\",(function(t){return a._mousemoveLayerHandler(t)})).on(\"almost:out\",(function(t){return a._mouseoutHandler(t)})))}))},_initDistanceMarkers:function(t,e){var a=this;t&&(this.options.distanceMarkers?this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LDISTANCEM)})).then((function(){return a.options.polyline&&e.addTo(t)})):this.options.polyline&&e.addTo(t))},_initElevationDiv:function(){var t=y(this.options.elevationDiv);return t||(this.options.elevationDiv=\"#elevation-div_\"+w(),t=m(\"div\",\"leaflet-control elevation elevation-div\",{id:this.options.elevationDiv.substr(1)})),this.options.detached&&d(t,\"leaflet-control\",\"elevation-detached\"),this.eleDiv=t},_initMapIntegrations:function(t,e){var a=t._map;t._map?(a.once(\"layeradd\",(function(a){return t.options.autofitBounds&&t.fitBounds(e.getBounds())})),L.Browser.mobile?t.options.polyline&&e.addTo(a):(t._initAlmostOverHandler(a,e),t._initDistanceMarkers(a,e))):console.warn(\"Undefined elevation map object\")},_collapse:function(){d(this._container,\"elevation-expanded\",\"elevation-collapsed\")},_expand:function(){d(this._container,\"elevation-collapsed\",\"elevation-expanded\")},_fixCanvasPaths:function(){var t=L.Canvas.prototype._fillStroke,e=this;L.Canvas.include({_fillStroke:function(a,i){if(e._layers.hasLayer(i)){var n=e.options.theme.replace(\"-theme\",\"\"),r=A[n]||{},o=i.options;if(o.color=r.line||r.area||n,o.stroke=!!o.color,t.call(this,a,i),o.stroke&&0!==o.weight){var s=a.globalCompositeOperation||\"source-over\";a.globalCompositeOperation=\"destination-over\",a.strokeStyle=r.outline||\"#FFF\",a.lineWidth=1.75*o.weight,a.stroke(),a.globalCompositeOperation=s}}else t.call(this,a,i)}})},_fixTooltipSize:function(){var t=this;this.on(\"elechart_init\",(function(){return t.once(\"elechart_change elechart_hover\",(function(e){t._chartEnabled&&(t._chart._showDiagramIndicator(e.data,e.xCoord),t._chart._showDiagramIndicator(e.data,e.xCoord)),t._updateMarker(e.data)}))}))},_findItemForLatLng:function(t){return this._data[this._chart._findIndexForLatLng(t)]},_findItemForX:function(t){return this._data[this._chart._findIndexForXCoord(t)]},_fireEvt:function(t,e,a){this.fire&&this.fire(t,e,a),this._map&&this._map.fire(t,e,a)},_height:function(){if(this._chart)return this._chart._height();var t=this.options;return t.height-t.margins.top-t.margins.bottom},_hideMarker:function(){this.options.autohideMarker&&this._marker.remove()},_initChart:function(t){var e=this.options;if(e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),e.detached){var a=this.eleDiv,i=a.offsetWidth,n=a.offsetHeight;i>0&&(e.width=i),n>20&&(e.height=n-20)}else{var r=this._map.getContainer().clientWidth;e._maxWidth=e._maxWidth>e.width?e._maxWidth:e.width,this._container.style.maxWidth=e._maxWidth+\"px\",e._maxWidth>r&&(e.width=r-30)}var o=this._chart=new U(e,this);this._x=this._chart._x,this._y=this._chart._y,d3.select(t).call(o.render()),o.on(\"reset_drag\",this._hideMarker,this).on(\"mouse_enter\",this._mouseenterHandler,this).on(\"dragged\",this._dragendHandler,this).on(\"mouse_move\",this._mousemoveHandler,this).on(\"mouse_out\",this._mouseoutHandler,this).on(\"ruler_filter\",this._rulerFilterHandler,this).on(\"zoom\",this._updateChart,this).on(\"elepath_toggle\",this._toggleChartHandler,this).on(\"margins_updated\",this._resizeChart,this),this.fire(\"elechart_axis\"),this.options.legend&&this.fire(\"elechart_legend\"),this.fire(\"elechart_init\")},_initLayer:function(){var t=this;this._layers.on(\"layeradd layerremove\",(function(e){var a=e.layer;h(a.getElement&&a.getElement(),t.options.polyline.className+\" \"+t.options.theme,\"layeradd\"==e.type),p(a,\"mousemove\",t._mousemoveLayerHandler.bind(t),\"layeradd\"==e.type),p(a,\"mouseout\",t._mouseoutHandler.bind(t),\"layeradd\"==e.type)}))},_initMarker:function(t){var e=t.getPane(\"elevationPane\");e||((e=this._pane=t.createPane(\"elevationPane\",t.getPane(\"norotatePane\")||t.getPane(\"mapPane\"))).style.zIndex=625,e.style.pointerEvents=\"none\"),this._renderer&&this._renderer.remove(),this._renderer=L.svg({pane:\"elevationPane\"}).addTo(this._map),this._marker=new J(this.options),this.fire(\"elechart_marker\")},_initButton:function(t){if(!L.Browser.mobile&&this.options.detached||L.DomEvent.disableClickPropagation(t).disableScrollPropagation(t),!this.options.detached){var e=this._button=m(\"a\",\"elevation-toggle elevation-toggle-icon\"+(this.options.autohide?\"\":\" close-button\"),{href:\"#\",title:L._(\"Elevation\")},t);this.options.collapsed&&(this._collapse(),this.options.autohide?(x(t,\"mouseover\",this._expand,this),x(t,\"mouseout\",this._collapse,this)):(x(e,\"click\",L.DomEvent.stop),x(e,\"click\",this._toggle,this)),x(e,\"focus\",this._toggle,this),this._map.on(\"click\",this._collapse,this))}},_initSummary:function(t){this._summary=new Y({summary:this.options.summary},this),d3.select(t).call(this._summary.render())},_keydownHandler:function(t){this.options.detached||\"Escape\"!==t.key||this._collapse()},_loadFile:function(t){var e=this;fetch(t).then((function(t){return t.text()})).then((function(a){e._downloadURL=t,e._parseFromString(a).then((function(t){return t&&e._loadLayer(t)}))})).catch((function(t){return console.warn(t)}))},_loadLayer:function(t){var e=this,a=e.options,i=a.wptIcons,n=a.wptLabels,r=L.geoJson(t,{distanceMarkers:e.options.distanceMarkers,style:function(t){var a=L.extend({},e.options.polyline);return e.options.theme&&(a.className+=\" \"+e.options.theme),a},pointToLayer:function(t,a){var r,o,s;if(e.options.waypoints){var l=t.properties,c=null!==(r=l.desc)&&void 0!==r?r:\"\",h=null!==(o=l.name)&&void 0!==o?o:\"\",d=(null!==(s=l.sym)&&void 0!==s?s:h).replace(\" \",\"-\").replace('\"',\"\").replace(\"'\",\"\").toLowerCase();if([!0,\"dots\"].includes(e.options.waypoints)&&e._registerCheckPoint({latlng:a,label:[!0,\"dots\"].includes(n)?h:\"\"}),[!0,\"markers\"].includes(e.options.waypoints)&&0!=i){i.hasOwnProperty(d)||(i[d]=L.divIcon(L.extend({},i[\"\"].options,{html:'<i class=\"elevation-waypoint-icon '+d+'\"></i>'})));var u=L.marker(a,{icon:i[d]});if([!0,\"markers\"].includes(n)&&(h||c)){var _=decodeURI(\"<b>\"+h+\"</b>\"+(c.length>0?\"<br>\"+c:\"\"));u.bindPopup(_,{className:\"elevation-popup\",keepInView:!0}).openPopup(),u.bindTooltip(_,{className:\"elevation-tooltip\",direction:\"auto\",sticky:!0,opacity:1}).openTooltip()}return e._addMarker(u),e.fire(\"waypoint_added\",{point:u,element:a,properties:l}),u}}},onEachFeature:function(a,i){a.geometry&&\"Point\"!=a.geometry.type&&(e.addData(i),e.track_info=L.extend({},e.track_info,{name:t.name}))}});return e.lazyLoad(e.__D3).then((function(){e._initMapIntegrations(e,r),e._fireEvt(\"eledata_loaded\",{data:t,layer:r,name:e.track_info.name,track_info:e.track_info})})),r},_dragendHandler:function(t){this._hideMarker(),this.fitBounds(L.latLngBounds([t.dragstart.latlng,t.dragend.latlng])),this.fire(\"elechart_dragged\")},_mouseenterHandler:function(t){this.fire(\"elechart_enter\")},_mousemoveHandler:function(t){if(this._data.length&&this._chartEnabled){var e=this._findItemForX(t.xCoord);if(e){var a=t.xCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this._setMapView(e),this._map&&l(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_change\",{data:e,xCoord:a}),this.fire(\"elechart_hover\",{data:e,xCoord:a})}}},_mousemoveLayerHandler:function(t){if(this._data.length){var e=this._findItemForLatLng(t.latlng);if(e){var a=e.xDiagCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this.fire(\"elechart_change\",{data:e,xCoord:a})}}},_mouseoutHandler:function(){this.options.detached||(this._hideMarker(),this._chart._hideDiagramIndicator()),this._map&&c(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_leave\")},_parseFromGeoJSONString:function(t){try{return JSON.parse(t)}catch(t){}},_parseFromString:function(t){var e=this;return new Promise((function(a){return e.lazyLoad(e.__TOGEOJSON).then((function(){var i;try{i=e._parseFromXMLString(t.trim())}catch(a){i=e._parseFromGeoJSONString(t.toString())}i&&(i=e._prepareMultiLineStrings(i),i=e._prepareAdditionalProperties(i)),a(i)}))}))},_parseFromXMLString:function(t){var e;if(0!=t.indexOf(\"<\"))throw\"Invalid XML\";var a=(new DOMParser).parseFromString(t,\"text/xml\"),i=a.documentElement.tagName.toLowerCase(),n=a.getElementsByTagName(\"name\");if(a.getElementsByTagName(\"parsererror\").length)throw\"Invalid XML\";i in toGeoJSON||(i=\"TrainingCenterDatabase\"==a.documentElement.tagName?\"tcx\":\"gpx\");var r=toGeoJSON[i](a);return r.name=n.length>0?(null!==(e=Array.from(n).find((function(t){return\"trk\"==t.parentElement.tagName})))&&void 0!==e?e:n[0]).textContent:\"\",r},_prepareAdditionalProperties:function(t){return!t.name&&this._downloadURL&&(t.name=this._downloadURL.split(\"/\").pop().split(\"#\")[0].split(\"?\")[0]),t},_prepareMultiLineStrings:function(t){return t.features.forEach((function(e){\"MultiLineString\"==e.geometry.type&&e.geometry.coordinates.forEach((function(a){t.features.push({geometry:{type:\"LineString\",coordinates:a},properties:e.properties,type:\"Feature\"})}))})),t.features.filter((function(t){return\"MultiLineString\"!=t.geometry.type}))},_registerAreaPath:function(t){var e=this;this.on(\"elechart_init\",(function(){return e._chart._registerAreaPath(t)}))},_registerAxisGrid:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisGrid(t)}))},_registerAxisScale:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisScale(t)}))},_registerCheckPoint:function(t){var e=this;this.on(\"elechart_updated\",(function(){return e._chart._registerCheckPoint(t)}))},_registerDataAttribute:function(t){var e=this,a=null;t.init&&this.on(\"elepoint_init\",(function(a){return t.init.call(e,a)})),this.on(\"elepoint_added\",(function(i){if(!1===t.skipNull){var n=e._data[i.index][t.name];if(i.index>0){var r=e._data[i.index-1][t.name];if(isNaN(r)){if(isNaN(a)||isNaN(n)?isNaN(a)?isNaN(n)||(r=n):r=a:r=(a+n)/2,!isNaN(r))return e._data.splice(i.index-1,1);e._data[i.index-1][t.name]=r}}isNaN(n)||(a=n)}e._data[i.index][t.name]=t.fetch.call(e,i.index,i.point),t.update&&(e._data[i.index][t.name]=t.update.call(e,e._data[i.index][t.name],i.index,i.point))}))},_registerTooltip:function(t){var e=this;if(t.chart){var a=L.extend({},t,{value:t.chart});this.on(\"elechart_init\",(function(){return e._chart._registerTooltip(a)}))}if(t.marker){var i=L.extend({},t,{value:t.marker});this.on(\"elechart_marker\",(function(){return e._marker._registerTooltip(i)}))}},_registerSummary:function(t){var e=this;this.on(\"elechart_summary\",(function(){return e._summary._registerSummary(t)}))},_resetDrag:function(){this._chart._resetDrag(),this._hideMarker()},_resetView:function(){this._map&&this._map._isFullscreen||(this._resetDrag(),this._hideMarker(),this.options.autofitBounds&&this.fitBounds())},_resizeChart:function(){if(this._container&&\"none\"!=u(this._container,\"display\")){var t,e=this.options;if(e.detached)t=(this.eleDiv||this._container).offsetWidth;else{var a=this._map.getContainer().clientWidth;t=e._maxWidth>a?a-30:e._maxWidth}if(t){var i=this._chart;e.width=t,i&&i._chart&&(i._chart._resize(e),e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),this._updateChart())}this._updateMapSegments()}},_rulerFilterHandler:function(t){this._updateMapSegments(t.coords)},_toggle:function(){k(this._container,\"elevation-expanded\")?this._collapse():this._expand()},_setMapView:function(t){if(this.options.followMarker&&this._map){var e=this._map.getZoom(),a=this.options.zFollow;\"number\"==typeof a?this._map.setView(t.latlng,e<a?a:e,{animate:!0,duration:.25}):this._map.getBounds().contains(t.latlng)||this._map.setView(t.latlng,e,{animate:!0,duration:.25})}},_toggleChartHandler:function(t){var e=this,a=t.name,i=t.enabled;this._chartEnabled=this._chart._hasActiveLayers(),this._layers.eachLayer((function(t){return h(t.getElement&&t.getElement(),e.options.polyline.className+\" \"+e.options.theme,e._chartEnabled)})),this.options[a]=i||\"disabled\"!=this.options[a]?\"disabled\":\"enabled\",this._chartEnabled||(this._chart._hideDiagramIndicator(),this._marker.remove())},_updateChart:function(){\n/*!this._data.length ||*/\nthis._chart&&this._container&&(this.fire(\"elechart_axis\"),this.fire(\"elechart_area\"),this._chart.update({data:this._data,options:this.options}),this._x=this._chart._x,this._y=this._chart._y,this.fire(\"elechart_updated\"))},_updateMarker:function(t){this._marker&&this._marker.update({map:this._map,item:t,maxElevation:this.track_info.elevation_max||0,options:this.options})},_rotateMarker:function(){this._marker&&this._marker.update()},_updateMapSegments:function(t){this._markedSegments.setLatLngs(t||[]),t&&this._map&&!this._map.hasLayer(this._markedSegments)&&this._markedSegments.addTo(this._map)},_updateSummary:function(){var t=this;this._summary.reset(),this.options.summary&&(this.fire(\"elechart_summary\"),this._summary.update()),this.options.downloadLink&&this._downloadURL&&(this._summary._container.innerHTML+='<span class=\"download\"><a href=\"#\">'+L._(\"Download\")+\"</a></span>\",y(\".download a\",this._summary._container).onclick=function(e){e.preventDefault();var a={downloadLink:t.options.downloadLink,confirm:n.bind(t,t._downloadURL)};\"modal\"==t.options.downloadLink&&\"function\"==typeof CustomEvent?document.dispatchEvent(new CustomEvent(\"eletrack_download\",{detail:a})):\"link\"!=t.options.downloadLink&&!0!==t.options.downloadLink||a.confirm(),t.fire(\"eletrack_download\",a)})},_width:function(){if(this._chart)return this._chart._width();var t=this.options;return t.width-t.margins.left-t.margins.right},_xTicks:function(){return this.__xTicks&&(this.__xTicks=this.options.xTicks),this.__xTicks||Math.round(this._width()/75)},_yTicks:function(){return this.__yTicks&&(this.__yTicks=this.options.yTicks),this.__yTicks||Math.round(this._height()/30)}});W.addInitHook((function(){var t=this,e=this.options,a={};e.imperial?(e.distanceFactor=this.__mileFactor,a.label=\"mi\"):(e.distanceFactor=e.distanceFactor||1,a.label=e.xLabel),this._registerDataAttribute({name:\"dist\",init:function(){},fetch:function(a){var i=t._data[a].latlng.distanceTo(t._data[a>0?a-1:a].latlng)*e.distanceFactor;return Math.round(i/1e3*1e5)/1e5},update:function(e){return t.track_info.distance=t.track_info.distance||0,t.track_info.distance+=e,t.track_info.distance}}),\"summary\"!=this.options.distance&&this._registerAxisScale({axis:\"x\",position:\"bottom\",scale:\"x\",label:a.label,labelY:25,labelX:function(){return t._width()+6},name:\"distance\"}),this._registerAxisGrid({axis:\"x\",position:\"bottom\",scale:\"x\"}),this._registerTooltip({name:\"x\",chart:function(t){return L._(\"x: \")+d3.format(\".\"+e.decimalsX+\"f\")(t[e.xAttr])+\" \"+a.label},order:20}),this._registerSummary({totlen:{label:\"Total Length: \",value:function(t){return(t.distance||0).toFixed(2)+\"&nbsp;\"+a.label},order:10}})})),W.addInitHook((function(){var t=this,e=this.options,a={};a.label=e.timeLabel||\"t\",e.timeFactor=e.timeFactor||3600,this._timeAVGSpeed=(e.timeAVGSpeed||3.6)*(e.speedFactor||1),e.timeFormat?\"time\"==e.timeFormat?e.timeFormat=function(t){return new Date(t).toLocaleTimeString()}:\"date\"==e.timeFormat&&(e.timeFormat=function(t){return new Date(t).toLocaleDateString()}):e.timeFormat=function(t){return new Date(t).toLocaleString().replaceAll(\"/\",\"-\").replaceAll(\",\",\" \")},e.xTimeFormat=e.xTimeFormat||function(t){return i(t).split(\"'\")[0]},this._registerDataAttribute({name:\"time\",init:function(t){var e=t.point,a=t.props,i=t.id;a&&(\"coordTimes\"in a?e.meta.time=new Date(Date.parse(a.coordTimes[i])):\"times\"in a?e.meta.time=new Date(Date.parse(a.times[i])):\"time\"in a&&(e.meta.time=new Date(Date.parse(\"object\"===j(a.time)?a.time[i]:a.time))))},fetch:function(t,e){if(!e.meta||!e.meta.time)if(e.meta=e.meta||{},t>0){var a=this._data[t].dist-this._data[t-1].dist,i=this._data[t-1].time.getTime(),n=a/this._timeAVGSpeed*this.options.timeFactor*1e3;e.meta.time=new Date(i+n)}else e.meta.time=new Date(Date.now());var r=e.meta.time;return r.getTime()-60*r.getTimezoneOffset()*1e3==0&&(r=0),r},update:function(t,e){return this.track_info.time=(this.track_info.time||0)+Math.abs(this._data[e].time-this._data[e>0?e-1:e].time),this._data[e].duration=this.track_info.time,t}}),e.time&&\"summary\"!=e.time&&!L.Browser.mobile&&this._registerAxisScale({axis:\"x\",position:\"top\",scale:{attr:\"duration\",min:0},label:a.label,labelY:-10,labelX:function(){return t._width()},name:\"time\",tickFormat:function(t){return 0==t?\"\":e.xTimeFormat(t)},onAxisMount:function(e){e.select(\".domain\").remove(),e.selectAll(\"text\").attr(\"opacity\",.65).style(\"font-family\",\"Monospace\").style(\"font-size\",\"110%\"),e.selectAll(\".tick line\").attr(\"y2\",t._height()).attr(\"stroke-dasharray\",2).attr(\"opacity\",.75)}}),this.options.timestamps&&this._registerTooltip({name:\"date\",chart:function(e){return L._(\"t: \")+t.options.timeFormat(e.time)},order:20}),this.options.time&&(this._registerTooltip({name:\"time\",chart:function(t){return L._(\"T: \")+i(t.duration||0)},order:20}),this._registerSummary({tottime:{label:\"Total Time: \",value:function(t){return i(t.time||0)},order:20}}))})),W.addInitHook((function(){var t=this,e=this.options,a={},i=e.theme.replace(\"-theme\",\"\"),n=A[i]||{};e.imperial?(e.altitudeFactor=this.__footFactor,a.label=\"ft\"):(e.altitudeFactor=e.heightFactor||e.altitudeFactor||1,a.label=e.yLabel),this._registerDataAttribute({name:\"z\",skipNull:this.options.skipNullZCoords,init:function(t){var e=t.point;\"alt\"in e&&(e.meta.ele=e.alt)},fetch:function(a){return t._data[a].z*e.altitudeFactor},update:function(e,a){t.track_info.elevation_max=t.track_info.elevation_max||-1/0,t.track_info.elevation_min=t.track_info.elevation_max||1/0,t.track_info.elevation_avg=t.track_info.elevation_avg||0;var i=t._data,n=t.track_info;if(t.options.altitudeDeltaMax){var r=e-i[a>0?a-1:a].z,o=t.options.altitudeDeltaMax;Math.abs(r)>o&&(e=i[a-1].z+o*Math.sign(r))}return(e=s(e,t.options.altitudeRange))>n.elevation_max&&(n.elevation_max=e),e<n.elevation_min&&(n.elevation_min=e),n.elevation_avg=(e+n.elevation_avg)/2,e}}),this._registerAxisScale({axis:\"y\",position:\"left\",scale:\"y\",label:a.label,labelX:-3,labelY:-8,name:\"altitude\",visbile:\"summary\"!=this.options.altitude}),this._registerAxisGrid({axis:\"y\",position:\"left\",scale:\"y\"}),this._registerAreaPath({name:\"altitude\",label:\"Altitude\",scaleX:\"distance\",scaleY:\"altitude\",color:n.area||i,strokeColor:e.detached?n.stroke:\"#000\",strokeOpacity:\"1\",fillOpacity:e.detached?n.alpha||\"0.8\":1,preferCanvas:e.preferCanvas,visbile:\"summary\"!=this.options.altitude}),this._registerTooltip({name:\"y\",chart:function(t){return L._(\"y: \")+d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},marker:function(t){return d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},order:10}),this._registerSummary({maxele:{label:\"Max Elevation: \",value:function(t){return(t.elevation_max||0).toFixed(2)+\"&nbsp;\"+a.label},order:30},minele:{label:\"Min Elevation: \",value:function(t){return(t.elevation_min||0).toFixed(2)+\"&nbsp;\"+a.label},order:30},avgele:{label:\"Avg Elevation: \",value:function(t){return(t.elevation_avg||0).toFixed(2)+\"&nbsp;\"+a.label},order:30}})})),W.addInitHook((function(){var t=this;if(this.options.slope){var e=this.options,a={};a.label=e.slopeLabel||\"%\",this._registerDataAttribute({name:\"slope\",fetch:function(e){var a=t._data,i=1e3*(a[e].dist-a[e>0?e-1:e].dist),n=a[e].z-a[e>0?e-1:e].z;return isNaN(n)||0===i?0:n/i*100},update:function(e,a){t.track_info.ascent=t.track_info.ascent||0,t.track_info.descent=t.track_info.descent||0,t.track_info.slope_max=t.track_info.slope_max||-1/0,t.track_info.slope_min=t.track_info.slope_min||1/0,t.track_info.slope_avg=t.track_info.slope_avg||0;var i=t.track_info,n=t._data,r=n[a].z-n[a>0?a-1:a].z;if(t.options.slopeDeltaMax){var o=slop-n[a>0?a-1:a].slope,l=t.options.slopeDeltaMax;Math.abs(o)>l&&(e=n[a-1].slope+l*Math.sign(o))}return e=s(e,t.options.slopeRange),r>0?t.track_info.ascent+=r:r<0&&(t.track_info.descent-=r),e>i.slope_max&&(i.slope_max=e),e<i.slope_min&&(i.slope_min=e),i.slope_avg=(e+i.slope_avg)/2,L.Util.formatNum(e,2)}}),this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:-1,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"slope\",visbile:\"summary\"!=this.options.slope}),this._registerAreaPath({name:\"slope\",label:\"Slope\",yAttr:\"slope\",scaleX:\"distance\",scaleY:\"slope\",color:\"#F00\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\",visbile:\"summary\"!=this.options.slope}),this._registerTooltip({name:\"slope\",chart:function(t){return L._(\"m: \")+t.slope+a.label},marker:function(t){return Math.round(t.slope)+a.label},order:40}),this._registerSummary({ascent:{label:\"Total Ascent: \",value:function(e){return Math.round(e.ascent||0)+\"&nbsp;\"+(t.options.imperial?\"ft\":\"m\")},order:40},descent:{label:\"Total Descent: \",value:function(e){return Math.round(e.descent||0)+\"&nbsp;\"+(t.options.imperial?\"ft\":\"m\")},order:40},minslope:{label:\"Min Slope: \",value:function(t){return Math.round(t.slope_min||0)+\"&nbsp;\"+a.label},order:40},maxslope:{label:\"Max Slope: \",value:function(t){return Math.round(t.slope_max||0)+\"&nbsp;\"+a.label},order:40},avgslope:{label:\"Avg Slope: \",value:function(t){return Math.round(t.slope_avg||0)+\"&nbsp;\"+a.label},order:40}})}})),W.addInitHook((function(){var t=this;if(this.options.speed||this.options.acceleration){var e=this.options,a={};a.label=e.speedLabel||L._(e.imperial?\"mph\":\"km/h\"),e.speedFactor=e.speedFactor||1,this._registerDataAttribute({name:\"speed\",init:function(){},fetch:function(a){var i=t._data,n=1e3*(i[a].dist-i[a>0?a-1:a].dist),r=i[a].time-i[a>0?a-1:a].time;return r>0?Math.abs(n/r*e.timeFactor)*e.speedFactor:0},update:function(e,a){t.track_info.speed_max=t.track_info.speed_max||-1/0,t.track_info.speed_min=t.track_info.speed_min||1/0,t.track_info.speed_avg=t.track_info.speed_avg||0;var i=t._data,n=t.track_info;if(t.options.speedDeltaMax){var r=e-i[a>0?a-1:a].speed,o=t.options.speedDeltaMax;Math.abs(r)>o&&(e=i[a-1].speed+o*Math.sign(r))}return(e=s(e,t.options.speedRange))>n.speed_max&&(n.speed_max=e),e<n.speed_min&&(n.speed_min=e),n.speed_avg=(e+n.speed_avg)/2,L.Util.formatNum(e,2)}}),this.options.speed&&\"summary\"!=this.options.speed&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"speed\"}),this._registerAreaPath({name:\"speed\",label:\"Speed\",yAttr:\"speed\",scaleX:\"distance\",scaleY:\"speed\",color:\"#03ffff\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this.options.speed&&(this._registerTooltip({name:\"speed\",chart:function(t){return L._(\"v: \")+t.speed+\" \"+a.label},marker:function(t){return Math.round(t.speed)+\" \"+a.label},order:50}),this._registerSummary({minspeed:{label:\"Min Speed: \",value:function(t){return Math.round(t.speed_min||0)+\"&nbsp;\"+a.label},order:50},maxspeed:{label:\"Max Speed: \",value:function(t){return Math.round(t.speed_max||0)+\"&nbsp;\"+a.label},order:50},avgspeed:{label:\"Avg Speed: \",value:function(t){return Math.round(t.speed_avg||0)+\"&nbsp;\"+a.label},order:50}}))}})),W.addInitHook((function(){var t=this;if(this.options.acceleration){var e=this.options,a={};a.label=e.accelerationLabel||L._(e.imperial?\"ft/s²\":\"m/s²\"),e.accelerationFactor=e.accelerationFactor||1,this._registerDataAttribute({name:\"acceleration\",init:function(){},fetch:function(a){var i=t._data,n=(i[a].speed-i[a>0?a-1:a].speed)*(1e3/e.timeFactor),r=(i[a].time-i[a>0?a-1:a].time)/1e3;return r>0?Math.abs(n/r)*e.accelerationFactor:0},update:function(e,a){t.track_info.acceleration_max=t.track_info.acceleration_max||-1/0,t.track_info.acceleration_min=t.track_info.acceleration_min||1/0,t.track_info.acceleration_avg=t.track_info.acceleration_avg||0;var i=t._data,n=t.track_info;if(t.options.accelerationDeltaMax){var r=e-i[a>0?a-1:a].acceleration,o=t.options.accelerationDeltaMax;Math.abs(r)>o&&(e=i[a-1].acceleration+o*Math.sign(r))}return(e=s(e,t.options.accelerationRange))>n.acceleration_max&&(n.acceleration_max=e),e<n.acceleration_min&&(n.acceleration_min=e),n.acceleration_avg=(e+n.acceleration_avg)/2,L.Util.formatNum(e,2)}}),\"summary\"!=this.options.acceleration&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"acceleration\"}),this._registerAreaPath({name:\"acceleration\",label:\"Acceleration\",yAttr:\"acceleration\",scaleX:\"distance\",scaleY:\"acceleration\",color:\"#050402\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this._registerTooltip({name:\"acceleration\",chart:function(t){return L._(\"a: \")+t.acceleration+\" \"+a.label},marker:function(t){return Math.round(t.acceleration)+\" \"+a.label},order:60}),this._registerSummary({minacceleration:{label:\"Min Acceleration: \",value:function(t){return Math.round(t.acceleration_min||0)+\"&nbsp;\"+a.label},order:60},maxacceleration:{label:\"Max Acceleration: \",value:function(t){return Math.round(t.acceleration_max||0)+\"&nbsp;\"+a.label},order:60},avgacceleration:{label:\"Avg Acceleration: \",value:function(t){return Math.round(t.acceleration_avg||0)+\"&nbsp;\"+a.label},order:60}})}})),W.Utils=C,W.Components=X,W.Chart=U,R=L.i18n.bind({}),L.i18n=L._=function(t,e){return L.locale&&L.locales[L.locale]&&\"\"==L.locales[L.locale][t]&&(L.locales[L.locale][t]=\"​\"),R.call(null,t,e)},W.addInitHook((function(){this.enableDragging=this.enableBrush,this.disableDragging=this.disableBrush,this.loadChart=this.addTo,this.loadData=this.load,this.loadGPX=this.load,this.loadGeoJSON=this.load,this.loadXML=this.load,this.loadFile=this.load,this._addGPXData=this._addGeoJSONData,this._registerFocusLabel=this._registerTooltip})),L.control.elevation=function(t){return new W(t)}}));\n//# sourceMappingURL=leaflet-elevation.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(((e=e||self).Leaflet=e.Leaflet||{},e.Leaflet.markercluster={}))}(this,function(e){\"use strict\";var t=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnEveryZoom:!1,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyShapePositions:null,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:\"#222\",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire(\"layeradd\",{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire(\"layeradd\",{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire(\"layeradd\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,i=this._zoom;if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):(e.getLatLng?this._map?e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire(\"layerremove\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire(\"layerremove\",{layer:e})):(this._nonPointGroup.removeLayer(e),this.fire(\"layerremove\",{layer:e})),this)},addLayers:function(n,s){if(!L.Util.isArray(n))return this.addLayer(n);var o,a=this._featureGroup,h=this._nonPointGroup,l=this.options.chunkedLoading,u=this.options.chunkInterval,_=this.options.chunkProgress,d=n.length,p=0,c=!0;if(this._map){var f=(new Date).getTime(),m=L.bind(function(){var e=(new Date).getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();p<d;p++){if(l&&p%200==0){var t=(new Date).getTime()-e;if(u<t)break}if((o=n[p])instanceof L.LayerGroup)c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length;else if(o.getLatLng){if(!this.hasLayer(o)&&(this._addLayer(o,this._maxZoom),s||this.fire(\"layeradd\",{layer:o}),o.__parent&&2===o.__parent.getChildCount())){var i=o.__parent.getAllChildMarkers(),r=i[0]===o?i[1]:i[0];a.removeLayer(r)}}else h.addLayer(o),s||this.fire(\"layeradd\",{layer:o})}_&&_(p,d,(new Date).getTime()-f),p===d?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(m,this.options.chunkDelay)},this);m()}else for(var e=this._needsClustering;p<d;p++)(o=n[p])instanceof L.LayerGroup?(c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length):o.getLatLng?this.hasLayer(o)||e.push(o):h.addLayer(o);return this},removeLayers:function(e){var t,i,r=e.length,n=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire(\"layerremove\",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=r;for(t=0;t<h;t++)(i=a[t])instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire(\"layerremove\",{layer:i}),n.hasLayer(i)&&(n.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire(\"layerremove\",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;0<=t;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,r,n,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),r=s.length-1;0<=r;r--){for(i=!0,n=o.length-1;0<=n;n--)if(o[n].layer===s[r]){i=!1;break}i&&e.call(t,s[r])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var t=[];return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var i=null;return t=parseInt(t,10),this.eachLayer(function(e){L.stamp(e)===t&&(i=e)}),i},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;0<=t;t--)if(i[t]===e)return!0;for(t=(i=this._needsRemoving).length-1;0<=t;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){var i=this._map;\"function\"!=typeof t&&(t=function(){});var r=function(){!i.hasLayer(e)&&!i.hasLayer(e.__parent)||this._inZoomAnimation||(this._map.off(\"moveend\",r,this),this.off(\"animationend\",r,this),i.hasLayer(e)?t():e.__parent._icon&&(this.once(\"spiderfied\",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on(\"moveend\",r,this),this._map.panTo(e.getLatLng())):(this._map.on(\"moveend\",r,this),this.on(\"animationend\",r,this),e.__parent.zoomToBounds())},onAdd:function(e){var t,i,r;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw\"Map has no maxZoom specified\";for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,i=this._needsRemoving.length;t<i;t++)(r=this._needsRemoving[t]).newlatlng=r.layer._latlng,r.layer._latlng=r.latlng;for(t=0,i=this._needsRemoving.length;t<i;t++)r=this._needsRemoving[t],this._removeLayer(r.layer,!0),r.layer._latlng=r.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on(\"zoomend\",this._zoomEnd,this),this._map.on(\"moveend\",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off(\"zoomend\",this._zoomEnd,this),e.off(\"moveend\",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\"),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;0<=i;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,r=this._gridUnclustered,n=Math.floor(this._map.getMinZoom());n<=t&&r[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,i){var r=this._gridClusters,n=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)t&&l._childCount<=1?(h=l._markers[0]===e?l._markers[1]:l._markers[0],r[l._zoom].removeObject(l,o.project(l._cLatLng,l._zoom)),n[l._zoom].addObject(h,o.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e=\"cluster\"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,\"cluster\"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=\" marker-cluster-\";return i+=t<10?\"small\":t<100?\"medium\":\"large\",new L.DivIcon({html:\"<div><span>\"+t+\"</span></div>\",className:\"marker-cluster\"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick,n=this.options.spiderfyOnEveryZoom;(t||r||n)&&this.on(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),i&&(this.on(\"clustermouseover\",this._showCoverage,this),this.on(\"clustermouseout\",this._hideCoverage,this),e.on(\"zoomend\",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,i=t;if(\"clusterkeypress\"!==e.type||!e.originalEvent||13===e.originalEvent.keyCode){for(;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),2<e.layer.getChildCount()&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,r=this.options.spiderfyOnEveryZoom,n=this._map;(e||i||r)&&this.off(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),t&&(this.off(\"clustermouseover\",this._showCoverage,this),this.off(\"clustermouseout\",this._hideCoverage,this),n.off(\"zoomend\",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,r=i;\"function\"!=typeof i&&(r=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var n=e;t<=n;n--)this._gridClusters[n]=new L.DistanceGrid(r(n)),this._gridUnclustered[n]=new L.DistanceGrid(r(n));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,r,n=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);o<=t;t--){i=this._map.project(e.getLatLng(),t);var a=n[t].getNearObject(i);if(a)return a._addChild(e),void(e.__parent=a);if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);n[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l;var u=e.__parent=l;for(r=t-1;r>h._zoom;r--)u=new this._markerCluster(this,r,u),n[r].addObject(u,this._map.project(a.getLatLng(),r));return h._addChild(u),void this._removeFromGridUnclustered(a,t)}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,r=e.getLayers(),n=0;for(t=t||[];n<r.length;n++)(i=r[n])instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=\" leaflet-cluster-anim\",this._inZoomAnimation++},_animationZoomIn:function(n,s){var o,a=this._getExpandedVisibleBounds(),h=this._featureGroup,e=Math.floor(this._map.getMinZoom());this._ignoreMove=!0,this._topClusterLevel._recursively(a,n,e,function(e){var t,i=e._latlng,r=e._markers;for(a.contains(i)||(i=null),e._isSingleParent()&&n+1===s?(h.removeLayer(e),e._recursivelyAddChildrenToMap(null,s,a)):(e.clusterHide(),e._recursivelyAddChildrenToMap(i,s,a)),o=r.length-1;0<=o;o--)t=r[o],a.contains(t._latlng)||h.removeLayer(t)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(a,s),h.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(a,n,s,function(e){e._recursivelyRestoreChildPositions(s)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(a,n,e,function(e){h.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,r=this._featureGroup;r.addLayer(e),t!==e&&(2<t._childCount?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(t,i,r){var n=this._getExpandedVisibleBounds(),s=Math.floor(this._map.getMinZoom());t._recursivelyAnimateChildrenInAndAddSelfToMap(n,s,i+1,r);var o=this;this._forceLayout(),t._recursivelyBecomeVisible(n,r),this._enqueue(function(){if(1===t._childCount){var e=t._markers[0];this._ignoreMove=!0,e.setLatLng(e.getLatLng()),this._ignoreMove=!1,e.clusterShow&&e.clusterShow()}else t._recursively(n,r,s,function(e){e._recursivelyRemoveChildrenFromMap(n,s,i+1)});o._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\")),this._inZoomAnimation--,this.fire(\"animationend\")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,r){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),r&&this._addChild(r)},getAllChildMarkers:function(e,t){e=e||[];for(var i=this._childClusters.length-1;0<=i;i--)this._childClusters[i].getAllChildMarkers(e,t);for(var r=this._markers.length-1;0<=r;r--)t&&this._markers[r].__dragStart||e.push(this._markers[r]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),r=this._group._map,n=r.getBoundsZoom(this._bounds),s=this._zoom+1,o=r.getZoom();0<i.length&&s<n;){s++;var a=[];for(t=0;t<i.length;t++)a=a.concat(i[t]._childClusters);i=a}s<n?this._group._map.setView(this._latlng,s):n<=o?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,r,n=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e<n.length;e++)i=n[e]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(e=0;e<s.length;e++)(t=s[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),i=t._wLatLng,r=t._childCount,o+=i.lat*r,a+=i.lng*r;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,n,t){this._recursively(e,this._group._map.getMinZoom(),t-1,function(e){var t,i,r=e._markers;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())},function(e){var t,i,r=e._childClusters;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,i,r,n){this._recursively(t,n,i,function(e){e._recursivelyAnimateChildrenIn(t,e._group._map.latLngToLayerPoint(e.getLatLng()).round(),r),e._isSingleParent()&&r-1===n?(e.clusterShow(),e._recursivelyRemoveChildrenFromMap(t,i,r)):e.clusterHide(),e._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(r,n,s){this._recursively(s,this._group._map.getMinZoom()-1,n,function(e){if(n!==e._zoom)for(var t=e._markers.length-1;0<=t;t--){var i=e._markers[t];s.contains(i._latlng)&&(r&&(i._backupLatlng=i.getLatLng(),i.setLatLng(r),i.clusterHide&&i.clusterHide()),e._group._featureGroup.addLayer(i))}},function(e){e._addToMap(r)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;0<=t;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;0<=r;r--)this._childClusters[r]._restorePosition();else for(var n=this._childClusters.length-1;0<=n;n--)this._childClusters[n]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,r){var n,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;0<=s;s--)n=e._markers[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(e){for(s=e._childClusters.length-1;0<=s;s--)n=e._childClusters[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(e,t,i,r,n){var s,o,a=this._childClusters,h=this._zoom;if(t<=h&&(r&&r(this),n&&h===i&&n(this)),h<t||h<i)for(s=a.length-1;0<=s;s--)(o=a[s])._boundsNeedUpdate&&o._recalculateBounds(),e.intersects(o._bounds)&&o._recursively(e,t,i,r,n)},_isSingleParent:function(){return 0<this._childClusters.length&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),r=this._getCoord(t.y),n=this._grid,s=n[r]=n[r]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,r,n=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[n]=a[n]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,r=h.length;i<r;i++)if(h[i]===e)return h.splice(i,1),1===r&&delete a[n],!0},eachObject:function(e,t){var i,r,n,s,o,a,h=this._grid;for(i in h)for(r in o=h[i])for(n=0,s=(a=o[r]).length;n<s;n++)e.call(t,a[n])&&(n--,s--)},getNearObject:function(e){var t,i,r,n,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,p=null;for(t=u-1;t<=u+1;t++)if(n=this._grid[t])for(i=l-1;i<=l+1;i++)if(s=n[i])for(r=0,o=s.length;r<o;r++)a=s[r],((h=this._sqDist(_[L.Util.stamp(a)],e))<d||h<=d&&null===p)&&(d=h,p=a);return p},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r}},L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,r,n,s=0,o=null,a=[];for(i=t.length-1;0<=i;i--)r=t[i],0<(n=this.getDistant(r,e))&&(a.push(r),s<n&&(s=n,o=r));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?i=(i=i.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints))).concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints)):[e[0]]},getConvexHull:function(e){var t,i=!1,r=!1,n=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;0<=t;t--){var d=e[t];(!1===i||d.lat>i)&&(i=(o=d).lat),(!1===r||d.lat<r)&&(r=(a=d).lat),(!1===n||d.lng>n)&&(n=(h=d).lng),(!1===s||d.lng<s)&&(s=(l=d).lng)}return u=r!==i?(_=a,o):(_=l,h),[].concat(this.buildConvexHull([_,u],e),this.buildConvexHull([u,_],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,i=this.getAllChildMarkers(),r=[];for(t=i.length-1;0<=t;t--)e=i[t].getLatLng(),r.push(e);return L.QuickHull.getConvexHull(r)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(null,!0),i=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),e=(this._group._spiderfied=this)._group.options.spiderfyShapePositions?this._group.options.spiderfyShapePositions(t.length,i):t.length>=this._circleSpiralSwitchover?this._generatePointsSpiral(t.length,i):(i.y+=10,this._generatePointsCircle(t.length,i)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,r,n=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,s=this._2PI/e,o=[];for(n=Math.max(n,35),o.length=e,i=0;i<e;i++)r=this._circleStartAngle+i*s,o[i]=new L.Point(t.x+n*Math.cos(r),t.y+n*Math.sin(r))._round();return o},_generatePointsSpiral:function(e,t){var i,r=this._group.options.spiderfyDistanceMultiplier,n=r*this._spiralLengthStart,s=r*this._spiralFootSeparation,o=r*this._spiralLengthFactor*this._2PI,a=0,h=[];for(i=h.length=e;0<=i;i--)i<e&&(h[i]=new L.Point(t.x+n*Math.cos(a),t.y+n*Math.sin(a))._round()),n+=o/(a+=s/n+5e-4*i);return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,r=i._map,n=i._featureGroup,s=this.getAllChildMarkers(null,!0);for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;0<=t;t--)e=s[t],n.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(r.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire(\"unspiderfied\",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,r,n,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i<e.length;i++)s=a.layerPointToLatLng(t[i]),r=e[i],n=new L.Polyline([this._latlng,s],l),a.addLayer(n),r._spiderLeg=n,r._preSpiderfyLatlng=r._latlng,r.setLatLng(s),r.setZIndexOffset&&r.setZIndexOffset(1e6),h.addLayer(r);this.setOpacity(.3),o._ignoreMove=!1,o.fire(\"spiderfied\",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,n,s,o,a,h=this,l=this._group,u=l._map,_=l._featureGroup,d=this._latlng,p=u.latLngToLayerPoint(d),c=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),m=f.opacity;for(void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),c?(f.opacity=0,f.className=(f.className||\"\")+\" leaflet-cluster-spider-leg\"):f.opacity=m,l._ignoreMove=!0,i=0;i<e.length;i++)r=e[i],a=u.layerPointToLatLng(t[i]),n=new L.Polyline([d,a],f),u.addLayer(n),r._spiderLeg=n,c&&(o=(s=n._path).getTotalLength()+.1,s.style.strokeDasharray=o,s.style.strokeDashoffset=o),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),_.addLayer(r),r._setPos&&r._setPos(p);for(l._forceLayout(),l._animationStart(),i=e.length-1;0<=i;i--)a=u.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(a),r.clusterShow&&r.clusterShow(),c&&((s=(n=r._spiderLeg)._path).style.strokeDashoffset=0,n.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire(\"spiderfied\",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,r,n,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(null,!0),p=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;0<=i;i--)(t=d[i])._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),p&&(s=(n=(r=t._spiderLeg)._path).getTotalLength()+.1,n.style.strokeDashoffset=s,r.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&e++;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),1<e&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire(\"unspiderfied\",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on(\"click\",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.on(\"zoomend\",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off(\"click\",this._unspiderfyWrapper,this),this._map.off(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._map.off(\"zoomend\",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on(\"zoomanim\",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,\"leaflet-touching\")||(this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i,Object.defineProperty(e,\"__esModule\",{value:!0})});\n//# sourceMappingURL=leaflet.markercluster.js.map","@use '~leaflet/dist/leaflet.css';\n@use '~leaflet.locatecontrol/dist/L.Control.Locate.min.css';\n@use '~@raruto/leaflet-elevation/dist/leaflet-elevation.min.css';\n@use '~leaflet.markercluster/dist/MarkerCluster.css';\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n#map {\n position: relative;\n font-family: var(--font-family);\n display: block;\n}\n\n.leaflet-control-layers-toggle,\n.leaflet-retina .leaflet-control-layers-toggle {\n background-image: var(--layers-image-src);\n}\n\n.treks-map {\n height: calc(100%);\n}\n\n.trek-map {\n height: calc(100% - 350px - var(--map-bottom-space-height));\n}\n\n#elevation {\n position: relative;\n background-color: #ffffff;\n}\n\n.elevation-control .background {\n border-radius: 0px;\n}\n\n.custom-theme.elevation-control .axis text {\n fill: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .axis line,\n.custom-theme.elevation-control .axis path {\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-rect {\n fill: var(--color-primary-container);\n stroke: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-text {\n fill: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .background {\n background-color: var(--color-background);\n}\n\n.custom-theme.elevation-control .mouse-focus-line {\n stroke: var(--color-on-surface);\n}\n\n.use-theme-color.elevation-control .area path.altitude,\n.use-theme-color .legend-altitude rect.area {\n fill: var(--color-primary-app);\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.circle-lower {\n fill: #ffffff;\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-polyline {\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.line,\n.custom-theme.height-focus-label {\n display: none;\n}\n\n.custom-theme .elevation-summary {\n margin: -12px 0px 0px 36px;\n font-size: 8px;\n font-family: var(--font-family);\n :nth-child(3)::after {\n display: none;\n }\n .avgele {\n display: none;\n }\n}\n\n.treks-marker-cluster-group-icon,\n.touristic-content-marker-cluster-group-icon,\n.touristic-event-marker-cluster-group-icon {\n background-color: var(--color-primary-app);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--color-on-primary);\n font-size: 16px;\n}\n\n.trek-marker,\n.step-marker,\n.touristic-content-marker,\n.touristic-event-marker,\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker,\n.departure-marker,\n.arrival-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50% 50% 50% 0;\n border: 2px solid #ffffff;\n width: 32px;\n height: 32px;\n transform: rotate(-45deg);\n img,\n .step-number {\n display: flex;\n justify-content: center;\n align-items: center;\n transform: rotate(45deg);\n position: absolute;\n z-index: 20;\n width: 24px !important;\n }\n }\n .trek-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n background-color: var(--color-surface);\n }\n .step-marker-container {\n background-color: var(--color-surface-variant);\n }\n}\n\n.departure-marker {\n background-color: #008000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000001 !important;\n}\n\n.arrival-marker {\n background-color: #ff0000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000000 !important;\n}\n\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n width: 48px;\n height: 48px;\n img,\n .step-number {\n width: 32px !important;\n }\n }\n}\n\n.step-marker,\n.selected-step-marker {\n color: var(--color-on-surface-variant);\n}\n\n.map-loader-container {\n position: absolute;\n z-index: 500;\n width: 100%;\n height: 100%;\n background-color: var(--color-background);\n display: flex;\n justify-content: center;\n align-items: center;\n .loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n }\n\n @keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n}\n\n.trek-departure-popup,\n.touristic-content-coordinates-popup,\n.touristic-event-coordinates-popup {\n position: relative;\n display: flex;\n flex-direction: column;\n img {\n border-top-left-radius: var(--border-radius, 8px);\n border-top-right-radius: var(--border-radius, 8px);\n }\n .trek-name,\n .touristic-content-name,\n .touristic-event-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n padding: 8px;\n }\n .trek-button,\n .touristic-content-button,\n .touristic-event-button {\n margin: 0px 8px 8px 8px;\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n background-color: var(--color-background);\n color: var(--color-on-surface);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1000000015px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n font-family: var(--font-family);\n }\n}\n\n.poi-tooltip,\n.information-desks-tooltip,\n.sensitive-area-tooltip,\n.touristic-content-tooltip,\n.touristic-event-tooltip,\n.parking-tooltip {\n .poi-name,\n .information-desks-name,\n .sensitive-area-name,\n .touristic-content-name,\n .touristic-event-name,\n .parking-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n }\n}\n\n.sensitiveAreasCheckboxContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #ffffff;\n padding: 8px;\n border-radius: var(--border-radius, 8px);\n user-select: none;\n input,\n label {\n cursor: pointer;\n }\n input {\n margin: 0;\n }\n label {\n padding-left: 8px;\n }\n}\n\n.poi-icon,\n.information-desks-icon,\n.touristic-content-icon,\n.touristic-event-icon {\n background-color: var(--color-poi-icon);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n img {\n width: 36px !important;\n }\n}\n\n.parking-icon {\n img {\n width: 48px !important;\n }\n}\n\n.point-reference-icon {\n background-color: #ff0000;\n border: 1px solid #ffffff;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n font-size: 24px;\n color: #ffffff;\n}\n\n.map-bottom-space {\n min-height: var(--map-bottom-space-height);\n height: var(--map-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.leaflet-popup {\n bottom: 40px !important;\n left: -70px !important;\n}\n\n.leaflet-popup-content-wrapper {\n cursor: default;\n padding: 0px;\n background-color: var(--color-background);\n box-shadow: var(--elevation-2);\n}\n\n.leaflet-popup-content {\n width: 144px;\n margin: 0;\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, getAssetPath, Build, Listen } from '@stencil/core';\nimport { Feature, FeatureCollection } from 'geojson';\nimport L, { MarkerClusterGroup, TileLayer } from 'leaflet';\nimport 'leaflet-rotate';\nimport 'leaflet.locatecontrol';\nimport 'leaflet-i18n';\nimport '@raruto/leaflet-elevation/dist/leaflet-elevation.min.js';\nimport 'leaflet.markercluster/dist/leaflet.markercluster.js';\nimport state, { onChange } from 'store/store';\nimport { translate } from 'i18n/i18n';\nimport { getTrekGeometry } from 'services/treks.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport { Trek } from 'components';\nimport { getDataInStore } from 'services/grw-db.service';\nimport { arrayBufferToBlob } from 'utils/utils';\n\n@Component({\n tag: 'grw-map',\n styleUrl: 'grw-map.scss',\n shadow: true,\n})\nexport class GrwMap {\n mapRef: HTMLElement;\n elevationRef: HTMLElement;\n maxZoom = 19;\n\n @Event() trekCardPress: EventEmitter<number>;\n @Event() touristicContentCardPress: EventEmitter<number>;\n @Event() touristicEventCardPress: EventEmitter<number>;\n\n @State() mapIsReady = false;\n @Prop() nameLayer: string;\n @Prop() urlLayer: string;\n @Prop() attributionLayer: string;\n @Prop() center = '1, 1';\n @Prop() zoom = 10;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() colorTrekLine = '#6b0030';\n @Prop() colorSensitiveArea = '#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n @Prop() useGradient = false;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Prop() isLargeView = false;\n map: L.Map;\n resizeObserver: ResizeObserver;\n bounds;\n treksLayer: L.GeoJSON<any>;\n toutisticContentsLayer: L.GeoJSON<any>;\n touristicEventsLayer: L.GeoJSON<any>;\n\n treksMarkerClusterGroup: MarkerClusterGroup;\n touristicContentsMarkerClusterGroup: MarkerClusterGroup;\n touristicEventsMarkerClusterGroup: MarkerClusterGroup;\n currentTrekLayer: L.GeoJSON<any>;\n currentStepsLayer: L.GeoJSON<any>;\n selectedCurrentTrekLayer: L.GeoJSON<any>;\n selectedCurrentStepLayer: L.GeoJSON<any>;\n selectedTouristicContentLayer: L.GeoJSON<any>;\n selectedTouristicEventLayer: L.GeoJSON<any>;\n currentReferencePointsLayer: L.GeoJSON<any>;\n currentParkingLayer: L.GeoJSON<any>;\n currentSensitiveAreasLayer: L.GeoJSON<any>;\n currentPoisLayer: L.GeoJSON<any>;\n currentInformationDesksLayer: L.GeoJSON<any>;\n currentToutisticContentsLayer: L.GeoJSON<any>;\n currenttouristicEventsLayer: L.GeoJSON<any>;\n currentToutisticContentLayer: L.GeoJSON<any>;\n currentToutisticEventLayer: L.GeoJSON<any>;\n elevationControl: L.Control.Layers;\n departureArrivalLayer: L.GeoJSON<any>;\n layersControl: L.Control.Layers;\n userLayersState: {\n [key: number]: boolean;\n } = {};\n tileLayer: { key: string; value: TileLayer }[] = [];\n trekPopupIsOpen: boolean;\n stepPopupIsOpen: boolean;\n touristicContentPopupIsOpen: boolean;\n touristicEventPopupIsOpen: boolean;\n\n handleTreksWithinBoundsBind: (event: any) => void = this.handleTreksWithinBounds.bind(this);\n handleTouristicContentsWithinBoundsBind: (event: any) => void = this.handleTouristicContentsWithinBounds.bind(this);\n handleTouristicEventsWithinBoundsBind: (event: any) => void = this.handleTouristicEventsWithinBounds.bind(this);\n\n @Listen('centerOnMap', { target: 'window' })\n onCenterOnMap(event: CustomEvent<{ latitude: number; longitude: number }>) {\n this.map.setView(new L.LatLng(event.detail.latitude, event.detail.longitude), 17, { animate: false });\n }\n\n @Listen('stepsIsInViewport', { target: 'window' })\n stepsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentStepsLayer) {\n this.handleLayerVisibility(event.detail, this.currentStepsLayer);\n }\n }\n\n @Listen('descriptionIsInViewport', { target: 'window' })\n descriptionIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentReferencePointsLayer) {\n this.handleLayerVisibility(event.detail, this.currentReferencePointsLayer);\n }\n }\n\n @Listen('parkingIsInViewport', { target: 'window' })\n parkingIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentParkingLayer) {\n this.handleLayerVisibility(event.detail, this.currentParkingLayer);\n }\n }\n\n @Listen('informationDeskIsInViewport', { target: 'window' })\n onInformationDesksIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentInformationDesksLayer) {\n this.handleLayerVisibility(event.detail, this.currentInformationDesksLayer);\n }\n }\n\n @Listen('sensitiveAreaIsInViewport', { target: 'window' })\n sensitiveAreaIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentSensitiveAreasLayer) {\n this.handleLayerVisibility(event.detail, this.currentSensitiveAreasLayer);\n }\n }\n\n @Listen('poiIsInViewport', { target: 'window' })\n poiIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentPoisLayer) {\n this.handleLayerVisibility(event.detail, this.currentPoisLayer);\n }\n }\n\n @Listen('touristicContentsIsInViewport', { target: 'window' })\n touristicContentsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentToutisticContentsLayer) {\n this.handleLayerVisibility(event.detail, this.currentToutisticContentsLayer);\n }\n }\n\n @Listen('touristicEventsIsInViewport', { target: 'window' })\n touristicEventsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currenttouristicEventsLayer) {\n this.handleLayerVisibility(event.detail, this.currenttouristicEventsLayer);\n }\n }\n\n @Listen('cardTrekMouseOver', { target: 'window' })\n onCardTrekMouseOver(event: CustomEvent<number>) {\n if (!state.parentTrek && (!state.selectedTrekId || state.selectedTrekId !== event.detail)) {\n state.selectedTrekId = event.detail;\n this.hideTrekLine();\n this.showTrekLine(event.detail);\n this.addSelectedCurrentTrek(event.detail);\n } else if (state.parentTrek) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.addSelectedCurrentStep(event.detail);\n }\n }\n\n @Listen('cardTrekMouseLeave', { target: 'window' })\n onCardTrekMouseLeave() {\n if (!this.trekPopupIsOpen && state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n } else if (this.selectedCurrentStepLayer) {\n this.removeSelectedCurrentStep();\n }\n }\n\n @Listen('cardTouristicContentMouseOver', { target: 'window' })\n onTouristicContentMouseOver(event: CustomEvent<number>) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.addSelectedTouristicContent(event.detail);\n }\n\n @Listen('cardTouristicContentMouseLeave', { target: 'window' })\n onTouristicContentMouseLeave() {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n\n @Listen('cardTouristicEventMouseOver', { target: 'window' })\n onTouristicEventMouseOver(event: CustomEvent<number>) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.addSelectedTouristicEvent(event.detail);\n }\n\n @Listen('cardTouristicEventMouseLeave', { target: 'window' })\n onTouristicEventMouseLeave() {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n\n @Listen('trekDownloadedSuccessConfirm', { target: 'window' })\n onTrekDownloadedSuccessConfirm() {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n }\n\n @Listen('trekDeleteSuccessConfirm', { target: 'window' })\n onTrekDeleteSuccessConfirm() {\n this.map.setMaxZoom(this.maxZoom);\n }\n\n componentDidLoad() {\n this.map = L.map(this.mapRef, {\n center: this.center.split(',').map(Number) as L.LatLngExpression,\n zoom: this.zoom,\n });\n\n L.control.scale({ metric: true, imperial: false }).addTo(this.map);\n (L.control as any).locate({ showPopup: false }).addTo(this.map);\n\n const nameLayers = this.nameLayer ? this.nameLayer.split(',') : [];\n\n const urlLayers = this.urlLayer.split(',http').map((url, index) => (index === 0 ? url : 'http' + url));\n\n const attributionLayers = this.attributionLayer ? this.attributionLayer.split(',') : [];\n urlLayers.forEach((urlLayer, index) => {\n this.tileLayer.push({\n key: `${nameLayers[index]}`,\n value: tileLayerOffline(urlLayer, {\n maxZoom: this.maxZoom,\n attribution: `${\n attributionLayers[index] && attributionLayers[index] !== '' ? attributionLayers[index].concat(' | ') : ''\n }Powered by <a target=\"_blank\" href=\"https://geotrek.fr/\">Geotrek</a>`,\n crossOrigin: true,\n }),\n });\n });\n\n this.tileLayer[0].value.addTo(this.map);\n\n if (urlLayers.length > 1) {\n this.layersControl = L.control\n .layers(\n this.tileLayer.reduce((tileLayers, tileLayer) => Object.assign(tileLayers, { [tileLayer.key]: tileLayer.value }), {}),\n {},\n { collapsed: true },\n )\n .addTo(this.map);\n }\n\n (L.Control as any).Contract = L.Control.extend({\n onAdd: () => {\n const contractContainer = L.DomUtil.create('div');\n contractContainer.className = 'leaflet-bar leaflet-control';\n const contract = contractContainer.appendChild(L.DomUtil.create('a'));\n contract.href = '#';\n contract.style.backgroundImage = `var(--contract-image-src)`;\n contractContainer.onclick = e => {\n this.bounds && this.map.fitBounds(this.bounds);\n e.preventDefault();\n };\n return contractContainer;\n },\n });\n\n (L.control as any).contract = opts => {\n return new (L.Control as any).Contract(opts);\n };\n\n (L.control as any).contract({ position: 'topleft' }).addTo(this.map);\n\n if (state.currentTrek) {\n this.addTrek();\n } else if (state.currentTreks) {\n this.addTreks();\n } else if (state.currentTouristicContent) {\n this.addTouristicContent();\n } else if (state.currentTouristicEvent) {\n this.addTouristicEvent();\n } else if (state.touristicContents) {\n this.addTouristicContents();\n } else if (state.touristicEvents) {\n this.addTouristicEvents();\n }\n\n onChange('currentTreks', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks(true);\n }\n });\n\n onChange('currentTrek', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContent', () => {\n if (state.currentTouristicContent) {\n this.removeTrek();\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.touristicContents) {\n this.removeTouristicContent();\n this.addTouristicContents();\n } else if (state.currentTrek) {\n this.removeTouristicContent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicContent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicEvent', () => {\n if (state.currentTouristicEvent) {\n this.removeTrek();\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTrek) {\n this.removeTouristicEvent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicContent) {\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.currentTouristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.removeTouristicContent();\n this.addTouristicContents(true);\n }\n });\n\n onChange('currentTouristicEvents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicEvent) {\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTouristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvent();\n this.addTouristicEvents(true);\n }\n });\n\n onChange('mode', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.mode === 'treks') {\n if (state.treks) {\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.addTreks(true);\n }\n } else if (state.mode === 'touristicContents') {\n if (state.touristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.addTouristicContents(true);\n }\n } else if (state.mode === 'touristicEvents') {\n if (state.touristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.addTouristicEvents(true);\n }\n }\n });\n }\n\n handleLayerVisibility(visible: boolean, layer: L.GeoJSON) {\n if (visible && !this.map.hasLayer(layer)) {\n layer.addTo(this.map);\n } else if (this.map.hasLayer(layer) && !this.userLayersState[(layer as any)._leaflet_id]) {\n this.map.removeLayer(layer);\n }\n this.handleLayersControlEvent();\n }\n\n async addTreks(resetBounds = false) {\n state.treksWithinBounds = state.currentTreks;\n\n const treksCurrentDepartureCoordinates = [];\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n for (const trek of state.currentTreks) {\n treksCurrentDepartureCoordinates.push(trek.departure_geom);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.treksLayer) {\n if ((treksCurrentDepartureCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(treksCurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n\n this.treksLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'trek-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.hideTrekLine();\n this.showTrekLine(geoJsonPoint.properties.id);\n this.addSelectedCurrentTrek(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.treksMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({ html: '<div>' + cluster.getChildCount() + '</div>', className: 'treks-marker-cluster-group-icon', iconSize: 48 } as any);\n },\n });\n\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n this.map.addLayer(this.treksMarkerClusterGroup);\n } else {\n if (treksCurrentDepartureCoordinates.length > 0) {\n this.bounds = L.latLngBounds(treksCurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.treksLayer.clearLayers();\n this.treksLayer.addData(treksFeatureCollection);\n this.treksMarkerClusterGroup.clearLayers();\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n }\n this.bounds && this.bounds._northEast && this.bounds._southWest && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n this.map.on('moveend', this.handleTreksWithinBoundsBind);\n }\n\n removeTreks() {\n if (this.treksLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.treksMarkerClusterGroup);\n this.treksLayer = null;\n this.treksMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTreksWithinBoundsBind);\n }\n }\n\n handleTreksWithinBounds() {\n if (\n (state.currentTreks && !state.currentMapBounds) ||\n (state.currentTreks && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.treksWithinBounds = state.currentTreks.filter(trek => this.map.getBounds().contains(L.latLng(trek.departure_geom[1], trek.departure_geom[0])));\n }\n }\n\n handleTouristicContentsWithinBounds() {\n if (\n (state.currentTouristicContents && !state.currentMapBounds) ||\n (state.currentTouristicContents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicContentsWithinBounds = state.currentTouristicContents.filter(touristicContent =>\n this.map.getBounds().contains(L.latLng(touristicContent.geometry.coordinates[1], touristicContent.geometry.coordinates[0])),\n );\n }\n }\n\n handleTouristicEventsWithinBounds() {\n if (\n (state.currentTouristicEvents && !state.currentMapBounds) ||\n (state.currentTouristicEvents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents.filter(touristicEvent =>\n this.map.getBounds().contains(L.latLng(touristicEvent.geometry.coordinates[1], touristicEvent.geometry.coordinates[0])),\n );\n }\n }\n\n async addTrek() {\n const trekInStore: Trek = await getDataInStore('treks', state.currentTrek.id);\n if (trekInStore) {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n } else {\n this.map.setMaxZoom(this.maxZoom);\n }\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: state.currentTrek.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: 'transparent',\n }),\n interactive: false,\n }).addTo(this.map);\n\n if (state.currentTrek.parking_location) {\n const parkingImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/parking.svg`);\n const currentParking: Feature = {\n type: 'Feature',\n properties: { name: state.currentTrek.advised_parking },\n geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },\n };\n this.currentParkingLayer = L.geoJSON(currentParking, {\n pointToLayer: (_geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: `<img crossorigin=\"anonymous\" src=${parkingImageSrc} />`,\n className: 'parking-icon',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const parkingTooltip = L.DomUtil.create('div');\n parkingTooltip.className = 'parking-tooltip';\n const parkingName = L.DomUtil.create('div');\n parkingName.innerHTML = geoJsonPoint.properties.name;\n parkingName.className = 'parking-name';\n parkingTooltip.appendChild(parkingName);\n layer.bindTooltip(parkingTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {\n const currentSensitiveAreasFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const sensitiveArea of state.currentSensitiveAreas) {\n currentSensitiveAreasFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: sensitiveArea.name },\n geometry: sensitiveArea.geometry,\n });\n }\n\n this.currentSensitiveAreasLayer = L.geoJSON(currentSensitiveAreasFeatureCollection, {\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const sensitiveAreaTooltip = L.DomUtil.create('div');\n sensitiveAreaTooltip.className = 'sensitive-area-tooltip';\n const sensitiveAreaName = L.DomUtil.create('div');\n sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;\n sensitiveAreaName.className = 'sensitive-area-name';\n sensitiveAreaTooltip.appendChild(sensitiveAreaName);\n layer.bindTooltip(sensitiveAreaTooltip).openTooltip();\n });\n },\n style: () => ({ color: this.colorSensitiveArea }),\n });\n }\n\n if (state.currentPois && state.currentPois.length > 0) {\n const currentPoisFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentPoi of state.currentPois) {\n currentPoisFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentPoi.name, type_pictogram: state.poiTypes.find(poiType => poiType.id === currentPoi.type)?.pictogram },\n geometry: currentPoi.geometry,\n });\n }\n\n const poiIcons = await this.getIcons(currentPoisFeatureCollection, 'type_pictogram');\n\n this.currentPoisLayer = L.geoJSON(currentPoisFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: poiIcons[geoJsonPoint.properties.type_pictogram] ? `<img crossorigin=\"anonymous\" src=${poiIcons[geoJsonPoint.properties.type_pictogram]} />` : `<img />`,\n className: 'poi-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const poiTooltip = L.DomUtil.create('div');\n poiTooltip.className = 'poi-tooltip';\n const poiName = L.DomUtil.create('div');\n poiName.innerHTML = geoJsonPoint.properties.name;\n poiName.className = 'poi-name';\n poiTooltip.appendChild(poiName);\n layer.bindTooltip(poiTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.trekTouristicContents && state.trekTouristicContents.length > 0) {\n const currentTouristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicContent of state.trekTouristicContents) {\n currentTouristicContentsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicContent.name,\n category_pictogram: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === touristicContent.category)?.pictogram,\n },\n geometry: touristicContent.geometry,\n });\n }\n\n const toutisticContentsIcons = await this.getIcons(currentTouristicContentsFeatureCollection, 'category_pictogram');\n\n this.currentToutisticContentsLayer = L.geoJSON(currentTouristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) => {\n return L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]\n ? `<img crossorigin=\"anonymous \"src=${toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]} />`\n : `<img />`,\n className: 'touristic-content-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicContentTooltip = L.DomUtil.create('div');\n touristicContentTooltip.className = 'touristic-content-tooltip';\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentTooltip.appendChild(touristicContentName);\n layer.bindTooltip(touristicContentTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.touristicEvents && state.touristicEvents.length > 0) {\n const currentTouristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicEvent of state.touristicEvents) {\n currentTouristicEventsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicEvent.name,\n type_pictogram: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === touristicEvent.type)?.pictogram,\n },\n geometry: touristicEvent.geometry,\n });\n }\n\n const toutisticEventsIcons = await this.getIcons(currentTouristicEventsFeatureCollection, 'type_pictogram');\n this.currenttouristicEventsLayer = L.geoJSON(currentTouristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]\n ? `\n <img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<img />`,\n className: 'touristic-event-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicEventTooltip = L.DomUtil.create('div');\n touristicEventTooltip.className = 'touristic-event-tooltip';\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventTooltip.appendChild(touristicEventName);\n layer.bindTooltip(touristicEventTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {\n const currentInformationDesksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentInformationDesk of state.currentInformationDesks.filter(currentInformationDesks =>\n state.currentTrek.information_desks.includes(currentInformationDesks.id),\n )) {\n if (currentInformationDesk.latitude && currentInformationDesk.longitude) {\n currentInformationDesksFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },\n geometry: { type: 'Point', coordinates: [Number(currentInformationDesk.longitude), Number(currentInformationDesk.latitude)] },\n });\n }\n }\n\n if (currentInformationDesksFeatureCollection.features.length > 0) {\n const informationDesksIcons = await this.getIcons(currentInformationDesksFeatureCollection, 'type_pictogram');\n this.currentInformationDesksLayer = L.geoJSON(currentInformationDesksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: informationDesksIcons[geoJsonPoint.properties.type_pictogram]\n ? `<img crossorigin=\"anonymous\" src=${informationDesksIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<img />`,\n className: 'information-desks-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const informationDesksTooltip = L.DomUtil.create('div');\n informationDesksTooltip.className = 'information-desks-tooltip';\n const informationDesksName = L.DomUtil.create('div');\n informationDesksName.innerHTML = geoJsonPoint.properties.name;\n informationDesksName.className = 'information-desks-name';\n informationDesksTooltip.appendChild(informationDesksName);\n layer.bindTooltip(informationDesksTooltip).openTooltip();\n });\n },\n });\n }\n }\n\n if (state.currentTrek.points_reference) {\n const currentReferencePointsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n currentReferencePointsFeatureCollection.features.push({\n type: 'Feature',\n properties: {},\n geometry: state.currentTrek.points_reference,\n });\n\n let index = 0;\n this.currentReferencePointsLayer = L.geoJSON(currentReferencePointsFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: index,\n className: 'point-reference-icon',\n iconSize: 24,\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any);\n },\n });\n }\n\n if (!this.currentStepsLayer && state.parentTrekId && state.parentTrek && state.currentTrek.id === state.parentTrekId) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n for (const trek of state.currentTrekSteps) {\n stepsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n }\n\n let stepIndex = 0;\n this.currentStepsLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n stepIndex += 1;\n return L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${stepIndex}</div></div>`,\n className: 'step-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedCurrentStep(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n }\n\n let elevationTranslation = {\n 'y: ': '',\n 'x: ': '',\n 'Total Length: ': 'Longueur totale : ',\n 'Min Elevation: ': 'Altitude min : ',\n 'Max Elevation: ': 'Altitude max : ',\n };\n\n /* @ts-ignore */\n L.registerLocale('fr', elevationTranslation);\n /* @ts-ignore */\n L.setLocale('fr');\n\n const elevationOptions = {\n srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',\n elevationDiv: `#elevation`,\n theme: `custom-theme${!this.useGradient ? ' use-theme-color' : ''}`,\n detached: true,\n height: 280,\n wptIcons: true,\n wptLabels: true,\n collapsed: false,\n autohide: false,\n distanceMarkers: { distance: false, direction: true },\n hotline: this.useGradient,\n closeBtn: false,\n summary: 'inline',\n time: false,\n timestamps: false,\n legend: false,\n downloadLink: false,\n autofitBounds: false,\n ruler: false,\n edgeScale: false,\n waypoints: false,\n almostOver: false,\n speed: false,\n slope: false,\n acceleration: false,\n reverseCoords: false,\n imperial: false,\n dragging: false,\n zooming: false,\n handlers: ['Altitude', 'Distance', 'Slope', 'LinearGradient'],\n linearGradient: {\n attr: 'z',\n path: 'altitude',\n range: { 0.0: '#008800', 0.5: '#ffff00', 1.0: '#ff0000' },\n min: 'elevation_min',\n max: 'elevation_max',\n },\n };\n this.elevationControl = (L.control as any).elevation({ ...elevationOptions }).addTo(this.map);\n const elevation = JSON.stringify({\n name: `${state.currentTrek.name}`,\n type: 'FeatureCollection',\n features: [{ type: 'Feature', geometry: { type: 'LineString', coordinates: state.currentTrek.geometry.coordinates }, properties: null }],\n });\n (this.elevationControl as any).load(elevation);\n\n const departureArrival: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[state.currentTrek.geometry.coordinates.length - 1] },\n properties: null,\n },\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[0] },\n properties: null,\n },\n ],\n };\n\n let index = 0;\n this.departureArrivalLayer = L.geoJSON(departureArrival, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: `<div></div>`,\n className: index === 1 ? 'departure-marker' : 'arrival-marker',\n iconSize: 22,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n });\n this.map.addLayer(this.departureArrivalLayer);\n\n const overlays = {};\n if (this.currentStepsLayer) {\n overlays[translate[state.language].layers.steps] = this.currentStepsLayer;\n }\n if (this.currentReferencePointsLayer) {\n overlays[translate[state.language].layers.referencePoints] = this.currentReferencePointsLayer;\n }\n if (this.currentParkingLayer) {\n overlays[translate[state.language].layers.parking] = this.currentParkingLayer;\n }\n if (this.currentSensitiveAreasLayer) {\n overlays[translate[state.language].layers.sensitiveArea] = this.currentSensitiveAreasLayer;\n }\n if (this.currentInformationDesksLayer) {\n overlays[translate[state.language].layers.informationPlaces] = this.currentInformationDesksLayer;\n }\n if (this.currentPoisLayer) {\n overlays[translate[state.language].layers.pois] = this.currentPoisLayer;\n }\n if (this.currentToutisticContentsLayer) {\n overlays[translate[state.language].layers.touristicContents] = this.currentToutisticContentsLayer;\n }\n\n if (this.currenttouristicEventsLayer) {\n overlays[translate[state.language].layers.touristicEvents] = this.currenttouristicEventsLayer;\n }\n\n if (this.layersControl) {\n Object.keys(overlays).forEach(key => {\n this.layersControl.addOverlay(overlays[key], key);\n });\n } else {\n this.layersControl = L.control.layers({}, overlays, { collapsed: true }).addTo(this.map);\n }\n\n this.handleLayersControlEvent();\n\n this.bounds = L.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n async getIcons(featuresCollection, property) {\n const icons = {};\n for (let index = 0; index < featuresCollection.features.length; index++) {\n if (featuresCollection.features[index].properties[property]) {\n icons[featuresCollection.features[index].properties[property]] = await this.getIcon(featuresCollection.features[index].properties[property]);\n }\n }\n return icons;\n }\n async getIcon(pictogram) {\n const dataInStore = await getDataInStore('images', pictogram);\n const icon = dataInStore ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type)) : pictogram ? pictogram : null;\n return icon;\n }\n\n async addSelectedCurrentTrek(id, customCoordinates?) {\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n const trek = state.currentTreks.find(trek => trek.id === id);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedCurrentTrek();\n state.selectedTrekId = id;\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n this.selectedCurrentTrekLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'selected-trek-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.trekPopupIsOpen) {\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n layer.on('popupopen', () => {\n this.trekPopupIsOpen = Boolean(state.selectedTrekId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentTrek() {\n state.selectedTrekId = null;\n this.selectedCurrentTrekLayer && this.map.removeLayer(this.selectedCurrentTrekLayer);\n this.selectedCurrentTrekLayer = null;\n }\n\n addSelectedCurrentStep(id, customCoordinates?) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n const stepIndex = state.currentTrekSteps.findIndex(trek => trek.id === id);\n stepsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : state.currentTrekSteps[stepIndex].departure_geom },\n properties: {\n id: state.currentTrekSteps[stepIndex].id,\n name: state.currentTrekSteps[stepIndex].name,\n practice: state.practices.find(practice => practice.id === state.currentTrekSteps[stepIndex].practice)?.pictogram,\n imgSrc:\n state.currentTrekSteps[stepIndex].attachments && state.currentTrekSteps[stepIndex].attachments.length > 0 && state.currentTrekSteps[stepIndex].attachments[0].thumbnail,\n index: stepIndex + 1,\n },\n });\n }\n\n this.removeSelectedCurrentStep();\n state.selectedStepId = id;\n\n this.selectedCurrentStepLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${geoJsonPoint.properties.index}</div></div>`,\n className: 'selected-step-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.stepPopupIsOpen) {\n state.selectedTrekId = null;\n this.removeSelectedCurrentStep();\n }\n });\n layer.on('popupopen', () => {\n this.stepPopupIsOpen = Boolean(state.selectedStepId);\n });\n layer.on('popupclose', () => {\n if (state.selectedStepId) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.removeSelectedCurrentStep();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentStep() {\n if (state.selectedStepId) {\n state.selectedStepId = null;\n this.selectedCurrentStepLayer && this.map.removeLayer(this.selectedCurrentStepLayer);\n this.selectedCurrentStepLayer = null;\n }\n }\n\n handleLayersControlEvent() {\n const userLayersState: HTMLInputElement[] = (this.layersControl as any)._layerControlInputs;\n userLayersState.forEach((userLayerState: any) => {\n if ((this.layersControl as any)._layers.find(layer => layer.layer._leaflet_id === userLayerState.layerId).overlay) {\n userLayerState.onchange = event => {\n this.userLayersState[userLayerState.layerId] = (event.target as any).checked;\n };\n }\n });\n }\n\n removeTrek() {\n if (this.layersControl) {\n if (!(this.layersControl as any)._layers.some(layer => !layer.overlay)) {\n this.map.removeControl(this.layersControl);\n this.layersControl = null;\n } else {\n (this.layersControl as any)._layers\n .filter(layer => layer.overlay)\n .forEach(layer => {\n this.layersControl.removeLayer(layer.layer);\n });\n }\n }\n\n if (this.elevationControl) {\n (this.elevationControl as any).clear();\n this.map.removeControl(this.elevationControl);\n this.elevationControl = null;\n }\n\n if (this.departureArrivalLayer) {\n this.map.removeLayer(this.departureArrivalLayer);\n this.departureArrivalLayer = null;\n }\n\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n\n if (this.currentParkingLayer) {\n this.map.removeLayer(this.currentParkingLayer);\n this.currentParkingLayer = null;\n }\n\n if (this.currentSensitiveAreasLayer) {\n this.map.removeLayer(this.currentSensitiveAreasLayer);\n this.currentSensitiveAreasLayer = null;\n }\n\n if (this.currentPoisLayer) {\n this.map.removeLayer(this.currentPoisLayer);\n this.currentPoisLayer = null;\n }\n\n if (this.currentInformationDesksLayer) {\n this.map.removeLayer(this.currentInformationDesksLayer);\n this.currentInformationDesksLayer = null;\n }\n\n if (this.currentReferencePointsLayer) {\n this.map.removeLayer(this.currentReferencePointsLayer);\n this.currentReferencePointsLayer = null;\n }\n\n if (this.currentStepsLayer) {\n this.map.removeLayer(this.currentStepsLayer);\n this.currentStepsLayer = null;\n }\n\n if (this.currentToutisticContentsLayer) {\n this.map.removeLayer(this.currentToutisticContentsLayer);\n this.currentToutisticContentsLayer = null;\n }\n if (this.currenttouristicEventsLayer) {\n this.map.removeLayer(this.currenttouristicEventsLayer);\n this.currenttouristicEventsLayer = null;\n }\n }\n\n async showTrekLine(id) {\n // this.removeSelectedCurrentTrek();\n const trekLine = await getTrekGeometry(id);\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: trekLine.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: this.colorTrekLine,\n }),\n interactive: false,\n }).addTo(this.map);\n }\n\n hideTrekLine() {\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n }\n\n async addTouristicContent() {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContent) {\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicContent.geometry.coordinates },\n properties: {\n id: state.currentTouristicContent.id,\n name: state.currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category).pictogram,\n },\n });\n }\n\n if (!this.currentToutisticContentLayer) {\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.currentToutisticContentLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous \"src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticContentLayer);\n }\n\n this.map.setView([state.currentTouristicContent.geometry.coordinates[1], state.currentTouristicContent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicContent() {\n if (this.currentToutisticContentLayer) {\n this.map.removeLayer(this.currentToutisticContentLayer);\n this.currentToutisticContentLayer = null;\n }\n }\n\n async addTouristicContents(resetBounds = false) {\n state.touristicContentsWithinBounds = state.currentTouristicContents;\n\n const touristicContentsCurrentCoordinates = [];\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContents) {\n for (const currentTouristicContent of state.currentTouristicContents) {\n touristicContentsCurrentCoordinates.push(currentTouristicContent.geometry.coordinates);\n\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicContent.geometry.coordinates },\n properties: {\n id: currentTouristicContent.id,\n name: currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === currentTouristicContent.category).pictogram,\n imgSrc: currentTouristicContent.attachments && currentTouristicContent.attachments.length > 0 && currentTouristicContent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.toutisticContentsLayer) {\n if ((touristicContentsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.toutisticContentsLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentCoordinatesPopup = L.DomUtil.create('div');\n touristicContentCoordinatesPopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentCoordinatesPopup.appendChild(touristicContentImg);\n }\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentCoordinatesPopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentCoordinatesPopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicContent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicContentsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-content-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\n this.map.addLayer(this.touristicContentsMarkerClusterGroup);\n } else {\n if (touristicContentsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.toutisticContentsLayer.clearLayers();\n this.toutisticContentsLayer.addData(touristicContentsFeatureCollection);\n this.touristicContentsMarkerClusterGroup.clearLayers();\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\n }\n\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n\n this.map.on('moveend', this.handleTouristicContentsWithinBoundsBind);\n }\n\n removeTouristicContents() {\n if (this.toutisticContentsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicContentsMarkerClusterGroup);\n this.toutisticContentsLayer = null;\n this.touristicContentsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicContentsWithinBoundsBind);\n }\n }\n\n async addTouristicEvent() {\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvent) {\n const touristicEventType = state.touristicEventTypes.find(touristicEventType => touristicEventType.id === state.currentTouristicEvent.type);\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicEvent.geometry.coordinates },\n properties: {\n id: state.currentTouristicEvent.id,\n name: state.currentTouristicEvent.name,\n type: touristicEventType ? touristicEventType.pictogram : null,\n },\n });\n }\n\n if (!this.currentToutisticEventLayer) {\n const toutisticEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.currentToutisticEventLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticEventLayer);\n }\n\n this.map.setView([state.currentTouristicEvent.geometry.coordinates[1], state.currentTouristicEvent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicEvent() {\n if (this.currentToutisticEventLayer) {\n this.map.removeLayer(this.currentToutisticEventLayer);\n this.currentToutisticEventLayer = null;\n }\n }\n\n async addSelectedTouristicContent(id, customCoordinates?) {\n const touristicContentFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicContents) {\n const touristicContent = state.touristicContents.find(touristicContent => touristicContent.id === id);\n touristicContentFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicContent.geometry.coordinates },\n properties: {\n id: touristicContent.id,\n name: touristicContent.name,\n category: state.touristicContentCategories.find(practice => practice.id === touristicContent.category)?.pictogram,\n imgSrc: touristicContent.attachments && touristicContent.attachments.length > 0 && touristicContent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicContent();\n state.selectedTouristicContentId = id;\n\n const toutisticContentIcons = await this.getIcons(touristicContentFeatureCollection, 'category');\n this.selectedTouristicContentLayer = L.geoJSON(touristicContentFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'selected-touristic-content-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentDeparturePopup = L.DomUtil.create('div');\n touristicContentDeparturePopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentDeparturePopup.appendChild(touristicContentImg);\n }\n\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentDeparturePopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentDeparturePopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicContentPopupIsOpen) {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicContentPopupIsOpen = Boolean(state.selectedTouristicContentId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicContentId) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicContent() {\n state.selectedTouristicContentId = null;\n this.selectedTouristicContentLayer && this.map.removeLayer(this.selectedTouristicContentLayer);\n this.selectedTouristicContentLayer = null;\n }\n\n async addTouristicEvents(resetBounds = false) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents;\n\n const touristicEventsCurrentCoordinates = [];\n\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvents) {\n for (const currentTouristicEvent of state.currentTouristicEvents) {\n touristicEventsCurrentCoordinates.push(currentTouristicEvent.geometry.coordinates);\n\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicEvent.geometry.coordinates },\n properties: {\n id: currentTouristicEvent.id,\n name: currentTouristicEvent.name,\n type: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === currentTouristicEvent.type)?.pictogram,\n imgSrc: currentTouristicEvent.attachments && currentTouristicEvent.attachments.length > 0 && currentTouristicEvent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.touristicEventsLayer) {\n if ((touristicEventsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const touristicEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.touristicEventsLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventCoordinatesPopup = L.DomUtil.create('div');\n touristicEventCoordinatesPopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventCoordinatesPopup.appendChild(touristicEventImg);\n }\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventCoordinatesPopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventCoordinatesPopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicEvent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicEventsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-event-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\n this.map.addLayer(this.touristicEventsMarkerClusterGroup);\n } else {\n if (touristicEventsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.touristicEventsLayer.clearLayers();\n this.touristicEventsLayer.addData(touristicEventsFeatureCollection);\n this.touristicEventsMarkerClusterGroup.clearLayers();\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\n }\n\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n\n this.map.on('moveend', this.handleTouristicEventsWithinBoundsBind);\n }\n\n removeTouristicEvents() {\n if (this.touristicEventsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicEventsMarkerClusterGroup);\n this.touristicEventsLayer = null;\n this.touristicEventsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicEventsWithinBoundsBind);\n }\n }\n\n async addSelectedTouristicEvent(id, customCoordinates?) {\n const touristicEventFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicEvents) {\n const touristicEvent = state.touristicEvents.find(touristicEvent => touristicEvent.id === id);\n touristicEventFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicEvent.geometry.coordinates },\n properties: {\n id: touristicEvent.id,\n name: touristicEvent.name,\n category: state.touristicEventTypes.find(type => type.id === touristicEvent.type)?.pictogram,\n imgSrc: touristicEvent.attachments && touristicEvent.attachments.length > 0 && touristicEvent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicEvent();\n state.selectedTouristicEventId = id;\n\n const touristicEventsIcons = await this.getIcons(touristicEventFeatureCollection, 'category');\n this.selectedTouristicEventLayer = L.geoJSON(touristicEventFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'selected-touristic-event-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventDeparturePopup = L.DomUtil.create('div');\n touristicEventDeparturePopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventDeparturePopup.appendChild(touristicEventImg);\n }\n\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventDeparturePopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventDeparturePopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicEventPopupIsOpen) {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicEventPopupIsOpen = Boolean(state.selectedTouristicEventId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicEventId) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicEvent() {\n state.selectedTouristicEventId = null;\n this.selectedTouristicEventLayer && this.map.removeLayer(this.selectedTouristicEventLayer);\n this.selectedTouristicEventLayer = null;\n }\n\n render() {\n const layersImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/layers.svg`);\n const contractImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/contract.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-background': this.colorBackground,\n '--color-poi-icon': this.colorPoiIcon,\n '--color-trek-line': this.colorTrekLine,\n '--layers-image-src': `url(${layersImageSrc})`,\n '--contract-image-src': `url(${contractImageSrc})`,\n '--map-bottom-space-height': this.isLargeView ? '0px' : '80px',\n }}\n >\n <div id=\"map\" part=\"map\" class={state.currentTrek ? 'trek-map' : 'treks-map'} ref={el => (this.mapRef = el)}></div>\n {state.currentTrek && (\n <div>\n <div id=\"elevation\" part=\"elevation\" ref={el => (this.elevationRef = el)}></div>\n <div part=\"map-bottom-space\" class=\"map-bottom-space\"></div>\n </div>\n )}\n\n {!this.mapIsReady && (\n <div part=\"map-loader-container\" class=\"map-loader-container\">\n <span part=\"loader\" class=\"loader\"></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n .icon {\n color: var(--color-on-primary-container);\n font-size: 24px;\n position: absolute;\n left: 32px;\n z-index: 20;\n pointer-events: none;\n }\n}\n\n.search-input {\n width: 100%;\n background-color: var(--color-surface-container-high);\n box-shadow: var(--elevation-2);\n border: none;\n border-radius: var(--border-radius, 40px);\n color: var(--color-on-primary-container);\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n font-family: var(--font-family);\n height: 44px;\n padding: 0px 16px 0px 48px;\n outline-color: var(--color-outline);\n &::placeholder {\n color: var(--color-on-primary-container);\n }\n &::-webkit-search-cancel-button {\n -webkit-appearance: none;\n background-color: var(--color-on-primary-container);\n -webkit-mask-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23777'><path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/></svg>\");\n background-size: 20px 20px;\n height: 20px;\n width: 20px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport state from 'store/store';\nimport { handleTouristicContentsFiltersAndSearch, handleTouristicEventsFiltersAndSearch, handleTreksFiltersAndSearch } from 'utils/utils';\n\n@Component({\n tag: 'grw-search',\n styleUrl: 'grw-search.scss',\n shadow: true,\n})\nexport class GrwSearch {\n @Prop() fontFamily = 'Roboto';\n\n onSearchChange(event: InputEvent) {\n state.searchValue = (event.target as any).value;\n if (state.mode === 'treks') {\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (state.mode === 'touristicContents') {\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (state.mode === 'touristicEvents') {\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n search\n </span>\n <input part=\"search-input\" class=\"search-input\" onInput={e => this.onSearchChange(e)} type=\"search\" placeholder=\"Rechercher\" value={state.searchValue}></input>\n </Host>\n );\n }\n}\n",".segmented-buttons-container {\n font-family: var(--font-family);\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport { Mode } from 'types/types';\n\nimport {\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n touristicEventsFilters,\n treksFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-segmented-segment',\n styleUrl: 'grw-segmented-segment.scss',\n shadow: true,\n})\nexport class GrwSegmentedSegment {\n @Prop() treks = true;\n @Prop() touristicContents = false;\n @Prop() touristicEvents = false;\n\n @Prop() fontFamily = 'Roboto';\n\n changeMode(mode: Mode) {\n state.searchValue = '';\n if (mode === 'treks' && state.currentTreks) {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (mode === 'touristicContents' && state.currentTouristicContents) {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (mode === 'touristicEvents' && state.currentTouristicEvents) {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n state.mode = mode;\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.treks && (\n <label part=\"segment\" class={`segment${state.mode === 'treks' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('treks')}>\n {translate[state.language].home.segment.treks}\n </label>\n )}\n {this.touristicContents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicContents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicContents')}>\n {translate[state.language].home.segment.touristicContents}\n </label>\n )}\n {this.touristicEvents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicEvents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicEvents')}>\n {translate[state.language].home.segment.touristicEvents}\n </label>\n )}\n </div>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n align-items: center;\n .icon {\n font-size: 18px;\n }\n #language-select {\n border: none;\n background-color: var(--color-background);\n &:focus-visible {\n outline: none;\n }\n }\n}\n","import { Component, Host, h } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-select-language',\n styleUrl: 'grw-select-language.scss',\n shadow: true,\n})\nexport class GrwSelectLanguage {\n handleSelect(event) {\n state.treks = null;\n state.currentTreks = null;\n state.currentTrek = null;\n state.language = event.target.value;\n }\n\n render() {\n return (\n <Host>\n {/* @ts-ignore */}\n <span part=\"select-language-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n translate\n </span>\n <select part=\"select-language-select\" onInput={event => this.handleSelect(event)} name=\"languages\" id=\"language-select\">\n {state.languages.map(language => (\n <option part=\"select-language-option\" selected={language === state.language} value={language.toLocaleLowerCase()}>\n {language.toLocaleUpperCase()}\n </option>\n ))}\n </select>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.md3.switch {\n user-select: none;\n position: relative;\n -webkit-tap-highlight-color: transparent;\n margin: 10px;\n font-family: var(--font-family);\n}\n\n.md3.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n}\n\n.md3.switch span.slider {\n position: absolute;\n cursor: pointer;\n background-color: var(--color-primary-container);\n width: 48px;\n height: 28px;\n border-radius: 28px;\n border: 2px solid var(--color-outline);\n transition: background-color 0.1s ease-in-out, border-color 0.1s ease-in-out;\n}\n\n/* thumb */\n.md3.switch span.slider::before {\n position: absolute;\n content: '';\n height: 16px;\n width: 16px;\n left: 0px;\n margin: 6px;\n background-color: var(--color-outline);\n border-radius: 28px;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5), background-color 0.1s ease-in-out, height 50ms ease-in-out, width 50ms ease-in-out, margin 50ms ease-in-out;\n}\n\n.md3.switch span.slider span.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n left: 0px;\n margin: 6px 0px;\n height: 16px;\n width: 16px;\n font-size: 16px;\n text-align: center;\n opacity: 0;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5);\n color: var(--color-surface-variant);\n}\n\n.md3.switch input:checked + span.slider {\n background-color: var(--color-primary);\n border-color: transparent;\n}\n\n.md3.switch input:checked + span.slider::before {\n background-color: var(--color-on-primary);\n height: 24px;\n width: 24px;\n left: 20px;\n margin: 2px;\n}\n\n.md3.switch input:not(:disabled):hover + span.slider::before {\n background-color: var(--color-on-surface-variant);\n}\n\n.md3.switch input:not(:disabled):checked:hover + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:not(:disabled):active + span.slider::before {\n height: 28px;\n width: 28px;\n margin: 0px;\n}\n\n.md3.switch input:not(:disabled):checked:active + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:checked + span.slider span.icon {\n left: 26px;\n opacity: 1;\n color: var(--color-on-primary-container);\n}\n\n.md3.switch input:focus-visible + span.slider {\n outline: 2px solid var(--color-primary);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-switch',\n styleUrl: 'grw-switch.scss',\n shadow: true,\n})\nexport class GrwSwitch {\n @Prop() action: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <label class=\"md3 switch\">\n <input onChange={() => this.action()} type=\"checkbox\" id=\"darkmode\" name=\"darkmode\" />\n <span class=\"slider\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n done\n </span>\n </span>\n </label>\n </Host>\n );\n }\n}\n","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.swiper {\n z-index: 0;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-content-detail {\n overflow: hidden;\n}\n\n.touristic-content-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-content-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-content-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.touristic-content-category-img {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-content-detail',\n styleUrl: 'grw-touristic-content-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicContentDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicContentDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicContent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicContent.attachments && state.currentTouristicContent.attachments[0] && state.currentTouristicContent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicContentCategory =\n state.touristicContentCategories &&\n state.currentTouristicContent &&\n state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category);\n const cities = state.currentTouristicContent && state.currentTouristicContent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicContent && (\n <div part=\"touristic-content-detail-container\" class=\"touristic-content-detail-container\" ref={el => (this.touristicContentDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicContent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicContent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-content-category-container\" class=\"touristic-content-category-container\">\n <img\n part=\"touristic-content-category-img\"\n class=\"touristic-content-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicContentCategory.pictogram}\n />\n <div part=\"touristic-content-category-name\" class=\"touristic-content-category-name\">\n {touristicContentCategory.label}\n </div>\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicContent.name}\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link-container\" class=\"link-container\" href={`${state.currentTouristicContent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicContent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicContent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicContent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicContent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} :&nbsp;\n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicContent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} :&nbsp;\n </div>\n <div part=\"useful-information\" innerHTML={state.currentTouristicContent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicContent.contact || state.currentTouristicContent.email || state.currentTouristicContent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} :&nbsp;\n </div>\n {state.currentTouristicContent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicContent.contact}></div>}\n {state.currentTouristicContent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} :&nbsp;\n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicContent.email}></div>\n </div>\n )}\n {state.currentTouristicContent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} :&nbsp;\n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicContent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicContent(api, language, touristicContentId, init) {\n return fetch(\n `${api}touristiccontent/${touristicContentId}/?language=${language}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts`,\n init,\n );\n}\n\nexport function getTouristicContentsNearTrek(api, language, trekId, init) {\n return fetch(\n `${api}touristiccontent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts&page_size=999`,\n init,\n );\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContent } from 'services/touristic-contents.service';\nimport state from 'store/store';\nimport { TouristicContent } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-content-provider',\n shadow: true,\n})\nexport class GrwTouristicContentProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicContentId: number;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContent();\n }\n\n async handleTouristicContent() {\n const touristicContentInStore: TouristicContent = await getDataInStore('touristicContents', this.touristicContentId);\n if (touristicContentInStore && touristicContentInStore.offline) {\n this.handleOfflineTouristicContent(touristicContentInStore);\n } else {\n this.handleOnlineTouristicContent();\n }\n }\n\n async handleOfflineTouristicContent(touristicContent: TouristicContent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n setFilesFromStore(touristicContent, imagesRegExp);\n state.currentTouristicContent = touristicContent;\n }\n\n handleOnlineTouristicContent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, getTouristicContent(state.api, state.language, this.touristicContentId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicContentCategory, touristicContent]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.currentTouristicContent = touristicContent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-content-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-contents-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-contents-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicContents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-contents-list',\n styleUrl: 'grw-touristic-contents-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicContentsToDisplay: TouristicContents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n onChange('currentTouristicContents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n });\n onChange('touristicContentsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicContentsWithinBounds) {\n this.touristicContentsToDisplay = [...state.touristicContentsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicContentsToDisplay.length < state.touristicContentsWithinBounds.length) {\n this.touristicContentsToDisplay = state.touristicContentsWithinBounds.slice(\n 0,\n this.touristicContentsToDisplay.length + this.step >= state.touristicContentsWithinBounds.length\n ? state.touristicContentsWithinBounds.length\n : this.touristicContentsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicContentsWithinBounds && (\n <div part=\"current-touristic-contents-within-bounds-length\" class=\"current-touristic-contents-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"touristic-contents-list-container\" class=\"touristic-contents-list-container\">\n {this.touristicContentsToDisplay.map(touristicContent => (\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n key={`touristic-content-${touristicContent.id}`}\n touristicContent={touristicContent}\n is-large-view={this.isLargeView}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-touristic-content-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-contents-provider',\n shadow: true,\n})\nexport class GrwTouristicContentsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContents();\n }\n\n handleTouristicContents() {\n let touristicContentsRequest = `${state.api}touristiccontent/?language=${state.language}&published=true`;\n this.inBbox && (touristicContentsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicContentsRequest += `&cities=${this.cities}`);\n this.districts && (touristicContentsRequest += `&districts=${this.districts}`);\n this.structures && (touristicContentsRequest += `&structures=${this.structures}`);\n this.themes && (touristicContentsRequest += `&themes=${this.themes}`);\n this.portals && (touristicContentsRequest += `&portals=${this.portals}`);\n\n touristicContentsRequest += `&fields=id,name,attachments,category,geometry,cities,districts&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, fetch(touristicContentsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicContentCategory, touristicContents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.touristicContents = touristicContents.results;\n state.currentTouristicContents = touristicContents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-event-detail {\n overflow: hidden;\n}\n\n.touristic-event-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-event-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-event-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .touristic-event-date-container {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-event-detail',\n styleUrl: 'grw-touristic-event-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicEventDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicEventDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicEvent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicEvent.attachments && state.currentTouristicEvent.attachments[0] && state.currentTouristicEvent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n } else {\n (document as any).exitFullscreen();\n }\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicEventType =\n state.touristicEventTypes &&\n state.currentTouristicEvent &&\n state.touristicEventTypes.find(touristicEventCategory => touristicEventCategory.id === state.currentTouristicEvent.type);\n const cities = state.currentTouristicEvent && state.currentTouristicEvent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicEvent && (\n <div part=\"touristic-event-detail-container\" class=\"touristic-event-detail-container\" ref={el => (this.touristicEventDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicEvent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicEvent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" translate={false} class=\"material-symbols material-symbols-outlined icon\">\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-event-category-container\" class=\"touristic-event-category-container\">\n {touristicEventType && touristicEventType.pictogram && (\n <img\n part=\"touristic-event-category-img\"\n class=\"touristic-event-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicEventType.pictogram}\n />\n )}\n {touristicEventType && touristicEventType.type && (\n <div part=\"touristic-event-category-name\" class=\"touristic-event-category-name\">\n {touristicEventType.type}\n </div>\n )}\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicEvent.name}\n </div>\n {(state.currentTouristicEvent.begin_date || state.currentTouristicEvent.end_date) && (\n <div part=\"touristic-event-date-container\" class=\"touristic-event-date-container\">\n {state.currentTouristicEvent.begin_date === state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].date} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.begin_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].startDate} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.end_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].endDate} : {state.currentTouristicEvent.end_date}\n </div>\n )}\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link\" class=\"link\" href={`${state.currentTouristicEvent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicEvent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicEvent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicEvent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicEvent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} :&nbsp;\n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicEvent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} :&nbsp;\n </div>\n <div part=\"useful-information\" class=\"useful-information\" innerHTML={state.currentTouristicEvent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicEvent.contact || state.currentTouristicEvent.email || state.currentTouristicEvent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} :&nbsp;\n </div>\n {state.currentTouristicEvent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicEvent.contact}></div>}\n {state.currentTouristicEvent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} :&nbsp;\n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicEvent.email}></div>\n </div>\n )}\n {state.currentTouristicEvent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} :&nbsp;\n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicEvent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicEvent(api, language, touristicEventId, init) {\n fetch(\n `${api}touristicevent/${touristicEventId}/?language=${language}&fields=id,name,attachments,description,description_teaser,type,geometry,cities,pdf,practical_info,contact,email,website,begin_date,end_date&published=true`,\n init,\n );\n}\n\nexport function getTouristicEventsNearTrek(api, language, trekId, init) {\n return fetch(`${api}touristicevent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,type,geometry&page_size=999`, init);\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { TouristicEvent } from 'components';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicEvent } from 'services/touristic-events.service';\nimport state from 'store/store';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-event-provider',\n shadow: true,\n})\nexport class GrwTouristicEventProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicEventId: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvent();\n }\n\n async handleTouristicEvent() {\n const touristicEventInStore: TouristicEvent = await getDataInStore('touristicEvents', this.touristicEventId);\n if (touristicEventInStore && touristicEventInStore.offline) {\n this.handleOfflineTouristicEvent(touristicEventInStore);\n } else {\n this.handleOnlineTouristicEvent();\n }\n }\n\n async handleOfflineTouristicEvent(touristicEvent: TouristicEvent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n setFilesFromStore(touristicEvent, imagesRegExp);\n state.currentTouristicEvent = touristicEvent;\n }\n\n handleOnlineTouristicEvent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, getTouristicEvent(state.api, state.language, this.touristicEventId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicEventTypes, touristicEvent]) => {\n state.networkError = false;\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.currentTouristicEvent = touristicEvent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-event-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-events-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-events-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicEvents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-events-list',\n styleUrl: 'grw-touristic-events-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicEventsToDisplay: TouristicEvents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicEvents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n onChange('currentTouristicEvents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n });\n onChange('touristicEventsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicEventsWithinBounds) {\n this.touristicEventsToDisplay = [...state.touristicEventsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicEventsToDisplay.length < state.touristicEventsWithinBounds.length) {\n this.touristicEventsToDisplay = state.touristicEventsWithinBounds.slice(\n 0,\n this.touristicEventsToDisplay.length + this.step >= state.touristicEventsWithinBounds.length\n ? state.touristicEventsWithinBounds.length\n : this.touristicEventsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicEventsWithinBounds && (\n <div part=\"current-touristic-events-within-bounds-length\" class=\"current-touristic-events-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"touristic-events-list-container\" class=\"touristic-events-list-container\">\n {this.touristicEventsToDisplay.map(touristicEvent => (\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n key={`touristic-event-${touristicEvent.id}`}\n touristicEvent={touristicEvent}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-touristic-event-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-events-provider',\n shadow: true,\n})\nexport class GrwTouristicEventsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvents();\n }\n\n handleTouristicEvents() {\n let touristicEventsRequest = `${state.api}touristicevent/?language=${state.language}&published=true`;\n this.inBbox && (touristicEventsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicEventsRequest += `&cities=${this.cities}`);\n this.districts && (touristicEventsRequest += `&districts=${this.districts}`);\n this.structures && (touristicEventsRequest += `&structures=${this.structures}`);\n this.themes && (touristicEventsRequest += `&themes=${this.themes}`);\n this.portals && (touristicEventsRequest += `&portals=${this.portals}`);\n\n touristicEventsRequest += `&fields=id,name,attachments,category,geometry,cities,districts,type,begin_date,end_date&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, fetch(touristicEventsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicEventTypes, touristicEvents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.touristicEvents = touristicEvents.results;\n state.currentTouristicEvents = touristicEvents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n@use '~swiper/modules/scrollbar/scrollbar.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-trek-detail {\n overflow: hidden;\n}\n\n.trek-options {\n display: flex;\n position: relative;\n width: 100%;\n min-height: 32px;\n padding: 8px 0px;\n background-color: var(--color-background);\n overflow-x: auto;\n font-family: var(--font-family);\n &::-webkit-scrollbar {\n display: none;\n }\n .trek-option {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: 16px;\n font-size: 22px;\n line-height: 28px;\n font-weight: 500;\n white-space: nowrap;\n text-decoration: none;\n color: var(--color-on-surface);\n transition-property: color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.3s;\n &:hover {\n color: var(--color-primary-app);\n }\n @media (hover: none) {\n &:not(.selected-trek-option):hover {\n color: inherit;\n }\n }\n }\n .trek-option:last-of-type {\n margin-right: 16px;\n }\n .selected-trek-option {\n color: var(--color-primary-app);\n }\n .trek-indicator-selected-trek-option {\n position: absolute;\n bottom: 8px;\n height: 2px;\n background-image: linear-gradient(var(--color-primary-app), var(--color-primary-app));\n background-repeat: no-repeat;\n transition: transform 0.5s ease, background-size 0.5s ease 0.5s;\n margin-left: 16px;\n background-position: center;\n }\n}\n.trek-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .trek-name {\n color: var(--color-primary-app);\n font-size: 32px;\n line-height: 28px;\n font-weight: 600;\n padding: 0px 24px;\n margin: 16px 0px;\n }\n .trek-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-trek-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .sub-container {\n padding: 24px 24px 0px 24px;\n .icons-labels-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n .icon-label {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n .icon {\n font-size: 24px;\n width: 24px;\n height: auto;\n color: var(--color-primary-app);\n margin-right: 8px;\n }\n .network {\n &:not(:last-child) {\n margin-right: 16px;\n }\n }\n }\n .practice {\n .icon {\n background-color: var(--color-primary-app);\n }\n }\n .network {\n display: flex;\n align-items: center;\n }\n }\n }\n .row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n .downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n font-family: var(--font-family);\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n }\n .themes-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n padding: 0px 24px 0px 24px;\n .theme {\n background-color: var(--color-secondary-container);\n color: var(--color-on-secondary-container);\n border-radius: var(--border-radius, 40px);\n padding: 8px 16px;\n margin: 0px 8px 8px 0px;\n box-shadow: var(--elevation-0);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n }\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .source-container,\n .accessibilities-container,\n .parent-trek-container,\n .weather-container,\n .weblinks-container {\n padding: 0px 24px 0px 24px;\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .information-desks-container,\n .pois-container,\n .source-container,\n .accessibilities-container,\n .weather-container,\n .parent-trek-container,\n .step-container,\n .touristic-content-container,\n .touristic-event-container,\n .weblinks-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-teaser {\n font-weight: 600;\n font-size: 22px;\n margin-bottom: 8px;\n }\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .step-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n }\n\n .access {\n margin-bottom: 16px;\n }\n\n .advised-parking-title {\n font-size: 16px;\n }\n\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n margin-bottom: 16px;\n }\n\n .step-title {\n margin-bottom: 12px;\n }\n\n .information-desks-title,\n .pois-title,\n .step-title,\n .touristic-content-title,\n .touristic-event-title {\n padding: 0px 24px 0px 24px;\n }\n\n .parent-trek-title {\n cursor: pointer;\n user-select: none;\n font-weight: 500;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-primary);\n background-color: transparent;\n div {\n margin-right: 4px;\n }\n }\n\n .accessibility-emergency-number-content {\n a {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n border-radius: var(--border-radius, 40px);\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n text-decoration: none;\n font-weight: 600;\n width: fit-content;\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n position: relative;\n font-family: var(--font-family);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.description-container {\n .description {\n ol {\n position: relative;\n counter-reset: referencePoint;\n &:before {\n content: '';\n position: absolute;\n width: 4px;\n top: 0px;\n bottom: 0px;\n left: 14px;\n background-color: var(--color-primary-app);\n }\n li {\n position: relative;\n list-style-type: none;\n counter-increment: referencePoint;\n p {\n margin: 0;\n }\n &:not(:first-child) {\n margin-top: 12px;\n }\n }\n li:before {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(referencePoint);\n width: 24px;\n height: 24px;\n background: #f04141;\n border-radius: 12px;\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: -36px;\n top: calc(50% - 12px);\n }\n }\n }\n}\n\n.current-advice-container,\n.gear-container {\n display: flex;\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n font-size: 16px;\n .material-symbols {\n font-size: 24px;\n width: 26px;\n margin-right: 8px;\n }\n margin-bottom: 12px;\n}\n\n.label-container {\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n margin-bottom: 12px;\n .label-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n background-color: var(--color-on-surface);\n }\n .label-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n padding: 12px 0px;\n }\n }\n .label-advice {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n}\n\n.advice-container {\n div:last-child {\n margin-bottom: 0px;\n }\n}\n\n.source-container {\n .source-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n }\n .source-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n }\n }\n}\n.weblinks-container {\n .weblink-container {\n display: flex;\n align-items: center;\n width: fit-content;\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n img {\n width: 26px;\n margin-right: 16px;\n }\n }\n}\n\n.departure-container,\n.arrival-container,\n.cities-container {\n display: flex;\n align-items: center;\n padding: 0px 24px 24px 24px;\n .departure-title,\n .arrival-title,\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n.accessibilities-container {\n div:nth-child(2) {\n div:first-child {\n padding: 0px 0px 12px 0px;\n }\n }\n .accessibilities-content-container {\n padding: 12px 0px 0px 0px;\n display: flex;\n .accessibility-content-container {\n display: flex;\n align-items: center;\n margin: 0px 8px 8px 0px;\n img {\n margin-right: 16px;\n width: 26px;\n }\n }\n }\n .accessibility-level-title,\n .accessibility-slope-title,\n .accessibility-width-title,\n .accessibility-signage-title,\n .accessibility-covering-title,\n .accessibility-exposure-title,\n .accessibility-advice-title,\n .accessibility-emergency-number-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 12px 0px;\n }\n}\n\n.weather-container {\n iframe {\n width: 100%;\n }\n}\n\n.swiper-information-desks,\n.swiper-pois,\n.swiper-step,\n.swiper-touristic-content,\n.swiper-touristic-event {\n padding-right: 32px;\n padding-left: 32px;\n padding-bottom: 20px;\n}\n\n.swiper-step {\n padding-bottom: 4px;\n .swiper-wrapper {\n .swiper-slide {\n counter-increment: stepPoint;\n padding-top: 36px;\n }\n .swiper-slide:first-child:before {\n border-top-left-radius: var(--border-radius, 8px);\n border-bottom-left-radius: var(--border-radius, 8px);\n }\n .swiper-slide:before {\n content: '';\n position: absolute;\n top: 6px;\n height: 12px;\n width: calc(100% + 20px);\n background-color: var(--color-secondary-container);\n }\n .swiper-slide:last-child:before {\n border-top-right-radius: 8px;\n border-bottom-right-radius: 8px;\n width: 100%;\n }\n .swiper-slide:after {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(stepPoint);\n width: 24px;\n height: 24px;\n background: var(--color-primary-app);\n border-radius: var(--border-radius, 12px);\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: calc(50% - 12px);\n top: 0px;\n }\n }\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.trek-images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.descent .icon {\n transform: rotateX(180deg);\n}\n\n.swiper-horizontal > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-horizontal {\n --swiper-scrollbar-sides-offset: 32px;\n}\n\n.swiper-scrollbar-drag {\n background-color: var(--color-primary-app);\n}\n\n.sensitive-areas-description {\n font-size: 16px;\n}\n\n.step-container {\n .swiper-wrapper {\n padding-bottom: 16px;\n }\n}\n\n.trek-image-legend {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.trek-close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.practice {\n .icon {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n }\n}\n\n.offline-button {\n cursor: pointer;\n font-size: 14px;\n border: none;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n box-shadow: var(--elevation-2);\n }\n .icon {\n font-size: 16px;\n }\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Build, Listen, getAssetPath } from '@stencil/core';\nimport Swiper, { Navigation, Pagination, Keyboard, FreeMode, Mousewheel, Scrollbar } from 'swiper';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Accessibilities, AccessibilityLevel, Difficulty, Labels, Practice, Route, Sources, Themes, Trek, Option, Options, Treks } from 'types/types';\nimport { formatDuration, formatLength, formatAscent, formatDescent, imagesRegExp } from 'utils/utils';\nimport { getAllDataInStore, getDataInStore, writeOrUpdateDataInStore, writeOrUpdateFilesInStore, writeOrUpdateTilesInStore } from 'services/grw-db.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport L from 'leaflet';\nimport { getDistricts, getTrek, getTreksList } from 'services/treks.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\n\nconst threshold = 1;\nconst presentation: Option = {\n visible: true,\n indicator: false,\n ref: 'presentationOptionRef',\n};\nconst steps: Option = {\n visible: false,\n indicator: false,\n ref: 'stepsOptionRef',\n};\nconst description: Option = {\n visible: false,\n indicator: false,\n ref: 'descriptionOptionRef',\n};\nconst pois: Option = {\n visible: false,\n indicator: false,\n ref: 'poisOptionRef',\n};\nconst recommendations: Option = {\n visible: false,\n indicator: false,\n ref: 'recommendationsOptionRef',\n};\nconst sensitiveArea: Option = {\n visible: false,\n indicator: false,\n ref: 'sensitiveAreaOptionRef',\n};\nconst informationPlaces: Option = {\n visible: false,\n indicator: false,\n ref: 'informationPlacesOptionRef',\n};\nconst accessibility: Option = {\n visible: false,\n indicator: false,\n ref: 'accessibilityOptionRef',\n};\nconst touristicContents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicContentsOptionRef',\n};\nconst touristicEvents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicEventsOptionRef',\n};\nconst options: Options = {\n presentation,\n steps,\n description,\n pois,\n recommendations,\n sensitiveArea,\n informationPlaces,\n accessibility,\n touristicContents,\n touristicEvents,\n};\n\n@Component({\n tag: 'grw-trek-detail',\n styleUrl: 'grw-trek-detail.scss',\n shadow: true,\n})\nexport class GrwTrekDetail {\n swiperImages?: Swiper;\n swiperStep?: Swiper;\n swiperPois?: Swiper;\n swiperInformationDesks?: Swiper;\n swiperTouristicContents?: Swiper;\n swiperTouristicEvents?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n swiperStepRef?: HTMLDivElement;\n swiperPoisRef?: HTMLDivElement;\n swiperInformationDesksRef?: HTMLDivElement;\n swiperTouristicContentsRef?: HTMLDivElement;\n swiperTouristicEventsRef?: HTMLDivElement;\n trekDetailContainerRef?: HTMLElement;\n presentationRef?: HTMLDivElement;\n descriptionRef?: HTMLDivElement;\n parkingRef?: HTMLDivElement;\n recommendationRef?: HTMLDivElement;\n sensitiveAreaRef?: HTMLDivElement;\n informationPlacesRef?: HTMLDivElement;\n poiRef?: HTMLDivElement;\n stepsRef?: HTMLDivElement;\n accessibilityRef?: HTMLDivElement;\n touristicContentsRef?: HTMLDivElement;\n touristicEventsRef?: HTMLDivElement;\n presentationOptionRef?: HTMLAnchorElement;\n stepsOptionRef?: HTMLAnchorElement;\n descriptionOptionRef?: HTMLAnchorElement;\n recommendationsOptionRef?: HTMLAnchorElement;\n accessibilityOptionRef?: HTMLAnchorElement;\n OptionRef?: HTMLAnchorElement;\n sensitiveAreaOptionRef?: HTMLAnchorElement;\n informationPlacesOptionRef?: HTMLAnchorElement;\n poisOptionRef?: HTMLAnchorElement;\n touristicContentsOptionRef?: HTMLAnchorElement;\n touristicEventsOptionRef?: HTMLAnchorElement;\n stepSwiperScrollbar?: HTMLDivElement;\n poisSwiperScrollbar?: HTMLDivElement;\n informationDesksContentsSwiperScrollbar?: HTMLDivElement;\n touristicContentsSwiperScrollbar?: HTMLDivElement;\n touristicEventsSwiperScrollbar?: HTMLDivElement;\n\n presentationObserver: IntersectionObserver;\n stepsObserver: IntersectionObserver;\n descriptionObserver: IntersectionObserver;\n recommendationsObserver: IntersectionObserver;\n parkingObserver: IntersectionObserver;\n sensitiveAreaObserver: IntersectionObserver;\n informationPlacesObserver: IntersectionObserver;\n accessibilityObserve: IntersectionObserver;\n poiObserver: IntersectionObserver;\n accessibilityObserver: IntersectionObserver;\n touristicContentObserver: IntersectionObserver;\n touristicEventObserver: IntersectionObserver;\n\n hasStep?: boolean;\n\n defaultOptions: Options;\n @Event() descriptionIsInViewport: EventEmitter<boolean>;\n @Event() parkingIsInViewport: EventEmitter<boolean>;\n @Event() sensitiveAreaIsInViewport: EventEmitter<boolean>;\n @Event() informationPlacesIsInViewport: EventEmitter<boolean>;\n @Event() poiIsInViewport: EventEmitter<boolean>;\n @Event() stepsIsInViewport: EventEmitter<boolean>;\n @Event() touristicContentsIsInViewport: EventEmitter<boolean>;\n @Event() touristicEventsIsInViewport: EventEmitter<boolean>;\n @Event() parentTrekPress: EventEmitter<number>;\n @State() currentTrek: Trek;\n @State() difficulty: Difficulty;\n @State() route: Route;\n @State() practice: Practice;\n @State() themes: Themes;\n @State() labels: Labels;\n @State() sources: Sources;\n @State() accessibilities: Accessibilities;\n @State() accessibilityLevel: AccessibilityLevel;\n @State() displayFullscreen = false;\n @State() cities: string[];\n @State() options: Options;\n @State() offline = false;\n\n @Prop() trek: Trek;\n @Prop() emergencyNumber: number;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() weather = false;\n @Prop() isLargeView = false;\n\n @Prop() defaultBackgroundLayerUrl;\n @Prop() defaultBackgroundLayerAttribution;\n\n @Prop() enableOffline = false;\n @Prop() globalTilesMinZoomOffline = 0;\n @Prop() globalTilesMaxZoomOffline = 11;\n @Prop() trekTilesMinZoomOffline = 12;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Event() trekDownloadConfirm: EventEmitter<number>;\n @Event() trekDownloadedSuccessConfirm: EventEmitter<number>;\n\n @Event() trekDeleteConfirm: EventEmitter<number>;\n @Event() trekDeleteSuccessConfirm: EventEmitter<number>;\n\n indicatorSelectedTrekOption = { translateX: null, width: null, backgroundSize: null, ref: null };\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.swiperStep = new Swiper(this.swiperStepRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n initialSlide: this.getCurrentStepIndex(),\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.stepSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperPois = new Swiper(this.swiperPoisRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.poisSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperInformationDesks = new Swiper(this.swiperInformationDesksRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.informationDesksContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicContents = new Swiper(this.swiperTouristicContentsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicEvents = new Swiper(this.swiperTouristicEventsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicEventsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n if (this.presentationRef) {\n this.presentationObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, presentation: { ...this.defaultOptions.presentation, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.presentationObserver.observe(this.presentationRef);\n }\n if (this.stepsRef) {\n this.stepsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.stepsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, steps: { ...this.defaultOptions.steps, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.stepsObserver.observe(this.stepsRef);\n }\n if (this.descriptionRef) {\n this.descriptionObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.descriptionIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, description: { ...this.defaultOptions.description, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.descriptionObserver.observe(this.descriptionRef);\n }\n if (this.recommendationRef) {\n this.recommendationsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, recommendations: { ...this.defaultOptions.recommendations, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.recommendationsObserver.observe(this.recommendationRef);\n }\n if (this.parkingRef) {\n this.parkingObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.parkingIsInViewport.emit(isIntersecting);\n },\n { threshold },\n );\n this.parkingObserver.observe(this.parkingRef);\n }\n\n if (this.sensitiveAreaRef) {\n this.sensitiveAreaObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.sensitiveAreaIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, sensitiveArea: { ...this.defaultOptions.sensitiveArea, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.sensitiveAreaObserver.observe(this.sensitiveAreaRef);\n }\n\n if (this.informationPlacesRef) {\n this.informationPlacesObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.informationPlacesIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, informationPlaces: { ...this.defaultOptions.informationPlaces, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.informationPlacesObserver.observe(this.informationPlacesRef);\n }\n\n if (this.accessibilityRef) {\n this.accessibilityObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, accessibility: { ...this.defaultOptions.accessibility, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.accessibilityObserver.observe(this.accessibilityRef);\n }\n\n if (this.poiRef) {\n this.poiObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.poiIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, pois: { ...this.defaultOptions.pois, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.poiObserver.observe(this.poiRef);\n }\n\n if (this.touristicContentsRef) {\n this.touristicContentObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicContentsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicContents: { ...this.defaultOptions.touristicContents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicContentObserver.observe(this.touristicContentsRef);\n }\n if (this.touristicEventsRef) {\n this.touristicEventObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicEventsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicEvents: { ...this.defaultOptions.touristicEvents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicEventObserver.observe(this.touristicContentsRef);\n }\n }\n\n async connectedCallback() {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n onChange('currentTrek', async () => {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n });\n }\n\n disconnectedCallback() {\n this.presentationObserver && this.presentationObserver.disconnect();\n this.stepsObserver && this.stepsObserver.disconnect();\n this.descriptionObserver && this.descriptionObserver.disconnect();\n this.recommendationsObserver && this.recommendationsObserver.disconnect();\n this.parkingObserver && this.parkingObserver.disconnect();\n this.sensitiveAreaObserver && this.sensitiveAreaObserver.disconnect();\n this.informationPlacesObserver && this.informationPlacesObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.poiObserver && this.poiObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.touristicContentObserver && this.touristicContentObserver.disconnect();\n this.touristicEventObserver && this.touristicEventObserver.disconnect();\n }\n\n handleOptions() {\n return {\n ...options,\n presentation: { ...presentation },\n steps: { ...steps, visible: Boolean(state.parentTrek) },\n description: { ...description, visible: Boolean(this.currentTrek.description) },\n pois: { ...pois, visible: Boolean(state.currentPois && state.currentPois.length > 0) },\n recommendations: { ...recommendations, visible: Boolean(this.currentTrek.advice || (this.labels && this.labels.length > 0)) },\n sensitiveArea: { ...sensitiveArea, visible: Boolean(state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) },\n informationPlaces: {\n ...informationPlaces,\n visible: Boolean(\n state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0,\n ),\n },\n accessibility: {\n ...accessibility,\n visible: Boolean(\n this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber,\n ),\n },\n touristicContents: { ...touristicContents, visible: Boolean(state.trekTouristicContents && state.trekTouristicContents.length > 0) },\n touristicEvents: { ...touristicEvents, visible: Boolean(state.trekTouristicEvents && state.trekTouristicEvents.length > 0) },\n };\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n handleIndicatorSelectedTrekOption() {\n let currentOption: Option;\n let previousVisibleOptions = 0;\n let previousWidthOptions = 0;\n let elementWidth = 0;\n\n const options: Option[] = Object.values(this.options);\n let index = 0;\n while (!currentOption && index < options.length) {\n if (options[index].indicator) {\n currentOption = options[index];\n } else {\n if (options[index].visible) {\n previousVisibleOptions += 1;\n previousWidthOptions += this[options[index].ref].clientWidth;\n }\n }\n index++;\n }\n if (currentOption && this[currentOption.ref]) {\n elementWidth = this[currentOption.ref].clientWidth;\n this.indicatorSelectedTrekOption = {\n translateX: `${previousWidthOptions + 16 * previousVisibleOptions - elementWidth / 2}px`,\n width: `${elementWidth * 2}px`,\n backgroundSize: `${elementWidth}px 100%`,\n ref: currentOption.ref,\n };\n }\n }\n\n handleScrollTo(element: HTMLDivElement) {\n this.trekDetailContainerRef.scrollTo({ top: element.offsetTop - 64 });\n }\n\n getCurrentStepIndex(): number {\n return state.currentTrekSteps ? state.currentTrekSteps.findIndex(step => step.id === this.currentTrek.id) : 0;\n }\n\n async downloadGlobalTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const treksDepartureCoordinates = [];\n\n if (state.treks) {\n for (const trek of state.treks) {\n treksDepartureCoordinates.push(trek.departure_geom);\n }\n }\n\n const bounds = L.latLngBounds(treksDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.globalTilesMinZoomOffline, this.globalTilesMaxZoomOffline);\n }\n\n async downloadTrekTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const bounds = L.latLngBounds(this.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.trekTilesMinZoomOffline, this.trekTilesMaxZoomOffline);\n }\n\n async downloadTrek() {\n // download treks list data\n const controller = new AbortController();\n const signal = controller.signal;\n const init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: signal };\n const offlineTreks = (await getAllDataInStore('treks')).filter(trek => trek.offline === true);\n let treks;\n if (!state.treks) {\n const treksList = await getTreksList(\n state.api,\n state.language,\n state.inBboxFromProviders,\n state.citiesFromProviders,\n state.districts,\n state.structuresFromProviders,\n state.themesFromProviders,\n state.portalsFromProviders,\n state.routesFromProviders,\n state.practicesFromProviders,\n init,\n );\n state.treks = (await treksList.json()).results;\n }\n treks = state.treks;\n treks = treks.filter(trek => offlineTreks.findIndex(offlineTrek => offlineTrek.id === trek.id) === -1);\n\n if (!state.districts) {\n const districtsList = await getDistricts(state.api, state.language, init);\n state.districts = (await districtsList.json()).results;\n }\n\n await writeOrUpdateDataInStore('treks', treks);\n await writeOrUpdateDataInStore('districts', state.districts);\n\n // download global tiles\n // await this.downloadGlobalTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download trek tiles\n // await this.downloadTrekTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download global medias\n await writeOrUpdateFilesInStore(state.difficulties, imagesRegExp);\n await writeOrUpdateFilesInStore(state.routes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.practices, imagesRegExp);\n await writeOrUpdateFilesInStore(state.themes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.labels, imagesRegExp);\n await writeOrUpdateFilesInStore(state.districts, imagesRegExp);\n await writeOrUpdateFilesInStore(state.sources, imagesRegExp);\n await writeOrUpdateFilesInStore(state.accessibilities, imagesRegExp);\n await writeOrUpdateFilesInStore(state.poiTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicContentCategories, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicEventTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.networks, imagesRegExp);\n\n // // download trek images\n await writeOrUpdateFilesInStore(this.currentTrek, imagesRegExp, true);\n\n // // download trek data\n await writeOrUpdateDataInStore('difficulties', state.difficulties);\n await writeOrUpdateDataInStore('routes', state.routes);\n await writeOrUpdateDataInStore(\n 'practices',\n state.practices.map(practice => ({ ...practice, selected: false })),\n );\n await writeOrUpdateDataInStore('themes', state.themes);\n await writeOrUpdateDataInStore('cities', state.cities);\n await writeOrUpdateDataInStore('accessibilities', state.accessibilities);\n await writeOrUpdateDataInStore('ratings', state.ratings);\n await writeOrUpdateDataInStore('ratingsScale', state.ratingsScale);\n await writeOrUpdateDataInStore('sensitiveAreas', state.currentSensitiveAreas);\n await writeOrUpdateDataInStore('labels', state.labels);\n await writeOrUpdateDataInStore('sources', state.sources);\n await writeOrUpdateDataInStore('accessibilitiesLevel', state.accessibilitiesLevel);\n await writeOrUpdateDataInStore('touristicContentCategories', state.touristicContentCategories);\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n await writeOrUpdateDataInStore('touristicEventTypes', state.touristicEventTypes);\n await writeOrUpdateDataInStore('networks', state.networks);\n await writeOrUpdateDataInStore('pois', state.currentPois);\n await writeOrUpdateDataInStore('poiTypes', state.poiTypes);\n await writeOrUpdateDataInStore('informationDesks', state.currentInformationDesks);\n\n await writeOrUpdateDataInStore('treks', [{ ...this.currentTrek, offline: true }]);\n\n await writeOrUpdateFilesInStore(state.currentPois, imagesRegExp, true);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp, true);\n\n // download items data\n await writeOrUpdateFilesInStore(state.trekTouristicContents, imagesRegExp, true);\n state.trekTouristicContents.forEach(trekTouristicContent => {\n trekTouristicContent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicContents', state.trekTouristicContents);\n\n await writeOrUpdateFilesInStore(state.trekTouristicEvents, imagesRegExp, true);\n state.trekTouristicEvents.forEach(trekTouristicEvent => {\n trekTouristicEvent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n\n // download itinerancy\n if (this.currentTrek.children && this.currentTrek.children.length > 0) {\n // fetch and store children treks\n const steps: number[] = [];\n steps.push(...this.currentTrek.children);\n const stepRequests = [];\n const stepsTouristicContentsRequests = [];\n const stepsTouristicEventsRequests = [];\n\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, init));\n stepsTouristicContentsRequests.push(getTouristicContentsNearTrek(state.api, state.language, stepId, init));\n stepsTouristicEventsRequests.push(getTouristicEventsNearTrek(state.api, state.language, stepId, init));\n });\n\n const trekSteps: Treks = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicContentsResponses = await Promise.all([...stepsTouristicContentsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicEventsResponses = await Promise.all([...stepsTouristicEventsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n for (let index = 0; index < trekSteps.length; index++) {\n trekSteps[index].offline = true;\n await writeOrUpdateDataInStore('treks', [trekSteps[index]]);\n await writeOrUpdateFilesInStore(trekSteps[index], imagesRegExp, true);\n }\n\n for (let index = 0; index < stepsTouristicContentsResponses.length; index++) {\n const stepsTouristicContentsResponse = stepsTouristicContentsResponses[index];\n for (let index = 0; index < stepsTouristicContentsResponse.results.length; index++) {\n stepsTouristicContentsResponse.results[index].offline = true;\n await writeOrUpdateDataInStore('touristicContents', [stepsTouristicContentsResponse.results[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicContentsResponse.results[index], imagesRegExp, true);\n }\n }\n\n for (let index = 0; index < stepsTouristicEventsResponses.length; index++) {\n const stepsTouristicEventsResponse = stepsTouristicEventsResponses[index];\n for (let index = 0; index < stepsTouristicEventsResponse.results.length; index++) {\n stepsTouristicEventsResponse[index].offline = true;\n await writeOrUpdateDataInStore('touristicEvents', [stepsTouristicEventsResponse[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicEventsResponse[index], imagesRegExp, true);\n }\n }\n }\n\n state.treks.find(trek => trek.id === this.currentTrek.id).offline = true;\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline = true;\n this.swiperImages.slideTo(0);\n this.offline = true;\n this.trekDownloadedSuccessConfirm.emit();\n }\n\n async deleteTrek() {\n const treksInStore: Treks = [];\n const trekInStore = await getDataInStore('treks', this.currentTrek.id);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n if (this.currentTrek.children.length > 0) {\n for (let index = 0; index < this.currentTrek.children.length; index++) {\n const trekInStore = await getDataInStore('treks', this.currentTrek.children[index]);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n }\n }\n await writeOrUpdateDataInStore('treks', treksInStore);\n\n if (state.treks) {\n delete state.treks.find(trek => trek.id === this.currentTrek.id).offline;\n\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n delete state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline;\n }\n\n if (state.parentTrek) {\n delete state.parentTrek.offline;\n }\n\n if (state.currentTrekSteps) {\n state.currentTrekSteps.forEach(currentTrekStep => {\n delete currentTrekStep.offline;\n });\n }\n\n this.offline = false;\n this.trekDeleteSuccessConfirm.emit();\n }\n\n displayTrekDownloadModal() {\n this.trekDownloadConfirm.emit();\n }\n\n displayTrekDeleteModal() {\n this.trekDeleteConfirm.emit();\n }\n\n @Listen('trekDownloadPress', { target: 'window' })\n onTrekDownloadPress() {\n this.downloadTrek();\n }\n\n @Listen('trekDeletePress', { target: 'window' })\n onTrekDeletePress() {\n this.deleteTrek();\n }\n\n deleteOfflineTrekProperties(trekInStore) {\n delete trekInStore.descent;\n delete trekInStore.geometry;\n delete trekInStore.gpx;\n delete trekInStore.kml;\n delete trekInStore.pdf;\n delete trekInStore.parking_location;\n delete trekInStore.arrival;\n delete trekInStore.ambiance;\n delete trekInStore.access;\n delete trekInStore.public_transport;\n delete trekInStore.advice;\n delete trekInStore.advised_parking;\n delete trekInStore.gear;\n delete trekInStore.source;\n delete trekInStore.points_reference;\n delete trekInStore.disabled_infrastructure;\n delete trekInStore.accessibility_level;\n delete trekInStore.accessibility_slope;\n delete trekInStore.accessibility_width;\n delete trekInStore.accessibility_signage;\n delete trekInStore.accessibility_covering;\n delete trekInStore.accessibility_exposure;\n delete trekInStore.accessibility_advice;\n delete trekInStore.ratings;\n delete trekInStore.ratings_description;\n delete trekInStore.children;\n delete trekInStore.networks;\n delete trekInStore.web_links;\n delete trekInStore.update_datetime;\n delete trekInStore.offline;\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '244px'\n : '204px',\n }}\n >\n {this.currentTrek && (\n <div part=\"trek-options\" class=\"trek-options\">\n <a\n part=\"trek-option\"\n class={`presentation trek-option${this.indicatorSelectedTrekOption.ref === 'presentationOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.presentationOptionRef = el)}\n onClick={() => this.handleScrollTo(this.presentationRef)}\n >\n {translate[state.language].options.presentation}\n </a>\n {this.options.steps.visible && (\n <a\n part=\"trek-option\"\n class={`steps trek-option${this.options.steps.indicator ? ' selected-trek-option' : ''}`}\n ref={el => (this.stepsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.stepsRef)}\n >\n {translate[state.language].options.steps}\n </a>\n )}\n {this.options.description.visible && (\n <a\n part=\"trek-option\"\n class={`description trek-option${this.indicatorSelectedTrekOption.ref === 'descriptionOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.descriptionOptionRef = el)}\n onClick={() => this.handleScrollTo(this.descriptionRef)}\n >\n {translate[state.language].options.description}\n </a>\n )}\n {this.options.pois.visible && (\n <a\n part=\"trek-option\"\n class={`pois trek-option${this.indicatorSelectedTrekOption.ref === 'poisOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.poisOptionRef = el)}\n onClick={() => this.handleScrollTo(this.poiRef)}\n >\n {translate[state.language].options.pois}\n </a>\n )}\n {this.options.recommendations.visible && (\n <a\n part=\"trek-option\"\n class={`recommendations trek-option${this.indicatorSelectedTrekOption.ref === 'recommendationsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.recommendationsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.recommendationRef)}\n >\n {translate[state.language].options.recommendations}\n </a>\n )}\n {this.options.sensitiveArea.visible && (\n <a\n part=\"trek-option\"\n class={`sensitive-areas trek-option${this.indicatorSelectedTrekOption.ref === 'sensitiveAreaOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.sensitiveAreaOptionRef = el)}\n onClick={() => this.handleScrollTo(this.sensitiveAreaRef)}\n >\n {translate[state.language].options.environmentalSensitiveAreas}\n </a>\n )}\n {this.options.informationPlaces.visible && (\n <a\n part=\"trek-option\"\n class={`information-places trek-option${this.indicatorSelectedTrekOption.ref === 'informationPlacesOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.informationPlacesOptionRef = el)}\n onClick={() => this.handleScrollTo(this.informationPlacesRef)}\n >\n {translate[state.language].options.informationPlaces}\n </a>\n )}\n {this.options.accessibility.visible && (\n <a\n part=\"trek-option\"\n class={`accessibility trek-option${this.indicatorSelectedTrekOption.ref === 'accessibilityOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.accessibilityOptionRef = el)}\n onClick={() => this.handleScrollTo(this.accessibilityRef)}\n >\n {translate[state.language].options.accessibility}\n </a>\n )}\n {this.options.touristicContents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-content trek-option${this.indicatorSelectedTrekOption.ref === 'touristicContentsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicContentsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicContentsRef)}\n >\n {translate[state.language].options.touristicContents}\n </a>\n )}\n {this.options.touristicEvents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-event trek-option${this.indicatorSelectedTrekOption.ref === 'touristicEventsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicEventsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicEventsRef)}\n >\n {translate[state.language].options.touristicEvents}\n </a>\n )}\n {this.presentationOptionRef && (\n <span\n part=\"trek-indicator-selected-trek-option\"\n class=\"trek-indicator-selected-trek-option\"\n style={{\n transform: `translateX(${this.indicatorSelectedTrekOption.translateX})`,\n width: this.indicatorSelectedTrekOption.width,\n backgroundSize: this.indicatorSelectedTrekOption.backgroundSize,\n }}\n ></span>\n )}\n </div>\n )}\n {this.currentTrek && (\n <div part=\"trek-detail-container\" class=\"trek-detail-container\" ref={el => (this.trekDetailContainerRef = el)}>\n <div part=\"trek-images\" class=\"trek-images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {this.currentTrek.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n this.currentTrek.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"trek-close-fullscreen-button\" class=\"trek-close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"trek-close-fullcreen-icon\" class=\"trek-close-fullcreen-icon material-symbols material-symbols-outlined\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"trek-image-legend\" class=\"trek-image-legend\">\n {legend}\n </div>\n <img\n part=\"trek-img\"\n class=\"trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n /* @ts-ignore */\n onerror={event => {\n event.target.onerror = null;\n event.target.className = 'trek-img default-trek-img';\n event.target.src = defaultImageSrc;\n }}\n />\n </div>\n );\n })\n ) : (\n <img\n part=\"trek-img\"\n class=\"trek-img default-trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }}>\n <div part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n </div>\n <div part=\"trek-name\" class=\"trek-name\">\n {this.currentTrek.name}\n </div>\n {this.themes.length > 0 && (\n <div part=\"themes-container\" class=\"themes-container\">\n {this.themes.map(theme => (\n <div part=\"theme\" class=\"theme\">\n {theme.label}\n </div>\n ))}\n </div>\n )}\n <div part=\"sub-container\" class=\"sub-container\">\n <div part=\"icons-labels-container\" class=\"icons-labels-container\">\n {this.difficulty && (\n <div part=\"icon-label\" class=\"icon-label difficulty\">\n {this.difficulty.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.difficulty.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.difficulty.label}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label duration\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n timelapse\n </span>\n <span part=\"label\" class=\"label\">\n {formatDuration(this.currentTrek?.duration)}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label route\">\n {this.route?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.route.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.route?.route}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label length\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n open_in_full\n </span>\n <span part=\"label\" class=\"label\">\n {formatLength(this.currentTrek.length_2d)}\n </span>\n </div>\n {this.currentTrek.ascent && (\n <div part=\"icon-label\" class=\"icon-label ascent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatAscent(this.currentTrek.ascent)}\n </span>\n </div>\n )}\n {this.currentTrek.descent && (\n <div part=\"icon-label\" class=\"icon-label descent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatDescent(this.currentTrek.descent)}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label practice\">\n {this.practice?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.practice.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.practice?.name}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label networks\">\n {this.currentTrek.networks.map(networkId => {\n const currentNetwork = state.networks.find(network => network.id === networkId);\n return (\n <div part=\"network\" class=\"network\">\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={currentNetwork.pictogram}\n />\n <span part=\"label\" class=\"label\">\n {currentNetwork.label}\n </span>\n </div>\n );\n })}\n </div>\n {this.currentTrek.ratings.map(trekRating => (\n <div part=\"row\" class=\"row\">\n {`${state.ratingsScale.find(ratingScale => ratingScale.id === state.ratings.find(rating => rating.id === trekRating).scale).name} : ${\n state.ratings.find(rating => rating.id === trekRating).name\n }`}\n </div>\n ))}\n {this.currentTrek.ratings_description && this.currentTrek.ratings_description !== '' && (\n <div part=\"row\" class=\"row\" innerHTML={this.currentTrek.ratings_description}></div>\n )}\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].downloads}\n </div>\n {this.enableOffline && !this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDownloadModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download_for_offline\n </span>\n <span part=\"label\" class=\"label\">\n RENDRE DISPONIBLE HORS LIGNE\n </span>\n </button>\n )}\n {this.enableOffline && this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDeleteModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n delete\n </span>\n <span part=\"label\" class=\"label\">\n SUPPRIMER DU HORS LIGNE\n </span>\n </button>\n )}\n <div part=\"links-container\" class=\"links-container\">\n <a href={`${this.currentTrek.gpx}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n GPX\n </span>\n </a>\n <a href={`${this.currentTrek.kml}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n KML\n </span>\n </a>\n <a href={`${this.currentTrek.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description_teaser && <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={this.currentTrek.description_teaser}></div>}\n {this.currentTrek.ambiance && <div part=\"ambiance\" class=\"ambiance\" innerHTML={this.currentTrek.ambiance}></div>}\n {state.parentTrekId && state.parentTrek && this.currentTrek.id !== state.parentTrekId && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"parent-trek-container\" class=\"parent-trek-container\">\n <button part=\"parent-trek-title\" class=\"parent-trek-title\" onClick={() => this.parentTrekPress.emit(state.parentTrekId)}>\n <div>&lt;</div>\n {state.parentTrek.name}\n </button>\n </div>\n </div>\n )}\n {state.currentTrekSteps && (\n <div part=\"step-container\" class=\"step-container\">\n <div part=\"step-title\" class=\"step-title\" ref={el => (this.stepsRef = el)}>{`${state.currentTrekSteps.length} ${translate[state.language].steps}`}</div>\n <div part=\"swiper-step\" class=\"swiper swiper-step\" ref={el => (this.swiperStepRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTrekSteps &&\n state.currentTrekSteps.map(trek => {\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={false}\n is-step={true}\n fontFamily={this.fontFamily}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-trek-card>\n </div>\n );\n })}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.stepSwiperScrollbar = el)}></div>\n </div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description && (\n <div part=\"description-container\" class=\"description-container\">\n <div part=\"description-title\" class=\"description-title\" ref={el => (this.descriptionRef = el)}>\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={this.currentTrek.description}></div>\n </div>\n )}\n {this.currentTrek.departure && (\n <div part=\"departure-container\" class=\"departure-container\">\n <div part=\"departure-title\" class=\"departure-title\">\n {translate[state.language].departure} :&nbsp;\n </div>\n <div part=\"departure\" innerHTML={this.currentTrek.departure}></div>\n </div>\n )}\n {this.currentTrek.arrival && (\n <div part=\"arrival-container\" class=\"arrival-container\">\n <div part=\"arrival-title\" class=\"arrival-title\">\n {translate[state.language].arrival} :&nbsp;\n </div>\n <div part=\"arrival\" innerHTML={this.currentTrek.arrival}></div>\n </div>\n )}\n {this.currentTrek.cities && this.currentTrek.cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].crossedCities} :&nbsp;\n </div>\n <div part=\"cities\" innerHTML={this.cities.join(', ')}></div>\n </div>\n )}\n {state.currentPois && state.currentPois.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"pois-container\" class=\"pois-container\">\n <div part=\"pois-title\" class=\"pois-title\" ref={el => (this.poiRef = el)}>\n {translate[state.language].pois(state.currentPois.length)}\n </div>\n <div part=\"swiper-pois\" class=\"swiper swiper-pois\" ref={el => (this.swiperPoisRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentPois.map(poi => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-poi\n exportparts=\"poi-type-img-container,poi-type,swiper-poi,swiper-wrapper,swiper-slide,poi-img,default-poi-img,swiper-pagination,swiper-button-prev,swiper-button-next,poi-sub-container,poi-name,poi-description,handle-poi-description\"\n poi={poi}\n ></grw-poi>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.poisSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.weather && this.currentTrek.departure_city && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weather-container\" class=\"weather-container\">\n <iframe height=\"150\" frameborder=\"0\" src={`https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}`}></iframe>\n </div>\n </div>\n )}\n {this.currentTrek.access && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"access-container\" class=\"access-container\">\n <div part=\"access-title\" class=\"access-title\">\n {translate[state.language].roadAccessAndParking}\n </div>\n <div part=\"access\" class=\"access\" innerHTML={this.currentTrek.access}></div>\n {this.currentTrek.advised_parking && (\n <div>\n <div part=\"advised-parking-title\" class=\"advised-parking-title\" ref={el => (this.parkingRef = el)}>\n {translate[state.language].recommendedParking}\n </div>\n <div part=\"advised-parking\" class=\"advised-parking\" innerHTML={this.currentTrek.advised_parking}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {this.currentTrek.public_transport && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"public-transport-container\" class=\"public-transport-container\">\n <div part=\"public-transport-title\" class=\"public-transport-title\">\n {translate[state.language].transport}\n </div>\n <div part=\"public-transport\" class=\"public-transport\" innerHTML={this.currentTrek.public_transport}></div>\n </div>\n </div>\n )}\n {(this.currentTrek.advice || this.currentTrek.gear || this.labels.length > 0) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"advice-container\" class=\"advice-container\">\n <div part=\"advice-title\" class=\"advice-title\" ref={el => (this.recommendationRef = el)}>\n {translate[state.language].recommendations}\n </div>\n {this.currentTrek.advice && (\n <div part=\"current-advice-container\" class=\"current-advice-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n warning\n </span>\n <div part=\"advice\" class=\"advice\" innerHTML={this.currentTrek.advice}></div>\n </div>\n )}\n {this.currentTrek.gear && (\n <div part=\"gear-container\" class=\"gear-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n backpack\n </span>\n <div part=\"gear\" class=\"gear\" innerHTML={this.currentTrek.gear}></div>\n </div>\n )}\n {this.labels.map(label => (\n <div part=\"label-container\" class=\"label-container\">\n <div part=\"label-sub-container\" class=\"label-sub-container\">\n {label.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={label.pictogram}\n />\n )}\n <div part=\"label-name\" class=\"label-name\" innerHTML={label.name}></div>\n </div>\n <div part=\"label-advice\" class=\"label-advice\" innerHTML={label.advice}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n {state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"sensitive-areas-container\" class=\"sensitive-areas-container\">\n <div part=\"ensitive-areas-title\" class=\"sensitive-areas-title\" ref={el => (this.sensitiveAreaRef = el)}>\n {translate[state.language].environmentalSensitiveAreas}\n </div>\n <div part=\"sensitive-areas-description\" class=\"sensitive-areas-description\">\n {translate[state.language].sensitiveAreasDescription}\n </div>\n {state.currentSensitiveAreas.map(sensitiveArea => (\n <grw-sensitive-area-detail\n exportparts=\"sensitive-area-title-container,sensitive-area-color-container,sensitive-area-title,sensitive-area-description,sensitive-area-practice-container,sensitive-area-practice-title,sensitive-area-practices,sensitive-area-practice,sensitive-area-period-container,sensitive-area-period-title,sensitive-area-periods,sensitive-area-period,sensitive-area-contact-container,sensitive-area-contact-title,sensitive-area-contact-value\"\n sensitiveArea={sensitiveArea}\n ></grw-sensitive-area-detail>\n ))}\n </div>\n </div>\n )}\n {state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"information-desks-container\" class=\"information-desks-container\">\n <div part=\"information-desks-title\" class=\"information-desks-title\" ref={el => (this.informationPlacesRef = el)}>\n {translate[state.language].informationPlaces}\n </div>\n <div part=\"swiper-information-desks\" class=\"swiper swiper-information-desks\" ref={el => (this.swiperInformationDesksRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentInformationDesks\n .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))\n .map(informationDesk => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-information-desk\n exportparts=\"information-desk-img-container,information-desk-img,information-desk-sub-container,information-desk-name,center-on-map-button,icon,label,information-desk-informations,phone-container,mail-container,link-container,information-desk-description-container,information-desk-description,handle-information-desk-description\"\n informationDesk={informationDesk}\n ></grw-information-desk>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.informationDesksContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {(this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"accessibilities-container\" class=\"accessibilities-container\">\n <div part=\"accessibilities-title\" class=\"accessibilities-title\" ref={el => (this.accessibilityRef = el)}>\n {translate[state.language].accessibility}\n </div>\n {this.currentTrek.disabled_infrastructure && <div part=\"disabled-infrastructure\" innerHTML={this.currentTrek.disabled_infrastructure}></div>}\n {this.accessibilities && this.accessibilities.length > 0 && (\n <div part=\"accessibilities-content-container\" class=\"accessibilities-content-container\">\n {this.accessibilities.map(accessibility => (\n <div part=\"accessibility-content-container\" class=\"accessibility-content-container\">\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={accessibility.pictogram}\n ></img>\n <div part=\"accessibility-name\" innerHTML={accessibility.name}></div>\n </div>\n ))}\n </div>\n )}\n {this.emergencyNumber && (\n <div part=\"accessibility-emergency-number-container\" class=\"accessibility-emergency-number-container\">\n <div part=\"accessibility-emergency-number-title\" class=\"accessibility-emergency-number-title\">\n {translate[state.language].emergencyNumber}\n </div>\n <div part=\"accessibility-emergency-number-content\" class=\"accessibility-emergency-number-content\">\n {\n <a href={`tel:${this.emergencyNumber.toString()}`}>\n <span\n part=\"icon\"\n class=\"material-symbols material-symbols-outlined icon\"\n /* @ts-ignore */\n translate={false}\n >\n call\n </span>\n <span part=\"emergency-number\" class=\"emergency-number\">\n {this.emergencyNumber.toString()}\n </span>\n </a>\n }\n </div>\n </div>\n )}\n {this.currentTrek.accessibility_level && (\n <div part=\"accessibility-level-container\" class=\"accessibility-level-container\">\n <div part=\"accessibility-level-title\" class=\"accessibility-level-title\">\n {translate[state.language].accessibilityLevel}\n </div>\n <div part=\"accessibility-level-name\" innerHTML={this.accessibilityLevel.name}></div>\n </div>\n )}\n {this.currentTrek.accessibility_slope && (\n <div part=\"accessibility-slope-container\" class=\"accessibility-slope-container\">\n <div part=\"accessibility-slope-title\" class=\"accessibility-slope-title\">\n {translate[state.language].accessibilitySlope}\n </div>\n <div part=\"accessibility-slope\" innerHTML={this.currentTrek.accessibility_slope}></div>\n </div>\n )}\n {this.currentTrek.accessibility_width && (\n <div part=\"accessibility-width-container\" class=\"accessibility-width-container\">\n <div part=\"accessibility-width-title\" class=\"accessibility-width-title\">\n {translate[state.language].accessibilityWidth}\n </div>\n <div part=\"accessibility-width\" innerHTML={this.currentTrek.accessibility_width}></div>\n </div>\n )}\n {this.currentTrek.accessibility_signage && (\n <div part=\"accessibility-signage-container\" class=\"accessibility-signage-container\">\n <div part=\"accessibility-signage-title\" class=\"accessibility-signage-title\">\n {translate[state.language].accessibilitySignage}\n </div>\n <div part=\"accessibility-signage\" innerHTML={this.currentTrek.accessibility_signage}></div>\n </div>\n )}\n {this.currentTrek.accessibility_covering && (\n <div part=\"accessibility-covering-container\" class=\"accessibility-covering-container\">\n <div part=\"accessibility-covering-title\" class=\"accessibility-covering-title\">\n {translate[state.language].accessibilityCovering}\n </div>\n <div part=\"accessibility-covering\" innerHTML={this.currentTrek.accessibility_covering}></div>\n </div>\n )}\n {this.currentTrek.accessibility_exposure && (\n <div part=\"accessibility-exposure-container\" class=\"accessibility-exposure-container\">\n <div part=\"accessibility-exposure-title\" class=\"accessibility-exposure-title\">\n {translate[state.language].accessibilityExposure}\n </div>\n <div part=\"accessibility-exposure\" innerHTML={this.currentTrek.accessibility_exposure}></div>\n </div>\n )}\n {this.currentTrek.accessibility_advice && (\n <div part=\"accessibility-advice-container\" class=\"accessibility-advice-container\">\n <div part=\"accessibility-advice-title\" class=\"accessibility-advice-title\">\n {translate[state.language].accessibilityAdvices}\n </div>\n <div part=\"accessibility-advice\" innerHTML={this.currentTrek.accessibility_advice}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {state.trekTouristicContents && state.trekTouristicContents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-content-container\" class=\"touristic-content-container\">\n <div part=\"touristic-content-title\" class=\"touristic-content-title\" ref={el => (this.touristicContentsRef = el)}>\n {translate[state.language].touristicContents(state.trekTouristicContents.length)}\n </div>\n <div part=\"swiper-touristic-content\" class=\"swiper swiper-touristic-content\" ref={el => (this.swiperTouristicContentsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicContents.map(touristicContent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicContent={touristicContent}\n isInsideHorizontalList={true}\n ></grw-touristic-content-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {state.trekTouristicEvents && state.trekTouristicEvents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-event-container\" class=\"touristic-event-container\">\n <div part=\"touristic-event-title\" class=\"touristic-event-title\" ref={el => (this.touristicEventsRef = el)}>\n {translate[state.language].touristicEvents(state.trekTouristicEvents.length)}\n </div>\n <div part=\"swiper-touristic-event\" class=\"swiper swiper-touristic-event\" ref={el => (this.swiperTouristicEventsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicEvents.map(touristicEvent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicEvent={touristicEvent}\n ></grw-touristic-event-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicEventsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.currentTrek.web_links && this.currentTrek.web_links.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weblinks-container\" class=\"weblinks-container\">\n <div part=\"weblinks-title\" class=\"weblinks-title\">\n {translate[state.language].learnMore}\n </div>\n {this.currentTrek.web_links.map(weblink => (\n <a part=\"weblink-container\" class=\"weblink-container\" href={weblink.url} target=\"_blank\" rel=\"noopener noreferrer\">\n {weblink.category && weblink.category.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={weblink.category.pictogram}\n />\n )}\n {weblink.name}\n </a>\n ))}\n </div>\n </div>\n )}\n {this.currentTrek.source && this.currentTrek.source.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"source-container\" class=\"source-container\">\n <div part=\"source-title\" class=\"source-title\">\n {translate[state.language].sources}\n </div>\n {this.sources.map(source => (\n <div part=\"source-sub-container\" class=\"source-sub-container\">\n {source.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={source.pictogram}\n />\n )}\n <div>\n <div part=\"source-name\" class=\"source-name\" innerHTML={source.name}></div>\n <a part=\"source-advice\" class=\"source-advice\" href={source.website} innerHTML={source.website}></a>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\nimport { getTrek } from 'services/treks.service';\nimport state from 'store/store';\nimport { Trek } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-trek-provider',\n shadow: true,\n})\nexport class GrwTrekProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() trekId: number;\n\n @Prop() portals: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() routes: string;\n @Prop() practices: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTrek();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTrek() {\n const trekInStore: Trek = await getDataInStore('treks', this.trekId);\n if (trekInStore && trekInStore.offline) {\n this.handleOfflineTrek(trekInStore);\n } else {\n this.handleOnlineTrek();\n }\n }\n\n async handleOfflineTrek(trek: Trek) {\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await getDataInStore('treks', state.parentTrekId);\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getDataInStore('treks', stepId));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => responses);\n }\n\n if (!state.difficulties) {\n const difficulties = await getAllDataInStore('difficulties');\n setFilesFromStore(difficulties, imagesRegExp);\n state.difficulties = difficulties;\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.ratings) {\n state.ratings = await getAllDataInStore('ratings');\n }\n if (!state.ratingsScale) {\n state.ratingsScale = await getAllDataInStore('ratingsScale');\n }\n if (!state.currentSensitiveAreas) {\n // filter trek items\n state.currentSensitiveAreas = await getAllDataInStore('sensitiveAreas');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.sources) {\n state.sources = await getAllDataInStore('sources');\n }\n if (!state.accessibilitiesLevel) {\n state.accessibilitiesLevel = await getAllDataInStore('accessibilitiesLevel');\n }\n if (!state.trekTouristicContents) {\n // filter trek items\n const touristicContents = await getAllDataInStore('touristicContents');\n setFilesFromStore(touristicContents, imagesRegExp);\n state.trekTouristicContents = touristicContents;\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n if (!state.trekTouristicEvents) {\n // filter trek items\n state.trekTouristicEvents = await getAllDataInStore('touristicEvents');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n if (!state.networks) {\n state.networks = await getAllDataInStore('networks');\n }\n if (!state.currentPois) {\n // filter trek items\n const pois = await getAllDataInStore('pois');\n setFilesFromStore(pois, imagesRegExp);\n state.currentPois = pois;\n }\n\n if (!state.poiTypes) {\n state.poiTypes = await getAllDataInStore('poiTypes');\n }\n if (!state.currentInformationDesks) {\n // filter trek items\n state.currentInformationDesks = await getAllDataInStore('informationDesks');\n }\n\n // handle images\n setFilesFromStore(trek, imagesRegExp);\n state.currentTrek = trek;\n }\n\n handleOnlineTrek() {\n const requests = [];\n requests.push(\n !state.difficulties\n ? fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.routes\n ? fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.practices\n ? fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.themes\n ? fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.accessibilities\n ? fetch(`${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.ratings\n ? fetch(`${state.api}trek_rating/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,scale`, this.init)\n : new Response('null'),\n );\n requests.push(!state.ratings ? fetch(`${state.api}trek_ratingscale/?language=${state.language}&fields=id,name`, this.init) : new Response('null'));\n\n try {\n Promise.all([\n ...requests,\n fetch(\n `${this.api}sensitivearea/?language=${state.language}&published=true&trek=${this.trekId}&period=ignore&fields=id,geometry,name,description,contact,info_url,period,practices`,\n this.init,\n )\n .then(response => {\n if (response.ok) {\n return response;\n } else {\n throw new Error('Sentive area error');\n }\n })\n .catch(() => {\n return new Response('null');\n }),\n fetch(`${state.api}label/?language=${state.language}&fields=id,name,advice,pictogram`, this.init),\n fetch(`${state.api}source/?language=${state.language}&fields=id,name,website,pictogram`, this.init),\n fetch(`${state.api}trek_accessibility_level/?language=${state.language}&fields=id,name`, this.init).catch(() => new Response('null')),\n fetch(`${state.api}poi/?language=${state.language}&trek=${this.trekId}&published=true&fields=id,name,description,attachments,type,geometry&page_size=999`, this.init),\n fetch(`${state.api}poi_type/?language=${state.language}&fields=id,pictogram`, this.init),\n fetch(\n `${state.api}informationdesk/?language=${state.language}&fields=id,name,description,type,phone,email,website,municipality,postal_code,street,photo_url,latitude,longitude&page_size=999`,\n this.init,\n ),\n getTouristicContentsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristiccontent_category/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTouristicEventsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristicevent_type/?language=${state.language}&published=true&fields=id,type,pictogram&page_size=999`, this.init),\n fetch(`${state.api}trek_network/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTrek(state.api, state.language, this.trekId, this.init),\n ])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(\n async ([\n difficulties,\n routes,\n practices,\n themes,\n cities,\n accessibilities,\n ratings,\n ratingsScale,\n sensitiveAreas,\n labels,\n sources,\n accessibilitiesLevel,\n pois,\n poiTypes,\n informationDesks,\n touristicContent,\n touristicContentCategory,\n touristicEvent,\n touristicEventType,\n networks,\n trek,\n ]) => {\n state.networkError = false;\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await fetch(`${state.api}trek/${state.parentTrekId}/?language=${state.language}&published=true&fields=name,children`).then(response =>\n response.json(),\n );\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, this.init));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n }\n\n if (difficulties) {\n state.difficulties = difficulties.results;\n }\n if (routes) {\n state.routes = routes.results;\n }\n if (practices) {\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n }\n if (themes) {\n state.themes = themes.results;\n }\n if (cities) {\n state.cities = cities.results;\n }\n if (accessibilities) {\n state.accessibilities = accessibilities.results;\n }\n if (ratings) {\n state.ratings = ratings.results;\n }\n if (ratingsScale) {\n state.ratingsScale = ratingsScale.results;\n }\n if (sensitiveAreas) {\n state.currentSensitiveAreas = sensitiveAreas.results;\n }\n if (labels) {\n state.labels = labels.results;\n }\n if (sources) {\n state.sources = sources.results;\n }\n if (accessibilitiesLevel) {\n state.accessibilitiesLevel = accessibilitiesLevel.results;\n }\n if (touristicContent) {\n state.trekTouristicContents = touristicContent.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n if (touristicEvent) {\n state.trekTouristicEvents = touristicEvent.results;\n }\n if (touristicEventType) {\n state.touristicEventTypes = touristicEventType.results;\n }\n if (networks) {\n state.networks = networks.results;\n }\n if (pois) {\n state.currentPois = pois.results;\n }\n if (poiTypes) {\n state.poiTypes = poiTypes.results;\n }\n if (informationDesks) {\n state.currentInformationDesks = informationDesks.results;\n }\n if (trek) {\n state.currentTrek = trek;\n }\n },\n );\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-trek-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-treks-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.treks-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Treks } from 'types/types';\n\n@Component({\n tag: 'grw-treks-list',\n styleUrl: 'grw-treks-list.scss',\n shadow: true,\n})\nexport class GrwTreksList {\n @Element() element: HTMLElement;\n @State() treksToDisplay: Treks = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() displayOnlyOfflineTreks = false;\n @Prop() isLargeView = false;\n\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n onChange('currentTreks', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n });\n onChange('treksWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.treksWithinBounds) {\n this.treksToDisplay = [...state.treksWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.treksToDisplay.length < state.treksWithinBounds.length) {\n this.treksToDisplay = state.treksWithinBounds.slice(\n 0,\n this.treksToDisplay.length + this.step >= state.treksWithinBounds.length ? state.treksWithinBounds.length : this.treksToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.treksWithinBounds.length} ${\n state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek\n }`}</div>\n )}\n <div part=\"treks-list-container\" class=\"treks-list-container\">\n {this.treksToDisplay.map(trek => (\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-trek-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore } from 'services/grw-db.service';\nimport { getDistricts, getTreksList, trekIsAvailableOffline } from 'services/treks.service';\nimport state from 'store/store';\nimport { Treks } from 'types/types';\nimport { durations, elevations, lengths } from 'utils/utils';\n\n@Component({\n tag: 'grw-treks-provider',\n shadow: true,\n})\nexport class GrwTreksProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n @Prop() routes: string;\n @Prop() practices: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTreks();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTreks() {\n this.handleOnlineTreks();\n }\n\n async handleOfflineTreks(treks: Treks) {\n if (!state.difficulties) {\n state.difficulties = await getAllDataInStore('difficulties');\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.districts) {\n state.districts = await getAllDataInStore('districts');\n }\n if (!state.durations) {\n state.durations = durations;\n }\n if (!state.lengths) {\n state.lengths = lengths;\n }\n if (!state.elevations) {\n state.elevations = elevations;\n }\n this.sortTreks(treks);\n state.treks = treks;\n state.currentTreks = treks;\n }\n\n sortTreks(treks) {\n treks.sort((a, b) => {\n return a.name.localeCompare(b.name, undefined, {\n numeric: true,\n sensitivity: 'base',\n });\n });\n }\n\n handleOnlineTreks() {\n Promise.all([\n fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init),\n fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init),\n fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init),\n fetch(\n `${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram&published=true&page_size=999`,\n this.init,\n ),\n fetch(\n `${state.api}label/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,advice,pictogram,filter&published=true&page_size=999`,\n this.init,\n ),\n getDistricts(state.api, state.language, this.init),\n getTreksList(this.api, state.language, this.inBbox, this.cities, this.districts, this.structures, this.themes, this.portals, this.routes, this.practices, this.init),\n ])\n .then(responses => {\n responses.forEach(response => {\n if (response.status !== 200) {\n throw new Error('network error');\n }\n });\n return Promise.all(responses.map(response => response.json()));\n })\n .then(async ([difficulties, routes, practices, themes, cities, accessibility, labels, districts, treks]) => {\n state.networkError = false;\n state.difficulties = difficulties.results;\n state.routes = routes.results;\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n state.themes = themes.results;\n state.cities = cities.results;\n state.accessibilities = accessibility.results;\n state.labels = labels.results;\n state.districts = districts.results;\n state.durations = durations;\n state.lengths = lengths;\n state.elevations = elevations;\n const treksWithOfflineValue = [];\n for (let index = 0; index < treks.results.length; index++) {\n const offline = await trekIsAvailableOffline(treks.results[index].id);\n treksWithOfflineValue.push({ ...treks.results[index], offline });\n }\n state.treks = treksWithOfflineValue;\n state.currentTreks = treksWithOfflineValue;\n })\n .catch(async () => {\n const treksInStore: Treks = await getAllDataInStore('treks');\n if (treksInStore && treksInStore.length > 0) {\n this.handleOfflineTreks(treksInStore);\n } else {\n state.networkError = true;\n }\n });\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["grwCommonButtonCss","GrwCommonButton","prototype","render","_this_1","this","h","Host","style","fontFamily","part","class","onClick","action","translate","icon","name","grwExtendedFabCss","GrwExtendedFab","display","grwFiltersCss","GrwFilters","handleEraseTreksFilters","treksFilters","forEach","filter","state","property","currentFilter","selected","selectedActivitiesFilters","selectedThemesFilters","selectedLocationFilters","currentTreks","handleTreksFiltersAndSearch","resetFilter","emit","handleOkTreksFilters","handleFilters","handleSelectedSegment","selectedSegment","handleSegment","segment","mode","some","length","touristicContentsFilters","touristicEventsFilters","handleEraseTouristicContentsFilters","currentTouristicContents","handleTouristicContentsFiltersAndSearch","handleOkTouristicContentsFilters","handleEraseTouristicEventsFilters","currentTouristicEvents","handleTouristicEventsFiltersAndSearch","handleOkTouristicEventsFilters","treksWithinBounds","concat","language","treks","trek","erase","ok","home","themes","location","key","exportparts","filterName","practice","filterType","filterNameProperty","filterPlaceholder","placeholderPractices","difficulty","duration","elevation","routes","accessibility","activities","placeholderThemes","districts","crossedCities","placeholderCrossedCities","touristicContentsWithinBounds","touristicContents","touristicContent","services","category","touristicEventsWithinBounds","touristicEvents","touristicEvent","type","placeholderType","grwLoaderCss","GrwLoader","colorPrimaryContainer","colorOnPrimaryContainer","t","define","amd","L","extend","DomUtil","setTransform","o","e","i","n","a","s","Point","_round","apply","arguments","rotateFrom","TRANSFORM","x","y","setPosition","_leaflet_pos","Browser","any3d","left","top","DEG_TO_RAD","Math","PI","RAD_TO_DEG","Draggable","include","rotate","sin","cos","r","DivOverlay","getEvents","_updatePosition","_map","_rotate","_zoomAnimated","_getAnchor","getPosition","_container","subtract","rotatedPointToMapPanePoint","add","Popup","_animateZoom","_adjustPan","options","autoPan","_panAnim","_inProgress","_autopanning","parseInt","getStyle","offsetHeight","_containerWidth","_containerLeft","_containerBottom","_add","_getMapPanePos","point","autoPanPadding","autoPanPaddingTopLeft","autoPanPaddingBottomRight","_","getSize","d","p","keepInView","fire","panBy","Tooltip","_latLngToNewLayerPoint","_latlng","zoom","center","_setPosition","latLngToLayerPoint","Icon","_setIconStyles","shadowAnchor","iconAnchor","divideBy","className","marginLeft","marginTop","width","height","Marker","mergeOptions","rotation","rotateWithView","scale","_onDrag","_marker","_shadow","_icon","mapPanePointToRotatedPoint","layerPointToLatLng","latlng","oldLatLng","_oldLatLng","setLatLng","_onDragEnd","update","_initInteraction","dragging","enabled","Object","getPrototypeOf","disable","assign","bind","enable","_setPos","_bearing","_zIndex","zIndexOffset","_resetZIndex","setRotation","GridLayer","updateWhenIdle","_onRotate","Util","throttle","_onMoveEnd","updateInterval","_getTiledPixelBounds","_getNewPixelBounds","_tileZoom","Renderer","_update","onAdd","version","classList","_updateTransform","getZoomScale","_zoom","_topLeft","_bounds","_getPaddedPixelBounds","padding","min","_center","getCenter","getZoom","Map","bearing","initialize","setBearing","containerPointToLayerPoint","_getRotatePanePos","layerPointToContainerPoint","_subtract","mapBoundsToContainerBounds","getPixelOrigin","project","getNorthWest","getNorthEast","getSouthWest","getSouthEast","bounds","max","getBounds","LatLngBounds","containerPointToLatLng","wrapNum","_getPixelCenter","_rotatePane","_pivot","_rotatePanePos","getBearing","_initPanes","_panes","_paneRenderers","_mapPane","createPane","_norotatePane","markerZoomAnimation","addClass","markerPane","shadowPane","panInside","abs","toFixed","paddingTopLeft","paddingBottomRight","getBoundingClientRect","latLngToContainerPoint","contains","_enforcingBounds","t_1","e_1","panTo","getBoundsZoom","latLngBounds","getMinZoom","getMaxZoom","zoomSnap","l","getScaleZoom","round","ceil","floor","_getCenterOffset","_getNewPixelOrigin","_divideBy","_animatingZoom","_animateToZoom","Bounds","multiplyBy","_handleGeolocationResponse","_leaflet_id","coords","latitude","longitude","heading","LatLng","toBounds","accuracy","_locateOptions","setView","maxZoom","timestamp","CompassBearing","Handler","window","__deviceOrientationEvent","_throttled","_onDeviceOrientation","addHooks","DomEvent","on","removeHooks","off","webkitCompassHeading","alpha","absolute","orientation","addInitHook","trackContainerMutation","ContainerMutation","_observer","MutationObserver","invalidateSize","observe","getContainer","childList","attributes","characterData","subtree","attributeFilter","disconnect","bounceAtZoomLimits","TouchGestures","touchRotate","touchZoom","_onTouchStart","touches","_zooming","_rotating","mouseEventToContainerPoint","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","distanceTo","_startZoom","_startTheta","atan","_startBearing","_moved","_stop","document","_onTouchMove","_onTouchEnd","preventDefault","_limitZoom","unproject","_moveStart","cancelAnimFrame","_animRequest","_move","pinch","requestAnimFrame","zoomAnimation","_resetView","TouchRotate","touchGestures","shiftKeyRotate","ShiftKeyRotate","_handleShiftScroll","shiftKey","scrollWheelZoom","sign","deltaY","touch","TouchZoom","removeClass","Control","Rotate","position","closeOnZeroBearing","create","_arrow","backgroundImage","cursor","backgroundRepeat","backgroundPosition","_link","appendChild","href","title","stopPropagation","_handleMouseDown","stop","_cycleState","_refocusOnMap","_restyle","_follow","_canFollow","onRemove","dragstartX","pageX","dragstartY","pageY","_handleMouseDrag","_handleMouseUp","clientX","compassBearing","transform","backgroundColor","control","rotateControl","addControl","factory","module","exports","require$$0","Locate","LDomUtilApplyClassesMethod","method","element","classNames","split","call","addClasses","el","names","removeClasses","LocationMarker","setOptions","createIcon","opt","color","undefined","weight","fillColor","fillOpacity","opacity","_getIconSVG","_locationIcon","divIcon","html","svg","iconSize","w","setIcon","radius","s2","setStyle","CompassMarker","_heading","setHeading","depth","path","svgstyle","LocateControl","layer","keepCurrentZoomLevel","initialZoomLevel","getLocationBounds","locationEvent","flyTo","clickBehavior","inView","outOfView","inViewNotFollowing","returnToPrevBounds","cacheLocation","drawCircle","drawMarker","showCompass","markerClass","compassClass","circleStyle","markerStyle","compassStyle","followCircleStyle","followMarkerStyle","followCompassStyle","iconLoading","iconElementTag","textElementTag","circlePadding","metric","createButtonCallback","container","link","strings","setAttribute","text","textContent","parentNode","onLocationError","err","alert","message","onLocationOutsideMapBounds","outsideMapBoundsMsg","showPopup","metersUnit","feetUnit","popup","locateOptions","Infinity","watch","map","_layer","LayerGroup","addTo","_event","_compassHeading","_prevBounds","linkAndIcon","ev","_onClick","_resetVariables","_unload","_justClicked","wasFollowing","_isFollowing","_userPanned","_userZoomed","_active","behaviors","behavior","f","flyToBounds","fitBounds","start","_updateContainerStyle","_activate","_drawMarker","_deactivate","_cleanClasses","_removeMarker","stopFollowing","locate","_onLocationFound","_onLocationError","_onZoom","_onZoomEnd","oriAbs_1","_this_2","deviceorientation_1","DeviceOrientationEvent","requestPermission","then","permissionState","stopLocate","_isOutsideMapBounds","_ignoreEvent","_drawCompass","cStyle","_compass","removeFrom","_circle","circle","setRadius","distance","unit","mStyle","getPopupText","template","bindPopup","_popup","clearLayers","_setCompassHeading","angle","isNaN","parseFloat","isFinite","_onCompassNeedsCalibration","code","lat","lng","pad","getLatLng","maxBounds","_setClasses","locales","locale","registerLocale","setLocale","i18n","string","data","toString","padStart","m","target","download","body","click","removeChild","Promise","resolve","createElement","addEventListener","once","src","head","classed","beginPath","moveTo","Path2D","attr","strokeStyle","fillStyle","lineWidth","globalCompositeOperation","globalAlpha","stroke","fill","closePath","every","c","u","setProperty","v","g","insertAdjacentElement","querySelector","b","k","hasClass","random","substr","M","C","freeze","__proto__","formatTime","saveFile","lazyLoader","drawCanvas","clamp","toggleClass","replaceClass","toggleStyle","toggleEvent","append","insert","setAttributes","select","randomId","each","A","lightblue","area","magenta","yellow","purple","steelblue","red","lime","line","S","xAttr","yAttr","scaleX","scaleY","interpolation","d3","curve","xDiagCoord","y0","y1","z","strokeColor","strokeOpacity","D","tickSize","tickPadding","axis","ticks","tickFormat","label","labelX","labelY","onAxisMount","replace","toUpperCase","join","F","E","theme","xCoord","yCoord","labels","item","node","keys","sort","order","size","value","selectAll","T","margins","toLowerCase","ownerSVGElement","dispatch","detail","legend","bottom","I","getBBox","webkit","O","symbolTriangle","exit","remove","enter","merge","symbol","N","datum","pos","y2","x2","right","P","forceBounds","extent","B","G","range","scaleLinear","domain","H","grid","brush","tooltip","ruler","getContext","brushX","mask","canvas","context","panes","utils","_resize","test","navigator","platform","userAgent","_width","_height","pane","get","X","Colors","Area","Path","Axis","Grid","PositionMarker","LegendItem","Ruler","CheckPoint","Domain","Range","Scale","Bisect","bisector","invert","Chart","U","Class","includes","Evented","Mixin","Events","_data","_props","scales","paths","areas","grids","axes","legendItems","tooltipItems","_scales","_domains","_ranges","_paths","_brushEnabled","_zoomEnabled","zooming","_chart","_grid","_area","_point","_axis","_legend","_tooltip","_ruler","_initScale","_mask","_context","_brush","_drag","drag","_initInteractions","_maskGaps","push","index","_updateScale","_updateArea","_updateAxis","_updateLegend","_updateClipper","clear","_resetDrag","_hideDiagramIndicator","clearRect","_drawPath","preferCanvas","_hasActiveLayers","_initBrush","sourceEvent","pointers","_findIndexForXCoord","button","selection","dragstart","dragend","_initClipper","scaleExtent","translateExtent","buttons","_x","rescaleX","time","_initRuler","_initLegend","format","_y","imperial","_findCoordsForY","_registerAxisScale","xAxisMin","xAxisMax","yAxisMin","yAxisMax","altitude","_registerAreaPath","_registerAxisGrid","forceAxisBounds","xTicks","yTicks","_registerCheckPoint","_findIndexForLatLng","dist","_registerTooltip","substring","indexOf","nodes","Array","slice","reverse","reduce","_resetZoom","zoomIdentity","_showDiagramIndicator","j","Symbol","iterator","constructor","R","J","marker","markerIcon","interactive","_labels","getPane","maxElevation","getElement","Y","summary","reset","innerHTML","track_info","_registerSummary","V","autofitBounds","autohide","mobile","autohideMarker","almostover","collapsed","detached","distanceMarkers","lazy","direction","decimalsX","decimalsY","downloadLink","elevationDiv","followMarker","lazyLoadJS","polyline","lineCap","polylineSegments","reverseCoords","skipNullZCoords","slope","slopeDeltaMax","slopeRange","speed","speedDeltaMax","speedRange","timeFactor","timeFormat","timestamps","waypoints","wptIcons","wptLabels","xLabel","yLabel","zFollow","Mobile","W","Elevation","__mileFactor","__footFactor","__D3","__TOGEOJSON","__LGEOMUTIL","__LALMOSTOVER","__LDISTANCEM","addData","lazyLoad","_addData","_addLayer","_fireEvt","_initElevationDiv","isConnected","_clearChart","_layers","_clearLayers","_markers","_clearMarkers","_updateChart","_events","elechart_updated","fn","ctx","eachLayer","disableBrush","enableBrush","disableZoom","enableZoom","isValid","getZFollow","hide","featureGroup","_markedSegments","_chartEnabled","handlers","_setMapView","colors","_fixCanvasPaths","_fixTooltipSize","toGeoJSON","GeometryUtil","AlmostOver","DistanceMarkers","load","_parseFromString","_loadLayer","_loadFile","_initButton","_initChart","_initSummary","_initMarker","_initLayer","_hideMarker","_resizeChart","_rotateMarker","_keydownHandler","_updateSummary","redraw","setZFollow","show","geometry","_addGeoJSONData","coordinates","console","warn","features","_latlngs","feature","properties","meta","ele","hr","cad","atemp","coordinateProperties","props","id","_addPoint","alt","latLng","addLayer","Polyline","_addMarker","_initAlmostOverHandler","almostOver","addHandler","_mousemoveLayerHandler","_mouseoutHandler","_initDistanceMarkers","eleDiv","_initMapIntegrations","_collapse","_expand","Canvas","_fillStroke","hasLayer","outline","_updateMarker","_findItemForLatLng","_findItemForX","_xTicks","_yTicks","offsetWidth","clientWidth","_maxWidth","maxWidth","_mouseenterHandler","_dragendHandler","_mousemoveHandler","_rulerFilterHandler","_toggleChartHandler","_pane","zIndex","pointerEvents","_renderer","disableClickPropagation","disableScrollPropagation","_button","_toggle","_summary","fetch","_downloadURL","catch","geoJson","pointToLayer","desc","sym","hasOwnProperty","decodeURI","openPopup","bindTooltip","sticky","openTooltip","onEachFeature","_parseFromGeoJSONString","JSON","parse","_parseFromXMLString","trim","_prepareMultiLineStrings","_prepareAdditionalProperties","DOMParser","parseFromString","documentElement","tagName","getElementsByTagName","from","find","parentElement","pop","_registerDataAttribute","init","skipNull","splice","chart","_isFullscreen","_updateMapSegments","animate","elevation_max","setLatLngs","onclick","confirm","CustomEvent","dispatchEvent","__xTicks","__yTicks","distanceFactor","totlen","timeLabel","_timeAVGSpeed","timeAVGSpeed","speedFactor","Date","toLocaleTimeString","toLocaleDateString","toLocaleString","replaceAll","xTimeFormat","coordTimes","times","getTime","now","getTimezoneOffset","tottime","altitudeFactor","heightFactor","elevation_min","elevation_avg","altitudeDeltaMax","altitudeRange","visbile","maxele","minele","avgele","slopeLabel","ascent","descent","slope_max","slope_min","slope_avg","slop","formatNum","minslope","maxslope","avgslope","acceleration","speedLabel","speed_max","speed_min","speed_avg","minspeed","maxspeed","avgspeed","accelerationLabel","accelerationFactor","acceleration_max","acceleration_min","acceleration_avg","accelerationDeltaMax","accelerationRange","minacceleration","maxacceleration","avgacceleration","Utils","Components","enableDragging","disableDragging","loadChart","loadData","loadGPX","loadGeoJSON","loadXML","loadFile","_addGPXData","_registerFocusLabel","MarkerClusterGroup","FeatureGroup","maxClusterRadius","iconCreateFunction","clusterPane","spiderfyOnEveryZoom","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","singleMarkerMode","disableClusteringAtZoom","removeOutsideVisibleBounds","animateAddingMarkers","spiderfyShapePositions","spiderfyDistanceMultiplier","spiderLegPolylineOptions","chunkedLoading","chunkInterval","chunkDelay","chunkProgress","polygonOptions","_defaultIconCreateFunction","_featureGroup","addEventParent","_nonPointGroup","_inZoomAnimation","_needsClustering","_needsRemoving","_currentShownBounds","_queue","_childMarkerEventHandlers","_childMarkerDragStart","move","_childMarkerMoved","_childMarkerDragEnd","TRANSITION","_withAnimation","_noAnimation","_markerCluster","MarkerCluster","MarkerClusterNonAnimated","addLayers","_unspiderfy","_maxZoom","_topClusterLevel","_recalculateBounds","_refreshClustersIcons","__parent","_animationAddLayer","_animationAddLayerNonAnimated","removeLayer","removeLayers","_unspiderfyLayer","_removeLayer","clusterShow","_arraySplice","isArray","_extractNonGroupLayers","getChildCount","getAllChildMarkers","_recursivelyAddChildrenToMap","setTimeout","_gridClusters","_gridUnclustered","_noanimationUnspiderfy","_generateInitialClusters","getLayers","getLayer","stamp","_group","zoomToShowLayer","spiderfy","zoomToBounds","_maxLat","crs","projection","MAX_LATITUDE","newlatlng","_getExpandedVisibleBounds","_zoomEnd","_moveEnd","_spiderfierOnAdd","_bindEvents","_unbindEvents","_spiderfierOnRemove","_hideCoverage","getVisibleParent","_removeFromGridUnclustered","removeObject","__dragStart","_ignoreMove","isOpen","_moveChild","_childCount","_boundsNeedUpdate","_cLatLng","addObject","_childClusters","_iconNeedsUpdate","_isOrIsParent","originalEvent","relatedTarget","listens","DivIcon","_zoomOrSpiderfy","_showCoverage","keyCode","focus","_shownPolygon","_spiderfied","Polygon","getConvexHull","_mergeSplitClusters","_recursivelyRemoveChildrenFromMap","DistanceGrid","_overrideMarkerIcon","getNearObject","_addChild","_updateIcon","_enqueue","_queueTimeout","_processQueue","clearTimeout","intersects","_animationStart","_animationZoomIn","_animationZoomOut","_checkBoundsMaxLat","_mapBoundsInfinite","getNorth","_northEast","getSouth","_southWest","_addToMap","_recursively","_isSingleParent","clusterHide","_forceLayout","_recursivelyBecomeVisible","_recursivelyRestoreChildPositions","_animationEnd","_animationZoomOutSingle","_recursivelyAnimateChildrenInAndAddSelfToMap","falseFn","markerClusterGroup","_iconObj","createShadow","_setClusterCenter","_resetBounds","_wLatLng","_backupLatlng","_recursivelyAnimateChildrenIn","_restorePosition","setOpacity","_cellSize","_sqCellSize","_objectPoint","_getCoord","updateObject","eachObject","_sqDist","QuickHull","getDistant","findMostDistantPointFromBaseLine","maxPoint","newPoints","buildConvexHull","_2PI","_circleFootSeparation","_circleStartAngle","_spiralFootSeparation","_spiralLengthStart","_spiralLengthFactor","_circleSpiralSwitchover","_generatePointsSpiral","_generatePointsCircle","_animationSpiderfy","unspiderfy","_animationUnspiderfy","_preSpiderfyLatlng","setZIndexOffset","_spiderLeg","cluster","markers","SVG","_path","getTotalLength","strokeDasharray","strokeDashoffset","closePopup","_unspiderfyWrapper","_unspiderfyZoomStart","getRenderer","_unspiderfyZoomAnim","refreshClusters","_flagParentsIconsNeedUpdate","_refreshSingleMarkerModeMarkers","refreshIconOptions","defineProperty","grwMapCss","GrwMap","userLayersState","tileLayer","handleTreksWithinBoundsBind","handleTreksWithinBounds","handleTouristicContentsWithinBoundsBind","handleTouristicContentsWithinBounds","handleTouristicEventsWithinBoundsBind","handleTouristicEventsWithinBounds","class_1","onCenterOnMap","event","stepsIsInViewport","currentStepsLayer","handleLayerVisibility","descriptionIsInViewport","currentReferencePointsLayer","parkingIsInViewport","currentParkingLayer","onInformationDesksIsInViewport","currentInformationDesksLayer","sensitiveAreaIsInViewport","currentSensitiveAreasLayer","poiIsInViewport","currentPoisLayer","touristicContentsIsInViewport","currentToutisticContentsLayer","touristicEventsIsInViewport","currenttouristicEventsLayer","onCardTrekMouseOver","parentTrek","selectedTrekId","hideTrekLine","showTrekLine","addSelectedCurrentTrek","stepPopupIsOpen","selectedStepId","addSelectedCurrentStep","onCardTrekMouseLeave","trekPopupIsOpen","removeSelectedCurrentTrek","selectedCurrentStepLayer","removeSelectedCurrentStep","onTouristicContentMouseOver","touristicContentPopupIsOpen","selectedTouristicContentId","addSelectedTouristicContent","onTouristicContentMouseLeave","removeSelectedTouristicContent","onTouristicEventMouseOver","touristicEventPopupIsOpen","selectedTouristicEventId","addSelectedTouristicEvent","onTouristicEventMouseLeave","removeSelectedTouristicEvent","onTrekDownloadedSuccessConfirm","setMaxZoom","trekTilesMaxZoomOffline","onTrekDeleteSuccessConfirm","componentDidLoad","mapRef","Number","nameLayers","nameLayer","urlLayers","urlLayer","url","attributionLayers","attributionLayer","tileLayerOffline","attribution","crossOrigin","layersControl","layers","tileLayers","_f","Contract","contractContainer","contract","opts","currentTrek","addTrek","addTreks","currentTouristicContent","addTouristicContent","currentTouristicEvent","addTouristicEvent","addTouristicContents","addTouristicEvents","onChange","removeTreks","removeTouristicContents","removeTouristicEvents","removeTrek","removeTouristicContent","removeTouristicEvent","visible","handleLayersControlEvent","resetBounds","treksCurrentDepartureCoordinates","treksFeatureCollection","departure_geom","_a","practices","pictogram","imgSrc","attachments","thumbnail","_i","treksLayer","currentMapBounds","coordinate","getIcons","treksIcons_1","_g","sent","geoJSON","geoJsonPoint","autoPanOnFocus","__awaiter","getDataInStore","dataInStore","URL","createObjectURL","arrayBufferToBlob","trekDeparturePopup","trekImg","trekName","trekButton","trekCardPress","closeButton","treksMarkerClusterGroup","mapIsReady","toBBoxString","trekInStore","_t","currentTrekFeature","currentTrekLayer","parking_location","parkingImageSrc_1","getAssetPath","currentParking","advised_parking","_geoJsonPoint","parkingTooltip","parkingName","currentSensitiveAreas","currentSensitiveAreasFeatureCollection","sensitiveArea_1","sensitiveAreaTooltip","sensitiveAreaName","colorSensitiveArea","currentPois","currentPoisFeatureCollection","currentPoi","type_pictogram","poiTypes","poiType","_h","poiIcons_1","poiTooltip","poiName","trekTouristicContents","currentTouristicContentsFeatureCollection","category_pictogram","_b","touristicContentCategories","touristicContentCategory","_j","_k","toutisticContentsIcons_1","touristicContentTooltip","touristicContentName","currentTouristicEventsFeatureCollection","_c","touristicEventTypes","touristicEventType","_l","_m","toutisticEventsIcons_1","touristicEventTooltip","touristicEventName","currentInformationDesks","currentInformationDesksFeatureCollection","_o","_p","information_desks","currentInformationDesk","informationDesksIcons_1","informationDesksTooltip","informationDesksName","points_reference","currentReferencePointsFeatureCollection","index_1","parentTrekId","stepsFeatureCollection","currentTrekSteps","_d","_q","_r","stepIndex_1","elevationTranslation","elevationOptions","srcFolder","useGradient","hotline","closeBtn","edgeScale","linearGradient","elevationControl","stringify","departureArrival","departureArrivalLayer","overlays","steps","referencePoints","parking","sensitiveArea","informationPlaces","pois","addOverlay","featuresCollection","icons","getIcon","customCoordinates","trek_1","treksIcons","selectedCurrentTrekLayer","Boolean","stepIndex_2","findIndex","_layerControlInputs","userLayerState","layerId","overlay","onchange","checked","removeControl","getTrekGeometry","trekLine","colorTrekLine","touristicContentsFeatureCollection","currentToutisticContentLayer","toutisticContentIcons_1","touristicContentsCurrentCoordinates","toutisticContentsLayer","toutisticContentIcons_2","touristicContentCoordinatesPopup","touristicContentImg","touristicContentButton","touristicContentCardPress","touristicContentsMarkerClusterGroup","touristicEventsFeatureCollection","currentToutisticEventLayer","toutisticEventsIcons_2","touristicContentFeatureCollection","touristicContent_1","toutisticContentIcons","selectedTouristicContentLayer","touristicContentDeparturePopup","touristicEventsCurrentCoordinates","touristicEventsLayer","touristicEventsIcons_1","touristicEventCoordinatesPopup","touristicEventImg","touristicEventButton","touristicEventCardPress","touristicEventsMarkerClusterGroup","touristicEventFeatureCollection","touristicEvent_1","touristicEventsIcons","selectedTouristicEventLayer","touristicEventDeparturePopup","layersImageSrc","contractImageSrc","colorPrimaryApp","colorOnSurface","colorBackground","colorPoiIcon","isLargeView","ref","elevationRef","grwSearchCss","GrwSearch","onSearchChange","searchValue","onInput","placeholder","grwSegmentedSegmentCss","GrwSegmentedSegment","changeMode","grwSelectLanguageCss","GrwSelectLanguage","handleSelect","languages","toLocaleLowerCase","toLocaleUpperCase","grwSwitchCss","GrwSwitch","Mousewheel","swiper","extendParams","getWindow","mousewheel","releaseOnEdges","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","timeout","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","normalize","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","params","delta","isEnd","loop","animating","slideNext","raw","isBeginning","slidePrev","releaseScroll","handle","disableParentSwiper","closest","cssMode","targetEl","targetElContainsTarget","rtlFactor","rtlTranslate","isHorizontal","positions","getTranslate","minTranslate","maxTranslate","nested","freeMode","shift","prevEvent","newEvent_1","ignoreWheelEvents","wasBeginning","wasEnd","setTransition","setTranslate","updateProgress","updateActiveIndex","updateSlidesClasses","loopFix","byMousewheel","firstEvent","snapToThreshold_1","nextTick","slideToClosest","snapToThreshold","autoplay","autoplayDisableOnInteraction","returnValue","events","wrapperEl","removeEventListener","Scrollbar","getDocument","isTouched","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","lockClass","dragClass","scrollbarDisabledClass","horizontalClass","verticalClass","dragEl","rtl","progress","progressLoop","newSize","newPos","transitionDuration","updateSize","virtualSize","slidesOffsetBefore","centeredSlides","snapGrid","watchOverflow","isLocked","getPointerPosition","clientY","setDragPosition","positionRatio","elementOffset","onDragStart","onDragMove","onDragEnd","activeListener","passiveListeners","passive","capture","passiveListener","eventMethod","enableDraggable","disableDraggable","swiperEl","createElementIfNotDefined","originalParams","isElement","shadowRoot","querySelectorAll","uniqueNavElements","destroy","_s","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","onTouchStart","touchEventsData","velocities","onTouchEnd","currentPos","onTouchMove","touchStartTime","touchEndTime","timeDiff","slideTo","activeIndex","slides","lastMoveEvent","velocityEvent","velocity","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition_1","bounceAmount","needsLoopFix","allowMomentumBounce","nextSlide","swipeDirection","moveDistance","currentSlideSize","slidesSizesGrid","transitionStart","elementTransitionEnd","destroyed","transitionEnd","longSwipesMs","grwTouristicContentDetailCss","GrwTouristicContentDetail","swiperImages","Swiper","swiperImagesRef","modules","Navigation","Pagination","Keyboard","FreeMode","navigation","prevEl","prevElImagesRef","nextEl","nextElImagesRef","pagination","paginationElImagesRef","allowTouchMove","keyboard","onfullscreenchange","displayFullscreen","offline","handleFullscreen","close","requestFullscreen","exitFullscreen","defaultImageSrc","cities","currentCity","city","colorSecondaryContainer","colorOnSecondaryContainer","touristicContentDetailContainerRef","presentationRef","attachment","author","crossorigin","loading","pdf","rel","description_teaser","practical_info","descriptionRef","description","usefulInformation","contact","email","website","getTouristicContent","api","touristicContentId","getTouristicContentsNearTrek","trekId","GrwTouristicContentProvider","controller","AbortController","signal","cache","class_2","connectedCallback","handleTouristicContent","touristicContentInStore","handleOfflineTouristicContent","handleOnlineTouristicContent","getAllDataInStore","setFilesFromStore","imagesRegExp","requests","Response","portals","all","__spreadArray","responses","response","json","networkError","results","error","DOMException","ABORT_ERR","disconnectedCallback","abort","grwTouristicContentsListCss","GrwTouristicContentsList","step","shouldAddInfiniteScrollEvent","handleInfiniteScrollBind","handleInfiniteScroll","GrwTouristicContentsList$1","handleInfiniteScrollEvent","touristicContentsToDisplay","scroll","composedPath","scrollTop","scrollHeight","colorSurfaceContainerLow","GrwTouristicContentsProvider","handleTouristicContents","touristicContentsRequest","inBbox","structures","grwTouristicEventDetailCss","GrwTouristicEventDetail","touristicEventCategory","touristicEventDetailContainerRef","begin_date","end_date","date","startDate","endDate","getTouristicEvent","touristicEventId","getTouristicEventsNearTrek","GrwTouristicEventProvider","class_3","handleTouristicEvent","touristicEventInStore","handleOfflineTouristicEvent","handleOnlineTouristicEvent","grwTouristicEventsListCss","touristicEventsToDisplay","GrwTouristicEventsProvider","handleTouristicEvents","touristicEventsRequest","grwTrekDetailCss","threshold","presentation","indicator","recommendations","GrwTrekDetail","indicatorSelectedTrekOption","translateX","backgroundSize","class_4","swiperStep","swiperStepRef","initialSlide","getCurrentStepIndex","slidesPerView","spaceBetween","grabCursor","stepSwiperScrollbar","breakpointsBase","breakpoints","swiperPois","swiperPoisRef","poisSwiperScrollbar","swiperInformationDesks","swiperInformationDesksRef","informationDesksContentsSwiperScrollbar","swiperTouristicContents","swiperTouristicContentsRef","touristicContentsSwiperScrollbar","swiperTouristicEvents","swiperTouristicEventsRef","touristicEventsSwiperScrollbar","presentationObserver","IntersectionObserver","entries","isIntersecting","defaultOptions","handleIndicatorSelectedTrekOption","stepsRef","stepsObserver","descriptionObserver","recommendationRef","recommendationsObserver","parkingRef","parkingObserver","sensitiveAreaRef","sensitiveAreaObserver","informationPlacesRef","informationPlacesObserver","informationPlacesIsInViewport","accessibilityRef","accessibilityObserver","poiRef","poiObserver","touristicContentsRef","touristicContentObserver","touristicEventsRef","touristicEventObserver","handleOptions","difficulties","route","sources","source","accessibilities","accessibilitiesLevel","accessibilityLevel","accessibility_level","hasStep","children","advice","disabled_infrastructure","accessibility_slope","accessibility_width","accessibility_signage","accessibility_covering","accessibility_exposure","accessibility_advice","emergencyNumber","trekTouristicEvents","currentOption","previousVisibleOptions","previousWidthOptions","elementWidth","values","handleScrollTo","trekDetailContainerRef","scrollTo","offsetTop","downloadGlobalTiles","offlineLayer","treksDepartureCoordinates","writeOrUpdateTilesInStore","globalTilesMinZoomOffline","globalTilesMaxZoomOffline","downloadTrekTiles","trekTilesMinZoomOffline","downloadTrek","offlineTreks","getTreksList","inBboxFromProviders","citiesFromProviders","structuresFromProviders","themesFromProviders","portalsFromProviders","routesFromProviders","practicesFromProviders","treksList","offlineTrek","getDistricts","districtsList","writeOrUpdateDataInStore","writeOrUpdateFilesInStore","networks","ratings","ratingsScale","trekTouristicContent","trekTouristicEvent","steps_1","stepRequests_1","stepsTouristicContentsRequests_1","stepsTouristicEventsRequests_1","stepId","getTrek","trekSteps","stepsTouristicContentsResponses","stepsTouristicEventsResponses","stepsTouristicContentsResponse","index_2","stepsTouristicEventsResponse","index_3","trekDownloadedSuccessConfirm","deleteTrek","treksInStore","deleteOfflineTrekProperties","trekInStore_1","currentTrekStep","trekDeleteSuccessConfirm","displayTrekDownloadModal","trekDownloadConfirm","displayTrekDeleteModal","trekDeleteConfirm","onTrekDownloadPress","onTrekDeletePress","gpx","kml","arrival","ambiance","access","public_transport","gear","ratings_description","web_links","update_datetime","presentationOptionRef","stepsOptionRef","descriptionOptionRef","poisOptionRef","recommendationsOptionRef","sensitiveAreaOptionRef","environmentalSensitiveAreas","informationPlacesOptionRef","accessibilityOptionRef","touristicContentsOptionRef","touristicEventsOptionRef","onerror","formatDuration","formatLength","length_2d","formatAscent","formatDescent","_e","networkId","currentNetwork","network","trekRating","ratingScale","rating","downloads","enableOffline","parentTrekPress","departure","poi","weather","departure_city","frameborder","roadAccessAndParking","recommendedParking","transport","sensitiveAreasDescription","informationDesk","accessibilitySlope","accessibilityWidth","accessibilitySignage","accessibilityCovering","accessibilityExposure","accessibilityAdvices","isInsideHorizontalList","learnMore","weblink","GrwTrekProvider","class_5","districtsFromProviders","handleTrek","handleOfflineTrek","handleOnlineTrek","steps_2","_2","stepRequests_2","touristicContents_1","_u","_v","_w","_z","pois_1","_0","_1","Error","sensitiveAreas","informationDesks","steps_3","stepRequests_3","grwTreksListCss","GrwTreksList","treksToDisplay","GrwTreksProvider","class_6","handleTreks","handleOnlineTreks","handleOfflineTreks","durations","lengths","elevations","sortTreks","localeCompare","numeric","status","treksWithOfflineValue","trekIsAvailableOffline"],"sources":["src/components/grw-common-button/grw-common-button.scss?tag=grw-common-button&encapsulation=shadow","src/components/grw-common-button/grw-common-button.tsx","src/components/grw-extended-fab/grw-extended-fab.scss?tag=grw-extended-fab&encapsulation=shadow","src/components/grw-extended-fab/grw-extended-fab.tsx","src/components/grw-filters/grw-filters.scss?tag=grw-filters&encapsulation=shadow","src/components/grw-filters/grw-filters.tsx","src/components/grw-loader/grw-loader.scss?tag=grw-loader&encapsulation=shadow","src/components/grw-loader/grw-loader.tsx","node_modules/leaflet-rotate/dist/leaflet-rotate.js","node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","node_modules/leaflet-i18n/Leaflet.i18n.js","node_modules/@raruto/leaflet-elevation/dist/leaflet-elevation.min.js","node_modules/leaflet.markercluster/dist/leaflet.markercluster.js","src/components/grw-map/grw-map.scss?tag=grw-map&encapsulation=shadow","src/components/grw-map/grw-map.tsx","src/components/grw-search/grw-search.scss?tag=grw-search&encapsulation=shadow","src/components/grw-search/grw-search.tsx","src/components/grw-segmented-segment/grw-segmented-segment.scss?tag=grw-segmented-segment&encapsulation=shadow","src/components/grw-segmented-segment/grw-segmented-segment.tsx","src/components/grw-select-language/grw-select-language.scss?tag=grw-select-language&encapsulation=shadow","src/components/grw-select-language/grw-select-language.tsx","src/components/grw-switch/grw-switch.scss?tag=grw-switch&encapsulation=shadow","src/components/grw-switch/grw-switch.tsx","node_modules/swiper/modules/mousewheel/mousewheel.js","node_modules/swiper/modules/scrollbar/scrollbar.js","node_modules/swiper/modules/free-mode/free-mode.js","src/components/grw-touristic-content-detail/grw-touristic-content-detail.scss?tag=grw-touristic-content-detail&encapsulation=shadow","src/components/grw-touristic-content-detail/grw-touristic-content-detail.tsx","src/services/touristic-contents.service.ts","src/store/grw-touristic-content-provider.tsx","src/components/grw-touristic-contents-list/grw-touristic-contents-list.scss?tag=grw-touristic-contents-list&encapsulation=shadow","src/components/grw-touristic-contents-list/grw-touristic-contents-list.tsx","src/store/grw-touristic-contents-provider.tsx","src/components/grw-touristic-event-detail/grw-touristic-event-detail.scss?tag=grw-touristic-event-detail&encapsulation=shadow","src/components/grw-touristic-event-detail/grw-touristic-event-detail.tsx","src/services/touristic-events.service.ts","src/store/grw-touristic-event-provider.tsx","src/components/grw-touristic-events-list/grw-touristic-events-list.scss?tag=grw-touristic-events-list&encapsulation=shadow","src/components/grw-touristic-events-list/grw-touristic-events-list.tsx","src/store/grw-touristic-events-provider.tsx","src/components/grw-trek-detail/grw-trek-detail.scss?tag=grw-trek-detail&encapsulation=shadow","src/components/grw-trek-detail/grw-trek-detail.tsx","src/store/grw-trek-provider.tsx","src/components/grw-treks-list/grw-treks-list.scss?tag=grw-treks-list&encapsulation=shadow","src/components/grw-treks-list/grw-treks-list.tsx","src/store/grw-treks-provider.tsx"],"sourcesContent":[".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.common-button {\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1px;\n font-family: var(--font-family);\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n .common-button-icon {\n font-size: 18px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-common-button',\n styleUrl: 'grw-common-button.scss',\n shadow: true,\n})\nexport class GrwCommonButton {\n @Prop() action: Function;\n @Prop() icon: string;\n @Prop() name: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"common-button\" class=\"common-button\" onClick={() => this.action()}>\n {/* @ts-ignore */}\n <span part=\"common-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon}\n </span>\n <span part=\"common-button-label\" class=\"label\">\n {this.name}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.map-visibility-button {\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n text-decoration: none;\n padding: 16px;\n background-color: var(--fab-background-color);\n color: var(--fab-color);\n box-shadow: var(--elevation-1);\n border-radius: var(--border-radius, 12px);\n height: 56px;\n font-family: var(--font-family);\n font-size: 16px;\n width: unset;\n &:hover {\n box-shadow: var(--elevation-4);\n }\n .icon {\n font-size: 24px;\n margin-right: 8px;\n color: var(--fab-color);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-extended-fab',\n styleUrl: 'grw-extended-fab.scss',\n shadow: true,\n})\nexport class GrwExtendedFab {\n @Prop() action: Function;\n @Prop() icon: Function;\n @Prop() name: Function;\n @Prop() display: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"map-visibility-button\" class=\"map-visibility-button\" onClick={() => this.action()} style={{ display: this.display }}>\n {/* @ts-ignore */}\n <span part=\"map-visibility-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon()}\n </span>\n <span part=\"map-visibility-button-label\" class=\"label\">\n {this.name()}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".options-container {\n height: 100%;\n position: absolute;\n width: 100%;\n z-index: 1100;\n top: 0px;\n}\n\n.filters-container {\n background-color: var(--color-background);\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1100;\n .filters-treks-container,\n .filters-touristic-contents-container,\n .filters-touristic-events-container {\n height: 100%;\n }\n .segmented-buttons-container {\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface-variant);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n font-family: var(--font-family);\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n }\n}\n\n.filters-segment-container {\n overflow-y: visible;\n height: 100%;\n max-height: calc(100% - 64px - 42px - 32px);\n}\n\n.back-filters-container {\n background-color: rgba(0, 0, 0, 0.5);\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 1099;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.filters-options-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 64px;\n margin: 0px 16px;\n .filters-options-buttons-container {\n display: flex;\n .filter-option-button {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n margin: 8px 0px 0px 8px;\n padding: 8px 16px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-primary-app);\n background-color: transparent;\n font-family: var(--font-family);\n }\n }\n}\n\n.segment-container {\n overflow: scroll;\n height: 100%;\n}\n\n.filter-container {\n &:not(:last-child) {\n &::after {\n content: '';\n display: block;\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n }\n }\n &:last-child {\n margin-bottom: 16px;\n }\n}\n\n.current-treks-within-bounds-length {\n color: var(--color-on-surface-variant);\n font-family: var(--font-family);\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport {\n treksFilters,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n touristicEventsFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-filters',\n styleUrl: 'grw-filters.scss',\n shadow: true,\n})\nexport class GrwFilters {\n @Event() resetFilter: EventEmitter;\n\n @State() selectedSegment = 'selectedActivitiesFilters';\n\n @Prop() handleFilters: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n handleEraseTreksFilters() {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTreksFilters() {\n this.handleFilters();\n }\n\n handleSelectedSegment(selectedSegment) {\n this.selectedSegment = selectedSegment;\n }\n\n handleSegment(segment) {\n if (state.mode === 'treks') {\n return treksFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicContents') {\n return touristicContentsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicEvents') {\n return touristicEventsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n }\n }\n\n handleEraseTouristicContentsFilters() {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicContentsFilters() {\n this.handleFilters();\n }\n\n handleEraseTouristicEventsFilters() {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicEventsFilters() {\n this.handleFilters();\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"options-container\" class=\"options-container\">\n <div part=\"filters-container\" class=\"filters-container\">\n {state.mode === 'treks' && (\n <div part=\"filters-treks-container\" class=\"filters-treks-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.treksWithinBounds.length} ${\n state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTreksFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTreksFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].home.segment.treks} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedThemesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedThemesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedThemesFilters')}\n >\n {translate[state.language].themes} {state.selectedThemesFilters !== 0 && `(${state.selectedThemesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-activities-segment-container\">\n {state['practices'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].practice}\n filterType=\"practices\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n filterPlaceholder={translate[state.language].placeholderPractices}\n ></grw-filter>\n </div>\n )}\n {state['difficulties'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].difficulty}\n filterType=\"difficulties\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['durations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].duration}\n filterType=\"durations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['lengths'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].length}\n filterType=\"lengths\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['elevations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].elevation}\n filterType=\"elevations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['routes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].routes}\n filterType=\"routes\"\n filterNameProperty=\"route\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['accessibilities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].accessibility}\n filterType=\"accessibilities\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['labels'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].activities}\n filterType=\"labels\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedThemesFilters' && (\n <div part=\"filter-container\" class=\"segment-container\" key=\"treks-themes-segment-container\">\n {state['themes'].length > 0 && (\n <div part=\"\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].themes}\n filterPlaceholder={translate[state.language].placeholderThemes}\n filterType=\"themes\"\n filterNameProperty=\"label\"\n segment=\"selectedThemesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicContents' && (\n <div part=\"filters-touristic-contents-container\" class=\"filters-touristic-contents-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicContentsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicContentsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicContentsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicContentCategories'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].category}\n filterType=\"touristicContentCategories\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicEvents' && (\n <div part=\"filters-touristic-events-container\" class=\"filters-touristic-events-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicEventsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicEventsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicEventsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicEventTypes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].type}\n filterPlaceholder={translate[state.language].placeholderType}\n filterType=\"touristicEventTypes\"\n filterNameProperty=\"type\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-events-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n <div part=\"back-filters-container\" class=\"back-filters-container\" onClick={() => this.handleFilters()}></div>\n </div>\n </Host>\n );\n }\n}\n",".loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-loader',\n styleUrl: 'grw-loader.scss',\n shadow: true,\n})\nexport class GrwLoader {\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n\n render() {\n return (\n <Host style={{ '--color-primary-container': this.colorPrimaryContainer, '--color-on-primary-container': this.colorOnPrimaryContainer }}>\n <span part=\"loader\" class=\"loader\"></span>\n </Host>\n );\n }\n}\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";const t=L.extend({},L.DomUtil);L.extend(L.DomUtil,{setTransform:function(o,e,i,n,a){var s=e||new L.Point(0,0);if(!n)return e=s._round(),t.setTransform.apply(this,arguments);s=s.rotateFrom(n,a),o.style[L.DomUtil.TRANSFORM]=\"translate3d(\"+s.x+\"px,\"+s.y+\"px,0)\"+(i?\" scale(\"+i+\")\":\"\")+\" rotate(\"+n+\"rad)\"},setPosition:function(o,e,i,n,a){if(!i)return t.setPosition.apply(this,arguments);o._leaflet_pos=e,L.Browser.any3d?L.DomUtil.setTransform(o,e,a,i,n):(o.style.left=e.x+\"px\",o.style.top=e.y+\"px\")},DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI}),L.Draggable.include({}),L.extend(L.Point.prototype,{rotate:function(t){return this.rotateFrom(t,new L.Point(0,0))},rotateFrom:function(t,o){if(!t)return this;var e=Math.sin(t),i=Math.cos(t),n=o.x,a=o.y,s=this.x-n,r=this.y-a;return new L.Point(s*i-r*e+n,s*e+r*i+a)}});const o=L.extend({},L.DivOverlay.prototype);L.DivOverlay.include({getEvents:function(){return L.extend(o.getEvents.apply(this,arguments),{rotate:this._updatePosition})},_updatePosition:function(){if(this._map&&(o._updatePosition.apply(this,arguments),this._map&&this._map._rotate&&this._zoomAnimated)){var t=this._getAnchor(),e=L.DomUtil.getPosition(this._container).subtract(t);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(e).add(t))}}});const e=L.extend({},L.Popup.prototype);L.Popup.include({_animateZoom:function(t){if(e._animateZoom.apply(this,arguments),this._map&&this._map._rotate){var o=this._getAnchor(),i=L.DomUtil.getPosition(this._container).subtract(o);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(i).add(o))}},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress))if(this._autopanning)this._autopanning=!1;else{var t=this._map,o=parseInt(L.DomUtil.getStyle(this._container,\"marginBottom\"),10)||0,e=this._container.offsetHeight+o,i=this._containerWidth,n=new L.Point(this._containerLeft,-e-this._containerBottom);n._add(L.DomUtil.getPosition(this._container));var a=n._add(this._map._getMapPanePos()),s=L.point(this.options.autoPanPadding),r=L.point(this.options.autoPanPaddingTopLeft||s),h=L.point(this.options.autoPanPaddingBottomRight||s),_=t.getSize(),d=0,p=0;a.x+i+h.x>_.x&&(d=a.x+i-_.x+h.x),a.x-d-r.x<0&&(d=a.x-r.x),a.y+e+h.y>_.y&&(p=a.y+e-_.y+h.y),a.y-p-r.y<0&&(p=a.y-r.y),(d||p)&&(this.options.keepInView&&(this._autopanning=!0),t.fire(\"autopanstart\").panBy([d,p]))}}});const i=L.extend({},L.Tooltip.prototype);L.Tooltip.include({_animateZoom:function(t){if(!this._map._rotate)return i._animateZoom.apply(this,arguments);var o=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o=this._map.rotatedPointToMapPanePoint(o),this._setPosition(o)},_updatePosition:function(){if(!this._map._rotate)return i._updatePosition.apply(this,arguments);var t=this._map.latLngToLayerPoint(this._latlng);t=this._map.rotatedPointToMapPanePoint(t),this._setPosition(t)}}),L.extend({},L.Icon.prototype),L.Icon.include({_setIconStyles:function(t,o){var e=this.options,i=e[o+\"Size\"];\"number\"==typeof i&&(i=[i,i]);var n=L.point(i),a=L.point(\"shadow\"===o&&e.shadowAnchor||e.iconAnchor||n&&n.divideBy(2,!0));t.className=\"leaflet-marker-\"+o+\" \"+(e.className||\"\"),a&&(t.style.marginLeft=-a.x+\"px\",t.style.marginTop=-a.y+\"px\",t.style[L.DomUtil.TRANSFORM+\"Origin\"]=a.x+\"px \"+a.y+\"px 0px\"),n&&(t.style.width=n.x+\"px\",t.style.height=n.y+\"px\")}});const n=L.extend({},L.Marker.prototype);var a;L.Marker.mergeOptions({rotation:0,rotateWithView:!1,scale:void 0});var s={_onDrag:function(t){var o=this._marker,e=o.options.rotation||o.options.rotateWithView,i=o._shadow,n=L.DomUtil.getPosition(o._icon);!e&&i&&L.DomUtil.setPosition(i,n),o._map._rotate&&(n=o._map.mapPanePointToRotatedPoint(n));var a=o._map.layerPointToLatLng(n);o._latlng=a,t.latlng=a,t.oldLatLng=this._oldLatLng,e?o.setLatLng(a):o.fire(\"move\",t),o.fire(\"drag\",t)},_onDragEnd:function(t){this._marker._map._rotate&&this._marker.update(),a._onDragEnd.apply(this,arguments)}};L.Marker.include({getEvents:function(){return L.extend(n.getEvents.apply(this,arguments),{rotate:this.update})},_initInteraction:function(){var t=n._initInteraction.apply(this,arguments);return this.dragging&&this.dragging.enabled()&&this._map&&this._map._rotate&&(a=a||Object.getPrototypeOf(this.dragging),this.dragging.disable(),Object.assign(this.dragging,{_onDrag:s._onDrag.bind(this.dragging),_onDragEnd:s._onDragEnd.bind(this.dragging)}),this.dragging.enable()),t},_setPos:function(t){this._map._rotate&&(t=this._map.rotatedPointToMapPanePoint(t));var o=this.options.rotation||0;this.options.rotateWithView&&(o+=this._map._bearing),this._icon&&L.DomUtil.setPosition(this._icon,t,o,t,this.options.scale),this._shadow&&L.DomUtil.setPosition(this._shadow,t,o,t,this.options.scale),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},setRotation:function(t){this.options.rotation=t,this.update()}});const r=L.extend({},L.GridLayer.prototype);L.GridLayer.include({getEvents:function(){var t=r.getEvents.apply(this,arguments);return this._map._rotate&&!this.options.updateWhenIdle&&(this._onRotate||(this._onRotate=L.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.rotate=this._onRotate),t},_getTiledPixelBounds:function(t){return this._map._rotate?this._map._getNewPixelBounds(t,this._tileZoom):r._getTiledPixelBounds.apply(this,arguments)}});const h=L.extend({},L.Renderer.prototype);L.Renderer.include({getEvents:function(){return L.extend(h.getEvents.apply(this,arguments),{rotate:this._update})},onAdd:function(){h.onAdd.apply(this,arguments),L.version<=\"1.9.3\"&&this._container.classList.add(\"leaflet-zoom-animated\")},_updateTransform:function(t,o){if(!this._map._rotate)return h._updateTransform.apply(this,arguments);var e=this._map.getZoomScale(o,this._zoom),i=this._map._latLngToNewLayerPoint(this._topLeft,o,t);L.DomUtil.setTransform(this._container,i,e)},_update:function(){if(!this._map._rotate)return h._update.apply(this,arguments);this._bounds=this._map._getPaddedPixelBounds(this.options.padding),this._topLeft=this._map.layerPointToLatLng(this._bounds.min),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}});const _=L.extend({},L.Map.prototype);L.Map.mergeOptions({rotate:!1,bearing:0}),L.Map.include({initialize:function(t,o){o.rotate&&(this._rotate=!0,this._bearing=0),_.initialize.apply(this,arguments),this.options.rotate&&this.setBearing(this.options.bearing)},containerPointToLayerPoint:function(t){return this._rotate?L.point(t).subtract(this._getMapPanePos()).rotateFrom(-this._bearing,this._getRotatePanePos()).subtract(this._getRotatePanePos()):_.containerPointToLayerPoint.apply(this,arguments)},layerPointToContainerPoint:function(t){return this._rotate?L.point(t).add(this._getRotatePanePos()).rotateFrom(this._bearing,this._getRotatePanePos()).add(this._getMapPanePos()):_.layerPointToContainerPoint.apply(this,arguments)},rotatedPointToMapPanePoint:function(t){return L.point(t).rotate(this._bearing)._add(this._getRotatePanePos())},mapPanePointToRotatedPoint:function(t){return L.point(t)._subtract(this._getRotatePanePos()).rotate(-this._bearing)},mapBoundsToContainerBounds:function(t){if(!this._rotate&&_.mapBoundsToContainerBounds)return _.mapBoundsToContainerBounds.apply(this,arguments);const o=this.getPixelOrigin(),e=this.layerPointToContainerPoint(this.project(t.getNorthWest())._subtract(o)),i=this.layerPointToContainerPoint(this.project(t.getNorthEast())._subtract(o)),n=this.layerPointToContainerPoint(this.project(t.getSouthWest())._subtract(o)),a=this.layerPointToContainerPoint(this.project(t.getSouthEast())._subtract(o));return L.bounds([L.point(Math.min(e.x,i.x,a.x,n.x),Math.min(e.y,i.y,a.y,n.y)),L.point(Math.max(e.x,i.x,a.x,n.x),Math.max(e.y,i.y,a.y,n.y))])},getBounds:function(){if(!this._rotate)return _.getBounds.apply(this,arguments);var t=this.getSize();return new L.LatLngBounds([this.containerPointToLatLng([0,0]),this.containerPointToLatLng([t.x,0]),this.containerPointToLatLng([t.x,t.y]),this.containerPointToLatLng([0,t.y])])},setBearing:function(t){if(L.Browser.any3d&&this._rotate){var o=L.Util.wrapNum(t,[0,360])*L.DomUtil.DEG_TO_RAD,e=this._getPixelCenter(),i=this._getRotatePanePos().rotateFrom(-this._bearing,e),n=i.rotateFrom(o,e);L.DomUtil.setPosition(this._rotatePane,i,o,e),this._pivot=e,this._bearing=o,this._rotatePanePos=n,this.fire(\"rotate\")}},getBearing:function(){return this._bearing*L.DomUtil.RAD_TO_DEG},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),L.DomUtil.setPosition(this._mapPane,new L.Point(0,0)),this._rotate?(this._rotatePane=this.createPane(\"rotatePane\",this._mapPane),this._norotatePane=this.createPane(\"norotatePane\",this._mapPane),this.createPane(\"tilePane\",this._rotatePane),this.createPane(\"overlayPane\",this._rotatePane),this.createPane(\"shadowPane\",this._norotatePane),this.createPane(\"markerPane\",this._norotatePane),this.createPane(\"tooltipPane\",this._norotatePane),this.createPane(\"popupPane\",this._norotatePane)):(this.createPane(\"tilePane\"),this.createPane(\"overlayPane\"),this.createPane(\"shadowPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\")),this.options.markerZoomAnimation||(L.DomUtil.addClass(t.markerPane,\"leaflet-zoom-hide\"),L.DomUtil.addClass(t.shadowPane,\"leaflet-zoom-hide\"))},panInside(t,o){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.panInside.apply(this,arguments);o=o||{};const e=L.point(o.paddingTopLeft||o.padding||[0,0]),i=L.point(o.paddingBottomRight||o.padding||[0,0]),n=this._container.getBoundingClientRect(),a=this.latLngToContainerPoint(t),s=L.bounds([L.point(n),L.point(n).add(this.getSize())]),r=s.getCenter(),h=L.bounds([s.min.add(e),s.max.subtract(i)]),d=h.getSize();if(!h.contains(a)){this._enforcingBounds=!0;const t=a.subtract(h.getCenter()),e=h.extend(a).getSize().subtract(d);r.x+=t.x<0?-e.x:e.x,r.y+=t.y<0?-e.y:e.y,this.panTo(this.containerPointToLatLng(r),o),this._enforcingBounds=!1}return this},getBoundsZoom(t,o,e){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.getBoundsZoom.apply(this,arguments);t=L.latLngBounds(t),e=L.point(e||[0,0]);let i=this.getZoom()||0;const n=this.getMinZoom(),a=this.getMaxZoom(),s=this.getSize().subtract(e),r=this.mapBoundsToContainerBounds(t).getSize(),h=this.options.zoomSnap,d=s.x/r.x,p=s.y/r.y,l=o?Math.max(d,p):Math.min(d,p);return i=this.getScaleZoom(l,i),h&&(i=Math.round(i/(h/100))*(h/100),i=o?Math.ceil(i/h)*h:Math.floor(i/h)*h),Math.max(n,Math.min(a,i))},_getCenterOffset:function(t){var o=_._getCenterOffset.apply(this,arguments);return this._rotate&&(o=o.rotate(this._bearing)),o},_getRotatePanePos:function(){return this._rotatePanePos||new L.Point(0,0)},_getNewPixelOrigin:function(t,o){if(!this._rotate)return _._getNewPixelOrigin.apply(this,arguments);var e=this.getSize()._divideBy(2);return this.project(t,o).rotate(this._bearing)._subtract(e)._add(this._getMapPanePos())._add(this._getRotatePanePos()).rotate(-this._bearing)._round()},_getNewPixelBounds:function(t,o){if(t=t||this.getCenter(),o=o||this.getZoom(),!this._rotate&&_._getNewPixelBounds)return _._getNewPixelBounds.apply(this,arguments);var e=this._animatingZoom?Math.max(this._animateToZoom,this.getZoom()):this.getZoom(),i=this.getZoomScale(e,o),n=this.project(t,o).floor(),a=this.getSize(),s=new L.Bounds([this.containerPointToLayerPoint([0,0]).floor(),this.containerPointToLayerPoint([a.x,0]).floor(),this.containerPointToLayerPoint([0,a.y]).floor(),this.containerPointToLayerPoint([a.x,a.y]).floor()]).getSize().divideBy(2*i);return new L.Bounds(n.subtract(s),n.add(s))},_getPixelCenter:function(){return!this._rotate&&_._getPixelCenter?_._getPixelCenter.apply(this,arguments):this.getSize()._divideBy(2)._subtract(this._getMapPanePos())},_getPaddedPixelBounds:function(t){if(!this._rotate&&_._getPaddedPixelBounds)return _._getPaddedPixelBounds.apply(this,arguments);var o=t,e=this.getSize(),i=e.multiplyBy(-o),n=e.multiplyBy(1+o);return new L.Bounds([this.containerPointToLayerPoint([i.x,i.y]).floor(),this.containerPointToLayerPoint([i.x,n.y]).floor(),this.containerPointToLayerPoint([n.x,i.y]).floor(),this.containerPointToLayerPoint([n.x,n.y]).floor()])},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var o=t.coords.latitude,e=t.coords.longitude,i=t.coords.heading,n=new L.LatLng(o,e),a=n.toBounds(t.coords.accuracy),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(a);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var h={latlng:n,bounds:a,timestamp:t.timestamp,heading:i};for(var _ in t.coords)\"number\"==typeof t.coords[_]&&(h[_]=t.coords[_]);this.fire(\"locationfound\",h)}}}),L.Map.CompassBearing=L.Handler.extend({initialize:function(t){this._map=t,\"ondeviceorientationabsolute\"in window?this.__deviceOrientationEvent=\"deviceorientationabsolute\":\"ondeviceorientation\"in window&&(this.__deviceOrientationEvent=\"deviceorientation\"),this._throttled=L.Util.throttle(this._onDeviceOrientation,100,this)},addHooks:function(){this._map._rotate&&this.__deviceOrientationEvent?L.DomEvent.on(window,this.__deviceOrientationEvent,this._throttled,this):this.disable()},removeHooks:function(){this._map._rotate&&this.__deviceOrientationEvent&&L.DomEvent.off(window,this.__deviceOrientationEvent,this._throttled,this)},_onDeviceOrientation:function(t){var o=t.webkitCompassHeading||t.alpha,e=0;!t.absolute&&t.webkitCompassHeading&&(o=360-o),t.absolute||void 0===window.orientation||(e=window.orientation),this._map.setBearing(o-e)}}),L.Map.addInitHook(\"addHandler\",\"compassBearing\",L.Map.CompassBearing),L.Map.mergeOptions({trackContainerMutation:!1}),L.Map.ContainerMutation=L.Handler.extend({addHooks:function(){this._observer||(this._observer=new MutationObserver(L.Util.bind(this._map.invalidateSize,this._map))),this._observer.observe(this._map.getContainer(),{childList:!1,attributes:!0,characterData:!1,subtree:!1,attributeFilter:[\"style\"]})},removeHooks:function(){this._observer.disconnect()}}),L.Map.addInitHook(\"addHandler\",\"trackContainerMutation\",L.Map.ContainerMutation),L.Map.mergeOptions({bounceAtZoomLimits:!0}),L.Map.TouchGestures=L.Handler.extend({initialize:function(t){this._map=t,this.rotate=!!this._map.options.touchRotate,this.zoom=!!this._map.options.touchZoom},addHooks:function(){L.DomEvent.on(this._map._container,\"touchstart\",this._onTouchStart,this)},removeHooks:function(){L.DomEvent.off(this._map._container,\"touchstart\",this._onTouchStart,this)},_onTouchStart:function(t){var o=this._map;if(t.touches&&2===t.touches.length&&!o._animatingZoom&&!this._zooming&&!this._rotating){var e=o.mouseEventToContainerPoint(t.touches[0]),i=o.mouseEventToContainerPoint(t.touches[1]),n=e.subtract(i);this._centerPoint=o.getSize()._divideBy(2),this._startLatLng=o.containerPointToLatLng(this._centerPoint),this.zoom?(\"center\"!==o.options.touchZoom&&(this._pinchStartLatLng=o.containerPointToLatLng(e.add(i)._divideBy(2))),this._startDist=e.distanceTo(i),this._startZoom=o.getZoom(),this._zooming=!0):this._zooming=!1,this.rotate?(this._startTheta=Math.atan(n.x/n.y),this._startBearing=o.getBearing(),n.y<0&&(this._startBearing+=180),this._rotating=!0):this._rotating=!1,this._moved=!1,o._stop(),L.DomEvent.on(document,\"touchmove\",this._onTouchMove,this).on(document,\"touchend touchcancel\",this._onTouchEnd,this),L.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&(this._zooming||this._rotating)){var o,e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),a=i.subtract(n),s=i.distanceTo(n)/this._startDist;if(this._rotating){var r=(Math.atan(a.x/a.y)-this._startTheta)*L.DomUtil.RAD_TO_DEG;a.y<0&&(r+=180),r&&e.setBearing(this._startBearing-r)}if(this._zooming)if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),\"center\"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{if(o=i._add(n)._divideBy(2)._subtract(this._centerPoint),1===s&&0===o.x&&0===o.y)return;var h=-e.getBearing()*L.DomUtil.DEG_TO_RAD;this._center=e.unproject(e.project(this._pinchStartLatLng).subtract(o.rotate(h)))}this._moved||(e._moveStart(!0,!1),this._moved=!0),L.Util.cancelAnimFrame(this._animRequest);var _=e._move.bind(e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=L.Util.requestAnimFrame(_,this,!0),L.DomEvent.preventDefault(t)}},_onTouchEnd:function(){this._moved&&(this._zooming||this._rotating)?(this._zooming=!1,this._rotating=!1,L.Util.cancelAnimFrame(this._animRequest),L.DomEvent.off(document,\"touchmove\",this._onTouchMove,this).off(document,\"touchend touchcancel\",this._onTouchEnd,this),this.zoom&&(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):this._zooming=!1}}),L.Map.addInitHook(\"addHandler\",\"touchGestures\",L.Map.TouchGestures),L.Map.mergeOptions({touchRotate:!1}),L.Map.TouchRotate=L.Handler.extend({addHooks:function(){this._map.touchGestures.enable(),this._map.touchGestures.rotate=!0},removeHooks:function(){this._map.touchGestures.rotate=!1}}),L.Map.addInitHook(\"addHandler\",\"touchRotate\",L.Map.TouchRotate),L.Map.mergeOptions({shiftKeyRotate:!0}),L.Map.ShiftKeyRotate=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!0},removeHooks:function(){L.DomEvent.off(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!1},_handleShiftScroll:function(t){t.shiftKey?(t.preventDefault(),this._map.scrollWheelZoom.disable(),this._map.setBearing(this._map._bearing*L.DomUtil.RAD_TO_DEG+5*Math.sign(t.deltaY))):this._map.scrollWheelZoom.enable()}}),L.Map.addInitHook(\"addHandler\",\"shiftKeyRotate\",L.Map.ShiftKeyRotate),L.Map.addInitHook((function(){this.scrollWheelZoom.enabled()&&this.shiftKeyRotate.enabled()&&(this.scrollWheelZoom.disable(),this.scrollWheelZoom.enable())})),L.Map.mergeOptions({touchZoom:L.Browser.touch,bounceAtZoomLimits:!1}),L.Map.TouchZoom=L.Handler.extend({addHooks:function(){L.DomUtil.addClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.enable(),this._map.touchGestures.zoom=!0},removeHooks:function(){L.DomUtil.removeClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.zoom=!1}}),L.Map.addInitHook(\"addHandler\",\"touchZoom\",L.Map.TouchZoom),L.Control.Rotate=L.Control.extend({options:{position:\"topleft\",closeOnZeroBearing:!0},onAdd:function(t){var o=this._container=L.DomUtil.create(\"div\",\"leaflet-control-rotate leaflet-bar\"),e=this._arrow=L.DomUtil.create(\"span\",\"leaflet-control-rotate-arrow\");e.style.backgroundImage=\"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\\\")\",e.style.cursor=\"grab\",e.style.display=\"block\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.backgroundRepeat=\"no-repeat\",e.style.backgroundPosition=\"50%\";var i=this._link=L.DomUtil.create(\"a\",\"leaflet-control-rotate-toggle\",o);return i.appendChild(e),i.href=\"#\",i.title=\"Rotate map\",L.DomEvent.on(i,\"dblclick\",L.DomEvent.stopPropagation).on(i,\"mousedown\",this._handleMouseDown,this).on(i,\"click\",L.DomEvent.stop).on(i,\"click\",this._cycleState,this).on(i,\"click\",this._refocusOnMap,this),L.Browser.any3d||L.DomUtil.addClass(i,\"leaflet-disabled\"),this._restyle(),t.on(\"rotate\",this._restyle,this),this._follow=!1,this._canFollow=!1,this.options.closeOnZeroBearing&&0===t.getBearing()&&(o.style.display=\"none\"),o},onRemove:function(t){t.off(\"rotate\",this._restyle,this)},_handleMouseDown:function(t){L.DomEvent.stop(t),this.dragging=!0,this.dragstartX=t.pageX,this.dragstartY=t.pageY,L.DomEvent.on(document,\"mousemove\",this._handleMouseDrag,this).on(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseUp:function(t){L.DomEvent.stop(t),this.dragging=!1,L.DomEvent.off(document,\"mousemove\",this._handleMouseDrag,this).off(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseDrag:function(t){if(this.dragging){var o=t.clientX-this.dragstartX;this._map.setBearing(o)}},_cycleState:function(t){if(this._map){var o=this._map;o.touchRotate.enabled()||o.compassBearing.enabled()?o.compassBearing.enabled()?(o.compassBearing.disable(),o.setBearing(0),this.options.closeOnZeroBearing&&o.touchRotate.enable()):(o.touchRotate.disable(),o.compassBearing.enable()):o.touchRotate.enable(),this._restyle()}},_restyle:function(){if(this._map.options.rotate){var t=this._map,o=t.getBearing();this._arrow.style.transform=\"rotate(\"+o+\"deg)\",o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"block\"),t.compassBearing.enabled()?this._link.style.backgroundColor=\"orange\":t.touchRotate.enabled()?this._link.style.backgroundColor=null:(this._link.style.backgroundColor=\"grey\",0===o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"none\"))}else L.DomUtil.addClass(this._link,\"leaflet-disabled\")}}),L.control.rotate=function(t){return new L.Control.Rotate(t)},L.Map.mergeOptions({rotateControl:!0}),L.Map.addInitHook((function(){if(this.options.rotateControl){var t=\"object\"==typeof this.options.rotateControl?this.options.rotateControl:{};this.rotateControl=L.control.rotate(t),this.addControl(this.rotateControl)}}))}));\n//# sourceMappingURL=leaflet-rotate.js.map\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","// Following https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md\n(function (factory, window) {\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === 'function' && define.amd) {\n define(['leaflet'], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === 'object') {\n module.exports = factory(require('leaflet'));\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== 'undefined' && window.L) {\n factory(window.L);\n\n }\n}(function (L) {\n L.locales = {};\n L.locale = null;\n L.registerLocale = function registerLocale(code, locale) {\n L.locales[code] = L.Util.extend({}, L.locales[code], locale);\n };\n L.setLocale = function setLocale(code) {\n L.locale = code;\n };\n return L.i18n = L._ = function translate(string, data) {\n if (L.locale && L.locales[L.locale] && typeof L.locales[L.locale][string] !== \"undefined\") {\n string = L.locales[L.locale][string];\n }\n try {\n // Do not fail if some data is missing\n // a bad translation should not break the app\n string = L.Util.template(string, data);\n }\n catch (err) {/*pass*/\n }\n\n return string;\n };\n}, window));\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";!function(t,e){\"function\"==typeof define&&define.amd?define([\"leaflet\"],t):\"object\"==typeof exports&&(module.exports=t(require(\"leaflet\"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,a){t.locales[e]=t.Util.extend({},t.locales[e],a)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,a){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,a)}catch(t){}return e}}),window);var t=6e4,e=60*t,a=24*e;function i(i){var n=Math.floor(i/a),r=Math.floor((i-n*a)/e),o=Math.floor((i-n*a-r*e)/t),s=Math.round((i-n*a-r*e-o*t)/1e3);return 60===s&&(o++,s=0),60===o&&(r++,o=0),24===r&&(n++,r=0),(n?n+\"d \":\"\")+r.toString().padStart(2,0)+\":\"+o.toString().padStart(2,0)+\"'\"+s.toString().padStart(2,0)+'\"'}function n(t,e){var a=m(\"a\",\"\",{href:t,target:\"_new\",download:e||\"\",style:\"display:none;\"}),i=document.body;i.appendChild(a),a.click(),i.removeChild(a)}function r(t,e,a){return!1===e?Promise.resolve():a instanceof Promise?a:new Promise((function(e,a){var i=document.createElement(\"script\");i.addEventListener(\"load\",e,{once:!0}),i.src=t,document.head.appendChild(i)}))}function o(t,e){e.classed(\"canvas-path\",!0),t.beginPath(),t.moveTo(0,0);var a=new Path2D(e.attr(\"d\"));t.strokeStyle=e.attr(\"stroke\"),t.fillStyle=e.attr(\"fill\"),t.lineWidth=1.25,t.globalCompositeOperation=\"source-over\",t.globalAlpha=e.attr(\"stroke-opacity\")||.3,t.stroke(a),t.globalAlpha=e.attr(\"fill-opacity\")||.45,t.fill(a),t.globalAlpha=1,t.closePath()}function s(t,e){return e?t<e[0]?e[0]:t>e[1]?e[1]:t:t}function l(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.addClass(t,e)}))}function c(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.removeClass(t,e)}))}function h(t,e,a){return(a?l:c).call(null,t,e)}function d(t,e,a){e&&c(t,e),a&&l(t,a)}function u(t,e,a){return void 0===a?L.DomUtil.getStyle(t,e):t.style.setProperty(e,a)}function _(t,e,a,i){return u(t,e,i?a:\"\")}function p(t,e,a,i){return t[i?\"on\":\"off\"](e,a)}function m(t,e,a,i){var n=L.DomUtil.create(t,e||\"\");return a&&v(n,a),i&&f(i,n),n}function f(t,e){return t.appendChild(e)}function g(t,e,a){return t.insertAdjacentElement(a,e)}function v(t,e){for(var a in e)t.setAttribute(a,e[a])}function y(t,e){return(e||document).querySelector(t)}var x=L.DomEvent.on,b=L.DomEvent.off,k=L.DomUtil.hasClass;function w(){return Math.random().toString(36).substr(2,9)}function M(t,e){for(var a in t)e(t[a],a)}var C=Object.freeze({__proto__:null,formatTime:i,saveFile:n,lazyLoader:r,drawCanvas:o,clamp:s,addClass:l,removeClass:c,toggleClass:h,replaceClass:d,style:u,toggleStyle:_,toggleEvent:p,create:m,append:f,insert:g,setAttributes:v,select:y,on:x,off:b,hasClass:k,randomId:w,each:M}),A={lightblue:{area:\"#3366CC\",alpha:.45,stroke:\"#3366CC\"},magenta:{area:\"#FF005E\"},yellow:{area:\"#FF0\"},purple:{area:\"#732C7B\"},steelblue:{area:\"#4682B4\"},red:{area:\"#F00\"},lime:{area:\"#9CC222\",line:\"#566B13\"}},S=function(t){t.width;var e=t.height,a=t.xAttr,i=t.yAttr,n=t.scaleX,r=t.scaleY,o=t.interpolation,s=void 0===o?\"curveLinear\":o;return d3.area().curve(\"string\"==typeof s?d3[s]:s).x((function(t){return t.xDiagCoord=n(t[a])})).y0(e).y1((function(t){return r(t[i])}))},z=function(t){var e=t.name,a=t.color,i=t.strokeColor,n=t.strokeOpacity,r=t.fillOpacity,o=d3.create(\"svg:path\");return e&&o.classed(e,!0),o.style(\"pointer-events\",\"none\"),o.attr(\"fill\",a||\"#3366CC\").attr(\"stroke\",i||\"#000\").attr(\"stroke-opacity\",n||\"1\").attr(\"fill-opacity\",r||\"0.8\"),o},D=function(t){var e=t.type,a=void 0===e?\"axis\":e,i=t.tickSize,n=void 0===i?6:i,r=t.tickPadding,o=void 0===r?3:r,s=t.position,l=t.height,c=t.width,h=t.axis,d=t.scale,u=t.ticks,_=t.tickFormat,p=t.label,m=t.labelX,f=t.labelY,g=t.name,v=void 0===g?\"\":g,y=t.onAxisMount;return function(t){var e=0,i=0;\"bottom\"==s&&(i=l),\"right\"==s&&(e=c),\"x\"==h&&\"grid\"==a?n=-l:\"y\"==h&&\"grid\"==a&&(n=-c);var r=d3[\"axis\"+s.replace(/\\b\\w/g,(function(t){return t.toUpperCase()}))]().scale(d).ticks(u).tickPadding(o).tickSize(n).tickFormat(_),g=t.append(\"g\").attr(\"class\",[h,a,s,v].join(\" \")).attr(\"transform\",\"translate(\"+e+\",\"+i+\")\").call(r);return p&&g.append(\"svg:text\").attr(\"x\",m).attr(\"y\",f).text(p),y&&g.call(y),g}},F=function(t){return t.type=\"grid\",D(t)},E=function(t){var e=t.theme,a=t.xCoord,i=void 0===a?0:a,n=t.yCoord,r=void 0===n?0:n,o=t.labels,s=void 0===o?{}:o,l=t.item,c=void 0===l?{}:l,h=t.length,d=void 0===h?0:h;return function(t){t.attr(\"class\",\"height-focus-group\");var a,n=t.select(\".height-focus.line\"),o=t.select(\".height-focus.circle-lower\"),l=t.select(\".height-focus-label\");return n.node()||(n=t.append(\"svg:line\")),o.node()||(o=t.append(\"svg:circle\")),l.node()||(l=t.append(\"svg:text\")),isNaN(i)||isNaN(r)||(o.attr(\"class\",e+\" height-focus circle-lower\").attr(\"transform\",\"translate(\"+i+\",\"+r+\")\").attr(\"r\",6).attr(\"cx\",0).attr(\"cy\",0),n.attr(\"class\",e+\" height-focus line\").attr(\"x1\",i).attr(\"x2\",i).attr(\"y1\",r).attr(\"y2\",d),l.attr(\"class\",e+\" height-focus-label\").style(\"pointer-events\",\"none\").attr(\"x\",i+5).attr(\"y\",d),Object.keys(s).sort((function(t,e){return s[t].order-s[e].order})).forEach((function(t){(a=l.select(\".height-focus-\"+s[t].name)).size()||(a=l.append(\"svg:tspan\").attr(\"class\",\"height-focus-\"+s[t].name).attr(\"dy\",\"1.5em\")),a.text(\"function\"!=typeof s[t].value?s[t].value:s[t].value(c))})),l.select(\"tspan\").attr(\"dy\",l.selectAll(\"tspan\").size()>1?\"-1.5em\":\"0em\"),l.selectAll(\"tspan\").attr(\"x\",i+5)),t}},T=function(t){var e=t.name,a=t.label,i=t.width,n=t.height,r=t.margins,o=void 0===r?{}:r,s=t.color,l=t.path;return function(t){return t.attr(\"class\",\"legend-item legend-\"+e.toLowerCase()).attr(\"data-name\",e),t.on(\"click.legend\",(function(){return d3.select(t.node().ownerSVGElement||t).dispatch(\"legend_clicked\",{detail:{path:l.node(),name:e,legend:t.node(),enabled:!l.classed(\"leaflet-hidden\")}})})),t.append(\"svg:rect\").attr(\"x\",i/2-50).attr(\"y\",n+o.bottom/2).attr(\"width\",50).attr(\"height\",10).attr(\"fill\",s).attr(\"stroke\",\"#000\").attr(\"stroke-opacity\",\"0.5\").attr(\"fill-opacity\",\"0.25\"),t.append(\"svg:text\").text(L._(a||e)).attr(\"x\",i/2+5).attr(\"font-size\",10).style(\"text-decoration-thickness\",\"2px\").style(\"font-weight\",\"700\").attr(\"y\",n+o.bottom/2).attr(\"dy\",\"0.75em\"),t}},I=function(t){var e=t.xCoord,a=t.yCoord,i=t.width,n=t.height,r=t.labels,o=void 0===r?{}:r,s=t.item,l=void 0===s?{}:s;return function(t){var r=t.select(\".mouse-focus-line\"),s=t.select(\".mouse-focus-label\");r.node()||(r=t.append(\"svg:line\")),s.node()||(s=t.append(\"g\"));var c=s.select(\".mouse-focus-label-rect\"),h=s.select(\".mouse-focus-label-text\");c.node()||(c=s.append(\"svg:rect\")),h.node()||(h=s.append(\"svg:text\"));var d,u=0,_=0,p={width:0,height:0};try{p=h.node().getBBox()}catch(e){return t}return e&&(u=e+(e<i/2?10:-p.width-10)),a&&(_=Math.max(a-p.height,L.Browser.webkit?0:-1/0)),r.attr(\"class\",\"mouse-focus-line\").attr(\"x2\",e).attr(\"y2\",0).attr(\"x1\",e).attr(\"y1\",n),s.attr(\"class\",\"mouse-focus-label\"),c.attr(\"class\",\"mouse-focus-label-rect\").attr(\"x\",u-5).attr(\"y\",_-5).attr(\"width\",p.width+10).attr(\"height\",p.height+10).attr(\"rx\",3).attr(\"ry\",3),h.attr(\"class\",\"mouse-focus-label-text\").style(\"font-weight\",\"700\").attr(\"y\",_),Object.keys(o).sort((function(t,e){return o[t].order-o[e].order})).forEach((function(t){(d=h.select(\".mouse-focus-label-\"+o[t].name)).size()||(d=h.append(\"svg:tspan\",\".mouse-focus-label-x\").attr(\"class\",\"mouse-focus-label-\"+o[t].name).attr(\"dy\",\"1.5em\")),d.text(\"function\"!=typeof o[t].value?o[t].value:o[t].value(l))})),h.select(\"tspan\").attr(\"dy\",\"1em\"),h.selectAll(\"tspan\").attr(\"x\",u),t}},O=function(t){var e=t.height,a=t.width;return function(t){t.data([{x:0,y:e}]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"}));var i=t.selectAll(\".horizontal-drag-rect\").data([{w:a}]),n=t.selectAll(\".horizontal-drag-line\").data([{w:a}]),r=t.selectAll(\".horizontal-drag-label\").data([{w:a-8}]),o=t.selectAll(\".horizontal-drag-symbol\").data([{type:d3.symbolTriangle,x:a+7,y:0,angle:-90,size:50}]);return i.exit().remove(),n.exit().remove(),r.exit().remove(),o.exit().remove(),i.enter().append(\"svg:rect\").attr(\"class\",\"horizontal-drag-rect\").attr(\"x\",0).attr(\"y\",-8).attr(\"height\",8).attr(\"fill\",\"none\").attr(\"pointer-events\",\"all\").merge(i).attr(\"width\",(function(t){return t.w})),n.enter().append(\"svg:line\").attr(\"class\",\"horizontal-drag-line\").attr(\"x1\",0).merge(n).attr(\"x2\",(function(t){return t.w})),r.enter().append(\"svg:text\").attr(\"class\",\"horizontal-drag-label\").attr(\"text-anchor\",\"end\").attr(\"y\",-8).merge(r).attr(\"x\",(function(t){return t.w})),o.enter().append(\"svg:path\").attr(\"class\",\"horizontal-drag-symbol\").merge(o).attr(\"d\",d3.symbol().type((function(t){return t.type})).size((function(t){return t.size}))).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\") rotate(\"+t.angle+\")\"})),t}},N=function(t){var e=t.point,a=t.height,i=t.width,n=t.x,r=t.y;return function(t){return isNaN(n)||isNaN(r)||(e.item&&e.item.property(\"isConnected\")||(e.position=e.position||\"bottom\",e.item=t.append(\"g\"),e.item.append(\"svg:line\").attr(\"y1\",0).attr(\"x1\",0).attr(\"style\",\"stroke: rgb(51, 51, 51); stroke-width: 0.5; stroke-dasharray: 2, 2;\"),e.item.append(\"svg:circle\").attr(\"class\",\" height-focus circle-lower\").attr(\"r\",3),e.label&&e.item.append(\"svg:text\").attr(\"dx\",\"4px\").attr(\"dy\",\"-4px\")),e.item.datum({pos:e.position,x:n,y:r}).attr(\"class\",(function(t){return\"point \"+t.pos})).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})),e.item.select(\"line\").datum({y2:{top:-r,bottom:a-r}[e.position],x2:{left:-n,right:i-n}[e.position]||0}).attr(\"y2\",(function(t){return t.y2})).attr(\"x2\",(function(t){return t.x2})),e.label&&e.item.select(\"text\").text(e.label)),t}},P=function(t){var e=t.min,a=t.max,i=t.attr,n=t.name,r=t.forceBounds,o=t.scale;return function(t){i=i||n,o&&o.attr&&(i=o.attr);var s=t&&t.length?d3.extent(t,(function(t){return t[i]})):[0,1];return void 0!==e&&(e<s[0]||r)&&(s[0]=e),void 0!==a&&(a>s[1]||r)&&(s[1]=a),s}},B=function(t){var e=t.axis;return function(t,a){return\"x\"==e?[0,t]:\"y\"==e?[a,0]:void 0}},G=function(t){var e=t.data,a=t.attr,i=t.min,n=t.max,r=t.forceBounds,o=t.range;return d3.scaleLinear().range(o).domain(P({min:i,max:n,attr:a,forceBounds:r})(e))},H=function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=(t.ruler,e-n.left-n.right),o=a-n.top-n.bottom,s=d3.create(\"svg:svg\").attr(\"class\",\"background\"),l=s.append(\"g\"),c={grid:l.append(\"g\").attr(\"class\",\"grid\"),area:l.append(\"g\").attr(\"class\",\"area\"),axis:l.append(\"g\").attr(\"class\",\"axis\"),point:l.append(\"g\").attr(\"class\",\"point\"),brush:l.append(\"g\").attr(\"class\",\"brush\"),tooltip:l.append(\"g\").attr(\"class\",\"tooltip\").attr(\"display\",\"none\"),ruler:l.append(\"g\").attr(\"class\",\"ruler\"),legend:l.append(\"g\").attr(\"class\",\"legend\")},h=c.area.append(\"svg:mask\").attr(\"id\",\"elevation-clipper\").attr(\"fill-opacity\",1),d=h.append(\"svg:rect\").attr(\"class\",\"zoom\").attr(\"fill\",\"white\"),u=c.area.append(\"svg:foreignObject\").attr(\"mask\",\"url(#\"+h.attr(\"id\")+\")\"),_=u.append(\"xhtml:canvas\").attr(\"class\",\"canvas-plot\"),p=_.node().getContext(\"2d\");c.tooltip.call(I({xCoord:0,yCoord:0,height:o,width:r,labels:{}}));var m=d3.brushX().on(\"start.cursor end.cursor brush.cursor\",(function(){return c.brush.select(\".overlay\").attr(\"cursor\",null)})),f={mask:h,canvas:_,context:p,brush:m},g={svg:s,g:l,panes:c,utils:f,scale:function(t){return{x:G(t.x),y:G(t.y)}},_resize:function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=t.ruler,o=e-n.left-n.right,h=a-n.top-n.bottom;s.attr(\"viewBox\",\"0 0 \".concat(e,\" \").concat(a)).attr(\"width\",e).attr(\"height\",a),l.attr(\"transform\",\"translate(\"+n.left+\",\"+n.top+\")\"),/Mac|iPod|iPhone|iPad/.test(navigator.platform)&&/AppleWebkit/i.test(navigator.userAgent)&&_.style(\"transform\",\"translate(\"+n.left+\"px,\"+n.top+\"px)\"),d.attr(\"x\",0).attr(\"y\",0).attr(\"width\",o).attr(\"height\",h),u.attr(\"width\",o).attr(\"height\",h),_.attr(\"width\",o).attr(\"height\",h),r&&c.ruler.call(O({height:h,width:o})),c.brush.call(m.extent([[0,0],[o,h]])),c.brush.select(\".overlay\").attr(\"cursor\",null),g._width=o,g._height=h,g.svg.dispatch(\"resize\",{detail:{width:o,height:h}})},pane:function(t){return c[t]||(c[t]=l.append(\"g\").attr(\"class\",t)),c[t]},get:function(t){return f[t]}};return g._resize({width:e,height:a,margins:n}),g},X=Object.freeze({__proto__:null,Colors:A,Area:S,Path:z,Axis:D,Grid:F,PositionMarker:E,LegendItem:T,Tooltip:I,Ruler:O,CheckPoint:N,Domain:P,Range:B,Scale:G,Bisect:function(t){var e=t.data,a=void 0===e?[0,1]:e,i=t.scale,n=t.x,r=t.attr;return d3.bisector((function(t){return t[r]})).left(a,i.invert(n))},Chart:H}),U=L.Class.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,initialize:function(t,e){var a=this;this.options=t,this.control=e,this._data=[],this._props={scales:{},paths:{},areas:{},grids:{},axes:{},legendItems:{},tooltipItems:{}},this._scales={},this._domains={},this._ranges={},this._paths={},this._brushEnabled=t.dragging,this._zoomEnabled=t.zooming;var i=this._chart=H(t);this._container=i.svg;this._grid=i.pane(\"grid\"),this._area=i.pane(\"area\"),this._point=i.pane(\"point\"),this._axis=i.pane(\"axis\"),this._legend=i.pane(\"legend\"),this._tooltip=i.pane(\"tooltip\"),this._ruler=i.pane(\"ruler\"),this._initScale(),this._mask=i.get(\"mask\"),this._context=i.get(\"context\"),this._brush=i.get(\"brush\"),this._zoom=d3.zoom(),this._drag=d3.drag(),this._initInteractions(),this._maskGaps=[],e.on(\"eletrack_added\",(function(t){a._maskGaps.push(t.index),e.once(\"eledata_updated\",(function(t){return a._maskGaps.push(t.index)}))}))},update:function(t){return t&&(t.data&&(this._data=t.data),t.options&&(this.options=t.options)),this._updateScale(),this._updateArea(),this._updateAxis(),this._updateLegend(),this._updateClipper(),this},render:function(){var t=this;return function(e){return e.append((function(){return t._container.node()}))}},clear:function(){this._resetDrag(),this._hideDiagramIndicator(),this._area.selectAll(\"path\").attr(\"d\",\"M0 0\"),this._context.clearRect(0,0,this._width(),this._height()),this._maskGaps=[],this._mask.selectAll(\".gap\").remove()},_drawPath:function(t){var e=this._paths[t],a=this._props.areas[t];e.datum(this._data).attr(\"d\",S(L.extend({},a,{width:this._width(),height:this._height(),scaleX:this._scales[a.scaleX],scaleY:this._scales[a.scaleY]}))),e.classed(\"leaflet-hidden\")||(this.options.preferCanvas?o(this._context,e):this._area.append((function(){return e.node()})))},_hasActiveLayers:function(){var t=this._paths;for(var e in t)if(!t[e].classed(\"leaflet-hidden\"))return!0;return!1},_initBrush:function(t){var e=this,a=function(t){if(e._data.length&&(\"brush\"!=t.type||t.sourceEvent)){var a=e._chart.panes.brush.select(\".overlay\").node(),i=d3.pointers(t,a)[0][0],n=e._data[e._findIndexForXCoord(i)];e.fire(\"mouse_move\",{item:n,xCoord:i})}};this._brush.filter((function(t){return e._brushEnabled&&!t.shiftKey&&!t.button})).on(\"end.update\",(function(t){if(e._data.length){var a=t.selection;if(a){var i=e._findIndexForXCoord(a[0]),n=e._findIndexForXCoord(a[1]);e.fire(\"dragged\",{dragstart:e._data[i],dragend:e._data[n]})}}})).on(\"brush.update\",a),this._chart.panes.brush.on(\"mouseenter.focus touchstart.focus\",this.fire.bind(this,\"mouse_enter\")).on(\"mouseout.focus touchend.focus\",this.fire.bind(this,\"mouse_out\")).on(\"mousemove.focus touchmove.focus\",a)},_initClipper:function(){var t=this,e=this._container,a=this.options.margins,i=this._zoom;i.scaleExtent([1,10]).extent([[a.left,0],[this._width()-a.right,this._height()]]).translateExtent([[a.left,-1/0],[this._width()-a.right,1/0]]).filter((function(e){return t._zoomEnabled&&(e.shiftKey||4==e.buttons)})).on(\"start\",(function(a){a.sourceEvent&&\"mousedown\"==a.sourceEvent.type&&e.style(\"cursor\",\"grabbing\"),1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!0),t._mask&&t._point.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")),t.zooming=!0})).on(\"end\",(function(a){1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!1),t._mask&&t._point.attr(\"mask\",null)),t.zooming=!1,e.style(\"cursor\",\"\")})).on(\"zoom\",(function(e){t.zooming=!1,t._updateScale(),t.zooming=!0,t._scales.distance=t._x=e.transform.rescaleX(t._x),t._scales.time&&(t._scales.time=e.transform.rescaleX(t._scales.time)),t._resetDrag(),e.sourceEvent&&\"mousemove\"==e.sourceEvent.type&&t._hideDiagramIndicator(),t.fire(\"zoom\")})),e.call(i)},_initInteractions:function(){this._initBrush(),this._initRuler(),this._initClipper(),this._initLegend()},_initLegend:function(){var t=this;this._container.on(\"legend_clicked\",(function(e){var a=e.detail,i=a.path,n=a.legend,r=a.name,o=a.enabled;if(i){var s=y(\"text\",n),l=y(\"rect\",n);_(s,\"text-decoration-line\",\"line-through\",o),_(l,\"fill-opacity\",\"0\",o),h(i,\"leaflet-hidden\",o),t._updateArea(),t.fire(\"elepath_toggle\",{path:i,name:r,legend:n,enabled:o})}}))},_initRuler:function(){var t=this;if(this.options.ruler){var e=d3.format(\".0f\"),a=this._drag;a.on(\"start end\",(function(e,a){var i=t._height(),n=t._ruler.data()[0].y;(n>=i||n<=0)&&t._ruler.select(\".horizontal-drag-label\").text(\"\"),t._hideDiagramIndicator()})).on(\"drag\",(function(a,i){var n=t._height(),r=d3.pointers(a,t._area.node())[0][1],o=r>0?r<n?r:n:0,s=t._y.invert(o),l=L.extend(t._ruler.data()[0],{y:o});t._ruler.data([l]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})).classed(\"active\",o<n),t._container.select(\".horizontal-drag-label\").text(e(s)+\" \"+(t.options.imperial?\"ft\":\"m\")),t.fire(\"ruler_filter\",{coords:r<n&&r>0?t._findCoordsForY(r):[]})})),this._ruler.call(a)}},_initScale:function(){var t=this.options;this._registerAxisScale({axis:\"x\",position:\"bottom\",attr:t.xAttr,min:t.xAxisMin,max:t.xAxisMax,name:\"distance\"}),this._registerAxisScale({axis:\"y\",position:\"left\",attr:t.yAttr,min:t.yAxisMin,max:t.yAxisMax,name:\"altitude\"}),this._x=this._scales.distance,this._y=this._scales.altitude},_registerAreaPath:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options;t.xAttr||(t.xAttr=e.xAttr),t.yAttr||(t.yAttr=e.yAttr),void 0===t.preferCanvas&&(t.preferCanvas=e.preferCanvas);var a=z(t);this._paths[t.name]=a,this._props.areas[t.name]=t,e.legend&&(this._props.legendItems[t.name]={name:t.name,label:t.label,color:t.color,path:a})},_registerAxisGrid:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x),this._props.grids[t.name||t.axis]=t},_registerAxisScale:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options,a=t.scale;if(\"function\"==typeof this._scales[t.name])t.scale=this._scales[t.name];else if(\"function\"!=typeof a){(a=L.extend({data:this._data,forceBounds:e.forceAxisBounds},a)).attr=a.attr||t.name;var i=this._domains[t.name]=P(t),n=this._ranges[t.name]=B(t);a.range=a.range||n(this._width(),this._height()),a.domain=a.domain||i(this._data),this._props.scales[t.name]=a,t.scale=this._scales[t.name]=G(a)}return t.ticks||(\"x\"==t.axis?t.ticks=e.xTicks:\"y\"==t.axis&&(t.ticks=e.yTicks)),this._props.axes[t.name]=t,a},_registerCheckPoint:function(t){var e,a,i;this._data.length&&(t.latlng?(e=this._data[this._findIndexForLatLng(t.latlng)],a=this._x(e.dist),i=this._y(e.z)):isNaN(t.dist)||(a=this._x(t.dist),e=this._data[this._findIndexForXCoord(a)],i=this._y(e.z)),this._point.call(N({point:t,width:this._width(),height:this._height(),x:a,y:i})))},_registerTooltip:function(t){var e;t.order=null!==(e=t.order)&&void 0!==e?e:100,this._props.tooltipItems[t.name]=t},_updateArea:function(){var t=this._paths;for(var e in this._context.clearRect(0,0,this._width(),this._height()),t)t[e].classed(\"leaflet-hidden\")||this._drawPath(e)},_updateAxis:function(){var t=this.options;this._grid.selectAll(\"g\").remove(),this._axis.selectAll(\"g\").remove();var e,a,i,n=this._props.grids,r=this._props.axes,o={width:this._width(),height:this._height(),tickFormat:\"\"},s={width:this._width(),height:this._height()};for(var l in n)e=L.extend({},o,n[l]),i=F(e),this._grid.call(i);for(var c in r)!1!==t[c]&&\"summary\"!==t[c]&&(e=L.extend({},s,r[c]),a=D(e),this._axis.call(a));this._axis.selectAll(\".y.axis.right\").each((function(t,e,a){var i=d3.select(a[e]),n=i.attr(\"transform\"),r=n.substring(n.indexOf(\"(\")+1,n.indexOf(\")\")).split(\",\");i.attr(\"transform\",\"translate(\"+(+r[0]+40*e)+\",\"+r[1]+\")\"),e>0&&(i.select(\":scope > path\").attr(\"opacity\",.25),i.selectAll(\":scope > .tick line\").attr(\"opacity\",.75))}))},_updateClipper:function(){var t=this,e=this.options.margins;this._zoom.scaleExtent([1,10]).extent([[e.left,0],[this._width()-e.right,this._height()]]).translateExtent([[e.left,-1/0],[this._width()-e.right,1/0]]),this._mask.selectAll(\".gap\").remove(),this._maskGaps.forEach((function(e,a){if(!(a>=t._maskGaps.length-2)){var i=t._data[t._maskGaps[a]],n=t._data[t._maskGaps[a+1]],r=t._x(t._data[t._findIndexForLatLng(i.latlng)].dist),o=t._x(t._data[t._findIndexForLatLng(n.latlng)].dist);t._mask.append(\"rect\").attr(\"x\",r).attr(\"y\",0).attr(\"width\",o-r).attr(\"height\",t._height()).attr(\"class\",\"gap\").attr(\"fill-opacity\",\"0.8\").attr(\"fill\",\"black\")}}))},_updateLegend:function(){var t=this;if(!1!==this.options.legend){var e,a=this._props.legendItems;for(var i in this._legend.selectAll(\"g\").remove(),a)e=T(L.extend({width:this._width(),height:this._height(),margins:this.options.margins},a[i])),this._legend.append(\"g\").call(e);var n=this._legend.selectAll(\".legend-item\"),r=n.nodes().length,o=Array(Math.floor(r/2)).fill(null).map((function(t,e){return 2*(e+1)-(1-Math.sign(r%2))})),s=o.slice().reverse().map((function(t){return-t}));r%2!=0&&s.push(0),o=s.concat(o);var l=this._axis.selectAll(\".x.axis.bottom\").nodes().length,c=30+2*l,h=30*r;r&&this.options.margins.right<h&&(this.options.margins.right=h,this.fire(\"margins_updated\")),l&&this.options.margins.bottom<c&&(this.options.margins.bottom=c,this.fire(\"margins_updated\")),n.each((function(e,a,i){var n=d3.select(i[a]),r=(n.select(\"rect\"),n.attr(\"data-name\")),s=t._paths[r],c=55*o[a],h=2*l;n.attr(\"transform\",\"translate(\"+c+\", \"+h+\")\"),r in t.options&&\"disabled\"==t.options[r]&&(s.classed(\"leaflet-hidden\",!0),n.select(\"text\").style(\"text-decoration-line\",\"line-through\"),n.select(\"rect\").style(\"fill-opacity\",\"0\")),t._mask&&s.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")}))}},_updateScale:function(){if(this.zooming)return{x:this._x,y:this._y};for(var t in this._scales)this._scales[t].domain(this._domains[t](this._data)).range(this._ranges[t](this._width(),this._height()));return{x:this._x,y:this._y}},_width:function(){return this._chart._width},_height:function(){return this._chart._height},_findCoordsForY:function(t){var e,a=this._data,i=this._y.invert(t),n=a.reduce((function(t,e,a){return e.z>=i&&t.push(a),t}),[]),r=0;return n.reduce((function(t,i,o){return n[e=o+1]===n[o]+1&&e!==n.length||(t.push(n.slice(r,e).map((function(t){return a[t].latlng}))),r=e),t}),[])},_findIndexForXCoord:function(t){var e=this;return d3.bisector((function(t){return t[e.options.xAttr]})).left(this._data||[0,1],this._x.invert(t))},_findIndexForLatLng:function(t){var e=null,a=1/0;return this._data.forEach((function(i,n){var r=t.distanceTo(i.latlng);r<a&&(a=r,e=n)})),e},_resetDrag:function(){this._chart.panes.brush.select(\".selection\").attr(\"width\")&&(this._chart.panes.brush.call(this._brush.clear),this._hideDiagramIndicator(),this.fire(\"reset_drag\"))},_resetZoom:function(){this._zoom&&this._zoom.transform(this._chart.svg,d3.zoomIdentity)},_showDiagramIndicator:function(t,e){this._tooltip.attr(\"display\",null).call(I({xCoord:e,yCoord:this._y(t[this.options.yAttr]),height:this._height(),width:this._width(),labels:this._props.tooltipItems,item:t}))},_hideDiagramIndicator:function(){this._tooltip.attr(\"display\",\"none\")}});function j(t){return(j=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var R,J=L.Class.extend({initialize:function(t){switch(this.options=t,this.options.marker){case\"elevation-line\":break;case\"position-marker\":this._marker=L.marker([0,0],{icon:this.options.markerIcon,zIndexOffset:1e6,interactive:!1})}return this._labels={},this},addTo:function(t){switch(this._map=t,this.options.marker){case\"elevation-line\":this._container=d3.select(t.getPane(\"elevationPane\")).select(\"svg > g\").call(E({}));break;case\"position-marker\":this._marker.addTo(t,{pane:\"overlayPane\"})}return this},update:function(t){if(t?this._props=t:t=this._props,t)switch(t.options&&(this.options=t.options),this._map||this.addTo(t.map),this._latlng=t.item.latlng,this.options.marker){case\"elevation-line\":if(this._container){var e=this._map.latLngToLayerPoint(this._latlng);e=L.extend({},t.item,this._map._rotate?this._map.rotatedPointToMapPanePoint(e):e),this._container.classed(\"leaflet-hidden\",!1),this._container.call(E({theme:this.options.theme,xCoord:e.x,yCoord:e.y,length:e.y-this._height()/t.maxElevation*e.z,labels:this._labels,item:e}))}break;case\"position-marker\":c(this._marker.getElement(),\"leaflet-hidden\"),this._marker.setLatLng(this._latlng)}},remove:function(){switch(this._props=null,this.options.marker){case\"elevation-line\":this._container&&this._container.classed(\"leaflet-hidden\",!0);break;case\"position-marker\":l(this._marker.getElement(),\"leaflet-hidden\")}},getLatLng:function(){return this._latlng},_height:function(){var t=this.options;return t.height-t.margins.top-t.margins.bottom},_registerTooltip:function(t){this._labels[t.name]=t}}),Y=L.Class.extend({initialize:function(t,e){this.options=t,this.control=e,this.labels={},u(this._container=m(\"div\",\"elevation-summary \"+(t.summary?t.summary+\"-summary\":\"\")),\"max-width\",t.width?t.width+\"px\":\"\")},render:function(){var t=this;return function(e){return e.append((function(){return t._container}))}},reset:function(){this._container.innerHTML=\"\"},append:function(t,e,a){return this._container.innerHTML+='<span class=\"'.concat(t,'\"><span class=\"summarylabel\">').concat(e,'</span><span class=\"summaryvalue\">').concat(a,\"</span></span>\"),this},update:function(){var t=this;Object.keys(this.labels).sort((function(e,a){return t.labels[e].order-t.labels[a].order})).forEach((function(e){t.append(e,L._(t.labels[e].label),\"function\"!=typeof t.labels[e].value?t.labels[e].value:t.labels[e].value(t.control.track_info))}))},_registerSummary:function(t){for(var e in t){var a;t[e].order=null!==(a=t[e].order)&&void 0!==a?a:100,this.labels[e]=t[e]}}}),V={autofitBounds:!0,autohide:!L.Browser.mobile,autohideMarker:!0,almostover:!0,altitude:!0,collapsed:!1,detached:!0,distance:!0,distanceMarkers:{lazy:!0,distance:!0,direction:!0},decimalsX:2,decimalsY:0,dragging:!L.Browser.mobile,downloadLink:\"link\",elevationDiv:\"#elevation-div\",followMarker:!0,forceAxisBounds:!1,height:200,imperial:!1,interpolation:\"curveLinear\",lazyLoadJS:!0,legend:!0,margins:{top:30,right:30,bottom:30,left:40},marker:\"elevation-line\",markerIcon:L.divIcon({className:\"elevation-position-marker\",html:'<i class=\"elevation-position-icon\"></i>',iconSize:[32,32],iconAnchor:[16,16]}),position:\"topright\",polyline:{className:\"elevation-polyline\",color:\"#000\",opacity:.75,weight:5,lineCap:\"round\"},polylineSegments:{className:\"elevation-polyline-segments\",color:\"#F00\",interactive:!1},preferCanvas:!1,reverseCoords:!1,ruler:!0,skipNullZCoords:!1,theme:\"lightblue-theme\",summary:\"inline\",slope:!1,slopeDeltaMax:void 0,slopeRange:void 0,speed:!1,speedDeltaMax:void 0,speedRange:void 0,time:!1,timeFactor:3600,timeFormat:!1,timestamps:!1,width:600,waypoints:!0,wptIcons:{\"\":L.divIcon({className:\"elevation-waypoint-marker\",html:'<i class=\"elevation-waypoint-icon default\"></i>',iconSize:[30,30],iconAnchor:[8,30]})},wptLabels:!0,xAttr:\"dist\",xLabel:\"km\",xTicks:void 0,yAttr:\"z\",yAxisMax:void 0,yAxisMin:void 0,yLabel:\"m\",yTicks:void 0,zFollow:!1,zooming:!L.Browser.Mobile},W=L.Control.Elevation=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:V,__mileFactor:.621371,__footFactor:3.28084,__D3:\"https://unpkg.com/d3@6.5.0/dist/d3.min.js\",__TOGEOJSON:\"https://unpkg.com/@tmcw/togeojson@4.5.0/dist/togeojson.umd.js\",__LGEOMUTIL:\"https://unpkg.com/leaflet-geometryutil@0.9.3/src/leaflet.geometryutil.js\",__LALMOSTOVER:\"https://unpkg.com/leaflet-almostover@1.0.1/src/leaflet.almostover.js\",__LDISTANCEM:\"https://unpkg.com/@raruto/leaflet-elevation@1.9.6/libs/leaflet-distance-marker.min.js\",addData:function(t,e){var a=this;this.lazyLoad(this.__D3).then((function(){void 0===e&&t.on&&(e=t),a._addData(t),a._addLayer(e),a._fireEvt(\"eledata_added\",{data:t,layer:e,track_info:a.track_info})}))},addTo:function(t){if(this.options.detached){var e=this._initElevationDiv();e.isConnected||g(t.getContainer(),e,\"afterend\"),f(e,this.onAdd(t))}else L.Control.prototype.addTo.call(this,t);return this},clear:function(){this._marker&&this._marker.remove(),this._chart&&this._clearChart(),this._layers&&this._clearLayers(),this._markers&&this._clearMarkers(),this._data=[],this.track_info={},this._fireEvt(\"eledata_clear\"),this._updateChart()},_clearChart:function(){var t=this;this._events&&this._events.elechart_updated&&this._events.elechart_updated.forEach((function(e){return t.off(\"elechart_updated\",e.fn,e.ctx)})),this._chart&&this._chart._container&&(this._chart._container.selectAll(\"g.point .point\").remove(),this._chart.clear())},_clearLayers:function(){this._layers&&this._layers.eachLayer&&(this._layers.eachLayer((function(t){return t.remove()})),this._layers.clearLayers())},_clearMarkers:function(){this._markers&&this._markers.eachLayer&&(this._markers.eachLayer((function(t){return t.remove()})),this._markers.clearLayers())},disableBrush:function(){this._chart._brushEnabled=!1,this._resetDrag()},enableBrush:function(){this._chart._brushEnabled=!0},disableZoom:function(){this._chart._zoomEnabled=!1,this._chart._resetZoom()},enableZoom:function(){this._chart._zoomEnabled=!0},fitBounds:function(t){t=t||this.getBounds(),this._map&&t.isValid()&&this._map.fitBounds(t)},getBounds:function(t){return t=t||this._data,L.latLngBounds(t.map((function(t){return t.latlng})))},getZFollow:function(){return this.options.zFollow},hide:function(){u(this._container,\"display\",\"none\")},initialize:function(t){this._data=[],this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._markedSegments=L.polyline([]),this._chartEnabled=!0,this.track_info={},this.handlers=[],L.setOptions(this,t),this.options.followMarker&&(this._setMapView=L.Util.throttle(this._setMapView,300,this)),this.options.legend&&(this.options.margins.bottom+=30),this.options.theme&&(this.options.polylineSegments.className+=\" \"+this.options.theme),!0===this.options.wptIcons&&(this.options.wptIcons=V.wptIcons),!0===this.options.distanceMarkers&&(this.options.distanceMarkers=V.distanceMarkers),this._markedSegments.setStyle(this.options.polylineSegments),L.extend(A,this.options.colors||{}),this._fixCanvasPaths(),this._fixTooltipSize()},lazyLoad:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\";if(!this.options.lazyLoadJS)return Promise.resolve();switch(t){case this.__D3:a=\"_d3LazyLoader\",e=\"object\"!==(\"undefined\"==typeof d3?\"undefined\":j(d3));break;case this.__TOGEOJSON:a=\"_togeojsonLazyLoader\",e=\"object\"!==(\"undefined\"==typeof toGeoJSON?\"undefined\":j(toGeoJSON));break;case this.__LGEOMUTIL:a=\"_geomutilLazyLoader\",e=\"object\"!==j(L.GeometryUtil);break;case this.__LALMOSTOVER:a=\"_almostoverLazyLoader\",e=\"function\"!=typeof L.Handler.AlmostOver;break;case this.__LDISTANCEM:a=\"_distanceMarkersLazyLoader\",e=\"function\"!=typeof L.DistanceMarkers}return L.Control.Elevation[a]=r(t,e,L.Control.Elevation[a])},load:function(t){var e=this;this._parseFromString(t).then((function(a){return a?e._loadLayer(a):e._loadFile(t)}))},onAdd:function(t){var e=this;this._map=t;var a=this._container=m(\"div\",\"elevation-control elevation \"+this.options.theme+\" \"+(this.options.detached?\"\":\"leaflet-control\"));return this.lazyLoad(this.__D3).then((function(){e._initButton(a),e._initChart(a),e._initSummary(a),e._initMarker(t),e._initLayer(t),t.on(\"zoom viewreset zoomanim\",e._hideMarker,e).on(\"resize\",e._resetView,e).on(\"resize\",e._resizeChart,e).on(\"rotate\",e._rotateMarker,e).on(\"mousedown\",e._resetDrag,e),x(t.getContainer(),\"mousewheel\",e._resetDrag,e),x(t.getContainer(),\"touchstart\",e._resetDrag,e),x(document,\"keydown\",e._keydownHandler,e),e.on(\"eledata_added eledata_loaded\",e._updateChart,e).on(\"eledata_added eledata_loaded\",e._updateSummary,e),e._updateChart(),e._updateSummary()})),a},onRemove:function(t){this._container=null,t.off(\"zoom viewreset zoomanim\",this._hideMarker,this).off(\"resize\",this._resetView,this).off(\"resize\",this._resizeChart,this).off(\"mousedown\",this._resetDrag,this),b(t.getContainer(),\"mousewheel\",this._resetDrag,this),b(t.getContainer(),\"touchstart\",this._resetDrag,this),b(document,\"keydown\",this._keydownHandler,this),this.off(\"eledata_added eledata_loaded\",this._updateChart,this).off(\"eledata_added eledata_loaded\",this._updateSummary,this)},redraw:function(){this._resizeChart()},setZFollow:function(t){this.options.zFollow=t},show:function(){u(this._container,\"display\",\"block\")},_addData:function(t){var e=this;if(t){var a=t.geometry;if(a)switch(a.type){case\"LineString\":this._addGeoJSONData(a.coordinates);break;case\"MultiLineString\":M(a.coordinates,(function(t){return e._addGeoJSONData(t)}));break;default:console.warn(\"Unsopperted GeoJSON feature geometry type:\"+a.type)}\"FeatureCollection\"===t.type&&M(t.features,(function(t){return e._addData(t)})),t._latlngs&&this._addGeoJSONData(t._latlngs,t.feature&&t.feature.properties)}},_addGeoJSONData:function(t,e){var a=this;t.forEach((function(t,i){var n,r,o,s,l;t.meta=null!==(n=t.meta)&&void 0!==n?n:{time:null,ele:null,hr:null,cad:null,atemp:null};var c=e&&e.coordinateProperties||e;a.fire(\"elepoint_init\",{point:t,props:c,id:i}),a._addPoint(null!==(r=t.lat)&&void 0!==r?r:t[1],null!==(o=t.lng)&&void 0!==o?o:t[0],null!==(s=null!==(l=t.alt)&&void 0!==l?l:t.meta.ele)&&void 0!==s?s:t[2]),a.fire(\"elepoint_added\",{point:t,index:a._data.length-1})})),this.fire(\"eletrack_added\",{coords:t,index:this._data.length-1})},_addPoint:function(t,e,a){if(this.options.reverseCoords){var i=[e,t];t=i[0],e=i[1]}this._data.push({x:t,y:e,z:a,latlng:L.latLng(t,e,a)}),this.fire(\"eledata_updated\",{index:this._data.length-1})},_addLayer:function(t){t&&this._layers.addLayer(t),t&&this.options.distanceMarkers&&this.options.distanceMarkers.lazy&&t.on(\"add remove\",(function(t){return L.DistanceMarkers&&t.target instanceof L.Polyline&&t.target[t.type+\"DistanceMarkers\"]()}))},_addMarker:function(t){t&&this._markers.addLayer(t)},_initAlmostOverHandler:function(t,e){var a=this;t&&this.options.almostOver&&this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LALMOSTOVER)})).then((function(){t.addHandler(\"almostOver\",L.Handler.AlmostOver),L.GeometryUtil&&t.almostOver&&t.almostOver.enabled()&&(t.almostOver.addLayer(e),t.on(\"almost:move\",(function(t){return a._mousemoveLayerHandler(t)})).on(\"almost:out\",(function(t){return a._mouseoutHandler(t)})))}))},_initDistanceMarkers:function(t,e){var a=this;t&&(this.options.distanceMarkers?this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LDISTANCEM)})).then((function(){return a.options.polyline&&e.addTo(t)})):this.options.polyline&&e.addTo(t))},_initElevationDiv:function(){var t=y(this.options.elevationDiv);return t||(this.options.elevationDiv=\"#elevation-div_\"+w(),t=m(\"div\",\"leaflet-control elevation elevation-div\",{id:this.options.elevationDiv.substr(1)})),this.options.detached&&d(t,\"leaflet-control\",\"elevation-detached\"),this.eleDiv=t},_initMapIntegrations:function(t,e){var a=t._map;t._map?(a.once(\"layeradd\",(function(a){return t.options.autofitBounds&&t.fitBounds(e.getBounds())})),L.Browser.mobile?t.options.polyline&&e.addTo(a):(t._initAlmostOverHandler(a,e),t._initDistanceMarkers(a,e))):console.warn(\"Undefined elevation map object\")},_collapse:function(){d(this._container,\"elevation-expanded\",\"elevation-collapsed\")},_expand:function(){d(this._container,\"elevation-collapsed\",\"elevation-expanded\")},_fixCanvasPaths:function(){var t=L.Canvas.prototype._fillStroke,e=this;L.Canvas.include({_fillStroke:function(a,i){if(e._layers.hasLayer(i)){var n=e.options.theme.replace(\"-theme\",\"\"),r=A[n]||{},o=i.options;if(o.color=r.line||r.area||n,o.stroke=!!o.color,t.call(this,a,i),o.stroke&&0!==o.weight){var s=a.globalCompositeOperation||\"source-over\";a.globalCompositeOperation=\"destination-over\",a.strokeStyle=r.outline||\"#FFF\",a.lineWidth=1.75*o.weight,a.stroke(),a.globalCompositeOperation=s}}else t.call(this,a,i)}})},_fixTooltipSize:function(){var t=this;this.on(\"elechart_init\",(function(){return t.once(\"elechart_change elechart_hover\",(function(e){t._chartEnabled&&(t._chart._showDiagramIndicator(e.data,e.xCoord),t._chart._showDiagramIndicator(e.data,e.xCoord)),t._updateMarker(e.data)}))}))},_findItemForLatLng:function(t){return this._data[this._chart._findIndexForLatLng(t)]},_findItemForX:function(t){return this._data[this._chart._findIndexForXCoord(t)]},_fireEvt:function(t,e,a){this.fire&&this.fire(t,e,a),this._map&&this._map.fire(t,e,a)},_height:function(){if(this._chart)return this._chart._height();var t=this.options;return t.height-t.margins.top-t.margins.bottom},_hideMarker:function(){this.options.autohideMarker&&this._marker.remove()},_initChart:function(t){var e=this.options;if(e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),e.detached){var a=this.eleDiv,i=a.offsetWidth,n=a.offsetHeight;i>0&&(e.width=i),n>20&&(e.height=n-20)}else{var r=this._map.getContainer().clientWidth;e._maxWidth=e._maxWidth>e.width?e._maxWidth:e.width,this._container.style.maxWidth=e._maxWidth+\"px\",e._maxWidth>r&&(e.width=r-30)}var o=this._chart=new U(e,this);this._x=this._chart._x,this._y=this._chart._y,d3.select(t).call(o.render()),o.on(\"reset_drag\",this._hideMarker,this).on(\"mouse_enter\",this._mouseenterHandler,this).on(\"dragged\",this._dragendHandler,this).on(\"mouse_move\",this._mousemoveHandler,this).on(\"mouse_out\",this._mouseoutHandler,this).on(\"ruler_filter\",this._rulerFilterHandler,this).on(\"zoom\",this._updateChart,this).on(\"elepath_toggle\",this._toggleChartHandler,this).on(\"margins_updated\",this._resizeChart,this),this.fire(\"elechart_axis\"),this.options.legend&&this.fire(\"elechart_legend\"),this.fire(\"elechart_init\")},_initLayer:function(){var t=this;this._layers.on(\"layeradd layerremove\",(function(e){var a=e.layer;h(a.getElement&&a.getElement(),t.options.polyline.className+\" \"+t.options.theme,\"layeradd\"==e.type),p(a,\"mousemove\",t._mousemoveLayerHandler.bind(t),\"layeradd\"==e.type),p(a,\"mouseout\",t._mouseoutHandler.bind(t),\"layeradd\"==e.type)}))},_initMarker:function(t){var e=t.getPane(\"elevationPane\");e||((e=this._pane=t.createPane(\"elevationPane\",t.getPane(\"norotatePane\")||t.getPane(\"mapPane\"))).style.zIndex=625,e.style.pointerEvents=\"none\"),this._renderer&&this._renderer.remove(),this._renderer=L.svg({pane:\"elevationPane\"}).addTo(this._map),this._marker=new J(this.options),this.fire(\"elechart_marker\")},_initButton:function(t){if(!L.Browser.mobile&&this.options.detached||L.DomEvent.disableClickPropagation(t).disableScrollPropagation(t),!this.options.detached){var e=this._button=m(\"a\",\"elevation-toggle elevation-toggle-icon\"+(this.options.autohide?\"\":\" close-button\"),{href:\"#\",title:L._(\"Elevation\")},t);this.options.collapsed&&(this._collapse(),this.options.autohide?(x(t,\"mouseover\",this._expand,this),x(t,\"mouseout\",this._collapse,this)):(x(e,\"click\",L.DomEvent.stop),x(e,\"click\",this._toggle,this)),x(e,\"focus\",this._toggle,this),this._map.on(\"click\",this._collapse,this))}},_initSummary:function(t){this._summary=new Y({summary:this.options.summary},this),d3.select(t).call(this._summary.render())},_keydownHandler:function(t){this.options.detached||\"Escape\"!==t.key||this._collapse()},_loadFile:function(t){var e=this;fetch(t).then((function(t){return t.text()})).then((function(a){e._downloadURL=t,e._parseFromString(a).then((function(t){return t&&e._loadLayer(t)}))})).catch((function(t){return console.warn(t)}))},_loadLayer:function(t){var e=this,a=e.options,i=a.wptIcons,n=a.wptLabels,r=L.geoJson(t,{distanceMarkers:e.options.distanceMarkers,style:function(t){var a=L.extend({},e.options.polyline);return e.options.theme&&(a.className+=\" \"+e.options.theme),a},pointToLayer:function(t,a){var r,o,s;if(e.options.waypoints){var l=t.properties,c=null!==(r=l.desc)&&void 0!==r?r:\"\",h=null!==(o=l.name)&&void 0!==o?o:\"\",d=(null!==(s=l.sym)&&void 0!==s?s:h).replace(\" \",\"-\").replace('\"',\"\").replace(\"'\",\"\").toLowerCase();if([!0,\"dots\"].includes(e.options.waypoints)&&e._registerCheckPoint({latlng:a,label:[!0,\"dots\"].includes(n)?h:\"\"}),[!0,\"markers\"].includes(e.options.waypoints)&&0!=i){i.hasOwnProperty(d)||(i[d]=L.divIcon(L.extend({},i[\"\"].options,{html:'<i class=\"elevation-waypoint-icon '+d+'\"></i>'})));var u=L.marker(a,{icon:i[d]});if([!0,\"markers\"].includes(n)&&(h||c)){var _=decodeURI(\"<b>\"+h+\"</b>\"+(c.length>0?\"<br>\"+c:\"\"));u.bindPopup(_,{className:\"elevation-popup\",keepInView:!0}).openPopup(),u.bindTooltip(_,{className:\"elevation-tooltip\",direction:\"auto\",sticky:!0,opacity:1}).openTooltip()}return e._addMarker(u),e.fire(\"waypoint_added\",{point:u,element:a,properties:l}),u}}},onEachFeature:function(a,i){a.geometry&&\"Point\"!=a.geometry.type&&(e.addData(i),e.track_info=L.extend({},e.track_info,{name:t.name}))}});return e.lazyLoad(e.__D3).then((function(){e._initMapIntegrations(e,r),e._fireEvt(\"eledata_loaded\",{data:t,layer:r,name:e.track_info.name,track_info:e.track_info})})),r},_dragendHandler:function(t){this._hideMarker(),this.fitBounds(L.latLngBounds([t.dragstart.latlng,t.dragend.latlng])),this.fire(\"elechart_dragged\")},_mouseenterHandler:function(t){this.fire(\"elechart_enter\")},_mousemoveHandler:function(t){if(this._data.length&&this._chartEnabled){var e=this._findItemForX(t.xCoord);if(e){var a=t.xCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this._setMapView(e),this._map&&l(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_change\",{data:e,xCoord:a}),this.fire(\"elechart_hover\",{data:e,xCoord:a})}}},_mousemoveLayerHandler:function(t){if(this._data.length){var e=this._findItemForLatLng(t.latlng);if(e){var a=e.xDiagCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this.fire(\"elechart_change\",{data:e,xCoord:a})}}},_mouseoutHandler:function(){this.options.detached||(this._hideMarker(),this._chart._hideDiagramIndicator()),this._map&&c(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_leave\")},_parseFromGeoJSONString:function(t){try{return JSON.parse(t)}catch(t){}},_parseFromString:function(t){var e=this;return new Promise((function(a){return e.lazyLoad(e.__TOGEOJSON).then((function(){var i;try{i=e._parseFromXMLString(t.trim())}catch(a){i=e._parseFromGeoJSONString(t.toString())}i&&(i=e._prepareMultiLineStrings(i),i=e._prepareAdditionalProperties(i)),a(i)}))}))},_parseFromXMLString:function(t){var e;if(0!=t.indexOf(\"<\"))throw\"Invalid XML\";var a=(new DOMParser).parseFromString(t,\"text/xml\"),i=a.documentElement.tagName.toLowerCase(),n=a.getElementsByTagName(\"name\");if(a.getElementsByTagName(\"parsererror\").length)throw\"Invalid XML\";i in toGeoJSON||(i=\"TrainingCenterDatabase\"==a.documentElement.tagName?\"tcx\":\"gpx\");var r=toGeoJSON[i](a);return r.name=n.length>0?(null!==(e=Array.from(n).find((function(t){return\"trk\"==t.parentElement.tagName})))&&void 0!==e?e:n[0]).textContent:\"\",r},_prepareAdditionalProperties:function(t){return!t.name&&this._downloadURL&&(t.name=this._downloadURL.split(\"/\").pop().split(\"#\")[0].split(\"?\")[0]),t},_prepareMultiLineStrings:function(t){return t.features.forEach((function(e){\"MultiLineString\"==e.geometry.type&&e.geometry.coordinates.forEach((function(a){t.features.push({geometry:{type:\"LineString\",coordinates:a},properties:e.properties,type:\"Feature\"})}))})),t.features.filter((function(t){return\"MultiLineString\"!=t.geometry.type}))},_registerAreaPath:function(t){var e=this;this.on(\"elechart_init\",(function(){return e._chart._registerAreaPath(t)}))},_registerAxisGrid:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisGrid(t)}))},_registerAxisScale:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisScale(t)}))},_registerCheckPoint:function(t){var e=this;this.on(\"elechart_updated\",(function(){return e._chart._registerCheckPoint(t)}))},_registerDataAttribute:function(t){var e=this,a=null;t.init&&this.on(\"elepoint_init\",(function(a){return t.init.call(e,a)})),this.on(\"elepoint_added\",(function(i){if(!1===t.skipNull){var n=e._data[i.index][t.name];if(i.index>0){var r=e._data[i.index-1][t.name];if(isNaN(r)){if(isNaN(a)||isNaN(n)?isNaN(a)?isNaN(n)||(r=n):r=a:r=(a+n)/2,!isNaN(r))return e._data.splice(i.index-1,1);e._data[i.index-1][t.name]=r}}isNaN(n)||(a=n)}e._data[i.index][t.name]=t.fetch.call(e,i.index,i.point),t.update&&(e._data[i.index][t.name]=t.update.call(e,e._data[i.index][t.name],i.index,i.point))}))},_registerTooltip:function(t){var e=this;if(t.chart){var a=L.extend({},t,{value:t.chart});this.on(\"elechart_init\",(function(){return e._chart._registerTooltip(a)}))}if(t.marker){var i=L.extend({},t,{value:t.marker});this.on(\"elechart_marker\",(function(){return e._marker._registerTooltip(i)}))}},_registerSummary:function(t){var e=this;this.on(\"elechart_summary\",(function(){return e._summary._registerSummary(t)}))},_resetDrag:function(){this._chart._resetDrag(),this._hideMarker()},_resetView:function(){this._map&&this._map._isFullscreen||(this._resetDrag(),this._hideMarker(),this.options.autofitBounds&&this.fitBounds())},_resizeChart:function(){if(this._container&&\"none\"!=u(this._container,\"display\")){var t,e=this.options;if(e.detached)t=(this.eleDiv||this._container).offsetWidth;else{var a=this._map.getContainer().clientWidth;t=e._maxWidth>a?a-30:e._maxWidth}if(t){var i=this._chart;e.width=t,i&&i._chart&&(i._chart._resize(e),e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),this._updateChart())}this._updateMapSegments()}},_rulerFilterHandler:function(t){this._updateMapSegments(t.coords)},_toggle:function(){k(this._container,\"elevation-expanded\")?this._collapse():this._expand()},_setMapView:function(t){if(this.options.followMarker&&this._map){var e=this._map.getZoom(),a=this.options.zFollow;\"number\"==typeof a?this._map.setView(t.latlng,e<a?a:e,{animate:!0,duration:.25}):this._map.getBounds().contains(t.latlng)||this._map.setView(t.latlng,e,{animate:!0,duration:.25})}},_toggleChartHandler:function(t){var e=this,a=t.name,i=t.enabled;this._chartEnabled=this._chart._hasActiveLayers(),this._layers.eachLayer((function(t){return h(t.getElement&&t.getElement(),e.options.polyline.className+\" \"+e.options.theme,e._chartEnabled)})),this.options[a]=i||\"disabled\"!=this.options[a]?\"disabled\":\"enabled\",this._chartEnabled||(this._chart._hideDiagramIndicator(),this._marker.remove())},_updateChart:function(){\n/*!this._data.length ||*/\nthis._chart&&this._container&&(this.fire(\"elechart_axis\"),this.fire(\"elechart_area\"),this._chart.update({data:this._data,options:this.options}),this._x=this._chart._x,this._y=this._chart._y,this.fire(\"elechart_updated\"))},_updateMarker:function(t){this._marker&&this._marker.update({map:this._map,item:t,maxElevation:this.track_info.elevation_max||0,options:this.options})},_rotateMarker:function(){this._marker&&this._marker.update()},_updateMapSegments:function(t){this._markedSegments.setLatLngs(t||[]),t&&this._map&&!this._map.hasLayer(this._markedSegments)&&this._markedSegments.addTo(this._map)},_updateSummary:function(){var t=this;this._summary.reset(),this.options.summary&&(this.fire(\"elechart_summary\"),this._summary.update()),this.options.downloadLink&&this._downloadURL&&(this._summary._container.innerHTML+='<span class=\"download\"><a href=\"#\">'+L._(\"Download\")+\"</a></span>\",y(\".download a\",this._summary._container).onclick=function(e){e.preventDefault();var a={downloadLink:t.options.downloadLink,confirm:n.bind(t,t._downloadURL)};\"modal\"==t.options.downloadLink&&\"function\"==typeof CustomEvent?document.dispatchEvent(new CustomEvent(\"eletrack_download\",{detail:a})):\"link\"!=t.options.downloadLink&&!0!==t.options.downloadLink||a.confirm(),t.fire(\"eletrack_download\",a)})},_width:function(){if(this._chart)return this._chart._width();var t=this.options;return t.width-t.margins.left-t.margins.right},_xTicks:function(){return this.__xTicks&&(this.__xTicks=this.options.xTicks),this.__xTicks||Math.round(this._width()/75)},_yTicks:function(){return this.__yTicks&&(this.__yTicks=this.options.yTicks),this.__yTicks||Math.round(this._height()/30)}});W.addInitHook((function(){var t=this,e=this.options,a={};e.imperial?(e.distanceFactor=this.__mileFactor,a.label=\"mi\"):(e.distanceFactor=e.distanceFactor||1,a.label=e.xLabel),this._registerDataAttribute({name:\"dist\",init:function(){},fetch:function(a){var i=t._data[a].latlng.distanceTo(t._data[a>0?a-1:a].latlng)*e.distanceFactor;return Math.round(i/1e3*1e5)/1e5},update:function(e){return t.track_info.distance=t.track_info.distance||0,t.track_info.distance+=e,t.track_info.distance}}),\"summary\"!=this.options.distance&&this._registerAxisScale({axis:\"x\",position:\"bottom\",scale:\"x\",label:a.label,labelY:25,labelX:function(){return t._width()+6},name:\"distance\"}),this._registerAxisGrid({axis:\"x\",position:\"bottom\",scale:\"x\"}),this._registerTooltip({name:\"x\",chart:function(t){return L._(\"x: \")+d3.format(\".\"+e.decimalsX+\"f\")(t[e.xAttr])+\" \"+a.label},order:20}),this._registerSummary({totlen:{label:\"Total Length: \",value:function(t){return(t.distance||0).toFixed(2)+\"&nbsp;\"+a.label},order:10}})})),W.addInitHook((function(){var t=this,e=this.options,a={};a.label=e.timeLabel||\"t\",e.timeFactor=e.timeFactor||3600,this._timeAVGSpeed=(e.timeAVGSpeed||3.6)*(e.speedFactor||1),e.timeFormat?\"time\"==e.timeFormat?e.timeFormat=function(t){return new Date(t).toLocaleTimeString()}:\"date\"==e.timeFormat&&(e.timeFormat=function(t){return new Date(t).toLocaleDateString()}):e.timeFormat=function(t){return new Date(t).toLocaleString().replaceAll(\"/\",\"-\").replaceAll(\",\",\" \")},e.xTimeFormat=e.xTimeFormat||function(t){return i(t).split(\"'\")[0]},this._registerDataAttribute({name:\"time\",init:function(t){var e=t.point,a=t.props,i=t.id;a&&(\"coordTimes\"in a?e.meta.time=new Date(Date.parse(a.coordTimes[i])):\"times\"in a?e.meta.time=new Date(Date.parse(a.times[i])):\"time\"in a&&(e.meta.time=new Date(Date.parse(\"object\"===j(a.time)?a.time[i]:a.time))))},fetch:function(t,e){if(!e.meta||!e.meta.time)if(e.meta=e.meta||{},t>0){var a=this._data[t].dist-this._data[t-1].dist,i=this._data[t-1].time.getTime(),n=a/this._timeAVGSpeed*this.options.timeFactor*1e3;e.meta.time=new Date(i+n)}else e.meta.time=new Date(Date.now());var r=e.meta.time;return r.getTime()-60*r.getTimezoneOffset()*1e3==0&&(r=0),r},update:function(t,e){return this.track_info.time=(this.track_info.time||0)+Math.abs(this._data[e].time-this._data[e>0?e-1:e].time),this._data[e].duration=this.track_info.time,t}}),e.time&&\"summary\"!=e.time&&!L.Browser.mobile&&this._registerAxisScale({axis:\"x\",position:\"top\",scale:{attr:\"duration\",min:0},label:a.label,labelY:-10,labelX:function(){return t._width()},name:\"time\",tickFormat:function(t){return 0==t?\"\":e.xTimeFormat(t)},onAxisMount:function(e){e.select(\".domain\").remove(),e.selectAll(\"text\").attr(\"opacity\",.65).style(\"font-family\",\"Monospace\").style(\"font-size\",\"110%\"),e.selectAll(\".tick line\").attr(\"y2\",t._height()).attr(\"stroke-dasharray\",2).attr(\"opacity\",.75)}}),this.options.timestamps&&this._registerTooltip({name:\"date\",chart:function(e){return L._(\"t: \")+t.options.timeFormat(e.time)},order:20}),this.options.time&&(this._registerTooltip({name:\"time\",chart:function(t){return L._(\"T: \")+i(t.duration||0)},order:20}),this._registerSummary({tottime:{label:\"Total Time: \",value:function(t){return i(t.time||0)},order:20}}))})),W.addInitHook((function(){var t=this,e=this.options,a={},i=e.theme.replace(\"-theme\",\"\"),n=A[i]||{};e.imperial?(e.altitudeFactor=this.__footFactor,a.label=\"ft\"):(e.altitudeFactor=e.heightFactor||e.altitudeFactor||1,a.label=e.yLabel),this._registerDataAttribute({name:\"z\",skipNull:this.options.skipNullZCoords,init:function(t){var e=t.point;\"alt\"in e&&(e.meta.ele=e.alt)},fetch:function(a){return t._data[a].z*e.altitudeFactor},update:function(e,a){t.track_info.elevation_max=t.track_info.elevation_max||-1/0,t.track_info.elevation_min=t.track_info.elevation_max||1/0,t.track_info.elevation_avg=t.track_info.elevation_avg||0;var i=t._data,n=t.track_info;if(t.options.altitudeDeltaMax){var r=e-i[a>0?a-1:a].z,o=t.options.altitudeDeltaMax;Math.abs(r)>o&&(e=i[a-1].z+o*Math.sign(r))}return(e=s(e,t.options.altitudeRange))>n.elevation_max&&(n.elevation_max=e),e<n.elevation_min&&(n.elevation_min=e),n.elevation_avg=(e+n.elevation_avg)/2,e}}),this._registerAxisScale({axis:\"y\",position:\"left\",scale:\"y\",label:a.label,labelX:-3,labelY:-8,name:\"altitude\",visbile:\"summary\"!=this.options.altitude}),this._registerAxisGrid({axis:\"y\",position:\"left\",scale:\"y\"}),this._registerAreaPath({name:\"altitude\",label:\"Altitude\",scaleX:\"distance\",scaleY:\"altitude\",color:n.area||i,strokeColor:e.detached?n.stroke:\"#000\",strokeOpacity:\"1\",fillOpacity:e.detached?n.alpha||\"0.8\":1,preferCanvas:e.preferCanvas,visbile:\"summary\"!=this.options.altitude}),this._registerTooltip({name:\"y\",chart:function(t){return L._(\"y: \")+d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},marker:function(t){return d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},order:10}),this._registerSummary({maxele:{label:\"Max Elevation: \",value:function(t){return(t.elevation_max||0).toFixed(2)+\"&nbsp;\"+a.label},order:30},minele:{label:\"Min Elevation: \",value:function(t){return(t.elevation_min||0).toFixed(2)+\"&nbsp;\"+a.label},order:30},avgele:{label:\"Avg Elevation: \",value:function(t){return(t.elevation_avg||0).toFixed(2)+\"&nbsp;\"+a.label},order:30}})})),W.addInitHook((function(){var t=this;if(this.options.slope){var e=this.options,a={};a.label=e.slopeLabel||\"%\",this._registerDataAttribute({name:\"slope\",fetch:function(e){var a=t._data,i=1e3*(a[e].dist-a[e>0?e-1:e].dist),n=a[e].z-a[e>0?e-1:e].z;return isNaN(n)||0===i?0:n/i*100},update:function(e,a){t.track_info.ascent=t.track_info.ascent||0,t.track_info.descent=t.track_info.descent||0,t.track_info.slope_max=t.track_info.slope_max||-1/0,t.track_info.slope_min=t.track_info.slope_min||1/0,t.track_info.slope_avg=t.track_info.slope_avg||0;var i=t.track_info,n=t._data,r=n[a].z-n[a>0?a-1:a].z;if(t.options.slopeDeltaMax){var o=slop-n[a>0?a-1:a].slope,l=t.options.slopeDeltaMax;Math.abs(o)>l&&(e=n[a-1].slope+l*Math.sign(o))}return e=s(e,t.options.slopeRange),r>0?t.track_info.ascent+=r:r<0&&(t.track_info.descent-=r),e>i.slope_max&&(i.slope_max=e),e<i.slope_min&&(i.slope_min=e),i.slope_avg=(e+i.slope_avg)/2,L.Util.formatNum(e,2)}}),this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:-1,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"slope\",visbile:\"summary\"!=this.options.slope}),this._registerAreaPath({name:\"slope\",label:\"Slope\",yAttr:\"slope\",scaleX:\"distance\",scaleY:\"slope\",color:\"#F00\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\",visbile:\"summary\"!=this.options.slope}),this._registerTooltip({name:\"slope\",chart:function(t){return L._(\"m: \")+t.slope+a.label},marker:function(t){return Math.round(t.slope)+a.label},order:40}),this._registerSummary({ascent:{label:\"Total Ascent: \",value:function(e){return Math.round(e.ascent||0)+\"&nbsp;\"+(t.options.imperial?\"ft\":\"m\")},order:40},descent:{label:\"Total Descent: \",value:function(e){return Math.round(e.descent||0)+\"&nbsp;\"+(t.options.imperial?\"ft\":\"m\")},order:40},minslope:{label:\"Min Slope: \",value:function(t){return Math.round(t.slope_min||0)+\"&nbsp;\"+a.label},order:40},maxslope:{label:\"Max Slope: \",value:function(t){return Math.round(t.slope_max||0)+\"&nbsp;\"+a.label},order:40},avgslope:{label:\"Avg Slope: \",value:function(t){return Math.round(t.slope_avg||0)+\"&nbsp;\"+a.label},order:40}})}})),W.addInitHook((function(){var t=this;if(this.options.speed||this.options.acceleration){var e=this.options,a={};a.label=e.speedLabel||L._(e.imperial?\"mph\":\"km/h\"),e.speedFactor=e.speedFactor||1,this._registerDataAttribute({name:\"speed\",init:function(){},fetch:function(a){var i=t._data,n=1e3*(i[a].dist-i[a>0?a-1:a].dist),r=i[a].time-i[a>0?a-1:a].time;return r>0?Math.abs(n/r*e.timeFactor)*e.speedFactor:0},update:function(e,a){t.track_info.speed_max=t.track_info.speed_max||-1/0,t.track_info.speed_min=t.track_info.speed_min||1/0,t.track_info.speed_avg=t.track_info.speed_avg||0;var i=t._data,n=t.track_info;if(t.options.speedDeltaMax){var r=e-i[a>0?a-1:a].speed,o=t.options.speedDeltaMax;Math.abs(r)>o&&(e=i[a-1].speed+o*Math.sign(r))}return(e=s(e,t.options.speedRange))>n.speed_max&&(n.speed_max=e),e<n.speed_min&&(n.speed_min=e),n.speed_avg=(e+n.speed_avg)/2,L.Util.formatNum(e,2)}}),this.options.speed&&\"summary\"!=this.options.speed&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"speed\"}),this._registerAreaPath({name:\"speed\",label:\"Speed\",yAttr:\"speed\",scaleX:\"distance\",scaleY:\"speed\",color:\"#03ffff\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this.options.speed&&(this._registerTooltip({name:\"speed\",chart:function(t){return L._(\"v: \")+t.speed+\" \"+a.label},marker:function(t){return Math.round(t.speed)+\" \"+a.label},order:50}),this._registerSummary({minspeed:{label:\"Min Speed: \",value:function(t){return Math.round(t.speed_min||0)+\"&nbsp;\"+a.label},order:50},maxspeed:{label:\"Max Speed: \",value:function(t){return Math.round(t.speed_max||0)+\"&nbsp;\"+a.label},order:50},avgspeed:{label:\"Avg Speed: \",value:function(t){return Math.round(t.speed_avg||0)+\"&nbsp;\"+a.label},order:50}}))}})),W.addInitHook((function(){var t=this;if(this.options.acceleration){var e=this.options,a={};a.label=e.accelerationLabel||L._(e.imperial?\"ft/s²\":\"m/s²\"),e.accelerationFactor=e.accelerationFactor||1,this._registerDataAttribute({name:\"acceleration\",init:function(){},fetch:function(a){var i=t._data,n=(i[a].speed-i[a>0?a-1:a].speed)*(1e3/e.timeFactor),r=(i[a].time-i[a>0?a-1:a].time)/1e3;return r>0?Math.abs(n/r)*e.accelerationFactor:0},update:function(e,a){t.track_info.acceleration_max=t.track_info.acceleration_max||-1/0,t.track_info.acceleration_min=t.track_info.acceleration_min||1/0,t.track_info.acceleration_avg=t.track_info.acceleration_avg||0;var i=t._data,n=t.track_info;if(t.options.accelerationDeltaMax){var r=e-i[a>0?a-1:a].acceleration,o=t.options.accelerationDeltaMax;Math.abs(r)>o&&(e=i[a-1].acceleration+o*Math.sign(r))}return(e=s(e,t.options.accelerationRange))>n.acceleration_max&&(n.acceleration_max=e),e<n.acceleration_min&&(n.acceleration_min=e),n.acceleration_avg=(e+n.acceleration_avg)/2,L.Util.formatNum(e,2)}}),\"summary\"!=this.options.acceleration&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"acceleration\"}),this._registerAreaPath({name:\"acceleration\",label:\"Acceleration\",yAttr:\"acceleration\",scaleX:\"distance\",scaleY:\"acceleration\",color:\"#050402\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this._registerTooltip({name:\"acceleration\",chart:function(t){return L._(\"a: \")+t.acceleration+\" \"+a.label},marker:function(t){return Math.round(t.acceleration)+\" \"+a.label},order:60}),this._registerSummary({minacceleration:{label:\"Min Acceleration: \",value:function(t){return Math.round(t.acceleration_min||0)+\"&nbsp;\"+a.label},order:60},maxacceleration:{label:\"Max Acceleration: \",value:function(t){return Math.round(t.acceleration_max||0)+\"&nbsp;\"+a.label},order:60},avgacceleration:{label:\"Avg Acceleration: \",value:function(t){return Math.round(t.acceleration_avg||0)+\"&nbsp;\"+a.label},order:60}})}})),W.Utils=C,W.Components=X,W.Chart=U,R=L.i18n.bind({}),L.i18n=L._=function(t,e){return L.locale&&L.locales[L.locale]&&\"\"==L.locales[L.locale][t]&&(L.locales[L.locale][t]=\"​\"),R.call(null,t,e)},W.addInitHook((function(){this.enableDragging=this.enableBrush,this.disableDragging=this.disableBrush,this.loadChart=this.addTo,this.loadData=this.load,this.loadGPX=this.load,this.loadGeoJSON=this.load,this.loadXML=this.load,this.loadFile=this.load,this._addGPXData=this._addGeoJSONData,this._registerFocusLabel=this._registerTooltip})),L.control.elevation=function(t){return new W(t)}}));\n//# sourceMappingURL=leaflet-elevation.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(((e=e||self).Leaflet=e.Leaflet||{},e.Leaflet.markercluster={}))}(this,function(e){\"use strict\";var t=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnEveryZoom:!1,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyShapePositions:null,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:\"#222\",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire(\"layeradd\",{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire(\"layeradd\",{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire(\"layeradd\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,i=this._zoom;if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):(e.getLatLng?this._map?e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire(\"layerremove\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire(\"layerremove\",{layer:e})):(this._nonPointGroup.removeLayer(e),this.fire(\"layerremove\",{layer:e})),this)},addLayers:function(n,s){if(!L.Util.isArray(n))return this.addLayer(n);var o,a=this._featureGroup,h=this._nonPointGroup,l=this.options.chunkedLoading,u=this.options.chunkInterval,_=this.options.chunkProgress,d=n.length,p=0,c=!0;if(this._map){var f=(new Date).getTime(),m=L.bind(function(){var e=(new Date).getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();p<d;p++){if(l&&p%200==0){var t=(new Date).getTime()-e;if(u<t)break}if((o=n[p])instanceof L.LayerGroup)c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length;else if(o.getLatLng){if(!this.hasLayer(o)&&(this._addLayer(o,this._maxZoom),s||this.fire(\"layeradd\",{layer:o}),o.__parent&&2===o.__parent.getChildCount())){var i=o.__parent.getAllChildMarkers(),r=i[0]===o?i[1]:i[0];a.removeLayer(r)}}else h.addLayer(o),s||this.fire(\"layeradd\",{layer:o})}_&&_(p,d,(new Date).getTime()-f),p===d?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(m,this.options.chunkDelay)},this);m()}else for(var e=this._needsClustering;p<d;p++)(o=n[p])instanceof L.LayerGroup?(c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length):o.getLatLng?this.hasLayer(o)||e.push(o):h.addLayer(o);return this},removeLayers:function(e){var t,i,r=e.length,n=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire(\"layerremove\",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=r;for(t=0;t<h;t++)(i=a[t])instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire(\"layerremove\",{layer:i}),n.hasLayer(i)&&(n.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire(\"layerremove\",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;0<=t;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,r,n,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),r=s.length-1;0<=r;r--){for(i=!0,n=o.length-1;0<=n;n--)if(o[n].layer===s[r]){i=!1;break}i&&e.call(t,s[r])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var t=[];return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var i=null;return t=parseInt(t,10),this.eachLayer(function(e){L.stamp(e)===t&&(i=e)}),i},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;0<=t;t--)if(i[t]===e)return!0;for(t=(i=this._needsRemoving).length-1;0<=t;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){var i=this._map;\"function\"!=typeof t&&(t=function(){});var r=function(){!i.hasLayer(e)&&!i.hasLayer(e.__parent)||this._inZoomAnimation||(this._map.off(\"moveend\",r,this),this.off(\"animationend\",r,this),i.hasLayer(e)?t():e.__parent._icon&&(this.once(\"spiderfied\",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on(\"moveend\",r,this),this._map.panTo(e.getLatLng())):(this._map.on(\"moveend\",r,this),this.on(\"animationend\",r,this),e.__parent.zoomToBounds())},onAdd:function(e){var t,i,r;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw\"Map has no maxZoom specified\";for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,i=this._needsRemoving.length;t<i;t++)(r=this._needsRemoving[t]).newlatlng=r.layer._latlng,r.layer._latlng=r.latlng;for(t=0,i=this._needsRemoving.length;t<i;t++)r=this._needsRemoving[t],this._removeLayer(r.layer,!0),r.layer._latlng=r.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on(\"zoomend\",this._zoomEnd,this),this._map.on(\"moveend\",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off(\"zoomend\",this._zoomEnd,this),e.off(\"moveend\",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\"),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;0<=i;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,r=this._gridUnclustered,n=Math.floor(this._map.getMinZoom());n<=t&&r[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,i){var r=this._gridClusters,n=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)t&&l._childCount<=1?(h=l._markers[0]===e?l._markers[1]:l._markers[0],r[l._zoom].removeObject(l,o.project(l._cLatLng,l._zoom)),n[l._zoom].addObject(h,o.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e=\"cluster\"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,\"cluster\"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=\" marker-cluster-\";return i+=t<10?\"small\":t<100?\"medium\":\"large\",new L.DivIcon({html:\"<div><span>\"+t+\"</span></div>\",className:\"marker-cluster\"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick,n=this.options.spiderfyOnEveryZoom;(t||r||n)&&this.on(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),i&&(this.on(\"clustermouseover\",this._showCoverage,this),this.on(\"clustermouseout\",this._hideCoverage,this),e.on(\"zoomend\",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,i=t;if(\"clusterkeypress\"!==e.type||!e.originalEvent||13===e.originalEvent.keyCode){for(;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),2<e.layer.getChildCount()&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,r=this.options.spiderfyOnEveryZoom,n=this._map;(e||i||r)&&this.off(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),t&&(this.off(\"clustermouseover\",this._showCoverage,this),this.off(\"clustermouseout\",this._hideCoverage,this),n.off(\"zoomend\",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,r=i;\"function\"!=typeof i&&(r=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var n=e;t<=n;n--)this._gridClusters[n]=new L.DistanceGrid(r(n)),this._gridUnclustered[n]=new L.DistanceGrid(r(n));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,r,n=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);o<=t;t--){i=this._map.project(e.getLatLng(),t);var a=n[t].getNearObject(i);if(a)return a._addChild(e),void(e.__parent=a);if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);n[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l;var u=e.__parent=l;for(r=t-1;r>h._zoom;r--)u=new this._markerCluster(this,r,u),n[r].addObject(u,this._map.project(a.getLatLng(),r));return h._addChild(u),void this._removeFromGridUnclustered(a,t)}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,r=e.getLayers(),n=0;for(t=t||[];n<r.length;n++)(i=r[n])instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=\" leaflet-cluster-anim\",this._inZoomAnimation++},_animationZoomIn:function(n,s){var o,a=this._getExpandedVisibleBounds(),h=this._featureGroup,e=Math.floor(this._map.getMinZoom());this._ignoreMove=!0,this._topClusterLevel._recursively(a,n,e,function(e){var t,i=e._latlng,r=e._markers;for(a.contains(i)||(i=null),e._isSingleParent()&&n+1===s?(h.removeLayer(e),e._recursivelyAddChildrenToMap(null,s,a)):(e.clusterHide(),e._recursivelyAddChildrenToMap(i,s,a)),o=r.length-1;0<=o;o--)t=r[o],a.contains(t._latlng)||h.removeLayer(t)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(a,s),h.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(a,n,s,function(e){e._recursivelyRestoreChildPositions(s)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(a,n,e,function(e){h.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,r=this._featureGroup;r.addLayer(e),t!==e&&(2<t._childCount?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(t,i,r){var n=this._getExpandedVisibleBounds(),s=Math.floor(this._map.getMinZoom());t._recursivelyAnimateChildrenInAndAddSelfToMap(n,s,i+1,r);var o=this;this._forceLayout(),t._recursivelyBecomeVisible(n,r),this._enqueue(function(){if(1===t._childCount){var e=t._markers[0];this._ignoreMove=!0,e.setLatLng(e.getLatLng()),this._ignoreMove=!1,e.clusterShow&&e.clusterShow()}else t._recursively(n,r,s,function(e){e._recursivelyRemoveChildrenFromMap(n,s,i+1)});o._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\")),this._inZoomAnimation--,this.fire(\"animationend\")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,r){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),r&&this._addChild(r)},getAllChildMarkers:function(e,t){e=e||[];for(var i=this._childClusters.length-1;0<=i;i--)this._childClusters[i].getAllChildMarkers(e,t);for(var r=this._markers.length-1;0<=r;r--)t&&this._markers[r].__dragStart||e.push(this._markers[r]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),r=this._group._map,n=r.getBoundsZoom(this._bounds),s=this._zoom+1,o=r.getZoom();0<i.length&&s<n;){s++;var a=[];for(t=0;t<i.length;t++)a=a.concat(i[t]._childClusters);i=a}s<n?this._group._map.setView(this._latlng,s):n<=o?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,r,n=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e<n.length;e++)i=n[e]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(e=0;e<s.length;e++)(t=s[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),i=t._wLatLng,r=t._childCount,o+=i.lat*r,a+=i.lng*r;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,n,t){this._recursively(e,this._group._map.getMinZoom(),t-1,function(e){var t,i,r=e._markers;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())},function(e){var t,i,r=e._childClusters;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,i,r,n){this._recursively(t,n,i,function(e){e._recursivelyAnimateChildrenIn(t,e._group._map.latLngToLayerPoint(e.getLatLng()).round(),r),e._isSingleParent()&&r-1===n?(e.clusterShow(),e._recursivelyRemoveChildrenFromMap(t,i,r)):e.clusterHide(),e._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(r,n,s){this._recursively(s,this._group._map.getMinZoom()-1,n,function(e){if(n!==e._zoom)for(var t=e._markers.length-1;0<=t;t--){var i=e._markers[t];s.contains(i._latlng)&&(r&&(i._backupLatlng=i.getLatLng(),i.setLatLng(r),i.clusterHide&&i.clusterHide()),e._group._featureGroup.addLayer(i))}},function(e){e._addToMap(r)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;0<=t;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;0<=r;r--)this._childClusters[r]._restorePosition();else for(var n=this._childClusters.length-1;0<=n;n--)this._childClusters[n]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,r){var n,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;0<=s;s--)n=e._markers[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(e){for(s=e._childClusters.length-1;0<=s;s--)n=e._childClusters[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(e,t,i,r,n){var s,o,a=this._childClusters,h=this._zoom;if(t<=h&&(r&&r(this),n&&h===i&&n(this)),h<t||h<i)for(s=a.length-1;0<=s;s--)(o=a[s])._boundsNeedUpdate&&o._recalculateBounds(),e.intersects(o._bounds)&&o._recursively(e,t,i,r,n)},_isSingleParent:function(){return 0<this._childClusters.length&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),r=this._getCoord(t.y),n=this._grid,s=n[r]=n[r]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,r,n=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[n]=a[n]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,r=h.length;i<r;i++)if(h[i]===e)return h.splice(i,1),1===r&&delete a[n],!0},eachObject:function(e,t){var i,r,n,s,o,a,h=this._grid;for(i in h)for(r in o=h[i])for(n=0,s=(a=o[r]).length;n<s;n++)e.call(t,a[n])&&(n--,s--)},getNearObject:function(e){var t,i,r,n,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,p=null;for(t=u-1;t<=u+1;t++)if(n=this._grid[t])for(i=l-1;i<=l+1;i++)if(s=n[i])for(r=0,o=s.length;r<o;r++)a=s[r],((h=this._sqDist(_[L.Util.stamp(a)],e))<d||h<=d&&null===p)&&(d=h,p=a);return p},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r}},L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,r,n,s=0,o=null,a=[];for(i=t.length-1;0<=i;i--)r=t[i],0<(n=this.getDistant(r,e))&&(a.push(r),s<n&&(s=n,o=r));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?i=(i=i.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints))).concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints)):[e[0]]},getConvexHull:function(e){var t,i=!1,r=!1,n=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;0<=t;t--){var d=e[t];(!1===i||d.lat>i)&&(i=(o=d).lat),(!1===r||d.lat<r)&&(r=(a=d).lat),(!1===n||d.lng>n)&&(n=(h=d).lng),(!1===s||d.lng<s)&&(s=(l=d).lng)}return u=r!==i?(_=a,o):(_=l,h),[].concat(this.buildConvexHull([_,u],e),this.buildConvexHull([u,_],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,i=this.getAllChildMarkers(),r=[];for(t=i.length-1;0<=t;t--)e=i[t].getLatLng(),r.push(e);return L.QuickHull.getConvexHull(r)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(null,!0),i=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),e=(this._group._spiderfied=this)._group.options.spiderfyShapePositions?this._group.options.spiderfyShapePositions(t.length,i):t.length>=this._circleSpiralSwitchover?this._generatePointsSpiral(t.length,i):(i.y+=10,this._generatePointsCircle(t.length,i)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,r,n=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,s=this._2PI/e,o=[];for(n=Math.max(n,35),o.length=e,i=0;i<e;i++)r=this._circleStartAngle+i*s,o[i]=new L.Point(t.x+n*Math.cos(r),t.y+n*Math.sin(r))._round();return o},_generatePointsSpiral:function(e,t){var i,r=this._group.options.spiderfyDistanceMultiplier,n=r*this._spiralLengthStart,s=r*this._spiralFootSeparation,o=r*this._spiralLengthFactor*this._2PI,a=0,h=[];for(i=h.length=e;0<=i;i--)i<e&&(h[i]=new L.Point(t.x+n*Math.cos(a),t.y+n*Math.sin(a))._round()),n+=o/(a+=s/n+5e-4*i);return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,r=i._map,n=i._featureGroup,s=this.getAllChildMarkers(null,!0);for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;0<=t;t--)e=s[t],n.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(r.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire(\"unspiderfied\",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,r,n,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i<e.length;i++)s=a.layerPointToLatLng(t[i]),r=e[i],n=new L.Polyline([this._latlng,s],l),a.addLayer(n),r._spiderLeg=n,r._preSpiderfyLatlng=r._latlng,r.setLatLng(s),r.setZIndexOffset&&r.setZIndexOffset(1e6),h.addLayer(r);this.setOpacity(.3),o._ignoreMove=!1,o.fire(\"spiderfied\",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,n,s,o,a,h=this,l=this._group,u=l._map,_=l._featureGroup,d=this._latlng,p=u.latLngToLayerPoint(d),c=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),m=f.opacity;for(void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),c?(f.opacity=0,f.className=(f.className||\"\")+\" leaflet-cluster-spider-leg\"):f.opacity=m,l._ignoreMove=!0,i=0;i<e.length;i++)r=e[i],a=u.layerPointToLatLng(t[i]),n=new L.Polyline([d,a],f),u.addLayer(n),r._spiderLeg=n,c&&(o=(s=n._path).getTotalLength()+.1,s.style.strokeDasharray=o,s.style.strokeDashoffset=o),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),_.addLayer(r),r._setPos&&r._setPos(p);for(l._forceLayout(),l._animationStart(),i=e.length-1;0<=i;i--)a=u.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(a),r.clusterShow&&r.clusterShow(),c&&((s=(n=r._spiderLeg)._path).style.strokeDashoffset=0,n.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire(\"spiderfied\",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,r,n,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(null,!0),p=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;0<=i;i--)(t=d[i])._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),p&&(s=(n=(r=t._spiderLeg)._path).getTotalLength()+.1,n.style.strokeDashoffset=s,r.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&e++;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),1<e&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire(\"unspiderfied\",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on(\"click\",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.on(\"zoomend\",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off(\"click\",this._unspiderfyWrapper,this),this._map.off(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._map.off(\"zoomend\",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on(\"zoomanim\",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,\"leaflet-touching\")||(this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i,Object.defineProperty(e,\"__esModule\",{value:!0})});\n//# sourceMappingURL=leaflet.markercluster.js.map","@use '~leaflet/dist/leaflet.css';\n@use '~leaflet.locatecontrol/dist/L.Control.Locate.min.css';\n@use '~@raruto/leaflet-elevation/dist/leaflet-elevation.min.css';\n@use '~leaflet.markercluster/dist/MarkerCluster.css';\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n#map {\n position: relative;\n font-family: var(--font-family);\n display: block;\n}\n\n.leaflet-control-layers-toggle,\n.leaflet-retina .leaflet-control-layers-toggle {\n background-image: var(--layers-image-src);\n}\n\n.treks-map {\n height: calc(100%);\n}\n\n.trek-map {\n height: calc(100% - 350px - var(--map-bottom-space-height));\n}\n\n#elevation {\n position: relative;\n background-color: #ffffff;\n}\n\n.elevation-control .background {\n border-radius: 0px;\n}\n\n.custom-theme.elevation-control .axis text {\n fill: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .axis line,\n.custom-theme.elevation-control .axis path {\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-rect {\n fill: var(--color-primary-container);\n stroke: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-text {\n fill: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .background {\n background-color: var(--color-background);\n}\n\n.custom-theme.elevation-control .mouse-focus-line {\n stroke: var(--color-on-surface);\n}\n\n.use-theme-color.elevation-control .area path.altitude,\n.use-theme-color .legend-altitude rect.area {\n fill: var(--color-primary-app);\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.circle-lower {\n fill: #ffffff;\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-polyline {\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.line,\n.custom-theme.height-focus-label {\n display: none;\n}\n\n.custom-theme .elevation-summary {\n margin: -12px 0px 0px 36px;\n font-size: 8px;\n font-family: var(--font-family);\n :nth-child(3)::after {\n display: none;\n }\n .avgele {\n display: none;\n }\n}\n\n.treks-marker-cluster-group-icon,\n.touristic-content-marker-cluster-group-icon,\n.touristic-event-marker-cluster-group-icon {\n background-color: var(--color-primary-app);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--color-on-primary);\n font-size: 16px;\n}\n\n.trek-marker,\n.step-marker,\n.touristic-content-marker,\n.touristic-event-marker,\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker,\n.departure-marker,\n.arrival-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50% 50% 50% 0;\n border: 2px solid #ffffff;\n width: 32px;\n height: 32px;\n transform: rotate(-45deg);\n img,\n .step-number {\n display: flex;\n justify-content: center;\n align-items: center;\n transform: rotate(45deg);\n position: absolute;\n z-index: 20;\n width: 24px !important;\n }\n }\n .trek-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n background-color: var(--color-surface);\n }\n .step-marker-container {\n background-color: var(--color-surface-variant);\n }\n}\n\n.departure-marker {\n background-color: #008000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000001 !important;\n}\n\n.arrival-marker {\n background-color: #ff0000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000000 !important;\n}\n\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n width: 48px;\n height: 48px;\n img,\n .step-number {\n width: 32px !important;\n }\n }\n}\n\n.step-marker,\n.selected-step-marker {\n color: var(--color-on-surface-variant);\n}\n\n.map-loader-container {\n position: absolute;\n z-index: 500;\n width: 100%;\n height: 100%;\n background-color: var(--color-background);\n display: flex;\n justify-content: center;\n align-items: center;\n .loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n }\n\n @keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n}\n\n.trek-departure-popup,\n.touristic-content-coordinates-popup,\n.touristic-event-coordinates-popup {\n position: relative;\n display: flex;\n flex-direction: column;\n img {\n border-top-left-radius: var(--border-radius, 8px);\n border-top-right-radius: var(--border-radius, 8px);\n }\n .trek-name,\n .touristic-content-name,\n .touristic-event-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n padding: 8px;\n }\n .trek-button,\n .touristic-content-button,\n .touristic-event-button {\n margin: 0px 8px 8px 8px;\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n background-color: var(--color-background);\n color: var(--color-on-surface);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1000000015px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n font-family: var(--font-family);\n }\n}\n\n.poi-tooltip,\n.information-desks-tooltip,\n.sensitive-area-tooltip,\n.touristic-content-tooltip,\n.touristic-event-tooltip,\n.parking-tooltip {\n .poi-name,\n .information-desks-name,\n .sensitive-area-name,\n .touristic-content-name,\n .touristic-event-name,\n .parking-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n }\n}\n\n.sensitiveAreasCheckboxContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #ffffff;\n padding: 8px;\n border-radius: var(--border-radius, 8px);\n user-select: none;\n input,\n label {\n cursor: pointer;\n }\n input {\n margin: 0;\n }\n label {\n padding-left: 8px;\n }\n}\n\n.poi-icon,\n.information-desks-icon,\n.touristic-content-icon,\n.touristic-event-icon {\n background-color: var(--color-poi-icon);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n img {\n width: 36px !important;\n }\n}\n\n.parking-icon {\n img {\n width: 48px !important;\n }\n}\n\n.point-reference-icon {\n background-color: #ff0000;\n border: 1px solid #ffffff;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n font-size: 24px;\n color: #ffffff;\n}\n\n.map-bottom-space {\n min-height: var(--map-bottom-space-height);\n height: var(--map-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.leaflet-popup {\n bottom: 40px !important;\n left: -70px !important;\n}\n\n.leaflet-popup-content-wrapper {\n cursor: default;\n padding: 0px;\n background-color: var(--color-background);\n box-shadow: var(--elevation-2);\n}\n\n.leaflet-popup-content {\n width: 144px;\n margin: 0;\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, getAssetPath, Build, Listen } from '@stencil/core';\nimport { Feature, FeatureCollection } from 'geojson';\nimport L, { MarkerClusterGroup, TileLayer } from 'leaflet';\nimport 'leaflet-rotate';\nimport 'leaflet.locatecontrol';\nimport 'leaflet-i18n';\nimport '@raruto/leaflet-elevation/dist/leaflet-elevation.min.js';\nimport 'leaflet.markercluster/dist/leaflet.markercluster.js';\nimport state, { onChange } from 'store/store';\nimport { translate } from 'i18n/i18n';\nimport { getTrekGeometry } from 'services/treks.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport { Trek } from 'components';\nimport { getDataInStore } from 'services/grw-db.service';\nimport { arrayBufferToBlob } from 'utils/utils';\n\n@Component({\n tag: 'grw-map',\n styleUrl: 'grw-map.scss',\n shadow: true,\n})\nexport class GrwMap {\n mapRef: HTMLElement;\n elevationRef: HTMLElement;\n maxZoom = 19;\n\n @Event() trekCardPress: EventEmitter<number>;\n @Event() touristicContentCardPress: EventEmitter<number>;\n @Event() touristicEventCardPress: EventEmitter<number>;\n\n @State() mapIsReady = false;\n @Prop() nameLayer: string;\n @Prop() urlLayer: string;\n @Prop() attributionLayer: string;\n @Prop() center = '1, 1';\n @Prop() zoom = 10;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() colorTrekLine = '#6b0030';\n @Prop() colorSensitiveArea = '#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n @Prop() useGradient = false;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Prop() isLargeView = false;\n map: L.Map;\n resizeObserver: ResizeObserver;\n bounds;\n treksLayer: L.GeoJSON<any>;\n toutisticContentsLayer: L.GeoJSON<any>;\n touristicEventsLayer: L.GeoJSON<any>;\n\n treksMarkerClusterGroup: MarkerClusterGroup;\n touristicContentsMarkerClusterGroup: MarkerClusterGroup;\n touristicEventsMarkerClusterGroup: MarkerClusterGroup;\n currentTrekLayer: L.GeoJSON<any>;\n currentStepsLayer: L.GeoJSON<any>;\n selectedCurrentTrekLayer: L.GeoJSON<any>;\n selectedCurrentStepLayer: L.GeoJSON<any>;\n selectedTouristicContentLayer: L.GeoJSON<any>;\n selectedTouristicEventLayer: L.GeoJSON<any>;\n currentReferencePointsLayer: L.GeoJSON<any>;\n currentParkingLayer: L.GeoJSON<any>;\n currentSensitiveAreasLayer: L.GeoJSON<any>;\n currentPoisLayer: L.GeoJSON<any>;\n currentInformationDesksLayer: L.GeoJSON<any>;\n currentToutisticContentsLayer: L.GeoJSON<any>;\n currenttouristicEventsLayer: L.GeoJSON<any>;\n currentToutisticContentLayer: L.GeoJSON<any>;\n currentToutisticEventLayer: L.GeoJSON<any>;\n elevationControl: L.Control.Layers;\n departureArrivalLayer: L.GeoJSON<any>;\n layersControl: L.Control.Layers;\n userLayersState: {\n [key: number]: boolean;\n } = {};\n tileLayer: { key: string; value: TileLayer }[] = [];\n trekPopupIsOpen: boolean;\n stepPopupIsOpen: boolean;\n touristicContentPopupIsOpen: boolean;\n touristicEventPopupIsOpen: boolean;\n\n handleTreksWithinBoundsBind: (event: any) => void = this.handleTreksWithinBounds.bind(this);\n handleTouristicContentsWithinBoundsBind: (event: any) => void = this.handleTouristicContentsWithinBounds.bind(this);\n handleTouristicEventsWithinBoundsBind: (event: any) => void = this.handleTouristicEventsWithinBounds.bind(this);\n\n @Listen('centerOnMap', { target: 'window' })\n onCenterOnMap(event: CustomEvent<{ latitude: number; longitude: number }>) {\n this.map.setView(new L.LatLng(event.detail.latitude, event.detail.longitude), 17, { animate: false });\n }\n\n @Listen('stepsIsInViewport', { target: 'window' })\n stepsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentStepsLayer) {\n this.handleLayerVisibility(event.detail, this.currentStepsLayer);\n }\n }\n\n @Listen('descriptionIsInViewport', { target: 'window' })\n descriptionIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentReferencePointsLayer) {\n this.handleLayerVisibility(event.detail, this.currentReferencePointsLayer);\n }\n }\n\n @Listen('parkingIsInViewport', { target: 'window' })\n parkingIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentParkingLayer) {\n this.handleLayerVisibility(event.detail, this.currentParkingLayer);\n }\n }\n\n @Listen('informationDeskIsInViewport', { target: 'window' })\n onInformationDesksIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentInformationDesksLayer) {\n this.handleLayerVisibility(event.detail, this.currentInformationDesksLayer);\n }\n }\n\n @Listen('sensitiveAreaIsInViewport', { target: 'window' })\n sensitiveAreaIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentSensitiveAreasLayer) {\n this.handleLayerVisibility(event.detail, this.currentSensitiveAreasLayer);\n }\n }\n\n @Listen('poiIsInViewport', { target: 'window' })\n poiIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentPoisLayer) {\n this.handleLayerVisibility(event.detail, this.currentPoisLayer);\n }\n }\n\n @Listen('touristicContentsIsInViewport', { target: 'window' })\n touristicContentsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentToutisticContentsLayer) {\n this.handleLayerVisibility(event.detail, this.currentToutisticContentsLayer);\n }\n }\n\n @Listen('touristicEventsIsInViewport', { target: 'window' })\n touristicEventsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currenttouristicEventsLayer) {\n this.handleLayerVisibility(event.detail, this.currenttouristicEventsLayer);\n }\n }\n\n @Listen('cardTrekMouseOver', { target: 'window' })\n onCardTrekMouseOver(event: CustomEvent<number>) {\n if (!state.parentTrek && (!state.selectedTrekId || state.selectedTrekId !== event.detail)) {\n state.selectedTrekId = event.detail;\n this.hideTrekLine();\n this.showTrekLine(event.detail);\n this.addSelectedCurrentTrek(event.detail);\n } else if (state.parentTrek) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.addSelectedCurrentStep(event.detail);\n }\n }\n\n @Listen('cardTrekMouseLeave', { target: 'window' })\n onCardTrekMouseLeave() {\n if (!this.trekPopupIsOpen && state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n } else if (this.selectedCurrentStepLayer) {\n this.removeSelectedCurrentStep();\n }\n }\n\n @Listen('cardTouristicContentMouseOver', { target: 'window' })\n onTouristicContentMouseOver(event: CustomEvent<number>) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.addSelectedTouristicContent(event.detail);\n }\n\n @Listen('cardTouristicContentMouseLeave', { target: 'window' })\n onTouristicContentMouseLeave() {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n\n @Listen('cardTouristicEventMouseOver', { target: 'window' })\n onTouristicEventMouseOver(event: CustomEvent<number>) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.addSelectedTouristicEvent(event.detail);\n }\n\n @Listen('cardTouristicEventMouseLeave', { target: 'window' })\n onTouristicEventMouseLeave() {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n\n @Listen('trekDownloadedSuccessConfirm', { target: 'window' })\n onTrekDownloadedSuccessConfirm() {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n }\n\n @Listen('trekDeleteSuccessConfirm', { target: 'window' })\n onTrekDeleteSuccessConfirm() {\n this.map.setMaxZoom(this.maxZoom);\n }\n\n componentDidLoad() {\n this.map = L.map(this.mapRef, {\n center: this.center.split(',').map(Number) as L.LatLngExpression,\n zoom: this.zoom,\n });\n\n L.control.scale({ metric: true, imperial: false }).addTo(this.map);\n (L.control as any).locate({ showPopup: false }).addTo(this.map);\n\n const nameLayers = this.nameLayer ? this.nameLayer.split(',') : [];\n\n const urlLayers = this.urlLayer.split(',http').map((url, index) => (index === 0 ? url : 'http' + url));\n\n const attributionLayers = this.attributionLayer ? this.attributionLayer.split(',') : [];\n urlLayers.forEach((urlLayer, index) => {\n this.tileLayer.push({\n key: `${nameLayers[index]}`,\n value: tileLayerOffline(urlLayer, {\n maxZoom: this.maxZoom,\n attribution: `${\n attributionLayers[index] && attributionLayers[index] !== '' ? attributionLayers[index].concat(' | ') : ''\n }Powered by <a target=\"_blank\" href=\"https://geotrek.fr/\">Geotrek</a>`,\n crossOrigin: true,\n }),\n });\n });\n\n this.tileLayer[0].value.addTo(this.map);\n\n if (urlLayers.length > 1) {\n this.layersControl = L.control\n .layers(\n this.tileLayer.reduce((tileLayers, tileLayer) => Object.assign(tileLayers, { [tileLayer.key]: tileLayer.value }), {}),\n {},\n { collapsed: true },\n )\n .addTo(this.map);\n }\n\n (L.Control as any).Contract = L.Control.extend({\n onAdd: () => {\n const contractContainer = L.DomUtil.create('div');\n contractContainer.className = 'leaflet-bar leaflet-control';\n const contract = contractContainer.appendChild(L.DomUtil.create('a'));\n contract.href = '#';\n contract.style.backgroundImage = `var(--contract-image-src)`;\n contractContainer.onclick = e => {\n this.bounds && this.map.fitBounds(this.bounds);\n e.preventDefault();\n };\n return contractContainer;\n },\n });\n\n (L.control as any).contract = opts => {\n return new (L.Control as any).Contract(opts);\n };\n\n (L.control as any).contract({ position: 'topleft' }).addTo(this.map);\n\n if (state.currentTrek) {\n this.addTrek();\n } else if (state.currentTreks) {\n this.addTreks();\n } else if (state.currentTouristicContent) {\n this.addTouristicContent();\n } else if (state.currentTouristicEvent) {\n this.addTouristicEvent();\n } else if (state.touristicContents) {\n this.addTouristicContents();\n } else if (state.touristicEvents) {\n this.addTouristicEvents();\n }\n\n onChange('currentTreks', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks(true);\n }\n });\n\n onChange('currentTrek', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContent', () => {\n if (state.currentTouristicContent) {\n this.removeTrek();\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.touristicContents) {\n this.removeTouristicContent();\n this.addTouristicContents();\n } else if (state.currentTrek) {\n this.removeTouristicContent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicContent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicEvent', () => {\n if (state.currentTouristicEvent) {\n this.removeTrek();\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTrek) {\n this.removeTouristicEvent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicContent) {\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.currentTouristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.removeTouristicContent();\n this.addTouristicContents(true);\n }\n });\n\n onChange('currentTouristicEvents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicEvent) {\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTouristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvent();\n this.addTouristicEvents(true);\n }\n });\n\n onChange('mode', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.mode === 'treks') {\n if (state.treks) {\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.addTreks(true);\n }\n } else if (state.mode === 'touristicContents') {\n if (state.touristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.addTouristicContents(true);\n }\n } else if (state.mode === 'touristicEvents') {\n if (state.touristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.addTouristicEvents(true);\n }\n }\n });\n }\n\n handleLayerVisibility(visible: boolean, layer: L.GeoJSON) {\n if (visible && !this.map.hasLayer(layer)) {\n layer.addTo(this.map);\n } else if (this.map.hasLayer(layer) && !this.userLayersState[(layer as any)._leaflet_id]) {\n this.map.removeLayer(layer);\n }\n this.handleLayersControlEvent();\n }\n\n async addTreks(resetBounds = false) {\n state.treksWithinBounds = state.currentTreks;\n\n const treksCurrentDepartureCoordinates = [];\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n for (const trek of state.currentTreks) {\n treksCurrentDepartureCoordinates.push(trek.departure_geom);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.treksLayer) {\n if ((treksCurrentDepartureCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(treksCurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n\n this.treksLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'trek-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.hideTrekLine();\n this.showTrekLine(geoJsonPoint.properties.id);\n this.addSelectedCurrentTrek(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.treksMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({ html: '<div>' + cluster.getChildCount() + '</div>', className: 'treks-marker-cluster-group-icon', iconSize: 48 } as any);\n },\n });\n\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n this.map.addLayer(this.treksMarkerClusterGroup);\n } else {\n if (treksCurrentDepartureCoordinates.length > 0) {\n this.bounds = L.latLngBounds(treksCurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.treksLayer.clearLayers();\n this.treksLayer.addData(treksFeatureCollection);\n this.treksMarkerClusterGroup.clearLayers();\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n }\n this.bounds && this.bounds._northEast && this.bounds._southWest && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n this.map.on('moveend', this.handleTreksWithinBoundsBind);\n }\n\n removeTreks() {\n if (this.treksLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.treksMarkerClusterGroup);\n this.treksLayer = null;\n this.treksMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTreksWithinBoundsBind);\n }\n }\n\n handleTreksWithinBounds() {\n if (\n (state.currentTreks && !state.currentMapBounds) ||\n (state.currentTreks && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.treksWithinBounds = state.currentTreks.filter(trek => this.map.getBounds().contains(L.latLng(trek.departure_geom[1], trek.departure_geom[0])));\n }\n }\n\n handleTouristicContentsWithinBounds() {\n if (\n (state.currentTouristicContents && !state.currentMapBounds) ||\n (state.currentTouristicContents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicContentsWithinBounds = state.currentTouristicContents.filter(touristicContent =>\n this.map.getBounds().contains(L.latLng(touristicContent.geometry.coordinates[1], touristicContent.geometry.coordinates[0])),\n );\n }\n }\n\n handleTouristicEventsWithinBounds() {\n if (\n (state.currentTouristicEvents && !state.currentMapBounds) ||\n (state.currentTouristicEvents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents.filter(touristicEvent =>\n this.map.getBounds().contains(L.latLng(touristicEvent.geometry.coordinates[1], touristicEvent.geometry.coordinates[0])),\n );\n }\n }\n\n async addTrek() {\n const trekInStore: Trek = await getDataInStore('treks', state.currentTrek.id);\n if (trekInStore) {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n } else {\n this.map.setMaxZoom(this.maxZoom);\n }\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: state.currentTrek.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: 'transparent',\n }),\n interactive: false,\n }).addTo(this.map);\n\n if (state.currentTrek.parking_location) {\n const parkingImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/parking.svg`);\n const currentParking: Feature = {\n type: 'Feature',\n properties: { name: state.currentTrek.advised_parking },\n geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },\n };\n this.currentParkingLayer = L.geoJSON(currentParking, {\n pointToLayer: (_geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: `<img crossorigin=\"anonymous\" src=${parkingImageSrc} />`,\n className: 'parking-icon',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const parkingTooltip = L.DomUtil.create('div');\n parkingTooltip.className = 'parking-tooltip';\n const parkingName = L.DomUtil.create('div');\n parkingName.innerHTML = geoJsonPoint.properties.name;\n parkingName.className = 'parking-name';\n parkingTooltip.appendChild(parkingName);\n layer.bindTooltip(parkingTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {\n const currentSensitiveAreasFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const sensitiveArea of state.currentSensitiveAreas) {\n currentSensitiveAreasFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: sensitiveArea.name },\n geometry: sensitiveArea.geometry,\n });\n }\n\n this.currentSensitiveAreasLayer = L.geoJSON(currentSensitiveAreasFeatureCollection, {\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const sensitiveAreaTooltip = L.DomUtil.create('div');\n sensitiveAreaTooltip.className = 'sensitive-area-tooltip';\n const sensitiveAreaName = L.DomUtil.create('div');\n sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;\n sensitiveAreaName.className = 'sensitive-area-name';\n sensitiveAreaTooltip.appendChild(sensitiveAreaName);\n layer.bindTooltip(sensitiveAreaTooltip).openTooltip();\n });\n },\n style: () => ({ color: this.colorSensitiveArea }),\n });\n }\n\n if (state.currentPois && state.currentPois.length > 0) {\n const currentPoisFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentPoi of state.currentPois) {\n currentPoisFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentPoi.name, type_pictogram: state.poiTypes.find(poiType => poiType.id === currentPoi.type)?.pictogram },\n geometry: currentPoi.geometry,\n });\n }\n\n const poiIcons = await this.getIcons(currentPoisFeatureCollection, 'type_pictogram');\n\n this.currentPoisLayer = L.geoJSON(currentPoisFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: poiIcons[geoJsonPoint.properties.type_pictogram] ? `<img crossorigin=\"anonymous\" src=${poiIcons[geoJsonPoint.properties.type_pictogram]} />` : `<img />`,\n className: 'poi-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const poiTooltip = L.DomUtil.create('div');\n poiTooltip.className = 'poi-tooltip';\n const poiName = L.DomUtil.create('div');\n poiName.innerHTML = geoJsonPoint.properties.name;\n poiName.className = 'poi-name';\n poiTooltip.appendChild(poiName);\n layer.bindTooltip(poiTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.trekTouristicContents && state.trekTouristicContents.length > 0) {\n const currentTouristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicContent of state.trekTouristicContents) {\n currentTouristicContentsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicContent.name,\n category_pictogram: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === touristicContent.category)?.pictogram,\n },\n geometry: touristicContent.geometry,\n });\n }\n\n const toutisticContentsIcons = await this.getIcons(currentTouristicContentsFeatureCollection, 'category_pictogram');\n\n this.currentToutisticContentsLayer = L.geoJSON(currentTouristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) => {\n return L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]\n ? `<img crossorigin=\"anonymous \"src=${toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]} />`\n : `<img />`,\n className: 'touristic-content-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicContentTooltip = L.DomUtil.create('div');\n touristicContentTooltip.className = 'touristic-content-tooltip';\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentTooltip.appendChild(touristicContentName);\n layer.bindTooltip(touristicContentTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.touristicEvents && state.touristicEvents.length > 0) {\n const currentTouristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicEvent of state.touristicEvents) {\n currentTouristicEventsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicEvent.name,\n type_pictogram: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === touristicEvent.type)?.pictogram,\n },\n geometry: touristicEvent.geometry,\n });\n }\n\n const toutisticEventsIcons = await this.getIcons(currentTouristicEventsFeatureCollection, 'type_pictogram');\n this.currenttouristicEventsLayer = L.geoJSON(currentTouristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]\n ? `\n <img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<img />`,\n className: 'touristic-event-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicEventTooltip = L.DomUtil.create('div');\n touristicEventTooltip.className = 'touristic-event-tooltip';\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventTooltip.appendChild(touristicEventName);\n layer.bindTooltip(touristicEventTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {\n const currentInformationDesksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentInformationDesk of state.currentInformationDesks.filter(currentInformationDesks =>\n state.currentTrek.information_desks.includes(currentInformationDesks.id),\n )) {\n if (currentInformationDesk.latitude && currentInformationDesk.longitude) {\n currentInformationDesksFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },\n geometry: { type: 'Point', coordinates: [Number(currentInformationDesk.longitude), Number(currentInformationDesk.latitude)] },\n });\n }\n }\n\n if (currentInformationDesksFeatureCollection.features.length > 0) {\n const informationDesksIcons = await this.getIcons(currentInformationDesksFeatureCollection, 'type_pictogram');\n this.currentInformationDesksLayer = L.geoJSON(currentInformationDesksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: informationDesksIcons[geoJsonPoint.properties.type_pictogram]\n ? `<img crossorigin=\"anonymous\" src=${informationDesksIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<img />`,\n className: 'information-desks-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const informationDesksTooltip = L.DomUtil.create('div');\n informationDesksTooltip.className = 'information-desks-tooltip';\n const informationDesksName = L.DomUtil.create('div');\n informationDesksName.innerHTML = geoJsonPoint.properties.name;\n informationDesksName.className = 'information-desks-name';\n informationDesksTooltip.appendChild(informationDesksName);\n layer.bindTooltip(informationDesksTooltip).openTooltip();\n });\n },\n });\n }\n }\n\n if (state.currentTrek.points_reference) {\n const currentReferencePointsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n currentReferencePointsFeatureCollection.features.push({\n type: 'Feature',\n properties: {},\n geometry: state.currentTrek.points_reference,\n });\n\n let index = 0;\n this.currentReferencePointsLayer = L.geoJSON(currentReferencePointsFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: index,\n className: 'point-reference-icon',\n iconSize: 24,\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any);\n },\n });\n }\n\n if (!this.currentStepsLayer && state.parentTrekId && state.parentTrek && state.currentTrek.id === state.parentTrekId) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n for (const trek of state.currentTrekSteps) {\n stepsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n }\n\n let stepIndex = 0;\n this.currentStepsLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n stepIndex += 1;\n return L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${stepIndex}</div></div>`,\n className: 'step-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedCurrentStep(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n }\n\n let elevationTranslation = {\n 'y: ': '',\n 'x: ': '',\n 'Total Length: ': 'Longueur totale : ',\n 'Min Elevation: ': 'Altitude min : ',\n 'Max Elevation: ': 'Altitude max : ',\n };\n\n /* @ts-ignore */\n L.registerLocale('fr', elevationTranslation);\n /* @ts-ignore */\n L.setLocale('fr');\n\n const elevationOptions = {\n srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',\n elevationDiv: `#elevation`,\n theme: `custom-theme${!this.useGradient ? ' use-theme-color' : ''}`,\n detached: true,\n height: 280,\n wptIcons: true,\n wptLabels: true,\n collapsed: false,\n autohide: false,\n distanceMarkers: { distance: false, direction: true },\n hotline: this.useGradient,\n closeBtn: false,\n summary: 'inline',\n time: false,\n timestamps: false,\n legend: false,\n downloadLink: false,\n autofitBounds: false,\n ruler: false,\n edgeScale: false,\n waypoints: false,\n almostOver: false,\n speed: false,\n slope: false,\n acceleration: false,\n reverseCoords: false,\n imperial: false,\n dragging: false,\n zooming: false,\n handlers: ['Altitude', 'Distance', 'Slope', 'LinearGradient'],\n linearGradient: {\n attr: 'z',\n path: 'altitude',\n range: { 0.0: '#008800', 0.5: '#ffff00', 1.0: '#ff0000' },\n min: 'elevation_min',\n max: 'elevation_max',\n },\n };\n this.elevationControl = (L.control as any).elevation({ ...elevationOptions }).addTo(this.map);\n const elevation = JSON.stringify({\n name: `${state.currentTrek.name}`,\n type: 'FeatureCollection',\n features: [{ type: 'Feature', geometry: { type: 'LineString', coordinates: state.currentTrek.geometry.coordinates }, properties: null }],\n });\n (this.elevationControl as any).load(elevation);\n\n const departureArrival: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[state.currentTrek.geometry.coordinates.length - 1] },\n properties: null,\n },\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[0] },\n properties: null,\n },\n ],\n };\n\n let index = 0;\n this.departureArrivalLayer = L.geoJSON(departureArrival, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: `<div></div>`,\n className: index === 1 ? 'departure-marker' : 'arrival-marker',\n iconSize: 22,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n });\n this.map.addLayer(this.departureArrivalLayer);\n\n const overlays = {};\n if (this.currentStepsLayer) {\n overlays[translate[state.language].layers.steps] = this.currentStepsLayer;\n }\n if (this.currentReferencePointsLayer) {\n overlays[translate[state.language].layers.referencePoints] = this.currentReferencePointsLayer;\n }\n if (this.currentParkingLayer) {\n overlays[translate[state.language].layers.parking] = this.currentParkingLayer;\n }\n if (this.currentSensitiveAreasLayer) {\n overlays[translate[state.language].layers.sensitiveArea] = this.currentSensitiveAreasLayer;\n }\n if (this.currentInformationDesksLayer) {\n overlays[translate[state.language].layers.informationPlaces] = this.currentInformationDesksLayer;\n }\n if (this.currentPoisLayer) {\n overlays[translate[state.language].layers.pois] = this.currentPoisLayer;\n }\n if (this.currentToutisticContentsLayer) {\n overlays[translate[state.language].layers.touristicContents] = this.currentToutisticContentsLayer;\n }\n\n if (this.currenttouristicEventsLayer) {\n overlays[translate[state.language].layers.touristicEvents] = this.currenttouristicEventsLayer;\n }\n\n if (this.layersControl) {\n Object.keys(overlays).forEach(key => {\n this.layersControl.addOverlay(overlays[key], key);\n });\n } else {\n this.layersControl = L.control.layers({}, overlays, { collapsed: true }).addTo(this.map);\n }\n\n this.handleLayersControlEvent();\n\n this.bounds = L.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n async getIcons(featuresCollection, property) {\n const icons = {};\n for (let index = 0; index < featuresCollection.features.length; index++) {\n if (featuresCollection.features[index].properties[property]) {\n icons[featuresCollection.features[index].properties[property]] = await this.getIcon(featuresCollection.features[index].properties[property]);\n }\n }\n return icons;\n }\n async getIcon(pictogram) {\n const dataInStore = await getDataInStore('images', pictogram);\n const icon = dataInStore ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type)) : pictogram ? pictogram : null;\n return icon;\n }\n\n async addSelectedCurrentTrek(id, customCoordinates?) {\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n const trek = state.currentTreks.find(trek => trek.id === id);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedCurrentTrek();\n state.selectedTrekId = id;\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n this.selectedCurrentTrekLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'selected-trek-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.trekPopupIsOpen) {\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n layer.on('popupopen', () => {\n this.trekPopupIsOpen = Boolean(state.selectedTrekId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentTrek() {\n state.selectedTrekId = null;\n this.selectedCurrentTrekLayer && this.map.removeLayer(this.selectedCurrentTrekLayer);\n this.selectedCurrentTrekLayer = null;\n }\n\n addSelectedCurrentStep(id, customCoordinates?) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n const stepIndex = state.currentTrekSteps.findIndex(trek => trek.id === id);\n stepsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : state.currentTrekSteps[stepIndex].departure_geom },\n properties: {\n id: state.currentTrekSteps[stepIndex].id,\n name: state.currentTrekSteps[stepIndex].name,\n practice: state.practices.find(practice => practice.id === state.currentTrekSteps[stepIndex].practice)?.pictogram,\n imgSrc:\n state.currentTrekSteps[stepIndex].attachments && state.currentTrekSteps[stepIndex].attachments.length > 0 && state.currentTrekSteps[stepIndex].attachments[0].thumbnail,\n index: stepIndex + 1,\n },\n });\n }\n\n this.removeSelectedCurrentStep();\n state.selectedStepId = id;\n\n this.selectedCurrentStepLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${geoJsonPoint.properties.index}</div></div>`,\n className: 'selected-step-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.stepPopupIsOpen) {\n state.selectedTrekId = null;\n this.removeSelectedCurrentStep();\n }\n });\n layer.on('popupopen', () => {\n this.stepPopupIsOpen = Boolean(state.selectedStepId);\n });\n layer.on('popupclose', () => {\n if (state.selectedStepId) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.removeSelectedCurrentStep();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentStep() {\n if (state.selectedStepId) {\n state.selectedStepId = null;\n this.selectedCurrentStepLayer && this.map.removeLayer(this.selectedCurrentStepLayer);\n this.selectedCurrentStepLayer = null;\n }\n }\n\n handleLayersControlEvent() {\n const userLayersState: HTMLInputElement[] = (this.layersControl as any)._layerControlInputs;\n userLayersState.forEach((userLayerState: any) => {\n if ((this.layersControl as any)._layers.find(layer => layer.layer._leaflet_id === userLayerState.layerId).overlay) {\n userLayerState.onchange = event => {\n this.userLayersState[userLayerState.layerId] = (event.target as any).checked;\n };\n }\n });\n }\n\n removeTrek() {\n if (this.layersControl) {\n if (!(this.layersControl as any)._layers.some(layer => !layer.overlay)) {\n this.map.removeControl(this.layersControl);\n this.layersControl = null;\n } else {\n (this.layersControl as any)._layers\n .filter(layer => layer.overlay)\n .forEach(layer => {\n this.layersControl.removeLayer(layer.layer);\n });\n }\n }\n\n if (this.elevationControl) {\n (this.elevationControl as any).clear();\n this.map.removeControl(this.elevationControl);\n this.elevationControl = null;\n }\n\n if (this.departureArrivalLayer) {\n this.map.removeLayer(this.departureArrivalLayer);\n this.departureArrivalLayer = null;\n }\n\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n\n if (this.currentParkingLayer) {\n this.map.removeLayer(this.currentParkingLayer);\n this.currentParkingLayer = null;\n }\n\n if (this.currentSensitiveAreasLayer) {\n this.map.removeLayer(this.currentSensitiveAreasLayer);\n this.currentSensitiveAreasLayer = null;\n }\n\n if (this.currentPoisLayer) {\n this.map.removeLayer(this.currentPoisLayer);\n this.currentPoisLayer = null;\n }\n\n if (this.currentInformationDesksLayer) {\n this.map.removeLayer(this.currentInformationDesksLayer);\n this.currentInformationDesksLayer = null;\n }\n\n if (this.currentReferencePointsLayer) {\n this.map.removeLayer(this.currentReferencePointsLayer);\n this.currentReferencePointsLayer = null;\n }\n\n if (this.currentStepsLayer) {\n this.map.removeLayer(this.currentStepsLayer);\n this.currentStepsLayer = null;\n }\n\n if (this.currentToutisticContentsLayer) {\n this.map.removeLayer(this.currentToutisticContentsLayer);\n this.currentToutisticContentsLayer = null;\n }\n if (this.currenttouristicEventsLayer) {\n this.map.removeLayer(this.currenttouristicEventsLayer);\n this.currenttouristicEventsLayer = null;\n }\n }\n\n async showTrekLine(id) {\n // this.removeSelectedCurrentTrek();\n const trekLine = await getTrekGeometry(id);\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: trekLine.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: this.colorTrekLine,\n }),\n interactive: false,\n }).addTo(this.map);\n }\n\n hideTrekLine() {\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n }\n\n async addTouristicContent() {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContent) {\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicContent.geometry.coordinates },\n properties: {\n id: state.currentTouristicContent.id,\n name: state.currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category).pictogram,\n },\n });\n }\n\n if (!this.currentToutisticContentLayer) {\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.currentToutisticContentLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous \"src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticContentLayer);\n }\n\n this.map.setView([state.currentTouristicContent.geometry.coordinates[1], state.currentTouristicContent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicContent() {\n if (this.currentToutisticContentLayer) {\n this.map.removeLayer(this.currentToutisticContentLayer);\n this.currentToutisticContentLayer = null;\n }\n }\n\n async addTouristicContents(resetBounds = false) {\n state.touristicContentsWithinBounds = state.currentTouristicContents;\n\n const touristicContentsCurrentCoordinates = [];\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContents) {\n for (const currentTouristicContent of state.currentTouristicContents) {\n touristicContentsCurrentCoordinates.push(currentTouristicContent.geometry.coordinates);\n\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicContent.geometry.coordinates },\n properties: {\n id: currentTouristicContent.id,\n name: currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === currentTouristicContent.category).pictogram,\n imgSrc: currentTouristicContent.attachments && currentTouristicContent.attachments.length > 0 && currentTouristicContent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.toutisticContentsLayer) {\n if ((touristicContentsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.toutisticContentsLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentCoordinatesPopup = L.DomUtil.create('div');\n touristicContentCoordinatesPopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentCoordinatesPopup.appendChild(touristicContentImg);\n }\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentCoordinatesPopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentCoordinatesPopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicContent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicContentsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-content-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\n this.map.addLayer(this.touristicContentsMarkerClusterGroup);\n } else {\n if (touristicContentsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.toutisticContentsLayer.clearLayers();\n this.toutisticContentsLayer.addData(touristicContentsFeatureCollection);\n this.touristicContentsMarkerClusterGroup.clearLayers();\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\n }\n\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n\n this.map.on('moveend', this.handleTouristicContentsWithinBoundsBind);\n }\n\n removeTouristicContents() {\n if (this.toutisticContentsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicContentsMarkerClusterGroup);\n this.toutisticContentsLayer = null;\n this.touristicContentsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicContentsWithinBoundsBind);\n }\n }\n\n async addTouristicEvent() {\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvent) {\n const touristicEventType = state.touristicEventTypes.find(touristicEventType => touristicEventType.id === state.currentTouristicEvent.type);\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicEvent.geometry.coordinates },\n properties: {\n id: state.currentTouristicEvent.id,\n name: state.currentTouristicEvent.name,\n type: touristicEventType ? touristicEventType.pictogram : null,\n },\n });\n }\n\n if (!this.currentToutisticEventLayer) {\n const toutisticEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.currentToutisticEventLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticEventLayer);\n }\n\n this.map.setView([state.currentTouristicEvent.geometry.coordinates[1], state.currentTouristicEvent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicEvent() {\n if (this.currentToutisticEventLayer) {\n this.map.removeLayer(this.currentToutisticEventLayer);\n this.currentToutisticEventLayer = null;\n }\n }\n\n async addSelectedTouristicContent(id, customCoordinates?) {\n const touristicContentFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicContents) {\n const touristicContent = state.touristicContents.find(touristicContent => touristicContent.id === id);\n touristicContentFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicContent.geometry.coordinates },\n properties: {\n id: touristicContent.id,\n name: touristicContent.name,\n category: state.touristicContentCategories.find(practice => practice.id === touristicContent.category)?.pictogram,\n imgSrc: touristicContent.attachments && touristicContent.attachments.length > 0 && touristicContent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicContent();\n state.selectedTouristicContentId = id;\n\n const toutisticContentIcons = await this.getIcons(touristicContentFeatureCollection, 'category');\n this.selectedTouristicContentLayer = L.geoJSON(touristicContentFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'selected-touristic-content-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentDeparturePopup = L.DomUtil.create('div');\n touristicContentDeparturePopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentDeparturePopup.appendChild(touristicContentImg);\n }\n\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentDeparturePopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentDeparturePopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicContentPopupIsOpen) {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicContentPopupIsOpen = Boolean(state.selectedTouristicContentId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicContentId) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicContent() {\n state.selectedTouristicContentId = null;\n this.selectedTouristicContentLayer && this.map.removeLayer(this.selectedTouristicContentLayer);\n this.selectedTouristicContentLayer = null;\n }\n\n async addTouristicEvents(resetBounds = false) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents;\n\n const touristicEventsCurrentCoordinates = [];\n\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvents) {\n for (const currentTouristicEvent of state.currentTouristicEvents) {\n touristicEventsCurrentCoordinates.push(currentTouristicEvent.geometry.coordinates);\n\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicEvent.geometry.coordinates },\n properties: {\n id: currentTouristicEvent.id,\n name: currentTouristicEvent.name,\n type: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === currentTouristicEvent.type)?.pictogram,\n imgSrc: currentTouristicEvent.attachments && currentTouristicEvent.attachments.length > 0 && currentTouristicEvent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.touristicEventsLayer) {\n if ((touristicEventsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const touristicEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.touristicEventsLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventCoordinatesPopup = L.DomUtil.create('div');\n touristicEventCoordinatesPopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventCoordinatesPopup.appendChild(touristicEventImg);\n }\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventCoordinatesPopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventCoordinatesPopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicEvent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicEventsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-event-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\n this.map.addLayer(this.touristicEventsMarkerClusterGroup);\n } else {\n if (touristicEventsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.touristicEventsLayer.clearLayers();\n this.touristicEventsLayer.addData(touristicEventsFeatureCollection);\n this.touristicEventsMarkerClusterGroup.clearLayers();\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\n }\n\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n\n this.map.on('moveend', this.handleTouristicEventsWithinBoundsBind);\n }\n\n removeTouristicEvents() {\n if (this.touristicEventsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicEventsMarkerClusterGroup);\n this.touristicEventsLayer = null;\n this.touristicEventsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicEventsWithinBoundsBind);\n }\n }\n\n async addSelectedTouristicEvent(id, customCoordinates?) {\n const touristicEventFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicEvents) {\n const touristicEvent = state.touristicEvents.find(touristicEvent => touristicEvent.id === id);\n touristicEventFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicEvent.geometry.coordinates },\n properties: {\n id: touristicEvent.id,\n name: touristicEvent.name,\n category: state.touristicEventTypes.find(type => type.id === touristicEvent.type)?.pictogram,\n imgSrc: touristicEvent.attachments && touristicEvent.attachments.length > 0 && touristicEvent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicEvent();\n state.selectedTouristicEventId = id;\n\n const touristicEventsIcons = await this.getIcons(touristicEventFeatureCollection, 'category');\n this.selectedTouristicEventLayer = L.geoJSON(touristicEventFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'selected-touristic-event-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventDeparturePopup = L.DomUtil.create('div');\n touristicEventDeparturePopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventDeparturePopup.appendChild(touristicEventImg);\n }\n\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventDeparturePopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventDeparturePopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicEventPopupIsOpen) {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicEventPopupIsOpen = Boolean(state.selectedTouristicEventId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicEventId) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicEvent() {\n state.selectedTouristicEventId = null;\n this.selectedTouristicEventLayer && this.map.removeLayer(this.selectedTouristicEventLayer);\n this.selectedTouristicEventLayer = null;\n }\n\n render() {\n const layersImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/layers.svg`);\n const contractImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/contract.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-background': this.colorBackground,\n '--color-poi-icon': this.colorPoiIcon,\n '--color-trek-line': this.colorTrekLine,\n '--layers-image-src': `url(${layersImageSrc})`,\n '--contract-image-src': `url(${contractImageSrc})`,\n '--map-bottom-space-height': this.isLargeView ? '0px' : '80px',\n }}\n >\n <div id=\"map\" part=\"map\" class={state.currentTrek ? 'trek-map' : 'treks-map'} ref={el => (this.mapRef = el)}></div>\n {state.currentTrek && (\n <div>\n <div id=\"elevation\" part=\"elevation\" ref={el => (this.elevationRef = el)}></div>\n <div part=\"map-bottom-space\" class=\"map-bottom-space\"></div>\n </div>\n )}\n\n {!this.mapIsReady && (\n <div part=\"map-loader-container\" class=\"map-loader-container\">\n <span part=\"loader\" class=\"loader\"></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n .icon {\n color: var(--color-on-primary-container);\n font-size: 24px;\n position: absolute;\n left: 32px;\n z-index: 20;\n pointer-events: none;\n }\n}\n\n.search-input {\n width: 100%;\n background-color: var(--color-surface-container-high);\n box-shadow: var(--elevation-2);\n border: none;\n border-radius: var(--border-radius, 40px);\n color: var(--color-on-primary-container);\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n font-family: var(--font-family);\n height: 44px;\n padding: 0px 16px 0px 48px;\n outline-color: var(--color-outline);\n &::placeholder {\n color: var(--color-on-primary-container);\n }\n &::-webkit-search-cancel-button {\n -webkit-appearance: none;\n background-color: var(--color-on-primary-container);\n -webkit-mask-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23777'><path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/></svg>\");\n background-size: 20px 20px;\n height: 20px;\n width: 20px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport state from 'store/store';\nimport { handleTouristicContentsFiltersAndSearch, handleTouristicEventsFiltersAndSearch, handleTreksFiltersAndSearch } from 'utils/utils';\n\n@Component({\n tag: 'grw-search',\n styleUrl: 'grw-search.scss',\n shadow: true,\n})\nexport class GrwSearch {\n @Prop() fontFamily = 'Roboto';\n\n onSearchChange(event: InputEvent) {\n state.searchValue = (event.target as any).value;\n if (state.mode === 'treks') {\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (state.mode === 'touristicContents') {\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (state.mode === 'touristicEvents') {\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n search\n </span>\n <input part=\"search-input\" class=\"search-input\" onInput={e => this.onSearchChange(e)} type=\"search\" placeholder=\"Rechercher\" value={state.searchValue}></input>\n </Host>\n );\n }\n}\n",".segmented-buttons-container {\n font-family: var(--font-family);\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport { Mode } from 'types/types';\n\nimport {\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n touristicEventsFilters,\n treksFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-segmented-segment',\n styleUrl: 'grw-segmented-segment.scss',\n shadow: true,\n})\nexport class GrwSegmentedSegment {\n @Prop() treks = true;\n @Prop() touristicContents = false;\n @Prop() touristicEvents = false;\n\n @Prop() fontFamily = 'Roboto';\n\n changeMode(mode: Mode) {\n state.searchValue = '';\n if (mode === 'treks' && state.currentTreks) {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (mode === 'touristicContents' && state.currentTouristicContents) {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (mode === 'touristicEvents' && state.currentTouristicEvents) {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n state.mode = mode;\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.treks && (\n <label part=\"segment\" class={`segment${state.mode === 'treks' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('treks')}>\n {translate[state.language].home.segment.treks}\n </label>\n )}\n {this.touristicContents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicContents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicContents')}>\n {translate[state.language].home.segment.touristicContents}\n </label>\n )}\n {this.touristicEvents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicEvents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicEvents')}>\n {translate[state.language].home.segment.touristicEvents}\n </label>\n )}\n </div>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n align-items: center;\n .icon {\n font-size: 18px;\n }\n #language-select {\n border: none;\n background-color: var(--color-background);\n &:focus-visible {\n outline: none;\n }\n }\n}\n","import { Component, Host, h } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-select-language',\n styleUrl: 'grw-select-language.scss',\n shadow: true,\n})\nexport class GrwSelectLanguage {\n handleSelect(event) {\n state.treks = null;\n state.currentTreks = null;\n state.currentTrek = null;\n state.language = event.target.value;\n }\n\n render() {\n return (\n <Host>\n {/* @ts-ignore */}\n <span part=\"select-language-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n translate\n </span>\n <select part=\"select-language-select\" onInput={event => this.handleSelect(event)} name=\"languages\" id=\"language-select\">\n {state.languages.map(language => (\n <option part=\"select-language-option\" selected={language === state.language} value={language.toLocaleLowerCase()}>\n {language.toLocaleUpperCase()}\n </option>\n ))}\n </select>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.md3.switch {\n user-select: none;\n position: relative;\n -webkit-tap-highlight-color: transparent;\n margin: 10px;\n font-family: var(--font-family);\n}\n\n.md3.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n}\n\n.md3.switch span.slider {\n position: absolute;\n cursor: pointer;\n background-color: var(--color-primary-container);\n width: 48px;\n height: 28px;\n border-radius: 28px;\n border: 2px solid var(--color-outline);\n transition: background-color 0.1s ease-in-out, border-color 0.1s ease-in-out;\n}\n\n/* thumb */\n.md3.switch span.slider::before {\n position: absolute;\n content: '';\n height: 16px;\n width: 16px;\n left: 0px;\n margin: 6px;\n background-color: var(--color-outline);\n border-radius: 28px;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5), background-color 0.1s ease-in-out, height 50ms ease-in-out, width 50ms ease-in-out, margin 50ms ease-in-out;\n}\n\n.md3.switch span.slider span.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n left: 0px;\n margin: 6px 0px;\n height: 16px;\n width: 16px;\n font-size: 16px;\n text-align: center;\n opacity: 0;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5);\n color: var(--color-surface-variant);\n}\n\n.md3.switch input:checked + span.slider {\n background-color: var(--color-primary);\n border-color: transparent;\n}\n\n.md3.switch input:checked + span.slider::before {\n background-color: var(--color-on-primary);\n height: 24px;\n width: 24px;\n left: 20px;\n margin: 2px;\n}\n\n.md3.switch input:not(:disabled):hover + span.slider::before {\n background-color: var(--color-on-surface-variant);\n}\n\n.md3.switch input:not(:disabled):checked:hover + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:not(:disabled):active + span.slider::before {\n height: 28px;\n width: 28px;\n margin: 0px;\n}\n\n.md3.switch input:not(:disabled):checked:active + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:checked + span.slider span.icon {\n left: 26px;\n opacity: 1;\n color: var(--color-on-primary-container);\n}\n\n.md3.switch input:focus-visible + span.slider {\n outline: 2px solid var(--color-primary);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-switch',\n styleUrl: 'grw-switch.scss',\n shadow: true,\n})\nexport class GrwSwitch {\n @Prop() action: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <label class=\"md3 switch\">\n <input onChange={() => this.action()} type=\"checkbox\" id=\"darkmode\" name=\"darkmode\" />\n <span class=\"slider\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n done\n </span>\n </span>\n </label>\n </Host>\n );\n }\n}\n","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.swiper {\n z-index: 0;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-content-detail {\n overflow: hidden;\n}\n\n.touristic-content-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-content-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-content-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.touristic-content-category-img {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-content-detail',\n styleUrl: 'grw-touristic-content-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicContentDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicContentDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicContent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicContent.attachments && state.currentTouristicContent.attachments[0] && state.currentTouristicContent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicContentCategory =\n state.touristicContentCategories &&\n state.currentTouristicContent &&\n state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category);\n const cities = state.currentTouristicContent && state.currentTouristicContent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicContent && (\n <div part=\"touristic-content-detail-container\" class=\"touristic-content-detail-container\" ref={el => (this.touristicContentDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicContent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicContent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-content-category-container\" class=\"touristic-content-category-container\">\n <img\n part=\"touristic-content-category-img\"\n class=\"touristic-content-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicContentCategory.pictogram}\n />\n <div part=\"touristic-content-category-name\" class=\"touristic-content-category-name\">\n {touristicContentCategory.label}\n </div>\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicContent.name}\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link-container\" class=\"link-container\" href={`${state.currentTouristicContent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicContent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicContent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicContent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicContent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} :&nbsp;\n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicContent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} :&nbsp;\n </div>\n <div part=\"useful-information\" innerHTML={state.currentTouristicContent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicContent.contact || state.currentTouristicContent.email || state.currentTouristicContent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} :&nbsp;\n </div>\n {state.currentTouristicContent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicContent.contact}></div>}\n {state.currentTouristicContent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} :&nbsp;\n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicContent.email}></div>\n </div>\n )}\n {state.currentTouristicContent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} :&nbsp;\n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicContent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicContent(api, language, touristicContentId, init) {\n return fetch(\n `${api}touristiccontent/${touristicContentId}/?language=${language}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts`,\n init,\n );\n}\n\nexport function getTouristicContentsNearTrek(api, language, trekId, init) {\n return fetch(\n `${api}touristiccontent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts&page_size=999`,\n init,\n );\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContent } from 'services/touristic-contents.service';\nimport state from 'store/store';\nimport { TouristicContent } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-content-provider',\n shadow: true,\n})\nexport class GrwTouristicContentProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicContentId: number;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContent();\n }\n\n async handleTouristicContent() {\n const touristicContentInStore: TouristicContent = await getDataInStore('touristicContents', this.touristicContentId);\n if (touristicContentInStore && touristicContentInStore.offline) {\n this.handleOfflineTouristicContent(touristicContentInStore);\n } else {\n this.handleOnlineTouristicContent();\n }\n }\n\n async handleOfflineTouristicContent(touristicContent: TouristicContent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n setFilesFromStore(touristicContent, imagesRegExp);\n state.currentTouristicContent = touristicContent;\n }\n\n handleOnlineTouristicContent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, getTouristicContent(state.api, state.language, this.touristicContentId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicContentCategory, touristicContent]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.currentTouristicContent = touristicContent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-content-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-contents-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-contents-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicContents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-contents-list',\n styleUrl: 'grw-touristic-contents-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicContentsToDisplay: TouristicContents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n onChange('currentTouristicContents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n });\n onChange('touristicContentsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicContentsWithinBounds) {\n this.touristicContentsToDisplay = [...state.touristicContentsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicContentsToDisplay.length < state.touristicContentsWithinBounds.length) {\n this.touristicContentsToDisplay = state.touristicContentsWithinBounds.slice(\n 0,\n this.touristicContentsToDisplay.length + this.step >= state.touristicContentsWithinBounds.length\n ? state.touristicContentsWithinBounds.length\n : this.touristicContentsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicContentsWithinBounds && (\n <div part=\"current-touristic-contents-within-bounds-length\" class=\"current-touristic-contents-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"touristic-contents-list-container\" class=\"touristic-contents-list-container\">\n {this.touristicContentsToDisplay.map(touristicContent => (\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n key={`touristic-content-${touristicContent.id}`}\n touristicContent={touristicContent}\n is-large-view={this.isLargeView}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-touristic-content-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-contents-provider',\n shadow: true,\n})\nexport class GrwTouristicContentsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContents();\n }\n\n handleTouristicContents() {\n let touristicContentsRequest = `${state.api}touristiccontent/?language=${state.language}&published=true`;\n this.inBbox && (touristicContentsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicContentsRequest += `&cities=${this.cities}`);\n this.districts && (touristicContentsRequest += `&districts=${this.districts}`);\n this.structures && (touristicContentsRequest += `&structures=${this.structures}`);\n this.themes && (touristicContentsRequest += `&themes=${this.themes}`);\n this.portals && (touristicContentsRequest += `&portals=${this.portals}`);\n\n touristicContentsRequest += `&fields=id,name,attachments,category,geometry,cities,districts&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, fetch(touristicContentsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicContentCategory, touristicContents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.touristicContents = touristicContents.results;\n state.currentTouristicContents = touristicContents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-event-detail {\n overflow: hidden;\n}\n\n.touristic-event-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-event-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-event-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .touristic-event-date-container {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-event-detail',\n styleUrl: 'grw-touristic-event-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicEventDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicEventDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicEvent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicEvent.attachments && state.currentTouristicEvent.attachments[0] && state.currentTouristicEvent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n } else {\n (document as any).exitFullscreen();\n }\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicEventType =\n state.touristicEventTypes &&\n state.currentTouristicEvent &&\n state.touristicEventTypes.find(touristicEventCategory => touristicEventCategory.id === state.currentTouristicEvent.type);\n const cities = state.currentTouristicEvent && state.currentTouristicEvent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicEvent && (\n <div part=\"touristic-event-detail-container\" class=\"touristic-event-detail-container\" ref={el => (this.touristicEventDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicEvent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicEvent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" translate={false} class=\"material-symbols material-symbols-outlined icon\">\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-event-category-container\" class=\"touristic-event-category-container\">\n {touristicEventType && touristicEventType.pictogram && (\n <img\n part=\"touristic-event-category-img\"\n class=\"touristic-event-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicEventType.pictogram}\n />\n )}\n {touristicEventType && touristicEventType.type && (\n <div part=\"touristic-event-category-name\" class=\"touristic-event-category-name\">\n {touristicEventType.type}\n </div>\n )}\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicEvent.name}\n </div>\n {(state.currentTouristicEvent.begin_date || state.currentTouristicEvent.end_date) && (\n <div part=\"touristic-event-date-container\" class=\"touristic-event-date-container\">\n {state.currentTouristicEvent.begin_date === state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].date} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.begin_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].startDate} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.end_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].endDate} : {state.currentTouristicEvent.end_date}\n </div>\n )}\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link\" class=\"link\" href={`${state.currentTouristicEvent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicEvent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicEvent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicEvent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicEvent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} :&nbsp;\n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicEvent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} :&nbsp;\n </div>\n <div part=\"useful-information\" class=\"useful-information\" innerHTML={state.currentTouristicEvent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicEvent.contact || state.currentTouristicEvent.email || state.currentTouristicEvent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} :&nbsp;\n </div>\n {state.currentTouristicEvent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicEvent.contact}></div>}\n {state.currentTouristicEvent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} :&nbsp;\n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicEvent.email}></div>\n </div>\n )}\n {state.currentTouristicEvent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} :&nbsp;\n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicEvent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicEvent(api, language, touristicEventId, init) {\n fetch(\n `${api}touristicevent/${touristicEventId}/?language=${language}&fields=id,name,attachments,description,description_teaser,type,geometry,cities,pdf,practical_info,contact,email,website,begin_date,end_date&published=true`,\n init,\n );\n}\n\nexport function getTouristicEventsNearTrek(api, language, trekId, init) {\n return fetch(`${api}touristicevent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,type,geometry&page_size=999`, init);\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { TouristicEvent } from 'components';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicEvent } from 'services/touristic-events.service';\nimport state from 'store/store';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-event-provider',\n shadow: true,\n})\nexport class GrwTouristicEventProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicEventId: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvent();\n }\n\n async handleTouristicEvent() {\n const touristicEventInStore: TouristicEvent = await getDataInStore('touristicEvents', this.touristicEventId);\n if (touristicEventInStore && touristicEventInStore.offline) {\n this.handleOfflineTouristicEvent(touristicEventInStore);\n } else {\n this.handleOnlineTouristicEvent();\n }\n }\n\n async handleOfflineTouristicEvent(touristicEvent: TouristicEvent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n setFilesFromStore(touristicEvent, imagesRegExp);\n state.currentTouristicEvent = touristicEvent;\n }\n\n handleOnlineTouristicEvent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, getTouristicEvent(state.api, state.language, this.touristicEventId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicEventTypes, touristicEvent]) => {\n state.networkError = false;\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.currentTouristicEvent = touristicEvent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-event-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-events-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-events-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicEvents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-events-list',\n styleUrl: 'grw-touristic-events-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicEventsToDisplay: TouristicEvents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicEvents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n onChange('currentTouristicEvents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n });\n onChange('touristicEventsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicEventsWithinBounds) {\n this.touristicEventsToDisplay = [...state.touristicEventsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicEventsToDisplay.length < state.touristicEventsWithinBounds.length) {\n this.touristicEventsToDisplay = state.touristicEventsWithinBounds.slice(\n 0,\n this.touristicEventsToDisplay.length + this.step >= state.touristicEventsWithinBounds.length\n ? state.touristicEventsWithinBounds.length\n : this.touristicEventsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicEventsWithinBounds && (\n <div part=\"current-touristic-events-within-bounds-length\" class=\"current-touristic-events-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"touristic-events-list-container\" class=\"touristic-events-list-container\">\n {this.touristicEventsToDisplay.map(touristicEvent => (\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n key={`touristic-event-${touristicEvent.id}`}\n touristicEvent={touristicEvent}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-touristic-event-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-events-provider',\n shadow: true,\n})\nexport class GrwTouristicEventsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvents();\n }\n\n handleTouristicEvents() {\n let touristicEventsRequest = `${state.api}touristicevent/?language=${state.language}&published=true`;\n this.inBbox && (touristicEventsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicEventsRequest += `&cities=${this.cities}`);\n this.districts && (touristicEventsRequest += `&districts=${this.districts}`);\n this.structures && (touristicEventsRequest += `&structures=${this.structures}`);\n this.themes && (touristicEventsRequest += `&themes=${this.themes}`);\n this.portals && (touristicEventsRequest += `&portals=${this.portals}`);\n\n touristicEventsRequest += `&fields=id,name,attachments,category,geometry,cities,districts,type,begin_date,end_date&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, fetch(touristicEventsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicEventTypes, touristicEvents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.touristicEvents = touristicEvents.results;\n state.currentTouristicEvents = touristicEvents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n@use '~swiper/modules/scrollbar/scrollbar.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-trek-detail {\n overflow: hidden;\n}\n\n.trek-options {\n display: flex;\n position: relative;\n width: 100%;\n min-height: 32px;\n padding: 8px 0px;\n background-color: var(--color-background);\n overflow-x: auto;\n font-family: var(--font-family);\n &::-webkit-scrollbar {\n display: none;\n }\n .trek-option {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: 16px;\n font-size: 22px;\n line-height: 28px;\n font-weight: 500;\n white-space: nowrap;\n text-decoration: none;\n color: var(--color-on-surface);\n transition-property: color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.3s;\n &:hover {\n color: var(--color-primary-app);\n }\n @media (hover: none) {\n &:not(.selected-trek-option):hover {\n color: inherit;\n }\n }\n }\n .trek-option:last-of-type {\n margin-right: 16px;\n }\n .selected-trek-option {\n color: var(--color-primary-app);\n }\n .trek-indicator-selected-trek-option {\n position: absolute;\n bottom: 8px;\n height: 2px;\n background-image: linear-gradient(var(--color-primary-app), var(--color-primary-app));\n background-repeat: no-repeat;\n transition: transform 0.5s ease, background-size 0.5s ease 0.5s;\n margin-left: 16px;\n background-position: center;\n }\n}\n.trek-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .trek-name {\n color: var(--color-primary-app);\n font-size: 32px;\n line-height: 28px;\n font-weight: 600;\n padding: 0px 24px;\n margin: 16px 0px;\n }\n .trek-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-trek-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .sub-container {\n padding: 24px 24px 0px 24px;\n .icons-labels-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n .icon-label {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n .icon {\n font-size: 24px;\n width: 24px;\n height: auto;\n color: var(--color-primary-app);\n margin-right: 8px;\n }\n .network {\n &:not(:last-child) {\n margin-right: 16px;\n }\n }\n }\n .practice {\n .icon {\n background-color: var(--color-primary-app);\n }\n }\n .network {\n display: flex;\n align-items: center;\n }\n }\n }\n .row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n .downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n font-family: var(--font-family);\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n }\n .themes-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n padding: 0px 24px 0px 24px;\n .theme {\n background-color: var(--color-secondary-container);\n color: var(--color-on-secondary-container);\n border-radius: var(--border-radius, 40px);\n padding: 8px 16px;\n margin: 0px 8px 8px 0px;\n box-shadow: var(--elevation-0);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n }\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .source-container,\n .accessibilities-container,\n .parent-trek-container,\n .weather-container,\n .weblinks-container {\n padding: 0px 24px 0px 24px;\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .information-desks-container,\n .pois-container,\n .source-container,\n .accessibilities-container,\n .weather-container,\n .parent-trek-container,\n .step-container,\n .touristic-content-container,\n .touristic-event-container,\n .weblinks-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-teaser {\n font-weight: 600;\n font-size: 22px;\n margin-bottom: 8px;\n }\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .step-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n }\n\n .access {\n margin-bottom: 16px;\n }\n\n .advised-parking-title {\n font-size: 16px;\n }\n\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n margin-bottom: 16px;\n }\n\n .step-title {\n margin-bottom: 12px;\n }\n\n .information-desks-title,\n .pois-title,\n .step-title,\n .touristic-content-title,\n .touristic-event-title {\n padding: 0px 24px 0px 24px;\n }\n\n .parent-trek-title {\n cursor: pointer;\n user-select: none;\n font-weight: 500;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-primary);\n background-color: transparent;\n div {\n margin-right: 4px;\n }\n }\n\n .accessibility-emergency-number-content {\n a {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n border-radius: var(--border-radius, 40px);\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n text-decoration: none;\n font-weight: 600;\n width: fit-content;\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n position: relative;\n font-family: var(--font-family);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.description-container {\n .description {\n ol {\n position: relative;\n counter-reset: referencePoint;\n &:before {\n content: '';\n position: absolute;\n width: 4px;\n top: 0px;\n bottom: 0px;\n left: 14px;\n background-color: var(--color-primary-app);\n }\n li {\n position: relative;\n list-style-type: none;\n counter-increment: referencePoint;\n p {\n margin: 0;\n }\n &:not(:first-child) {\n margin-top: 12px;\n }\n }\n li:before {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(referencePoint);\n width: 24px;\n height: 24px;\n background: #f04141;\n border-radius: 12px;\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: -36px;\n top: calc(50% - 12px);\n }\n }\n }\n}\n\n.current-advice-container,\n.gear-container {\n display: flex;\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n font-size: 16px;\n .material-symbols {\n font-size: 24px;\n width: 26px;\n margin-right: 8px;\n }\n margin-bottom: 12px;\n}\n\n.label-container {\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n margin-bottom: 12px;\n .label-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n background-color: var(--color-on-surface);\n }\n .label-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n padding: 12px 0px;\n }\n }\n .label-advice {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n}\n\n.advice-container {\n div:last-child {\n margin-bottom: 0px;\n }\n}\n\n.source-container {\n .source-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n }\n .source-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n }\n }\n}\n.weblinks-container {\n .weblink-container {\n display: flex;\n align-items: center;\n width: fit-content;\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n img {\n width: 26px;\n margin-right: 16px;\n }\n }\n}\n\n.departure-container,\n.arrival-container,\n.cities-container {\n display: flex;\n align-items: center;\n padding: 0px 24px 24px 24px;\n .departure-title,\n .arrival-title,\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n.accessibilities-container {\n div:nth-child(2) {\n div:first-child {\n padding: 0px 0px 12px 0px;\n }\n }\n .accessibilities-content-container {\n padding: 12px 0px 0px 0px;\n display: flex;\n .accessibility-content-container {\n display: flex;\n align-items: center;\n margin: 0px 8px 8px 0px;\n img {\n margin-right: 16px;\n width: 26px;\n }\n }\n }\n .accessibility-level-title,\n .accessibility-slope-title,\n .accessibility-width-title,\n .accessibility-signage-title,\n .accessibility-covering-title,\n .accessibility-exposure-title,\n .accessibility-advice-title,\n .accessibility-emergency-number-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 12px 0px;\n }\n}\n\n.weather-container {\n iframe {\n width: 100%;\n }\n}\n\n.swiper-information-desks,\n.swiper-pois,\n.swiper-step,\n.swiper-touristic-content,\n.swiper-touristic-event {\n padding-right: 32px;\n padding-left: 32px;\n padding-bottom: 20px;\n}\n\n.swiper-step {\n padding-bottom: 4px;\n .swiper-wrapper {\n .swiper-slide {\n counter-increment: stepPoint;\n padding-top: 36px;\n }\n .swiper-slide:first-child:before {\n border-top-left-radius: var(--border-radius, 8px);\n border-bottom-left-radius: var(--border-radius, 8px);\n }\n .swiper-slide:before {\n content: '';\n position: absolute;\n top: 6px;\n height: 12px;\n width: calc(100% + 20px);\n background-color: var(--color-secondary-container);\n }\n .swiper-slide:last-child:before {\n border-top-right-radius: 8px;\n border-bottom-right-radius: 8px;\n width: 100%;\n }\n .swiper-slide:after {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(stepPoint);\n width: 24px;\n height: 24px;\n background: var(--color-primary-app);\n border-radius: var(--border-radius, 12px);\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: calc(50% - 12px);\n top: 0px;\n }\n }\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.trek-images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.descent .icon {\n transform: rotateX(180deg);\n}\n\n.swiper-horizontal > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-horizontal {\n --swiper-scrollbar-sides-offset: 32px;\n}\n\n.swiper-scrollbar-drag {\n background-color: var(--color-primary-app);\n}\n\n.sensitive-areas-description {\n font-size: 16px;\n}\n\n.step-container {\n .swiper-wrapper {\n padding-bottom: 16px;\n }\n}\n\n.trek-image-legend {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.trek-close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.practice {\n .icon {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n }\n}\n\n.offline-button {\n cursor: pointer;\n font-size: 14px;\n border: none;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n box-shadow: var(--elevation-2);\n }\n .icon {\n font-size: 16px;\n }\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Build, Listen, getAssetPath } from '@stencil/core';\nimport Swiper, { Navigation, Pagination, Keyboard, FreeMode, Mousewheel, Scrollbar } from 'swiper';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Accessibilities, AccessibilityLevel, Difficulty, Labels, Practice, Route, Sources, Themes, Trek, Option, Options, Treks } from 'types/types';\nimport { formatDuration, formatLength, formatAscent, formatDescent, imagesRegExp } from 'utils/utils';\nimport { getAllDataInStore, getDataInStore, writeOrUpdateDataInStore, writeOrUpdateFilesInStore, writeOrUpdateTilesInStore } from 'services/grw-db.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport L from 'leaflet';\nimport { getDistricts, getTrek, getTreksList } from 'services/treks.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\n\nconst threshold = 1;\nconst presentation: Option = {\n visible: true,\n indicator: false,\n ref: 'presentationOptionRef',\n};\nconst steps: Option = {\n visible: false,\n indicator: false,\n ref: 'stepsOptionRef',\n};\nconst description: Option = {\n visible: false,\n indicator: false,\n ref: 'descriptionOptionRef',\n};\nconst pois: Option = {\n visible: false,\n indicator: false,\n ref: 'poisOptionRef',\n};\nconst recommendations: Option = {\n visible: false,\n indicator: false,\n ref: 'recommendationsOptionRef',\n};\nconst sensitiveArea: Option = {\n visible: false,\n indicator: false,\n ref: 'sensitiveAreaOptionRef',\n};\nconst informationPlaces: Option = {\n visible: false,\n indicator: false,\n ref: 'informationPlacesOptionRef',\n};\nconst accessibility: Option = {\n visible: false,\n indicator: false,\n ref: 'accessibilityOptionRef',\n};\nconst touristicContents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicContentsOptionRef',\n};\nconst touristicEvents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicEventsOptionRef',\n};\nconst options: Options = {\n presentation,\n steps,\n description,\n pois,\n recommendations,\n sensitiveArea,\n informationPlaces,\n accessibility,\n touristicContents,\n touristicEvents,\n};\n\n@Component({\n tag: 'grw-trek-detail',\n styleUrl: 'grw-trek-detail.scss',\n shadow: true,\n})\nexport class GrwTrekDetail {\n swiperImages?: Swiper;\n swiperStep?: Swiper;\n swiperPois?: Swiper;\n swiperInformationDesks?: Swiper;\n swiperTouristicContents?: Swiper;\n swiperTouristicEvents?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n swiperStepRef?: HTMLDivElement;\n swiperPoisRef?: HTMLDivElement;\n swiperInformationDesksRef?: HTMLDivElement;\n swiperTouristicContentsRef?: HTMLDivElement;\n swiperTouristicEventsRef?: HTMLDivElement;\n trekDetailContainerRef?: HTMLElement;\n presentationRef?: HTMLDivElement;\n descriptionRef?: HTMLDivElement;\n parkingRef?: HTMLDivElement;\n recommendationRef?: HTMLDivElement;\n sensitiveAreaRef?: HTMLDivElement;\n informationPlacesRef?: HTMLDivElement;\n poiRef?: HTMLDivElement;\n stepsRef?: HTMLDivElement;\n accessibilityRef?: HTMLDivElement;\n touristicContentsRef?: HTMLDivElement;\n touristicEventsRef?: HTMLDivElement;\n presentationOptionRef?: HTMLAnchorElement;\n stepsOptionRef?: HTMLAnchorElement;\n descriptionOptionRef?: HTMLAnchorElement;\n recommendationsOptionRef?: HTMLAnchorElement;\n accessibilityOptionRef?: HTMLAnchorElement;\n OptionRef?: HTMLAnchorElement;\n sensitiveAreaOptionRef?: HTMLAnchorElement;\n informationPlacesOptionRef?: HTMLAnchorElement;\n poisOptionRef?: HTMLAnchorElement;\n touristicContentsOptionRef?: HTMLAnchorElement;\n touristicEventsOptionRef?: HTMLAnchorElement;\n stepSwiperScrollbar?: HTMLDivElement;\n poisSwiperScrollbar?: HTMLDivElement;\n informationDesksContentsSwiperScrollbar?: HTMLDivElement;\n touristicContentsSwiperScrollbar?: HTMLDivElement;\n touristicEventsSwiperScrollbar?: HTMLDivElement;\n\n presentationObserver: IntersectionObserver;\n stepsObserver: IntersectionObserver;\n descriptionObserver: IntersectionObserver;\n recommendationsObserver: IntersectionObserver;\n parkingObserver: IntersectionObserver;\n sensitiveAreaObserver: IntersectionObserver;\n informationPlacesObserver: IntersectionObserver;\n accessibilityObserve: IntersectionObserver;\n poiObserver: IntersectionObserver;\n accessibilityObserver: IntersectionObserver;\n touristicContentObserver: IntersectionObserver;\n touristicEventObserver: IntersectionObserver;\n\n hasStep?: boolean;\n\n defaultOptions: Options;\n @Event() descriptionIsInViewport: EventEmitter<boolean>;\n @Event() parkingIsInViewport: EventEmitter<boolean>;\n @Event() sensitiveAreaIsInViewport: EventEmitter<boolean>;\n @Event() informationPlacesIsInViewport: EventEmitter<boolean>;\n @Event() poiIsInViewport: EventEmitter<boolean>;\n @Event() stepsIsInViewport: EventEmitter<boolean>;\n @Event() touristicContentsIsInViewport: EventEmitter<boolean>;\n @Event() touristicEventsIsInViewport: EventEmitter<boolean>;\n @Event() parentTrekPress: EventEmitter<number>;\n @State() currentTrek: Trek;\n @State() difficulty: Difficulty;\n @State() route: Route;\n @State() practice: Practice;\n @State() themes: Themes;\n @State() labels: Labels;\n @State() sources: Sources;\n @State() accessibilities: Accessibilities;\n @State() accessibilityLevel: AccessibilityLevel;\n @State() displayFullscreen = false;\n @State() cities: string[];\n @State() options: Options;\n @State() offline = false;\n\n @Prop() trek: Trek;\n @Prop() emergencyNumber: number;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() weather = false;\n @Prop() isLargeView = false;\n\n @Prop() defaultBackgroundLayerUrl;\n @Prop() defaultBackgroundLayerAttribution;\n\n @Prop() enableOffline = false;\n @Prop() globalTilesMinZoomOffline = 0;\n @Prop() globalTilesMaxZoomOffline = 11;\n @Prop() trekTilesMinZoomOffline = 12;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Event() trekDownloadConfirm: EventEmitter<number>;\n @Event() trekDownloadedSuccessConfirm: EventEmitter<number>;\n\n @Event() trekDeleteConfirm: EventEmitter<number>;\n @Event() trekDeleteSuccessConfirm: EventEmitter<number>;\n\n indicatorSelectedTrekOption = { translateX: null, width: null, backgroundSize: null, ref: null };\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.swiperStep = new Swiper(this.swiperStepRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n initialSlide: this.getCurrentStepIndex(),\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.stepSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperPois = new Swiper(this.swiperPoisRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.poisSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperInformationDesks = new Swiper(this.swiperInformationDesksRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.informationDesksContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicContents = new Swiper(this.swiperTouristicContentsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicEvents = new Swiper(this.swiperTouristicEventsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicEventsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n if (this.presentationRef) {\n this.presentationObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, presentation: { ...this.defaultOptions.presentation, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.presentationObserver.observe(this.presentationRef);\n }\n if (this.stepsRef) {\n this.stepsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.stepsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, steps: { ...this.defaultOptions.steps, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.stepsObserver.observe(this.stepsRef);\n }\n if (this.descriptionRef) {\n this.descriptionObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.descriptionIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, description: { ...this.defaultOptions.description, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.descriptionObserver.observe(this.descriptionRef);\n }\n if (this.recommendationRef) {\n this.recommendationsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, recommendations: { ...this.defaultOptions.recommendations, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.recommendationsObserver.observe(this.recommendationRef);\n }\n if (this.parkingRef) {\n this.parkingObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.parkingIsInViewport.emit(isIntersecting);\n },\n { threshold },\n );\n this.parkingObserver.observe(this.parkingRef);\n }\n\n if (this.sensitiveAreaRef) {\n this.sensitiveAreaObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.sensitiveAreaIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, sensitiveArea: { ...this.defaultOptions.sensitiveArea, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.sensitiveAreaObserver.observe(this.sensitiveAreaRef);\n }\n\n if (this.informationPlacesRef) {\n this.informationPlacesObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.informationPlacesIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, informationPlaces: { ...this.defaultOptions.informationPlaces, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.informationPlacesObserver.observe(this.informationPlacesRef);\n }\n\n if (this.accessibilityRef) {\n this.accessibilityObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, accessibility: { ...this.defaultOptions.accessibility, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.accessibilityObserver.observe(this.accessibilityRef);\n }\n\n if (this.poiRef) {\n this.poiObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.poiIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, pois: { ...this.defaultOptions.pois, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.poiObserver.observe(this.poiRef);\n }\n\n if (this.touristicContentsRef) {\n this.touristicContentObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicContentsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicContents: { ...this.defaultOptions.touristicContents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicContentObserver.observe(this.touristicContentsRef);\n }\n if (this.touristicEventsRef) {\n this.touristicEventObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicEventsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicEvents: { ...this.defaultOptions.touristicEvents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicEventObserver.observe(this.touristicContentsRef);\n }\n }\n\n async connectedCallback() {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n onChange('currentTrek', async () => {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n });\n }\n\n disconnectedCallback() {\n this.presentationObserver && this.presentationObserver.disconnect();\n this.stepsObserver && this.stepsObserver.disconnect();\n this.descriptionObserver && this.descriptionObserver.disconnect();\n this.recommendationsObserver && this.recommendationsObserver.disconnect();\n this.parkingObserver && this.parkingObserver.disconnect();\n this.sensitiveAreaObserver && this.sensitiveAreaObserver.disconnect();\n this.informationPlacesObserver && this.informationPlacesObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.poiObserver && this.poiObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.touristicContentObserver && this.touristicContentObserver.disconnect();\n this.touristicEventObserver && this.touristicEventObserver.disconnect();\n }\n\n handleOptions() {\n return {\n ...options,\n presentation: { ...presentation },\n steps: { ...steps, visible: Boolean(state.parentTrek) },\n description: { ...description, visible: Boolean(this.currentTrek.description) },\n pois: { ...pois, visible: Boolean(state.currentPois && state.currentPois.length > 0) },\n recommendations: { ...recommendations, visible: Boolean(this.currentTrek.advice || (this.labels && this.labels.length > 0)) },\n sensitiveArea: { ...sensitiveArea, visible: Boolean(state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) },\n informationPlaces: {\n ...informationPlaces,\n visible: Boolean(\n state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0,\n ),\n },\n accessibility: {\n ...accessibility,\n visible: Boolean(\n this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber,\n ),\n },\n touristicContents: { ...touristicContents, visible: Boolean(state.trekTouristicContents && state.trekTouristicContents.length > 0) },\n touristicEvents: { ...touristicEvents, visible: Boolean(state.trekTouristicEvents && state.trekTouristicEvents.length > 0) },\n };\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n handleIndicatorSelectedTrekOption() {\n let currentOption: Option;\n let previousVisibleOptions = 0;\n let previousWidthOptions = 0;\n let elementWidth = 0;\n\n const options: Option[] = Object.values(this.options);\n let index = 0;\n while (!currentOption && index < options.length) {\n if (options[index].indicator) {\n currentOption = options[index];\n } else {\n if (options[index].visible) {\n previousVisibleOptions += 1;\n previousWidthOptions += this[options[index].ref].clientWidth;\n }\n }\n index++;\n }\n if (currentOption && this[currentOption.ref]) {\n elementWidth = this[currentOption.ref].clientWidth;\n this.indicatorSelectedTrekOption = {\n translateX: `${previousWidthOptions + 16 * previousVisibleOptions - elementWidth / 2}px`,\n width: `${elementWidth * 2}px`,\n backgroundSize: `${elementWidth}px 100%`,\n ref: currentOption.ref,\n };\n }\n }\n\n handleScrollTo(element: HTMLDivElement) {\n this.trekDetailContainerRef.scrollTo({ top: element.offsetTop - 64 });\n }\n\n getCurrentStepIndex(): number {\n return state.currentTrekSteps ? state.currentTrekSteps.findIndex(step => step.id === this.currentTrek.id) : 0;\n }\n\n async downloadGlobalTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const treksDepartureCoordinates = [];\n\n if (state.treks) {\n for (const trek of state.treks) {\n treksDepartureCoordinates.push(trek.departure_geom);\n }\n }\n\n const bounds = L.latLngBounds(treksDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.globalTilesMinZoomOffline, this.globalTilesMaxZoomOffline);\n }\n\n async downloadTrekTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const bounds = L.latLngBounds(this.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.trekTilesMinZoomOffline, this.trekTilesMaxZoomOffline);\n }\n\n async downloadTrek() {\n // download treks list data\n const controller = new AbortController();\n const signal = controller.signal;\n const init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: signal };\n const offlineTreks = (await getAllDataInStore('treks')).filter(trek => trek.offline === true);\n let treks;\n if (!state.treks) {\n const treksList = await getTreksList(\n state.api,\n state.language,\n state.inBboxFromProviders,\n state.citiesFromProviders,\n state.districts,\n state.structuresFromProviders,\n state.themesFromProviders,\n state.portalsFromProviders,\n state.routesFromProviders,\n state.practicesFromProviders,\n init,\n );\n state.treks = (await treksList.json()).results;\n }\n treks = state.treks;\n treks = treks.filter(trek => offlineTreks.findIndex(offlineTrek => offlineTrek.id === trek.id) === -1);\n\n if (!state.districts) {\n const districtsList = await getDistricts(state.api, state.language, init);\n state.districts = (await districtsList.json()).results;\n }\n\n await writeOrUpdateDataInStore('treks', treks);\n await writeOrUpdateDataInStore('districts', state.districts);\n\n // download global tiles\n // await this.downloadGlobalTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download trek tiles\n // await this.downloadTrekTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download global medias\n await writeOrUpdateFilesInStore(state.difficulties, imagesRegExp);\n await writeOrUpdateFilesInStore(state.routes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.practices, imagesRegExp);\n await writeOrUpdateFilesInStore(state.themes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.labels, imagesRegExp);\n await writeOrUpdateFilesInStore(state.districts, imagesRegExp);\n await writeOrUpdateFilesInStore(state.sources, imagesRegExp);\n await writeOrUpdateFilesInStore(state.accessibilities, imagesRegExp);\n await writeOrUpdateFilesInStore(state.poiTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicContentCategories, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicEventTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.networks, imagesRegExp);\n\n // // download trek images\n await writeOrUpdateFilesInStore(this.currentTrek, imagesRegExp, true);\n\n // // download trek data\n await writeOrUpdateDataInStore('difficulties', state.difficulties);\n await writeOrUpdateDataInStore('routes', state.routes);\n await writeOrUpdateDataInStore(\n 'practices',\n state.practices.map(practice => ({ ...practice, selected: false })),\n );\n await writeOrUpdateDataInStore('themes', state.themes);\n await writeOrUpdateDataInStore('cities', state.cities);\n await writeOrUpdateDataInStore('accessibilities', state.accessibilities);\n await writeOrUpdateDataInStore('ratings', state.ratings);\n await writeOrUpdateDataInStore('ratingsScale', state.ratingsScale);\n await writeOrUpdateDataInStore('sensitiveAreas', state.currentSensitiveAreas);\n await writeOrUpdateDataInStore('labels', state.labels);\n await writeOrUpdateDataInStore('sources', state.sources);\n await writeOrUpdateDataInStore('accessibilitiesLevel', state.accessibilitiesLevel);\n await writeOrUpdateDataInStore('touristicContentCategories', state.touristicContentCategories);\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n await writeOrUpdateDataInStore('touristicEventTypes', state.touristicEventTypes);\n await writeOrUpdateDataInStore('networks', state.networks);\n await writeOrUpdateDataInStore('pois', state.currentPois);\n await writeOrUpdateDataInStore('poiTypes', state.poiTypes);\n await writeOrUpdateDataInStore('informationDesks', state.currentInformationDesks);\n\n await writeOrUpdateDataInStore('treks', [{ ...this.currentTrek, offline: true }]);\n\n await writeOrUpdateFilesInStore(state.currentPois, imagesRegExp, true);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp, true);\n\n // download items data\n await writeOrUpdateFilesInStore(state.trekTouristicContents, imagesRegExp, true);\n state.trekTouristicContents.forEach(trekTouristicContent => {\n trekTouristicContent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicContents', state.trekTouristicContents);\n\n await writeOrUpdateFilesInStore(state.trekTouristicEvents, imagesRegExp, true);\n state.trekTouristicEvents.forEach(trekTouristicEvent => {\n trekTouristicEvent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n\n // download itinerancy\n if (this.currentTrek.children && this.currentTrek.children.length > 0) {\n // fetch and store children treks\n const steps: number[] = [];\n steps.push(...this.currentTrek.children);\n const stepRequests = [];\n const stepsTouristicContentsRequests = [];\n const stepsTouristicEventsRequests = [];\n\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, init));\n stepsTouristicContentsRequests.push(getTouristicContentsNearTrek(state.api, state.language, stepId, init));\n stepsTouristicEventsRequests.push(getTouristicEventsNearTrek(state.api, state.language, stepId, init));\n });\n\n const trekSteps: Treks = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicContentsResponses = await Promise.all([...stepsTouristicContentsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicEventsResponses = await Promise.all([...stepsTouristicEventsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n for (let index = 0; index < trekSteps.length; index++) {\n trekSteps[index].offline = true;\n await writeOrUpdateDataInStore('treks', [trekSteps[index]]);\n await writeOrUpdateFilesInStore(trekSteps[index], imagesRegExp, true);\n }\n\n for (let index = 0; index < stepsTouristicContentsResponses.length; index++) {\n const stepsTouristicContentsResponse = stepsTouristicContentsResponses[index];\n for (let index = 0; index < stepsTouristicContentsResponse.results.length; index++) {\n stepsTouristicContentsResponse.results[index].offline = true;\n await writeOrUpdateDataInStore('touristicContents', [stepsTouristicContentsResponse.results[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicContentsResponse.results[index], imagesRegExp, true);\n }\n }\n\n for (let index = 0; index < stepsTouristicEventsResponses.length; index++) {\n const stepsTouristicEventsResponse = stepsTouristicEventsResponses[index];\n for (let index = 0; index < stepsTouristicEventsResponse.results.length; index++) {\n stepsTouristicEventsResponse[index].offline = true;\n await writeOrUpdateDataInStore('touristicEvents', [stepsTouristicEventsResponse[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicEventsResponse[index], imagesRegExp, true);\n }\n }\n }\n\n state.treks.find(trek => trek.id === this.currentTrek.id).offline = true;\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline = true;\n this.swiperImages.slideTo(0);\n this.offline = true;\n this.trekDownloadedSuccessConfirm.emit();\n }\n\n async deleteTrek() {\n const treksInStore: Treks = [];\n const trekInStore = await getDataInStore('treks', this.currentTrek.id);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n if (this.currentTrek.children.length > 0) {\n for (let index = 0; index < this.currentTrek.children.length; index++) {\n const trekInStore = await getDataInStore('treks', this.currentTrek.children[index]);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n }\n }\n await writeOrUpdateDataInStore('treks', treksInStore);\n\n if (state.treks) {\n delete state.treks.find(trek => trek.id === this.currentTrek.id).offline;\n\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n delete state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline;\n }\n\n if (state.parentTrek) {\n delete state.parentTrek.offline;\n }\n\n if (state.currentTrekSteps) {\n state.currentTrekSteps.forEach(currentTrekStep => {\n delete currentTrekStep.offline;\n });\n }\n\n this.offline = false;\n this.trekDeleteSuccessConfirm.emit();\n }\n\n displayTrekDownloadModal() {\n this.trekDownloadConfirm.emit();\n }\n\n displayTrekDeleteModal() {\n this.trekDeleteConfirm.emit();\n }\n\n @Listen('trekDownloadPress', { target: 'window' })\n onTrekDownloadPress() {\n this.downloadTrek();\n }\n\n @Listen('trekDeletePress', { target: 'window' })\n onTrekDeletePress() {\n this.deleteTrek();\n }\n\n deleteOfflineTrekProperties(trekInStore) {\n delete trekInStore.descent;\n delete trekInStore.geometry;\n delete trekInStore.gpx;\n delete trekInStore.kml;\n delete trekInStore.pdf;\n delete trekInStore.parking_location;\n delete trekInStore.arrival;\n delete trekInStore.ambiance;\n delete trekInStore.access;\n delete trekInStore.public_transport;\n delete trekInStore.advice;\n delete trekInStore.advised_parking;\n delete trekInStore.gear;\n delete trekInStore.source;\n delete trekInStore.points_reference;\n delete trekInStore.disabled_infrastructure;\n delete trekInStore.accessibility_level;\n delete trekInStore.accessibility_slope;\n delete trekInStore.accessibility_width;\n delete trekInStore.accessibility_signage;\n delete trekInStore.accessibility_covering;\n delete trekInStore.accessibility_exposure;\n delete trekInStore.accessibility_advice;\n delete trekInStore.ratings;\n delete trekInStore.ratings_description;\n delete trekInStore.children;\n delete trekInStore.networks;\n delete trekInStore.web_links;\n delete trekInStore.update_datetime;\n delete trekInStore.offline;\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '244px'\n : '204px',\n }}\n >\n {this.currentTrek && (\n <div part=\"trek-options\" class=\"trek-options\">\n <a\n part=\"trek-option\"\n class={`presentation trek-option${this.indicatorSelectedTrekOption.ref === 'presentationOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.presentationOptionRef = el)}\n onClick={() => this.handleScrollTo(this.presentationRef)}\n >\n {translate[state.language].options.presentation}\n </a>\n {this.options.steps.visible && (\n <a\n part=\"trek-option\"\n class={`steps trek-option${this.options.steps.indicator ? ' selected-trek-option' : ''}`}\n ref={el => (this.stepsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.stepsRef)}\n >\n {translate[state.language].options.steps}\n </a>\n )}\n {this.options.description.visible && (\n <a\n part=\"trek-option\"\n class={`description trek-option${this.indicatorSelectedTrekOption.ref === 'descriptionOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.descriptionOptionRef = el)}\n onClick={() => this.handleScrollTo(this.descriptionRef)}\n >\n {translate[state.language].options.description}\n </a>\n )}\n {this.options.pois.visible && (\n <a\n part=\"trek-option\"\n class={`pois trek-option${this.indicatorSelectedTrekOption.ref === 'poisOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.poisOptionRef = el)}\n onClick={() => this.handleScrollTo(this.poiRef)}\n >\n {translate[state.language].options.pois}\n </a>\n )}\n {this.options.recommendations.visible && (\n <a\n part=\"trek-option\"\n class={`recommendations trek-option${this.indicatorSelectedTrekOption.ref === 'recommendationsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.recommendationsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.recommendationRef)}\n >\n {translate[state.language].options.recommendations}\n </a>\n )}\n {this.options.sensitiveArea.visible && (\n <a\n part=\"trek-option\"\n class={`sensitive-areas trek-option${this.indicatorSelectedTrekOption.ref === 'sensitiveAreaOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.sensitiveAreaOptionRef = el)}\n onClick={() => this.handleScrollTo(this.sensitiveAreaRef)}\n >\n {translate[state.language].options.environmentalSensitiveAreas}\n </a>\n )}\n {this.options.informationPlaces.visible && (\n <a\n part=\"trek-option\"\n class={`information-places trek-option${this.indicatorSelectedTrekOption.ref === 'informationPlacesOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.informationPlacesOptionRef = el)}\n onClick={() => this.handleScrollTo(this.informationPlacesRef)}\n >\n {translate[state.language].options.informationPlaces}\n </a>\n )}\n {this.options.accessibility.visible && (\n <a\n part=\"trek-option\"\n class={`accessibility trek-option${this.indicatorSelectedTrekOption.ref === 'accessibilityOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.accessibilityOptionRef = el)}\n onClick={() => this.handleScrollTo(this.accessibilityRef)}\n >\n {translate[state.language].options.accessibility}\n </a>\n )}\n {this.options.touristicContents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-content trek-option${this.indicatorSelectedTrekOption.ref === 'touristicContentsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicContentsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicContentsRef)}\n >\n {translate[state.language].options.touristicContents}\n </a>\n )}\n {this.options.touristicEvents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-event trek-option${this.indicatorSelectedTrekOption.ref === 'touristicEventsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicEventsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicEventsRef)}\n >\n {translate[state.language].options.touristicEvents}\n </a>\n )}\n {this.presentationOptionRef && (\n <span\n part=\"trek-indicator-selected-trek-option\"\n class=\"trek-indicator-selected-trek-option\"\n style={{\n transform: `translateX(${this.indicatorSelectedTrekOption.translateX})`,\n width: this.indicatorSelectedTrekOption.width,\n backgroundSize: this.indicatorSelectedTrekOption.backgroundSize,\n }}\n ></span>\n )}\n </div>\n )}\n {this.currentTrek && (\n <div part=\"trek-detail-container\" class=\"trek-detail-container\" ref={el => (this.trekDetailContainerRef = el)}>\n <div part=\"trek-images\" class=\"trek-images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {this.currentTrek.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n this.currentTrek.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"trek-close-fullscreen-button\" class=\"trek-close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"trek-close-fullcreen-icon\" class=\"trek-close-fullcreen-icon material-symbols material-symbols-outlined\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"trek-image-legend\" class=\"trek-image-legend\">\n {legend}\n </div>\n <img\n part=\"trek-img\"\n class=\"trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n /* @ts-ignore */\n onerror={event => {\n event.target.onerror = null;\n event.target.className = 'trek-img default-trek-img';\n event.target.src = defaultImageSrc;\n }}\n />\n </div>\n );\n })\n ) : (\n <img\n part=\"trek-img\"\n class=\"trek-img default-trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }}>\n <div part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n </div>\n <div part=\"trek-name\" class=\"trek-name\">\n {this.currentTrek.name}\n </div>\n {this.themes.length > 0 && (\n <div part=\"themes-container\" class=\"themes-container\">\n {this.themes.map(theme => (\n <div part=\"theme\" class=\"theme\">\n {theme.label}\n </div>\n ))}\n </div>\n )}\n <div part=\"sub-container\" class=\"sub-container\">\n <div part=\"icons-labels-container\" class=\"icons-labels-container\">\n {this.difficulty && (\n <div part=\"icon-label\" class=\"icon-label difficulty\">\n {this.difficulty.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.difficulty.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.difficulty.label}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label duration\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n timelapse\n </span>\n <span part=\"label\" class=\"label\">\n {formatDuration(this.currentTrek?.duration)}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label route\">\n {this.route?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.route.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.route?.route}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label length\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n open_in_full\n </span>\n <span part=\"label\" class=\"label\">\n {formatLength(this.currentTrek.length_2d)}\n </span>\n </div>\n {this.currentTrek.ascent && (\n <div part=\"icon-label\" class=\"icon-label ascent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatAscent(this.currentTrek.ascent)}\n </span>\n </div>\n )}\n {this.currentTrek.descent && (\n <div part=\"icon-label\" class=\"icon-label descent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatDescent(this.currentTrek.descent)}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label practice\">\n {this.practice?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.practice.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.practice?.name}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label networks\">\n {this.currentTrek.networks.map(networkId => {\n const currentNetwork = state.networks.find(network => network.id === networkId);\n return (\n <div part=\"network\" class=\"network\">\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={currentNetwork.pictogram}\n />\n <span part=\"label\" class=\"label\">\n {currentNetwork.label}\n </span>\n </div>\n );\n })}\n </div>\n {this.currentTrek.ratings.map(trekRating => (\n <div part=\"row\" class=\"row\">\n {`${state.ratingsScale.find(ratingScale => ratingScale.id === state.ratings.find(rating => rating.id === trekRating).scale).name} : ${\n state.ratings.find(rating => rating.id === trekRating).name\n }`}\n </div>\n ))}\n {this.currentTrek.ratings_description && this.currentTrek.ratings_description !== '' && (\n <div part=\"row\" class=\"row\" innerHTML={this.currentTrek.ratings_description}></div>\n )}\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].downloads}\n </div>\n {this.enableOffline && !this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDownloadModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download_for_offline\n </span>\n <span part=\"label\" class=\"label\">\n RENDRE DISPONIBLE HORS LIGNE\n </span>\n </button>\n )}\n {this.enableOffline && this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDeleteModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n delete\n </span>\n <span part=\"label\" class=\"label\">\n SUPPRIMER DU HORS LIGNE\n </span>\n </button>\n )}\n <div part=\"links-container\" class=\"links-container\">\n <a href={`${this.currentTrek.gpx}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n GPX\n </span>\n </a>\n <a href={`${this.currentTrek.kml}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n KML\n </span>\n </a>\n <a href={`${this.currentTrek.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description_teaser && <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={this.currentTrek.description_teaser}></div>}\n {this.currentTrek.ambiance && <div part=\"ambiance\" class=\"ambiance\" innerHTML={this.currentTrek.ambiance}></div>}\n {state.parentTrekId && state.parentTrek && this.currentTrek.id !== state.parentTrekId && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"parent-trek-container\" class=\"parent-trek-container\">\n <button part=\"parent-trek-title\" class=\"parent-trek-title\" onClick={() => this.parentTrekPress.emit(state.parentTrekId)}>\n <div>&lt;</div>\n {state.parentTrek.name}\n </button>\n </div>\n </div>\n )}\n {state.currentTrekSteps && (\n <div part=\"step-container\" class=\"step-container\">\n <div part=\"step-title\" class=\"step-title\" ref={el => (this.stepsRef = el)}>{`${state.currentTrekSteps.length} ${translate[state.language].steps}`}</div>\n <div part=\"swiper-step\" class=\"swiper swiper-step\" ref={el => (this.swiperStepRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTrekSteps &&\n state.currentTrekSteps.map(trek => {\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={false}\n is-step={true}\n fontFamily={this.fontFamily}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-trek-card>\n </div>\n );\n })}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.stepSwiperScrollbar = el)}></div>\n </div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description && (\n <div part=\"description-container\" class=\"description-container\">\n <div part=\"description-title\" class=\"description-title\" ref={el => (this.descriptionRef = el)}>\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={this.currentTrek.description}></div>\n </div>\n )}\n {this.currentTrek.departure && (\n <div part=\"departure-container\" class=\"departure-container\">\n <div part=\"departure-title\" class=\"departure-title\">\n {translate[state.language].departure} :&nbsp;\n </div>\n <div part=\"departure\" innerHTML={this.currentTrek.departure}></div>\n </div>\n )}\n {this.currentTrek.arrival && (\n <div part=\"arrival-container\" class=\"arrival-container\">\n <div part=\"arrival-title\" class=\"arrival-title\">\n {translate[state.language].arrival} :&nbsp;\n </div>\n <div part=\"arrival\" innerHTML={this.currentTrek.arrival}></div>\n </div>\n )}\n {this.currentTrek.cities && this.currentTrek.cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].crossedCities} :&nbsp;\n </div>\n <div part=\"cities\" innerHTML={this.cities.join(', ')}></div>\n </div>\n )}\n {state.currentPois && state.currentPois.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"pois-container\" class=\"pois-container\">\n <div part=\"pois-title\" class=\"pois-title\" ref={el => (this.poiRef = el)}>\n {translate[state.language].pois(state.currentPois.length)}\n </div>\n <div part=\"swiper-pois\" class=\"swiper swiper-pois\" ref={el => (this.swiperPoisRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentPois.map(poi => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-poi\n exportparts=\"poi-type-img-container,poi-type,swiper-poi,swiper-wrapper,swiper-slide,poi-img,default-poi-img,swiper-pagination,swiper-button-prev,swiper-button-next,poi-sub-container,poi-name,poi-description,handle-poi-description\"\n poi={poi}\n ></grw-poi>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.poisSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.weather && this.currentTrek.departure_city && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weather-container\" class=\"weather-container\">\n <iframe height=\"150\" frameborder=\"0\" src={`https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}`}></iframe>\n </div>\n </div>\n )}\n {this.currentTrek.access && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"access-container\" class=\"access-container\">\n <div part=\"access-title\" class=\"access-title\">\n {translate[state.language].roadAccessAndParking}\n </div>\n <div part=\"access\" class=\"access\" innerHTML={this.currentTrek.access}></div>\n {this.currentTrek.advised_parking && (\n <div>\n <div part=\"advised-parking-title\" class=\"advised-parking-title\" ref={el => (this.parkingRef = el)}>\n {translate[state.language].recommendedParking}\n </div>\n <div part=\"advised-parking\" class=\"advised-parking\" innerHTML={this.currentTrek.advised_parking}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {this.currentTrek.public_transport && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"public-transport-container\" class=\"public-transport-container\">\n <div part=\"public-transport-title\" class=\"public-transport-title\">\n {translate[state.language].transport}\n </div>\n <div part=\"public-transport\" class=\"public-transport\" innerHTML={this.currentTrek.public_transport}></div>\n </div>\n </div>\n )}\n {(this.currentTrek.advice || this.currentTrek.gear || this.labels.length > 0) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"advice-container\" class=\"advice-container\">\n <div part=\"advice-title\" class=\"advice-title\" ref={el => (this.recommendationRef = el)}>\n {translate[state.language].recommendations}\n </div>\n {this.currentTrek.advice && (\n <div part=\"current-advice-container\" class=\"current-advice-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n warning\n </span>\n <div part=\"advice\" class=\"advice\" innerHTML={this.currentTrek.advice}></div>\n </div>\n )}\n {this.currentTrek.gear && (\n <div part=\"gear-container\" class=\"gear-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n backpack\n </span>\n <div part=\"gear\" class=\"gear\" innerHTML={this.currentTrek.gear}></div>\n </div>\n )}\n {this.labels.map(label => (\n <div part=\"label-container\" class=\"label-container\">\n <div part=\"label-sub-container\" class=\"label-sub-container\">\n {label.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={label.pictogram}\n />\n )}\n <div part=\"label-name\" class=\"label-name\" innerHTML={label.name}></div>\n </div>\n <div part=\"label-advice\" class=\"label-advice\" innerHTML={label.advice}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n {state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"sensitive-areas-container\" class=\"sensitive-areas-container\">\n <div part=\"ensitive-areas-title\" class=\"sensitive-areas-title\" ref={el => (this.sensitiveAreaRef = el)}>\n {translate[state.language].environmentalSensitiveAreas}\n </div>\n <div part=\"sensitive-areas-description\" class=\"sensitive-areas-description\">\n {translate[state.language].sensitiveAreasDescription}\n </div>\n {state.currentSensitiveAreas.map(sensitiveArea => (\n <grw-sensitive-area-detail\n exportparts=\"sensitive-area-title-container,sensitive-area-color-container,sensitive-area-title,sensitive-area-description,sensitive-area-practice-container,sensitive-area-practice-title,sensitive-area-practices,sensitive-area-practice,sensitive-area-period-container,sensitive-area-period-title,sensitive-area-periods,sensitive-area-period,sensitive-area-contact-container,sensitive-area-contact-title,sensitive-area-contact-value\"\n sensitiveArea={sensitiveArea}\n ></grw-sensitive-area-detail>\n ))}\n </div>\n </div>\n )}\n {state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"information-desks-container\" class=\"information-desks-container\">\n <div part=\"information-desks-title\" class=\"information-desks-title\" ref={el => (this.informationPlacesRef = el)}>\n {translate[state.language].informationPlaces}\n </div>\n <div part=\"swiper-information-desks\" class=\"swiper swiper-information-desks\" ref={el => (this.swiperInformationDesksRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentInformationDesks\n .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))\n .map(informationDesk => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-information-desk\n exportparts=\"information-desk-img-container,information-desk-img,information-desk-sub-container,information-desk-name,center-on-map-button,icon,label,information-desk-informations,phone-container,mail-container,link-container,information-desk-description-container,information-desk-description,handle-information-desk-description\"\n informationDesk={informationDesk}\n ></grw-information-desk>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.informationDesksContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {(this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"accessibilities-container\" class=\"accessibilities-container\">\n <div part=\"accessibilities-title\" class=\"accessibilities-title\" ref={el => (this.accessibilityRef = el)}>\n {translate[state.language].accessibility}\n </div>\n {this.currentTrek.disabled_infrastructure && <div part=\"disabled-infrastructure\" innerHTML={this.currentTrek.disabled_infrastructure}></div>}\n {this.accessibilities && this.accessibilities.length > 0 && (\n <div part=\"accessibilities-content-container\" class=\"accessibilities-content-container\">\n {this.accessibilities.map(accessibility => (\n <div part=\"accessibility-content-container\" class=\"accessibility-content-container\">\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={accessibility.pictogram}\n ></img>\n <div part=\"accessibility-name\" innerHTML={accessibility.name}></div>\n </div>\n ))}\n </div>\n )}\n {this.emergencyNumber && (\n <div part=\"accessibility-emergency-number-container\" class=\"accessibility-emergency-number-container\">\n <div part=\"accessibility-emergency-number-title\" class=\"accessibility-emergency-number-title\">\n {translate[state.language].emergencyNumber}\n </div>\n <div part=\"accessibility-emergency-number-content\" class=\"accessibility-emergency-number-content\">\n {\n <a href={`tel:${this.emergencyNumber.toString()}`}>\n <span\n part=\"icon\"\n class=\"material-symbols material-symbols-outlined icon\"\n /* @ts-ignore */\n translate={false}\n >\n call\n </span>\n <span part=\"emergency-number\" class=\"emergency-number\">\n {this.emergencyNumber.toString()}\n </span>\n </a>\n }\n </div>\n </div>\n )}\n {this.currentTrek.accessibility_level && (\n <div part=\"accessibility-level-container\" class=\"accessibility-level-container\">\n <div part=\"accessibility-level-title\" class=\"accessibility-level-title\">\n {translate[state.language].accessibilityLevel}\n </div>\n <div part=\"accessibility-level-name\" innerHTML={this.accessibilityLevel.name}></div>\n </div>\n )}\n {this.currentTrek.accessibility_slope && (\n <div part=\"accessibility-slope-container\" class=\"accessibility-slope-container\">\n <div part=\"accessibility-slope-title\" class=\"accessibility-slope-title\">\n {translate[state.language].accessibilitySlope}\n </div>\n <div part=\"accessibility-slope\" innerHTML={this.currentTrek.accessibility_slope}></div>\n </div>\n )}\n {this.currentTrek.accessibility_width && (\n <div part=\"accessibility-width-container\" class=\"accessibility-width-container\">\n <div part=\"accessibility-width-title\" class=\"accessibility-width-title\">\n {translate[state.language].accessibilityWidth}\n </div>\n <div part=\"accessibility-width\" innerHTML={this.currentTrek.accessibility_width}></div>\n </div>\n )}\n {this.currentTrek.accessibility_signage && (\n <div part=\"accessibility-signage-container\" class=\"accessibility-signage-container\">\n <div part=\"accessibility-signage-title\" class=\"accessibility-signage-title\">\n {translate[state.language].accessibilitySignage}\n </div>\n <div part=\"accessibility-signage\" innerHTML={this.currentTrek.accessibility_signage}></div>\n </div>\n )}\n {this.currentTrek.accessibility_covering && (\n <div part=\"accessibility-covering-container\" class=\"accessibility-covering-container\">\n <div part=\"accessibility-covering-title\" class=\"accessibility-covering-title\">\n {translate[state.language].accessibilityCovering}\n </div>\n <div part=\"accessibility-covering\" innerHTML={this.currentTrek.accessibility_covering}></div>\n </div>\n )}\n {this.currentTrek.accessibility_exposure && (\n <div part=\"accessibility-exposure-container\" class=\"accessibility-exposure-container\">\n <div part=\"accessibility-exposure-title\" class=\"accessibility-exposure-title\">\n {translate[state.language].accessibilityExposure}\n </div>\n <div part=\"accessibility-exposure\" innerHTML={this.currentTrek.accessibility_exposure}></div>\n </div>\n )}\n {this.currentTrek.accessibility_advice && (\n <div part=\"accessibility-advice-container\" class=\"accessibility-advice-container\">\n <div part=\"accessibility-advice-title\" class=\"accessibility-advice-title\">\n {translate[state.language].accessibilityAdvices}\n </div>\n <div part=\"accessibility-advice\" innerHTML={this.currentTrek.accessibility_advice}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {state.trekTouristicContents && state.trekTouristicContents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-content-container\" class=\"touristic-content-container\">\n <div part=\"touristic-content-title\" class=\"touristic-content-title\" ref={el => (this.touristicContentsRef = el)}>\n {translate[state.language].touristicContents(state.trekTouristicContents.length)}\n </div>\n <div part=\"swiper-touristic-content\" class=\"swiper swiper-touristic-content\" ref={el => (this.swiperTouristicContentsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicContents.map(touristicContent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicContent={touristicContent}\n isInsideHorizontalList={true}\n ></grw-touristic-content-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {state.trekTouristicEvents && state.trekTouristicEvents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-event-container\" class=\"touristic-event-container\">\n <div part=\"touristic-event-title\" class=\"touristic-event-title\" ref={el => (this.touristicEventsRef = el)}>\n {translate[state.language].touristicEvents(state.trekTouristicEvents.length)}\n </div>\n <div part=\"swiper-touristic-event\" class=\"swiper swiper-touristic-event\" ref={el => (this.swiperTouristicEventsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicEvents.map(touristicEvent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicEvent={touristicEvent}\n ></grw-touristic-event-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicEventsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.currentTrek.web_links && this.currentTrek.web_links.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weblinks-container\" class=\"weblinks-container\">\n <div part=\"weblinks-title\" class=\"weblinks-title\">\n {translate[state.language].learnMore}\n </div>\n {this.currentTrek.web_links.map(weblink => (\n <a part=\"weblink-container\" class=\"weblink-container\" href={weblink.url} target=\"_blank\" rel=\"noopener noreferrer\">\n {weblink.category && weblink.category.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={weblink.category.pictogram}\n />\n )}\n {weblink.name}\n </a>\n ))}\n </div>\n </div>\n )}\n {this.currentTrek.source && this.currentTrek.source.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"source-container\" class=\"source-container\">\n <div part=\"source-title\" class=\"source-title\">\n {translate[state.language].sources}\n </div>\n {this.sources.map(source => (\n <div part=\"source-sub-container\" class=\"source-sub-container\">\n {source.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={source.pictogram}\n />\n )}\n <div>\n <div part=\"source-name\" class=\"source-name\" innerHTML={source.name}></div>\n <a part=\"source-advice\" class=\"source-advice\" href={source.website} innerHTML={source.website}></a>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\nimport { getTrek } from 'services/treks.service';\nimport state from 'store/store';\nimport { Trek } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-trek-provider',\n shadow: true,\n})\nexport class GrwTrekProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() trekId: number;\n\n @Prop() portals: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() routes: string;\n @Prop() practices: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTrek();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTrek() {\n const trekInStore: Trek = await getDataInStore('treks', this.trekId);\n if (trekInStore && trekInStore.offline) {\n this.handleOfflineTrek(trekInStore);\n } else {\n this.handleOnlineTrek();\n }\n }\n\n async handleOfflineTrek(trek: Trek) {\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await getDataInStore('treks', state.parentTrekId);\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getDataInStore('treks', stepId));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => responses);\n }\n\n if (!state.difficulties) {\n const difficulties = await getAllDataInStore('difficulties');\n setFilesFromStore(difficulties, imagesRegExp);\n state.difficulties = difficulties;\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.ratings) {\n state.ratings = await getAllDataInStore('ratings');\n }\n if (!state.ratingsScale) {\n state.ratingsScale = await getAllDataInStore('ratingsScale');\n }\n if (!state.currentSensitiveAreas) {\n // filter trek items\n state.currentSensitiveAreas = await getAllDataInStore('sensitiveAreas');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.sources) {\n state.sources = await getAllDataInStore('sources');\n }\n if (!state.accessibilitiesLevel) {\n state.accessibilitiesLevel = await getAllDataInStore('accessibilitiesLevel');\n }\n if (!state.trekTouristicContents) {\n // filter trek items\n const touristicContents = await getAllDataInStore('touristicContents');\n setFilesFromStore(touristicContents, imagesRegExp);\n state.trekTouristicContents = touristicContents;\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n if (!state.trekTouristicEvents) {\n // filter trek items\n state.trekTouristicEvents = await getAllDataInStore('touristicEvents');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n if (!state.networks) {\n state.networks = await getAllDataInStore('networks');\n }\n if (!state.currentPois) {\n // filter trek items\n const pois = await getAllDataInStore('pois');\n setFilesFromStore(pois, imagesRegExp);\n state.currentPois = pois;\n }\n\n if (!state.poiTypes) {\n state.poiTypes = await getAllDataInStore('poiTypes');\n }\n if (!state.currentInformationDesks) {\n // filter trek items\n state.currentInformationDesks = await getAllDataInStore('informationDesks');\n }\n\n // handle images\n setFilesFromStore(trek, imagesRegExp);\n state.currentTrek = trek;\n }\n\n handleOnlineTrek() {\n const requests = [];\n requests.push(\n !state.difficulties\n ? fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.routes\n ? fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.practices\n ? fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.themes\n ? fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.accessibilities\n ? fetch(`${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.ratings\n ? fetch(`${state.api}trek_rating/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,scale`, this.init)\n : new Response('null'),\n );\n requests.push(!state.ratings ? fetch(`${state.api}trek_ratingscale/?language=${state.language}&fields=id,name`, this.init) : new Response('null'));\n\n try {\n Promise.all([\n ...requests,\n fetch(\n `${this.api}sensitivearea/?language=${state.language}&published=true&trek=${this.trekId}&period=ignore&fields=id,geometry,name,description,contact,info_url,period,practices`,\n this.init,\n )\n .then(response => {\n if (response.ok) {\n return response;\n } else {\n throw new Error('Sentive area error');\n }\n })\n .catch(() => {\n return new Response('null');\n }),\n fetch(`${state.api}label/?language=${state.language}&fields=id,name,advice,pictogram`, this.init),\n fetch(`${state.api}source/?language=${state.language}&fields=id,name,website,pictogram`, this.init),\n fetch(`${state.api}trek_accessibility_level/?language=${state.language}&fields=id,name`, this.init).catch(() => new Response('null')),\n fetch(`${state.api}poi/?language=${state.language}&trek=${this.trekId}&published=true&fields=id,name,description,attachments,type,geometry&page_size=999`, this.init),\n fetch(`${state.api}poi_type/?language=${state.language}&fields=id,pictogram`, this.init),\n fetch(\n `${state.api}informationdesk/?language=${state.language}&fields=id,name,description,type,phone,email,website,municipality,postal_code,street,photo_url,latitude,longitude&page_size=999`,\n this.init,\n ),\n getTouristicContentsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristiccontent_category/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTouristicEventsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristicevent_type/?language=${state.language}&published=true&fields=id,type,pictogram&page_size=999`, this.init),\n fetch(`${state.api}trek_network/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTrek(state.api, state.language, this.trekId, this.init),\n ])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(\n async ([\n difficulties,\n routes,\n practices,\n themes,\n cities,\n accessibilities,\n ratings,\n ratingsScale,\n sensitiveAreas,\n labels,\n sources,\n accessibilitiesLevel,\n pois,\n poiTypes,\n informationDesks,\n touristicContent,\n touristicContentCategory,\n touristicEvent,\n touristicEventType,\n networks,\n trek,\n ]) => {\n state.networkError = false;\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await fetch(`${state.api}trek/${state.parentTrekId}/?language=${state.language}&published=true&fields=name,children`).then(response =>\n response.json(),\n );\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, this.init));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n }\n\n if (difficulties) {\n state.difficulties = difficulties.results;\n }\n if (routes) {\n state.routes = routes.results;\n }\n if (practices) {\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n }\n if (themes) {\n state.themes = themes.results;\n }\n if (cities) {\n state.cities = cities.results;\n }\n if (accessibilities) {\n state.accessibilities = accessibilities.results;\n }\n if (ratings) {\n state.ratings = ratings.results;\n }\n if (ratingsScale) {\n state.ratingsScale = ratingsScale.results;\n }\n if (sensitiveAreas) {\n state.currentSensitiveAreas = sensitiveAreas.results;\n }\n if (labels) {\n state.labels = labels.results;\n }\n if (sources) {\n state.sources = sources.results;\n }\n if (accessibilitiesLevel) {\n state.accessibilitiesLevel = accessibilitiesLevel.results;\n }\n if (touristicContent) {\n state.trekTouristicContents = touristicContent.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n if (touristicEvent) {\n state.trekTouristicEvents = touristicEvent.results;\n }\n if (touristicEventType) {\n state.touristicEventTypes = touristicEventType.results;\n }\n if (networks) {\n state.networks = networks.results;\n }\n if (pois) {\n state.currentPois = pois.results;\n }\n if (poiTypes) {\n state.poiTypes = poiTypes.results;\n }\n if (informationDesks) {\n state.currentInformationDesks = informationDesks.results;\n }\n if (trek) {\n state.currentTrek = trek;\n }\n },\n );\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-trek-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-treks-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.treks-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Treks } from 'types/types';\n\n@Component({\n tag: 'grw-treks-list',\n styleUrl: 'grw-treks-list.scss',\n shadow: true,\n})\nexport class GrwTreksList {\n @Element() element: HTMLElement;\n @State() treksToDisplay: Treks = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() displayOnlyOfflineTreks = false;\n @Prop() isLargeView = false;\n\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n onChange('currentTreks', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n });\n onChange('treksWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.treksWithinBounds) {\n this.treksToDisplay = [...state.treksWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.treksToDisplay.length < state.treksWithinBounds.length) {\n this.treksToDisplay = state.treksWithinBounds.slice(\n 0,\n this.treksToDisplay.length + this.step >= state.treksWithinBounds.length ? state.treksWithinBounds.length : this.treksToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.treksWithinBounds.length} ${\n state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek\n }`}</div>\n )}\n <div part=\"treks-list-container\" class=\"treks-list-container\">\n {this.treksToDisplay.map(trek => (\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-trek-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore } from 'services/grw-db.service';\nimport { getDistricts, getTreksList, trekIsAvailableOffline } from 'services/treks.service';\nimport state from 'store/store';\nimport { Treks } from 'types/types';\nimport { durations, elevations, lengths } from 'utils/utils';\n\n@Component({\n tag: 'grw-treks-provider',\n shadow: true,\n})\nexport class GrwTreksProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n @Prop() routes: string;\n @Prop() practices: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTreks();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTreks() {\n this.handleOnlineTreks();\n }\n\n async handleOfflineTreks(treks: Treks) {\n if (!state.difficulties) {\n state.difficulties = await getAllDataInStore('difficulties');\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.districts) {\n state.districts = await getAllDataInStore('districts');\n }\n if (!state.durations) {\n state.durations = durations;\n }\n if (!state.lengths) {\n state.lengths = lengths;\n }\n if (!state.elevations) {\n state.elevations = elevations;\n }\n this.sortTreks(treks);\n state.treks = treks;\n state.currentTreks = treks;\n }\n\n sortTreks(treks) {\n treks.sort((a, b) => {\n return a.name.localeCompare(b.name, undefined, {\n numeric: true,\n sensitivity: 'base',\n });\n });\n }\n\n handleOnlineTreks() {\n Promise.all([\n fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init),\n fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init),\n fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init),\n fetch(\n `${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram&published=true&page_size=999`,\n this.init,\n ),\n fetch(\n `${state.api}label/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,advice,pictogram,filter&published=true&page_size=999`,\n this.init,\n ),\n getDistricts(state.api, state.language, this.init),\n getTreksList(this.api, state.language, this.inBbox, this.cities, this.districts, this.structures, this.themes, this.portals, this.routes, this.practices, this.init),\n ])\n .then(responses => {\n responses.forEach(response => {\n if (response.status !== 200) {\n throw new Error('network error');\n }\n });\n return Promise.all(responses.map(response => response.json()));\n })\n .then(async ([difficulties, routes, practices, themes, cities, accessibility, labels, districts, treks]) => {\n state.networkError = false;\n state.difficulties = difficulties.results;\n state.routes = routes.results;\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n state.themes = themes.results;\n state.cities = cities.results;\n state.accessibilities = accessibility.results;\n state.labels = labels.results;\n state.districts = districts.results;\n state.durations = durations;\n state.lengths = lengths;\n state.elevations = elevations;\n const treksWithOfflineValue = [];\n for (let index = 0; index < treks.results.length; index++) {\n const offline = await trekIsAvailableOffline(treks.results[index].id);\n treksWithOfflineValue.push({ ...treks.results[index], offline });\n }\n state.treks = treksWithOfflineValue;\n state.currentTreks = treksWithOfflineValue;\n })\n .catch(async () => {\n const treksInStore: Treks = await getAllDataInStore('treks');\n if (treksInStore && treksInStore.length > 0) {\n this.handleOfflineTreks(treksInStore);\n } else {\n state.networkError = true;\n }\n });\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"mappings":"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"}