@geotrekce/geotrek-rando-widget 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +2 -2
  2. package/dist/cjs/grw-app.cjs.entry.js +93 -0
  3. package/dist/cjs/{grw-app_7.cjs.entry.js → grw-filter_6.cjs.entry.js} +424 -384
  4. package/dist/cjs/grw-information-desk-detail_3.cjs.entry.js +52 -0
  5. package/dist/cjs/grw-trek-card.cjs.entry.js +47 -0
  6. package/dist/cjs/{index-c6f73e30.js → index-c2c4531d.js} +46 -1
  7. package/dist/cjs/length-d315d156.js +34 -0
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/store-972b8d2a.js +209 -0
  10. package/dist/collection/collection-manifest.json +4 -0
  11. package/dist/collection/components/grw-app/grw-app.css +70 -5
  12. package/dist/collection/components/grw-app/grw-app.js +139 -33
  13. package/dist/collection/components/grw-filter/grw-filter.css +29 -0
  14. package/dist/collection/components/grw-filter/grw-filter.js +132 -0
  15. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css +31 -0
  16. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js +53 -0
  17. package/dist/collection/components/grw-map/grw-map.css +99 -0
  18. package/dist/collection/components/grw-map/grw-map.js +315 -42
  19. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css +31 -0
  20. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js +41 -0
  21. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css +39 -0
  22. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.js +52 -0
  23. package/dist/collection/components/grw-trek-card/grw-trek-card.css +67 -30
  24. package/dist/collection/components/grw-trek-card/grw-trek-card.js +37 -13
  25. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css +160 -1
  26. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +123 -8
  27. package/dist/collection/components/grw-treks-list/grw-treks-list.css +17 -3
  28. package/dist/collection/components/grw-treks-list/grw-treks-list.js +29 -7
  29. package/dist/collection/store/grw-trek-provider.js +36 -8
  30. package/dist/collection/store/grw-treks-provider.js +16 -7
  31. package/dist/collection/store/store.js +10 -0
  32. package/dist/collection/stories/App.js +22 -16
  33. package/dist/collection/stories/App.stories.js +14 -9
  34. package/dist/collection/stories/TrekCard.js +2 -1
  35. package/dist/collection/stories/TrekCard.stories.js +4 -3
  36. package/dist/collection/stories/TrekDetail.js +3 -1
  37. package/dist/collection/stories/TrekDetail.stories.js +5 -3
  38. package/dist/collection/stories/TrekMap.js +6 -4
  39. package/dist/collection/stories/TrekMap.stories.js +10 -7
  40. package/dist/collection/stories/TreksList.js +10 -9
  41. package/dist/collection/stories/TreksList.stories.js +4 -3
  42. package/dist/collection/stories/TreksMap.stories.js +6 -5
  43. package/dist/collection/utils/utils.js +2 -2
  44. package/dist/components/grw-app.js +76 -11
  45. package/dist/components/grw-filter.d.ts +11 -0
  46. package/dist/components/grw-filter.js +6 -0
  47. package/dist/components/grw-filter2.js +95 -0
  48. package/dist/components/grw-information-desk-detail.d.ts +11 -0
  49. package/dist/components/grw-information-desk-detail.js +6 -0
  50. package/dist/components/grw-information-desk-detail2.js +34 -0
  51. package/dist/components/grw-map2.js +263 -39
  52. package/dist/components/grw-poi-detail.d.ts +11 -0
  53. package/dist/components/grw-poi-detail.js +6 -0
  54. package/dist/components/grw-poi-detail2.js +32 -0
  55. package/dist/components/grw-sensitive-area-detail.d.ts +11 -0
  56. package/dist/components/grw-sensitive-area-detail.js +6 -0
  57. package/dist/components/grw-sensitive-area-detail2.js +37 -0
  58. package/dist/components/grw-trek-card2.js +11 -6
  59. package/dist/components/grw-trek-detail2.js +40 -7
  60. package/dist/components/grw-trek-provider2.js +36 -8
  61. package/dist/components/grw-treks-list2.js +10 -7
  62. package/dist/components/grw-treks-provider2.js +16 -7
  63. package/dist/components/length.js +2 -2
  64. package/dist/components/store.js +10 -0
  65. package/dist/esm/geotrek-rando-widget.js +2 -2
  66. package/dist/esm/grw-app.entry.js +89 -0
  67. package/dist/esm/{grw-app_7.entry.js → grw-filter_6.entry.js} +398 -357
  68. package/dist/esm/grw-information-desk-detail_3.entry.js +46 -0
  69. package/dist/esm/grw-trek-card.entry.js +43 -0
  70. package/dist/esm/{index-7aa9e822.js → index-192d910f.js} +47 -2
  71. package/dist/esm/length-d82189db.js +27 -0
  72. package/dist/esm/loader.js +2 -2
  73. package/dist/esm/store-5a42b5d8.js +206 -0
  74. package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
  75. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  76. package/dist/geotrek-rando-widget/p-206a52d9.entry.js +1 -0
  77. package/dist/geotrek-rando-widget/p-2d9ae918.entry.js +1 -0
  78. package/dist/geotrek-rando-widget/p-6dce5e6c.js +2 -0
  79. package/dist/geotrek-rando-widget/p-8cfa03c0.entry.js +1 -0
  80. package/dist/geotrek-rando-widget/p-d3aa9819.entry.js +1 -0
  81. package/dist/geotrek-rando-widget/p-e63213a9.js +1 -0
  82. package/dist/geotrek-rando-widget/p-f3f7d6be.js +1 -0
  83. package/dist/types/components/grw-app/grw-app.d.ts +13 -2
  84. package/dist/types/components/grw-filter/grw-filter.d.ts +9 -0
  85. package/dist/types/components/grw-information-desk-detail/grw-information-desk-detail.d.ts +5 -0
  86. package/dist/types/components/grw-map/grw-map.d.ts +14 -4
  87. package/dist/types/components/grw-poi-detail/grw-poi-detail.d.ts +5 -0
  88. package/dist/types/components/grw-sensitive-area-detail/grw-sensitive-area-detail.d.ts +5 -0
  89. package/dist/types/components/grw-trek-card/grw-trek-card.d.ts +6 -4
  90. package/dist/types/components/grw-trek-detail/grw-trek-detail.d.ts +10 -4
  91. package/dist/types/components/grw-treks-list/grw-treks-list.d.ts +1 -0
  92. package/dist/types/components.d.ts +88 -3
  93. package/dist/types/store/store.d.ts +21 -1
  94. package/dist/types/types/types.d.ts +119 -3
  95. package/package.json +9 -10
  96. package/readme.md +19 -1
  97. package/dist/geotrek-rando-widget/p-332ba9ab.js +0 -2
  98. package/dist/geotrek-rando-widget/p-b7c66d2d.entry.js +0 -1
@@ -1,4 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { s as state, o as onChange } from './store.js';
3
3
 
4
4
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
@@ -14142,26 +14142,30 @@ var leafletSrc = createCommonjsModule(function (module, exports) {
14142
14142
 
14143
14143
  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>`;
14144
14144
 
14145
- 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)}}";
14145
+ 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,.poi-tooltip .sensitive-area-name,.information-desks-tooltip .poi-name,.information-desks-tooltip .information-desks-name,.information-desks-tooltip .sensitive-area-name,.sensitive-area-tooltip .poi-name,.sensitive-area-tooltip .information-desks-name,.sensitive-area-tooltip .sensitive-area-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}.point-reference-icon{background-color:#ff0000;border:1px solid #ffffff;border-radius:50%;display:flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;color:#ffffff}";
14146
14146
 
14147
14147
  const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14148
14148
  constructor() {
14149
14149
  super();
14150
14150
  this.__registerHost();
14151
+ this.trekCardPress = createEvent(this, "trekCardPress", 7);
14151
14152
  this.mapIsReady = false;
14152
14153
  this.center = '1, 1';
14153
14154
  this.zoom = 10;
14155
+ this.colorPrimary = '#6b0030';
14156
+ this.colorPrimaryTint = '#974c6e';
14154
14157
  this.colorTrekLine = '#6b0030';
14155
14158
  this.colorDepartureIcon = '#006b3b';
14156
14159
  this.colorArrivalIcon = '#85003b';
14157
- this.colorPrimary = '#6b0030';
14158
- this.colorPrimaryTint = '#d2b2c0';
14160
+ this.colorSensitiveArea = ' #4974a5';
14161
+ this.colorPoiIcon = '#974c6e';
14159
14162
  }
14160
14163
  componentDidLoad() {
14161
14164
  this.map = leafletSrc.map(this.element, {
14162
14165
  center: this.center.split(',').map(Number),
14163
14166
  zoom: this.zoom,
14164
14167
  });
14168
+ leafletSrc.control.scale().addTo(this.map);
14165
14169
  leafletSrc.tileLayer(this.urlLayer, {
14166
14170
  maxZoom: 19,
14167
14171
  attribution: this.attribution,
@@ -14172,11 +14176,11 @@ const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14172
14176
  else if (state.currentTrek) {
14173
14177
  this.addTreks();
14174
14178
  }
14175
- onChange('treks', () => {
14179
+ onChange('currentTreks', () => {
14176
14180
  if (state.currentTrek) {
14177
14181
  this.addTrek();
14178
14182
  }
14179
- else if (state.treks) {
14183
+ else if (state.currentTreks) {
14180
14184
  this.addTreks();
14181
14185
  }
14182
14186
  });
@@ -14193,34 +14197,63 @@ const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14193
14197
  }
14194
14198
  addTreks() {
14195
14199
  var _a;
14196
- const treksDepartureCoordinates = [];
14200
+ const trekscurrentDepartureCoordinates = [];
14197
14201
  const treksFeatureCollection = {
14198
14202
  type: 'FeatureCollection',
14199
14203
  features: [],
14200
14204
  };
14201
- for (const trek of state.treks) {
14202
- treksDepartureCoordinates.push(trek.departure_geom);
14205
+ for (const trek of state.currentTreks) {
14206
+ trekscurrentDepartureCoordinates.push(trek.departure_geom);
14203
14207
  treksFeatureCollection.features.push({
14204
14208
  type: 'Feature',
14205
- properties: { practice: (_a = state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram },
14206
14209
  geometry: { type: 'Point', coordinates: trek.departure_geom },
14210
+ properties: {
14211
+ id: trek.id,
14212
+ name: trek.name,
14213
+ practice: (_a = state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram,
14214
+ imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,
14215
+ },
14207
14216
  });
14208
14217
  }
14209
- if (treksDepartureCoordinates.length > 0) {
14210
- const bounds = leafletSrc.latLngBounds(treksDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14218
+ if (trekscurrentDepartureCoordinates.length > 0) {
14219
+ const bounds = leafletSrc.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14211
14220
  this.currentBounds = bounds;
14212
14221
  this.map.fitBounds(this.currentBounds);
14213
14222
  }
14214
- this.treksLayer = leafletSrc.geoJSON(treksFeatureCollection, {
14215
- pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14216
- icon: leafletSrc.divIcon({
14217
- className: 'trek-marker',
14218
- iconSize: 48,
14219
- html: geoJsonPoint.properties.practice ? `<img src=${geoJsonPoint.properties.practice} />` : '',
14223
+ if (!this.treksLayer) {
14224
+ this.treksLayer = leafletSrc.geoJSON(treksFeatureCollection, {
14225
+ pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14226
+ icon: leafletSrc.divIcon({
14227
+ html: geoJsonPoint.properties.practice && `<img src=${geoJsonPoint.properties.practice} />`,
14228
+ className: 'trek-marker',
14229
+ iconSize: 48,
14230
+ }),
14231
+ autoPanOnFocus: false,
14220
14232
  }),
14221
- autoPanOnFocus: false,
14222
- }),
14223
- }).addTo(this.map);
14233
+ onEachFeature: (geoJsonPoint, layer) => {
14234
+ layer.once('click', () => {
14235
+ const trekDeparturePopup = leafletSrc.DomUtil.create('div');
14236
+ trekDeparturePopup.className = 'trek-departure-popup';
14237
+ trekDeparturePopup.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);
14238
+ const trekName = leafletSrc.DomUtil.create('div');
14239
+ trekName.innerHTML = geoJsonPoint.properties.name;
14240
+ trekName.className = 'trek-name';
14241
+ if (geoJsonPoint.properties.imgSrc) {
14242
+ trekName.className += ' trek-name-margin-top';
14243
+ const trekImg = leafletSrc.DomUtil.create('img');
14244
+ trekImg.src = geoJsonPoint.properties.imgSrc;
14245
+ trekDeparturePopup.appendChild(trekImg);
14246
+ }
14247
+ trekDeparturePopup.appendChild(trekName);
14248
+ layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false }).openPopup();
14249
+ });
14250
+ },
14251
+ }).addTo(this.map);
14252
+ }
14253
+ else {
14254
+ this.treksLayer.clearLayers();
14255
+ this.treksLayer.addData(treksFeatureCollection);
14256
+ }
14224
14257
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14225
14258
  }
14226
14259
  removeTreks() {
@@ -14230,39 +14263,40 @@ const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14230
14263
  }
14231
14264
  }
14232
14265
  addTrek() {
14233
- const trekFeature = {
14266
+ const currentTrekFeature = {
14234
14267
  type: 'Feature',
14235
14268
  geometry: state.currentTrek.geometry,
14236
14269
  properties: {},
14237
14270
  };
14238
- this.trekLayer = leafletSrc.geoJSON(trekFeature, {
14271
+ this.currentTrekLayer = leafletSrc.geoJSON(currentTrekFeature, {
14239
14272
  style: () => ({
14240
14273
  color: this.colorTrekLine,
14241
14274
  }),
14275
+ interactive: false,
14242
14276
  }).addTo(this.map);
14243
14277
  const bounds = leafletSrc.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14244
14278
  this.currentBounds = bounds;
14245
14279
  this.map.fitBounds(this.currentBounds);
14246
- const departureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];
14247
- const arrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];
14248
- const departureArrivalFeatureCollection = {
14280
+ const currentDepartureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];
14281
+ const currentArrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];
14282
+ const currentDepartureArrivalFeatureCollection = {
14249
14283
  type: 'FeatureCollection',
14250
14284
  features: [
14251
14285
  {
14252
14286
  type: 'Feature',
14253
14287
  properties: { type: 'departure' },
14254
- geometry: { type: 'Point', coordinates: departureCoordinates },
14288
+ geometry: { type: 'Point', coordinates: currentDepartureCoordinates },
14255
14289
  },
14256
14290
  ],
14257
14291
  };
14258
- if (departureCoordinates[0] !== arrivalCoordinates[0] || departureCoordinates[1] !== arrivalCoordinates[1]) {
14259
- departureArrivalFeatureCollection.features.push({
14292
+ if (currentDepartureCoordinates[0] !== currentArrivalCoordinates[0] || currentDepartureCoordinates[1] !== currentArrivalCoordinates[1]) {
14293
+ currentDepartureArrivalFeatureCollection.features.push({
14260
14294
  type: 'Feature',
14261
14295
  properties: { type: 'arrival' },
14262
- geometry: { type: 'Point', coordinates: arrivalCoordinates },
14296
+ geometry: { type: 'Point', coordinates: currentArrivalCoordinates },
14263
14297
  });
14264
14298
  }
14265
- this.departureArrivalLayer = leafletSrc.geoJSON(departureArrivalFeatureCollection, {
14299
+ this.currentDepartureArrivalLayer = leafletSrc.geoJSON(currentDepartureArrivalFeatureCollection, {
14266
14300
  pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14267
14301
  icon: leafletSrc.divIcon({
14268
14302
  html: departureArrivalImage,
@@ -14271,18 +14305,205 @@ const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14271
14305
  iconAnchor: [0, 48],
14272
14306
  }),
14273
14307
  autoPanOnFocus: false,
14308
+ interactive: false,
14274
14309
  }),
14275
14310
  }).addTo(this.map);
14311
+ if (state.currentTrek.parking_location) {
14312
+ const currentParking = {
14313
+ type: 'Feature',
14314
+ properties: {},
14315
+ geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },
14316
+ };
14317
+ this.currentParkingLayer = leafletSrc.geoJSON(currentParking, {
14318
+ pointToLayer: (_geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14319
+ icon: leafletSrc.divIcon({
14320
+ html: '<div>P</div>',
14321
+ className: 'parking-icon',
14322
+ iconSize: 48,
14323
+ iconAnchor: [0, 48],
14324
+ }),
14325
+ autoPanOnFocus: false,
14326
+ interactive: false,
14327
+ }),
14328
+ }).addTo(this.map);
14329
+ }
14330
+ if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {
14331
+ const currentSensitiveAreasFeatureCollection = {
14332
+ type: 'FeatureCollection',
14333
+ features: [],
14334
+ };
14335
+ for (const sensitiveArea of state.currentSensitiveAreas) {
14336
+ currentSensitiveAreasFeatureCollection.features.push({
14337
+ type: 'Feature',
14338
+ properties: { name: sensitiveArea.name },
14339
+ geometry: sensitiveArea.geometry,
14340
+ });
14341
+ }
14342
+ this.currentSensitiveAreasLayer = leafletSrc.geoJSON(currentSensitiveAreasFeatureCollection, {
14343
+ onEachFeature: (geoJsonPoint, layer) => {
14344
+ layer.once('mouseover', () => {
14345
+ const sensitiveAreaTooltip = leafletSrc.DomUtil.create('div');
14346
+ sensitiveAreaTooltip.className = 'sensitive-area-tooltip';
14347
+ const sensitiveAreaName = leafletSrc.DomUtil.create('div');
14348
+ sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;
14349
+ sensitiveAreaName.className = 'sensitive-area-name';
14350
+ sensitiveAreaTooltip.appendChild(sensitiveAreaName);
14351
+ layer.bindTooltip(sensitiveAreaTooltip).openTooltip();
14352
+ });
14353
+ },
14354
+ style: () => ({ color: this.colorSensitiveArea }),
14355
+ }).addTo(this.map);
14356
+ leafletSrc.Control.SensitiveAreasCheckboxContainer = leafletSrc.Control.extend({
14357
+ onAdd: () => {
14358
+ const sensitiveAreasCheckboxContainer = leafletSrc.DomUtil.create('div');
14359
+ sensitiveAreasCheckboxContainer.className = 'sensitiveAreasCheckboxContainer';
14360
+ const sensitiveAreasCheckbox = leafletSrc.DomUtil.create('input');
14361
+ sensitiveAreasCheckbox.setAttribute('id', 'sensitiveAreasCheckbox');
14362
+ sensitiveAreasCheckbox.setAttribute('type', 'checkbox');
14363
+ sensitiveAreasCheckbox.setAttribute('checked', 'true');
14364
+ sensitiveAreasCheckbox.onclick = value => value.composedPath()[0].checked ? this.map.addLayer(this.currentSensitiveAreasLayer) : this.map.removeLayer(this.currentSensitiveAreasLayer);
14365
+ const sensitiveAreasLabel = leafletSrc.DomUtil.create('label');
14366
+ sensitiveAreasLabel.setAttribute('for', 'sensitiveAreasCheckbox');
14367
+ sensitiveAreasLabel.innerHTML =
14368
+ currentSensitiveAreasFeatureCollection.features.length > 1 || currentSensitiveAreasFeatureCollection.features[0].geometry.type === 'MultiPolygon'
14369
+ ? 'Afficher les zones sensibles'
14370
+ : 'Afficher la zone sensible';
14371
+ sensitiveAreasCheckboxContainer.appendChild(sensitiveAreasCheckbox);
14372
+ sensitiveAreasCheckboxContainer.appendChild(sensitiveAreasLabel);
14373
+ return sensitiveAreasCheckboxContainer;
14374
+ },
14375
+ });
14376
+ leafletSrc.control.sensitiveAreasCheckboxContainer = () => {
14377
+ return new leafletSrc.Control.SensitiveAreasCheckboxContainer();
14378
+ };
14379
+ this.sensitiveAreasControl = leafletSrc.control.sensitiveAreasCheckboxContainer({ position: 'topright' }).addTo(this.map);
14380
+ }
14381
+ if (state.currentPois && state.currentPois.length > 0) {
14382
+ const currentPoisFeatureCollection = {
14383
+ type: 'FeatureCollection',
14384
+ features: [],
14385
+ };
14386
+ for (const currentPoi of state.currentPois) {
14387
+ currentPoisFeatureCollection.features.push({
14388
+ type: 'Feature',
14389
+ properties: { name: currentPoi.name, type_pictogram: currentPoi.type_pictogram },
14390
+ geometry: currentPoi.geometry,
14391
+ });
14392
+ }
14393
+ this.currentPoisLayer = leafletSrc.geoJSON(currentPoisFeatureCollection, {
14394
+ pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14395
+ icon: leafletSrc.divIcon({
14396
+ html: geoJsonPoint.properties.type_pictogram && `<img src=${geoJsonPoint.properties.type_pictogram} />`,
14397
+ className: 'poi-icon',
14398
+ iconSize: 48,
14399
+ }),
14400
+ autoPanOnFocus: false,
14401
+ }),
14402
+ onEachFeature: (geoJsonPoint, layer) => {
14403
+ layer.once('mouseover', () => {
14404
+ const poiTooltip = leafletSrc.DomUtil.create('div');
14405
+ poiTooltip.className = 'poi-tooltip';
14406
+ const poiName = leafletSrc.DomUtil.create('div');
14407
+ poiName.innerHTML = geoJsonPoint.properties.name;
14408
+ poiName.className = 'poi-name';
14409
+ poiTooltip.appendChild(poiName);
14410
+ layer.bindTooltip(poiTooltip).openTooltip();
14411
+ });
14412
+ },
14413
+ }).addTo(this.map);
14414
+ }
14415
+ if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {
14416
+ const currentInformationDesksFeatureCollection = {
14417
+ type: 'FeatureCollection',
14418
+ features: [],
14419
+ };
14420
+ for (const currentInformationDesk of state.currentInformationDesks) {
14421
+ currentInformationDesksFeatureCollection.features.push({
14422
+ type: 'Feature',
14423
+ properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },
14424
+ geometry: { type: 'Point', coordinates: [Number(currentInformationDesk.longitude), Number(currentInformationDesk.latitude)] },
14425
+ });
14426
+ }
14427
+ this.currentInformationDesksLayer = leafletSrc.geoJSON(currentInformationDesksFeatureCollection, {
14428
+ pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14429
+ icon: leafletSrc.divIcon({
14430
+ html: geoJsonPoint.properties.type_pictogram && `<img src=${geoJsonPoint.properties.type_pictogram} />`,
14431
+ className: 'information-desks-icon',
14432
+ iconSize: 48,
14433
+ }),
14434
+ autoPanOnFocus: false,
14435
+ }),
14436
+ onEachFeature: (geoJsonPoint, layer) => {
14437
+ layer.once('mouseover', () => {
14438
+ const informationDesksTooltip = leafletSrc.DomUtil.create('div');
14439
+ informationDesksTooltip.className = 'information-desks-tooltip';
14440
+ const informationDesksName = leafletSrc.DomUtil.create('div');
14441
+ informationDesksName.innerHTML = geoJsonPoint.properties.name;
14442
+ informationDesksName.className = 'information-desks-name';
14443
+ informationDesksTooltip.appendChild(informationDesksName);
14444
+ layer.bindTooltip(informationDesksTooltip).openTooltip();
14445
+ });
14446
+ },
14447
+ }).addTo(this.map);
14448
+ }
14449
+ if (state.currentTrek.points_reference) {
14450
+ const currentPointsReferenceFeatureCollection = {
14451
+ type: 'FeatureCollection',
14452
+ features: [],
14453
+ };
14454
+ currentPointsReferenceFeatureCollection.features.push({
14455
+ type: 'Feature',
14456
+ properties: {},
14457
+ geometry: state.currentTrek.points_reference,
14458
+ });
14459
+ let index = 0;
14460
+ this.currentPointsReferenceLayer = leafletSrc.geoJSON(currentPointsReferenceFeatureCollection, {
14461
+ pointToLayer: (_geoJsonPoint, latlng) => {
14462
+ index += 1;
14463
+ return leafletSrc.marker(latlng, {
14464
+ icon: leafletSrc.divIcon({
14465
+ html: index,
14466
+ className: 'point-reference-icon',
14467
+ iconSize: 24,
14468
+ }),
14469
+ autoPanOnFocus: false,
14470
+ interactive: false,
14471
+ });
14472
+ },
14473
+ }).addTo(this.map);
14474
+ }
14276
14475
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14277
14476
  }
14278
14477
  removeTrek() {
14279
- if (this.trekLayer) {
14280
- this.map.removeLayer(this.trekLayer);
14281
- this.trekLayer = null;
14478
+ if (this.currentTrekLayer) {
14479
+ this.map.removeLayer(this.currentTrekLayer);
14480
+ this.currentTrekLayer = null;
14481
+ }
14482
+ if (this.currentDepartureArrivalLayer) {
14483
+ this.map.removeLayer(this.currentDepartureArrivalLayer);
14484
+ this.currentDepartureArrivalLayer = null;
14485
+ }
14486
+ if (this.currentParkingLayer) {
14487
+ this.map.removeLayer(this.currentParkingLayer);
14488
+ this.currentParkingLayer = null;
14489
+ }
14490
+ if (this.currentSensitiveAreasLayer) {
14491
+ this.map.removeLayer(this.currentSensitiveAreasLayer);
14492
+ this.currentSensitiveAreasLayer = null;
14493
+ this.map.removeControl(this.sensitiveAreasControl);
14494
+ this.sensitiveAreasControl = null;
14495
+ }
14496
+ if (this.currentPoisLayer) {
14497
+ this.map.removeLayer(this.currentPoisLayer);
14498
+ this.currentPoisLayer = null;
14282
14499
  }
14283
- if (this.departureArrivalLayer) {
14284
- this.map.removeLayer(this.departureArrivalLayer);
14285
- this.departureArrivalLayer = null;
14500
+ if (this.currentInformationDesksLayer) {
14501
+ this.map.removeLayer(this.currentInformationDesksLayer);
14502
+ this.currentInformationDesksLayer = null;
14503
+ }
14504
+ if (this.currentPointsReferenceLayer) {
14505
+ this.map.removeLayer(this.currentPointsReferenceLayer);
14506
+ this.currentPointsReferenceLayer = null;
14286
14507
  }
14287
14508
  }
14288
14509
  render() {
@@ -14291,6 +14512,7 @@ const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14291
14512
  '--color-primary-tint': this.colorPrimaryTint,
14292
14513
  '--color-departure-icon': this.colorDepartureIcon,
14293
14514
  '--color-arrival-icon': this.colorArrivalIcon,
14515
+ '--color-poi-icon': this.colorPoiIcon,
14294
14516
  } }, !this.mapIsReady && (h("div", { class: "map-loader-container" }, h("span", { class: "loader" })))));
14295
14517
  }
14296
14518
  get element() { return this; }
@@ -14300,11 +14522,13 @@ const GrwMap = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14300
14522
  "attribution": [1],
14301
14523
  "center": [1],
14302
14524
  "zoom": [2],
14525
+ "colorPrimary": [1, "color-primary"],
14526
+ "colorPrimaryTint": [1, "color-primary-tint"],
14303
14527
  "colorTrekLine": [1, "color-trek-line"],
14304
14528
  "colorDepartureIcon": [1, "color-departure-icon"],
14305
14529
  "colorArrivalIcon": [1, "color-arrival-icon"],
14306
- "colorPrimary": [1, "color-primary"],
14307
- "colorPrimaryTint": [1, "color-primary-tint"],
14530
+ "colorSensitiveArea": [1, "color-sensitive-area"],
14531
+ "colorPoiIcon": [1, "color-poi-icon"],
14308
14532
  "mapIsReady": [32]
14309
14533
  }]);
14310
14534
  function defineCustomElement() {
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface GrwPoiDetail extends Components.GrwPoiDetail, HTMLElement {}
4
+ export const GrwPoiDetail: {
5
+ prototype: GrwPoiDetail;
6
+ new (): GrwPoiDetail;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { G as GrwPoiDetail$1, d as defineCustomElement$1 } from './grw-poi-detail2.js';
2
+
3
+ const GrwPoiDetail = GrwPoiDetail$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { GrwPoiDetail, defineCustomElement };
@@ -0,0 +1,32 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+
3
+ const grwPoiDetailCss = ":host{display:flex;flex-direction:column}:host a{color:var(--color-primary)}.poi-img{width:180px}.poi-img img{width:180px;border-radius:8px}.poi-sub-container{display:flex;flex-direction:column}.poi-name{color:var(--color-primary);font-size:24px;font-weight:bold;padding:12px 0px}.poi-description{font-size:16px}";
4
+
5
+ const GrwPoiDetail = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.__attachShadow();
10
+ }
11
+ render() {
12
+ 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-sub-container" }, h("div", { class: "poi-name" }, this.poi.name), h("div", { class: "poi-description", innerHTML: this.poi.description }))));
13
+ }
14
+ static get style() { return grwPoiDetailCss; }
15
+ }, [1, "grw-poi-detail", {
16
+ "poi": [16]
17
+ }]);
18
+ function defineCustomElement() {
19
+ if (typeof customElements === "undefined") {
20
+ return;
21
+ }
22
+ const components = ["grw-poi-detail"];
23
+ components.forEach(tagName => { switch (tagName) {
24
+ case "grw-poi-detail":
25
+ if (!customElements.get(tagName)) {
26
+ customElements.define(tagName, GrwPoiDetail);
27
+ }
28
+ break;
29
+ } });
30
+ }
31
+
32
+ export { GrwPoiDetail as G, defineCustomElement as d };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface GrwSensitiveAreaDetail extends Components.GrwSensitiveAreaDetail, HTMLElement {}
4
+ export const GrwSensitiveAreaDetail: {
5
+ prototype: GrwSensitiveAreaDetail;
6
+ new (): GrwSensitiveAreaDetail;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { G as GrwSensitiveAreaDetail$1, d as defineCustomElement$1 } from './grw-sensitive-area-detail2.js';
2
+
3
+ const GrwSensitiveAreaDetail = GrwSensitiveAreaDetail$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { GrwSensitiveAreaDetail, defineCustomElement };
@@ -0,0 +1,37 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { s as state } from './store.js';
3
+
4
+ const grwSensitiveAreaDetailCss = ":host{display:flex;flex-direction:column}:host a{color:var(--color-primary)}.sensitive-area-title{color:var(--color-primary);font-size:24px;padding:12px 0px}.sensitive-area-description{font-size:16px}.sensitive-area-period-container .sensitive-area-period-title,.sensitive-area-period-container .sensitive-area-practice-title,.sensitive-area-period-container .sensitive-area-contact-title,.sensitive-area-practice-container .sensitive-area-period-title,.sensitive-area-practice-container .sensitive-area-practice-title,.sensitive-area-practice-container .sensitive-area-contact-title,.sensitive-area-contact-container .sensitive-area-period-title,.sensitive-area-contact-container .sensitive-area-practice-title,.sensitive-area-contact-container .sensitive-area-contact-title{color:var(--color-primary);font-size:24px;padding:12px 0px}.sensitive-area-period-container .sensitive-area-period-values,.sensitive-area-period-container .sensitive-area-practice-values,.sensitive-area-practice-container .sensitive-area-period-values,.sensitive-area-practice-container .sensitive-area-practice-values,.sensitive-area-contact-container .sensitive-area-period-values,.sensitive-area-contact-container .sensitive-area-practice-values{display:flex}";
5
+
6
+ const GrwSensitiveAreaDetail = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.__attachShadow();
11
+ }
12
+ render() {
13
+ return (h(Host, null, h("div", { class: "sensitive-area-title" }, this.sensitiveArea.name), h("div", { class: "sensitive-area-description", innerHTML: this.sensitiveArea.description }), this.sensitiveArea.practices && this.sensitiveArea.practices.length > 0 && (h("div", { class: "sensitive-area-practice-container" }, h("div", { class: "sensitive-area-practice-title" }, "Domaines d'activit\u00E9s concern\u00E9s :"), h("div", { class: "sensitive-area-practice-values" }, this.sensitiveArea.practices.map((practice, index) => (h("div", { innerHTML: `${state.practices.find(statePractice => statePractice.id === practice).name.toUpperCase()}${index + 1 !== this.sensitiveArea.practices.length ? ' -&nbsp;' : ''}` })))))), this.sensitiveArea.period && this.sensitiveArea.period.length > 0 && (h("div", { class: "sensitive-area-period-container" }, h("div", { class: "sensitive-area-period-title" }, "P\u00E9riodes de sensibilit\u00E9"), h("div", { class: "sensitive-area-period-values" }, this.sensitiveArea.period.map((month, index) => {
14
+ if (month) {
15
+ return (h("div", { innerHTML: `${new Date(0, index + 1, 0).toLocaleDateString('fr', { month: 'long' }).toUpperCase()}${this.sensitiveArea.period.slice(index + 1).find(month => month) ? ' -&nbsp;' : ''}` }));
16
+ }
17
+ })))), h("div", { class: "sensitive-area-contact-container" }, h("div", { class: "sensitive-area-contact-title" }, "Contact"), h("div", { innerHTML: this.sensitiveArea.contact, class: "sensitive-area-contact-value" }))));
18
+ }
19
+ static get style() { return grwSensitiveAreaDetailCss; }
20
+ }, [1, "grw-sensitive-area-detail", {
21
+ "sensitiveArea": [16]
22
+ }]);
23
+ function defineCustomElement() {
24
+ if (typeof customElements === "undefined") {
25
+ return;
26
+ }
27
+ const components = ["grw-sensitive-area-detail"];
28
+ components.forEach(tagName => { switch (tagName) {
29
+ case "grw-sensitive-area-detail":
30
+ if (!customElements.get(tagName)) {
31
+ customElements.define(tagName, GrwSensitiveAreaDetail);
32
+ }
33
+ break;
34
+ } });
35
+ }
36
+
37
+ export { GrwSensitiveAreaDetail as G, defineCustomElement as d };