@geotrekce/geotrek-rando-widget 0.7.0 → 0.8.0
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.
- package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
- package/dist/cjs/geotrek-rando-widget.cjs.js.br +0 -0
- package/dist/cjs/geotrek-rando-widget.cjs.js.gz +0 -0
- package/dist/cjs/grw-app.cjs.entry.js +5 -3
- package/dist/cjs/grw-app.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-app.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-app.cjs.entry.js.map +1 -1
- package/dist/cjs/grw-common-button_21.cjs.entry.js +2 -2
- package/dist/cjs/grw-common-button_21.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-common-button_21.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-common-button_21.cjs.entry.js.map +1 -1
- package/dist/cjs/grw-information-desk_6.cjs.entry.js +11 -5
- package/dist/cjs/grw-information-desk_6.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-information-desk_6.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-information-desk_6.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js.br +0 -0
- package/dist/cjs/loader.cjs.js.gz +0 -0
- package/dist/collection/components/grw-app/grw-app.css +1 -1
- package/dist/collection/components/grw-app/grw-app.css.br +0 -0
- package/dist/collection/components/grw-app/grw-app.css.gz +0 -0
- package/dist/collection/components/grw-app/grw-app.js +22 -2
- package/dist/collection/components/grw-app/grw-app.js.br +0 -0
- package/dist/collection/components/grw-app/grw-app.js.gz +0 -0
- package/dist/collection/components/grw-app/grw-app.js.map +1 -1
- package/dist/collection/components/grw-filters/grw-filters.css +1 -1
- package/dist/collection/components/grw-filters/grw-filters.css.br +0 -0
- package/dist/collection/components/grw-filters/grw-filters.css.gz +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.css +2 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.css.br +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.css.gz +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js +4 -1
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js.br +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js.gz +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js.map +1 -1
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.css +2 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.css.br +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.css.gz +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js +4 -1
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js.br +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js.gz +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js.map +1 -1
- package/dist/collection/components/grw-trek-card/grw-trek-card.css +3 -1
- package/dist/collection/components/grw-trek-card/grw-trek-card.css.br +0 -0
- package/dist/collection/components/grw-trek-card/grw-trek-card.css.gz +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +1 -1
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.br +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.gz +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.map +1 -1
- package/dist/esm/geotrek-rando-widget.js +1 -1
- package/dist/esm/geotrek-rando-widget.js.br +0 -0
- package/dist/esm/geotrek-rando-widget.js.gz +0 -0
- package/dist/esm/grw-app.entry.js +5 -3
- package/dist/esm/grw-app.entry.js.br +0 -0
- package/dist/esm/grw-app.entry.js.gz +0 -0
- package/dist/esm/grw-app.entry.js.map +1 -1
- package/dist/esm/grw-common-button_21.entry.js +2 -2
- package/dist/esm/grw-common-button_21.entry.js.br +0 -0
- package/dist/esm/grw-common-button_21.entry.js.gz +0 -0
- package/dist/esm/grw-common-button_21.entry.js.map +1 -1
- package/dist/esm/grw-information-desk_6.entry.js +11 -5
- package/dist/esm/grw-information-desk_6.entry.js.br +0 -0
- package/dist/esm/grw-information-desk_6.entry.js.gz +0 -0
- package/dist/esm/grw-information-desk_6.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.js.br +0 -0
- package/dist/esm/loader.js.gz +0 -0
- package/dist/esm-es5/geotrek-rando-widget.js +1 -1
- package/dist/esm-es5/geotrek-rando-widget.js.br +0 -0
- package/dist/esm-es5/geotrek-rando-widget.js.gz +0 -0
- package/dist/esm-es5/geotrek-rando-widget.js.map +1 -1
- package/dist/esm-es5/grw-app.entry.js +1 -1
- package/dist/esm-es5/grw-app.entry.js.br +0 -0
- package/dist/esm-es5/grw-app.entry.js.gz +0 -0
- package/dist/esm-es5/grw-app.entry.js.map +1 -1
- package/dist/esm-es5/grw-common-button_21.entry.js +2 -2
- package/dist/esm-es5/grw-common-button_21.entry.js.br +0 -0
- package/dist/esm-es5/grw-common-button_21.entry.js.gz +0 -0
- package/dist/esm-es5/grw-common-button_21.entry.js.map +1 -1
- package/dist/esm-es5/grw-information-desk_6.entry.js +1 -1
- package/dist/esm-es5/grw-information-desk_6.entry.js.br +0 -0
- package/dist/esm-es5/grw-information-desk_6.entry.js.gz +0 -0
- package/dist/esm-es5/grw-information-desk_6.entry.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.br +0 -0
- package/dist/esm-es5/loader.js.gz +0 -0
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
- package/dist/geotrek-rando-widget/geotrek-rando-widget.css.br +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.css.gz +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.br +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.gz +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.map +1 -1
- package/dist/geotrek-rando-widget/{p-e2a73eac.entry.js → p-40e69a46.entry.js} +4 -4
- package/dist/geotrek-rando-widget/p-40e69a46.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-40e69a46.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-40e69a46.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-d2fb6fb4.system.entry.js → p-4c85680a.system.entry.js} +2 -2
- package/dist/geotrek-rando-widget/p-4c85680a.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-4c85680a.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-4c85680a.system.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js +2 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-9d826a4c.entry.js → p-ae129a99.entry.js} +2 -2
- package/dist/geotrek-rando-widget/p-ae129a99.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ae129a99.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ae129a99.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js +1 -1
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js.br +0 -0
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js.map +1 -1
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js +2 -0
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-05f3277d.system.entry.js → p-dfd293bb.system.entry.js} +3 -3
- package/dist/geotrek-rando-widget/p-dfd293bb.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-dfd293bb.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-dfd293bb.system.entry.js.map +1 -0
- package/dist/types/components/grw-app/grw-app.d.ts +1 -0
- package/dist/types/components.d.ts +2 -0
- package/package.json +1 -1
- package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-9d826a4c.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-9d826a4c.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-9d826a4c.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js +0 -2
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-d2fb6fb4.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-d2fb6fb4.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-d2fb6fb4.system.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js +0 -2
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["grwCommonButtonCss","GrwCommonButton","exports","class_1","prototype","render","_this_1","this","h","Host","style","fontFamily","part","class","onClick","action","translate","icon","name","grwExtendedFabCss","GrwExtendedFab","class_2","display","grwFiltersCss","GrwFilters","class_3","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","class_4","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","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_5","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","class_6","onSearchChange","searchValue","onInput","placeholder","grwSegmentedSegmentCss","GrwSegmentedSegment","class_7","changeMode","grwSelectLanguageCss","GrwSelectLanguage","class_8","handleSelect","languages","toLocaleLowerCase","toLocaleUpperCase","grwSwitchCss","GrwSwitch","class_9","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","class_10","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_11","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","class_12","handleInfiniteScrollEvent","touristicContentsToDisplay","scroll","composedPath","scrollTop","scrollHeight","colorSurfaceContainerLow","GrwTouristicContentsProvider","class_13","handleTouristicContents","touristicContentsRequest","inBbox","structures","grwTouristicEventDetailCss","GrwTouristicEventDetail","class_14","touristicEventCategory","touristicEventDetailContainerRef","begin_date","end_date","date","startDate","endDate","getTouristicEvent","touristicEventId","getTouristicEventsNearTrek","GrwTouristicEventProvider","class_15","handleTouristicEvent","touristicEventInStore","handleOfflineTouristicEvent","handleOnlineTouristicEvent","grwTouristicEventsListCss","class_16","touristicEventsToDisplay","GrwTouristicEventsProvider","class_17","handleTouristicEvents","touristicEventsRequest","grwTrekDetailCss","threshold","presentation","indicator","recommendations","GrwTrekDetail","indicatorSelectedTrekOption","translateX","backgroundSize","class_18","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_19","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","class_20","treksToDisplay","GrwTreksProvider","class_21","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)+\" \"+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)+\" \"+a.label},order:30},minele:{label:\"Min Elevation: \",value:function(t){return(t.elevation_min||0).toFixed(2)+\" \"+a.label},order:30},avgele:{label:\"Avg Elevation: \",value:function(t){return(t.elevation_avg||0).toFixed(2)+\" \"+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)+\" \"+(t.options.imperial?\"ft\":\"m\")},order:40},descent:{label:\"Total Descent: \",value:function(e){return Math.round(e.descent||0)+\" \"+(t.options.imperial?\"ft\":\"m\")},order:40},minslope:{label:\"Min Slope: \",value:function(t){return Math.round(t.slope_min||0)+\" \"+a.label},order:40},maxslope:{label:\"Max Slope: \",value:function(t){return Math.round(t.slope_max||0)+\" \"+a.label},order:40},avgslope:{label:\"Avg Slope: \",value:function(t){return Math.round(t.slope_avg||0)+\" \"+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)+\" \"+a.label},order:50},maxspeed:{label:\"Max Speed: \",value:function(t){return Math.round(t.speed_max||0)+\" \"+a.label},order:50},avgspeed:{label:\"Avg Speed: \",value:function(t){return Math.round(t.speed_avg||0)+\" \"+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)+\" \"+a.label},order:60},maxacceleration:{label:\"Max Acceleration: \",value:function(t){return Math.round(t.acceleration_max||0)+\" \"+a.label},order:60},avgacceleration:{label:\"Avg Acceleration: \",value:function(t){return Math.round(t.acceleration_avg||0)+\" \"+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} : \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} : \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} : \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} : \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} : \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} : \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} : \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} : \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} : \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} : \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><</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} : \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} : \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} : \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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"}
|