@geotrekce/geotrek-rando-widget 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
  2. package/dist/cjs/{grw-app_7.cjs.entry.js → grw-app_10.cjs.entry.js} +275 -47
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/collection/collection-manifest.json +3 -0
  5. package/dist/collection/components/grw-app/grw-app.css +1 -0
  6. package/dist/collection/components/grw-app/grw-app.js +82 -6
  7. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css +30 -0
  8. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js +53 -0
  9. package/dist/collection/components/grw-map/grw-map.css +81 -0
  10. package/dist/collection/components/grw-map/grw-map.js +255 -31
  11. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css +30 -0
  12. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js +41 -0
  13. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css +16 -0
  14. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.js +38 -0
  15. package/dist/collection/components/grw-trek-card/grw-trek-card.css +3 -0
  16. package/dist/collection/components/grw-trek-card/grw-trek-card.js +4 -4
  17. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css +35 -0
  18. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +40 -6
  19. package/dist/collection/components/grw-treks-list/grw-treks-list.css +1 -0
  20. package/dist/collection/components/grw-treks-list/grw-treks-list.js +2 -2
  21. package/dist/collection/store/grw-trek-provider.js +11 -5
  22. package/dist/collection/store/grw-treks-provider.js +3 -3
  23. package/dist/collection/store/store.js +3 -0
  24. package/dist/collection/stories/App.js +14 -6
  25. package/dist/collection/stories/App.stories.js +10 -6
  26. package/dist/collection/stories/TrekCard.js +2 -1
  27. package/dist/collection/stories/TrekCard.stories.js +4 -3
  28. package/dist/collection/stories/TrekDetail.js +3 -1
  29. package/dist/collection/stories/TrekDetail.stories.js +5 -3
  30. package/dist/collection/stories/TrekMap.js +6 -4
  31. package/dist/collection/stories/TrekMap.stories.js +7 -5
  32. package/dist/collection/stories/TreksList.js +2 -1
  33. package/dist/collection/stories/TreksList.stories.js +4 -3
  34. package/dist/collection/stories/TreksMap.stories.js +3 -3
  35. package/dist/collection/utils/utils.js +2 -2
  36. package/dist/components/grw-app.js +31 -5
  37. package/dist/components/grw-information-desk-detail.d.ts +11 -0
  38. package/dist/components/grw-information-desk-detail.js +6 -0
  39. package/dist/components/grw-information-desk-detail2.js +34 -0
  40. package/dist/components/grw-map2.js +203 -28
  41. package/dist/components/grw-poi-detail.d.ts +11 -0
  42. package/dist/components/grw-poi-detail.js +6 -0
  43. package/dist/components/grw-poi-detail2.js +32 -0
  44. package/dist/components/grw-sensitive-area-detail.d.ts +11 -0
  45. package/dist/components/grw-sensitive-area-detail.js +6 -0
  46. package/dist/components/grw-sensitive-area-detail2.js +32 -0
  47. package/dist/components/grw-trek-card2.js +3 -3
  48. package/dist/components/grw-trek-detail2.js +25 -5
  49. package/dist/components/grw-trek-provider2.js +11 -5
  50. package/dist/components/grw-treks-list2.js +2 -2
  51. package/dist/components/grw-treks-provider2.js +3 -3
  52. package/dist/components/length.js +2 -2
  53. package/dist/components/store.js +3 -0
  54. package/dist/esm/geotrek-rando-widget.js +1 -1
  55. package/dist/esm/{grw-app_7.entry.js → grw-app_10.entry.js} +273 -48
  56. package/dist/esm/loader.js +1 -1
  57. package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
  58. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  59. package/dist/geotrek-rando-widget/p-73bc92fe.entry.js +1 -0
  60. package/dist/types/components/grw-app/grw-app.d.ts +4 -0
  61. package/dist/types/components/grw-information-desk-detail/grw-information-desk-detail.d.ts +5 -0
  62. package/dist/types/components/grw-map/grw-map.d.ts +13 -4
  63. package/dist/types/components/grw-poi-detail/grw-poi-detail.d.ts +5 -0
  64. package/dist/types/components/grw-sensitive-area-detail/grw-sensitive-area-detail.d.ts +5 -0
  65. package/dist/types/components/grw-trek-detail/grw-trek-detail.d.ts +1 -0
  66. package/dist/types/components.d.ts +65 -1
  67. package/dist/types/store/store.d.ts +7 -1
  68. package/dist/types/types/types.d.ts +46 -3
  69. package/package.json +5 -7
  70. package/readme.md +20 -1
  71. package/dist/geotrek-rando-widget/p-b7c66d2d.entry.js +0 -1
@@ -190,12 +190,15 @@ const { state, onChange } = createStore({
190
190
  difficulties: [],
191
191
  routes: [],
192
192
  practices: [],
193
+ currentSensitiveAreas: null,
194
+ currentPois: null,
193
195
  currentTrek: null,
196
+ currentInformationDesks: null,
194
197
  });
195
198
 
196
199
  const arrowBackImage = `<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><polyline points="244 400 100 256 244 112" style="fill:none;stroke:#ffffff;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px"/><line x1="120" y1="256" x2="412" y2="256" style="fill:none;stroke:#ffffff;stroke-linecap:round;stroke-linejoin:round;stroke-width:48px"/></svg>`;
197
200
 
198
- const grwAppCss = ".app-container{position:relative;height:100%;max-height:100vh}.header-container,.large-view-header-container{display:flex;align-items:center;background-color:var(--color-primary);height:64px}.header-container .title,.large-view-header-container .title{color:#ffffff;margin-left:24px}.header-container .arrow-back-icon,.large-view-header-container .arrow-back-icon{width:48px;height:auto;margin-left:24px}.header-container .arrow-back-icon svg,.large-view-header-container .arrow-back-icon svg{cursor:pointer;width:48px;height:auto}.loader-container,.large-view-loader-container{display:flex;justify-content:center;align-items:center;height:100%}.loader-container .loader,.large-view-loader-container .loader{width:48px;height:48px;border:5px solid var(--color-primary-tint);border-bottom-color:var(--color-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.content-container{position:relative;display:flex;height:calc(100% - 64px)}.app-treks-list-container,.app-trek-detail-container,.large-view-app-treks-list-container,.large-view-app-trek-detail-container{height:100%}.app-map-container,.large-view-app-map-container{width:100%;height:100%}.map-visibility-button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:absolute;bottom:24px;width:100%;z-index:400;user-select:none}.map-visibility-button div{background-color:var(--color-primary);color:#ffffff;padding:12px;border-radius:24px;width:120px;text-align:center}.header-container .title{font-size:24px}.loader-container{position:absolute;width:100%}.app-treks-list-container,.app-trek-detail-container{width:100%}.app-map-container{position:relative;width:100%;position:absolute}.large-view-header-container .title{font-size:32px}.large-view-loader-container{position:relative;width:50%}.large-view-app-treks-list-container,.large-view-app-trek-detail-container{width:50%}.large-view-app-map-container{position:relative;width:50%}";
201
+ const grwAppCss = ".app-container{position:relative;height:100%;max-height:100vh;font-family:\"Roboto\"}.header-container,.large-view-header-container{display:flex;align-items:center;background-color:var(--color-primary);height:64px}.header-container .title,.large-view-header-container .title{color:#ffffff;margin-left:24px}.header-container .arrow-back-icon,.large-view-header-container .arrow-back-icon{width:48px;height:auto;margin-left:24px}.header-container .arrow-back-icon svg,.large-view-header-container .arrow-back-icon svg{cursor:pointer;width:48px;height:auto}.loader-container,.large-view-loader-container{display:flex;justify-content:center;align-items:center;height:100%}.loader-container .loader,.large-view-loader-container .loader{width:48px;height:48px;border:5px solid var(--color-primary-tint);border-bottom-color:var(--color-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.content-container{position:relative;display:flex;height:calc(100% - 64px)}.app-treks-list-container,.app-trek-detail-container,.large-view-app-treks-list-container,.large-view-app-trek-detail-container{height:100%}.app-map-container,.large-view-app-map-container{width:100%;height:100%}.map-visibility-button{cursor:pointer;display:flex;justify-content:center;align-items:center;position:absolute;bottom:24px;width:100%;z-index:400;user-select:none}.map-visibility-button div{background-color:var(--color-primary);color:#ffffff;padding:12px;border-radius:24px;width:120px;text-align:center}.header-container .title{font-size:24px}.loader-container{position:absolute;width:100%}.app-treks-list-container,.app-trek-detail-container{width:100%}.app-map-container{position:relative;width:100%;position:absolute}.large-view-header-container .title{font-size:32px}.large-view-loader-container{position:relative;width:50%}.large-view-app-treks-list-container,.large-view-app-trek-detail-container{width:50%}.large-view-app-map-container{position:relative;width:50%}";
199
202
 
200
203
  const GrwApp = class {
201
204
  constructor(hostRef) {
@@ -203,12 +206,16 @@ const GrwApp = class {
203
206
  this.showTrek = false;
204
207
  this.showMap = false;
205
208
  this.isLargeView = false;
209
+ this.language = 'fr';
206
210
  this.appName = 'Geotrek Rando Widget';
207
211
  this.colorPrimary = '#6b0030';
208
- this.colorPrimaryTint = '#d2b2c0';
212
+ this.colorPrimaryShade = '#4a0021';
213
+ this.colorPrimaryTint = '#974c6e';
209
214
  this.colorTrekLine = '#6b0030';
210
215
  this.colorDepartureIcon = '#006b3b';
211
216
  this.colorArrivalIcon = '#85003b';
217
+ this.colorSensitiveArea = '#4974a5';
218
+ this.colorPoiIcon = '#974c6e';
212
219
  this.largeViewSize = 664;
213
220
  }
214
221
  onTrekCardPress(event) {
@@ -233,7 +240,7 @@ const GrwApp = class {
233
240
  this.showMap = this.isLargeView;
234
241
  }
235
242
  render() {
236
- return (h(Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, h("grw-treks-provider", { api: this.api, "in-bbox": this.inBbox, cities: this.cities, districts: this.districts, structures: this.structures, themes: this.themes, portals: this.portals, routes: this.routes, practices: this.practices }), this.showTrek && this.currentTrekId && h("grw-trek-provider", { api: state.api, "trek-id": this.currentTrekId }), h("div", { class: "app-container" }, h("div", { class: this.isLargeView ? 'large-view-header-container' : 'header-container' }, this.showTrek ? h("div", { onClick: () => this.onTrekDetailsClose(), class: "arrow-back-icon", innerHTML: arrowBackImage }) : h("div", { class: "title" }, this.appName)), h("div", { class: "content-container" }, h("div", { class: this.isLargeView ? 'large-view-app-treks-list-container' : 'app-treks-list-container', style: { display: this.showTrek ? 'none' : 'flex', position: this.showTrek ? 'absolute' : 'relative' } }, h("grw-treks-list", { "color-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint })), this.showTrek && !state.currentTrek && (h("div", { class: this.isLargeView ? 'large-view-loader-container' : 'loader-container' }, h("span", { class: "loader" }))), state.currentTrek && (h("div", { class: this.isLargeView ? 'large-view-app-trek-detail-container' : 'app-trek-detail-container' }, h("grw-trek-detail", { "color-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint }))), h("grw-map", { class: this.isLargeView ? 'large-view-app-map-container' : 'app-map-container', style: { visibility: this.showMap ? 'visible' : 'hidden' }, "url-layer": this.urlLayer, center: this.center, zoom: this.zoom, attribution: this.attribution, "color-trek-line": this.colorTrekLine, "color-departure-icon": this.colorDepartureIcon, "color-arrival-icon": this.colorArrivalIcon })), h("div", { class: "map-visibility-button", style: { display: this.isLargeView ? 'none' : 'flex' } }, h("div", { onClick: () => (this.showMap = !this.showMap) }, this.showMap ? (this.showTrek ? 'Voir la fiche' : 'Voir la liste') : 'Voir la carte')))));
243
+ return (h(Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, h("grw-treks-provider", { api: this.api, language: this.language, "in-bbox": this.inBbox, cities: this.cities, districts: this.districts, structures: this.structures, themes: this.themes, portals: this.portals, routes: this.routes, practices: this.practices }), this.showTrek && this.currentTrekId && h("grw-trek-provider", { api: state.api, language: this.language, "trek-id": this.currentTrekId }), h("div", { class: "app-container" }, h("div", { class: this.isLargeView ? 'large-view-header-container' : 'header-container' }, this.showTrek ? h("div", { onClick: () => this.onTrekDetailsClose(), class: "arrow-back-icon", innerHTML: arrowBackImage }) : h("div", { class: "title" }, this.appName)), h("div", { class: "content-container" }, h("div", { class: this.isLargeView ? 'large-view-app-treks-list-container' : 'app-treks-list-container', style: { display: this.showTrek ? 'none' : 'flex', position: this.showTrek ? 'absolute' : 'relative' } }, h("grw-treks-list", { "color-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint })), this.showTrek && !state.currentTrek && (h("div", { class: this.isLargeView ? 'large-view-loader-container' : 'loader-container' }, h("span", { class: "loader" }))), state.currentTrek && (h("div", { class: this.isLargeView ? 'large-view-app-trek-detail-container' : 'app-trek-detail-container' }, h("grw-trek-detail", { "color-primary": this.colorPrimary, "color-primary-shade": this.colorPrimaryShade, "color-primary-tint": this.colorPrimaryTint }))), h("grw-map", { class: this.isLargeView ? 'large-view-app-map-container' : 'app-map-container', style: { visibility: this.showMap ? 'visible' : 'hidden' }, "url-layer": this.urlLayer, center: this.center, zoom: this.zoom, attribution: this.attribution, "color-trek-line": this.colorTrekLine, "color-departure-icon": this.colorDepartureIcon, "color-arrival-icon": this.colorArrivalIcon, "color-sensitive-area": this.colorSensitiveArea, "color-poi-icon": this.colorPoiIcon })), h("div", { class: "map-visibility-button", style: { display: this.isLargeView ? 'none' : 'flex' } }, h("div", { onClick: () => (this.showMap = !this.showMap) }, this.showMap ? (this.showTrek ? 'Voir la fiche' : 'Voir la liste') : 'Voir la carte')))));
237
244
  }
238
245
  get element() { return getElement(this); }
239
246
  static get watchers() { return {
@@ -242,6 +249,20 @@ const GrwApp = class {
242
249
  };
243
250
  GrwApp.style = grwAppCss;
244
251
 
252
+ const grwInformationDeskDetailCss = ":host{display:flex;flex-direction:column;padding:0px 8px 8px 8px}.information-desk-img{width:180px}.information-desk-img img{width:180px;border-radius:8px}.information-desk-right-container{display:flex;flex-direction:column;padding:8px}.information-desk-name{color:var(--color-primary);font-size:24px;font-weight:bold;padding:0px 0px 8px 0px}.information-desk-description{font-size:16px}";
253
+
254
+ const GrwInformationDeskDetail = class {
255
+ constructor(hostRef) {
256
+ registerInstance(this, hostRef);
257
+ }
258
+ render() {
259
+ return (h(Host, null, this.informationDesk.photo_url && (h("div", { class: "information-desk-img" }, h("img", { src: this.informationDesk.photo_url, loading: "lazy" }))), h("div", { class: "information-desk-right-container" }, this.informationDesk.name && h("div", { class: "information-desk-name" }, this.informationDesk.name), this.informationDesk.description && h("div", { class: "information-desk-description", innerHTML: this.informationDesk.description }), this.informationDesk.postal_code ||
260
+ this.informationDesk.municipality ||
261
+ (this.informationDesk.street && (h("div", null, this.informationDesk.postal_code, ` ${this.informationDesk.municipality}`, ` ${this.informationDesk.street}`))), this.informationDesk.phone && (h("div", null, h("a", { href: `tel:${this.informationDesk.phone}` }, this.informationDesk.phone))), this.informationDesk.email && (h("div", null, h("a", { href: `mailto:${this.informationDesk.email}` }, this.informationDesk.email))), this.informationDesk.website && (h("div", null, h("a", { href: `${this.informationDesk.website}` }, this.informationDesk.website))))));
262
+ }
263
+ };
264
+ GrwInformationDeskDetail.style = grwInformationDeskDetailCss;
265
+
245
266
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
246
267
 
247
268
  function createCommonjsModule(fn, basedir, module) {
@@ -14383,25 +14404,29 @@ var leafletSrc = createCommonjsModule(function (module, exports) {
14383
14404
 
14384
14405
  const departureArrivalImage = `<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path d="M80,464V68.14a8,8,0,0,1,4-6.9C91.81,56.66,112.92,48,160,48c64,0,145,48,192,48a199.53,199.53,0,0,0,77.23-15.77A2,2,0,0,1,432,82.08V301.44a4,4,0,0,1-2.39,3.65C421.37,308.7,392.33,320,352,320c-48,0-128-32-192-32s-80,16-80,16" style=";fill:#ffffff;stroke:currentColor;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px"/></svg>`;
14385
14406
 
14386
- const grwMapCss = ".leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none !important;max-height:none !important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none !important;max-height:none !important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51, 181, 229, 0.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity 0.2s linear;-moz-transition:opacity 0.2s linear;transition:opacity 0.2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform 0.25s cubic-bezier(0,0,0.25,1);-moz-transition:-moz-transform 0.25s cubic-bezier(0,0,0.25,1);transition:transform 0.25s cubic-bezier(0,0,0.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078A8}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,0.5)}.leaflet-container{font-family:\"Helvetica Neue\", Arial, Helvetica, sans-serif;font-size:12px;font-size:0.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,0.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:black}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px 'Lucida Console', Monaco, monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(images/marker-icon.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255, 255, 255, 0.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-control-attribution svg{display:inline !important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255, 255, 255, 0.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,0.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#333;box-shadow:0 3px 14px rgba(0,0,0,0.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma, Verdana, sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:\"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,0.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:\"\"}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;color-adjust:exact}}grw-map{display:block;height:100%;max-height:100vh}.departure-icon svg,.arrival-icon svg{width:48px;height:48px}.departure-icon svg path,.arrival-icon svg path{fill:currentColor;stroke:currentColor}.departure-icon{color:var(--color-departure-icon)}.arrival-icon{color:var(--color-arrival-icon)}.trek-marker{background-color:var(--color-primary);border-radius:50%;display:flex;justify-content:center;align-items:center}.trek-marker img{width:36px !important}.map-loader-container{position:absolute;z-index:500;width:100%;height:100%;background:rgba(255, 255, 255, 0.5);display:flex;justify-content:center;align-items:center}.map-loader-container .loader{width:48px;height:48px;border:5px solid var(--color-primary-tint);border-bottom-color:var(--color-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
14407
+ const grwMapCss = ".leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none !important;max-height:none !important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none !important;max-height:none !important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51, 181, 229, 0.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity 0.2s linear;-moz-transition:opacity 0.2s linear;transition:opacity 0.2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform 0.25s cubic-bezier(0,0,0.25,1);-moz-transition:-moz-transform 0.25s cubic-bezier(0,0,0.25,1);transition:transform 0.25s cubic-bezier(0,0,0.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078A8}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,0.5)}.leaflet-container{font-family:\"Helvetica Neue\", Arial, Helvetica, sans-serif;font-size:12px;font-size:0.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,0.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:black}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px 'Lucida Console', Monaco, monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(images/marker-icon.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255, 255, 255, 0.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-control-attribution svg{display:inline !important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box;background:#fff;background:rgba(255, 255, 255, 0.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,0.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#333;box-shadow:0 3px 14px rgba(0,0,0,0.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma, Verdana, sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:\"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,0.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:\"\"}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;color-adjust:exact}}grw-map{font-family:\"Roboto\";display:block;height:100%;max-height:100vh}.departure-icon svg,.arrival-icon svg{width:48px;height:48px}.departure-icon svg path,.arrival-icon svg path{fill:currentColor;stroke:currentColor}.departure-icon{color:var(--color-departure-icon)}.arrival-icon{color:var(--color-arrival-icon)}.trek-marker{background-color:var(--color-primary);border-radius:50%;display:flex;justify-content:center;align-items:center}.trek-marker img{width:36px !important}.map-loader-container{position:absolute;z-index:500;width:100%;height:100%;background:rgba(255, 255, 255, 0.5);display:flex;justify-content:center;align-items:center}.map-loader-container .loader{width:48px;height:48px;border:5px solid var(--color-primary-tint);border-bottom-color:var(--color-primary);border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}@keyframes rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.leaflet-popup-content{width:144px;margin:0}.trek-departure-popup{position:relative;display:flex;flex-direction:column;width:100px;height:auto;padding:24px}.trek-departure-popup img{border-radius:8px;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25)}.trek-departure-popup .trek-name{color:var(--color-primary);font-weight:bold;font-size:12px}.trek-departure-popup .trek-name-margin-top{margin-top:12px}.poi-tooltip .poi-name,.poi-tooltip .information-desks-name,.information-desks-tooltip .poi-name,.information-desks-tooltip .information-desks-name{color:var(--color-primary);font-weight:bold;font-size:12px}.sensitiveAreasCheckboxContainer{display:flex;justify-content:center;align-items:center;background-color:#ffffff;padding:8px;border-radius:8px;user-select:none}.sensitiveAreasCheckboxContainer input,.sensitiveAreasCheckboxContainer label{cursor:pointer}.sensitiveAreasCheckboxContainer input{margin:0}.sensitiveAreasCheckboxContainer label{padding-left:8px}.poi-icon,.information-desks-icon{background-color:var(--color-poi-icon);border-radius:50%;display:flex;justify-content:center;align-items:center}.poi-icon img,.information-desks-icon img{width:36px !important}.parking-icon{background-color:#0000ff;border-radius:50%;display:flex;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;color:#ffffff}";
14387
14408
 
14388
14409
  const GrwMap = class {
14389
14410
  constructor(hostRef) {
14390
14411
  registerInstance(this, hostRef);
14412
+ this.trekCardPress = createEvent(this, "trekCardPress", 7);
14391
14413
  this.mapIsReady = false;
14392
14414
  this.center = '1, 1';
14393
14415
  this.zoom = 10;
14416
+ this.colorPrimary = '#6b0030';
14417
+ this.colorPrimaryTint = '#974c6e';
14394
14418
  this.colorTrekLine = '#6b0030';
14395
14419
  this.colorDepartureIcon = '#006b3b';
14396
14420
  this.colorArrivalIcon = '#85003b';
14397
- this.colorPrimary = '#6b0030';
14398
- this.colorPrimaryTint = '#d2b2c0';
14421
+ this.colorSensitiveArea = ' #4974a5';
14422
+ this.colorPoiIcon = '#974c6e';
14399
14423
  }
14400
14424
  componentDidLoad() {
14401
14425
  this.map = leafletSrc.map(this.element, {
14402
14426
  center: this.center.split(',').map(Number),
14403
14427
  zoom: this.zoom,
14404
14428
  });
14429
+ leafletSrc.control.scale().addTo(this.map);
14405
14430
  leafletSrc.tileLayer(this.urlLayer, {
14406
14431
  maxZoom: 19,
14407
14432
  attribution: this.attribution,
@@ -14433,33 +14458,56 @@ const GrwMap = class {
14433
14458
  }
14434
14459
  addTreks() {
14435
14460
  var _a;
14436
- const treksDepartureCoordinates = [];
14461
+ const trekscurrentDepartureCoordinates = [];
14437
14462
  const treksFeatureCollection = {
14438
14463
  type: 'FeatureCollection',
14439
14464
  features: [],
14440
14465
  };
14441
14466
  for (const trek of state.treks) {
14442
- treksDepartureCoordinates.push(trek.departure_geom);
14467
+ trekscurrentDepartureCoordinates.push(trek.departure_geom);
14443
14468
  treksFeatureCollection.features.push({
14444
14469
  type: 'Feature',
14445
- properties: { practice: (_a = state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram },
14446
14470
  geometry: { type: 'Point', coordinates: trek.departure_geom },
14471
+ properties: {
14472
+ id: trek.id,
14473
+ name: trek.name,
14474
+ practice: (_a = state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram,
14475
+ imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].url,
14476
+ },
14447
14477
  });
14448
14478
  }
14449
- if (treksDepartureCoordinates.length > 0) {
14450
- const bounds = leafletSrc.latLngBounds(treksDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14479
+ if (trekscurrentDepartureCoordinates.length > 0) {
14480
+ const bounds = leafletSrc.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14451
14481
  this.currentBounds = bounds;
14452
14482
  this.map.fitBounds(this.currentBounds);
14453
14483
  }
14454
14484
  this.treksLayer = leafletSrc.geoJSON(treksFeatureCollection, {
14455
14485
  pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14456
14486
  icon: leafletSrc.divIcon({
14487
+ html: geoJsonPoint.properties.practice && `<img src=${geoJsonPoint.properties.practice} />`,
14457
14488
  className: 'trek-marker',
14458
14489
  iconSize: 48,
14459
- html: geoJsonPoint.properties.practice ? `<img src=${geoJsonPoint.properties.practice} />` : '',
14460
14490
  }),
14461
14491
  autoPanOnFocus: false,
14462
14492
  }),
14493
+ onEachFeature: (geoJsonPoint, layer) => {
14494
+ layer.once('click', () => {
14495
+ const trekDeparturePopup = leafletSrc.DomUtil.create('div');
14496
+ trekDeparturePopup.className = 'trek-departure-popup';
14497
+ trekDeparturePopup.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);
14498
+ const trekName = leafletSrc.DomUtil.create('div');
14499
+ trekName.innerHTML = geoJsonPoint.properties.name;
14500
+ trekName.className = 'trek-name';
14501
+ if (geoJsonPoint.properties.imgSrc) {
14502
+ trekName.className += ' trek-name-margin-top';
14503
+ const trekImg = leafletSrc.DomUtil.create('img');
14504
+ trekImg.src = geoJsonPoint.properties.imgSrc;
14505
+ trekDeparturePopup.appendChild(trekImg);
14506
+ }
14507
+ trekDeparturePopup.appendChild(trekName);
14508
+ layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false }).openPopup();
14509
+ });
14510
+ },
14463
14511
  }).addTo(this.map);
14464
14512
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14465
14513
  }
@@ -14470,39 +14518,40 @@ const GrwMap = class {
14470
14518
  }
14471
14519
  }
14472
14520
  addTrek() {
14473
- const trekFeature = {
14521
+ const currentTrekFeature = {
14474
14522
  type: 'Feature',
14475
14523
  geometry: state.currentTrek.geometry,
14476
14524
  properties: {},
14477
14525
  };
14478
- this.trekLayer = leafletSrc.geoJSON(trekFeature, {
14526
+ this.currentTrekLayer = leafletSrc.geoJSON(currentTrekFeature, {
14479
14527
  style: () => ({
14480
14528
  color: this.colorTrekLine,
14481
14529
  }),
14530
+ interactive: false,
14482
14531
  }).addTo(this.map);
14483
14532
  const bounds = leafletSrc.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14484
14533
  this.currentBounds = bounds;
14485
14534
  this.map.fitBounds(this.currentBounds);
14486
- const departureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];
14487
- const arrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];
14488
- const departureArrivalFeatureCollection = {
14535
+ const currentDepartureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];
14536
+ const currentArrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];
14537
+ const currentDepartureArrivalFeatureCollection = {
14489
14538
  type: 'FeatureCollection',
14490
14539
  features: [
14491
14540
  {
14492
14541
  type: 'Feature',
14493
14542
  properties: { type: 'departure' },
14494
- geometry: { type: 'Point', coordinates: departureCoordinates },
14543
+ geometry: { type: 'Point', coordinates: currentDepartureCoordinates },
14495
14544
  },
14496
14545
  ],
14497
14546
  };
14498
- if (departureCoordinates[0] !== arrivalCoordinates[0] || departureCoordinates[1] !== arrivalCoordinates[1]) {
14499
- departureArrivalFeatureCollection.features.push({
14547
+ if (currentDepartureCoordinates[0] !== currentArrivalCoordinates[0] || currentDepartureCoordinates[1] !== currentArrivalCoordinates[1]) {
14548
+ currentDepartureArrivalFeatureCollection.features.push({
14500
14549
  type: 'Feature',
14501
14550
  properties: { type: 'arrival' },
14502
- geometry: { type: 'Point', coordinates: arrivalCoordinates },
14551
+ geometry: { type: 'Point', coordinates: currentArrivalCoordinates },
14503
14552
  });
14504
14553
  }
14505
- this.departureArrivalLayer = leafletSrc.geoJSON(departureArrivalFeatureCollection, {
14554
+ this.currentDepartureArrivalLayer = leafletSrc.geoJSON(currentDepartureArrivalFeatureCollection, {
14506
14555
  pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14507
14556
  icon: leafletSrc.divIcon({
14508
14557
  html: departureArrivalImage,
@@ -14511,18 +14560,162 @@ const GrwMap = class {
14511
14560
  iconAnchor: [0, 48],
14512
14561
  }),
14513
14562
  autoPanOnFocus: false,
14563
+ interactive: false,
14514
14564
  }),
14515
14565
  }).addTo(this.map);
14566
+ if (state.currentTrek.parking_location) {
14567
+ const currentParking = {
14568
+ type: 'Feature',
14569
+ properties: {},
14570
+ geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },
14571
+ };
14572
+ this.currentParkingLayer = leafletSrc.geoJSON(currentParking, {
14573
+ pointToLayer: (_geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14574
+ icon: leafletSrc.divIcon({
14575
+ html: '<div>P</div>',
14576
+ className: 'parking-icon',
14577
+ iconSize: 48,
14578
+ iconAnchor: [0, 48],
14579
+ }),
14580
+ autoPanOnFocus: false,
14581
+ interactive: false,
14582
+ }),
14583
+ }).addTo(this.map);
14584
+ }
14585
+ if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {
14586
+ const currentSensitiveAreasFeatureCollection = {
14587
+ type: 'FeatureCollection',
14588
+ features: [],
14589
+ };
14590
+ for (const sensitiveArea of state.currentSensitiveAreas) {
14591
+ currentSensitiveAreasFeatureCollection.features.push({
14592
+ type: 'Feature',
14593
+ properties: {},
14594
+ geometry: sensitiveArea.geometry,
14595
+ });
14596
+ }
14597
+ this.currentSensitiveAreasLayer = leafletSrc.geoJSON(currentSensitiveAreasFeatureCollection, { style: () => ({ color: this.colorSensitiveArea }) }).addTo(this.map);
14598
+ leafletSrc.Control.SensitiveAreasCheckboxContainer = leafletSrc.Control.extend({
14599
+ onAdd: () => {
14600
+ const sensitiveAreasCheckboxContainer = leafletSrc.DomUtil.create('div');
14601
+ sensitiveAreasCheckboxContainer.className = 'sensitiveAreasCheckboxContainer';
14602
+ const sensitiveAreasCheckbox = leafletSrc.DomUtil.create('input');
14603
+ sensitiveAreasCheckbox.setAttribute('id', 'sensitiveAreasCheckbox');
14604
+ sensitiveAreasCheckbox.setAttribute('type', 'checkbox');
14605
+ sensitiveAreasCheckbox.setAttribute('checked', 'true');
14606
+ sensitiveAreasCheckbox.onclick = value => value.composedPath()[0].checked ? this.map.addLayer(this.currentSensitiveAreasLayer) : this.map.removeLayer(this.currentSensitiveAreasLayer);
14607
+ const sensitiveAreasLabel = leafletSrc.DomUtil.create('label');
14608
+ sensitiveAreasLabel.setAttribute('for', 'sensitiveAreasCheckbox');
14609
+ sensitiveAreasLabel.innerHTML =
14610
+ currentSensitiveAreasFeatureCollection.features.length > 1 || currentSensitiveAreasFeatureCollection.features[0].geometry.type === 'MultiPolygon'
14611
+ ? 'Afficher les zones sensibles'
14612
+ : 'Afficher la zone sensible';
14613
+ sensitiveAreasCheckboxContainer.appendChild(sensitiveAreasCheckbox);
14614
+ sensitiveAreasCheckboxContainer.appendChild(sensitiveAreasLabel);
14615
+ return sensitiveAreasCheckboxContainer;
14616
+ },
14617
+ });
14618
+ leafletSrc.control.sensitiveAreasCheckboxContainer = () => {
14619
+ return new leafletSrc.Control.SensitiveAreasCheckboxContainer();
14620
+ };
14621
+ this.sensitiveAreasControl = leafletSrc.control.sensitiveAreasCheckboxContainer({ position: 'topright' }).addTo(this.map);
14622
+ }
14623
+ if (state.currentPois && state.currentPois.length > 0) {
14624
+ const currentPoisFeatureCollection = {
14625
+ type: 'FeatureCollection',
14626
+ features: [],
14627
+ };
14628
+ for (const currentPoi of state.currentPois) {
14629
+ currentPoisFeatureCollection.features.push({
14630
+ type: 'Feature',
14631
+ properties: { name: currentPoi.name, type_pictogram: currentPoi.type_pictogram },
14632
+ geometry: currentPoi.geometry,
14633
+ });
14634
+ }
14635
+ this.currentPoisLayer = leafletSrc.geoJSON(currentPoisFeatureCollection, {
14636
+ pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14637
+ icon: leafletSrc.divIcon({
14638
+ html: geoJsonPoint.properties.type_pictogram && `<img src=${geoJsonPoint.properties.type_pictogram} />`,
14639
+ className: 'poi-icon',
14640
+ iconSize: 48,
14641
+ }),
14642
+ autoPanOnFocus: false,
14643
+ }),
14644
+ onEachFeature: (geoJsonPoint, layer) => {
14645
+ layer.once('mouseover', () => {
14646
+ const poiTooltip = leafletSrc.DomUtil.create('div');
14647
+ poiTooltip.className = 'poi-tooltip';
14648
+ const poiName = leafletSrc.DomUtil.create('div');
14649
+ poiName.innerHTML = geoJsonPoint.properties.name;
14650
+ poiName.className = 'poi-name';
14651
+ poiTooltip.appendChild(poiName);
14652
+ layer.bindTooltip(poiTooltip).openTooltip();
14653
+ });
14654
+ },
14655
+ }).addTo(this.map);
14656
+ }
14657
+ if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {
14658
+ const currentInformationDesksFeatureCollection = {
14659
+ type: 'FeatureCollection',
14660
+ features: [],
14661
+ };
14662
+ for (const currentInformationDesk of state.currentInformationDesks) {
14663
+ currentInformationDesksFeatureCollection.features.push({
14664
+ type: 'Feature',
14665
+ properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },
14666
+ geometry: { type: 'Point', coordinates: [Number(currentInformationDesk.longitude), Number(currentInformationDesk.latitude)] },
14667
+ });
14668
+ }
14669
+ this.currentInformationDesksLayer = leafletSrc.geoJSON(currentInformationDesksFeatureCollection, {
14670
+ pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14671
+ icon: leafletSrc.divIcon({
14672
+ html: geoJsonPoint.properties.type_pictogram && `<img src=${geoJsonPoint.properties.type_pictogram} />`,
14673
+ className: 'information-desks-icon',
14674
+ iconSize: 48,
14675
+ }),
14676
+ autoPanOnFocus: false,
14677
+ }),
14678
+ onEachFeature: (geoJsonPoint, layer) => {
14679
+ layer.once('mouseover', () => {
14680
+ const informationDesksTooltip = leafletSrc.DomUtil.create('div');
14681
+ informationDesksTooltip.className = 'information-desks-tooltip';
14682
+ const informationDesksName = leafletSrc.DomUtil.create('div');
14683
+ informationDesksName.innerHTML = geoJsonPoint.properties.name;
14684
+ informationDesksName.className = 'information-desks-name';
14685
+ informationDesksTooltip.appendChild(informationDesksName);
14686
+ layer.bindTooltip(informationDesksTooltip).openTooltip();
14687
+ });
14688
+ },
14689
+ }).addTo(this.map);
14690
+ }
14516
14691
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14517
14692
  }
14518
14693
  removeTrek() {
14519
- if (this.trekLayer) {
14520
- this.map.removeLayer(this.trekLayer);
14521
- this.trekLayer = null;
14694
+ if (this.currentTrekLayer) {
14695
+ this.map.removeLayer(this.currentTrekLayer);
14696
+ this.currentTrekLayer = null;
14522
14697
  }
14523
- if (this.departureArrivalLayer) {
14524
- this.map.removeLayer(this.departureArrivalLayer);
14525
- this.departureArrivalLayer = null;
14698
+ if (this.currentDepartureArrivalLayer) {
14699
+ this.map.removeLayer(this.currentDepartureArrivalLayer);
14700
+ this.currentDepartureArrivalLayer = null;
14701
+ }
14702
+ if (this.currentParkingLayer) {
14703
+ this.map.removeLayer(this.currentParkingLayer);
14704
+ this.currentParkingLayer = null;
14705
+ }
14706
+ if (this.currentSensitiveAreasLayer) {
14707
+ this.map.removeLayer(this.currentSensitiveAreasLayer);
14708
+ this.currentSensitiveAreasLayer = null;
14709
+ this.map.removeControl(this.sensitiveAreasControl);
14710
+ this.sensitiveAreasControl = null;
14711
+ }
14712
+ if (this.currentPoisLayer) {
14713
+ this.map.removeLayer(this.currentPoisLayer);
14714
+ this.currentPoisLayer = null;
14715
+ }
14716
+ if (this.currentInformationDesksLayer) {
14717
+ this.map.removeLayer(this.currentInformationDesksLayer);
14718
+ this.currentInformationDesksLayer = null;
14526
14719
  }
14527
14720
  }
14528
14721
  render() {
@@ -14531,12 +14724,37 @@ const GrwMap = class {
14531
14724
  '--color-primary-tint': this.colorPrimaryTint,
14532
14725
  '--color-departure-icon': this.colorDepartureIcon,
14533
14726
  '--color-arrival-icon': this.colorArrivalIcon,
14727
+ '--color-poi-icon': this.colorPoiIcon,
14534
14728
  } }, !this.mapIsReady && (h("div", { class: "map-loader-container" }, h("span", { class: "loader" })))));
14535
14729
  }
14536
14730
  get element() { return getElement(this); }
14537
14731
  };
14538
14732
  GrwMap.style = grwMapCss;
14539
14733
 
14734
+ const grwPoiDetailCss = ":host{display:flex;flex-direction:column;padding:0px 8px 8px 8px}.poi-img{width:180px}.poi-img img{width:180px;border-radius:8px}.poi-right-container{display:flex;flex-direction:column;padding:8px}.poi-name{color:var(--color-primary);font-size:24px;font-weight:bold;padding:0px 0px 8px 0px}.poi-description{font-size:16px}";
14735
+
14736
+ const GrwPoiDetail = class {
14737
+ constructor(hostRef) {
14738
+ registerInstance(this, hostRef);
14739
+ }
14740
+ render() {
14741
+ return (h(Host, null, this.poi.attachments && this.poi.attachments[0] && this.poi.attachments[0].thumbnail && (h("div", { class: "poi-img" }, h("img", { src: this.poi.attachments[0].thumbnail, loading: "lazy" }))), h("div", { class: "poi-right-container" }, h("div", { class: "poi-name" }, this.poi.name), h("div", { class: "poi-description", innerHTML: this.poi.description }))));
14742
+ }
14743
+ };
14744
+ GrwPoiDetail.style = grwPoiDetailCss;
14745
+
14746
+ const grwSensitiveAreaDetailCss = ":host{display:flex;flex-direction:column;padding:0px 8px 8px 8px}.sensitive-area-name{color:var(--color-primary);font-size:24px;font-weight:bold;padding:0px 0px 8px 0px}.sensitive-area-description{font-size:16px}";
14747
+
14748
+ const GrwSensitiveAreaDetail = class {
14749
+ constructor(hostRef) {
14750
+ registerInstance(this, hostRef);
14751
+ }
14752
+ render() {
14753
+ return (h(Host, null, h("div", { class: "sensitive-area-name" }, this.sensitiveArea.name), h("div", { class: "sensitive-area-description", innerHTML: this.sensitiveArea.description })));
14754
+ }
14755
+ };
14756
+ GrwSensitiveAreaDetail.style = grwSensitiveAreaDetailCss;
14757
+
14540
14758
  function formatDuration(duration) {
14541
14759
  let formattedDuration;
14542
14760
  if (duration < 24) {
@@ -14551,10 +14769,10 @@ function formatDuration(duration) {
14551
14769
  return formattedDuration;
14552
14770
  }
14553
14771
  function formatLength(length) {
14554
- return `${Math.round(length / 1000)} km`;
14772
+ return `${Math.round(length / 1000)}km`;
14555
14773
  }
14556
14774
  function formatAscent(ascent) {
14557
- return `${ascent} m`;
14775
+ return `${ascent}m`;
14558
14776
  }
14559
14777
 
14560
14778
  const ascentImage = `<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><polyline points="352 144 464 144 464 256" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><path d="M48,368,169.37,246.63a32,32,0,0,1,45.26,0l50.74,50.74a32,32,0,0,0,45.26,0L448,160" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>`;
@@ -14563,14 +14781,14 @@ const durationImage = `<svg xmlns="http://www.w3.org/2000/svg" width="512" heigh
14563
14781
 
14564
14782
  const lengthImage = `<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><polyline points="304 96 416 96 416 208" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="405.77" y1="106.2" x2="111.98" y2="400.02" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><polyline points="208 416 96 416 96 304" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>`;
14565
14783
 
14566
- const grwTrekCardCss = ".trek-card-container{width:350px;height:auto;border-radius:8px;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25);cursor:pointer}.trek-card-container .image{width:100%;height:auto}.trek-card-container .sub-container{padding:12px}.trek-card-container .sub-container .name{color:var(--color-primary);font-size:24px;font-weight:bold;margin-bottom:12px}.trek-card-container .sub-container .description{max-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:12px}.trek-card-container .sub-container .description p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.trek-card-container .sub-container .icons-labels-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.trek-card-container .sub-container .icons-labels-container .row{display:flex;justify-content:space-between;align-items:center;width:100%}.trek-card-container .sub-container .icons-labels-container .row:not(:last-child){margin-bottom:12px}.trek-card-container .sub-container .icons-labels-container .row .icon-label{display:flex;justify-content:center;align-items:center;width:33.3333333333%}.trek-card-container .sub-container .icons-labels-container .row .icon-label:nth-child(2){margin:0px 4px}.trek-card-container .sub-container .icons-labels-container .row .icon-label img,.trek-card-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg{width:24px;height:auto;margin-right:24px}.trek-card-container .sub-container .icons-labels-container .row .practice img{background-color:var(--color-primary)}";
14784
+ const grwTrekCardCss = ".trek-card-container{font-family:\"Roboto\";width:350px;height:auto;border-radius:8px;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25);cursor:pointer}.trek-card-container .image{border-radius:8px 8px 0px 0px;width:100%;height:auto;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25)}.trek-card-container .sub-container{padding:12px}.trek-card-container .sub-container .name{color:var(--color-primary);font-size:24px;font-weight:bold;margin-bottom:12px}.trek-card-container .sub-container .description{max-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:12px}.trek-card-container .sub-container .description p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.trek-card-container .sub-container .icons-labels-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.trek-card-container .sub-container .icons-labels-container .row{display:flex;justify-content:space-between;align-items:center;width:100%}.trek-card-container .sub-container .icons-labels-container .row:not(:last-child){margin-bottom:12px}.trek-card-container .sub-container .icons-labels-container .row .icon-label{display:flex;justify-content:center;align-items:center;width:33.3333333333%}.trek-card-container .sub-container .icons-labels-container .row .icon-label:nth-child(2){margin:0px 4px}.trek-card-container .sub-container .icons-labels-container .row .icon-label img,.trek-card-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg{width:24px;height:auto;margin-right:24px}.trek-card-container .sub-container .icons-labels-container .row .practice img{background-color:var(--color-primary)}";
14567
14785
 
14568
14786
  const GrwTrekCard = class {
14569
14787
  constructor(hostRef) {
14570
14788
  registerInstance(this, hostRef);
14571
14789
  this.trekCardPress = createEvent(this, "trekCardPress", 7);
14572
14790
  this.colorPrimary = '#6b0030';
14573
- this.colorPrimaryTint = '#d2b2c0';
14791
+ this.colorPrimaryTint = '#974c6e';
14574
14792
  }
14575
14793
  componentWillLoad() {
14576
14794
  this.currentTrek = this.trek ? this.trek : state.currentTrek;
@@ -14590,7 +14808,7 @@ const GrwTrekCard = class {
14590
14808
  }
14591
14809
  render() {
14592
14810
  var _a, _b, _c, _d, _e, _f, _g, _h;
14593
- return (h(Host, { onClick: () => this.trekCardPress.emit(this.currentTrek.id), style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-card-container" }, this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url && (h("img", { class: "image", src: `${this.currentTrek.attachments[0].url}.400x0_q85.${this.currentTrek.attachments[0].url.slice(-3).toLowerCase()}`, loading: "lazy" })), h("div", { class: "sub-container" }, h("div", { class: "name" }, (_a = this.currentTrek) === null || _a === void 0 ? void 0 : _a.name), h("div", { class: "description", innerHTML: (_b = this.currentTrek) === null || _b === void 0 ? void 0 : _b.description_teaser }), h("div", { class: "icons-labels-container" }, h("div", { class: "row" }, h("div", { class: "icon-label difficulty" }, ((_c = this.difficulty) === null || _c === void 0 ? void 0 : _c.pictogram) && h("img", { src: this.difficulty.pictogram }), (_d = this.difficulty) === null || _d === void 0 ? void 0 :
14811
+ return (h(Host, { onClick: () => this.trekCardPress.emit(this.currentTrek.id), style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-card-container" }, this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].thumbnail && (h("img", { class: "image", src: `${this.currentTrek.attachments[0].thumbnail}`, loading: "lazy" })), h("div", { class: "sub-container" }, h("div", { class: "name" }, (_a = this.currentTrek) === null || _a === void 0 ? void 0 : _a.name), h("div", { class: "description", innerHTML: (_b = this.currentTrek) === null || _b === void 0 ? void 0 : _b.description_teaser }), h("div", { class: "icons-labels-container" }, h("div", { class: "row" }, h("div", { class: "icon-label difficulty" }, ((_c = this.difficulty) === null || _c === void 0 ? void 0 : _c.pictogram) && h("img", { src: this.difficulty.pictogram }), (_d = this.difficulty) === null || _d === void 0 ? void 0 :
14594
14812
  _d.label), h("div", { class: "icon-label duration" }, h("div", { class: "svg-icon", innerHTML: durationImage }), formatDuration(this.currentTrek.duration)), h("div", { class: "icon-label route" }, ((_e = this.route) === null || _e === void 0 ? void 0 : _e.pictogram) && h("img", { src: this.route.pictogram }), (_f = this.route) === null || _f === void 0 ? void 0 :
14595
14813
  _f.route)), h("div", { class: "row" }, h("div", { class: "icon-label length" }, h("div", { class: "svg-icon", innerHTML: lengthImage }), formatLength(this.currentTrek.length_2d)), h("div", { class: "icon-label ascent" }, h("div", { class: "svg-icon", innerHTML: ascentImage }), formatAscent(this.currentTrek.ascent)), h("div", { class: "icon-label practice" }, ((_g = this.practice) === null || _g === void 0 ? void 0 : _g.pictogram) && h("img", { src: this.practice.pictogram }), (_h = this.practice) === null || _h === void 0 ? void 0 :
14596
14814
  _h.name))))))));
@@ -14598,13 +14816,14 @@ const GrwTrekCard = class {
14598
14816
  };
14599
14817
  GrwTrekCard.style = grwTrekCardCss;
14600
14818
 
14601
- const grwTrekDetailCss = ".trek-detail-container{display:flex;flex-direction:column;height:100%;overflow-y:auto}.trek-detail-container .name{color:var(--color-primary);font-size:48px;font-weight:bold;padding:24px}.trek-detail-container .image{align-self:center;width:100%;max-width:700px;height:auto;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25)}.trek-detail-container .sub-container{padding:24px}.trek-detail-container .sub-container .icons-labels-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.trek-detail-container .sub-container .icons-labels-container .row{display:flex;justify-content:space-between;align-items:center;width:100%}.trek-detail-container .sub-container .icons-labels-container .row:not(:last-child){margin-bottom:24px}.trek-detail-container .sub-container .icons-labels-container .row .icon-label{display:flex;justify-content:center;align-items:center;width:33.3333333333%}.trek-detail-container .sub-container .icons-labels-container .row .icon-label:nth-child(2){margin:0px 8px}.trek-detail-container .sub-container .icons-labels-container .row .icon-label img,.trek-detail-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg{width:24px;height:auto;margin-right:24px}.trek-detail-container .sub-container .icons-labels-container .row .practice img{background-color:var(--color-primary)}.trek-detail-container .description{padding:0px 24px 24px 24px}";
14819
+ const grwTrekDetailCss = ".trek-detail-container{font-family:\"Roboto\";display:flex;flex-direction:column;height:100%;overflow-y:auto}.trek-detail-container .name{color:var(--color-primary);font-size:48px;font-weight:bold;padding:24px}.trek-detail-container .image{border-radius:8px;align-self:center;width:100%;max-width:700px;height:auto;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25)}.trek-detail-container .sub-container{padding:24px}.trek-detail-container .sub-container .icons-labels-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.trek-detail-container .sub-container .icons-labels-container .row{display:flex;justify-content:space-between;align-items:center;width:100%}.trek-detail-container .sub-container .icons-labels-container .row:not(:last-child){margin-bottom:24px}.trek-detail-container .sub-container .icons-labels-container .row .icon-label{display:flex;justify-content:center;align-items:center;width:33.3333333333%}.trek-detail-container .sub-container .icons-labels-container .row .icon-label:nth-child(2){margin:0px 8px}.trek-detail-container .sub-container .icons-labels-container .row .icon-label img,.trek-detail-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg{width:24px;height:auto;margin-right:24px}.trek-detail-container .sub-container .icons-labels-container .row .practice img{background-color:var(--color-primary)}.trek-detail-container .downloads-container{padding:0px 24px 24px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center}.trek-detail-container .downloads-container .download-title{color:var(--color-primary);font-size:18px;margin-bottom:18px}.trek-detail-container .downloads-container .links-container a{background-color:var(--color-primary);padding:8px;color:#ffffff;text-decoration:none;border-radius:8px}.trek-detail-container .downloads-container .links-container a:nth-child(2){margin:0px 12px}.trek-detail-container .downloads-container .links-container a:hover{background-color:var(--color-primary-shade)}.trek-detail-container .description{padding:0px 24px 24px 24px}.trek-detail-container .pois-title,.trek-detail-container .sensitive-areas-title,.trek-detail-container .information-desks-title{color:var(--color-primary);font-size:36px;font-weight:bold;padding:16px}";
14602
14820
 
14603
14821
  const GrwTrekDetail = class {
14604
14822
  constructor(hostRef) {
14605
14823
  registerInstance(this, hostRef);
14606
14824
  this.colorPrimary = '#6b0030';
14607
- this.colorPrimaryTint = '#d2b2c0';
14825
+ this.colorPrimaryShade = '#4a0021';
14826
+ this.colorPrimaryTint = '#974c6e';
14608
14827
  }
14609
14828
  componentWillLoad() {
14610
14829
  this.currentTrek = this.trek ? this.trek : state.currentTrek;
@@ -14624,10 +14843,10 @@ const GrwTrekDetail = class {
14624
14843
  }
14625
14844
  render() {
14626
14845
  var _a, _b, _c, _d, _e, _f, _g;
14627
- return (h(Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-detail-container" }, h("div", { class: "name" }, this.currentTrek.name), this.currentTrek.attachments && this.currentTrek.attachments[0] && h("img", { class: "image", src: this.currentTrek.attachments[0].url, loading: "lazy" }), h("div", { class: "sub-container" }, h("div", { class: "icons-labels-container" }, h("div", { class: "row" }, h("div", { class: "icon-label difficulty" }, ((_a = this.difficulty) === null || _a === void 0 ? void 0 : _a.pictogram) && h("img", { src: this.difficulty.pictogram }), (_b = this.difficulty) === null || _b === void 0 ? void 0 :
14846
+ return (h(Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-shade': this.colorPrimaryShade, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (h("div", { class: "trek-detail-container" }, h("div", { class: "name" }, this.currentTrek.name), this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].thumbnail && (h("img", { class: "image", src: this.currentTrek.attachments[0].thumbnail, loading: "lazy" })), h("div", { class: "sub-container" }, h("div", { class: "icons-labels-container" }, h("div", { class: "row" }, h("div", { class: "icon-label difficulty" }, ((_a = this.difficulty) === null || _a === void 0 ? void 0 : _a.pictogram) && h("img", { src: this.difficulty.pictogram }), (_b = this.difficulty) === null || _b === void 0 ? void 0 :
14628
14847
  _b.label), h("div", { class: "icon-label duration" }, h("div", { class: "svg-icon", innerHTML: durationImage }), formatDuration((_c = this.currentTrek) === null || _c === void 0 ? void 0 : _c.duration)), h("div", { class: "icon-label route" }, ((_d = this.route) === null || _d === void 0 ? void 0 : _d.pictogram) && h("img", { src: this.route.pictogram }), (_e = this.route) === null || _e === void 0 ? void 0 :
14629
14848
  _e.route)), h("div", { class: "row" }, h("div", { class: "icon-label length" }, h("div", { class: "svg-icon", innerHTML: lengthImage }), formatLength(this.currentTrek.length_2d)), h("div", { class: "icon-label ascent" }, h("div", { class: "svg-icon", innerHTML: ascentImage }), formatAscent(this.currentTrek.ascent)), h("div", { class: "icon-label practice" }, ((_f = this.practice) === null || _f === void 0 ? void 0 : _f.pictogram) && h("img", { src: this.practice.pictogram }), (_g = this.practice) === null || _g === void 0 ? void 0 :
14630
- _g.name)))), h("div", { class: "description", innerHTML: this.currentTrek.description ? this.currentTrek.description : this.currentTrek.description_teaser })))));
14849
+ _g.name)))), h("div", { class: "downloads-container" }, h("div", { class: "download-title" }, "T\u00E9l\u00E9chargements"), h("div", { class: "links-container" }, h("a", { href: `${this.currentTrek.gpx}` }, "GPX"), h("a", { href: `${this.currentTrek.kml}` }, "KML"), h("a", { href: `${this.currentTrek.pdf}` }, "PDF"))), h("div", { class: "description", innerHTML: this.currentTrek.description ? this.currentTrek.description : this.currentTrek.description_teaser }), state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (h("div", { class: "sensitive-areas-container" }, h("div", { class: "sensitive-areas-title" }, "Zones sensibles"), state.currentSensitiveAreas.map(sensitiveArea => (h("grw-sensitive-area-detail", { sensitiveArea: sensitiveArea }))))), state.currentInformationDesks && state.currentInformationDesks.length > 0 && (h("div", { class: "information-desks-container" }, h("div", { class: "information-desks-title" }, "Lieux de renseignement"), state.currentInformationDesks.map(informationDesk => (h("grw-information-desk-detail", { informationDesk: informationDesk }))))), state.currentPois && state.currentPois.length > 0 && (h("div", { class: "pois-container" }, h("div", { class: "pois-title" }, "Points d'int\u00E9r\u00EAts"), state.currentPois.map(poi => (h("grw-poi-detail", { poi: poi })))))))));
14631
14850
  }
14632
14851
  };
14633
14852
  GrwTrekDetail.style = grwTrekDetailCss;
@@ -14640,16 +14859,22 @@ const GrwTrekProvider = class {
14640
14859
  componentWillLoad() {
14641
14860
  state.api = this.api;
14642
14861
  return Promise.all([
14643
- fetch(`${this.api}trek_difficulty/?language=${this.language}`),
14644
- fetch(`${this.api}trek_route/?language=${this.language}`),
14645
- fetch(`${this.api}trek_practice/?language=${this.language}`),
14646
- fetch(`${this.api}trek/${this.trekId}/?language=${this.language}&fields=id,name,attachments,description,description_teaser,difficulty,duration,ascent,length_2d,practice,route,geometry`),
14862
+ fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`),
14863
+ fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`),
14864
+ fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`),
14865
+ fetch(`${this.api}sensitivearea/?language=${this.language}&trek=${this.trekId}&fields=id,geometry,name,description`).catch(() => new Response('[]')),
14866
+ fetch(`${this.api}poi/?language=${this.language}&trek=${this.trekId}&published=true&fields=id,name,description,attachments,type,type_label,type_pictogram,url,published,geometry&page_size=999`),
14867
+ fetch(`${this.api}informationdesk/?language=${this.language}&near_trek=${this.trekId}&fields=id,name,description,type,phone,email,website,municipality,postal_code,street,photo_url,latitude,longitude&page_size=999`),
14868
+ fetch(`${this.api}trek/${this.trekId}/?language=${this.language}&published=true&fields=id,name,attachments,description,description_teaser,difficulty,duration,ascent,length_2d,practice,route,geometry,gpx,kml,pdf,parking_location`),
14647
14869
  ])
14648
14870
  .then(responses => Promise.all(responses.map(response => response.json())))
14649
- .then(([difficulties, routes, practices, trek]) => {
14871
+ .then(([difficulties, routes, practices, sensitiveAreas, pois, informationDesks, trek]) => {
14650
14872
  state.difficulties = difficulties.results;
14651
14873
  state.routes = routes.results;
14652
14874
  state.practices = practices.results;
14875
+ state.currentSensitiveAreas = sensitiveAreas.results;
14876
+ state.currentPois = pois.results;
14877
+ state.currentInformationDesks = informationDesks.results;
14653
14878
  state.currentTrek = trek;
14654
14879
  });
14655
14880
  }
@@ -14661,14 +14886,14 @@ const GrwTrekProvider = class {
14661
14886
  }
14662
14887
  };
14663
14888
 
14664
- const grwTreksListCss = ":host{display:flex;flex-wrap:wrap;justify-content:space-around;height:100%;max-height:100vh;overflow-y:auto}grw-trek-card{margin:6px}";
14889
+ const grwTreksListCss = ":host{font-family:\"Roboto\";display:flex;flex-wrap:wrap;justify-content:space-around;height:100%;max-height:100vh;overflow-y:auto}grw-trek-card{margin:6px}";
14665
14890
 
14666
14891
  const GrwTreksList = class {
14667
14892
  constructor(hostRef) {
14668
14893
  registerInstance(this, hostRef);
14669
14894
  this.treksToDisplay = [];
14670
14895
  this.colorPrimary = '#6b0030';
14671
- this.colorPrimaryTint = '#d2b2c0';
14896
+ this.colorPrimaryTint = '#974c6e';
14672
14897
  this.handleInfiniteScrollBind = this.handleInfiniteScroll.bind(this);
14673
14898
  this.step = 10;
14674
14899
  }
@@ -14713,9 +14938,9 @@ const GrwTreksProvider = class {
14713
14938
  this.practices && (treksRequest += `&practices=${this.practices}`);
14714
14939
  treksRequest += `&fields=id,name,attachments,description_teaser,difficulty,duration,ascent,length_2d,practice,route,departure_geom&page_size=999`;
14715
14940
  return Promise.all([
14716
- fetch(`${this.api}trek_difficulty/?language=${this.language}`),
14717
- fetch(`${this.api}trek_route/?language=${this.language}`),
14718
- fetch(`${this.api}trek_practice/?language=${this.language}`),
14941
+ fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`),
14942
+ fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`),
14943
+ fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`),
14719
14944
  fetch(treksRequest),
14720
14945
  ])
14721
14946
  .then(responses => Promise.all(responses.map(response => response.json())))
@@ -14731,4 +14956,4 @@ const GrwTreksProvider = class {
14731
14956
  }
14732
14957
  };
14733
14958
 
14734
- export { GrwApp as grw_app, GrwMap as grw_map, GrwTrekCard as grw_trek_card, GrwTrekDetail as grw_trek_detail, GrwTrekProvider as grw_trek_provider, GrwTreksList as grw_treks_list, GrwTreksProvider as grw_treks_provider };
14959
+ export { GrwApp as grw_app, GrwInformationDeskDetail as grw_information_desk_detail, GrwMap as grw_map, GrwPoiDetail as grw_poi_detail, GrwSensitiveAreaDetail as grw_sensitive_area_detail, GrwTrekCard as grw_trek_card, GrwTrekDetail as grw_trek_detail, GrwTrekProvider as grw_trek_provider, GrwTreksList as grw_treks_list, GrwTreksProvider as grw_treks_provider };