@geotrekce/geotrek-rando-widget 0.0.4 → 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 (57) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
  2. package/dist/cjs/grw-app.cjs.entry.js +93 -0
  3. package/dist/cjs/{grw-app_11.cjs.entry.js → grw-filter_6.cjs.entry.js} +138 -440
  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/length-d315d156.js +34 -0
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/store-972b8d2a.js +209 -0
  9. package/dist/collection/components/grw-app/grw-app.js +36 -25
  10. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.css +5 -4
  11. package/dist/collection/components/grw-information-desk-detail/grw-information-desk-detail.js +1 -1
  12. package/dist/collection/components/grw-map/grw-map.css +19 -1
  13. package/dist/collection/components/grw-map/grw-map.js +45 -2
  14. package/dist/collection/components/grw-poi-detail/grw-poi-detail.css +5 -4
  15. package/dist/collection/components/grw-poi-detail/grw-poi-detail.js +1 -1
  16. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.css +27 -4
  17. package/dist/collection/components/grw-sensitive-area-detail/grw-sensitive-area-detail.js +17 -3
  18. package/dist/collection/components/grw-trek-card/grw-trek-card.js +1 -1
  19. package/dist/collection/components/grw-trek-detail/grw-trek-detail.css +128 -4
  20. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +87 -6
  21. package/dist/collection/store/grw-trek-provider.js +11 -3
  22. package/dist/collection/store/grw-treks-provider.js +1 -1
  23. package/dist/collection/store/store.js +5 -1
  24. package/dist/components/grw-app.js +34 -6
  25. package/dist/components/grw-information-desk-detail2.js +2 -2
  26. package/dist/components/grw-map2.js +46 -3
  27. package/dist/components/grw-poi-detail2.js +2 -2
  28. package/dist/components/grw-sensitive-area-detail2.js +7 -2
  29. package/dist/components/grw-trek-detail2.js +17 -4
  30. package/dist/components/grw-trek-provider2.js +11 -3
  31. package/dist/components/grw-treks-provider2.js +1 -1
  32. package/dist/components/store.js +5 -1
  33. package/dist/esm/geotrek-rando-widget.js +2 -2
  34. package/dist/esm/grw-app.entry.js +89 -0
  35. package/dist/esm/{grw-app_11.entry.js → grw-filter_6.entry.js} +72 -369
  36. package/dist/esm/grw-information-desk-detail_3.entry.js +46 -0
  37. package/dist/esm/grw-trek-card.entry.js +43 -0
  38. package/dist/esm/{index-fe16e7b6.js → index-192d910f.js} +1 -1
  39. package/dist/esm/length-d82189db.js +27 -0
  40. package/dist/esm/loader.js +2 -2
  41. package/dist/esm/store-5a42b5d8.js +206 -0
  42. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  43. package/dist/geotrek-rando-widget/p-206a52d9.entry.js +1 -0
  44. package/dist/geotrek-rando-widget/p-2d9ae918.entry.js +1 -0
  45. package/dist/geotrek-rando-widget/{p-8c206aec.js → p-6dce5e6c.js} +1 -1
  46. package/dist/geotrek-rando-widget/p-8cfa03c0.entry.js +1 -0
  47. package/dist/geotrek-rando-widget/p-d3aa9819.entry.js +1 -0
  48. package/dist/geotrek-rando-widget/p-e63213a9.js +1 -0
  49. package/dist/geotrek-rando-widget/p-f3f7d6be.js +1 -0
  50. package/dist/types/components/grw-app/grw-app.d.ts +7 -2
  51. package/dist/types/components/grw-map/grw-map.d.ts +1 -0
  52. package/dist/types/components/grw-trek-detail/grw-trek-detail.d.ts +9 -4
  53. package/dist/types/components.d.ts +0 -2
  54. package/dist/types/store/store.d.ts +11 -3
  55. package/dist/types/types/types.d.ts +51 -1
  56. package/package.json +5 -4
  57. package/dist/geotrek-rando-widget/p-ed8706fb.entry.js +0 -1
@@ -3,262 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c2c4531d.js');
6
-
7
- const appendToMap = (map, propName, value) => {
8
- const items = map.get(propName);
9
- if (!items) {
10
- map.set(propName, [value]);
11
- }
12
- else if (!items.includes(value)) {
13
- items.push(value);
14
- }
15
- };
16
- const debounce = (fn, ms) => {
17
- let timeoutId;
18
- return (...args) => {
19
- if (timeoutId) {
20
- clearTimeout(timeoutId);
21
- }
22
- timeoutId = setTimeout(() => {
23
- timeoutId = 0;
24
- fn(...args);
25
- }, ms);
26
- };
27
- };
28
-
29
- /**
30
- * Check if a possible element isConnected.
31
- * The property might not be there, so we check for it.
32
- *
33
- * We want it to return true if isConnected is not a property,
34
- * otherwise we would remove these elements and would not update.
35
- *
36
- * Better leak in Edge than to be useless.
37
- */
38
- const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
39
- const cleanupElements = debounce((map) => {
40
- for (let key of map.keys()) {
41
- map.set(key, map.get(key).filter(isConnected));
42
- }
43
- }, 2000);
44
- const stencilSubscription = () => {
45
- if (typeof index.getRenderingRef !== 'function') {
46
- // If we are not in a stencil project, we do nothing.
47
- // This function is not really exported by @stencil/core.
48
- return {};
49
- }
50
- const elmsToUpdate = new Map();
51
- return {
52
- dispose: () => elmsToUpdate.clear(),
53
- get: (propName) => {
54
- const elm = index.getRenderingRef();
55
- if (elm) {
56
- appendToMap(elmsToUpdate, propName, elm);
57
- }
58
- },
59
- set: (propName) => {
60
- const elements = elmsToUpdate.get(propName);
61
- if (elements) {
62
- elmsToUpdate.set(propName, elements.filter(index.forceUpdate));
63
- }
64
- cleanupElements(elmsToUpdate);
65
- },
66
- reset: () => {
67
- elmsToUpdate.forEach((elms) => elms.forEach(index.forceUpdate));
68
- cleanupElements(elmsToUpdate);
69
- },
70
- };
71
- };
72
-
73
- const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
74
- let states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));
75
- const handlers = {
76
- dispose: [],
77
- get: [],
78
- set: [],
79
- reset: [],
80
- };
81
- const reset = () => {
82
- states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));
83
- handlers.reset.forEach((cb) => cb());
84
- };
85
- const dispose = () => {
86
- // Call first dispose as resetting the state would
87
- // cause less updates ;)
88
- handlers.dispose.forEach((cb) => cb());
89
- reset();
90
- };
91
- const get = (propName) => {
92
- handlers.get.forEach((cb) => cb(propName));
93
- return states.get(propName);
94
- };
95
- const set = (propName, value) => {
96
- const oldValue = states.get(propName);
97
- if (shouldUpdate(value, oldValue, propName)) {
98
- states.set(propName, value);
99
- handlers.set.forEach((cb) => cb(propName, value, oldValue));
100
- }
101
- };
102
- const state = (typeof Proxy === 'undefined'
103
- ? {}
104
- : new Proxy(defaultState, {
105
- get(_, propName) {
106
- return get(propName);
107
- },
108
- ownKeys(_) {
109
- return Array.from(states.keys());
110
- },
111
- getOwnPropertyDescriptor() {
112
- return {
113
- enumerable: true,
114
- configurable: true,
115
- };
116
- },
117
- has(_, propName) {
118
- return states.has(propName);
119
- },
120
- set(_, propName, value) {
121
- set(propName, value);
122
- return true;
123
- },
124
- }));
125
- const on = (eventName, callback) => {
126
- handlers[eventName].push(callback);
127
- return () => {
128
- removeFromArray(handlers[eventName], callback);
129
- };
130
- };
131
- const onChange = (propName, cb) => {
132
- const unSet = on('set', (key, newValue) => {
133
- if (key === propName) {
134
- cb(newValue);
135
- }
136
- });
137
- const unReset = on('reset', () => cb(defaultState[propName]));
138
- return () => {
139
- unSet();
140
- unReset();
141
- };
142
- };
143
- const use = (...subscriptions) => {
144
- const unsubs = subscriptions.reduce((unsubs, subscription) => {
145
- if (subscription.set) {
146
- unsubs.push(on('set', subscription.set));
147
- }
148
- if (subscription.get) {
149
- unsubs.push(on('get', subscription.get));
150
- }
151
- if (subscription.reset) {
152
- unsubs.push(on('reset', subscription.reset));
153
- }
154
- if (subscription.dispose) {
155
- unsubs.push(on('dispose', subscription.dispose));
156
- }
157
- return unsubs;
158
- }, []);
159
- return () => unsubs.forEach((unsub) => unsub());
160
- };
161
- const forceUpdate = (key) => {
162
- const oldValue = states.get(key);
163
- handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
164
- };
165
- return {
166
- state,
167
- get,
168
- set,
169
- on,
170
- onChange,
171
- use,
172
- dispose,
173
- reset,
174
- forceUpdate,
175
- };
176
- };
177
- const removeFromArray = (array, item) => {
178
- const index = array.indexOf(item);
179
- if (index >= 0) {
180
- array[index] = array[array.length - 1];
181
- array.length--;
182
- }
183
- };
184
-
185
- const createStore = (defaultState, shouldUpdate) => {
186
- const map = createObservableMap(defaultState, shouldUpdate);
187
- map.use(stencilSubscription());
188
- return map;
189
- };
190
-
191
- const { state, onChange } = createStore({
192
- api: '',
193
- treks: [],
194
- currentTreks: [],
195
- difficulties: [],
196
- routes: [],
197
- practices: [],
198
- themes: [],
199
- durations: [],
200
- currentSensitiveAreas: null,
201
- currentPois: null,
202
- currentTrek: null,
203
- currentInformationDesks: null,
204
- });
205
-
206
- 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>`;
207
-
208
- 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 .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}.header-container .handle-filters-button,.large-view-header-container .handle-filters-button{user-select:none;cursor:pointer;color:var(--color-primary);background-color:#ffffff;margin-left:36px;border-radius:8px;padding:8px}.header-container .attribution-container,.large-view-header-container .attribution-container{position:absolute;right:24px}.header-container .attribution-container a,.large-view-header-container .attribution-container a{color:#ffffff;text-decoration:none}.options-container{height:calc(100% - 64px);position:absolute;width:100%;z-index:1100;top:64px}.filters-container{position:absolute;width:100%;background-color:#ffffff;padding:36px 0px;z-index:1100}.filters-container .close-filters-button{cursor:pointer;font-weight:bold;position:absolute;top:12px;right:12px;padding:12px;border-radius:12px;color:var(--color-primary);border:1px var(--color-primary) solid}.filters-container .close-filters-button:hover{background-color:var(--color-primary);color:#ffffff}.filters-container .filter-margin-top{margin-top:24px}.filters-container .current-treks-length{margin:0px 0px 32px 8px;color:var(--color-primary);font-size:24px;font-weight:bold}.back-filters-container{background-color:rgba(0, 0, 0, 0.5);width:100%;height:calc(100% - 64px);position:absolute;z-index:1099;top:64px}.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%}";
209
-
210
- const GrwApp = class {
211
- constructor(hostRef) {
212
- index.registerInstance(this, hostRef);
213
- this.showTrek = false;
214
- this.showMap = false;
215
- this.showFilters = false;
216
- this.isLargeView = false;
217
- this.language = 'fr';
218
- this.appName = 'Geotrek Rando Widget';
219
- this.colorPrimary = '#6b0030';
220
- this.colorPrimaryShade = '#4a0021';
221
- this.colorPrimaryTint = '#974c6e';
222
- this.colorTrekLine = '#6b0030';
223
- this.colorDepartureIcon = '#006b3b';
224
- this.colorArrivalIcon = '#85003b';
225
- this.colorSensitiveArea = '#4974a5';
226
- this.colorPoiIcon = '#974c6e';
227
- this.largeViewSize = 1024;
228
- }
229
- onTrekCardPress(event) {
230
- this.currentTrekId = event.detail;
231
- this.showTrek = !this.showTrek;
232
- }
233
- onWindowResize() {
234
- this.handleView();
235
- }
236
- watchPropHandler() {
237
- window.dispatchEvent(new window.Event('resize'));
238
- }
239
- componentDidLoad() {
240
- this.handleView();
241
- }
242
- onTrekDetailsClose() {
243
- this.currentTrekId = null;
244
- this.showTrek = !this.showTrek;
245
- }
246
- handleView() {
247
- this.isLargeView = this.element.getBoundingClientRect().width >= this.largeViewSize;
248
- this.showMap = this.isLargeView;
249
- }
250
- handleFilters() {
251
- this.showFilters = !this.showFilters;
252
- }
253
- render() {
254
- return (index.h(index.Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint, '--color-primary-shade': this.colorPrimaryShade } }, index.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 && index.h("grw-trek-provider", { api: state.api, language: this.language, "trek-id": this.currentTrekId }), index.h("div", { class: "app-container" }, index.h("div", { class: this.isLargeView ? 'large-view-header-container' : 'header-container' }, this.showTrek ? (index.h("div", { onClick: () => this.onTrekDetailsClose(), class: "arrow-back-icon", innerHTML: arrowBackImage })) : (index.h("div", { onClick: () => this.handleFilters(), class: "handle-filters-button" }, "FILTRER")), !this.showTrek && this.showFilters && (index.h("div", { class: "options-container" }, index.h("div", { class: "filters-container" }, index.h("div", { class: "current-treks-length" }, `${state.currentTreks.length} résultat${state.currentTreks.length > 1 ? 's' : ''}`), index.h("div", { onClick: () => this.handleFilters(), class: "close-filters-button" }, "X"), index.h("div", null, index.h("grw-filter", { filterName: "Pratique", filterType: "practices", filterNameProperty: "name" })), index.h("div", { class: "filter-margin-top" }, index.h("grw-filter", { filterName: "Difficult\u00E9", filterType: "difficulties", filterNameProperty: "label" })), index.h("div", { class: "filter-margin-top" }, index.h("grw-filter", { filterName: "Dur\u00E9e", filterType: "durations", filterNameProperty: "name" }))), index.h("div", { onClick: () => this.handleFilters(), class: "back-filters-container" }))), index.h("div", { class: "attribution-container" }, index.h("a", { target: "_blank", href: "https://geotrek.fr" }, "GEOTREK"))), index.h("div", { class: "content-container" }, index.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' } }, index.h("grw-treks-list", { "is-large-view": this.isLargeView, "color-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint })), this.showTrek && !state.currentTrek && (index.h("div", { class: this.isLargeView ? 'large-view-loader-container' : 'loader-container' }, index.h("span", { class: "loader" }))), state.currentTrek && (index.h("div", { class: this.isLargeView ? 'large-view-app-trek-detail-container' : 'app-trek-detail-container' }, index.h("grw-trek-detail", { "color-primary": this.colorPrimary, "color-primary-shade": this.colorPrimaryShade, "color-primary-tint": this.colorPrimaryTint }))), index.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-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint, "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 })), index.h("div", { class: "map-visibility-button", style: { display: this.isLargeView ? 'none' : 'flex' } }, index.h("div", { onClick: () => (this.showMap = !this.showMap) }, this.showMap ? (this.showTrek ? 'Voir la fiche' : 'Voir la liste') : 'Voir la carte')))));
255
- }
256
- get element() { return index.getElement(this); }
257
- static get watchers() { return {
258
- "isLargeView": ["watchPropHandler"]
259
- }; }
260
- };
261
- GrwApp.style = grwAppCss;
6
+ const store = require('./store-972b8d2a.js');
7
+ const length = require('./length-d315d156.js');
262
8
 
263
9
  const grwFilterCss = ".filter-name{margin-left:8px;color:var(--color-primary);font-size:24px;font-weight:bold}.filter-button-container{display:flex;flex-direction:row;flex-wrap:wrap}.filter-button-container .filter-button,.filter-button-container .selected-filter-button{user-select:none;cursor:pointer;border:1px var(--color-primary) solid;border-radius:8px;margin:8px 0px 0px 8px;padding:8px}.filter-button-container .filter-button{color:var(--color-primary);background-color:#ffffff}.filter-button-container .selected-filter-button{color:#ffffff;background-color:var(--color-primary)}";
264
10
 
@@ -272,14 +18,14 @@ const GrwFilter = class {
272
18
  ];
273
19
  }
274
20
  handleFilter(_event, filterToHandle) {
275
- const filterFromState = [...state[this.filterType]];
21
+ const filterFromState = [...store.state[this.filterType]];
276
22
  filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id).selected = !filterFromState.find(currentFilter => currentFilter.id === filterToHandle.id)
277
23
  .selected;
278
- state[this.filterType] = filterFromState;
24
+ store.state[this.filterType] = filterFromState;
279
25
  let isUsingFilter = false;
280
26
  let filtersTreks = [];
281
27
  for (const filter of this.filters) {
282
- const currentFiltersId = state[filter.property].filter(currentFilter => currentFilter.selected).map(currentFilter => currentFilter.id);
28
+ const currentFiltersId = store.state[filter.property].filter(currentFilter => currentFilter.selected).map(currentFilter => currentFilter.id);
283
29
  if (currentFiltersId.length > 0) {
284
30
  if (filtersTreks.length > 0) {
285
31
  if (filter.type === 'include') {
@@ -289,7 +35,7 @@ const GrwFilter = class {
289
35
  let minValue;
290
36
  let maxValue;
291
37
  for (const currentFilterId of currentFiltersId) {
292
- const currentFilter = state[filter.property].find(property => property.id === currentFilterId);
38
+ const currentFilter = store.state[filter.property].find(property => property.id === currentFilterId);
293
39
  if (isNaN(minValue) || currentFilter.minValue < minValue) {
294
40
  minValue = currentFilter.minValue;
295
41
  }
@@ -305,13 +51,13 @@ const GrwFilter = class {
305
51
  isUsingFilter = true;
306
52
  }
307
53
  if (filter.type === 'include') {
308
- filtersTreks = [...state.treks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];
54
+ filtersTreks = [...store.state.treks.filter(trek => currentFiltersId.includes(trek[filter.trekProperty]))];
309
55
  }
310
56
  else if (filter.type === 'interval') {
311
57
  let minValue;
312
58
  let maxValue;
313
59
  for (const currentFilterId of currentFiltersId) {
314
- const currentFilter = state[filter.property].find(property => property.id === currentFilterId);
60
+ const currentFilter = store.state[filter.property].find(property => property.id === currentFilterId);
315
61
  if (isNaN(minValue) || currentFilter.minValue < minValue) {
316
62
  minValue = currentFilter.minValue;
317
63
  }
@@ -319,33 +65,19 @@ const GrwFilter = class {
319
65
  maxValue = currentFilter.maxValue;
320
66
  }
321
67
  }
322
- filtersTreks = [...state.treks.filter(trek => trek[filter.trekProperty] >= minValue && trek[filter.trekProperty] <= maxValue)];
68
+ filtersTreks = [...store.state.treks.filter(trek => trek[filter.trekProperty] >= minValue && trek[filter.trekProperty] <= maxValue)];
323
69
  }
324
70
  }
325
71
  }
326
72
  }
327
- state.currentTreks = isUsingFilter ? filtersTreks : state.treks;
73
+ store.state.currentTreks = isUsingFilter ? filtersTreks : store.state.treks;
328
74
  }
329
75
  render() {
330
- return (index.h(index.Host, null, index.h("div", { class: "filter-name" }, this.filterName), index.h("div", { class: "filter-button-container" }, state[this.filterType].map(currentFilter => (index.h("div", { onClick: event => this.handleFilter(event, currentFilter), class: currentFilter.selected ? 'selected-filter-button' : 'filter-button' }, currentFilter[this.filterNameProperty]))))));
76
+ return (index.h(index.Host, null, index.h("div", { class: "filter-name" }, this.filterName), index.h("div", { class: "filter-button-container" }, store.state[this.filterType].map(currentFilter => (index.h("div", { onClick: event => this.handleFilter(event, currentFilter), class: currentFilter.selected ? 'selected-filter-button' : 'filter-button' }, currentFilter[this.filterNameProperty]))))));
331
77
  }
332
78
  };
333
79
  GrwFilter.style = grwFilterCss;
334
80
 
335
- 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}";
336
-
337
- const GrwInformationDeskDetail = class {
338
- constructor(hostRef) {
339
- index.registerInstance(this, hostRef);
340
- }
341
- render() {
342
- return (index.h(index.Host, null, this.informationDesk.photo_url && (index.h("div", { class: "information-desk-img" }, index.h("img", { src: this.informationDesk.photo_url, loading: "lazy" }))), index.h("div", { class: "information-desk-right-container" }, this.informationDesk.name && index.h("div", { class: "information-desk-name" }, this.informationDesk.name), this.informationDesk.description && index.h("div", { class: "information-desk-description", innerHTML: this.informationDesk.description }), this.informationDesk.postal_code ||
343
- this.informationDesk.municipality ||
344
- (this.informationDesk.street && (index.h("div", null, this.informationDesk.postal_code, ` ${this.informationDesk.municipality}`, ` ${this.informationDesk.street}`))), this.informationDesk.phone && (index.h("div", null, index.h("a", { href: `tel:${this.informationDesk.phone}` }, this.informationDesk.phone))), this.informationDesk.email && (index.h("div", null, index.h("a", { href: `mailto:${this.informationDesk.email}` }, this.informationDesk.email))), this.informationDesk.website && (index.h("div", null, index.h("a", { href: `${this.informationDesk.website}` }, this.informationDesk.website))))));
345
- }
346
- };
347
- GrwInformationDeskDetail.style = grwInformationDeskDetailCss;
348
-
349
81
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
350
82
 
351
83
  function createCommonjsModule(fn, basedir, module) {
@@ -14487,7 +14219,7 @@ var leafletSrc = createCommonjsModule(function (module, exports) {
14487
14219
 
14488
14220
  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>`;
14489
14221
 
14490
- 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}";
14222
+ 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}";
14491
14223
 
14492
14224
  const GrwMap = class {
14493
14225
  constructor(hostRef) {
@@ -14514,22 +14246,22 @@ const GrwMap = class {
14514
14246
  maxZoom: 19,
14515
14247
  attribution: this.attribution,
14516
14248
  }).addTo(this.map);
14517
- if (state.currentTrek) {
14249
+ if (store.state.currentTrek) {
14518
14250
  this.addTrek();
14519
14251
  }
14520
- else if (state.currentTrek) {
14252
+ else if (store.state.currentTrek) {
14521
14253
  this.addTreks();
14522
14254
  }
14523
- onChange('currentTreks', () => {
14524
- if (state.currentTrek) {
14255
+ store.onChange('currentTreks', () => {
14256
+ if (store.state.currentTrek) {
14525
14257
  this.addTrek();
14526
14258
  }
14527
- else if (state.currentTreks) {
14259
+ else if (store.state.currentTreks) {
14528
14260
  this.addTreks();
14529
14261
  }
14530
14262
  });
14531
- onChange('currentTrek', () => {
14532
- if (state.currentTrek) {
14263
+ store.onChange('currentTrek', () => {
14264
+ if (store.state.currentTrek) {
14533
14265
  this.removeTreks();
14534
14266
  this.addTrek();
14535
14267
  }
@@ -14546,7 +14278,7 @@ const GrwMap = class {
14546
14278
  type: 'FeatureCollection',
14547
14279
  features: [],
14548
14280
  };
14549
- for (const trek of state.currentTreks) {
14281
+ for (const trek of store.state.currentTreks) {
14550
14282
  trekscurrentDepartureCoordinates.push(trek.departure_geom);
14551
14283
  treksFeatureCollection.features.push({
14552
14284
  type: 'Feature',
@@ -14554,7 +14286,7 @@ const GrwMap = class {
14554
14286
  properties: {
14555
14287
  id: trek.id,
14556
14288
  name: trek.name,
14557
- practice: (_a = state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram,
14289
+ practice: (_a = store.state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram,
14558
14290
  imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,
14559
14291
  },
14560
14292
  });
@@ -14609,7 +14341,7 @@ const GrwMap = class {
14609
14341
  addTrek() {
14610
14342
  const currentTrekFeature = {
14611
14343
  type: 'Feature',
14612
- geometry: state.currentTrek.geometry,
14344
+ geometry: store.state.currentTrek.geometry,
14613
14345
  properties: {},
14614
14346
  };
14615
14347
  this.currentTrekLayer = leafletSrc.geoJSON(currentTrekFeature, {
@@ -14618,11 +14350,11 @@ const GrwMap = class {
14618
14350
  }),
14619
14351
  interactive: false,
14620
14352
  }).addTo(this.map);
14621
- const bounds = leafletSrc.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14353
+ const bounds = leafletSrc.latLngBounds(store.state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14622
14354
  this.currentBounds = bounds;
14623
14355
  this.map.fitBounds(this.currentBounds);
14624
- const currentDepartureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];
14625
- const currentArrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];
14356
+ const currentDepartureCoordinates = [store.state.currentTrek.geometry.coordinates.at(0)[0], store.state.currentTrek.geometry.coordinates.at(0)[1]];
14357
+ const currentArrivalCoordinates = [store.state.currentTrek.geometry.coordinates.at(-1)[0], store.state.currentTrek.geometry.coordinates.at(-1)[1]];
14626
14358
  const currentDepartureArrivalFeatureCollection = {
14627
14359
  type: 'FeatureCollection',
14628
14360
  features: [
@@ -14652,11 +14384,11 @@ const GrwMap = class {
14652
14384
  interactive: false,
14653
14385
  }),
14654
14386
  }).addTo(this.map);
14655
- if (state.currentTrek.parking_location) {
14387
+ if (store.state.currentTrek.parking_location) {
14656
14388
  const currentParking = {
14657
14389
  type: 'Feature',
14658
14390
  properties: {},
14659
- geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },
14391
+ geometry: { type: 'Point', coordinates: store.state.currentTrek.parking_location },
14660
14392
  };
14661
14393
  this.currentParkingLayer = leafletSrc.geoJSON(currentParking, {
14662
14394
  pointToLayer: (_geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
@@ -14671,19 +14403,32 @@ const GrwMap = class {
14671
14403
  }),
14672
14404
  }).addTo(this.map);
14673
14405
  }
14674
- if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {
14406
+ if (store.state.currentSensitiveAreas && store.state.currentSensitiveAreas.length > 0) {
14675
14407
  const currentSensitiveAreasFeatureCollection = {
14676
14408
  type: 'FeatureCollection',
14677
14409
  features: [],
14678
14410
  };
14679
- for (const sensitiveArea of state.currentSensitiveAreas) {
14411
+ for (const sensitiveArea of store.state.currentSensitiveAreas) {
14680
14412
  currentSensitiveAreasFeatureCollection.features.push({
14681
14413
  type: 'Feature',
14682
- properties: {},
14414
+ properties: { name: sensitiveArea.name },
14683
14415
  geometry: sensitiveArea.geometry,
14684
14416
  });
14685
14417
  }
14686
- this.currentSensitiveAreasLayer = leafletSrc.geoJSON(currentSensitiveAreasFeatureCollection, { style: () => ({ color: this.colorSensitiveArea }) }).addTo(this.map);
14418
+ this.currentSensitiveAreasLayer = leafletSrc.geoJSON(currentSensitiveAreasFeatureCollection, {
14419
+ onEachFeature: (geoJsonPoint, layer) => {
14420
+ layer.once('mouseover', () => {
14421
+ const sensitiveAreaTooltip = leafletSrc.DomUtil.create('div');
14422
+ sensitiveAreaTooltip.className = 'sensitive-area-tooltip';
14423
+ const sensitiveAreaName = leafletSrc.DomUtil.create('div');
14424
+ sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;
14425
+ sensitiveAreaName.className = 'sensitive-area-name';
14426
+ sensitiveAreaTooltip.appendChild(sensitiveAreaName);
14427
+ layer.bindTooltip(sensitiveAreaTooltip).openTooltip();
14428
+ });
14429
+ },
14430
+ style: () => ({ color: this.colorSensitiveArea }),
14431
+ }).addTo(this.map);
14687
14432
  leafletSrc.Control.SensitiveAreasCheckboxContainer = leafletSrc.Control.extend({
14688
14433
  onAdd: () => {
14689
14434
  const sensitiveAreasCheckboxContainer = leafletSrc.DomUtil.create('div');
@@ -14709,12 +14454,12 @@ const GrwMap = class {
14709
14454
  };
14710
14455
  this.sensitiveAreasControl = leafletSrc.control.sensitiveAreasCheckboxContainer({ position: 'topright' }).addTo(this.map);
14711
14456
  }
14712
- if (state.currentPois && state.currentPois.length > 0) {
14457
+ if (store.state.currentPois && store.state.currentPois.length > 0) {
14713
14458
  const currentPoisFeatureCollection = {
14714
14459
  type: 'FeatureCollection',
14715
14460
  features: [],
14716
14461
  };
14717
- for (const currentPoi of state.currentPois) {
14462
+ for (const currentPoi of store.state.currentPois) {
14718
14463
  currentPoisFeatureCollection.features.push({
14719
14464
  type: 'Feature',
14720
14465
  properties: { name: currentPoi.name, type_pictogram: currentPoi.type_pictogram },
@@ -14743,12 +14488,12 @@ const GrwMap = class {
14743
14488
  },
14744
14489
  }).addTo(this.map);
14745
14490
  }
14746
- if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {
14491
+ if (store.state.currentInformationDesks && store.state.currentInformationDesks.length > 0) {
14747
14492
  const currentInformationDesksFeatureCollection = {
14748
14493
  type: 'FeatureCollection',
14749
14494
  features: [],
14750
14495
  };
14751
- for (const currentInformationDesk of state.currentInformationDesks) {
14496
+ for (const currentInformationDesk of store.state.currentInformationDesks) {
14752
14497
  currentInformationDesksFeatureCollection.features.push({
14753
14498
  type: 'Feature',
14754
14499
  properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },
@@ -14777,6 +14522,32 @@ const GrwMap = class {
14777
14522
  },
14778
14523
  }).addTo(this.map);
14779
14524
  }
14525
+ if (store.state.currentTrek.points_reference) {
14526
+ const currentPointsReferenceFeatureCollection = {
14527
+ type: 'FeatureCollection',
14528
+ features: [],
14529
+ };
14530
+ currentPointsReferenceFeatureCollection.features.push({
14531
+ type: 'Feature',
14532
+ properties: {},
14533
+ geometry: store.state.currentTrek.points_reference,
14534
+ });
14535
+ let index = 0;
14536
+ this.currentPointsReferenceLayer = leafletSrc.geoJSON(currentPointsReferenceFeatureCollection, {
14537
+ pointToLayer: (_geoJsonPoint, latlng) => {
14538
+ index += 1;
14539
+ return leafletSrc.marker(latlng, {
14540
+ icon: leafletSrc.divIcon({
14541
+ html: index,
14542
+ className: 'point-reference-icon',
14543
+ iconSize: 24,
14544
+ }),
14545
+ autoPanOnFocus: false,
14546
+ interactive: false,
14547
+ });
14548
+ },
14549
+ }).addTo(this.map);
14550
+ }
14780
14551
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14781
14552
  }
14782
14553
  removeTrek() {
@@ -14806,6 +14577,10 @@ const GrwMap = class {
14806
14577
  this.map.removeLayer(this.currentInformationDesksLayer);
14807
14578
  this.currentInformationDesksLayer = null;
14808
14579
  }
14580
+ if (this.currentPointsReferenceLayer) {
14581
+ this.map.removeLayer(this.currentPointsReferenceLayer);
14582
+ this.currentPointsReferenceLayer = null;
14583
+ }
14809
14584
  }
14810
14585
  render() {
14811
14586
  return (index.h(index.Host, { style: {
@@ -14820,95 +14595,7 @@ const GrwMap = class {
14820
14595
  };
14821
14596
  GrwMap.style = grwMapCss;
14822
14597
 
14823
- 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}";
14824
-
14825
- const GrwPoiDetail = class {
14826
- constructor(hostRef) {
14827
- index.registerInstance(this, hostRef);
14828
- }
14829
- render() {
14830
- return (index.h(index.Host, null, this.poi.attachments && this.poi.attachments[0] && this.poi.attachments[0].thumbnail && (index.h("div", { class: "poi-img" }, index.h("img", { src: this.poi.attachments[0].thumbnail, loading: "lazy" }))), index.h("div", { class: "poi-right-container" }, index.h("div", { class: "poi-name" }, this.poi.name), index.h("div", { class: "poi-description", innerHTML: this.poi.description }))));
14831
- }
14832
- };
14833
- GrwPoiDetail.style = grwPoiDetailCss;
14834
-
14835
- 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}";
14836
-
14837
- const GrwSensitiveAreaDetail = class {
14838
- constructor(hostRef) {
14839
- index.registerInstance(this, hostRef);
14840
- }
14841
- render() {
14842
- return (index.h(index.Host, null, index.h("div", { class: "sensitive-area-name" }, this.sensitiveArea.name), index.h("div", { class: "sensitive-area-description", innerHTML: this.sensitiveArea.description })));
14843
- }
14844
- };
14845
- GrwSensitiveAreaDetail.style = grwSensitiveAreaDetailCss;
14846
-
14847
- function formatDuration(duration) {
14848
- let formattedDuration;
14849
- if (duration < 24) {
14850
- formattedDuration = `${Math.floor(duration)}h`;
14851
- if (duration % 1 > 0) {
14852
- formattedDuration += `${Math.round(60 * (duration % 1))}min`;
14853
- }
14854
- }
14855
- else {
14856
- formattedDuration = `${duration / 24}j`;
14857
- }
14858
- return formattedDuration;
14859
- }
14860
- function formatLength(length) {
14861
- return `${Math.round(length / 1000)}km`;
14862
- }
14863
- function formatAscent(ascent) {
14864
- return `${ascent}m`;
14865
- }
14866
-
14867
- 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>`;
14868
-
14869
- const durationImage = `<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><path d="M145.61,464H366.39c19.8,0,35.55-16.29,33.42-35.06C386.06,308,304,310,304,256s83.11-51,95.8-172.94c2-18.78-13.61-35.06-33.41-35.06H145.61c-19.8,0-35.37,16.28-33.41,35.06C124.89,205,208,201,208,256s-82.06,52-95.8,172.94C110.06,447.71,125.81,464,145.61,464Z" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><path d="M343.3,432H169.13c-15.6,0-20-18-9.06-29.16C186.55,376,240,356.78,240,326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8,6.37-12.8H327.59c8.41,0,10.23,7.43,6.4,12.75C310.82,189,272,204.05,272,224V326c0,30.53,55.71,47,80.4,76.87C362.35,414.91,358.87,432,343.3,432Z"/></svg>`;
14870
-
14871
- 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>`;
14872
-
14873
- const grwTrekCardCss = ".trek-card-container,.trek-card-large-view-container{font-family:\"Roboto\";border-radius:8px;box-shadow:4px 8px 24px rgba(0, 0, 0, 0.25);cursor:pointer}.trek-card-container .image,.trek-card-large-view-container .image{object-fit:cover}.trek-card-container .sub-container,.trek-card-large-view-container .sub-container{display:flex;flex-direction:column;justify-content:center;padding:12px}.trek-card-container .sub-container .name,.trek-card-large-view-container .sub-container .name{color:var(--color-primary);font-size:24px;font-weight:bold;margin-bottom:8px}.trek-card-container .sub-container .departure,.trek-card-large-view-container .sub-container .departure{color:rgba(0, 0, 0, 0.7);font-size:16px;margin:4px 0px}.trek-card-container .sub-container .themes-container,.trek-card-large-view-container .sub-container .themes-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.trek-card-container .sub-container .themes-container .theme,.trek-card-large-view-container .sub-container .themes-container .theme{background-color:var(--color-primary-tint);color:#ffffff;border-radius:8px;padding:8px;margin:0px 8px 8px 0px}.trek-card-container .sub-container .icons-labels-container,.trek-card-large-view-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,.trek-card-large-view-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),.trek-card-large-view-container .sub-container .icons-labels-container .row:not(:last-child){margin-bottom:12px}.trek-card-container .sub-container .icons-labels-container .row .icon-label,.trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label{display:flex;align-items:center;width:50%}.trek-card-container .sub-container .icons-labels-container .row .icon-label:nth-child(2),.trek-card-large-view-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,.trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label img,.trek-card-large-view-container .sub-container .icons-labels-container .row .icon-label .svg-icon svg{width:24px;height:auto;margin-right:8px}.trek-card-container .sub-container .icons-labels-container .row .practice img,.trek-card-large-view-container .sub-container .icons-labels-container .row .practice img{background-color:var(--color-primary)}.trek-card-container{width:350px;height:auto}.trek-card-container .image{width:100%}.trek-card-large-view-container{height:auto;display:flex;flex-direction:row}.trek-card-large-view-container .image{width:250px}";
14874
-
14875
- const GrwTrekCard = class {
14876
- constructor(hostRef) {
14877
- index.registerInstance(this, hostRef);
14878
- this.trekCardPress = index.createEvent(this, "trekCardPress", 7);
14879
- this.colorPrimary = '#6b0030';
14880
- this.colorPrimaryTint = '#974c6e';
14881
- this.isLargeView = false;
14882
- }
14883
- componentWillLoad() {
14884
- this.currentTrek = this.trek ? this.trek : state.currentTrek;
14885
- if (this.currentTrek) {
14886
- this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14887
- this.route = state.routes.find(route => route.id === this.currentTrek.route);
14888
- this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
14889
- this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
14890
- }
14891
- onChange('currentTrek', () => {
14892
- this.currentTrek = this.trek ? this.trek : state.currentTrek;
14893
- if (this.currentTrek) {
14894
- this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14895
- this.route = state.routes.find(route => route.id === this.currentTrek.route);
14896
- this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
14897
- this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
14898
- }
14899
- });
14900
- }
14901
- render() {
14902
- var _a, _b, _c, _d, _e, _f, _g, _h;
14903
- return (index.h(index.Host, { onClick: () => this.trekCardPress.emit(this.currentTrek.id), style: { 'width': this.isLargeView ? '100%' : 'auto', '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (index.h("div", { class: this.isLargeView ? 'trek-card-large-view-container' : 'trek-card-container' }, this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].thumbnail && (index.h("img", { class: "image", src: `${this.currentTrek.attachments[0].thumbnail}`, loading: "lazy" })), index.h("div", { class: "sub-container" }, index.h("div", { class: "departure" }, (_a = this.currentTrek) === null || _a === void 0 ? void 0 : _a.departure), index.h("div", { class: "name" }, (_b = this.currentTrek) === null || _b === void 0 ? void 0 : _b.name), index.h("div", { class: "themes-container" }, this.themes.map(theme => (index.h("div", { class: "theme" }, theme.label)))), index.h("div", { class: "icons-labels-container" }, index.h("div", { class: "row" }, index.h("div", { class: "icon-label difficulty" }, ((_c = this.difficulty) === null || _c === void 0 ? void 0 : _c.pictogram) && index.h("img", { src: this.difficulty.pictogram }), (_d = this.difficulty) === null || _d === void 0 ? void 0 :
14904
- _d.label), index.h("div", { class: "icon-label duration" }, index.h("div", { class: "svg-icon", innerHTML: durationImage }), formatDuration(this.currentTrek.duration))), index.h("div", { class: "row" }, index.h("div", { class: "icon-label length" }, index.h("div", { class: "svg-icon", innerHTML: lengthImage }), formatLength(this.currentTrek.length_2d)), index.h("div", { class: "icon-label ascent" }, index.h("div", { class: "svg-icon", innerHTML: ascentImage }), formatAscent(this.currentTrek.ascent))), index.h("div", { class: "row" }, index.h("div", { class: "icon-label route" }, ((_e = this.route) === null || _e === void 0 ? void 0 : _e.pictogram) && index.h("img", { src: this.route.pictogram }), (_f = this.route) === null || _f === void 0 ? void 0 :
14905
- _f.route), index.h("div", { class: "icon-label practice" }, ((_g = this.practice) === null || _g === void 0 ? void 0 : _g.pictogram) && index.h("img", { src: this.practice.pictogram }), (_h = this.practice) === null || _h === void 0 ? void 0 :
14906
- _h.name))))))));
14907
- }
14908
- };
14909
- GrwTrekCard.style = grwTrekCardCss;
14910
-
14911
- 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}";
14598
+ 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:12px}.trek-detail-container .downloads-container .links-container{display:flex}.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 .themes-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;padding:0px 24px 24px 24px}.trek-detail-container .themes-container .theme{background-color:var(--color-primary-tint);color:#ffffff;border-radius:8px;padding:8px;margin:0px 8px 8px 0px}.trek-detail-container .ambiance,.trek-detail-container .description-teaser,.trek-detail-container .description-container,.trek-detail-container .altimetric-profile-container,.trek-detail-container .access-container,.trek-detail-container .public-transport-container,.trek-detail-container .advice-container,.trek-detail-container .advised-parking-container,.trek-detail-container .gear-container,.trek-detail-container .pois-container,.trek-detail-container .sensitive-areas-container,.trek-detail-container .information-desks-container,.trek-detail-container .source-container,.trek-detail-container .accessibilities-container{padding:0px 24px 24px 24px}.trek-detail-container .ambiance a,.trek-detail-container .description-teaser a,.trek-detail-container .description-container a,.trek-detail-container .altimetric-profile-container a,.trek-detail-container .access-container a,.trek-detail-container .public-transport-container a,.trek-detail-container .advice-container a,.trek-detail-container .advised-parking-container a,.trek-detail-container .gear-container a,.trek-detail-container .pois-container a,.trek-detail-container .sensitive-areas-container a,.trek-detail-container .information-desks-container a,.trek-detail-container .source-container a,.trek-detail-container .accessibilities-container a{color:var(--color-primary)}.trek-detail-container .description-title,.trek-detail-container .altimetric-profile-title,.trek-detail-container .access-title,.trek-detail-container .public-transport-title,.trek-detail-container .advice-title,.trek-detail-container .advised-parking-title,.trek-detail-container .gear-title,.trek-detail-container .pois-title,.trek-detail-container .sensitive-areas-title,.trek-detail-container .information-desks-title,.trek-detail-container .source-title,.trek-detail-container .accessibilities-title{color:var(--color-primary);font-size:36px;font-weight:bold;margin:12px 0px}.label-container .label-sub-container{display:flex;align-items:center}.label-container .label-sub-container img{width:26px;margin-right:16px}.label-container .label-sub-container .label-name{color:var(--color-primary);font-size:24px;font-weight:bold;padding:12px 0px}.source-container .source-sub-container{display:flex;align-items:center}.source-container .source-sub-container img{width:26px;margin-right:16px}.source-container .source-sub-container .source-name{color:var(--color-primary);font-size:24px;font-weight:bold;padding:12px 0px}.departure-container,.arrival-container{display:flex;align-items:center;padding:0px 24px 24px 24px}.departure-container .departure-title,.departure-container .arrival-title,.arrival-container .departure-title,.arrival-container .arrival-title{color:var(--color-primary);font-weight:bold}.accessibilities-container .accessibilities-content-container{padding:12px 0px 0px 0px;display:flex}.accessibilities-container .accessibilities-content-container .accessibility-content-container{display:flex;align-items:center;margin:0px 8px 8px 0px}.accessibilities-container .accessibilities-content-container .accessibility-content-container img{margin-right:16px;width:26px}.accessibilities-container .accessibility-level-title,.accessibilities-container .accessibility-slope-title,.accessibilities-container .accessibility-width-title,.accessibilities-container .accessibility-signage-title,.accessibilities-container .accessibility-covering-title,.accessibilities-container .accessibility-exposure-title,.accessibilities-container .accessibility-advice-title{color:var(--color-primary);font-size:24px;padding:12px 0px}";
14912
14599
 
14913
14600
  const GrwTrekDetail = class {
14914
14601
  constructor(hostRef) {
@@ -14918,27 +14605,35 @@ const GrwTrekDetail = class {
14918
14605
  this.colorPrimaryTint = '#974c6e';
14919
14606
  }
14920
14607
  componentWillLoad() {
14921
- this.currentTrek = this.trek ? this.trek : state.currentTrek;
14608
+ this.currentTrek = this.trek ? this.trek : store.state.currentTrek;
14922
14609
  if (this.currentTrek) {
14923
- this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14924
- this.route = state.routes.find(route => route.id === this.currentTrek.route);
14925
- this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
14610
+ this.difficulty = store.state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14611
+ this.route = store.state.routes.find(route => route.id === this.currentTrek.route);
14612
+ this.practice = store.state.practices.find(practice => practice.id === this.currentTrek.practice);
14613
+ this.themes = store.state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
14614
+ this.labels = store.state.labels.filter(label => this.currentTrek.labels.includes(label.id));
14615
+ this.sources = store.state.sources.filter(source => this.currentTrek.source.includes(source.id));
14616
+ this.accessibilities = store.state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));
14617
+ this.accessibilityLevel = store.state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);
14926
14618
  }
14927
- onChange('currentTrek', () => {
14928
- this.currentTrek = this.trek ? this.trek : state.currentTrek;
14619
+ store.onChange('currentTrek', () => {
14620
+ this.currentTrek = this.trek ? this.trek : store.state.currentTrek;
14929
14621
  if (this.currentTrek) {
14930
- this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14931
- this.route = state.routes.find(route => route.id === this.currentTrek.route);
14932
- this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);
14622
+ this.difficulty = store.state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14623
+ this.route = store.state.routes.find(route => route.id === this.currentTrek.route);
14624
+ this.practice = store.state.practices.find(practice => practice.id === this.currentTrek.practice);
14625
+ this.themes = store.state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
14626
+ this.labels = store.state.labels.filter(label => this.currentTrek.labels.includes(label.id));
14627
+ this.sources = store.state.sources.filter(source => this.currentTrek.source.includes(source.id));
14933
14628
  }
14934
14629
  });
14935
14630
  }
14936
14631
  render() {
14937
14632
  var _a, _b, _c, _d, _e, _f, _g;
14938
14633
  return (index.h(index.Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-shade': this.colorPrimaryShade, '--color-primary-tint': this.colorPrimaryTint } }, this.currentTrek && (index.h("div", { class: "trek-detail-container" }, index.h("div", { class: "name" }, this.currentTrek.name), this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].thumbnail && (index.h("img", { class: "image", src: this.currentTrek.attachments[0].thumbnail, loading: "lazy" })), index.h("div", { class: "sub-container" }, index.h("div", { class: "icons-labels-container" }, index.h("div", { class: "row" }, index.h("div", { class: "icon-label difficulty" }, ((_a = this.difficulty) === null || _a === void 0 ? void 0 : _a.pictogram) && index.h("img", { src: this.difficulty.pictogram }), (_b = this.difficulty) === null || _b === void 0 ? void 0 :
14939
- _b.label), index.h("div", { class: "icon-label duration" }, index.h("div", { class: "svg-icon", innerHTML: durationImage }), formatDuration((_c = this.currentTrek) === null || _c === void 0 ? void 0 : _c.duration)), index.h("div", { class: "icon-label route" }, ((_d = this.route) === null || _d === void 0 ? void 0 : _d.pictogram) && index.h("img", { src: this.route.pictogram }), (_e = this.route) === null || _e === void 0 ? void 0 :
14940
- _e.route)), index.h("div", { class: "row" }, index.h("div", { class: "icon-label length" }, index.h("div", { class: "svg-icon", innerHTML: lengthImage }), formatLength(this.currentTrek.length_2d)), index.h("div", { class: "icon-label ascent" }, index.h("div", { class: "svg-icon", innerHTML: ascentImage }), formatAscent(this.currentTrek.ascent)), index.h("div", { class: "icon-label practice" }, ((_f = this.practice) === null || _f === void 0 ? void 0 : _f.pictogram) && index.h("img", { src: this.practice.pictogram }), (_g = this.practice) === null || _g === void 0 ? void 0 :
14941
- _g.name)))), index.h("div", { class: "downloads-container" }, index.h("div", { class: "download-title" }, "T\u00E9l\u00E9chargements"), index.h("div", { class: "links-container" }, index.h("a", { href: `${this.currentTrek.gpx}` }, "GPX"), index.h("a", { href: `${this.currentTrek.kml}` }, "KML"), index.h("a", { href: `${this.currentTrek.pdf}` }, "PDF"))), index.h("div", { class: "description", innerHTML: this.currentTrek.description ? this.currentTrek.description : this.currentTrek.description_teaser }), state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (index.h("div", { class: "sensitive-areas-container" }, index.h("div", { class: "sensitive-areas-title" }, "Zones sensibles"), state.currentSensitiveAreas.map(sensitiveArea => (index.h("grw-sensitive-area-detail", { sensitiveArea: sensitiveArea }))))), state.currentInformationDesks && state.currentInformationDesks.length > 0 && (index.h("div", { class: "information-desks-container" }, index.h("div", { class: "information-desks-title" }, "Lieux de renseignement"), state.currentInformationDesks.map(informationDesk => (index.h("grw-information-desk-detail", { informationDesk: informationDesk }))))), state.currentPois && state.currentPois.length > 0 && (index.h("div", { class: "pois-container" }, index.h("div", { class: "pois-title" }, "Points d'int\u00E9r\u00EAts"), state.currentPois.map(poi => (index.h("grw-poi-detail", { poi: poi })))))))));
14634
+ _b.label), index.h("div", { class: "icon-label duration" }, index.h("div", { class: "svg-icon", innerHTML: length.durationImage }), length.formatDuration((_c = this.currentTrek) === null || _c === void 0 ? void 0 : _c.duration)), index.h("div", { class: "icon-label route" }, ((_d = this.route) === null || _d === void 0 ? void 0 : _d.pictogram) && index.h("img", { src: this.route.pictogram }), (_e = this.route) === null || _e === void 0 ? void 0 :
14635
+ _e.route)), index.h("div", { class: "row" }, index.h("div", { class: "icon-label length" }, index.h("div", { class: "svg-icon", innerHTML: length.lengthImage }), length.formatLength(this.currentTrek.length_2d)), index.h("div", { class: "icon-label ascent" }, index.h("div", { class: "svg-icon", innerHTML: length.ascentImage }), length.formatAscent(this.currentTrek.ascent)), index.h("div", { class: "icon-label practice" }, ((_f = this.practice) === null || _f === void 0 ? void 0 : _f.pictogram) && index.h("img", { src: this.practice.pictogram }), (_g = this.practice) === null || _g === void 0 ? void 0 :
14636
+ _g.name)))), index.h("div", { class: "downloads-container" }, index.h("div", { class: "download-title" }, "T\u00E9l\u00E9chargements"), index.h("div", { class: "links-container" }, index.h("a", { href: `${this.currentTrek.gpx}` }, "GPX"), index.h("a", { href: `${this.currentTrek.kml}` }, "KML"), index.h("a", { href: `${this.currentTrek.pdf}` }, "PDF"))), this.themes.length > 0 && (index.h("div", { class: "themes-container" }, this.themes.map(theme => (index.h("div", { class: "theme" }, theme.label))))), this.currentTrek.description_teaser && index.h("div", { class: "description-teaser", innerHTML: this.currentTrek.description_teaser }), this.currentTrek.ambiance && index.h("div", { class: "ambiance", innerHTML: this.currentTrek.ambiance }), this.currentTrek.description && (index.h("div", { class: "description-container" }, index.h("div", { class: "description-title" }, "Description"), index.h("div", { class: "description", innerHTML: this.currentTrek.description }))), this.currentTrek.departure && (index.h("div", { class: "departure-container" }, index.h("div", { class: "departure-title" }, "D\u00E9part :\u00A0"), index.h("div", { innerHTML: this.currentTrek.departure }))), this.currentTrek.arrival && (index.h("div", { class: "arrival-container" }, index.h("div", { class: "arrival-title" }, "Arriv\u00E9e :\u00A0"), index.h("div", { innerHTML: this.currentTrek.arrival }))), this.currentTrek.altimetric_profile && (index.h("div", { class: "altimetric-profile-container" }, index.h("div", { class: "altimetric-profile-title" }, "Profil altim\u00E9trique"), index.h("img", { src: this.currentTrek.altimetric_profile }))), this.currentTrek.access && (index.h("div", { class: "access-container" }, index.h("div", { class: "access-title" }, "Acc\u00E8s routier"), index.h("div", { class: "access", innerHTML: this.currentTrek.access }))), this.currentTrek.public_transport && (index.h("div", { class: "public-transport-container" }, index.h("div", { class: "public-transport-title" }, "Transport"), index.h("div", { class: "public-transport", innerHTML: this.currentTrek.public_transport }))), (this.currentTrek.advice || this.labels.length > 0) && (index.h("div", { class: "advice-container" }, index.h("div", { class: "advice-title" }, "Recommandations"), this.currentTrek.advice && index.h("div", { class: "advice", innerHTML: this.currentTrek.advice }), this.labels.map(label => (index.h("div", { class: "label-container" }, index.h("div", { class: "label-sub-container" }, label.pictogram && index.h("img", { src: label.pictogram }), index.h("div", { class: "label-name", innerHTML: label.name })), index.h("div", { class: "label-advice", innerHTML: label.advice })))))), this.currentTrek.advised_parking && (index.h("div", { class: "advised-parking-container" }, index.h("div", { class: "advised-parking-title" }, "Parking conseill\u00E9"), index.h("div", { class: "advised_parking", innerHTML: this.currentTrek.advised_parking }))), this.currentTrek.gear && (index.h("div", { class: "gear-container" }, index.h("div", { class: "gear-title" }, "\u00C9quipements"), index.h("div", { class: "gear", innerHTML: this.currentTrek.gear }))), store.state.currentSensitiveAreas && store.state.currentSensitiveAreas.length > 0 && (index.h("div", { class: "sensitive-areas-container" }, index.h("div", { class: "sensitive-areas-title" }, "Zones de sensibilit\u00E9 environnementale"), store.state.currentSensitiveAreas.map(sensitiveArea => (index.h("grw-sensitive-area-detail", { sensitiveArea: sensitiveArea }))))), store.state.currentInformationDesks && store.state.currentInformationDesks.length > 0 && (index.h("div", { class: "information-desks-container" }, index.h("div", { class: "information-desks-title" }, "Lieux de renseignement"), store.state.currentInformationDesks.map(informationDesk => (index.h("grw-information-desk-detail", { informationDesk: informationDesk }))))), index.h("div", { class: "accessibilities-container" }, index.h("div", { class: "accessibilities-title" }, "Accessibilit\u00E9"), this.currentTrek.disabled_infrastructure && index.h("div", { innerHTML: this.currentTrek.disabled_infrastructure }), index.h("div", { class: "accessibilities-content-container" }, this.accessibilities.map(accessibility => (index.h("div", { class: "accessibility-content-container" }, index.h("img", { src: accessibility.pictogram }), index.h("div", { innerHTML: accessibility.name }))))), this.currentTrek.accessibility_level && (index.h("div", { class: "accessibility-level-container" }, index.h("div", { class: "accessibility-level-title" }, "Niveau d'accessibilit\u00E9"), index.h("div", { innerHTML: this.accessibilityLevel.name }))), this.currentTrek.accessibility_slope && (index.h("div", { class: "accessibility-slope-container" }, index.h("div", { class: "accessibility-slope-title" }, "Pente"), index.h("div", { innerHTML: this.currentTrek.accessibility_slope }))), this.currentTrek.accessibility_width && (index.h("div", { class: "accessibility-width-container" }, index.h("div", { class: "accessibility-width-title" }, "Largeur"), index.h("div", { innerHTML: this.currentTrek.accessibility_width }))), this.currentTrek.accessibility_signage && (index.h("div", { class: "accessibility-signage-container" }, index.h("div", { class: "accessibility-signage-title" }, "Pente"), index.h("div", { innerHTML: this.currentTrek.accessibility_signage }))), this.currentTrek.accessibility_covering && (index.h("div", { class: "accessibility-covering-container" }, index.h("div", { class: "accessibility-covering-title" }, "Rev\u00EAtement"), index.h("div", { innerHTML: this.currentTrek.accessibility_covering }))), this.currentTrek.accessibility_exposure && (index.h("div", { class: "accessibility-exposure-container" }, index.h("div", { class: "accessibility-exposure-title" }, "Exposition"), index.h("div", { innerHTML: this.currentTrek.accessibility_exposure }))), this.currentTrek.accessibility_advice && (index.h("div", { class: "accessibility-advice-container" }, index.h("div", { class: "accessibility-advice-title" }, "Conseils"), index.h("div", { innerHTML: this.currentTrek.accessibility_advice })))), store.state.currentPois && store.state.currentPois.length > 0 && (index.h("div", { class: "pois-container" }, index.h("div", { class: "pois-title" }, "Points d'int\u00E9r\u00EAts"), store.state.currentPois.map(poi => (index.h("grw-poi-detail", { poi: poi }))))), this.currentTrek.source && this.currentTrek.source.length > 0 && (index.h("div", { class: "source-container" }, index.h("div", { class: "source-title" }, "Sources"), this.sources.map(source => (index.h("div", { class: "source-sub-container" }, source.pictogram && index.h("img", { src: source.pictogram }), index.h("div", null, index.h("div", { class: "source-name", innerHTML: source.name }), index.h("a", { class: "source-advice", innerHTML: source.website })))))))))));
14942
14637
  }
14943
14638
  };
14944
14639
  GrwTrekDetail.style = grwTrekDetailCss;
@@ -14949,43 +14644,51 @@ const GrwTrekProvider = class {
14949
14644
  this.language = 'fr';
14950
14645
  }
14951
14646
  componentWillLoad() {
14952
- state.api = this.api;
14647
+ store.state.api = this.api;
14953
14648
  const requests = [];
14954
- requests.push(!state.difficulties ? fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`) : new Response('null'));
14955
- requests.push(!state.routes ? fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`) : new Response('null'));
14956
- requests.push(!state.practices ? fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`) : new Response('null'));
14957
- requests.push(!state.themes ? fetch(`${this.api}theme/?language=${this.language}&fields=id,label,pictogram`) : new Response('null'));
14649
+ requests.push(!store.state.difficulties ? fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`) : new Response('null'));
14650
+ requests.push(!store.state.routes ? fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`) : new Response('null'));
14651
+ requests.push(!store.state.practices ? fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`) : new Response('null'));
14652
+ requests.push(!store.state.themes ? fetch(`${this.api}theme/?language=${this.language}&fields=id,label,pictogram`) : new Response('null'));
14958
14653
  return Promise.all([
14959
14654
  ...requests,
14960
- fetch(`${this.api}sensitivearea/?language=${this.language}&trek=${this.trekId}&fields=id,geometry,name,description`).catch(() => new Response('null')),
14655
+ fetch(`${this.api}sensitivearea/?language=${this.language}&published=true&trek=${this.trekId}&fields=id,geometry,name,description,contact,info_url,period,practices`).catch(() => new Response('null')),
14656
+ fetch(`${this.api}label/?language=${this.language}&fields=id,name,advice,pictogram`),
14657
+ fetch(`${this.api}source/?language=${this.language}&fields=id,name,website,pictogram`),
14658
+ fetch(`${this.api}trek_accessibility/?language=${this.language}&fields=id,name,pictogram`),
14659
+ fetch(`${this.api}trek_accessibility_level/?language=${this.language}&fields=id,name`),
14961
14660
  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`),
14962
14661
  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`),
14963
- fetch(`${this.api}trek/${this.trekId}/?language=${this.language}&published=true&fields=id,name,attachments,description,description_teaser,difficulty,duration,ascent,length_2d,practice,themes,route,geometry,gpx,kml,pdf,parking_location,departure`),
14662
+ fetch(`${this.api}trek/${this.trekId}/?language=${this.language}&published=true&fields=id,name,attachments,description,description_teaser,difficulty,duration,ascent,length_2d,practice,themes,route,geometry,gpx,kml,pdf,parking_location,departure,arrival,altimetric_profile,ambiance,access,public_transport,advice,advised_parking,gear,labels,source,points_reference,disabled_infrastructure,accessibility_level,accessibility_slope,accessibility_width,accessibility_signage,accessibility_covering,accessibility_exposure,accessibility_advice,accessibilities`),
14964
14663
  ])
14965
14664
  .then(responses => Promise.all(responses.map(response => response.json())))
14966
- .then(([difficulties, routes, practices, themes, sensitiveAreas, pois, informationDesks, trek]) => {
14665
+ .then(([difficulties, routes, practices, themes, sensitiveAreas, labels, sources, accessibilities, accessibilitiesLevel, pois, informationDesks, trek]) => {
14967
14666
  if (difficulties) {
14968
- state.difficulties = difficulties.results;
14667
+ store.state.difficulties = difficulties.results;
14969
14668
  }
14970
14669
  if (routes) {
14971
- state.routes = routes.results;
14670
+ store.state.routes = routes.results;
14972
14671
  }
14973
14672
  if (practices) {
14974
- state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
14673
+ store.state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
14975
14674
  }
14976
14675
  if (themes) {
14977
- state.themes = themes.results;
14676
+ store.state.themes = themes.results;
14978
14677
  }
14979
14678
  if (sensitiveAreas) {
14980
- state.currentSensitiveAreas = sensitiveAreas.results;
14679
+ store.state.currentSensitiveAreas = sensitiveAreas.results;
14981
14680
  }
14982
- state.currentPois = pois.results;
14983
- state.currentInformationDesks = informationDesks.results;
14984
- state.currentTrek = trek;
14681
+ store.state.labels = labels.results;
14682
+ store.state.sources = sources.results;
14683
+ store.state.accessibilities = accessibilities.results;
14684
+ store.state.accessibilitiesLevel = accessibilitiesLevel.results;
14685
+ store.state.currentPois = pois.results;
14686
+ store.state.currentInformationDesks = informationDesks.results;
14687
+ store.state.currentTrek = trek;
14985
14688
  });
14986
14689
  }
14987
14690
  disconnectedCallback() {
14988
- state.currentTrek = null;
14691
+ store.state.currentTrek = null;
14989
14692
  }
14990
14693
  render() {
14991
14694
  return index.h(index.Host, null);
@@ -15005,16 +14708,16 @@ const GrwTreksList = class {
15005
14708
  this.step = 10;
15006
14709
  }
15007
14710
  componentWillLoad() {
15008
- onChange('currentTreks', () => {
14711
+ store.onChange('currentTreks', () => {
15009
14712
  this.element.addEventListener('scroll', this.handleInfiniteScrollBind);
15010
14713
  this.element.scroll({ top: 0 });
15011
- this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];
14714
+ this.treksToDisplay = [...store.state.currentTreks.slice(0, this.step)];
15012
14715
  });
15013
14716
  }
15014
14717
  handleInfiniteScroll(event) {
15015
14718
  if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {
15016
- if (this.treksToDisplay.length < state.treks.length) {
15017
- this.treksToDisplay = state.currentTreks.slice(0, this.treksToDisplay.length + this.step >= state.currentTreks.length ? state.currentTreks.length : this.treksToDisplay.length + this.step);
14719
+ if (this.treksToDisplay.length < store.state.treks.length) {
14720
+ this.treksToDisplay = store.state.currentTreks.slice(0, this.treksToDisplay.length + this.step >= store.state.currentTreks.length ? store.state.currentTreks.length : this.treksToDisplay.length + this.step);
15018
14721
  }
15019
14722
  else {
15020
14723
  this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);
@@ -15022,7 +14725,7 @@ const GrwTreksList = class {
15022
14725
  }
15023
14726
  }
15024
14727
  render() {
15025
- return (index.h(index.Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, index.h("div", { class: "current-treks-length" }, `${state.currentTreks.length} résultat${state.currentTreks.length > 1 ? 's' : ''}`), index.h("div", { class: "current-treks-container" }, this.treksToDisplay.map(trek => (index.h("grw-trek-card", { key: `trek-${trek.id}`, trek: trek, "is-large-view": this.isLargeView, "color-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint }))))));
14728
+ return (index.h(index.Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, index.h("div", { class: "current-treks-length" }, `${store.state.currentTreks.length} résultat${store.state.currentTreks.length > 1 ? 's' : ''}`), index.h("div", { class: "current-treks-container" }, this.treksToDisplay.map(trek => (index.h("grw-trek-card", { key: `trek-${trek.id}`, trek: trek, "is-large-view": this.isLargeView, "color-primary": this.colorPrimary, "color-primary-tint": this.colorPrimaryTint }))))));
15026
14729
  }
15027
14730
  get element() { return index.getElement(this); }
15028
14731
  };
@@ -15034,8 +14737,8 @@ const GrwTreksProvider = class {
15034
14737
  this.language = 'fr';
15035
14738
  }
15036
14739
  componentWillLoad() {
15037
- state.api = this.api;
15038
- let treksRequest = `${this.api}trek/?language=${this.language}`;
14740
+ store.state.api = this.api;
14741
+ let treksRequest = `${this.api}trek/?language=${this.language}&published=true`;
15039
14742
  this.inBbox && (treksRequest += `&in_bbox=${this.inBbox}`);
15040
14743
  this.cities && (treksRequest += `&cities=${this.cities}`);
15041
14744
  this.districts && (treksRequest += `&districts=${this.districts}`);
@@ -15054,18 +14757,18 @@ const GrwTreksProvider = class {
15054
14757
  ])
15055
14758
  .then(responses => Promise.all(responses.map(response => response.json())))
15056
14759
  .then(([difficulties, routes, practices, themes, treks]) => {
15057
- state.difficulties = difficulties.results;
15058
- state.routes = routes.results;
15059
- state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
15060
- state.themes = themes.results;
15061
- state.durations = [
14760
+ store.state.difficulties = difficulties.results;
14761
+ store.state.routes = routes.results;
14762
+ store.state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
14763
+ store.state.themes = themes.results;
14764
+ store.state.durations = [
15062
14765
  { id: 1, name: '0 - 1h', minValue: 0, maxValue: 1, selected: false },
15063
14766
  { id: 2, name: '1 - 2h', minValue: 1, maxValue: 2, selected: false },
15064
14767
  { id: 3, name: '2 - 5h', minValue: 2, maxValue: 5, selected: false },
15065
14768
  { id: 4, name: '5 - 10h', minValue: 5, maxValue: 10, selected: false },
15066
14769
  ];
15067
- state.treks = treks.results;
15068
- state.currentTreks = treks.results;
14770
+ store.state.treks = treks.results;
14771
+ store.state.currentTreks = treks.results;
15069
14772
  });
15070
14773
  }
15071
14774
  render() {
@@ -15073,13 +14776,8 @@ const GrwTreksProvider = class {
15073
14776
  }
15074
14777
  };
15075
14778
 
15076
- exports.grw_app = GrwApp;
15077
14779
  exports.grw_filter = GrwFilter;
15078
- exports.grw_information_desk_detail = GrwInformationDeskDetail;
15079
14780
  exports.grw_map = GrwMap;
15080
- exports.grw_poi_detail = GrwPoiDetail;
15081
- exports.grw_sensitive_area_detail = GrwSensitiveAreaDetail;
15082
- exports.grw_trek_card = GrwTrekCard;
15083
14781
  exports.grw_trek_detail = GrwTrekDetail;
15084
14782
  exports.grw_trek_provider = GrwTrekProvider;
15085
14783
  exports.grw_treks_list = GrwTreksList;