@geotrekce/geotrek-rando-widget 0.0.4 → 0.0.7

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 (61) hide show
  1. package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
  2. package/dist/cjs/grw-app.cjs.entry.js +111 -0
  3. package/dist/cjs/{grw-app_11.cjs.entry.js → grw-filter_6.cjs.entry.js} +197 -455
  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-fd04a216.js +211 -0
  9. package/dist/collection/components/grw-app/grw-app.js +54 -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 +65 -10
  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 -3
  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 +134 -4
  20. package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +101 -6
  21. package/dist/collection/components/grw-treks-list/grw-treks-list.js +8 -3
  22. package/dist/collection/store/grw-trek-provider.js +24 -9
  23. package/dist/collection/store/grw-treks-provider.js +12 -6
  24. package/dist/collection/store/store.js +7 -1
  25. package/dist/components/grw-app.js +52 -6
  26. package/dist/components/grw-information-desk-detail2.js +2 -2
  27. package/dist/components/grw-map2.js +66 -11
  28. package/dist/components/grw-poi-detail2.js +2 -2
  29. package/dist/components/grw-sensitive-area-detail2.js +7 -2
  30. package/dist/components/grw-trek-detail2.js +31 -4
  31. package/dist/components/grw-trek-provider2.js +24 -9
  32. package/dist/components/grw-treks-list2.js +8 -3
  33. package/dist/components/grw-treks-provider2.js +12 -6
  34. package/dist/components/store.js +7 -1
  35. package/dist/esm/geotrek-rando-widget.js +2 -2
  36. package/dist/esm/grw-app.entry.js +107 -0
  37. package/dist/esm/{grw-app_11.entry.js → grw-filter_6.entry.js} +138 -391
  38. package/dist/esm/grw-information-desk-detail_3.entry.js +46 -0
  39. package/dist/esm/grw-trek-card.entry.js +43 -0
  40. package/dist/esm/{index-fe16e7b6.js → index-192d910f.js} +1 -1
  41. package/dist/esm/length-d82189db.js +27 -0
  42. package/dist/esm/loader.js +2 -2
  43. package/dist/esm/store-b2c76c0c.js +208 -0
  44. package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
  45. package/dist/geotrek-rando-widget/p-1b2ba86d.entry.js +1 -0
  46. package/dist/geotrek-rando-widget/p-4361afd2.entry.js +1 -0
  47. package/dist/geotrek-rando-widget/p-5f17d340.entry.js +1 -0
  48. package/dist/geotrek-rando-widget/{p-8c206aec.js → p-6dce5e6c.js} +1 -1
  49. package/dist/geotrek-rando-widget/p-7715153d.entry.js +1 -0
  50. package/dist/geotrek-rando-widget/p-e6710c64.js +1 -0
  51. package/dist/geotrek-rando-widget/p-f3f7d6be.js +1 -0
  52. package/dist/types/components/grw-app/grw-app.d.ts +7 -2
  53. package/dist/types/components/grw-map/grw-map.d.ts +3 -1
  54. package/dist/types/components/grw-trek-detail/grw-trek-detail.d.ts +9 -4
  55. package/dist/types/components.d.ts +0 -2
  56. package/dist/types/store/grw-trek-provider.d.ts +2 -0
  57. package/dist/types/store/grw-treks-provider.d.ts +3 -0
  58. package/dist/types/store/store.d.ts +16 -3
  59. package/dist/types/types/types.d.ts +51 -1
  60. package/package.json +5 -4
  61. 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-fd04a216.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) {
@@ -14503,6 +14235,7 @@ const GrwMap = class {
14503
14235
  this.colorArrivalIcon = '#85003b';
14504
14236
  this.colorSensitiveArea = ' #4974a5';
14505
14237
  this.colorPoiIcon = '#974c6e';
14238
+ this.handleTreksWithinBoundsBind = this.handleTreksWithinBounds.bind(this);
14506
14239
  }
14507
14240
  componentDidLoad() {
14508
14241
  this.map = leafletSrc.map(this.element, {
@@ -14514,22 +14247,22 @@ const GrwMap = class {
14514
14247
  maxZoom: 19,
14515
14248
  attribution: this.attribution,
14516
14249
  }).addTo(this.map);
14517
- if (state.currentTrek) {
14250
+ if (store.state.currentTrek) {
14518
14251
  this.addTrek();
14519
14252
  }
14520
- else if (state.currentTrek) {
14253
+ else if (store.state.currentTrek) {
14521
14254
  this.addTreks();
14522
14255
  }
14523
- onChange('currentTreks', () => {
14524
- if (state.currentTrek) {
14256
+ store.onChange('currentTreks', () => {
14257
+ if (store.state.currentTrek) {
14525
14258
  this.addTrek();
14526
14259
  }
14527
- else if (state.currentTreks) {
14260
+ else if (store.state.currentTreks) {
14528
14261
  this.addTreks();
14529
14262
  }
14530
14263
  });
14531
- onChange('currentTrek', () => {
14532
- if (state.currentTrek) {
14264
+ store.onChange('currentTrek', () => {
14265
+ if (store.state.currentTrek) {
14533
14266
  this.removeTreks();
14534
14267
  this.addTrek();
14535
14268
  }
@@ -14546,7 +14279,7 @@ const GrwMap = class {
14546
14279
  type: 'FeatureCollection',
14547
14280
  features: [],
14548
14281
  };
14549
- for (const trek of state.currentTreks) {
14282
+ for (const trek of store.state.currentTreks) {
14550
14283
  trekscurrentDepartureCoordinates.push(trek.departure_geom);
14551
14284
  treksFeatureCollection.features.push({
14552
14285
  type: 'Feature',
@@ -14554,21 +14287,23 @@ const GrwMap = class {
14554
14287
  properties: {
14555
14288
  id: trek.id,
14556
14289
  name: trek.name,
14557
- practice: (_a = state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram,
14290
+ practice: (_a = store.state.practices.find(practice => practice.id === trek.practice)) === null || _a === void 0 ? void 0 : _a.pictogram,
14558
14291
  imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,
14559
14292
  },
14560
14293
  });
14561
14294
  }
14562
- if (trekscurrentDepartureCoordinates.length > 0) {
14563
- const bounds = leafletSrc.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14564
- this.currentBounds = bounds;
14565
- this.map.fitBounds(this.currentBounds);
14566
- }
14567
14295
  if (!this.treksLayer) {
14296
+ if (trekscurrentDepartureCoordinates.length > 0 && !store.state.currentMapTreksBounds) {
14297
+ const bounds = leafletSrc.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14298
+ this.map.fitBounds(bounds);
14299
+ }
14300
+ else {
14301
+ this.map.fitBounds(store.state.currentMapTreksBounds);
14302
+ }
14568
14303
  this.treksLayer = leafletSrc.geoJSON(treksFeatureCollection, {
14569
14304
  pointToLayer: (geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
14570
14305
  icon: leafletSrc.divIcon({
14571
- html: geoJsonPoint.properties.practice && `<img src=${geoJsonPoint.properties.practice} />`,
14306
+ html: geoJsonPoint.properties.practice ? `<img src=${geoJsonPoint.properties.practice} />` : `<img />`,
14572
14307
  className: 'trek-marker',
14573
14308
  iconSize: 48,
14574
14309
  }),
@@ -14595,21 +14330,31 @@ const GrwMap = class {
14595
14330
  }).addTo(this.map);
14596
14331
  }
14597
14332
  else {
14333
+ if (trekscurrentDepartureCoordinates.length > 0) {
14334
+ const bounds = leafletSrc.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14335
+ this.map.fitBounds(bounds);
14336
+ }
14598
14337
  this.treksLayer.clearLayers();
14599
14338
  this.treksLayer.addData(treksFeatureCollection);
14600
14339
  }
14601
14340
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14341
+ this.map.on('moveend', this.handleTreksWithinBoundsBind);
14602
14342
  }
14603
14343
  removeTreks() {
14604
14344
  if (this.treksLayer) {
14345
+ store.state.currentMapTreksBounds = this.map.getBounds();
14605
14346
  this.map.removeLayer(this.treksLayer);
14606
14347
  this.treksLayer = null;
14348
+ this.map.off('moveend', this.handleTreksWithinBoundsBind);
14607
14349
  }
14608
14350
  }
14351
+ handleTreksWithinBounds() {
14352
+ store.state.treksWithinBounds = store.state.currentTreks.filter(trek => this.map.getBounds().contains(leafletSrc.latLng(trek.departure_geom[1], trek.departure_geom[0])));
14353
+ }
14609
14354
  addTrek() {
14610
14355
  const currentTrekFeature = {
14611
14356
  type: 'Feature',
14612
- geometry: state.currentTrek.geometry,
14357
+ geometry: store.state.currentTrek.geometry,
14613
14358
  properties: {},
14614
14359
  };
14615
14360
  this.currentTrekLayer = leafletSrc.geoJSON(currentTrekFeature, {
@@ -14618,11 +14363,10 @@ const GrwMap = class {
14618
14363
  }),
14619
14364
  interactive: false,
14620
14365
  }).addTo(this.map);
14621
- const bounds = leafletSrc.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14622
- this.currentBounds = bounds;
14623
- 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]];
14366
+ const bounds = leafletSrc.latLngBounds(store.state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
14367
+ this.map.fitBounds(bounds);
14368
+ const currentDepartureCoordinates = [store.state.currentTrek.geometry.coordinates.at(0)[0], store.state.currentTrek.geometry.coordinates.at(0)[1]];
14369
+ const currentArrivalCoordinates = [store.state.currentTrek.geometry.coordinates.at(-1)[0], store.state.currentTrek.geometry.coordinates.at(-1)[1]];
14626
14370
  const currentDepartureArrivalFeatureCollection = {
14627
14371
  type: 'FeatureCollection',
14628
14372
  features: [
@@ -14652,11 +14396,11 @@ const GrwMap = class {
14652
14396
  interactive: false,
14653
14397
  }),
14654
14398
  }).addTo(this.map);
14655
- if (state.currentTrek.parking_location) {
14399
+ if (store.state.currentTrek.parking_location) {
14656
14400
  const currentParking = {
14657
14401
  type: 'Feature',
14658
14402
  properties: {},
14659
- geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },
14403
+ geometry: { type: 'Point', coordinates: store.state.currentTrek.parking_location },
14660
14404
  };
14661
14405
  this.currentParkingLayer = leafletSrc.geoJSON(currentParking, {
14662
14406
  pointToLayer: (_geoJsonPoint, latlng) => leafletSrc.marker(latlng, {
@@ -14671,19 +14415,32 @@ const GrwMap = class {
14671
14415
  }),
14672
14416
  }).addTo(this.map);
14673
14417
  }
14674
- if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {
14418
+ if (store.state.currentSensitiveAreas && store.state.currentSensitiveAreas.length > 0) {
14675
14419
  const currentSensitiveAreasFeatureCollection = {
14676
14420
  type: 'FeatureCollection',
14677
14421
  features: [],
14678
14422
  };
14679
- for (const sensitiveArea of state.currentSensitiveAreas) {
14423
+ for (const sensitiveArea of store.state.currentSensitiveAreas) {
14680
14424
  currentSensitiveAreasFeatureCollection.features.push({
14681
14425
  type: 'Feature',
14682
- properties: {},
14426
+ properties: { name: sensitiveArea.name },
14683
14427
  geometry: sensitiveArea.geometry,
14684
14428
  });
14685
14429
  }
14686
- this.currentSensitiveAreasLayer = leafletSrc.geoJSON(currentSensitiveAreasFeatureCollection, { style: () => ({ color: this.colorSensitiveArea }) }).addTo(this.map);
14430
+ this.currentSensitiveAreasLayer = leafletSrc.geoJSON(currentSensitiveAreasFeatureCollection, {
14431
+ onEachFeature: (geoJsonPoint, layer) => {
14432
+ layer.once('mouseover', () => {
14433
+ const sensitiveAreaTooltip = leafletSrc.DomUtil.create('div');
14434
+ sensitiveAreaTooltip.className = 'sensitive-area-tooltip';
14435
+ const sensitiveAreaName = leafletSrc.DomUtil.create('div');
14436
+ sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;
14437
+ sensitiveAreaName.className = 'sensitive-area-name';
14438
+ sensitiveAreaTooltip.appendChild(sensitiveAreaName);
14439
+ layer.bindTooltip(sensitiveAreaTooltip).openTooltip();
14440
+ });
14441
+ },
14442
+ style: () => ({ color: this.colorSensitiveArea }),
14443
+ }).addTo(this.map);
14687
14444
  leafletSrc.Control.SensitiveAreasCheckboxContainer = leafletSrc.Control.extend({
14688
14445
  onAdd: () => {
14689
14446
  const sensitiveAreasCheckboxContainer = leafletSrc.DomUtil.create('div');
@@ -14709,12 +14466,12 @@ const GrwMap = class {
14709
14466
  };
14710
14467
  this.sensitiveAreasControl = leafletSrc.control.sensitiveAreasCheckboxContainer({ position: 'topright' }).addTo(this.map);
14711
14468
  }
14712
- if (state.currentPois && state.currentPois.length > 0) {
14469
+ if (store.state.currentPois && store.state.currentPois.length > 0) {
14713
14470
  const currentPoisFeatureCollection = {
14714
14471
  type: 'FeatureCollection',
14715
14472
  features: [],
14716
14473
  };
14717
- for (const currentPoi of state.currentPois) {
14474
+ for (const currentPoi of store.state.currentPois) {
14718
14475
  currentPoisFeatureCollection.features.push({
14719
14476
  type: 'Feature',
14720
14477
  properties: { name: currentPoi.name, type_pictogram: currentPoi.type_pictogram },
@@ -14743,12 +14500,12 @@ const GrwMap = class {
14743
14500
  },
14744
14501
  }).addTo(this.map);
14745
14502
  }
14746
- if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {
14503
+ if (store.state.currentInformationDesks && store.state.currentInformationDesks.length > 0) {
14747
14504
  const currentInformationDesksFeatureCollection = {
14748
14505
  type: 'FeatureCollection',
14749
14506
  features: [],
14750
14507
  };
14751
- for (const currentInformationDesk of state.currentInformationDesks) {
14508
+ for (const currentInformationDesk of store.state.currentInformationDesks) {
14752
14509
  currentInformationDesksFeatureCollection.features.push({
14753
14510
  type: 'Feature',
14754
14511
  properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },
@@ -14777,6 +14534,32 @@ const GrwMap = class {
14777
14534
  },
14778
14535
  }).addTo(this.map);
14779
14536
  }
14537
+ if (store.state.currentTrek.points_reference) {
14538
+ const currentPointsReferenceFeatureCollection = {
14539
+ type: 'FeatureCollection',
14540
+ features: [],
14541
+ };
14542
+ currentPointsReferenceFeatureCollection.features.push({
14543
+ type: 'Feature',
14544
+ properties: {},
14545
+ geometry: store.state.currentTrek.points_reference,
14546
+ });
14547
+ let index = 0;
14548
+ this.currentPointsReferenceLayer = leafletSrc.geoJSON(currentPointsReferenceFeatureCollection, {
14549
+ pointToLayer: (_geoJsonPoint, latlng) => {
14550
+ index += 1;
14551
+ return leafletSrc.marker(latlng, {
14552
+ icon: leafletSrc.divIcon({
14553
+ html: index,
14554
+ className: 'point-reference-icon',
14555
+ iconSize: 24,
14556
+ }),
14557
+ autoPanOnFocus: false,
14558
+ interactive: false,
14559
+ });
14560
+ },
14561
+ }).addTo(this.map);
14562
+ }
14780
14563
  !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
14781
14564
  }
14782
14565
  removeTrek() {
@@ -14806,6 +14589,10 @@ const GrwMap = class {
14806
14589
  this.map.removeLayer(this.currentInformationDesksLayer);
14807
14590
  this.currentInformationDesksLayer = null;
14808
14591
  }
14592
+ if (this.currentPointsReferenceLayer) {
14593
+ this.map.removeLayer(this.currentPointsReferenceLayer);
14594
+ this.currentPointsReferenceLayer = null;
14595
+ }
14809
14596
  }
14810
14597
  render() {
14811
14598
  return (index.h(index.Host, { style: {
@@ -14820,95 +14607,7 @@ const GrwMap = class {
14820
14607
  };
14821
14608
  GrwMap.style = grwMapCss;
14822
14609
 
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}";
14610
+ const grwTrekDetailCss = "grw-sensitive-area-detail,grw-information-desk-detail,grw-poi-detail{margin-top:12px}.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
14611
 
14913
14612
  const GrwTrekDetail = class {
14914
14613
  constructor(hostRef) {
@@ -14918,27 +14617,49 @@ const GrwTrekDetail = class {
14918
14617
  this.colorPrimaryTint = '#974c6e';
14919
14618
  }
14920
14619
  componentWillLoad() {
14921
- this.currentTrek = this.trek ? this.trek : state.currentTrek;
14620
+ this.currentTrek = this.trek ? this.trek : store.state.currentTrek;
14922
14621
  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);
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));
14628
+ this.accessibilities = store.state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));
14629
+ if (store.state.accessibilitiesLevel) {
14630
+ this.accessibilityLevel = store.state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);
14631
+ }
14926
14632
  }
14927
- onChange('currentTrek', () => {
14928
- this.currentTrek = this.trek ? this.trek : state.currentTrek;
14633
+ store.onChange('currentTrek', () => {
14634
+ this.currentTrek = this.trek ? this.trek : store.state.currentTrek;
14929
14635
  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);
14636
+ this.difficulty = store.state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);
14637
+ this.route = store.state.routes.find(route => route.id === this.currentTrek.route);
14638
+ this.practice = store.state.practices.find(practice => practice.id === this.currentTrek.practice);
14639
+ this.themes = store.state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));
14640
+ this.labels = store.state.labels.filter(label => this.currentTrek.labels.includes(label.id));
14641
+ this.sources = store.state.sources.filter(source => this.currentTrek.source.includes(source.id));
14642
+ this.accessibilities = store.state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));
14643
+ if (store.state.accessibilitiesLevel) {
14644
+ this.accessibilityLevel = store.state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);
14645
+ }
14933
14646
  }
14934
14647
  });
14935
14648
  }
14936
14649
  render() {
14937
14650
  var _a, _b, _c, _d, _e, _f, _g;
14938
14651
  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 })))))))));
14652
+ _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 :
14653
+ _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 :
14654
+ _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}?format=svg` }))), 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 }))))), (this.currentTrek.disabled_infrastructure ||
14655
+ (this.accessibilities && this.accessibilities.length > 0) ||
14656
+ this.currentTrek.accessibility_level ||
14657
+ this.currentTrek.accessibility_slope ||
14658
+ this.currentTrek.accessibility_width ||
14659
+ this.currentTrek.accessibility_signage ||
14660
+ this.currentTrek.accessibility_covering ||
14661
+ this.currentTrek.accessibility_exposure ||
14662
+ this.currentTrek.accessibility_advice) && (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
14663
  }
14943
14664
  };
14944
14665
  GrwTrekDetail.style = grwTrekDetailCss;
@@ -14947,45 +14668,60 @@ const GrwTrekProvider = class {
14947
14668
  constructor(hostRef) {
14948
14669
  index.registerInstance(this, hostRef);
14949
14670
  this.language = 'fr';
14671
+ this.controller = new AbortController();
14672
+ this.signal = this.controller.signal;
14950
14673
  }
14951
14674
  componentWillLoad() {
14952
- state.api = this.api;
14675
+ store.state.api = this.api;
14953
14676
  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'));
14677
+ requests.push(!store.state.difficulties ? fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`, { signal: this.signal }) : new Response('null'));
14678
+ requests.push(!store.state.routes ? fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`, { signal: this.signal }) : new Response('null'));
14679
+ requests.push(!store.state.practices ? fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`, { signal: this.signal }) : new Response('null'));
14680
+ requests.push(!store.state.themes ? fetch(`${this.api}theme/?language=${this.language}&fields=id,label,pictogram`, { signal: this.signal }) : new Response('null'));
14958
14681
  return Promise.all([
14959
14682
  ...requests,
14960
- fetch(`${this.api}sensitivearea/?language=${this.language}&trek=${this.trekId}&fields=id,geometry,name,description`).catch(() => new Response('null')),
14961
- 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
- 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`),
14683
+ fetch(`${this.api}sensitivearea/?language=${this.language}&published=true&trek=${this.trekId}&fields=id,geometry,name,description,contact,info_url,period,practices`, {
14684
+ signal: this.signal,
14685
+ }).catch(() => new Response('null')),
14686
+ fetch(`${this.api}label/?language=${this.language}&fields=id,name,advice,pictogram`, { signal: this.signal }),
14687
+ fetch(`${this.api}source/?language=${this.language}&fields=id,name,website,pictogram`, { signal: this.signal }),
14688
+ fetch(`${this.api}trek_accessibility/?language=${this.language}&fields=id,name,pictogram`, { signal: this.signal }),
14689
+ fetch(`${this.api}trek_accessibility_level/?language=${this.language}&fields=id,name`, { signal: this.signal }).catch(() => new Response('null')),
14690
+ 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`, { signal: this.signal }),
14691
+ 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`, { signal: this.signal }),
14692
+ 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`, { signal: this.signal }),
14964
14693
  ])
14965
14694
  .then(responses => Promise.all(responses.map(response => response.json())))
14966
- .then(([difficulties, routes, practices, themes, sensitiveAreas, pois, informationDesks, trek]) => {
14695
+ .then(([difficulties, routes, practices, themes, sensitiveAreas, labels, sources, accessibilities, accessibilitiesLevel, pois, informationDesks, trek]) => {
14967
14696
  if (difficulties) {
14968
- state.difficulties = difficulties.results;
14697
+ store.state.difficulties = difficulties.results;
14969
14698
  }
14970
14699
  if (routes) {
14971
- state.routes = routes.results;
14700
+ store.state.routes = routes.results;
14972
14701
  }
14973
14702
  if (practices) {
14974
- state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
14703
+ store.state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
14975
14704
  }
14976
14705
  if (themes) {
14977
- state.themes = themes.results;
14706
+ store.state.themes = themes.results;
14978
14707
  }
14979
14708
  if (sensitiveAreas) {
14980
- state.currentSensitiveAreas = sensitiveAreas.results;
14709
+ store.state.currentSensitiveAreas = sensitiveAreas.results;
14981
14710
  }
14982
- state.currentPois = pois.results;
14983
- state.currentInformationDesks = informationDesks.results;
14984
- state.currentTrek = trek;
14711
+ store.state.labels = labels.results;
14712
+ store.state.sources = sources.results;
14713
+ store.state.accessibilities = accessibilities.results;
14714
+ if (accessibilitiesLevel) {
14715
+ store.state.accessibilitiesLevel = accessibilitiesLevel.results;
14716
+ }
14717
+ store.state.currentPois = pois.results;
14718
+ store.state.currentInformationDesks = informationDesks.results;
14719
+ store.state.currentTrek = trek;
14985
14720
  });
14986
14721
  }
14987
14722
  disconnectedCallback() {
14988
- state.currentTrek = null;
14723
+ this.controller.abort();
14724
+ store.state.currentTrek = null;
14989
14725
  }
14990
14726
  render() {
14991
14727
  return index.h(index.Host, null);
@@ -15005,16 +14741,21 @@ const GrwTreksList = class {
15005
14741
  this.step = 10;
15006
14742
  }
15007
14743
  componentWillLoad() {
15008
- onChange('currentTreks', () => {
14744
+ store.onChange('currentTreks', () => {
15009
14745
  this.element.addEventListener('scroll', this.handleInfiniteScrollBind);
15010
14746
  this.element.scroll({ top: 0 });
15011
- this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];
14747
+ this.treksToDisplay = [...store.state.currentTreks.slice(0, this.step)];
14748
+ });
14749
+ store.onChange('treksWithinBounds', () => {
14750
+ this.element.addEventListener('scroll', this.handleInfiniteScrollBind);
14751
+ this.element.scroll({ top: 0 });
14752
+ this.treksToDisplay = [...store.state.treksWithinBounds.slice(0, this.step)];
15012
14753
  });
15013
14754
  }
15014
14755
  handleInfiniteScroll(event) {
15015
14756
  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);
14757
+ if (this.treksToDisplay.length < store.state.treksWithinBounds.length) {
14758
+ this.treksToDisplay = store.state.treksWithinBounds.slice(0, this.treksToDisplay.length + this.step >= store.state.treksWithinBounds.length ? store.state.treksWithinBounds.length : this.treksToDisplay.length + this.step);
15018
14759
  }
15019
14760
  else {
15020
14761
  this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);
@@ -15022,7 +14763,7 @@ const GrwTreksList = class {
15022
14763
  }
15023
14764
  }
15024
14765
  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 }))))));
14766
+ return (index.h(index.Host, { style: { '--color-primary': this.colorPrimary, '--color-primary-tint': this.colorPrimaryTint } }, index.h("div", { class: "current-treks-length" }, `${store.state.treksWithinBounds.length} résultat${store.state.treksWithinBounds.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
14767
  }
15027
14768
  get element() { return index.getElement(this); }
15028
14769
  };
@@ -15032,10 +14773,12 @@ const GrwTreksProvider = class {
15032
14773
  constructor(hostRef) {
15033
14774
  index.registerInstance(this, hostRef);
15034
14775
  this.language = 'fr';
14776
+ this.controller = new AbortController();
14777
+ this.signal = this.controller.signal;
15035
14778
  }
15036
14779
  componentWillLoad() {
15037
- state.api = this.api;
15038
- let treksRequest = `${this.api}trek/?language=${this.language}`;
14780
+ store.state.api = this.api;
14781
+ let treksRequest = `${this.api}trek/?language=${this.language}&published=true`;
15039
14782
  this.inBbox && (treksRequest += `&in_bbox=${this.inBbox}`);
15040
14783
  this.cities && (treksRequest += `&cities=${this.cities}`);
15041
14784
  this.districts && (treksRequest += `&districts=${this.districts}`);
@@ -15046,40 +14789,39 @@ const GrwTreksProvider = class {
15046
14789
  this.practices && (treksRequest += `&practices=${this.practices}`);
15047
14790
  treksRequest += `&fields=id,name,attachments,description_teaser,difficulty,duration,ascent,length_2d,practice,themes,route,departure,departure_geom&page_size=999`;
15048
14791
  return Promise.all([
15049
- fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`),
15050
- fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`),
15051
- fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`),
15052
- fetch(`${this.api}theme/?language=${this.language}&fields=id,label,pictogram`),
15053
- fetch(treksRequest),
14792
+ fetch(`${this.api}trek_difficulty/?language=${this.language}&fields=id,label,pictogram`, { signal: this.signal }),
14793
+ fetch(`${this.api}trek_route/?language=${this.language}&fields=id,route,pictogram`, { signal: this.signal }),
14794
+ fetch(`${this.api}trek_practice/?language=${this.language}&fields=id,name,pictogram`, { signal: this.signal }),
14795
+ fetch(`${this.api}theme/?language=${this.language}&fields=id,label,pictogram`, { signal: this.signal }),
14796
+ fetch(treksRequest, { signal: this.signal }),
15054
14797
  ])
15055
14798
  .then(responses => Promise.all(responses.map(response => response.json())))
15056
14799
  .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 = [
14800
+ store.state.difficulties = difficulties.results;
14801
+ store.state.routes = routes.results;
14802
+ store.state.practices = practices.results.map(practice => (Object.assign(Object.assign({}, practice), { selected: false })));
14803
+ store.state.themes = themes.results;
14804
+ store.state.durations = [
15062
14805
  { id: 1, name: '0 - 1h', minValue: 0, maxValue: 1, selected: false },
15063
14806
  { id: 2, name: '1 - 2h', minValue: 1, maxValue: 2, selected: false },
15064
14807
  { id: 3, name: '2 - 5h', minValue: 2, maxValue: 5, selected: false },
15065
14808
  { id: 4, name: '5 - 10h', minValue: 5, maxValue: 10, selected: false },
15066
14809
  ];
15067
- state.treks = treks.results;
15068
- state.currentTreks = treks.results;
14810
+ store.state.treks = treks.results;
14811
+ store.state.currentTreks = treks.results;
14812
+ store.state.treksWithinBounds = treks.results;
15069
14813
  });
15070
14814
  }
14815
+ disconnectedCallback() {
14816
+ this.controller.abort();
14817
+ }
15071
14818
  render() {
15072
14819
  return index.h(index.Host, null);
15073
14820
  }
15074
14821
  };
15075
14822
 
15076
- exports.grw_app = GrwApp;
15077
14823
  exports.grw_filter = GrwFilter;
15078
- exports.grw_information_desk_detail = GrwInformationDeskDetail;
15079
14824
  exports.grw_map = GrwMap;
15080
- exports.grw_poi_detail = GrwPoiDetail;
15081
- exports.grw_sensitive_area_detail = GrwSensitiveAreaDetail;
15082
- exports.grw_trek_card = GrwTrekCard;
15083
14825
  exports.grw_trek_detail = GrwTrekDetail;
15084
14826
  exports.grw_trek_provider = GrwTrekProvider;
15085
14827
  exports.grw_treks_list = GrwTreksList;